
:root{
  --primary: #1f4b4d;
  --primary-2: #14332f;
  --secondary: #c96f44;
  --accent: #e2a63b;
  --ink: #241f1a;
  --cream: #faf5ee;
  --paper: #fffaf3;

  --primary-100: color-mix(in oklch, var(--primary), white 90%);
  --primary-200: color-mix(in oklch, var(--primary), white 78%);
  --primary-300: color-mix(in oklch, var(--primary), white 60%);
  --primary-500: var(--primary);
  --primary-700: color-mix(in oklch, var(--primary), black 25%);
  --primary-900: color-mix(in oklch, var(--primary), black 45%);

  --secondary-200: color-mix(in oklch, var(--secondary), white 75%);
  --secondary-400: color-mix(in oklch, var(--secondary), white 20%);
  --secondary-600: color-mix(in oklch, var(--secondary), black 15%);

  --accent-200: color-mix(in oklch, var(--accent), white 70%);
  --accent-600: color-mix(in oklch, var(--accent), black 15%);

  --ink-60: color-mix(in oklch, var(--ink), white 40%);
  --ink-40: color-mix(in oklch, var(--ink), white 60%);
  --border-soft: color-mix(in oklch, var(--primary), white 82%);

  --shadow-sm: 0 1px 2px color-mix(in oklch, var(--ink), transparent 92%), 0 1px 1px color-mix(in oklch, var(--ink), transparent 96%);
  --shadow-md: 0 6px 14px color-mix(in oklch, var(--ink), transparent 90%), 0 2px 6px color-mix(in oklch, var(--ink), transparent 94%);
  --shadow-lg: 0 18px 34px color-mix(in oklch, var(--ink), transparent 88%), 0 6px 12px color-mix(in oklch, var(--ink), transparent 92%);
  --shadow-xl: 0 30px 60px color-mix(in oklch, var(--ink), transparent 85%), 0 10px 20px color-mix(in oklch, var(--ink), transparent 90%);
  --shadow-float: 0 16px 40px color-mix(in oklch, var(--primary-900), transparent 82%), 0 4px 10px color-mix(in oklch, var(--primary-900), transparent 90%);

  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-xl: 32px;
  --radius-full: 999px;

  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2.5rem;
  --space-xl: 4rem;
  --space-2xl: 6rem;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; overflow-x: hidden; }
