/* Diretiva — graphite, red and warm white. Native layout and motion. */
:root {
  --red-50:#fbf1f1; --red-100:#f6dedf; --red-200:#efb9bb; --red-400:#d55a5f;
  --red-500:#c8262c; --red-600:#a8151c; --red-700:#861014;
  --paper:#f4f0e8; --paper-3:#faf7f2; --white:#fff;
  --ink-900:#0a0907; --ink-800:#14110e; --ink-700:#302b27;
  --ink-600:#59524c; --ink-500:#70685f; --ink-400:#847a70; --ink-300:#d4cdbe;
  --line:#ded8cf; --line-soft:#eae5dd;
  --font-sans:'Inter Tight',Arial,sans-serif; --font-display:var(--font-sans); --font-mono:var(--font-sans);
  --radius-sm:4px; --radius-md:8px; --radius-lg:8px; --radius-full:999px;
  --shadow-xs:0 2px 5px #14110e06; --shadow-md:0 12px 36px #14110e08;
  --ease-out:cubic-bezier(.22,1,.36,1); --gutter:clamp(20px,4.3vw,64px); --header-h:80px;
}
*,*::before,*::after { box-sizing:border-box; font-style:normal; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; background:var(--paper-3); }
body { margin:0; color:var(--ink-900); background:var(--paper-3); font:400 16px/1.6 var(--font-sans); -webkit-font-smoothing:antialiased; overflow-x:clip; }
body.is-nav-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; }
button { cursor:pointer; }
img,svg { display:block; max-width:100%; }
figure,p,h1,h2,h3,h4,blockquote { margin:0; }
h1,h2,h3,h4 { font-weight:500; line-height:1.08; letter-spacing:-.04em; }
h2 { font-size:clamp(32px,4vw,56px); }
h2>span { color:var(--ink-500); }
::selection { background:var(--red-500); color:white; }
[hidden] { display:none !important; }
:focus-visible { outline:2px solid var(--red-500); outline-offset:5px; }
section[id],main[id] { scroll-margin-top:var(--header-h); }
.container { width:min(100%,1400px); padding-inline:var(--gutter); margin-inline:auto; position:relative; }
.section { padding-block:clamp(72px,8vw,120px); }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip-link { position:fixed; top:10px; left:20px; transform:translateY(-160%); padding:12px 20px; background:white; z-index:100; }
.skip-link:focus { transform:none; }
.tiny-label,.eyebrow,.section-head__num { font-size:11px; font-weight:500; line-height:1.6; letter-spacing:.12em; text-transform:uppercase; }
.eyebrow { display:flex; gap:12px; align-items:center; }
.eyebrow::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--red-500); }
.section-head { display:grid; grid-template-columns:1fr 2fr; gap:40px; align-items:start; padding-bottom:34px; border-bottom:1px solid var(--line); margin-bottom:32px; }
.section-head__num { color:var(--ink-500); }
.section-head__num span { color:var(--red-600); margin-right:10px; }
.section-head h2 { max-width:26ch; }
.lead { color:var(--ink-600); font-size:18px; line-height:1.75; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:28px; border:1px solid transparent; padding:15px 22px; border-radius:4px; min-height:48px; font-size:14px; font-weight:600; line-height:1.2; transition:background .2s,transform .3s var(--ease-out),border-color .2s; }
.button:hover { transform:translateY(-2px); }
.button--primary { background:var(--red-500); color:white; }
.button--primary:hover { background:var(--red-600); }
.button--secondary { background:white; border-color:var(--line); color:var(--ink-700); }
.button--secondary:hover { background:var(--paper); }
.button--large { min-height:54px; }
.button>span { font-size:20px; transition:transform .3s; }
.button:hover>span { transform:translate(2px,-2px); }
.text-link { font-size:13px; display:inline-flex; align-items:center; gap:22px; padding-block:10px; border-bottom:1px solid currentColor; }
.text-link span { transition:transform .3s; }
.text-link:hover span { transform:translate(3px,-2px); }

