/**
 * RP Fitness homepage stylesheet - clean rebuild.
 * Authored directly against the live native-block markup (Cover/Group/Button/
 * Image blocks) and the desktop + mobile mockups. Brand colours corrected:
 * red #e4022e, navy #002c41, ivory #F6F5EE (canonical brand). Front page only.
 * Everything is scoped to body.rp-home so it never touches other pages.
 */
:root{--ivory:#F6F5EE;--navy:#002c41;--red:#e4022e;--ink:#0a2233;--muted:#4a5157;--gold:#FFC02E}

/* ---------- base ---------- */
body.rp-home{margin:0;background:var(--ivory);font-family:'Montserrat',Arial,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}
/* let the theme's has-global-padding + alignfull handle full-bleed; only remove the gaps between bands and hide the page title */
.rp-home .entry-content > *{margin-block:0 !important}
.rp-home .wp-block-post-title{display:none}
.rp-home img{display:block;max-width:100%}

/* shared inner width */
.rp-home .wrap{max-width:1200px;margin:0 auto;padding:0 48px}

/* shared type */
.rp-home .eb{color:var(--red);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin:0 0 16px}
.rp-home .r{color:var(--red)}

/* buttons: every block button = the mockup .btn */
.rp-home .wp-block-button__link{display:inline-block;background:var(--red);color:#fff;font-weight:700;font-size:15px;letter-spacing:.01em;padding:15px 34px;border-radius:10px;text-decoration:none;border:0;box-shadow:0 10px 24px rgba(228,2,46,.26)}
.rp-home .wp-block-button__link:hover,.rp-home .wp-block-button__link:focus,.rp-home .wp-block-button__link:active{background:var(--red);color:#fff}
.rp-home .wp-block-buttons{margin:0}

/* ---------- HERO (Cover) ---------- */
.rp-home .hero.wp-block-cover{min-height:760px;align-items:flex-end;padding:0}
.rp-home .hero .wp-block-cover__background{background:linear-gradient(to top,rgba(4,16,24,.86) 2%,rgba(4,16,24,.32) 34%,rgba(4,16,24,.05) 60%,rgba(4,16,24,.34) 100%) !important;opacity:1 !important}
.rp-home .hero .wp-block-cover__inner-container{width:100%;max-width:1200px;margin:0 auto;padding:0 48px 60px}
.rp-home .hero .wrap{max-width:none;margin:0;padding:0}
.rp-home .hero .wrap > *{margin-left:0 !important;margin-right:0 !important;text-align:left}
.rp-home .hh1{color:#fff;font-size:66px;font-weight:800;line-height:1.02;text-transform:uppercase;letter-spacing:.004em;margin:0;max-width:820px}
.rp-home .hsub{color:rgba(255,255,255,.93);font-size:18px;line-height:1.55;margin:22px 0 26px;max-width:520px}
.rp-home .hero .wp-block-button__link{box-shadow:0 8px 20px rgba(228,2,46,.35)}
.rp-home .hrev{display:flex;align-items:center;gap:10px;margin-top:22px}
.rp-home .hrev .st{color:var(--gold);font-size:16px;letter-spacing:2px}
.rp-home .hrev .rt{color:rgba(255,255,255,.9);font-size:13px;font-weight:600}
.rp-home .goog{font-weight:700;letter-spacing:0}

/* ---------- INTRO ---------- */
.rp-home .intro{text-align:center;padding:64px 0 80px}
.rp-home .intro .lead{font-size:18px;line-height:1.62;color:var(--muted);margin:20px auto 0;max-width:680px}

/* ---------- USP ---------- */
.rp-home .usp{background:#fff;border-top:1px solid rgba(0,44,65,.07);border-bottom:1px solid rgba(0,44,65,.07)}
.rp-home .usp .wrap{display:flex;justify-content:center;gap:70px;padding-top:30px;padding-bottom:30px}
.rp-home .usp .uitem{display:flex;flex-direction:column;align-items:center;text-align:center;gap:11px;margin:0}
.rp-home .usp .uitem > *{margin:0}
.rp-home .usp .uicon{width:30px;height:30px;color:var(--navy)}
.rp-home .usp .uicon svg{width:100%;height:100%;display:block}
.rp-home .usp .ulab{font-size:11px;letter-spacing:.09em;color:#6b7278;text-transform:uppercase;font-weight:700}

/* ---------- SEE THE GYM ---------- */
.rp-home .seegym{padding-top:72px;padding-bottom:70px}
.rp-home .seegym .head{text-align:center;padding:0 48px 34px;max-width:none}
.rp-home .seegym .head .lead{font-size:17px;color:var(--muted);margin:16px 0 0}
.rp-home .triptych{display:grid;grid-template-columns:1fr 1fr;gap:0}
.rp-home .triptych > *{margin:0 !important}
.rp-home .gcol.wp-block-cover{min-height:480px;justify-content:flex-start;padding:0}
.rp-home .gcol .wp-block-cover__background{background:linear-gradient(to top,rgba(4,16,24,.66),rgba(4,16,24,0) 46%) !important;opacity:1 !important}
.rp-home .gcol .wp-block-cover__inner-container{position:absolute;inset:0;width:100%;height:100%;max-width:none;padding:0}
.rp-home .gcol .lab{position:absolute;left:26px;right:auto;bottom:22px;margin:0;color:#fff;font-weight:700;font-size:19px;letter-spacing:.01em;text-shadow:0 1px 8px rgba(0,0,0,.35);white-space:nowrap}
/* Centred between the coffee paragraph and the 'Also on site' line. The 56px
   gap above is WordPress's block spacing, which cannot be reduced from here,
   so the button's own padding goes to 0 and .onsite carries a matching 56px
   to balance it. Previously 102px above and 22px below. */
.rp-home .seebtn{text-align:center;padding-top:0}
.rp-home .seebtn .wp-block-buttons{justify-content:center}

/* ---------- REVIEW ---------- */
.rp-home .rev{background:#fff;text-align:center;padding:88px 0}
.rp-home .rev .wrap{max-width:820px}
.rp-home .rqm{color:var(--red);font-size:76px;font-weight:800;line-height:.4;height:34px}
.rp-home .rqt{font-size:30px;font-weight:700;line-height:1.34;color:var(--ink);margin:20px auto 20px;max-width:720px}
.rp-home .rst{color:var(--gold);font-size:22px;letter-spacing:4px;margin-bottom:16px}
.rp-home .rqa{font-size:13px;letter-spacing:.05em;color:#676d73;font-weight:600}
.rp-home .rqa b{color:var(--ink)}

/* ---------- RP FITNESS ONLINE ---------- */
.rp-home .online{background:var(--navy);color:#fff}
/* Online band: text stays in the content column on the left, the phone bleeds off the right edge (edge to edge, matching the /online/ phone treatment). */
.rp-home .online .wrap{max-width:none;margin:0;padding-left:max(48px,calc(50vw - 570px));padding-right:0;display:grid;grid-template-columns:minmax(0,500px) minmax(0,1fr);column-gap:70px;padding-top:84px;padding-bottom:84px;grid-template-rows:1fr auto auto auto auto 1fr;grid-template-areas:". ph" "onh ph" "onp ph" "onfeat ph" "btn ph" ". ph";justify-items:start}
.rp-home .online .eb{grid-area:eb;color:rgba(255,255,255,.82)}
.rp-home .onh{grid-area:onh;font-size:48px;font-weight:800;line-height:1.04;text-transform:uppercase;letter-spacing:.005em;margin:0;color:#fff}
.rp-home .onp{grid-area:onp;color:rgba(255,255,255,.9);font-size:17px;line-height:1.6;margin:22px 0 20px;max-width:460px}
.rp-home .onfeat{grid-area:onfeat;font-size:11px;letter-spacing:.09em;color:#9fb2bd;text-transform:uppercase;font-weight:700;margin:0 0 30px}
.rp-home .onfeat b{color:var(--red)}
.rp-home .online .onbtn{grid-area:btn}
.rp-home .phones{grid-area:ph;width:100%;align-self:center;margin:0}
.rp-home .phones img{border-radius:6px}

/* ---------- MEMBERSHIP ---------- */
.rp-home .mem{text-align:center;padding:100px 0}
.rp-home .mem .wrap{max-width:620px}
.rp-home .mem .lead{font-size:17px;line-height:1.6;color:var(--muted);margin:20px auto 30px;max-width:520px}
.rp-home .checks{display:inline-block;text-align:left;margin:0 auto}
.rp-home .chk{display:flex;align-items:center;gap:13px;font-size:16px;color:#23292f;margin:14px 0;font-weight:500}
.rp-home .chk p{margin:0}
.rp-home .ci{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--red);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}
.rp-home .memcta{margin-top:34px;text-align:center}
.rp-home .memcta .wp-block-buttons{justify-content:center}
.rp-home .membtn.wp-block-button{box-shadow:none;background:none;padding:0}
.rp-home .mem .membtn .wp-block-button__link{font-size:16px;padding:16px 46px}
.rp-home .qlink{margin:18px 0 0}
.rp-home .qlink a{color:var(--ink);font-weight:700;font-size:14px;text-decoration:underline;text-underline-offset:3px}

/* Header floating-over-hero treatment moved to the shared body.rp-hero-header
   pattern in rp.css (applies to the homepage and any other hero page). */


/* ============================ MOBILE (<= 860px) ============================ */
@media (max-width:860px){

	/* inner wrap should not double-pad on top of the section padding on mobile */
	.rp-home .wrap{padding-left:0;padding-right:0}

	/* hero
	   The inner container is a flex item of the cover, so by default it cannot
	   shrink below its min-content width, which is the longest word of the H1.
	   At 38px "INDEPENDENT" is 298px wide, and with the 24px side padding that
	   put the container 26px past a 320px screen. min-width:0 lets the container
	   shrink to the screen, and capping the H1 against the viewport keeps the
	   word itself inside the padding. 38px is unchanged from about 366px up, so
	   nothing moves on a normal phone. */
	.rp-home .hero .wp-block-cover__inner-container{padding:0 24px 34px;min-width:0}
	.rp-home .hh1{font-size:min(38px,10.4vw)}
	.rp-home .hsub{font-size:13.5px;line-height:1.5;margin:15px 0 19px;max-width:300px}
	.rp-home .hero .wp-block-button__link{font-size:14px;padding:14px 32px;box-shadow:0 10px 24px rgba(228,2,46,.4)}
	.rp-home .hrev .st{font-size:14px;letter-spacing:1px}
	.rp-home .hrev .rt{font-size:11px}

	/* global type */
	.rp-home .eb{text-align:center;letter-spacing:.14em}

	/* intro */
	.rp-home .intro{padding:46px 26px}
	.rp-home .intro .lead{font-size:17px;margin:15px auto 0}

	/* usp: clean 4-up grid, icons top-aligned */
	.rp-home .usp .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;align-items:start;padding:20px 12px}
	.rp-home .usp .uicon{width:25px;height:25px}
	.rp-home .usp .ulab{font-size:9.5px;letter-spacing:.06em;line-height:1.25}

	/* see the gym: full-width 16:9 stacked, one-line labels near the base */
	.rp-home .seegym{padding:44px 0 40px}
	.rp-home .seegym .head{padding:0 26px 0}
	.rp-home .triptych{grid-template-columns:1fr;margin-top:24px}
	.rp-home .gcol.wp-block-cover{min-height:0 !important;aspect-ratio:16/9 !important;height:56.25vw}
	.rp-home .gcol .lab{left:24px;bottom:16px;font-size:16px}
	.rp-home .seebtn{padding-top:0;margin-top:0}
	.rp-home .seebtn .wp-block-button__link{font-size:14px;padding:14px 30px}

	/* review */
	.rp-home .rev{padding:48px 28px}
	.rp-home .rev .wrap{max-width:none}
	.rp-home .rqm{font-size:50px;line-height:.5;height:26px}
	.rp-home .rqt{font-size:19px;margin:0 0 13px;max-width:none}
	.rp-home .rst{font-size:16px;letter-spacing:2px;margin-bottom:13px}

	/* online: fully centred, phones under the paragraph */
	.rp-home .online .wrap{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:none;padding:44px 26px;column-gap:0}
	.rp-home .online .wrap > *{margin-left:auto;margin-right:auto;max-width:100%}
	.rp-home .online .eb{order:1;color:#fff;opacity:.85}
	.rp-home .onh{order:2;font-size:28px;line-height:1.08}
	.rp-home .onp{order:3;font-size:15px;line-height:1.65;margin:16px 0 8px;max-width:320px}
	/* Not full bleed. The wrap is a centred flex column, so calc(50% - 50vw)
	   gets re-centred on the item outer width and lands 13px off to the left.
	   The asset is now trimmed to its content and has no transparent margin
	   left to hide that, so it sits inside the wrap padding instead. */
	.rp-home .online .wrap > .phones{order:4;width:100%;max-width:100%;margin:14px auto 0}
	.rp-home .onfeat{order:5;font-size:11px;line-height:1.9;margin:2px 0 22px}
	.rp-home .online .onbtn{order:6}
	.rp-home .online .onbtn .wp-block-button__link{font-size:14px;padding:14px 32px;box-shadow:0 10px 24px rgba(228,2,46,.4)}

	/* membership: full-width button */
	.rp-home .mem{padding:48px 28px}
	.rp-home .mem .wrap{max-width:none}
	.rp-home .mem .lead{font-size:17px;line-height:1.6;margin:16px auto 10px}
	/* ticks: each on its own single line, full width */
	.rp-home .mem .checks{display:inline-block;width:auto;text-align:left;margin:0 auto}
	.rp-home .mem .chk{gap:14px;font-size:16px}
	.rp-home .mem .chk p{white-space:normal}
	/* full-width join now button */
	.rp-home .mem .memcta .wp-block-buttons{width:100%}
	.rp-home .mem .membtn.wp-block-button{width:100%}
	.rp-home .mem .membtn .wp-block-button__link{display:block;width:100%;font-size:16px;padding:16px;box-shadow:0 8px 18px rgba(228,2,46,.28)}
	.rp-home .qlink a{font-size:12.5px}
}

/* ---------- PHOTO FRAMING (focal points for the three gym photos) ---------- */
/* NOTE: object-position moves the CROP WINDOW. A lower % shows more of the LEFT
   of the photo, which slides the subject visually to the RIGHT. */

/* weights floor: move the image content right (crop window left) */
.rp-home .gcol .wp-image-47{object-position:38% 50% !important}

/* functional zone: this is the sled push. Move the crop right so he sits at
   the right edge, fully in frame */
.rp-home .gcol .wp-image-48{object-position:72% 50% !important}

/* cardio floor: back to centre */
.rp-home .gcol .wp-image-49{object-position:50% 50% !important}

/* labels: keep all three visible and inside the frame */
.rp-home .gcol .lab{z-index:2}

/* ==========================================================================
   DECORATION - icons, Google letters, quote mark, tick circles.
   These are fixed design elements, drawn by CSS rather than stored as blocks,
   so the block editor stays clean (no invalid-content warnings, no oversized
   icons). To change an icon, edit the SVG data below.
   ========================================================================== */

/* USP icons (drawn as background images on empty group blocks) */
.rp-home .uicon{width:30px;height:30px;background-repeat:no-repeat;background-position:center;background-size:contain}
.rp-home .uicon--clock{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAyYzQxIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI5Ii8+PHBhdGggZD0iTTEyIDcuNVYxMmwzIDIiLz48L3N2Zz4=")}
.rp-home .uicon--parking{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAyYzQxIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSI0IiB5PSI0IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHJ4PSIzLjUiLz48cGF0aCBkPSJNOS41IDE2LjVWNy44aDMuMWEyLjM1IDIuMzUgMCAwIDEgMCA0LjdIOS41Ii8+PC9zdmc+")}
.rp-home .uicon--coffee{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAyYzQxIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNNC41IDkuNWgxMnY0LjVhNCA0IDAgMCAxLTQgNGgtNGE0IDQgMCAwIDEtNC00eiIvPjxwYXRoIGQ9Ik0xNi41IDEwLjVoMi4yYTIuMjUgMi4yNSAwIDAgMSAwIDQuNWgtMi4yIi8+PHBhdGggZD0iTTggMy4yYy0uNSAxIC41IDEuNSAwIDIuNU0xMS41IDMuMmMtLjUgMSAuNSAxLjUgMCAyLjUiLz48L3N2Zz4=")}
.rp-home .uicon--floors{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAyYzQxIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSI0IiB5PSIxMyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjYuNSIgcng9IjEuMiIvPjxyZWN0IHg9IjQiIHk9IjQuNSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjYuNSIgcng9IjEuMiIvPjwvc3ZnPg==")}

/* Google brand letters */
.rp-home .goog .g1{color:#4285F4}
.rp-home .goog .g2{color:#EA4335}
.rp-home .goog .g3{color:#FBBC05}
.rp-home .goog .g4{color:#34A853}

/* Hero review line (now a paragraph block) */
.rp-home p.hrev{display:flex;align-items:center;gap:10px;margin-top:22px}

/* Review section (now paragraph blocks) */
.rp-home p.rqm{margin:0}
.rp-home p.rst{margin-bottom:16px}

/* Membership tick circles (now paragraph blocks) */
.rp-home .chk p.ci{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--red);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;margin:0;line-height:1}

/* Red words use core's inline colour format with the theme's "action" swatch.
   This is what the block editor generates itself, so it always validates. */
.rp-home .has-action-color{color:var(--red) !important;background-color:transparent !important}
.rp-home mark.has-inline-color{background-color:transparent}

/* Star ratings and the Google word (now plain text, coloured by CSS) */
.rp-home p.hrev{color:rgba(255,255,255,.9);font-size:13px;font-weight:600;display:block}
.rp-home p.rst{color:var(--gold);font-size:22px;letter-spacing:4px;margin-bottom:16px}

/* ==========================================================================
   SEO BUILD - new and extended sections
   ========================================================================== */

/* --- SEE THE GYM: each photo paired with its own text --- */
.rp-home .triptych{display:grid;grid-template-columns:1fr 1fr;gap:0}
.rp-home .gitem{display:flex;flex-direction:column;margin:0 !important}
.rp-home .gitem .gtxt{padding:28px 32px 32px}
/* Four-tile gallery: column + row dividers, desktop only */
@media (min-width:861px){
	.rp-home .gitem .gtxt{flex:1 0 auto}
	.rp-home .gitem:nth-child(odd) .gtxt{border-right:1px solid rgba(0,44,65,.08)}
	.rp-home .gitem:nth-child(-n+2) .gtxt{border-bottom:1px solid rgba(0,44,65,.08)}
}
.rp-home .gitem .gtxt p{font-size:16px;line-height:1.65;color:var(--muted);margin:0}

/* --- the on-site services line, under the button --- */
.rp-home .onsite{text-align:center;padding:56px 48px 0;font-size:13.5px;line-height:1.7;color:#676d73;margin:0}
.rp-home .onsite a{color:var(--muted);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.rp-home .onsite a:hover{color:var(--red)}

/* --- REVIEWS: heading, main quote, supporting quote --- */
.rp-home .revh{margin:0 0 30px}
.rp-home .rev .rqm{margin-top:0}
.rp-home .rev2{max-width:660px;margin:42px auto 0;padding-top:28px;border-top:1px solid rgba(0,44,65,.1)}
.rp-home .rev2 .rst2{color:var(--gold);font-size:13px;letter-spacing:3px;margin:0 0 12px}
.rp-home .rev2 .q{font-size:14.5px;line-height:1.65;color:var(--muted);font-weight:500;margin:0}
.rp-home .rev2 .who{font-size:12.5px;letter-spacing:.05em;color:#676d73;font-weight:600;margin:12px 0 0}
.rp-home .revlink{margin:30px 0 0}
.rp-home .revlink a{color:var(--ink);font-weight:700;font-size:14px;text-decoration:underline;text-underline-offset:3px}

/* --- MEMBERSHIP price --- */
.rp-home .price{font-size:56px;font-weight:800;color:var(--ink);margin:10px 0 2px;letter-spacing:-.015em;line-height:1}
.rp-home .price span{font-size:16px;font-weight:600;color:var(--muted);letter-spacing:0}
.rp-home .compare{margin:16px 0 0}
.rp-home .compare a{color:var(--ink);font-weight:700;font-size:14px;text-decoration:underline;text-underline-offset:3px}

/* --- WHERE TO FIND US: slim strip, map pin, same language as the USP bar --- */
.rp-home .loc{background:#fff;border-top:1px solid rgba(0,44,65,.07)}
.rp-home .loc .wrap{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:48px;align-items:start;padding-top:44px;padding-bottom:44px}
.rp-home .loc .lh{font-size:19px;font-weight:800;text-transform:uppercase;letter-spacing:.01em;color:var(--ink);margin:0;line-height:1.2;max-width:170px}
.rp-home .loc .lh span{color:var(--red)}
.rp-home .loc .lh::before{content:"";display:block;width:26px;height:26px;margin:0 0 10px;background-repeat:no-repeat;background-size:contain;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZTQwMjJlIiBzdHJva2Utd2lkdGg9IjEuOSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTIgMjFzNy01LjYgNy0xMWE3IDcgMCAxIDAtMTQgMGMwIDUuNCA3IDExIDcgMTF6Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMCIgcj0iMi42Ii8+PC9zdmc+")}
.rp-home .locitem{margin:0 !important}
.rp-home .locitem .lct{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:#676d73;margin:0 0 8px}
.rp-home .locitem p{font-size:14.5px;line-height:1.6;color:var(--muted);margin:0}
.rp-home .locitem a{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* ============================ MOBILE (<= 860px) ============================ */
@media (max-width:860px){
	.rp-home .triptych{grid-template-columns:1fr}
	.rp-home .gitem .gtxt{border-right:0;border-bottom:1px solid rgba(0,44,65,.08);padding:22px 26px 26px}
	.rp-home .gitem .gtxt p{font-size:16px}
	.rp-home .gitem:last-child .gtxt{border-bottom:0}
	.rp-home .onsite{padding:26px 26px 0;font-size:12.5px}
	.rp-home .rev2{margin-top:28px;padding-top:24px}
	.rp-home .rev2 .q{font-size:14px}
	.rp-home .price{font-size:44px}
	.rp-home .loc .wrap{grid-template-columns:1fr;gap:22px;padding:36px 26px}
	.rp-home .loc .lh{font-size:22px;max-width:none;display:flex;align-items:center;gap:10px}
	.rp-home .loc .lh::before{margin:0;flex:0 0 24px;width:24px;height:24px}
	/* stacked to one column, the small labels are the only block separators, so
	   step them up to the design system's medium size (1rem) to read as clear
	   section markers above the 14.5px body (matches the contact info band). */
	.rp-home .locitem .lct{font-size:1rem;letter-spacing:.1em}
}

/* ---------- Hero subhead in-text link ----------
   The hero subhead is white text over the dark hero photo, so this link is white
   underlined to stay legible (the design system's navy in-text link is for light
   bands; navy would be invisible here). Red stays reserved for buttons. */
.rp-home .hsub a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.rp-home .hsub a:hover{color:#fff}