body{
  margin:0;
  font-family: 'Inter', sans-serif;
  color: var(--ink);
  background: var(--cream);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4{ font-family:'Lora', serif; color: var(--primary-900); margin: 0 0 0.6em; line-height: 1.2; }
p{ margin: 0 0 1em; color: var(--ink-60); }
a{ color: var(--primary-700); text-decoration: none; transition: color .25s ease; }
img{ max-width: 100%; display: block; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family: inherit; cursor: pointer; }
.container{ max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }


.section-kicker{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size: .8rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color: var(--secondary-600); margin-bottom: .8rem;
}
.section-title{ font-size: clamp(1.6rem, 1.1rem + 1.8vw, 2.5rem); font-weight:600; }
.section-copy{ font-size: 1.05rem; max-width: 60ch; }


.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding: .85rem 1.6rem; border-radius: var(--radius-full);
  font-weight:600; font-size: .95rem; border: 2px solid transparent;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  min-height: 44px;
}
.btn--primary{ background: var(--primary); color: var(--paper); box-shadow: var(--shadow-md); }
.btn--primary:hover{ background: var(--primary-700); transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.btn--secondary{ background: var(--secondary); color: var(--paper); box-shadow: var(--shadow-md); }
.btn--secondary:hover{ background: var(--secondary-600); transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.btn--ghost{ background: transparent; border-color: var(--primary-300); color: var(--primary-700); }
.btn--ghost:hover{ background: var(--primary-100); border-color: var(--primary); transform: translateY(-2px); }
.btn--onlight{ background: var(--paper); color: var(--primary-900); }
.btn--onlight:hover{ background: var(--accent-200); transform: translateY(-2px); }
.btn--lg{ padding: 1.05rem 2rem; font-size: 1rem; }


.canvas-header{ position: sticky; top:0; z-index: 200; padding: 1rem 1rem 0; }
.stage-nav{
  max-width: 1200px; margin: 0 auto;
  display:flex; align-items:center; justify-content:space-between; gap: 1rem;
  background: color-mix(in oklch, var(--paper), transparent 4%);
  border-radius: var(--radius-lg);
  padding: .7rem 1rem .7rem 1.2rem;
  box-shadow: var(--shadow-float);
  position: relative;
  border: 1px solid var(--border-soft);
}
.stage-nav::after{
  content:''; position:absolute; left:50%; bottom:-1px; height:2px; width:100%;
  background: linear-gradient(90deg, var(--secondary), var(--primary));
  transform: translateX(-50%) scaleX(0);
  transition: transform .5s ease;
  border-radius: var(--radius-full);
}
.stage-nav.is-sealed::after{ transform: translateX(-50%) scaleX(1); }
.stage-nav__brand{ display:flex; align-items:center; gap:.6rem; font-family:'Lora',serif; font-weight:600; font-size:1.15rem; color: var(--primary-900); }
.stage-nav__logo{ width: 36px; height: 36px; }
.stage-nav__links{ display:flex; gap: 1.8rem; }
.stage-nav__links a{ color: var(--ink-60); font-weight:500; font-size:.95rem; padding: .4rem 0; position:relative; }
.stage-nav__links a::after{ content:''; position:absolute; left:0; bottom:-2px; height:2px; width:0; background: var(--secondary); transition: width .25s ease; }
.stage-nav__links a:hover, .stage-nav__links a.is-active{ color: var(--primary-900); }
.stage-nav__links a:hover::after, .stage-nav__links a.is-active::after{ width:100%; }
.stage-nav__burger{ display:none; background: var(--primary-100); border:none; width:44px; height:44px; border-radius: var(--radius-md); font-size:1.1rem; color: var(--primary-900); align-items:center; justify-content:center; transition: background .25s ease; }
.stage-nav__burger:hover{ background: var(--primary-200); }


.drawer{
  position: fixed; top:0; right:0; height:100vh; width: min(84vw, 360px);
  background: var(--paper); z-index: 999; box-shadow: var(--shadow-xl);
  transform: translateX(100%); transition: transform .45s cubic-bezier(.77,0,.18,1);
  display:flex; flex-direction:column; padding: 1.5rem;
}
.drawer.is-open{ transform: translateX(0); }
.drawer__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom: 2rem; }
.drawer__title{ font-family:'Lora',serif; font-weight:600; font-size:1.2rem; color: var(--primary-900); }
.drawer__close{ background: var(--primary-100); border:none; width:44px; height:44px; border-radius:var(--radius-md); font-size:1.1rem; color: var(--primary-900); }
.drawer__links{ display:flex; flex-direction:column; gap: 1.6rem; margin-bottom: 2rem; }
.drawer__links a{ font-family:'Lora',serif; font-size:1.3rem; font-weight:600; color: var(--primary-900); }
.drawer__cta{ margin-top:auto; }
.stage-curtain{
  position:fixed; inset:0; background: color-mix(in oklch, var(--ink), transparent 45%);
  z-index: 900; opacity:0; visibility:hidden; transition: opacity .4s ease, visibility .4s ease;
}
.stage-curtain.is-open{ opacity:1; visibility:visible; }


.stage{ padding: clamp(2rem, 4vw, 5rem) 0 2rem; overflow: hidden; }
.stage__inner{ display:grid; grid-template-columns: 1.05fr .95fr; align-items:center; gap: 2rem; }
.stage__kicker{ display:inline-flex; align-items:center; gap:.5rem; background: var(--primary-100); color: var(--primary-700); padding: .5rem 1rem; border-radius: var(--radius-full); font-size:.85rem; font-weight:600; margin-bottom:1.2rem; }
.stage__title{ font-size: clamp(2.2rem, 1.6rem + 3vw, 3.6rem); font-weight:700; margin-bottom: 1rem; }
.stage__lead{ font-size: 1.1rem; max-width: 52ch; margin-bottom: 1.8rem; }
.stage__actions{ display:flex; gap: 1rem; flex-wrap:wrap; margin-bottom: 2rem; }
.stage__meta{ display:flex; gap: 1.6rem; flex-wrap:wrap; font-size:.9rem; color: var(--primary-700); font-weight:600; }
.stage__meta i{ color: var(--secondary-600); margin-right:.4rem; }
.stage__media{ position:relative; }
.stage__img{ width:100%; height: 460px; object-fit:cover; border-radius: var(--radius-xl); box-shadow: var(--shadow-xl); }
.stage__floater{
  position:absolute; left: -1.5rem; bottom: -1.5rem;
  display:flex; align-items:center; gap: .9rem; max-width: 280px;
}


.gallery{ }
.gallery--pad{ padding: var(--space-2xl) 0; }
.gallery--tint{ background: color-mix(in oklch, var(--primary), var(--cream) 92%); }
.gallery__head{ max-width: 720px; margin-bottom: 2.6rem; }
.gallery__grid{ display:grid; gap: 2.5rem; }
.gallery__grid--split{ grid-template-columns: 1fr 1fr; align-items:center; }
.gallery__grid--reverse{ direction: rtl; }
.gallery__grid--reverse > *{ direction: ltr; }
.gallery__grid--contact{ grid-template-columns: .85fr 1.15fr; align-items:start; }

.shelf{ display:grid; gap: 1.6rem; }
.shelf--four{ grid-template-columns: repeat(4, 1fr); }
.shelf--stats{ grid-template-columns: repeat(4, 1fr); }
.shelf--gallery{ grid-template-columns: repeat(4, 1fr); }

.widget{
  background: var(--paper); border-radius: var(--radius-lg);
  padding: 1.8rem; box-shadow: var(--shadow-md); border: 1px solid var(--border-soft);
  transition: transform .3s ease, box-shadow .3s ease;
}
.widget:hover{ transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.widget__icon{ width:48px; height:48px; border-radius: var(--radius-md); background: var(--primary-100); color: var(--primary-700); display:flex; align-items:center; justify-content:center; font-size:1.2rem; margin-bottom: 1rem; }
.widget__icon--lg{ width:56px; height:56px; font-size:1.4rem; }
.widget__title{ font-size: 1.15rem; margin-bottom:.6rem; }
.widget__text{ font-size:.96rem; margin-bottom:0; }
.widget__label{ font-size:.82rem; color: var(--ink-40); margin-bottom:.2rem; text-transform:uppercase; letter-spacing:.04em; }
.widget__value{ font-size: 1.4rem; font-weight:700; color: var(--primary-900); font-family:'Lora',serif; margin:0; }

.widget--stat{ text-align:center; }
.widget--stat .widget__icon{ margin: 0 auto 1rem; }
.widget--stat .widget__value{ font-size: 2.2rem; }

.widget--photo{ padding:0; overflow:hidden; }
.widget--photo img{ width:100%; height: 200px; object-fit:cover; }
.widget--photo figcaption{ padding: 1rem 1.2rem; font-size:.88rem; color: var(--ink-40); font-weight:500; }

.rounded-img{ width:100%; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); object-fit:cover; }


.check-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 2.5rem; align-content:start; }
.check-list{ display:flex; flex-direction:column; gap: 1.1rem; }
.check-list li{ display:flex; align-items:flex-start; gap:.8rem; font-weight:500; color: var(--ink); font-size: .98rem; }
.check-list i{ width: 26px; height:26px; min-width:26px; border-radius:50%; background: var(--secondary); color:#fff; display:flex; align-items:center; justify-content:center; font-size:.75rem; margin-top:.1rem; }

.mini-list{ display:flex; flex-direction:column; gap: 1rem; margin-bottom: 1.6rem; }
.mini-list li{ display:flex; gap:.7rem; align-items:flex-start; font-size:.98rem; }
.mini-list i{ color: var(--secondary-600); margin-top:.2rem; }


.rail{ position:relative; padding: 1rem 0; }
.rail__line{ position:absolute; left:50%; top:0; bottom:0; width:3px; background: var(--border-soft); transform: translateX(-50%); border-radius: var(--radius-full); }
.rail__item{ position:relative; width: 48%; margin-bottom: 2.6rem; }
.rail__item--left{ margin-right:auto; text-align:right; }
.rail__item--right{ margin-left:auto; text-align:left; }
.rail__dot{
  position:absolute; top: 0; width:42px; height:42px; border-radius:50%;
  background: var(--primary); color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow: var(--shadow-md); font-size: 1rem; z-index:2;
}
.rail__item--left .rail__dot{ right: -21px; }
.rail__item--right .rail__dot{ left: -21px; }
.rail__card{ display:inline-block; text-align:left; width:100%; }
.rail__step{ display:inline-block; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color: var(--secondary-600); margin-bottom:.4rem; }
.rail__cta{ text-align:center; margin-top: 1.5rem; }


.table-wrap{ overflow-x:auto; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.compare-table{ width:100%; border-collapse: collapse; background: var(--paper); min-width: 640px; }
.compare-table th, .compare-table td{ padding: 1.1rem 1.4rem; text-align:left; border-bottom: 1px solid var(--border-soft); font-size:.95rem; }
.compare-table thead th{ background: var(--primary-900); color: var(--paper); font-family:'Lora',serif; font-weight:600; }
.compare-table thead th.is-recommended{ background: var(--secondary-600); position:relative; }
.compare-table tbody tr:hover{ background: var(--primary-100); }
.compare-table i{ color: var(--secondary-600); }
.pill{ display:block; font-size:.68rem; font-weight:600; text-transform:uppercase; letter-spacing:.03em; margin-top:.3rem; opacity:.9; }


.faq-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.faq{ background: var(--paper); border-radius: var(--radius-md); padding: 1.2rem 1.4rem; box-shadow: var(--shadow-sm); border: 1px solid var(--border-soft); transition: box-shadow .25s ease; }
.faq:hover{ box-shadow: var(--shadow-md); }
.faq summary{ cursor:pointer; font-weight:600; color: var(--primary-900); font-family:'Lora',serif; list-style:none; display:flex; justify-content:space-between; align-items:center; }
.faq summary::after{ content:'+'; font-size:1.3rem; color: var(--secondary-600); }
.faq[open] summary::after{ content:'\2212'; }
.faq p{ margin-top: .8rem; margin-bottom:0; font-size:.95rem; }


.spotlight-cta{ background: linear-gradient(120deg, var(--primary-900), var(--primary) 55%, var(--secondary-600)); padding: 3.4rem 0; margin: 0; }
.spotlight-cta__inner{ display:flex; align-items:center; justify-content:space-between; gap: 2rem; flex-wrap:wrap; }
.spotlight-cta__title{ color:#fff; font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem); margin-bottom:.4rem; }
.spotlight-cta__text{ color: color-mix(in oklch, white, var(--primary-100) 15%); margin:0; max-width: 46ch; }


.inner-hero{ padding: clamp(6rem,10vw,8rem) 0 3rem; background: color-mix(in oklch, var(--primary), var(--cream) 90%); }
.inner-hero--legal{ padding-bottom: 2rem; }
.inner-hero__title{ font-size: clamp(2rem, 1.5rem + 2.4vw, 3rem); }
.inner-hero__lead{ font-size: 1.05rem; max-width: 60ch; }
.breadcrumb{ font-size:.85rem; color: var(--primary-700); font-weight:600; margin-top: 1rem; min-height: 1.2em; }
.breadcrumb::after{ content:'|'; margin-left:2px; animation: blink 1s step-start infinite; color: var(--secondary-600); }
@keyframes blink{ 50%{ opacity:0; } }


.legal-layout{ display:grid; grid-template-columns: 260px 1fr; gap: 3rem; padding: 3rem 1.5rem 5rem; align-items:start; }
.legal-nav{ position: sticky; top: 6.5rem; background: var(--paper); border-radius: var(--radius-lg); padding: 1.4rem; box-shadow: var(--shadow-md); border: 1px solid var(--border-soft); }
.legal-nav__title{ font-weight:700; font-size:.85rem; text-transform:uppercase; letter-spacing:.05em; color: var(--secondary-600); margin-bottom: .8rem; }
.legal-nav ul{ display:flex; flex-direction:column; gap:.7rem; }
.legal-nav a{ font-size:.9rem; color: var(--ink-60); }
.legal-nav a:hover{ color: var(--primary-900); }
.legal-content{ background: var(--paper); border-radius: var(--radius-lg); padding: 2.2rem 2.4rem; box-shadow: var(--shadow-md); border: 1px solid var(--border-soft); }
.legal-content section{ padding-bottom: 1.8rem; margin-bottom: 1.8rem; border-bottom: 1px solid var(--border-soft); }
.legal-content section:last-child{ border-bottom:none; margin-bottom:0; }
.legal-content h2{ font-size: 1.25rem; }


.contact-info{ display:flex; flex-direction:column; gap: 1.2rem; }
.contact-card{ display:flex; flex-direction:column; }
.contact-info__img{ height: 200px; object-fit:cover; margin-top:.5rem; }
.wizard{ padding: 2rem; }
.wizard__steps{ display:flex; justify-content:space-between; margin-bottom: 2rem; position:relative; }
.wizard__steps::before{ content:''; position:absolute; top:16px; left: 10%; right:10%; height:2px; background: var(--border-soft); z-index:0; }
.wizard__step{ display:flex; flex-direction:column; align-items:center; gap:.5rem; font-size:.8rem; font-weight:600; color: var(--ink-40); position:relative; z-index:1; background: var(--paper); padding: 0 .6rem; }
.wizard__step span{ width:34px; height:34px; border-radius:50%; background: var(--primary-100); color: var(--primary-700); display:flex; align-items:center; justify-content:center; font-family:'Lora',serif; font-weight:700; transition: all .3s ease; }
.wizard__step.is-active span, .wizard__step.is-done span{ background: var(--primary); color:#fff; }
.wizard__step.is-active{ color: var(--primary-900); }
.wizard__panel{ display:none; animation: fadeSlide .4s ease; }
.wizard__panel.is-active{ display:block; }
@keyframes fadeSlide{ from{ opacity:0; transform: translateX(16px);} to{opacity:1; transform:translateX(0);} }
.field{ display:flex; flex-direction:column; gap: .5rem; margin-bottom: 1.3rem; font-weight:600; font-size:.9rem; color: var(--primary-900); }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field select, .field textarea{
  font-family:'Inter',sans-serif; font-size: 1rem; padding: .85rem 1rem; border-radius: var(--radius-md);
  border: 1.5px solid var(--border-soft); background: var(--cream); color: var(--ink); transition: border-color .25s ease, box-shadow .25s ease;
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color: var(--primary); box-shadow: 0 0 0 4px var(--primary-100); }
.field--checkbox{ flex-direction:row; align-items:flex-start; gap:.7rem; font-weight:400; font-size:.9rem; color: var(--ink-60); }
.field--checkbox input{ width: 20px; height:20px; margin-top:.15rem; accent-color: var(--primary); flex-shrink:0; }
.wizard__actions{ display:flex; justify-content:space-between; align-items:center; margin-top: 1rem; }


.map-frame{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-lg); margin-top: 2.4rem; }


.thanks-hero{ background: linear-gradient(120deg, var(--primary-900), var(--primary) 50%, var(--secondary-600)); padding: clamp(5rem,10vw,7rem) 0; text-align:center; }
.thanks-hero__inner{ max-width: 640px; margin:0 auto; }
.thanks-hero__icon{ width: 78px; height:78px; border-radius:50%; background: rgba(255,255,255,.15); color:#fff; font-size:2rem; display:flex; align-items:center; justify-content:center; margin: 0 auto 1.4rem; }
.thanks-hero__title{ color:#fff; font-size: clamp(2rem, 1.6rem + 2vw, 2.8rem); }
.thanks-hero__text{ color: color-mix(in oklch, white, var(--primary-100) 15%); font-size: 1.05rem; margin:0; }
.thanks-next{ text-align:center; }
.thanks-next__btn{ margin-top: 2.2rem; }


.canvas-footer{ background: var(--primary-900); color: color-mix(in oklch, white, var(--primary-100) 20%); margin-top: auto; padding-top: var(--space-2xl); }
.canvas-footer__grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 2.5rem; padding-bottom: 2.5rem; }
.canvas-footer h3{ color:#fff; font-size:1.05rem; margin-bottom:1rem; }
.canvas-footer a{ color: color-mix(in oklch, white, var(--primary-100) 25%); }
.canvas-footer a:hover{ color: var(--accent-200); }
.canvas-footer ul{ display:flex; flex-direction:column; gap:.7rem; font-size:.92rem; }
.canvas-footer__logo{ width:40px; height:40px; margin-bottom: .8rem; }
.canvas-footer__muted{ font-size:.86rem; opacity:.75; }
.canvas-footer__contact li{ display:flex; align-items:flex-start; gap:.6rem; }
.canvas-footer__bottom{ border-top: 1px solid color-mix(in oklch, white, var(--primary-900) 80%); padding: 1.4rem 1.5rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap: .5rem; font-size:.82rem; opacity:.8; }


.cookie-panel{
  position: fixed; top:0; right:0; height:100vh; width: 300px; background: var(--paper);
  z-index: 1100; box-shadow: var(--shadow-xl); transform: translateX(100%);
  transition: transform .5s cubic-bezier(.77,0,.18,1); display:flex; flex-direction:column; padding: 1.6rem;
}
.cookie-panel.is-open{ transform: translateX(0); }
.cookie-panel__head{ display:flex; align-items:center; gap:.7rem; margin-bottom: 1rem; }
.cookie-panel__icon{ width:42px; height:42px; border-radius:50%; background: var(--primary-100); color: var(--primary-700); display:flex; align-items:center; justify-content:center; font-size:1.1rem; }
.cookie-panel__title{ font-family:'Lora',serif; font-weight:600; font-size:1.05rem; color: var(--primary-900); }
.cookie-panel__text{ font-size:.85rem; margin-bottom: 1.2rem; }
.cookie-panel__list{ display:flex; flex-direction:column; gap: 1rem; overflow-y:auto; flex:1; }
.cookie-item{ border: 1px solid var(--border-soft); border-radius: var(--radius-md); padding: .9rem 1rem; }
.cookie-item__top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:.4rem; }
.cookie-item__name{ font-weight:600; font-size:.9rem; color: var(--primary-900); }
.cookie-item p{ font-size:.78rem; margin:0; color: var(--ink-40); }
.switch{ position:relative; width: 42px; height: 24px; flex-shrink:0; }
.switch input{ opacity:0; width:0; height:0; }
.switch__track{ position:absolute; inset:0; background: var(--border-soft); border-radius: var(--radius-full); transition: background .25s ease; cursor:pointer; }
.switch__track::before{ content:''; position:absolute; width:18px; height:18px; left:3px; top:3px; background:#fff; border-radius:50%; transition: transform .25s ease; box-shadow: var(--shadow-sm); }
.switch input:checked + .switch__track{ background: var(--primary); }
.switch input:checked + .switch__track::before{ transform: translateX(18px); }
.switch input:disabled + .switch__track{ opacity:.6; cursor:not-allowed; }
.cookie-panel__actions{ display:flex; flex-direction:column; gap:.7rem; margin-top: 1.2rem; }
.cookie-panel__actions .btn{ width:100%; }


@media (max-width: 980px){
  .stage__inner{ grid-template-columns: 1fr; }
  .stage__media{ order:-1; }
  .stage__img{ height: 320px; }
  .stage__floater{ position:static; margin-top: -2.4rem; margin-left:1.2rem; }
  .gallery__grid--split, .gallery__grid--contact{ grid-template-columns: 1fr; }
  .gallery__grid--reverse{ direction: ltr; }
  .shelf--four, .shelf--stats, .shelf--gallery{ grid-template-columns: repeat(2, 1fr); }
  .check-grid{ grid-template-columns: 1fr; }
  .faq-grid{ grid-template-columns: 1fr; }
  .rail__item{ width: 100%; padding-left: 3.2rem; text-align:left !important; }
  .rail__line{ left: 20px; transform:none; }
  .rail__item--left .rail__dot, .rail__item--right .rail__dot{ left: -2px; right:auto; }
  .legal-layout{ grid-template-columns: 1fr; }
  .legal-nav{ position:static; }
  .stage-nav__links, .stage-nav__cta{ display:none; }
  .stage-nav__burger{ display:flex; }
}

@media (max-width: 640px){
  .shelf--four, .shelf--stats, .shelf--gallery{ grid-template-columns: 1fr; }
  .canvas-footer__grid{ grid-template-columns: 1fr; }
  .spotlight-cta__inner{ flex-direction:column; align-items:flex-start; }
  .wizard{ padding: 1.4rem; }
  .cookie-panel{ width: 88vw; }
  .compare-table{ min-width: 560px; }
}