@font-face { font-family:"Archivo RDC"; src:url("assets/fonts/archivo-latin.woff2") format("woff2"); font-display:swap; font-style:normal; font-weight:100 900; }
:root { --paper:#f5f1e8; --white:#fffdf8; --ink:#17201d; --soft:#53605a; --sage:#58695e; --mist:#dbe3dd; --line:rgba(23,32,29,.2); --light-line:rgba(255,253,248,.23); --control-radius:999px; --pad:clamp(1.25rem,5vw,5.5rem); --ease:cubic-bezier(.23,1,.32,1); }
* { box-sizing:border-box; }
html { scroll-padding-top:100px; background:var(--paper); scrollbar-color:var(--sage) var(--paper); }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Archivo RDC",Arial,sans-serif; -webkit-font-smoothing:antialiased; }
::selection { color:var(--white); background:var(--sage); }
a { color:inherit; text-underline-offset:.25em; }
button { font:inherit; border:0; border-radius:0; cursor:pointer; }
img { display:block; max-width:100%; height:auto; }
svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
figure,blockquote,p,h1,h2,h3,dl,dd { margin:0; }
h1,h2 { font-weight:350; letter-spacing:-.04em; line-height:1.02; text-wrap:balance; }
h1 { font-size:clamp(4.3rem,7.6vw,6rem); }
h2 { font-size:clamp(2.6rem,4.5vw,4.5rem); }
h3 { font-size:1.35rem; font-weight:450; letter-spacing:-.02em; }
p { line-height:1.7; }
small { font-size:.8rem; line-height:1.5; }
:focus-visible { outline:3px solid #49785e; outline-offset:5px; box-shadow:0 0 0 2px var(--white); }
/* Anchor destinations receive reading focus without drawing a box around a section. */
:is(main,section,.leave-review)[tabindex="-1"]:focus { outline:none; box-shadow:none; }
[hidden] { display:none !important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.svg-sprite { position:absolute; width:0; height:0; overflow:hidden; }
.section-shell { width:100%; max-width:1512px; margin-inline:auto; padding-inline:var(--pad); }
.skip-link { position:fixed; z-index:400; top:12px; left:12px; min-height:44px; padding:14px; color:var(--white); background:var(--ink); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.concept-note { display:flex; justify-content:space-between; gap:1rem; padding:10px var(--pad); color:#e0e7e1; background:var(--ink); font-size:.75rem; line-height:1.4; }
.site-header { position:sticky; top:0; z-index:50; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:2rem; min-height:94px; padding:17px var(--pad); background:var(--paper); transition:background-color 220ms var(--ease),box-shadow 220ms var(--ease); }
.site-header.is-scrolled { background:rgba(245,241,232,.86); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); box-shadow:0 8px 25px rgba(23,32,29,.07); }
.brand { display:flex; align-items:center; min-height:44px; width:225px; flex-shrink:0; }
.primary-nav { display:flex; justify-content:center; gap:2rem; }
.header-cta { justify-self:end; }
.primary-nav a,.footer-links a { display:inline-flex; align-items:center; min-height:44px; font-size:.875rem; font-weight:550; text-decoration:none; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:20px; min-height:54px; padding:9px 10px 9px 24px; border:1px solid transparent; border-radius:var(--control-radius); font-size:.95rem; font-weight:500; text-decoration:none; transition:background-color 220ms var(--ease),color 220ms var(--ease),border-color 220ms var(--ease),transform 220ms var(--ease); }
.button-dark { color:var(--white); background:var(--ink); }
.button-light { color:var(--ink); background:var(--white); }
.button-outline { color:var(--white); border-color:var(--light-line); background:transparent; }
.button:active { transform:scale(.985); }
.action-icon { display:grid; place-items:center; flex-shrink:0; width:34px; height:34px; border-radius:50%; color:inherit; background:rgba(23,32,29,.07); transition:background-color 220ms var(--ease),color 220ms var(--ease); }
.action-icon svg { width:18px; height:18px; }
.button-outline .action-icon { background:rgba(255,253,248,.09); }
.header-cta.button { padding:0; gap:12px; background:transparent; color:var(--ink); border:0; border-radius:6px; }
.header-cta .action-icon { width:42px; height:42px; background:var(--ink); color:var(--white); }
.header-number { display:block; margin-top:4px; font-size:.8rem; font-weight:400; color:var(--soft); }
.quiet-link { display:inline-flex; align-items:center; gap:.7rem; min-height:44px; padding-block:10px; font-size:.9rem; font-weight:500; text-decoration:underline; text-decoration-thickness:1px; text-decoration-color:var(--line); text-underline-offset:6px; background:transparent; color:var(--ink); transition:text-decoration-color 220ms var(--ease); }
.light-link { color:var(--white); }
.quiet-link.light-link { text-decoration-color:var(--light-line); }
.quiet-link svg,.button svg { transition:transform 180ms var(--ease); }
.hero { position:relative; display:flex; align-items:flex-end; min-height:650px; height:min(770px,calc(100svh - 130px)); color:var(--white); background:#56635b; }
.hero-media,.hero-shade { position:absolute; inset:0; }
.hero-media { overflow:hidden; }
.hero-media img { width:100%; height:100%; object-fit:cover; object-position:50% 57%; }
.hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; opacity:0; transition:opacity 300ms var(--ease); }
.hero.is-video-playing .hero-video { opacity:1; }
.hero-motion { position:absolute; z-index:3; top:18px; right:var(--pad); display:grid; place-items:center; width:44px; height:44px; border:1px solid rgba(255,253,248,.65); border-radius:50%; color:var(--white); background:rgba(9,18,13,.5); transition:background-color 180ms var(--ease); }
.hero-motion:hover { background:rgba(9,18,13,.8); }
.hero-motion svg { width:20px; height:20px; stroke-width:2; }
.hero-motion .hero-play-icon { display:none; }
.hero-motion[data-paused] .hero-play-icon { display:block; }
.hero-motion[data-paused] .hero-pause-icon { display:none; }
.hero-motion:focus-visible { outline-color:var(--white); }
.hero-shade { z-index:1; background:linear-gradient(180deg,rgba(9,18,13,.28),rgba(9,18,13,.62) 40%,rgba(9,18,13,.83)); }
.hero-content { position:relative; z-index:2; width:100%; padding:70px var(--pad) 130px; text-align:center; }
.hero h1 { font-size:clamp(3rem,5.8vw,5.25rem); max-width:20ch; margin-inline:auto; }
.hero-personal { color:#e8e0d1; }
.hero-content > p { margin:25px auto 0; font-size:1.08rem; max-width:52ch; text-wrap:pretty; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:1.5rem; margin-top:30px; }
.hero-film-link { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:44px; margin-top:12px; color:inherit; font-size:.85rem; text-decoration:none; }
.hero-film-link svg { width:20px; height:20px; }
.hero-film-link > span { padding-left:10px; border-left:1px solid currentColor; font-size:.8rem; }
.hero-film-link:hover { text-decoration:underline; text-underline-offset:5px; }
.hero-proof { display:flex; position:absolute; z-index:2; left:var(--pad); right:var(--pad); bottom:40px; min-height:44px; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px; text-decoration:none; font-size:.85rem; }
.hero-proof > span:last-child { color:#eceee7; }
.star-row { display:inline-flex; gap:3px; color:#fbbc04; }
.star-row svg { width:15px; height:15px; fill:currentColor; stroke:none; }
.care { display:grid; grid-template-columns:1fr 1fr; column-gap:7%; row-gap:48px; max-width:1240px; padding-block:clamp(65px,8vw,115px); }
.care-heading { align-self:center; text-align:center; }
.care-heading .quiet-link { margin-top:27px; }
.care-copy > p { margin-top:22px; color:var(--soft); max-width:62ch; }
.care-facts { margin-top:32px; padding-top:22px; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.care-facts dt { font-size:.9rem; font-weight:600; margin-bottom:8px; }
.care-facts dd { font-size:.85rem; color:var(--soft); line-height:1.5; }
.plan-questions { grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr; column-gap:7%; align-items:start; padding-top:38px; border-top:1px solid var(--line); }
.plan-questions h3 { text-align:center; padding-top:18px; }
.plan-answers { min-width:0; }
.plan-answers details { border-bottom:1px solid var(--line); }
.plan-answers summary { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:62px; padding-block:17px; font-size:.95rem; font-weight:500; line-height:1.5; list-style:none; cursor:pointer; }
.plan-answers summary::-webkit-details-marker { display:none; }
.plan-answers summary svg { width:18px; height:18px; }
.plan-answers details[open] .faq-plus { display:none; }
.plan-answers p { padding:0 32px 20px 0; font-size:.95rem; color:var(--soft); }
.plan-answers p a { display:inline-flex; align-items:center; min-height:44px; color:var(--ink); }
.reviews { color:var(--white); background:var(--ink); }
.reviews-inner { padding-block:clamp(64px,7vw,104px); }
.reviews-heading { display:flex; flex-direction:column; align-items:center; gap:30px; padding-bottom:34px; text-align:center; }
.reviews-heading h2 { font-size:clamp(2.6rem,4vw,3.75rem); }
.review-rating { display:grid; grid-template-columns:auto auto; align-items:center; gap:12px 16px; text-align:left; }
.review-score { font-size:3.25rem; font-weight:350; letter-spacing:-.04em; line-height:1; }
.review-rating .star-row { gap:5px; }
.review-rating .star-row svg { width:16px; height:16px; }
.review-rating p { margin-top:6px; font-size:.9rem; line-height:1.3; }
.review-carousel { position:relative; display:flex; flex-direction:column; max-width:1120px; margin-inline:auto; }
.review-spread { order:1; display:grid; grid-template-columns:1fr; gap:56px; touch-action:pan-y pinch-zoom; }
.review-slide { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); align-items:center; gap:clamp(28px,5vw,72px); min-width:0; text-align:left; }
.review-photo { min-width:0; align-self:start; }
.review-photo img { width:100%; aspect-ratio:3 / 2; height:auto; object-fit:cover; object-position:50% 58%; border-radius:6px; background:var(--soft); }
.review-photo figcaption { margin-top:12px; color:#c2cbc4; font-size:.8rem; line-height:1.5; }
.review-quote { padding-block:24px; }
.review-quote > p { max-width:24ch; font-size:clamp(1.8rem,3.1vw,2.85rem); line-height:1.24; letter-spacing:-.025em; font-weight:350; text-wrap:pretty; }
[data-reviewer="dan-jeep"] .review-photo img { object-position:40% 50%; }
[data-reviewer="christian-camry"] .review-photo img { object-position:48% 50%; }
[data-reviewer="matthew-bmw"] .review-photo img { object-position:50% 60%; }
.review-carousel[data-ready] .review-spread { grid-template-columns:1fr; gap:0; }
.review-carousel[data-ready] .review-slide { grid-area:1 / 1; opacity:0; visibility:hidden; pointer-events:none; }
.review-carousel[data-ready] .review-slide.is-current { opacity:1; visibility:visible; pointer-events:auto; animation:reviewIn 420ms var(--ease); }
@keyframes reviewIn { from { opacity:0; } to { opacity:1; } }
blockquote footer { display:flex; gap:13px; align-items:center; margin-top:30px; }
blockquote footer strong { display:block; font-size:.9rem; font-weight:550; }
blockquote footer small { display:block; color:#c2cbc4; }
.review-spread blockquote footer { justify-content:flex-start; }
.review-spread blockquote footer > span { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:inherit; gap:8px 14px; text-align:inherit; }
.review-carousel .review-controls { order:2; display:flex; align-items:center; justify-content:center; gap:22px; margin-top:26px; }
.rail-controls button { display:grid; place-items:center; min-width:48px; min-height:48px; padding:10px; color:inherit; background:transparent; border:1px solid var(--line); border-radius:50%; transition:background-color 180ms var(--ease),color 180ms var(--ease),border-color 180ms var(--ease); }
.reviews .rail-controls button { border-color:var(--light-line); }
.rail-controls button:disabled { opacity:.35; cursor:default; }
.rail-controls button:active:not(:disabled) { background:var(--mist); color:var(--ink); }
.rail-controls [data-rail-prev] svg { transform:rotate(180deg); }
.rail-controls span { min-width:45px; text-align:center; font-size:.9rem; font-variant-numeric:tabular-nums; }
.leave-review { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; max-width:820px; margin:36px auto 0; text-align:center; padding-top:34px; border-top:1px solid var(--light-line); scroll-margin-top:14px; }
.leave-review p { margin-top:9px; color:#c2cbc4; font-size:.9rem; }
.leave-review-action { display:flex; flex-direction:column; align-items:center; gap:12px; }
.leave-review-action small { color:#c2cbc4; }
.work { padding-block:clamp(64px,7vw,100px); }
.work-heading { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:10px; margin-bottom:38px; text-align:center; }
.work-heading p { color:var(--soft); margin-top:17px; }
.work-film { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(40px,7vw,100px); max-width:960px; margin:0 auto 70px; padding:40px 0 48px; border-bottom:1px solid var(--line); }
.film-copy { max-width:30ch; justify-self:center; }
.film-copy h3 { font-size:clamp(2.5rem,4.5vw,4rem); font-weight:350; line-height:1.08; letter-spacing:-.035em; }
.film-copy > p { margin-top:24px; color:var(--soft); }
.film-copy .film-length { margin-top:18px; font-size:.85rem; }
.film-copy .quiet-link { margin-top:24px; }
.film-player { min-width:0; width:100%; }
.film-frame { position:relative; width:min(100%,360px); aspect-ratio:9 / 16; margin-inline:auto; overflow:hidden; border-radius:6px; background:var(--ink); }
.film-frame video { display:block; width:100%; height:100%; object-fit:contain; }
.film-start { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; width:100%; padding:24px; color:var(--white); background:transparent; }
.film-play-icon { display:grid; place-items:center; width:76px; height:76px; border-radius:50%; color:var(--ink); background:var(--white); transition:transform 220ms var(--ease),background-color 220ms var(--ease); }
.film-play-icon svg { width:28px; height:28px; fill:currentColor; stroke:none; margin-left:4px; }
.film-start:focus-visible { outline-offset:-6px; outline-color:var(--white); box-shadow:none; }
.film-start:disabled { cursor:wait; }
.film-description { margin-top:14px; color:var(--soft); text-align:center; font-size:.85rem; }
.film-feedback { margin-top:10px; color:var(--soft); font-size:.9rem; text-align:center; }
.film-feedback:empty { display:none; }
.film-fallback { display:block; width:fit-content; margin:10px auto 0; padding:12px 0; font-size:.9rem; }
.work-gallery { display:grid; grid-template-columns:1.08fr .84fr 1.08fr; gap:24px; }
.work-gallery figure { min-width:0; }
.work-gallery img { width:100%; height:clamp(340px,36vw,490px); border-radius:6px; object-fit:cover; background:var(--mist); }
.work-gallery .photo-polishing { object-position:50% 18%; }
.work-gallery .photo-wash { object-position:50% 78%; }
.work-gallery .photo-finish { object-position:50% 63%; }
.work-gallery figcaption { text-align:center; margin-top:16px; padding-top:12px; border-top:1px solid var(--line); font-size:.875rem; color:var(--soft); }
.contact { background:var(--mist); }
.contact-inner { display:flex; flex-direction:column; align-items:center; gap:32px; padding-block:80px; text-align:center; }
.contact p { color:var(--soft); margin-top:23px; }
.contact-action { display:flex; flex-direction:column; align-items:center; }
.contact-number { display:flex; align-items:center; gap:20px; min-height:54px; font-size:clamp(1.9rem,3.4vw,3.2rem); font-weight:350; letter-spacing:-.03em; line-height:1.4; text-decoration:none; padding-bottom:12px; border-bottom:1px solid var(--line); transition:color 220ms var(--ease),border-color 220ms var(--ease); }
.contact-number .action-icon { width:50px; height:50px; background:var(--ink); color:var(--white); }
.contact-number .action-icon svg { width:22px; height:22px; transition:transform 220ms var(--ease); }
.contact-action > span { margin-top:17px; color:var(--soft); font-size:.9rem; }
.contact h2 { max-width:15ch; margin-inline:auto; }
.site-footer { padding-block:45px 25px; }
.footer-main { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px; text-align:center; }
.footer-brand { width:210px; flex-shrink:0; }
.footer-main p { color:var(--soft); font-size:.8rem; }
.footer-links { display:flex; justify-content:center; flex-wrap:wrap; gap:22px; }
.footer-credit { display:flex; align-items:center; justify-content:center; gap:6px; width:max-content; max-width:100%; min-height:44px; margin:12px auto 0; color:var(--soft); font-size:.72rem; text-decoration:none; }
.footer-credit img { width:120px; height:auto; transition:opacity 180ms var(--ease); }
.footer-credit svg { width:12px; height:12px; flex-shrink:0; transition:transform 180ms var(--ease); }
.footer-credit:hover img { opacity:.7; }
.footer-credit:hover svg { transform:translate(2px,-2px); }
.concept-details { text-align:center; margin-top:30px; border-top:1px solid var(--line); padding-top:10px; color:var(--soft); font-size:.8rem; }
.concept-details summary { cursor:pointer; padding-block:15px; min-height:44px; }
.concept-details p { max-width:85ch; margin:0 auto 8px; text-align:left; }
.mobile-actions { display:none; }
.intro-loader { position:fixed; z-index:200; inset:0; display:grid; place-items:center; background:var(--paper); animation:introExit 1200ms var(--ease) forwards; pointer-events:none; }
.intro-lockup { width:min(520px,76vw); text-align:center; }
.intro-lockup img { width:100%; animation:introLogo 650ms var(--ease) both; }
.intro-rule { display:block; height:1px; background:var(--sage); margin-top:24px; transform-origin:left; animation:introRule 750ms var(--ease) both; }
.intro-lockup p { margin-top:18px; color:var(--soft); font-size:.85rem; }
.intro-skip { position:absolute; right:24px; bottom:24px; padding:14px; min-height:44px; color:var(--ink); background:transparent; text-decoration:underline; text-underline-offset:5px; pointer-events:auto; }
@keyframes introLogo { from { clip-path:inset(0 50%); } to { clip-path:inset(0); } }
@keyframes introRule { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes introExit { 0%,65% { opacity:1; } 100% { opacity:0; visibility:hidden; } }
@media (hover:hover) {
  .film-start:hover .film-play-icon { transform:scale(1.06); background:var(--mist); }
  .button-dark:hover { background:var(--sage); }
  .button-light:hover { background:var(--mist); }
  .button-outline:hover { border-color:var(--white); background:rgba(255,253,248,.06); }
  .button:hover .action-icon svg { transform:translateX(2px); }
  .header-cta.button:hover { background:transparent; }
  .header-cta:hover .action-icon { background:var(--sage); }
  .quiet-link:hover { text-decoration-color:currentColor; }
  .quiet-link:hover svg { transform:translateX(3px); }
  .primary-nav a:hover,.footer-links a:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; }
  .contact-number:hover { color:var(--sage); border-color:var(--sage); }
  .contact-number:hover .action-icon svg { transform:translateX(2px); }
  .rail-controls button:hover:not(:disabled) { background:var(--ink); color:var(--white); border-color:var(--ink); }
  .reviews .rail-controls button:hover:not(:disabled) { background:var(--white); color:var(--ink); border-color:var(--white); }
}
@media (max-width:1100px) { .header-number { display:none; } .primary-nav { gap:1.4rem; } .footer-main { flex-wrap:wrap; } .contact-number { font-size:2rem; } }
/* Phone composition: portrait work film, readable overlay, and a separate persistent call. */
.mobile-menu { display:none; }
.rail-controls { display:none; }
.review-source { text-align:center; margin-top:18px; }
html { scroll-padding-bottom:100px; }
@media (max-width:760px) {
  :root { --pad:22px; --phone-section:56px; }
  html { height:100%; }
  body { display:grid; grid-template-rows:minmax(0,1fr) auto; height:100vh; height:100dvh; overflow:hidden; }
  .site-page { grid-row:1; min-height:0; overflow-y:auto; overflow-x:hidden; scroll-padding-top:90px; scroll-padding-bottom:24px; }
  .section-shell { padding-inline:max(var(--pad),env(safe-area-inset-left)); }
  h2 { font-size:clamp(2rem,8.5vw,2.65rem); line-height:1.1; letter-spacing:-.035em; }
  p { font-size:1rem; line-height:1.65; }
  small { font-size:.875rem; }
  .site-header { display:flex; justify-content:space-between; min-height:74px; gap:16px; padding:12px max(var(--pad),env(safe-area-inset-right)); }
  .brand { width:177px; }
  .primary-nav,.header-cta { display:none; }
  .mobile-menu { display:block; }
  .mobile-menu summary { display:flex; gap:10px; align-items:center; justify-content:center; min-height:48px; padding:10px 0 10px 12px; font-size:.9rem; font-weight:550; cursor:pointer; list-style:none; }
  .mobile-menu summary::-webkit-details-marker { display:none; }
  .mobile-menu summary svg { width:24px; }
  .mobile-menu .menu-close-icon,.mobile-menu[open] .menu-open-icon { display:none; }
  .mobile-menu[open] .menu-close-icon { display:block; }
  .mobile-menu nav { position:absolute; left:0; right:0; top:100%; display:grid; padding:8px var(--pad) 20px; background:var(--paper); box-shadow:0 18px 24px rgba(23,32,29,.1); max-height:calc(100dvh - 14rem); overflow:auto; }
  .mobile-menu nav a { display:flex; align-items:center; min-height:52px; border-bottom:1px solid var(--line); text-decoration:none; font-size:1rem; }
  .concept-note { min-height:30px; justify-content:center; padding:8px var(--pad); font-size:.75rem; }
  .concept-note > span:last-child { display:none; }
  .hero { display:flex; flex-direction:column; align-items:stretch; justify-content:flex-end; height:auto; min-height:max(540px,calc(100svh - 180px)); color:var(--white); background:var(--ink); }
  .hero-content { padding:44px var(--pad) 120px; }
  .hero h1 { font-size:clamp(1.8rem,8.8vw,3.6rem); max-width:20ch; line-height:1.08; letter-spacing:-.04em; }
  .hero-personal { color:#e8e0d1; }
  .hero-content > p { margin-top:18px; max-width:33ch; color:var(--white); font-size:1rem; line-height:1.55; }
  .hero-actions { display:none; }
  .hero-film-link { margin-top:12px; color:var(--white); }
  .hero-proof { position:absolute; inset:auto var(--pad) 40px; padding:0; min-height:44px; gap:7px 10px; font-size:.875rem; }
  .hero-proof > span:last-child { color:#eceee7; width:100%; text-align:center; font-size:.8rem; }
  .hero-media { position:absolute; inset:0; height:100%; width:100%; }
  .hero-shade { display:block; background:linear-gradient(180deg,rgba(9,18,13,.3),rgba(9,18,13,.64) 35%,rgba(9,18,13,.84)); }
  .care { grid-template-columns:1fr; gap:28px; padding-block:var(--phone-section); }
  .care-heading .quiet-link { margin-top:17px; font-size:.95rem; }
  .care-copy > p { margin-top:18px; }
  .care-facts { grid-template-columns:1fr; margin-top:25px; padding-top:0; gap:0; text-align:left; }
  .care-facts > div { display:grid; grid-template-columns:.85fr 1.15fr; gap:18px; align-items:baseline; padding-block:17px; border-bottom:1px solid var(--line); }
  .care-facts dt { margin:0; font-size:.9rem; }
  .care-facts dd { font-size:.9rem; }
  .plan-questions { grid-template-columns:1fr; gap:14px; padding-top:26px; }
  .plan-questions h3 { padding-top:0; }
  .reviews-inner { padding-block:var(--phone-section); }
  .reviews-heading { gap:26px; padding-bottom:28px; }
  .reviews-heading h2 { font-size:clamp(2rem,8.3vw,2.4rem); max-width:17ch; }
  .review-score { font-size:2.9rem; }
  .review-spread { grid-template-columns:1fr; gap:24px; }
  .review-slide { grid-template-columns:minmax(0,1fr); grid-template-rows:auto 1fr; align-items:start; gap:24px; padding:0; }
  .review-photo figcaption { margin-top:9px; font-size:.8rem; }
  .review-quote { padding:0 2px 6px; }
  .review-quote > p { font-size:clamp(1.5rem,6.3vw,1.8rem); line-height:1.3; max-width:none; letter-spacing:-.025em; }
  .review-spread blockquote footer { margin-top:22px; }
  .review-spread footer small { font-size:.875rem; }
  .review-spread footer strong { font-size:1rem; }
  .rail-controls:not([hidden]) { display:flex; align-items:center; justify-content:center; gap:20px; margin-top:12px; }
  .review-source { margin-top:14px; }
  .review-source .quiet-link { font-size:.95rem; }
  .leave-review { margin-top:30px; padding-top:30px; gap:20px; }
  .leave-review h3 { font-size:1.3rem; }
  .leave-review p { font-size:1rem; }
  .leave-review-action { width:100%; gap:12px; }
  .leave-review-action .button { width:auto; max-width:100%; min-height:54px; gap:16px; font-size:.95rem; }
  .leave-review-action small { max-width:30ch; font-size:.875rem; }
  .work { padding-block:var(--phone-section); }
  .work-film { grid-template-columns:1fr; gap:27px; padding:14px 0 38px; margin-bottom:36px; }
  .film-copy { max-width:30ch; text-align:center; }
  .film-copy h3 { font-size:clamp(2.1rem,9vw,2.75rem); }
  .film-copy h3 br { display:none; }
  .film-copy > p { margin-top:15px; }
  .film-copy .film-length { margin-top:12px; font-size:.875rem; }
  .film-copy .quiet-link { margin-top:12px; }
  .film-frame { width:min(100%,360px,calc((100svh - 185px) * .5625)); }
  .film-description { font-size:.875rem; }
  .work-heading { gap:10px; margin-bottom:25px; }
  .work-heading p { margin-top:12px; }
  .work-heading .quiet-link { font-size:.95rem; }
  .work-gallery { display:grid; grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:calc(100% - 24px); gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; padding-bottom:14px; scrollbar-width:thin; }
  .work-gallery figure { grid-column:auto; scroll-snap-align:start; scroll-snap-stop:always; }
  .work-gallery img { height:auto; aspect-ratio:4 / 5; object-fit:cover; }
  .work-gallery figcaption { font-size:.9rem; text-align:left; line-height:1.4; margin-top:14px; padding-top:12px; }
  .work-gallery[data-rail-ready] > :not(.is-current) figcaption { visibility:hidden; }
  .contact-inner { gap:28px; padding-block:var(--phone-section); }
  .contact p { margin-top:18px; }
  .contact-action { width:100%; }
  .contact-number { width:auto; max-width:100%; gap:14px; font-size:clamp(1.5rem,6.8vw,2rem); padding:6px 0 14px; }
  .contact-number .action-icon { width:42px; height:42px; }
  .contact-action > span { font-size:.95rem; }
  .footer-main { gap:20px; }
  .footer-main p,.footer-links a { font-size:.9rem; }
  .site-footer { padding-block:35px; }
  .concept-details { font-size:.875rem; }
  .mobile-actions { display:block; grid-row:2; z-index:55; padding:10px max(var(--pad),env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)); background:var(--paper); border-top:1px solid var(--line); }
  .mobile-actions a { display:flex; align-items:center; justify-content:center; gap:13px; min-height:60px; max-width:320px; margin:auto; padding:9px 24px 9px 16px; border-radius:var(--control-radius); color:var(--white); background:var(--ink); text-decoration:none; font-size:.95rem; font-weight:500; transition:background-color 220ms var(--ease),transform 220ms var(--ease); }
  .mobile-actions a:active { transform:scale(.985); background:var(--sage); }
  .mobile-actions .action-icon { width:38px; height:38px; color:var(--white); background:rgba(255,253,248,.12); }
  .mobile-actions .call-label { text-align:left; }
  .mobile-actions small { display:block; font-size:.8rem; font-weight:400; margin-top:4px; color:#c2cbc4; }
  .desktop-break { display:none; }
}
@media (max-width:380px) {
  :root { --pad:18px; }
  .brand { width:157px; }
  .hero-content { padding-top:22px; }
  .review-slide { padding-right:4px; }
}
@media (hover:hover) and (max-width:760px) {
  .mobile-actions a:hover { background:var(--sage); }
}
@media (max-height:500px) and (max-width:1000px) and (orientation:landscape) {
  .site-header { min-height:62px; padding-block:8px; }
  .hero { min-height:0; height:auto; }
  .hero-content { padding-top:36px; }
  .mobile-actions { padding-block:6px; }
  .mobile-actions a { min-height:46px; padding-block:7px; }
  .mobile-actions small { display:none; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; } .intro-loader,[data-intro-replay] { display:none !important; } }
