/* Homeley V2: independent editorial layer over V1. Reference-first, not a template copy. */
:root { --brand-rose:#f56889; --brand-teal:#22b7a6; --brand-deep:#092d2b; }
html { scroll-padding-top:110px; }
.site-header { position:sticky; top:0; z-index:90; height:91px; background:rgba(255,253,249,.96); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); transition:box-shadow .25s,height .25s; }
.site-header.is-scrolled { box-shadow:0 10px 30px rgba(5,37,32,.12); height:79px; }
.site-header .nav-wrap { position:relative; }
.site-header .brand { width:192px; max-width:22vw; margin-left:0; padding:6px 0; display:grid;place-items:center; }
.site-header .brand img { width:100%; height:auto; max-height:82px; object-fit:contain; }
.site-header.is-scrolled .brand { width:171px; }
.main-nav { gap:clamp(14px,1.8vw,26px); }
.main-nav a { min-height:48px; display:flex;align-items:center;transition:color .2s; }
.main-nav a[aria-current="location"] { color:#b73a61; }
.main-nav a[aria-current="location"]::after { right:0; }
.nav-cta { padding:14px 17px; font-size:.82rem; min-height:48px; }
/* New hero: image communicates family, actual employees appear later. */
.hero.hero-v2 { background:#152e29; color:#fff; min-height:675px; padding:102px 0 95px; isolation:isolate; }
.hero-v2 .hero-radial { display:none; }
.hero-v2 .hero-grid { grid-template-columns:minmax(0, .92fr) minmax(0,1.08fr); position:static; align-items:center; gap:3vw; }
.hero-v2 .hero-copy { position:relative; z-index:3; max-width:660px; padding:12px 0; }
.hero-v2 .hero-copy .eyebrow { color:#c0f5e8; font-size:.86rem; letter-spacing:.01em; margin-bottom:22px; }
.hero-v2 .hero-copy h1 { font-size:clamp(3.3rem,5.35vw,5.7rem); line-height:1.06; letter-spacing:-.052em; color:#fff; text-wrap:balance; max-width:650px; margin-bottom:22px; }
.hero-v2 .hero-copy h1 em { color:#ff8aaa; }
.hero-v2 .hero-lead { color:#e2ebe5; font-size:1.08rem; max-width:500px; line-height:1.62; margin-bottom:27px; }
.hero-v2 .hero-actions .text-link { color:#f4faf7; border-bottom-color:#77ead7; }
.hero-v2 .hero-actions .text-link:hover { color:#ffb0c2; }
.hero-v2 .hero-trust { border-color:rgba(255,255,255,.3); max-width:520px; margin-top:39px; }
.hero-v2 .hero-trust .hero-trust-sub { color:#c5ded4; }
.hero-v2 .hero-visual { position:absolute; z-index:0; inset:0; padding:0; margin:0; max-width:none; pointer-events:none; }
.hero-v2 .hero-visual .hero-picture { position:absolute; inset:0; width:100%; height:100%; border:0; border-radius:0; background:#31483d;box-shadow:none;max-width:none; }
.hero-v2 .hero-visual .hero-picture img { width:100%; height:100%; object-fit:cover; object-position:center 45%; animation:hero-kenburns 16s ease-out both; }
.hero-v2 .hero-visual::after { content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,39,36,.97) 0%,rgba(8,39,36,.92) 27%,rgba(8,39,36,.71) 46%,rgba(8,39,36,.05) 75%,rgba(8,39,36,.04) 100%); }
.hero-v2 .photo-disclaimer { position:absolute; right:26px; bottom:4px; color:rgba(255,255,255,.85); z-index:2; font-size:.68rem; }
.hero-v2 .hero-bottom-rule { z-index:3; height:5px; }
@keyframes hero-kenburns { from{ transform:scale(1.075); }to{ transform:scale(1); } }
/* Replace unicode decorative glyphs with consistent vector assets. */
.proof-icon { display:grid;place-items:center; }
.proof-icon svg { width:20px;height:20px; stroke:#e95d82;fill:none;stroke-width:1.8; stroke-linecap:round;stroke-linejoin:round; }
.plan-art svg { width:96px;height:96px;color:#e75f7f;transition:transform .3s; }
.plan-card:nth-child(3) .plan-art svg{color:#188c7c}
.plan-card:hover .plan-art svg { transform:translateY(-4px) scale(1.04); }
.plan-card .plan-number { font-size:.81rem; }
/* Reviews: navigation belongs to the carousel; CTA and controls are deliberately prominent. */
.reviews-section { overflow:hidden; }
.reviews-top { align-items:end; }
.review-rating { border-left:0; border-radius:18px; background:#fffdf9; padding:20px 24px;box-shadow:0 12px 40px rgba(9,46,44,.05); }
.review-rating a { display:inline-flex;min-height:42px;align-items:center;gap:7px;font-weight:800; }
.reviews-controls { display:flex;align-items:end;justify-content:space-between;gap:20px; margin:26px 0 18px; padding:0; }
.reviews-controls p:not(.review-counter) { max-width:650px; }
.slider-buttons { display:flex;align-items:center;gap:9px; background:#e4eae5; padding:8px; border-radius:100px; border:1px solid var(--line);box-shadow:0 6px 18px rgba(10,45,36,.06); }
.slider-buttons .review-counter { font-size:.8rem;letter-spacing:.09em;white-space:nowrap;margin:0 14px;color:#2d6259;font-weight:800; }
.slider-buttons .slider-arrow { width:46px; height:46px; border-radius:50%;display:grid;place-items:center; background:#fffdf9; border:1px solid rgba(9,46,44,.12); color:#173b36; font-size:1.35rem;line-height:1;transition:background .2s,transform .2s; }
.slider-buttons .slider-arrow:hover { background:#fbcaD6;transform:translateY(-2px); }
.slider-buttons .slider-arrow:disabled { opacity:.38; cursor:default; transform:none;background:transparent; }
.reviews-track { scrollbar-width:none; scroll-snap-type:x mandatory;touch-action:auto;cursor:grab; }
.reviews-track.dragging { cursor:grabbing;scroll-snap-type:none;user-select:none; }
.reviews-track::-webkit-scrollbar { display:none; }
.review-card { scroll-snap-align:start; }
.review-progress { height:4px;margin:20px 0 22px;border-radius:3px;overflow:hidden;background:#dce3dd; }
.review-progress>span { display:block;height:100%;width:25%;background:var(--rose);border-radius:3px;transition:transform .3s ease,width .3s ease; }
.reviews-bottom { align-items:center;gap:26px; }
.reviews-more { flex:none; background:#103f39; color:#fff!important; padding:17px 21px; min-height:52px; border-radius:50px; text-decoration:none!important; font-size:.86rem;display:inline-flex!important;align-items:center;gap:12px;box-shadow:0 10px 25px rgba(9,45,42,.15); }
.reviews-more:hover { background:#16675d; }
.reviews-bottom>span { font-size:.76rem; max-width:480px; }
/* Inline video feels like a valuable piece of brand content rather than a hidden modal. */
.video-inline-wrap { background:#f2f5f0; margin-top:88px; padding:74px 0; }
.video-inline-grid { display:grid;grid-template-columns:.73fr 1.27fr; gap:7%;align-items:center; }
.video-intro h3 { font-size:clamp(2rem,3.35vw,3.5rem);line-height:1.1;letter-spacing:-.055em;font-weight:720;margin-bottom:20px; }
.video-intro>p:last-child { max-width:350px;color:var(--muted); }
.video-player { background:#0c3330;border-radius:23px;overflow:hidden;box-shadow:0 17px 45px rgba(7,30,29,.18); }
.video-player video { display:block;width:100%;max-height:430px;object-fit:contain;background:#0c3330; }
/* Reassuring lead card and explicit steps. */
.quote-grid { gap:60px; grid-template-columns:.87fr 1.13fr; }
.quote-form-v2 { padding:35px 37px; border:1px solid #e5ede7; border-radius:27px; }
.quote-form-v2 .form-label { margin:0 0 25px; }
.quote-form-v2 .form-label h3 { letter-spacing:-.045em;font-size:1.7rem;line-height:1.14;margin:0 0 9px; }
.quote-form-v2 .form-intro { font-size:.89rem;line-height:1.5;font-weight:450;color:#5b736a;margin:0;max-width:490px; }
.quote-form-v2 .form-step-label { font-size:.83rem;font-weight:800;letter-spacing:0;margin:0 0 12px;color:#275850; }
.quote-form-v2 .plan-options { margin-bottom:22px; }
.quote-form-v2 .field-row { margin-bottom:2px; }
.quote-form-v2 .quote-submit { white-space:normal;line-height:1.25;text-align:center;font-size:.93rem; }
.quote-form-v2 .form-help { font-size:.75rem; }
/* Footer: physical presence + navigable map + unmistakeable contact and Instagram. */
.site-footer { padding:88px 0 25px; background:#091f1e; }
.footer-topline { display:grid;grid-template-columns:1.1fr .72fr; gap:9%;align-items:end;margin-bottom:42px; }
.footer-topline h2 { font-size:clamp(2.4rem,4.4vw,4.6rem);max-width:740px;line-height:1.05; }
.footer-topline h2 em{ color:#ff93ab; }
.footer-topline>p { color:#bad2c8;margin-bottom:5px;max-width:420px; }
.location-grid { display:grid;grid-template-columns:.8fr 1.2fr;border:1px solid rgba(255,255,255,.15);border-radius:23px;overflow:hidden;min-height:327px;background:#133a36; }
.location-card { padding:36px;display:flex;flex-direction:column;align-items:flex-start; }
.location-card h3 { font-size:1.45rem;letter-spacing:-.03em;margin-bottom:24px; }
.location-card address { font-style:normal;line-height:1.8;color:#d4e5dc;margin-bottom:auto;font-size:.99rem; }
.location-card .button-light-map { font-size:.83rem;padding:14px 18px;background:#e3f6ed;color:#0d4038;margin-top:18px;min-height:48px;gap:12px; }
.location-card .button-light-map:hover { background:#fff; }
.map-external-note { font-size:.71rem;color:#9cb9ae;margin:12px 0 0;line-height:1.3; }
.map-frame { background:#c8ded2;min-height:327px; }
.map-frame iframe { width:100%;height:100%;min-height:327px;border:0;display:block;filter:saturate(.8); }
.footer-contact-grid { display:grid;grid-template-columns:.77fr 1.15fr 1.08fr;gap:7%;padding:65px 0 50px; }
.footer-brand-block img { width:168px;height:auto;max-height:96px;object-fit:contain; }
.footer-brand-block p { font-size:.79rem;color:#adc3b9;margin-top:8px; }
.footer-contact-grid h3{font-size:1.08rem;letter-spacing:-.01em;margin-bottom:20px; }
.footer-contact-link { display:grid;grid-template-columns:34px 1fr;gap:0 10px;color:#b7d0c5;font-size:.8rem;line-height:1.3;margin:0 0 16px;min-height:45px;align-content:center; }
.footer-contact-link strong{grid-column:2;font-size:.93rem;color:#fff;overflow-wrap:anywhere;margin-top:3px; }
.footer-contact-icon { grid-row:span 2;border:1px solid #56877a;color:#8be3cf;border-radius:9px;width:32px;height:32px;display:grid;place-items:center;font-size:.7rem;font-weight:800; }
.footer-social-block p{color:#b9cec4;font-size:.87rem;max-width:310px; }
.instagram-button { display:inline-flex;background:transparent;border:1px solid #f58da7;color:#fff;font-size:.81rem;padding:14px 18px;min-height:53px;max-width:100%;white-space:normal;text-align:left;line-height:1.25;gap:8px; }
.instagram-button:hover { background:var(--rose);color:#081d1a; }
.footer-bottom { margin-top:0; }
@media(max-width:1150px) {
 .site-header .brand {width:158px;}.site-header.is-scrolled .brand{width:151px;}.main-nav{gap:12px;font-size:.78rem}.nav-cta{font-size:.75rem;gap:7px}
 .hero-v2 .hero-copy h1{font-size:clamp(3rem,5.3vw,4.8rem)}
}
@media(max-width:900px) {
 html{scroll-padding-top:86px}
 .site-header {height:81px;}.site-header.is-scrolled{height:76px;}
 .site-header .brand {width:152px;max-width:50vw;}.site-header.is-scrolled .brand{width:144px;}
 .main-nav {top:100%;background:#fffdfa;box-shadow:0 20px 30px rgba(0,0,0,.13);}
 .main-nav a {min-height:48px;}
 .menu-toggle{min-width:45px;min-height:45px;}
 .hero.hero-v2 {min-height:590px;padding:77px 0 70px;}
 .hero-v2 .hero-copy h1 {font-size:clamp(3rem,5.7vw,4.6rem);}
 .hero-v2 .hero-visual .hero-picture img {object-position:62% center;}
 .hero-v2 .hero-visual::after {background:linear-gradient(90deg,rgba(8,39,36,.96) 0%,rgba(8,39,36,.83) 38%,rgba(8,39,36,.24) 85%);}
 .footer-topline{grid-template-columns:1fr 1fr;gap:5%;}.footer-contact-grid{gap:5%}
}
@media(max-width:690px) {
 html{scroll-padding-top:80px}
 .site-header {height:75px;}.site-header.is-scrolled{height:70px;}
 .site-header .brand{width:143px;margin-left:0;}.site-header .brand img{height:auto;max-height:68px;}
 .hero.hero-v2 {padding:45px 0 0;min-height:auto;background:#092d2b;}
 .hero-v2 .hero-grid {display:flex;flex-direction:column;gap:25px;align-items:stretch;}
 .hero-v2 .hero-copy {width:100%;padding:0 0 7px;}
 .hero-v2 .hero-copy h1 {font-size:clamp(2.57rem,10.4vw,3.95rem);line-height:1.07;max-width:570px;margin-bottom:20px;}
 .hero-v2 .hero-copy .eyebrow{margin-bottom:19px;font-size:.76rem;line-height:1.4;}
 .hero-v2 .hero-lead{font-size:.96rem;color:#d8e8e2;line-height:1.58;}
 .hero-v2 .hero-trust {margin-top:27px;padding:18px 0;}
 .hero-v2 .hero-visual {position:relative;width:calc(100% + 38px);margin-left:-19px;inset:auto;height:285px;overflow:hidden;}
 .hero-v2 .hero-visual .hero-picture {position:relative;width:100%;height:100%;border-radius:0;}
 .hero-v2 .hero-visual .hero-picture img{object-position:66% 48%;}
 .hero-v2 .hero-visual::after {background:linear-gradient(180deg,#092d2b 0%,rgba(9,45,43,.15) 30%,rgba(9,45,43,0) 70%);}
 .hero-v2 .photo-disclaimer{bottom:7px;right:17px;font-size:.64rem;}
 .hero-v2 .hero-bottom-rule{height:4px;}
 .review-rating {margin-top:22px;}
 .reviews-controls {align-items:center;margin:20px 0 15px;gap:10px;}
 .reviews-controls p:not(.review-counter){display:none;}
 .slider-buttons {width:100%;justify-content:space-between;}
 .slider-buttons .slider-arrow{width:48px;height:48px;}
 .reviews-more {width:100%;justify-content:center;min-height:54px;text-align:center;}
 .reviews-bottom {flex-direction:column-reverse;align-items:stretch;gap:14px;}
 .video-inline-wrap{margin-top:72px;padding:55px 0;}
 .video-inline-grid{grid-template-columns:1fr;gap:20px;}
 .video-intro h3{font-size:clamp(2rem,8vw,3rem);}
 .video-player{border-radius:18px;}
 .quote-form-v2{padding:27px 20px;}
 .quote-form-v2 .form-label h3{font-size:1.55rem;}
 .quote-form-v2 .form-intro{font-size:.84rem;}
 .quote-form-v2 .plan-options{grid-template-columns:1fr;gap:8px;}
 .quote-form-v2 .option span{min-height:46px;justify-content:start;text-align:left;display:flex;padding:10px 15px;font-size:.89rem;}
 .quote-form-v2 .form-step-label{font-size:.81rem;}
 .site-footer{padding:60px 0 104px;}
 .footer-topline{grid-template-columns:1fr;gap:10px;margin-bottom:29px;}
 .footer-topline h2{font-size:clamp(2.3rem,9vw,3.3rem);}
 .location-grid{grid-template-columns:1fr;}
 .location-card {padding:25px;min-height:262px;}
 .location-card h3{margin-bottom:13px;}
 .map-frame,.map-frame iframe{min-height:290px;}
 .footer-contact-grid {grid-template-columns:1fr;gap:28px;padding:48px 0 37px;}
 .footer-brand-block img {width:155px;}
 .instagram-button{width:100%;justify-content:center;}
}
@media(max-width:370px) {
 .site-header .brand{width:135px;}
 .hero-v2 .hero-visual{width:calc(100% + 30px);margin-left:-15px;}
 .hero-v2 .hero-copy h1{font-size:2.47rem;}
 .hero-v2 .hero-actions .button{padding:15px 17px;}
 .hero-v2 .hero-actions .text-link{font-size:.83rem;}
}
@media(prefers-reduced-motion:reduce){.hero-v2 .hero-visual .hero-picture img {animation:none!important;} .review-progress>span{transition:none;}}
