/* Rechter conceptvariant: licht D-beeldmerk, rode puls, donkere architectuur. */
@font-face {
  font-family:'Inter';
  src:url('/assets/inter-latin-variable.woff2') format('woff2');
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
}
@font-face {
  font-family:'Orbitron';
  src:url('/assets/orbitron-latin-variable.woff2') format('woff2');
  font-style:normal;
  font-weight:400 900;
  font-display:swap;
}

html { color-scheme:dark; scroll-padding-top:116px; }
body { background:var(--black); color:var(--ink); font-size:16px; }
::selection { background:var(--red); color:var(--black); }
:focus-visible { outline:3px solid #ff7383; outline-offset:5px; }
section[id] { scroll-margin-top:116px; }
h1,h2 { font-family:var(--font-accent); font-weight:500; letter-spacing:-.035em; line-height:1.24; }
h2 { font-size:clamp(29px,3.1vw,43px); }
h3,h4 { letter-spacing:-.025em; }
.button { color:#080a0d; font-size:13px; font-weight:750; border-radius:5px; transition:background .2s,transform .2s,box-shadow .2s; }
.button:hover { background:#ff5367; border-color:#ff5367; box-shadow:0 5px 30px #ff2e4524; }
.button.dark { background:#f8fafc; border-color:#f8fafc; color:#111; }
.button.outline { color:#f8fafc; border-color:#ffffff4d; }
.button.outline:hover { background:#ffffff0c; border-color:#fff; box-shadow:none; }
.text-link { font-size:14px; border-bottom-color:#ffffff50; }
.text-link:hover { color:#ff7181; }
.eyebrow,.eyebrow.light { font-family:var(--font-accent); font-size:10px; font-weight:500; letter-spacing:.14em; color:#b7c1cc; }
.eyebrow>span { width:25px; height:3px; border-radius:5px; box-shadow:0 0 13px #ff2e4550; }
.check { color:#ff5165; }
.skip-link { background:#f8fafc; color:#0a0a0a; }

/* Logo lockup remains legible on every page, at every viewport. */
.preview-strip { background:#10151b; color:#aeb9c6; font-size:9px; letter-spacing:.08em; border-bottom:1px solid #ffffff0b; }
.preview-dot { background:var(--red); box-shadow:0 0 10px #ff2e4560; }
.site-header { position:sticky; top:0; background:#090c10f5; border-bottom:1px solid #ffffff1c; backdrop-filter:blur(18px); }
.nav-wrap { height:102px; gap:30px; }
.brand { gap:16px; }
.brand>img { width:61px; height:auto; flex:none; object-fit:contain; }
.wordmark { gap:0; }
.wordmark strong { color:#f8fafc; font-family:var(--font-accent); font-size:22px; font-weight:550; letter-spacing:.19em; line-height:1.25; }
.wordmark>span { color:#e5eaf0; font-family:var(--font-body); font-size:12px; font-weight:300; letter-spacing:.57em; margin-top:4px; line-height:1.4; }
.wordmark>small { color:#939fac; font-size:7px; font-weight:400; letter-spacing:.09em; margin-top:7px; }
.site-header nav { gap:27px; }
.site-header nav>a:not(.button) { font-size:12px; color:#c3cbd5; font-weight:500; }
.site-header nav>a:not(.button):hover,.site-header nav>a[aria-current],.site-header nav>a.is-active { color:#fff; }
.site-header nav>a:not(.button) { position:relative; }
.site-header nav>a:not(.button):after { content:''; position:absolute; height:2px; background:var(--red); left:0; bottom:-9px; width:100%; transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.site-header nav>a:hover:after,.site-header nav>a[aria-current]:after,.site-header nav>a.is-active:after { transform:scaleX(1); }
.site-header .nav-cta { color:#07090b; font-size:11px; padding-inline:18px; }
.menu-toggle { border-color:#ffffff38; color:#fff; background:#ffffff05; }
.scroll-progress { position:fixed; top:0; left:0; height:3px; width:100%; background:var(--red); transform:scaleX(var(--scroll-progress,0)); transform-origin:left; box-shadow:0 0 12px #ff2e4580; z-index:90; pointer-events:none; }

/* Warm architecture against a calm, technical frame. */
.hero { background:#080b10; }
.hero-visual { inset:0 0 72px 0; }
.hero-visual>img { object-position:67% 50%; filter:none; }
.hero-fade { background:linear-gradient(90deg,#080b10fa 0%,#080b10ed 23%,#080b1099 43%,#080b1010 72%),linear-gradient(0deg,#080b10d9 0%,transparent 32%); }
.hero-inner { min-height:690px; padding-block:84px 92px; }
.hero-copy { max-width:610px; }
.hero-copy h1 { font-family:var(--font-accent); font-size:clamp(44px,4.4vw,64px); font-weight:500; line-height:1.17; letter-spacing:-.04em; }
.hero-copy h1 em { display:block; color:#ff5266; font-size:.55em; line-height:1.4; margin-top:12px; }
.hero-copy h1 br:last-of-type { display:none; }
.hero-copy>p:not(.eyebrow) { color:#c5cbd3; font-size:15px; line-height:1.85; max-width:445px; margin-top:28px; }
.hero-copy>.eyebrow { font-size:10px; margin-bottom:30px; }
.hero-actions { margin-top:32px; gap:24px; }
.hero-actions .button { font-size:12px; min-height:54px; padding-inline:22px; }
.hero-secondary { font-size:12px; color:#eef2f6; }
.hero-note { color:#b4bcc7; font-size:11px; margin-top:20px; }
.hero-image-label { bottom:29px; color:#eef2f6; text-shadow:0 1px 12px #000; }
.hero-image-label small { color:#d0d7df; font-size:10px; }
.hero-image-label .tiny-dot { background:var(--red); box-shadow:0 0 12px #ff2e45; }
.hero-bottom { background:#0a0e13; border-color:#ffffff20; }
.hero-bottom .wrap { min-height:72px; gap:38px; }
.hero-bottom .wrap>span { color:#ccd3db; font-size:12px; }
.hero-bottom a { color:#aeb9c5; font-size:11px; }

/* Editorial sections use generous type and subtle red details. */
.situations,.process-section,.about-section,.package-details,.service-detail,.contact-section,.legal-section { background:#0d1116; }
.services-section,.demo-section,.faq-section,.cost-section,.preparation { background:#121821; }
.section-heading>p { font-size:14px; line-height:1.85; color:#b7c1cc; }
.scenario-grid article { border-color:#ffffff27; transition:border-color .3s,transform .3s; }
.scenario-grid article:hover { border-color:var(--red); transform:translateY(-5px); }
.scenario-grid .icon,.service-row-icon,.step-number,.detail-index,.contact-aside-item>.icon,.preparation li>span { color:#ff5266; }
.scenario-grid h3,.service-row h3,.process-grid h3 { font-size:18px; line-height:1.4; }
.scenario-grid p,.service-row p,.process-grid p { font-size:13px; line-height:1.85; color:#b5bfcb; }
.section-footnote { color:#9eaab8; font-size:12px; line-height:1.8; }
.services-intro>p:not(.eyebrow) { color:#b7c1cc; font-size:15px; line-height:1.85; max-width:370px; }
.service-mark { color:#b2bdca; font-size:12px; }
.service-mark>img { width:54px; height:auto; }
.service-row { border-color:#ffffff25; padding-block:30px; }
.service-row:last-child { border-color:#ffffff25; }
.service-row:hover { background:linear-gradient(90deg,#ffffff04,transparent); }
.service-row>span:last-child,.service-number { color:#aeb9c5; }
.process-grid { gap:32px; }
.step-number { font-family:var(--font-accent); font-size:15px; border-color:#ffffff25; }
.process-grid p { color:#b5bfcb; }

/* Consumer totals are the visual focus; package scope stays readable. */
.packages-section { background:radial-gradient(ellipse at 50% 0,#19212c 0,transparent 64%),#080b10; }
.packages-section .section-heading>p { color:#b8c1cc; }
.package-grid { gap:22px; }
.package-card { background:#111820; border:1px solid #34404d; border-radius:9px; padding:31px 28px 27px; transition:border-color .25s,transform .25s; }
.package-card:hover { border-color:#8591a0; transform:translateY(-5px); }
.package-card.package-accent { background:linear-gradient(160deg,#1d2430,#111820); border-top:2px solid var(--red); box-shadow:0 -10px 45px #ff2e4507; padding-top:30px; }
.package-card .package-name { font-family:var(--font-accent); font-size:26px; font-weight:500; letter-spacing:-.025em; }
.package-index { font-family:var(--font-accent); font-size:11px; color:#a5b0bf; }
.package-type { font-size:10px; color:#cbd2dc; }
.package-subtitle { font-size:13px; color:#b9c3ce; }
.package-price strong { font-size:45px; font-weight:600; letter-spacing:-.05em; }
.package-price .from { font-size:12px; color:#c0c9d4; }
.price-caption { color:#c7d0da; font-size:12px; line-height:1.7; }
.package-summary { font-size:14px; color:#d0d7df; border-color:#ffffff20; min-height:92px; }
.feature-list li { font-size:13px; line-height:1.75; color:#d4dbe4; }
.feature-list .check { font-size:13px; }
.card-aftercare { font-size:12px; line-height:1.8; color:#b1bdcb; }
.package-card .button { font-size:12px; min-height:50px; }
.price-split { font-size:10px; color:#aab7c6; }
.card-exclusions { font-size:11px; color:#bdc7d4; }
.packages-bottom p { font-size:12px; color:#b1bdcb; }
.packages-bottom .text-link { font-size:12px; }

/* Day / evening: large, useful photos rather than a decorative thumbnail. */
.atmosphere { overflow:hidden; border:1px solid #34404e; border-radius:10px; background:#0b1017; }
.atmosphere-photo { position:relative; width:100%; aspect-ratio:16/9; min-width:0; overflow:hidden; background:#161c23; }
.atmosphere-photo>[data-scene-image] { height:100%; position:absolute; inset:0; }
.atmosphere-photo img { width:100%; height:100%; object-fit:contain; object-position:center; }
.scene-caption { background:#0a1016dd; border-color:#ffffff30; border-radius:4px; padding:7px 12px; color:#eef2f7; font-size:10px; left:20px; top:20px; }
.atmosphere-panel { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px 64px; align-items:start; padding:40px; background:radial-gradient(ellipse at 100% 0,#24304477,transparent 70%),#0b1017; border-top:1px solid #34404e; }
.atmosphere-mark { position:absolute; top:40px; left:40px; width:52px; height:auto; margin:0; }
.atmosphere-panel .demo-kicker { grid-column:1; grid-row:1; margin:0 0 0 70px; font-family:var(--font-accent); font-size:9px; line-height:1.6; letter-spacing:.11em; color:#aebbc9; }
.atmosphere-panel h3 { grid-column:1; grid-row:2; margin-left:70px; font-size:30px; line-height:1.2; font-weight:550; letter-spacing:-.04em; }
.atmosphere-panel>p:not(.demo-status) { grid-column:1; grid-row:3; margin:0; min-height:52px; color:#b5c1ce; font-size:14px; line-height:1.85; }
.scene-buttons button { color:#d2dbe5; border-color:#526071; font-size:12px; min-height:48px; padding:11px 13px; border-radius:4px; transition:background .2s,border-color .2s; }
.scene-buttons button:hover { border-color:#fff; background:#ffffff0b; }
.scene-buttons button[aria-pressed=true] { color:#07090c; font-weight:700; }
.atmosphere-panel .demo-status { grid-column:2; grid-row:4; font-size:11px; color:#a7b5c5; line-height:1.7; margin:0; }
.atmosphere-panel .text-link { grid-column:1; grid-row:4; justify-self:start; font-size:12px; gap:14px; }
.demo-disclaimer { color:#aab7c6; font-size:12px; max-width:970px; line-height:1.85; margin-top:23px; }

/* Personal portrait and identity panels. */
.about-brand { min-height:460px; border-radius:10px; padding:46px; border:1px solid #34404e; background:radial-gradient(ellipse at 0 0,#253345 0,transparent 66%),#090d12; display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start; }
.about-brand>img { width:144px; height:auto; margin-bottom:58px; }
.about-brand>span { color:#aebbc9; font-size:12px; margin-bottom:15px; }
.about-brand>strong { font-size:32px; font-weight:550; line-height:1.3; letter-spacing:-.045em; }
.about-brand>small { color:#aebbc9; font-size:12px; margin-top:15px; }
.portrait-photo { max-width:440px; width:100%; margin:0; position:relative; overflow:hidden; border-radius:10px; border:1px solid #34404e; background:#151c24; }
.portrait-photo>img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:50% 30%; }
.portrait-photo figcaption { padding:17px 21px; color:#b7c2cf; font-size:12px; background:#0b1017; }
.about-section p:not(.eyebrow) { font-size:15px; color:#b7c1cc; line-height:1.9; }
.about-section p.lead { color:#f3f6fa; font-size:21px; font-weight:450; line-height:1.5; }
.about-section .text-link { font-size:14px; }

/* Detail pages share the same atmosphere and contrast. */
.page-hero { position:relative; overflow:hidden; background:radial-gradient(ellipse at 80% 0,#202d40 0,transparent 56%),#0d1116; padding-block:88px 80px; }
.page-hero:after { content:''; position:absolute; width:280px; height:280px; right:4vw; top:15%; background:url('/assets/brand-mark.svg') no-repeat center/contain; opacity:.045; pointer-events:none; }
.page-hero .wrap { position:relative; z-index:1; }
.page-hero h1 { font-family:var(--font-accent); font-size:clamp(35px,4.5vw,62px); font-weight:500; line-height:1.25; max-width:1020px; }
.page-hero .wrap>p:not(.eyebrow) { color:#b9c3cf; font-size:16px; line-height:1.85; }
.info-note,.service-package,.form-notice,.form-result { background:#1a2330; border-color:var(--red); }
.info-note strong { color:#edf2f8; font-size:15px; }
.info-note p,.packages-section .info-note p { color:#bac5d2; font-size:13px; line-height:1.85; }
.package-detail { border-color:#ffffff25; }
.package-detail p,.plain-list,.cost-list p,.cost-section .two-column>div>p,.service-detail .two-column>div>p,.preparation .two-column>div>p { color:#b6c1ce; font-size:14px; line-height:1.9; }
.package-detail h3 { font-size:29px; }
.package-detail h4 { font-size:17px; }
.plain-list li::marker { color:#ff5266; }
.hours-list { font-size:13px; color:#bec9d6; }
.cost-list h3 { font-size:21px; }
.cost-list article { border-color:#ffffff25; }
.visit-estimator { background:#0b1119; border-color:#3e4c5e; border-radius:8px; padding:30px; }
.visit-estimator label { font-size:13px; }
.visit-estimator output { font-size:37px; }
.visit-estimator>span,.visit-estimator>p { color:#b2bfcd; font-size:12px; line-height:1.8; }
.service-illustration { background:radial-gradient(ellipse at 50% 20%,#26364b 0,#0a0e15 75%); border:1px solid #34404e; border-radius:10px; color:#f1f5fa; }
.service-illustration>.icon { color:#ff5266; filter:drop-shadow(0 0 15px #ff2e4525); }
.service-illustration>span { font-size:21px; }
.service-illustration>small { color:#adbbcb; font-size:12px; }
.large-feature-list li { font-size:14px; }
.service-package>span { color:#aab9cb; font-size:11px; }
.service-package>strong { font-size:21px; }
.service-package>a { font-size:13px; }
.preparation li { font-size:15px; border-color:#ffffff25; }
.preparation .info-note { background:#0c131c; }
.faq-section .two-column>div:first-child>p:not(.eyebrow) { font-size:15px; color:#b8c2cf; line-height:1.85; }
.faq-list details { border-color:#ffffff25; }
.faq-list details:first-child { border-color:#ffffff25; }
summary,.faq-list summary { font-size:15px; font-weight:550; }
summary>span { color:#ff5266; }
.faq-list details>div>p { font-size:14px; color:#b6c2cf; line-height:1.85; }
.final-cta { background:radial-gradient(ellipse at 10% 10%,#222c3e55,transparent 60%),#0d1116; border-top:1px solid #ffffff0c; }
.final-cta h2 { max-width:730px; }
.final-cta p:not(.eyebrow) { color:#b8c3d0; font-size:15px; line-height:1.85; }
.final-cta .button { flex:none; font-size:13px; }

/* Forms: comfortable on phones; demo status remains explicit. */
.contact-layout>aside { top:132px; }
.contact-layout>aside>p,.contact-aside-item p { color:#b6c2cf; font-size:14px; }
.contact-aside-item strong { font-size:14px; }
.contact-layout>aside>.contact-pending { color:#aebdcd; font-size:12px; border-color:#ffffff25; }
.contact-layout .text-link { font-size:13px; }
.form-notice>.icon { color:#ff6375; }
.form-notice p { color:#b8c6d6; font-size:12px; }
.form-notice strong { color:#f8fafc; font-size:14px; }
.required-note,.field label>span,.textarea-help,.form-privacy { color:#aebdcd; }
.required-note { font-size:12px; }
.field label { font-size:14px; }
.field label>span { font-size:12px; }
input,textarea,select { background:#101822; color:#f8fafc; border-color:#526174; border-radius:5px; font-size:16px; min-height:52px; }
input:hover,textarea:hover,select:hover { border-color:#a3b3c6; }
input::placeholder,textarea::placeholder { color:#97a7ba; font-size:14px; }
textarea { min-height:170px; }
input[aria-invalid=true],textarea[aria-invalid=true] { border-color:#ff7b8b; background:#4b182033; }
.field-error { color:#ff9aa7; font-size:12px; }
.error-summary { background:#341c25; border-color:#ff7b8b; color:#ffd5dd; font-size:13px; }
.textarea-help { font-size:11px; }
.form-privacy { font-size:12px; line-height:1.85; }
.form-result { color:#d6e0eb; font-size:14px; }
.prose>p { color:#b8c4d2; font-size:15px; line-height:1.9; }
.prose h2 { font-family:var(--font-body); font-size:27px; }

/* Footer: a second generous, uncluttered brand moment. */
.site-footer { background:#070a0e; border-top:1px solid #ffffff20; color:#aebdce; padding-top:78px; }
.site-footer .brand>img { width:76px; }
.site-footer .wordmark strong { font-size:27px; color:#f8fafc; }
.site-footer .wordmark>span { font-size:15px; }
.site-footer .wordmark>small { font-size:9px; }
.footer-top { padding-bottom:43px; }
.footer-top>p { color:#e3e9f1; font-size:29px; font-weight:400; line-height:1.3; }
.footer-grid>p { color:#b5c0ce; font-size:14px; }
.footer-label { color:#e1e8f2; font-family:var(--font-accent); font-size:10px; }
.footer-grid a { font-size:13px; line-height:2.6; }
.footer-grid a:hover { color:#ff7c8b; }
.footer-bottom { font-size:10px; color:#a2b0c2; }

/* Progressive motion: content is visible before JavaScript and on reduced motion. */
html.motion-ready [data-reveal] { opacity:0; transform:translate3d(0,22px,0); transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1); transition-delay:var(--reveal-delay,0ms); }
html.motion-ready [data-reveal].is-visible { opacity:1; transform:none; }

@media(min-width:1600px) {
  .hero-visual { left:0; }
  .hero-copy h1 { font-size:70px; }
  .hero-inner { min-height:760px; }
}
@media(max-width:1100px) {
  .brand { gap:12px; }
  .brand>img { width:53px; }
  .wordmark strong { font-size:19px; }
  .wordmark>span { font-size:11px; letter-spacing:.49em; }
  .site-header nav { gap:19px; }
  .site-header nav>a:not(.button) { font-size:11px; }
  .site-header .nav-cta { font-size:10px; padding-inline:14px; }
  .hero-copy h1 { font-size:58px; }
  .hero-inner { min-height:660px; }
  .hero-visual { left:0; }
  .hero-copy { max-width:520px; }
  .hero-copy>p:not(.eyebrow) { font-size:14px; max-width:400px; }
  .atmosphere-panel { padding:32px; gap:14px 38px; }
  .atmosphere-mark { top:32px; left:32px; }
  .package-card { padding-inline:23px; }
  .package-price strong { font-size:39px; }
  .package-card .package-name { font-size:24px; }
}
@media(max-width:900px) {
  .nav-wrap { height:90px; }
  html { scroll-padding-top:104px; }
  section[id] { scroll-margin-top:104px; }
  .site-header nav { background:#0d131bf7; padding-bottom:25px; border-bottom-color:#ffffff25; backdrop-filter:blur(18px); }
  .site-header nav>a:not(.button) { color:#d6dee8; font-size:15px; padding-block:14px; }
  .site-header nav>a:not(.button):after { display:none; }
  .site-header .nav-cta { font-size:13px; min-height:50px; margin-top:22px; }
  .hero-copy h1 { font-size:54px; }
  .hero-copy { max-width:480px; }
  .hero-copy>p:not(.eyebrow) { max-width:370px; }
  .hero-fade { background:linear-gradient(90deg,#080b10f5 0%,#080b10c9 35%,#080b1030 100%),linear-gradient(0deg,#080b10c9,transparent 40%); }
  .hero-bottom .wrap { gap:24px; }
  .hero-bottom .wrap>span { font-size:11px; }
  .section-heading>p { font-size:14px; }
  .scenario-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px; }
  .scenario-grid p { max-width:100%; }
  .process-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:35px; }
  .package-grid { grid-template-columns:1fr; max-width:700px; margin-inline:auto; }
  .package-card { padding:30px; }
  .package-card .package-name { font-size:28px; }
  .package-summary { min-height:0; }
  .package-price strong { font-size:45px; }
  .feature-list { margin-bottom:18px; }
  .feature-list li { font-size:14px; }
  .package-card .button { font-size:13px; }
  .atmosphere-panel h3 { font-size:27px; }
  .atmosphere-panel .text-link { gap:10px; }
  .about-brand { padding:32px; min-height:430px; }
  .about-brand>img { width:120px; }
  .about-brand>strong { font-size:29px; }
  .about-section .two-column { gap:38px; }
  .footer-grid { gap:35px; }
  .contact-layout { gap:40px; }
}
@media(max-width:760px) {
  .atmosphere-photo { aspect-ratio:16/9; }
  .atmosphere-panel { padding:30px; grid-template-columns:1fr; gap:16px; }
  .atmosphere-mark { top:30px; left:30px; width:48px; }
  .atmosphere-panel .demo-kicker,.atmosphere-panel h3 { grid-column:1; margin-left:66px; }
  .atmosphere-panel>p,.atmosphere-panel .text-link { grid-column:1; }
  .atmosphere-panel>p:not(.demo-status) { min-height:78px; }
  .atmosphere-panel .text-link { grid-row:7; }
  .atmosphere-panel .demo-status { grid-row:6; margin:0; }
  .scene-buttons button { max-width:none; }
  .atmosphere-panel .text-link { justify-self:start; }
  .two-column,.services-section .two-column,.faq-section .two-column { grid-template-columns:1fr; gap:40px; }
  .services-intro>p:not(.eyebrow) { max-width:600px; }
  .service-mark { display:none; }
  .service-number { display:none; }
  .service-row { grid-template-columns:35px 1fr 24px; }
  .service-row p { max-width:none; }
  .about-brand { min-height:370px; }
  .about-brand>img { width:110px; margin-bottom:40px; }
  .portrait-photo { max-width:440px; width:100%; }
  .contact-layout { grid-template-columns:1fr; }
  .contact-layout>aside { position:static; }
  .package-detail { grid-template-columns:1fr; gap:24px; }
  .final-cta-inner { flex-direction:column; align-items:flex-start; gap:30px; }
}
@media(max-width:680px) {
  body { font-size:15px; }
  .preview-strip { font-size:8px; letter-spacing:.035em; }
  .preview-strip .wrap { min-height:28px; }
  .preview-strip .wrap>span:last-child { font-size:7px; }
  .nav-wrap { height:85px; gap:15px; }
  .brand { gap:10px; min-width:0; }
  .brand>img { width:43px; }
  .wordmark strong { font-size:16px; letter-spacing:.15em; }
  .wordmark>span { font-size:10px; letter-spacing:.4em; margin-top:3px; }
  .wordmark>small { display:none; }
  .menu-toggle { font-size:11px; padding:10px; gap:9px; }
  .hero-inner { min-height:0; padding-block:48px 320px; align-items:flex-start; }
  .hero-copy { width:100%; max-width:none; }
  .hero-copy h1 { font-size:clamp(38px,9.7vw,62px); line-height:1.19; letter-spacing:-.045em; }
  .hero-copy>.eyebrow { font-size:8px; line-height:1.6; margin-bottom:23px; }
  .hero-copy>p:not(.eyebrow) { font-size:14px; line-height:1.8; max-width:440px; margin-top:24px; }
  .hero-visual { inset:auto 0 72px; height:355px; }
  .hero-visual>img { object-fit:cover; object-position:58% 54%; filter:none; }
  .hero-fade { background:linear-gradient(180deg,#080b10 0%,#080b10b0 12%,transparent 40%),linear-gradient(0deg,#080b1080,transparent 50%); }
  .hero-actions { flex-direction:row; align-items:center; gap:14px 20px; margin-top:25px; }
  .hero-actions .button { font-size:12px; min-height:51px; padding-inline:19px; gap:17px; }
  .hero-secondary { font-size:12px; }
  .hero-note { font-size:11px; margin-top:18px; }
  .hero-image-label { left:0; bottom:22px; font-size:11px; }
  .hero-image-label small { font-size:9px; }
  .hero-bottom .wrap { min-height:72px; gap:15px; }
  .hero-bottom .wrap>span { font-size:9px; max-width:110px; line-height:1.55; gap:6px; }
  .hero-bottom .check { font-size:12px; }
  h2 { font-size:clamp(28px,6.8vw,36px); line-height:1.28; }
  .section-heading { margin-bottom:37px; }
  .section-heading>p { font-size:14px; line-height:1.85; margin-top:24px; }
  .eyebrow { font-size:9px; letter-spacing:.1em; line-height:1.7; margin-bottom:22px; }
  .scenario-grid { gap:31px 22px; }
  .scenario-grid h3,.process-grid h3 { font-size:16px; line-height:1.4; }
  .scenario-grid p,.process-grid p { font-size:13px; line-height:1.8; }
  .scenario-grid .icon { width:29px; height:29px; }
  .section-footnote { font-size:12px; }
  .services-intro>p:not(.eyebrow) { font-size:14px; line-height:1.85; }
  .service-row { gap:15px; padding-block:26px; }
  .service-row h3 { font-size:18px; }
  .service-row p { font-size:13px; line-height:1.8; }
  .process-grid { gap:34px 24px; }
  .step-number { font-size:13px; }
  .package-card { padding:29px 24px 26px; }
  .package-card.package-accent { padding-top:28px; }
  .package-card .package-name { font-size:28px; }
  .package-subtitle { font-size:13px; }
  .package-price strong { font-size:44px; }
  .price-caption { font-size:12px; }
  .package-summary { font-size:14px; }
  .feature-list li { font-size:13px; }
  .card-aftercare { font-size:12px; }
  .package-card .button { font-size:13px; }
  .package-type,.package-index { font-size:10px; }
  .price-split { font-size:10px; }
  .card-exclusions { font-size:11px; }
  .packages-bottom p { font-size:12px; }
  .packages-bottom .text-link { font-size:13px; }
  .atmosphere-photo { aspect-ratio:16/9; }
  .atmosphere-panel { padding:26px 23px; gap:15px; }
  .atmosphere-panel h3 { font-size:26px; min-height:64px; }
  .atmosphere-panel>p:not(.demo-status) { font-size:14px; }
  .atmosphere-mark { width:43px; top:26px; left:23px; }
  .scene-caption { top:13px; left:13px; font-size:9px; padding:6px 9px; }
  .scene-buttons { gap:9px; }
  .scene-buttons button { font-size:12px; min-height:48px; max-width:none; }
  .demo-disclaimer { font-size:12px; line-height:1.8; }
  .about-brand { padding:32px; min-height:365px; }
  .about-brand>strong { font-size:29px; }
  .about-section p:not(.eyebrow) { font-size:14px; }
  .about-section p.lead { font-size:20px; }
  .about-section .text-link { font-size:14px; }
  .faq-section .two-column>div:first-child>p:not(.eyebrow) { font-size:14px; }
  .faq-list summary { font-size:14px; padding-block:22px; }
  .faq-list details>div>p { font-size:14px; }
  .final-cta p:not(.eyebrow) { font-size:14px; }
  .final-cta .button { font-size:13px; padding-inline:22px; }
  .page-hero { padding-block:57px 53px; }
  .page-hero h1 { font-size:clamp(32px,8.4vw,48px); line-height:1.28; overflow-wrap:break-word; }
  .page-hero .wrap>p:not(.eyebrow) { font-size:15px; line-height:1.85; }
  .page-hero .button { font-size:13px; }
  .page-hero:after { width:180px; height:180px; right:-20px; top:20%; }
  .info-note { padding:24px; }
  .info-note strong { font-size:15px; }
  .info-note p { font-size:13px; }
  .package-detail p,.plain-list,.cost-list p,.cost-section .two-column>div>p,.service-detail .two-column>div>p,.preparation .two-column>div>p { font-size:14px; }
  .package-detail h3 { font-size:27px; }
  .package-detail h4 { font-size:17px; }
  .cost-list h3 { font-size:20px; }
  .visit-estimator { padding:24px; }
  .visit-estimator output { font-size:35px; }
  .service-illustration { min-height:330px; padding:30px; }
  .service-illustration>span { font-size:20px; }
  .service-illustration>small { font-size:12px; }
  .large-feature-list li { font-size:14px; }
  .service-package>strong { font-size:20px; }
  .preparation li { font-size:14px; }
  .contact-layout>aside>h2 { font-size:29px; }
  .contact-layout>aside>p { font-size:14px; }
  .field label { font-size:14px; }
  .field label>span { font-size:12px; }
  .field input,.field select,.field textarea { font-size:16px; min-height:52px; }
  .textarea-help { font-size:10px; }
  .field-error { font-size:12px; }
  .contact-form .button { font-size:13px; }
  .prose>p { font-size:14px; }
  .prose h2 { font-size:25px; }
  .text-link { font-size:13px; }
  .site-footer { padding-top:54px; }
  .footer-top { flex-direction:column; align-items:flex-start; gap:33px; }
  .site-footer .brand { gap:15px; }
  .site-footer .brand>img { width:59px; }
  .site-footer .wordmark strong { font-size:22px; letter-spacing:.16em; }
  .site-footer .wordmark>span { font-size:13px; letter-spacing:.43em; }
  .site-footer .wordmark>small { display:block; font-size:8px; margin-top:8px; }
  .footer-top>p { font-size:26px; }
  .footer-grid { gap:28px 20px; }
  .footer-grid>p { font-size:14px; }
  .footer-grid a { font-size:12px; line-height:2.7; }
  .footer-label { font-size:9px; }
  .footer-bottom { font-size:10px; gap:13px; }
}
@media(prefers-reduced-motion:reduce) {
  html.motion-ready [data-reveal] { opacity:1!important; transform:none!important; transition:none!important; }
  .scenario-grid article:hover,.package-card:hover { transform:none; }
}

/* Three supported scene choices retain an identical image frame. */
.scene-features { grid-column:2; grid-row:2/4; align-content:start; list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:0; margin:0; width:100%; min-height:78px; }
.scene-features li { display:flex; align-items:center; justify-content:center; text-align:center; min-height:64px; padding:6px 9px; border:1px solid #ffffff25; border-radius:4px; font-size:11px; line-height:1.6; color:#bfccd9; background:#ffffff03; }
.scene-step { grid-column:2; grid-row:1; justify-self:end; font-family:var(--font-accent); color:#9eadbf; font-size:10px; letter-spacing:.12em; line-height:1.5; }
.atmosphere[data-scene=evening] { border-color:#7c5552; }
.atmosphere[data-scene=movie] { border-color:#665275; }
.atmosphere { transition:border-color .4s; }
.atmosphere [data-scene-image]:not([hidden]) { animation:scene-appear .55s ease both; }
@keyframes scene-appear { from { opacity:.4; } to { opacity:1; } }
.portrait-frame { display:flex; align-items:center; justify-content:center; padding:20px; background:radial-gradient(ellipse at 50% 30%,#253345,transparent 73%); }
.portrait-frame>img { width:100%; max-width:400px; height:auto; aspect-ratio:1; object-fit:contain; border-radius:7px; }
.service-photo { margin:0; overflow:hidden; border:1px solid #34404e; border-radius:10px; background:#0b1017; }
.service-photo img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.service-photo figcaption { padding:17px 21px; font-size:12px; line-height:1.7; color:#b8c5d4; }
@media(max-width:760px) {
  .scene-features { grid-column:1; grid-row:5; min-height:72px; }
  .scene-step { grid-column:1; grid-row:4; justify-self:start; }
}
@media(max-width:680px) {
  .portrait-frame { padding:16px; }
  .scene-features li { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) {
  .atmosphere [data-scene-image]:not([hidden]) { animation:none; }
}

/* Controls sit directly above the image so a phone tap shows its result. */
.atmosphere-toolbar { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:18px 28px; background:#0b1017; border-bottom:1px solid #34404e; }
.atmosphere-toolbar>span { font-family:var(--font-accent); font-size:11px; letter-spacing:.08em; color:#c8d2df; line-height:1.6; }
.atmosphere-toolbar .scene-buttons { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; width:min(590px,66%); }
.atmosphere-toolbar .scene-buttons button { display:flex; flex-direction:row; align-items:center; justify-content:center; gap:9px; padding:13px 15px; min-height:52px; min-width:0; font-size:12px; background:#131c27; color:#dce4ee; border-color:#49586b; }
.atmosphere-toolbar .scene-buttons .icon { width:18px; height:18px; flex:none; }
.atmosphere-toolbar .scene-buttons button:hover { background:#1c2939; border-color:#a4b1c0; }
.atmosphere-toolbar .scene-buttons button[aria-pressed=true],.atmosphere-toolbar .scene-buttons button[aria-pressed=true]:hover { background:var(--red); border-color:var(--red); color:#080a0d; font-weight:750; box-shadow:0 0 20px #ff2e4518; }
@media(max-width:900px) {
  .atmosphere-toolbar { padding:17px 22px; gap:20px; }
  .atmosphere-toolbar>span { font-size:10px; max-width:140px; }
  .atmosphere-toolbar .scene-buttons { width:70%; }
  .atmosphere-toolbar .scene-buttons button { gap:7px; padding-inline:8px; font-size:11px; }
}
@media(max-width:680px) {
  .atmosphere-toolbar { display:block; padding:16px; }
  .atmosphere-toolbar>span { display:block; max-width:none; font-size:9px; margin-bottom:12px; }
  .atmosphere-toolbar .scene-buttons { width:100%; gap:7px; }
  .atmosphere-toolbar .scene-buttons button { min-height:54px; padding:10px 5px; font-size:11px; }
  .atmosphere-toolbar .scene-buttons .icon { display:none; }
}

/* One natural column on phones: never retain desktop grid placements. */
@media(max-width:760px) {
  .atmosphere-panel { display:flex; flex-direction:column; align-items:stretch; gap:0; }
  .atmosphere-panel>* { grid-column:1/-1; grid-row:auto; max-width:100%; }
  .atmosphere-panel .atmosphere-mark { position:static; inset:auto; align-self:flex-end; width:43px; height:auto; margin:0 0 18px; }
  .atmosphere-panel .demo-kicker { width:100%; margin:0 0 13px; }
  .atmosphere-panel h3 { width:100%; margin:0; min-height:0; }
  .atmosphere-panel>p:not(.demo-status) { width:100%; min-height:0; margin:18px 0 0; }
  .atmosphere-panel .scene-step { width:100%; align-self:stretch; margin:16px 0 0; }
  .atmosphere-panel .scene-features { width:100%; min-height:0; display:flex; flex-wrap:wrap; align-content:start; gap:8px; margin:20px 0 0; }
  .atmosphere-panel .scene-features li { min-height:0; padding:7px 10px; font-size:11px; }
  .atmosphere-panel .demo-status { width:100%; margin:18px 0 0; }
  .atmosphere-panel .text-link { width:100%; align-self:stretch; justify-content:space-between; margin:22px 0 0; }
}