/* Translucent header, unchanged primary navigation. */
.site-header { position:sticky; top:0; z-index:50; background:rgb(250 247 242 / 94%); border-bottom:1px solid #ded8cf90; backdrop-filter:blur(16px); transition:background .25s; }
.site-header.is-scrolled { background:rgb(255 255 255 / 94%); }
.site-nav { min-height:var(--header-h); display:flex; align-items:center; gap:28px; }
.brand { display:inline-flex; align-items:center; gap:12px; flex-shrink:0; }
.brand__mark { width:35px; height:35px; }
.brand__text { display:flex; flex-direction:column; gap:3px; line-height:1.1; }
.brand__text strong { font-size:24px; letter-spacing:-.05em; font-weight:700; }
.brand__text small { color:var(--ink-500); text-transform:uppercase; letter-spacing:.08em; font-size:9px; }
.site-nav__links { display:flex; margin-left:auto; gap:26px; font-size:13px; color:var(--ink-600); }
.site-nav__links a { padding-block:10px; position:relative; }
.site-nav__links a::after { position:absolute; content:''; bottom:4px; height:1px; left:0; width:100%; background:var(--red-500); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.site-nav__links a:hover::after,.site-nav__links a:focus-visible::after { transform:scaleX(1); }
.site-nav__cta { font-size:12px; min-height:42px; padding:12px 18px; }
.nav-toggle { display:none; width:44px; height:44px; border:1px solid var(--line); background:transparent; border-radius:4px; position:relative; margin-left:auto; }
.nav-toggle span:not(.sr-only) { width:18px; height:1px; position:absolute; left:12px; top:18px; background:var(--ink-900); transition:transform .2s; }
.nav-toggle span:last-child { top:24px; }
.nav-toggle[aria-expanded=true] span:nth-child(2) { transform:translateY(3px) rotate(45deg); }
.nav-toggle[aria-expanded=true] span:last-child { transform:translateY(-3px) rotate(-45deg); }

/* Asymmetric composition. Image crosses the grid; no decorative giant mark. */
.hero { position:relative; overflow:hidden; background:#171513; color:#fff; }
.hero-atmosphere { position:absolute; inset:-40px; pointer-events:none; background:radial-gradient(ellipse at 12% 6%,#6c554526,transparent 55%),radial-gradient(ellipse at 90% 70%,#c8262c0a,transparent 45%); }
.hero-layout { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:auto auto auto; padding-top:54px; }
.hero-layout::before { content:''; position:absolute; pointer-events:none; inset:0 var(--gutter); background:linear-gradient(90deg,transparent calc(8.333% - 1px),#ffffff09 8.333%,transparent calc(8.333% + 1px),transparent calc(41.667% - 1px),#ffffff0b 41.667%,transparent calc(41.667% + 1px),transparent calc(75% - 1px),#ffffff0b 75%,transparent calc(75% + 1px)); }
.hero-context { grid-column:1 / 2; grid-row:1 / 3; padding-top:6px; padding-right:20px; z-index:2; display:flex; align-items:flex-start; gap:24px; flex-direction:column; }
.hero-context .tiny-label { writing-mode:horizontal-tb; font-size:9px; color:#b9afa5; }
.hero-context p { writing-mode:horizontal-tb; font-size:11px; color:#d5cbc1; }
.context-line { height:80px; width:1px; background:#ffffff24; position:relative; overflow:hidden; }
.context-line::after { content:''; position:absolute; top:0; width:1px; height:24px; background:var(--red-500); animation:beam-v 7s ease-in-out infinite; }
.hero-title-block { grid-column:2 / 10; grid-row:1; z-index:3; pointer-events:none; padding:4px 0 24px 30px; }
.hero-title-block .eyebrow { color:#c8bfb5; margin-bottom:22px; font-size:10px; }
.hero h1 { font-size:clamp(52px,5.1vw,74px); font-weight:500; line-height:1.03; letter-spacing:-.055em; }
.hero h1>span { color:#c9bdb0; }
.hero-scene { grid-column:6 / -1; grid-row:1 / 3; min-width:0; height:460px; align-self:start; margin-top:40px; position:relative; overflow:hidden; z-index:1; }
.hero-scene::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#171513 0%,#171513dc 16%,#17151390 27%,transparent 47%),linear-gradient(0deg,#171513 0%,transparent 24%); pointer-events:none; }
.parallax-media { position:absolute; inset:-48px 0; }
.parallax-media picture,.parallax-media img { width:100%; height:100%; object-fit:cover; }
.hero-scene .parallax-media { inset:-22px 0; }
.hero-scene img { object-position:62% center; }
.hero-scene figcaption { position:absolute; bottom:70px; right:24px; z-index:2; display:flex; align-items:center; gap:12px; background:rgb(250 247 242 / 92%); color:var(--ink-900); padding:12px 18px; border-left:2px solid var(--red-500); font-size:13px; }
.hero-scene figcaption>span>span { display:block; color:var(--ink-500); font-size:10px; }
.photo-marker { font-size:25px; color:var(--red-600); }
.hero-copy { grid-column:2 / 7; grid-row:2; z-index:3; padding:0 50px 36px 30px; }
.hero-copy>p { font-size:14px; color:#c5bdb4; line-height:1.75; max-width:42ch; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px 24px; margin-top:26px; }
.hero-actions .text-link { color:#e0d7ce; font-size:11px; }
.hero-note { grid-column:9 / -1; grid-row:3; margin-top:-42px; padding:24px 26px; position:relative; z-index:4; background:var(--paper-3); color:var(--ink-900); border-top:2px solid var(--red-500); transition:transform .3s var(--ease-out); }
.hero-note:hover { transform:translateY(-4px); }
.hero-note .tiny-label { font-size:9px; display:flex; justify-content:space-between; color:var(--ink-500); }
.hero-note strong { display:block; font-size:27px; line-height:1.15; font-weight:500; letter-spacing:-.035em; margin-top:14px; }
.hero-note p { font-size:11px; color:var(--ink-600); margin-top:12px; }
.note-rule { position:absolute; left:0; top:-2px; height:2px; width:100%; overflow:hidden; }
.note-rule::after { content:''; display:block; height:2px; width:70px; background:linear-gradient(90deg,transparent,#ffd1b2,transparent); animation:beam-h 9s infinite; }
.hero-bottom { grid-column:2 / 9; grid-row:3; display:flex; gap:16px; flex-wrap:wrap; align-content:end; padding:30px 30px 25px; border-top:1px solid #ffffff14; margin-top:28px; color:#b8afa5; font-size:10px; }
.hero-bottom>span:first-child { width:100%; color:#e5ddd5; }
.hero-bottom>a { margin-left:auto; color:#e5ddd5; }

.trust-band { background:white; border-bottom:1px solid var(--line-soft); }
.trust-band__grid { display:grid; grid-template-columns:repeat(3,1fr); padding-block:30px; }
.trust-band__grid>div { display:flex; align-items:flex-start; gap:18px; padding:0 26px; border-right:1px solid var(--line-soft); }
.trust-band__grid>div:first-child { padding-left:0; }
.trust-band__grid>div:last-child { border:0; padding-right:0; }
.trust-symbol { color:var(--red-600); font-size:24px; line-height:1.1; }
.trust-band strong { font-weight:500; font-size:14px; }
.trust-band p { font-size:12px; color:var(--ink-500); margin-top:5px; max-width:32ch; }

/* Quote entry retains the original progressive flow. */
.quote-entry { background:radial-gradient(ellipse at 5% 80%,#eee2d54a,transparent 55%),var(--paper-3); border-bottom:1px solid var(--line); }
.quote-entry__layout { display:grid; grid-template-columns:1fr 1.18fr; gap:8%; align-items:start; }
.section-index { display:block; font-size:14px; color:var(--red-600); margin-bottom:20px; }
.quote-entry__intro .section-head__num { display:none; }
.quote-entry h2 { max-width:13ch; font-size:clamp(34px,3.6vw,50px); }
.quote-entry .lead { font-size:15px; line-height:1.8; margin-top:24px; max-width:43ch; }
.quote-microcopy { display:grid; gap:14px; padding:0; list-style:none; margin-top:30px; }
.quote-microcopy li { display:flex; gap:12px; color:var(--ink-500); font-size:12px; }
.quote-microcopy svg { width:15px; height:15px; flex-shrink:0; color:var(--red-600); margin-top:3px; }
.quote-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.quote-option { display:grid; grid-template-columns:1fr auto; text-align:left; padding:22px; background:rgb(255 255 255 / 80%); color:var(--ink-900); border:1px solid var(--line); border-radius:4px; min-height:150px; transition:transform .25s,border-color .25s,background .25s; }
.quote-option:hover { transform:translateY(-3px); border-color:#ad9e90; }
.quote-option.is-selected { background:var(--red-50); border-color:var(--red-500); }
.quote-option>span:not(.quote-option__icon) { grid-column:2; grid-row:1; color:var(--ink-500); font-size:10px; }
.quote-option__icon { width:23px; height:23px; color:var(--red-600); grid-row:1; grid-column:1; }
.quote-option strong { grid-column:1/-1; margin-top:12px; font-size:20px; font-weight:500; letter-spacing:-.03em; }
.quote-option small { grid-column:1/-1; color:var(--ink-500); font-size:12px; margin-top:5px; }
.quote-option:last-child { grid-column:1/-1; min-height:124px; }
.quote-flow { background:white; border-color:var(--line); box-shadow:none; padding:32px; }
.quote-flow__bar { height:3px; }
.quote-flow h3 { line-height:1.2; }
.quote-step { opacity:1; filter:none; transform:none; }
.quote-field input { border-radius:4px; }
.quote-form__body { overflow-wrap:anywhere; }
@keyframes stepIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes quote-flow-enter { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }

/* Large photographic insurance carousel, native scrolling. */
.services-section { background:#fff; overflow:hidden; }
.carousel-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:24px; }
.carousel-toolbar>p { color:var(--ink-500); font-size:13px; }
.carousel-controls { display:flex; gap:18px; align-items:center; }
.carousel-arrow { width:44px; height:44px; border-radius:50%; background:transparent; border:1px solid #cfc6bb; font-size:20px; color:var(--ink-700); transition:background .2s,color .2s; }
.carousel-arrow:hover { background:var(--ink-900); color:white; }
.carousel-arrow:disabled { opacity:.3; cursor:default; background:transparent; color:var(--ink-700); }
.carousel-status { color:var(--ink-500); font-size:11px; font-variant-numeric:tabular-nums; min-width:38px; text-align:center; }
.service-grid { display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:none; padding-bottom:5px; cursor:grab; }
.service-grid::-webkit-scrollbar { display:none; }
.service-grid.is-dragging { cursor:grabbing; scroll-snap-type:none; user-select:none; }
.service-grid.is-dragging a { pointer-events:none; }
.service-card { flex:0 0 calc(100% - 78px); min-width:0; display:grid; grid-template-columns:1.5fr 1fr; scroll-snap-align:start; background:var(--paper-3); border:1px solid var(--line-soft); min-height:420px; }
.service-image { position:relative; overflow:hidden; }
.service-image picture,.service-image img { width:100%; height:100%; object-fit:cover; }
.service-image img { transition:transform 1.1s var(--ease-out); }
.service-card:hover .service-image img { transform:scale(1.035); }
.image-corner { position:absolute; bottom:20px; left:24px; color:white; border:1px solid #ffffff60; width:45px; height:45px; border-radius:0 50% 50% 0; font-size:0; display:grid; place-items:center; background:#14110e24; }
.image-corner span { font-size:22px; }
.service-content { padding:clamp(24px,3.2vw,46px); display:flex; flex-direction:column; }
.service-card__number { font-size:11px; color:var(--red-600); letter-spacing:.06em; display:flex; justify-content:space-between; gap:10px; }
.service-card__number>span { text-transform:uppercase; font-size:9px; color:var(--ink-500); }
.service-content h3 { margin-top:46px; font-size:clamp(34px,3.3vw,48px); }
.service-content h4 { margin-top:20px; font-size:20px; letter-spacing:-.025em; line-height:1.3; }
.service-content>p { font-size:13px; color:var(--ink-500); line-height:1.75; margin-top:16px; }
.service-card__link { border-top:1px solid var(--line); padding-top:18px; margin-top:auto; display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:13px; font-weight:500; }
.service-card__link>span { color:var(--red-600); font-size:23px; }
.service-card__link:hover { color:var(--red-600); }
.service-content>p { margin-bottom:32px; }
.carousel-bottom { display:flex; align-items:center; gap:30px; margin-top:24px; color:var(--ink-500); font-size:11px; }
.carousel-progress { height:2px; flex:1; background:var(--line-soft); overflow:hidden; }
.carousel-progress span { display:block; width:20%; height:100%; background:var(--red-500); transform-origin:left; transition:transform .5s var(--ease-out); }

.visual-pause { position:relative; min-height:520px; overflow:hidden; color:white; display:flex; align-items:center; background:#6b5b4b; }
.visual-pause .parallax-media { inset:-50px 0; }
.visual-pause img { object-position:center 52%; }
.visual-shade { position:absolute; inset:0; background:linear-gradient(90deg,#14110e9e,transparent 85%),linear-gradient(0deg,#14110e60,transparent 70%); }
.visual-pause__content { padding-block:88px; }
.visual-pause h2 { font-size:clamp(48px,6vw,84px); line-height:1.03; margin:30px 0; }
.visual-pause .eyebrow { color:#f4eae0; }
.visual-pause .text-link { border-color:#ffffff60; }
.visual-caption { display:block; position:absolute; right:var(--gutter); bottom:44px; font-size:11px; color:#f4eae0; }

/* Marquee has an explicit pause control and a static reduced-motion state. */
.partners-section { background:var(--paper-3); overflow:hidden; }
.partners-intro { display:flex; justify-content:space-between; align-items:center; gap:30px; margin-bottom:45px; }
.partners-intro>p { color:var(--ink-500); font-size:14px; max-width:58ch; }
.motion-toggle { flex-shrink:0; display:flex; gap:12px; background:transparent; border:1px solid var(--line); padding:10px 14px; font-size:11px; color:var(--ink-600); }
.partners-marquee { mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
.partners-track { width:100%; display:flex; }
.partners-grid { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:14px; padding-right:14px; }
.partner { width:170px; height:105px; display:grid; place-items:center; padding:25px; border:1px solid var(--line); background:white; }
.partner img { max-width:100%; max-height:48px; width:auto; height:auto; object-fit:contain; filter:grayscale(1); opacity:.7; transition:opacity .3s,transform .3s; }
.partner:hover img { opacity:1; transform:scale(1.025); }
.is-marquee .partners-track { width:max-content; animation:marquee 55s linear infinite; }
.is-marquee .partners-grid { flex-wrap:nowrap; }
.partners-marquee:hover .partners-track,.partners-marquee:focus-within .partners-track,.partners-marquee.is-paused .partners-track { animation-play-state:paused; }
.partners-marquee.is-offscreen .partners-track { animation-play-state:paused; }
@keyframes marquee { to { transform:translateX(-50%); } }

.approach-section { background:radial-gradient(ellipse at 92% 0%,#ede4d5aa,transparent 60%),#fff; border-block:1px solid var(--line); }
.approach-layout { display:grid; grid-template-columns:1.1fr 1fr; column-gap:7%; }
.approach-title { grid-column:1/-1; display:grid; grid-template-columns:1fr 2fr; gap:40px; margin-bottom:48px; }
.approach-photo { position:relative; overflow:hidden; min-height:430px; }
.approach-photo picture,.approach-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.approach-photo img { object-position:22% center; }
.approach-photo figcaption { position:absolute; bottom:20px; left:20px; padding:15px 20px; background:var(--paper-3); border-left:2px solid var(--red-500); font-size:11px; color:var(--ink-500); }
.approach-photo figcaption>span { display:block; font-size:19px; color:var(--ink-900); }
.approach-detail>.lead { font-size:15px; margin-bottom:28px; }
.approach__steps { display:grid; }
.approach__steps article { display:grid; grid-template-columns:34px 1fr; gap:9px 14px; padding:23px 0; border-top:1px solid var(--line); }
.approach__num { grid-row:span 2; color:var(--red-600); font-size:12px; padding-top:4px; }
.approach__steps h3 { font-size:23px; }
.approach__steps p { font-size:13px; color:var(--ink-500); line-height:1.7; }
.approach-quote { grid-column:1/-1; display:grid; grid-template-columns:80px 1fr 1fr; align-items:center; gap:20px; padding-top:40px; margin-top:40px; border-top:1px solid var(--line); }
.approach-quote>span { color:var(--red-500); font-size:70px; line-height:1; }
.approach-quote blockquote { font-size:clamp(21px,2.3vw,30px); line-height:1.3; letter-spacing:-.025em; }
.approach-quote p { justify-self:end; max-width:22ch; color:var(--ink-500); font-size:13px; }

.cta-band { background:var(--paper); padding-block:90px; position:relative; }
.cta-layout { display:grid; grid-template-columns:.85fr 1.2fr; gap:10%; align-items:center; }
.cta-image { height:380px; overflow:hidden; }
.cta-image picture,.cta-image img { width:100%; height:100%; object-fit:cover; object-position:70% center; }
.cta-copy .section-head__num { color:var(--red-600); }
.cta-copy h2 { margin-top:20px; }
.cta-copy>p:not(.section-head__num) { color:var(--ink-500); font-size:14px; max-width:42ch; margin:22px 0; }
.contact-links { display:flex; flex-wrap:wrap; gap:22px 30px; margin-top:28px; font-size:12px; }
.contact-links span { display:block; color:var(--ink-500); font-size:10px; text-transform:uppercase; letter-spacing:.06em; margin-bottom:5px; }
.contact-links a { overflow-wrap:anywhere; }
.site-footer { background:#fff; border-top:1px solid var(--line); }
.site-footer__top { padding-block:60px 40px; display:grid; grid-template-columns:1.7fr 1fr 1.3fr 1fr; gap:40px; }
.site-footer__tag { font-size:12px; max-width:30ch; color:var(--ink-500); margin-top:20px; }
.site-footer__col h5 { margin:0 0 18px; font-size:10px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.site-footer__col ul { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.site-footer__col a,.site-footer__address { font-size:12px; color:var(--ink-500); overflow-wrap:anywhere; }
.site-footer__col a:hover { color:var(--red-600); }
.site-footer__bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-block:20px; border-top:1px solid var(--line-soft); font-size:10px; color:var(--ink-500); }

/* One motion vocabulary; progressive enhancement leaves content readable. */
[data-reveal] { --reveal-delay:0ms; }
.js-motion [data-reveal] { transition:opacity .8s var(--ease-out),transform .8s var(--ease-out),filter .8s ease,clip-path 1s var(--ease-out); transition-delay:var(--reveal-delay); }
.js-motion [data-reveal]:not(.is-visible) { opacity:0; filter:blur(6px); transform:translateY(24px) scale(.98); }
.js-motion [data-reveal=mask]:not(.is-visible) { opacity:1; filter:none; clip-path:inset(0 0 99.9% 0); transform:none; }
.js-motion [data-reveal=mask].is-visible { clip-path:inset(0); }
.js-motion [data-reveal=text]:not(.is-visible) { filter:blur(6px); transform:translateY(18px); }
.service-card.is-active .service-content h3 { animation:content-in .65s var(--ease-out); }
@keyframes content-in { from { opacity:.35; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes beam-h { 0%,15% { transform:translateX(-100px); opacity:0; } 25% { opacity:1; } 90%,100% { transform:translateX(450px); opacity:0; } }
@keyframes beam-v { 0%,15% { transform:translateY(-30px); opacity:0; } 25% { opacity:1; } 90%,100% { transform:translateY(100px); opacity:0; } }
@media(min-width:1441px) { .hero h1 { font-size:78px; } }
@media(max-width:1100px) {
  .site-nav { gap:18px; } .site-nav__links { gap:18px; } .brand__text strong { font-size:21px; }
  .hero-layout { padding-top:42px; } .hero-title-block { padding-left:20px; }
  .hero h1 { font-size:clamp(46px,5.5vw,65px); }
  .hero-scene { height:430px; grid-column:6/-1; }
  .hero-copy { padding-left:20px; padding-right:24px; }
  .hero-note { grid-column:8/-1; margin-top:-20px; }
  .hero-bottom { grid-column:2/8; padding-left:20px; }
  .hero-scene figcaption { bottom:40px; right:12px; }
  .hero-actions { gap:14px; } .hero-actions .button { gap:14px; }
  .service-card { grid-template-columns:1.2fr 1fr; min-height:410px; }
  .service-content { padding:28px; } .service-content h3 { margin-top:30px; }
  .site-footer__top { gap:28px; }
}
@media(max-width:900px) {
  .site-nav__cta { display:none; }
  .hero-context { display:none; }
  .hero-title-block { grid-column:1/10; padding-left:0; }
  .hero-copy { grid-column:1/7; padding-left:0; }
  .hero-bottom { grid-column:1/8; padding-left:0; }
  .hero-note { grid-column:8/-1; padding:20px; }
  .hero h1 { font-size:clamp(46px,6.8vw,60px); }
  .hero-scene { grid-column:5/-1; height:440px; }
  .hero-scene figcaption { bottom:30px; }
  .quote-entry__layout { gap:5%; } .quote-option { padding:16px; }
  .section-head,.approach-title { grid-template-columns:1fr 2fr; gap:24px; }
  .service-card { flex-basis:calc(100% - 40px); grid-template-columns:1fr 1fr; }
  .service-content { padding:24px; }
  .approach-layout { gap:30px; }
  .approach-quote { grid-template-columns:40px 1fr; }
  .approach-quote p { grid-column:2; justify-self:start; max-width:none; }
  .cta-layout { gap:6%; }
  .site-footer__top { grid-template-columns:1fr 1fr; }
}
@media(max-width:760px) {
  :root { --header-h:72px; }
  .site-nav { gap:12px; } .brand__text strong { font-size:23px; }
  .nav-toggle { display:block; }
  .site-nav__links { position:fixed; inset:72px 0 auto; padding:20px var(--gutter) 28px; background:rgb(250 247 242 / 99%); display:grid; gap:0; visibility:hidden; opacity:0; transform:translateY(-12px); transition:transform .25s,opacity .25s,visibility .25s; border-bottom:1px solid var(--line); }
  .site-nav__links.is-open { opacity:1; transform:none; visibility:visible; }
  .site-nav__links a { padding:14px 0; font-size:16px; border-bottom:1px solid var(--line-soft); }
  .hero-layout { display:grid; grid-template-columns:1fr 1fr; padding-top:34px; }
  .hero-layout::before { display:none; }
  .hero-title-block { grid-column:1/-1; grid-row:1; padding:0; }
  .hero-title-block .eyebrow { font-size:9px; margin-bottom:22px; }
  .hero h1 { font-size:clamp(39px,9.5vw,64px); line-height:1.04; letter-spacing:-.055em; }
  .hero-copy { grid-column:1/-1; grid-row:2; padding:22px 0 28px; }
  .hero-copy>p { max-width:48ch; font-size:13px; line-height:1.7; }
  .hero-actions { margin-top:22px; gap:20px; }
  .hero-actions .button { min-height:50px; font-size:13px; padding-inline:20px; }
  .hero-actions .text-link { font-size:11px; gap:8px; }
  .hero-scene { grid-row:3; grid-column:1/-1; height:auto; aspect-ratio:1.32; margin:0 calc(-1 * var(--gutter)); }
  .hero-scene::after { background:linear-gradient(0deg,#17151355,transparent 30%); }
  .hero-scene .parallax-media { inset:0; }
  .hero-scene img { object-position:60% 35%; }
  .hero-scene figcaption { bottom:16px; right:20px; padding:9px 12px; }
  .hero-note { grid-row:4; grid-column:1/-1; margin:0 calc(-1 * var(--gutter)); padding:25px var(--gutter); display:grid; grid-template-columns:1fr 1.2fr; gap:12px 20px; }
  .hero-note .tiny-label { grid-column:1/-1; font-size:9px; }
  .hero-note strong { margin:0; font-size:27px; }
  .hero-note p { margin:0; align-self:center; font-size:11px; }
  .hero-bottom { grid-column:1/-1; grid-row:5; padding:22px 0; margin:0; gap:7px; font-size:9px; }
  .hero-bottom>span:first-child { font-size:10px; }
  .hero-atmosphere { background:radial-gradient(ellipse at top right,#5a49332a,transparent 60%); }
  .trust-band__grid { grid-template-columns:1fr; gap:20px; padding-block:28px; }
  .trust-band__grid>div { padding:0 0 20px; border:0; border-bottom:1px solid var(--line-soft); }
  .trust-band__grid>div:last-child { padding-bottom:0; }
  .trust-band p { max-width:none; }
  .section { padding-block:64px; }
  .section-head,.approach-title { grid-template-columns:1fr; gap:20px; margin-bottom:28px; }
  .section-head h2 { font-size:34px; }
  .section-head__num { font-size:10px; }
  .quote-entry__layout { grid-template-columns:1fr; gap:30px; }
  .quote-entry h2 { max-width:16ch; font-size:36px; }
  .quote-entry .lead { font-size:14px; }
  .quote-microcopy { margin-top:20px; }
  .quote-option { min-height:147px; }
  .quote-option small { font-size:11px; }
  .quote-flow { padding:22px; }
  .quote-flow__header { grid-template-columns:1fr; gap:18px; }
  .quote-flow__progress { text-align:left; }
  .quote-flow h3 { font-size:25px; }
  .quote-review li { grid-template-columns:1fr; gap:3px; }
  .quote-form__actions { flex-wrap:wrap; } .quote-form__actions .button { flex:1; }
  .quote-confirmation__actions { flex-direction:column; }
  .carousel-toolbar { gap:12px; align-items:center; }
  .carousel-toolbar>p { font-size:11px; max-width:19ch; }
  .carousel-controls { gap:8px; } .carousel-arrow { width:42px; height:42px; }
  .service-grid { gap:14px; margin-right:calc(-1 * var(--gutter)); padding-right:var(--gutter); }
  .service-card { flex-basis:92%; grid-template-columns:1fr; min-height:0; }
  .service-image { aspect-ratio:1.5; }
  .service-image img { object-position:center; }
  .service-content { padding:24px; }
  .service-content h3 { margin-top:22px; font-size:36px; }
  .service-content h4 { margin-top:14px; font-size:21px; max-width:20ch; }
  .service-content>p { font-size:13px; margin-bottom:24px; }
  .carousel-bottom { gap:20px; font-size:10px; }
  .drag-hint { display:none; }
  .image-corner { width:34px; height:34px; bottom:16px; left:18px; }
  .visual-pause { min-height:440px; }
  .visual-pause__content { padding-block:65px; }
  .visual-pause h2 { font-size:52px; }
  .visual-pause .parallax-media { inset:0; }
  .visual-pause img { object-position:60% center; }
  .visual-shade { background:linear-gradient(90deg,#14110eb0,#14110e10); }
  .visual-caption { position:static; margin-top:35px; font-size:10px; }
  .partners-intro { flex-wrap:wrap; gap:20px; margin-bottom:30px; }
  .partners-intro>p { font-size:13px; }
  .partner { width:145px; height:90px; padding:22px; }
  .approach-layout { grid-template-columns:1fr; gap:0; }
  .approach-title { margin-bottom:30px; }
  .approach-title h2 { font-size:36px; }
  .approach-photo { min-height:0; aspect-ratio:1.05; }
  .approach-photo img { object-position:20% center; }
  .approach-detail { margin-top:30px; }
  .approach-detail>.lead { font-size:14px; }
  .approach-quote { grid-template-columns:28px 1fr; gap:10px; margin-top:15px; padding-top:30px; }
  .approach-quote>span { font-size:50px; align-self:start; }
  .approach-quote blockquote { font-size:24px; }
  .cta-band { padding-block:0 60px; }
  .cta-layout { grid-template-columns:1fr; gap:32px; }
  .cta-image { margin-inline:calc(-1 * var(--gutter)); height:260px; }
  .cta-copy h2 { font-size:36px; }
  .contact-links { gap:18px; flex-direction:column; }
  .site-footer__top { padding-block:40px; gap:28px 18px; }
  .site-footer__brand { grid-column:1/-1; }
  .site-footer__col:last-child { grid-column:1/-1; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .js-motion [data-reveal] { opacity:1 !important; filter:none !important; transform:none !important; clip-path:none !important; }
  [data-parallax] { transform:none !important; }
  .partners-track,.is-marquee .partners-track { width:100%; transform:none !important; }
  .partners-grid,.is-marquee .partners-grid { width:100%; flex-wrap:wrap; justify-content:center; padding-inline:20px; }
  .partners-grid[aria-hidden=true] { display:none; }
  .partners-marquee { mask-image:none; }
  .motion-toggle { display:none; }
}
/* Motion and business refinement — shared editorial grid. */
.site-header { background:rgb(250 247 242 / 72%); backdrop-filter:blur(12px); transition:background .5s,border-color .5s,box-shadow .5s; }
.site-header.is-scrolled { background:rgb(250 247 242 / 97%); border-color:#d8d0c5; box-shadow:0 6px 28px #14110e09; }
.site-nav { transition:min-height .4s; }
.site-header.is-scrolled .site-nav { min-height:72px; }
.hero { background:radial-gradient(ellipse at 0 0,#45352b50,transparent 65%),linear-gradient(125deg,#14110e,#211c18 75%,#311d1b); }
.hero-layout { padding-top:56px; padding-bottom:36px; gap:0 24px; }
.hero-title-block { grid-column:1/7; grid-row:1; padding:0 0 26px; }
.hero h1 { font-size:clamp(46px,4.5vw,65px); }
.hero-copy { grid-column:1/6; grid-row:2; padding:0 0 30px; }
.hero-note { grid-column:1/6; grid-row:3; margin:0; padding:18px 22px; background:linear-gradient(120deg,#faf7f2,#e9e0d4); }
.hero-note strong { font-size:24px; margin-top:8px; }
.hero-note strong br { display:none; }
.hero-note p { margin-top:7px; }
.hero-note p br { display:none; }
.hero-bottom { grid-column:1/-1; grid-row:4; margin-top:32px; padding:20px 0 0; }
.hero-bottom>span:first-child { width:auto; }
.hero-deck { grid-column:7/-1; grid-row:1/4; min-width:0; align-self:stretch; display:flex; flex-direction:column; position:relative; }
.hero-deck-depth { flex:1; min-height:480px; display:flex; }
.hero-track { width:100%; display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; border-radius:3px; }
.hero-track::-webkit-scrollbar { display:none; }
.hero-slide { position:relative; flex:0 0 100%; min-width:0; scroll-snap-align:start; overflow:hidden; display:flex; align-items:end; isolation:isolate; }
.hero-slide-image { position:absolute; inset:0; z-index:-2; }
.hero-slide-image picture,.hero-slide-image img { width:100%; height:100%; object-fit:cover; }
.hero-slide-image img { transition:transform 1.1s var(--ease-out); }
.hero-slide.is-active .hero-slide-image img { transform:scale(1.025); }
.hero-slide::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,#14110ef5 0%,#14110eb0 26%,transparent 75%); }
.hero-slide-copy { padding:34px; width:100%; }
.hero-slide-copy .tiny-label { color:#eee0d0; font-size:10px; }
.hero-slide-copy h2 { font-size:clamp(28px,2.8vw,40px); max-width:17ch; margin-top:14px; color:white; }
.hero-slide-copy p { color:#ddd3c8; font-size:13px; margin-top:14px; }
.hero-slide-copy .text-link { margin-top:14px; font-size:12px; }
.hero-navigation { display:flex; align-items:center; gap:14px; padding-top:28px; position:relative; }
.hero-navigation .carousel-arrow { background:transparent; color:white; border-color:#ffffff35; width:40px; height:40px; }
.hero-navigation .carousel-arrow:hover { background:var(--red-500); border-color:var(--red-500); }
.hero-dots { display:flex; gap:4px; margin-right:auto; }
.hero-dots button { background:none; border:0; padding:15px 4px; width:28px; }
.hero-dots span { display:block; height:2px; background:#ffffff45; transition:background .3s,transform .3s; }
.hero-dots [aria-current=true] span { background:#f2767a; transform:scaleY(2); }
.hero-count { font-size:10px; color:#d3c5b8; white-space:nowrap; }
.hero-track.is-dragging { scroll-snap-type:none; cursor:grabbing; user-select:none; }
.hero-track { cursor:grab; }
.button { position:relative; box-shadow:0 2px 0 #14110e05; transition:background .35s,transform .35s var(--ease-out),border-color .35s,box-shadow .35s; }
.button:hover,.button:focus-visible { box-shadow:0 8px 24px #86101420; }
.button:active { transform:translateY(0); box-shadow:none; }
.button:focus-visible>span { transform:translate(2px,-2px); }
.trust-band { background:linear-gradient(100deg,#fff,#f8f3ec); }
.partners-section { background:radial-gradient(ellipse at 90% 0,#e9dfd140,transparent 65%),#faf7f2; }
.services-section { background:linear-gradient(180deg,#fff,#faf7f2); }
.business-section { background:radial-gradient(ellipse at 100% 0,#cab69a30,transparent 55%),linear-gradient(145deg,#eee8de,#faf7f2 65%); border-top:1px solid var(--line); }
.business-heading { display:grid; grid-template-columns:1fr 1.7fr; gap:24px 50px; }
.business-heading .section-head__num { grid-column:1/-1; }
.business-heading h2 { font-size:clamp(32px,3.5vw,50px); }
.business-heading .lead { align-self:end; font-size:16px; max-width:47ch; justify-self:end; }
.business-visual { position:relative; margin-top:48px; min-height:400px; display:flex; align-items:end; isolation:isolate; overflow:hidden; }
.business-photo { position:absolute; inset:0; z-index:-2; }
.business-visual::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#14110ee8,transparent 95%); }
.business-caption { color:white; padding:42px; }
.business-caption>p { font-size:clamp(30px,3vw,44px); line-height:1.12; letter-spacing:-.035em; margin:18px 0 26px; }
.business-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:32px; padding-bottom:20px; }
.business-card { position:relative; height:100%; min-height:240px; padding:30px; background:linear-gradient(140deg,#fff,#f8f3eb); border:1px solid #d9d0c3; transition:box-shadow .4s,border-color .4s; }
.business-card:hover { border-color:#b68879; box-shadow:0 14px 35px #4f352010; }
.business-card .tiny-label { color:var(--red-600); }
.business-card h3 { font-size:24px; margin-top:24px; max-width:15ch; }
.business-card p { margin-top:16px; font-size:14px; color:var(--ink-600); max-width:32ch; }
.business-card-arrow { position:absolute; top:24px; right:26px; color:var(--red-600); transition:transform .3s; }
.business-card:hover .business-card-arrow { transform:translate(3px,-3px); }
.dealer-section { background:radial-gradient(ellipse at 100% 100%,#c8262c0b,transparent 65%),linear-gradient(180deg,#faf7f2,#f0e9df); }
.dealer-layout { display:grid; grid-template-columns:1fr 1fr; gap:9%; align-items:center; }
.dealer-copy h2 { margin-top:22px; }
.dealer-copy .lead { font-size:15px; margin-top:26px; }
.dealer-fronts { list-style:none; padding:0; margin:28px 0; display:grid; grid-template-columns:1fr 1fr; gap:0 24px; }
.dealer-fronts li { padding:14px 0; border-top:1px solid var(--line); font-size:13px; }
.dealer-fronts span { font-size:10px; color:var(--red-600); margin-right:10px; }
.dealer-visual { min-width:0; }
.dealer-photo { position:relative; height:370px; overflow:hidden; }
.dealer-note { position:relative; margin:-45px 0 0 44px; padding:32px; background:linear-gradient(125deg,#2e2621,#14110e); color:white; border-top:2px solid var(--red-500); }
.dealer-note strong { display:block; font-weight:500; font-size:28px; letter-spacing:-.035em; line-height:1.2; margin-top:20px; }
.dealer-note p { font-size:12px; color:#cbbeb0; margin-top:18px; }
.dealer-note>span:last-child { position:absolute; right:26px; top:28px; color:#ef8c8c; }
@media(max-width:1100px) {
 .hero-layout { gap:0 20px; }.hero h1 { font-size:clamp(40px,5vw,53px); }
 .hero-title-block { grid-column:1/7; }.hero-copy,.hero-note { grid-column:1/7; }
 .hero-slide-copy { padding:24px; }.hero-deck-depth { min-height:500px; }
 .business-card { padding:24px; }.dealer-layout { gap:5%; }
 .site-nav__links { gap:16px; font-size:12px; }
}
@media(max-width:760px) {
 .site-header.is-scrolled .site-nav { min-height:72px; }
 .hero-layout { padding-top:34px; padding-bottom:0; gap:0; }
 .hero-title-block { grid-column:1/-1; grid-row:1; padding:0; }
 .hero h1 { font-size:clamp(39px,9.5vw,64px); }
 .hero-copy { grid-column:1/-1; grid-row:2; padding:22px 0 28px; }
 .hero-deck { grid-column:1/-1; grid-row:3; margin-inline:calc(-1 * var(--gutter)); }
 .hero-deck-depth { min-height:0; height:440px; }
 .hero-slide-copy { padding:28px var(--gutter); }
 .hero-slide-copy h2 { font-size:34px; }.hero-slide-copy p { font-size:12px; }
 .hero-navigation { padding:14px var(--gutter) 22px; }
 .hero-note { grid-column:1/-1; grid-row:4; margin-inline:calc(-1 * var(--gutter)); padding:24px var(--gutter); }
 .hero-note strong { margin:0; }.hero-note strong br { display:block; }
 .hero-bottom { grid-column:1/-1; grid-row:5; margin:0; padding:24px 0; }
 .hero-bottom>span:first-child { width:100%; }
 .business-heading { grid-template-columns:1fr; gap:24px; }.business-heading .lead { justify-self:start; font-size:14px; }
 .business-visual { margin-top:30px; min-height:360px; }.business-caption { padding:28px; }
 .business-caption .button { gap:14px; font-size:12px; padding-inline:15px; }
 .business-grid { grid-template-columns:1fr; gap:14px; margin-top:20px; padding-bottom:0; }
 .business-card { min-height:0; }.business-card h3 { max-width:none; margin-top:16px; }.business-card p { max-width:none; }
 .dealer-layout { grid-template-columns:1fr; gap:38px; }.dealer-copy .lead { font-size:14px; }
 .dealer-fronts { gap:0 15px; }.dealer-fronts li { font-size:12px; }
 .dealer-photo { height:300px; }.dealer-note { margin-left:24px; padding:26px; }.dealer-note strong { font-size:26px; }
}
@media(prefers-reduced-motion:reduce) {
 .hero-slide.is-active .hero-slide-image img { transform:none; }
}
@media(max-width:760px) {
 .hero-deck-depth { flex:none; height:420px; }
}
/* Header overlays the hero, then settles into a light reading surface. */
.site-header { margin-bottom:calc(-1 * var(--header-h)); background:rgb(20 17 14 / 46%); border-color:#ffffff14; color:#faf7f2; }
.site-header:not(.is-scrolled) .brand__text small,.site-header:not(.is-scrolled) .site-nav__links { color:#ddd2c5; }
.site-header.is-scrolled { color:var(--ink-900); background:rgb(250 247 242 / 97%); }
.hero { padding-top:var(--header-h); }
.site-header:not(.is-scrolled) .nav-toggle { border-color:#ffffff35; }
.site-header:not(.is-scrolled) .nav-toggle span:not(.sr-only) { background:#faf7f2; }
.site-header .brand__text,.site-header .site-nav__links { transition:color .5s; }
@media(max-width:760px) {
 .site-header:not(.is-scrolled) .site-nav__links { color:var(--ink-700); }
}
.hero-slide:first-child .hero-slide-image img { object-position:85% center; }
