@import url('https://fonts.googleapis.com/css2?family=Onest:wght@300;400;500;600;700;800&display=swap');

:root{
  --ink:#1e1b2e;
  --ink-soft:#4b4560;
  --ink-faint:#786f92;
  --paper:#faf9fb;
  --paper-alt:#f1eef9;
  --paper-card:#ffffff;
  --primary:#4338ca;
  --primary-dark:#332a9c;
  --secondary:#db2777;
  --accent:#f59e0b;
  --teal:#0d9488;
  --line:#e6e1f2;

  --gradient-main:linear-gradient(135deg,#4338ca 0%,#8b2fc9 40%,#db2777 70%,#f59e0b 100%);
  --gradient-soft:linear-gradient(135deg,rgba(67,56,202,0.10),rgba(219,39,119,0.10),rgba(245,158,11,0.10));
  --gradient-dark:linear-gradient(160deg,#231b45 0%,#4a1e63 45%,#7a1f52 100%);

  --sp-1:0.25rem; --sp-2:0.5rem; --sp-3:0.75rem; --sp-4:1rem; --sp-5:1.5rem;
  --sp-6:2rem; --sp-7:3rem; --sp-8:4rem; --sp-9:6rem; --sp-10:8rem;

  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-xl:32px; --r-full:999px;

  --shadow-sm:0 1px 2px rgba(30,27,46,0.06), 0 1px 1px rgba(30,27,46,0.05);
  --shadow-md:0 8px 20px rgba(67,56,202,0.10), 0 2px 6px rgba(219,39,119,0.08);
  --shadow-lg:0 20px 46px rgba(67,56,202,0.16), 0 6px 18px rgba(219,39,119,0.10);
  --shadow-glow:0 0 0 1px rgba(255,255,255,0.5) inset, 0 24px 48px -14px rgba(67,56,202,0.35);

  --ease:cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x: hidden;}
body{
  margin:0;
  font-family:'Onest',sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Onest',sans-serif;
  font-weight:700;
  line-height:1.15;
  margin:0 0 var(--sp-4);
  color:var(--ink);
}
h2{font-size:clamp(1.9rem,1.4rem + 2vw,2.9rem); font-weight:800;}
h3{font-size:clamp(1.15rem,1rem + 0.6vw,1.5rem); font-weight:700;}
p{margin:0 0 var(--sp-4); color:var(--ink-soft);}
a{color:inherit; text-decoration:none; transition:color .3s var(--ease), opacity .3s var(--ease);}
img{max-width:100%; display:block;}
button{font-family:inherit; cursor:pointer;}
ul{margin:0; padding:0;}

.frame{max-width:1200px; margin-inline:auto; padding-inline:clamp(1.25rem,4vw,2.5rem);}


.btn{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.9rem 1.7rem; border-radius:var(--r-full);
  font-weight:600; font-size:.98rem; border:none;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease), color .35s var(--ease);
  min-height:44px;
}
.btn--solid{background:var(--gradient-main); background-size:180% 180%; color:#fff; box-shadow:var(--shadow-md);}
.btn--solid:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg); background-position:100% 0;}
.btn--ghost{background:transparent; color:var(--primary); border:1.5px solid var(--primary);}
.btn--ghost:hover{background:var(--primary); color:#fff; transform:translateY(-3px);}
.btn--ghost-light{color:#fff; border-color:rgba(255,255,255,0.7);}
.btn--ghost-light:hover{background:#fff; color:var(--primary);}
.btn--sm{padding:.6rem 1.1rem; font-size:.85rem;}


.stage-nav{
  position:sticky; top:0; z-index:80; width:100%;
  background:rgba(250,249,251,0.0);
  backdrop-filter:blur(0px);
  transition:background .45s var(--ease), box-shadow .45s var(--ease), backdrop-filter .45s var(--ease);
}
.stage-nav--solid{
  background:rgba(250,249,251,0.85);
  backdrop-filter:blur(14px);
  box-shadow:0 4px 20px rgba(67,56,202,0.08);
}
.stage-nav__inner{display:flex; align-items:center; justify-content:space-between; padding-block:var(--sp-4);}
.stage-nav__logo{display:flex; align-items:center; gap:.6rem; font-weight:700; font-size:1.05rem;}
.stage-nav__logo img{border-radius:var(--r-sm);}
.stage-nav__links{
  display:none; align-items:center; gap:var(--sp-6);
  font-weight:500; font-size:.95rem;
}
.stage-nav__links a{position:relative; padding:.3rem 0; color:var(--ink-soft);}
.stage-nav__links a::after{
  content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px;
  background:var(--gradient-main); transition:width .35s var(--ease);
}
.stage-nav__links a:hover,.stage-nav__links a.is-current{color:var(--ink);}
.stage-nav__links a:hover::after,.stage-nav__links a.is-current::after{width:100%;}

@media (min-width:900px){
  .stage-nav__links{display:none;}
  .stage-nav--expanded .stage-nav__links{display:flex;}
}

.stage-nav__toggle{
  display:flex; flex-direction:column; justify-content:center; gap:5px;
  width:44px; height:44px; border-radius:var(--r-md);
  background:rgba(67,56,202,0.08); border:none;
  transition:background .3s var(--ease);
}
.stage-nav__toggle:hover{background:rgba(67,56,202,0.16);}
.stage-nav__toggle span{width:20px; height:2px; margin-inline:auto; background:var(--primary); border-radius:2px; transition:transform .3s var(--ease);}


.drawer{position:fixed; inset:0; z-index:200; visibility:hidden; pointer-events:none;}
.drawer.is-open{visibility:visible; pointer-events:auto;}
.stage-curtain{
  position:absolute; inset:0; background:rgba(30,27,46,0.45);
  opacity:0; transition:opacity .4s var(--ease);
}
.drawer.is-open .stage-curtain{opacity:1;}
.drawer__sheet{
  position:absolute; left:0; right:0; bottom:0;
  background:var(--paper-card);
  border-radius:var(--r-xl) var(--r-xl) 0 0;
  padding:var(--sp-4) var(--sp-5) var(--sp-8);
  transform:translateY(100%);
  transition:transform .45s var(--ease);
  box-shadow:0 -20px 50px rgba(30,27,46,0.25);
  max-height:80vh; overflow-y:auto;
}
.drawer.is-open .drawer__sheet{transform:translateY(0);}
.drawer__handle{width:44px; height:5px; background:var(--line); border-radius:var(--r-full); margin:0 auto var(--sp-5);}
.drawer__nav{display:flex; flex-direction:column; gap:.3rem;}
.drawer__nav a{
  display:flex; align-items:center; gap:.9rem;
  padding:.95rem 1rem; border-radius:var(--r-md);
  font-weight:600; font-size:1.02rem; color:var(--ink);
  transition:background .3s var(--ease), transform .3s var(--ease);
}
.drawer__nav a i{width:22px; text-align:center; color:var(--primary);}
.drawer__nav a:hover{background:var(--paper-alt); transform:translateX(4px);}

@media (min-width:900px){ .drawer{display:none;} }


.stage{position:relative; padding-block:clamp(4.5rem,10vw,8rem) clamp(3.5rem,7vw,6rem); overflow:hidden;}
.stage--page{padding-block:clamp(3.5rem,8vw,6rem) clamp(2.5rem,5vw,4rem);}
.stage--thanks{padding-block:clamp(3.5rem,8vw,6rem) clamp(3rem,6vw,5rem);}
.stage__aura{position:absolute; border-radius:50%; filter:blur(70px); opacity:.55; z-index:0;}
.stage__aura--one{width:420px; height:420px; top:-120px; right:-80px; background:radial-gradient(circle,var(--secondary),transparent 70%);}
.stage__aura--two{width:380px; height:380px; bottom:-140px; left:-100px; background:radial-gradient(circle,var(--primary),transparent 70%);}
.stage__inner{position:relative; z-index:1; max-width:820px;}
.placard{
  display:inline-block; padding:.4rem 1rem; border-radius:var(--r-full);
  background:var(--paper-alt); color:var(--primary); font-weight:600; font-size:.85rem;
  margin-bottom:var(--sp-5); letter-spacing:.02em;
}
.placard--muted{background:transparent; padding:0; color:var(--secondary);}
.placard--light{background:rgba(255,255,255,0.15); color:#fff;}
.placard--pill{background:var(--paper-alt); color:var(--primary); padding:.3rem .8rem; font-size:.78rem;}
.stage__title{
  font-size:clamp(2.4rem,5vw + 1rem,5.6rem);
  font-weight:800; letter-spacing:-0.02em;
  background:var(--gradient-main); background-size:220% 220%;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:gradientShift 9s ease infinite;
  margin-bottom:var(--sp-5);
}
.stage__title--md{font-size:clamp(2rem,3.2vw + 1rem,3.6rem);}
@keyframes gradientShift{
  0%{background-position:0% 50%;}
  50%{background-position:100% 50%;}
  100%{background-position:0% 50%;}
}
.stage__sub{font-size:clamp(1.05rem,.4vw + 1rem,1.25rem); color:var(--ink-soft); max-width:640px;}
.stage__actions{display:flex; flex-wrap:wrap; gap:var(--sp-4); margin-top:var(--sp-6);}
.stage__note{margin-top:var(--sp-5); font-size:.85rem; color:var(--ink-faint);}


.gallery{padding-block:var(--sp-9); container-type:inline-size; container-name:gallery;}
.gallery__heading{max-width:680px; margin-bottom:var(--sp-7);}
.gallery__lead{font-size:1.05rem;}
.gallery--split .gallery__split-inner{
  display:grid; grid-template-columns:1fr; gap:var(--sp-8); align-items:center;
}
@media (min-width:860px){
  .gallery--split .gallery__split-inner{grid-template-columns:1.15fr .85fr;}
  .gallery__split-inner--contact{grid-template-columns:1.3fr .9fr;}
}
.gallery__split-text h2{margin-bottom:var(--sp-5);}
.easel{border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); margin:0;}
.easel img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.easel:hover img{transform:scale(1.04);}
.easel figcaption{padding:var(--sp-4); font-size:.9rem; color:var(--ink-faint); background:var(--paper-card);}

.gallery__grid{display:grid; gap:var(--sp-5); grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
.gallery__cell{container-type:inline-size; container-name:card;}
.spotlight-card{
  background:var(--paper-card); border-radius:var(--r-lg); padding:var(--sp-6);
  height:100%; box-shadow:var(--shadow-sm); border:1px solid var(--line);
  display:flex; flex-direction:column; gap:var(--sp-4);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.spotlight-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:transparent;}
.spotlight-card__icon{
  width:52px; height:52px; border-radius:var(--r-md); display:flex; align-items:center; justify-content:center;
  background:var(--gradient-main); color:#fff; font-size:1.3rem; flex-shrink:0;
}
@container card (min-width:340px){
  .spotlight-card{flex-direction:row; align-items:flex-start;}
}
.spotlight-card--info{padding:var(--sp-5);}
.spotlight-card--info p{margin-bottom:.5rem; font-size:.95rem; display:flex; align-items:center; gap:.5rem;}
.spotlight-card--info i{color:var(--primary); width:18px;}

.gallery__compare{display:grid; gap:var(--sp-6); grid-template-columns:1fr;}
@media (min-width:760px){ .gallery__compare{grid-template-columns:1fr 1fr;} }
.gallery__compare-col{
  background:var(--paper-card); border-radius:var(--r-lg); padding:var(--sp-7);
  box-shadow:var(--shadow-sm); border:1px solid var(--line);
}
.gallery__compare-col h3{display:flex; align-items:center; gap:.6rem; margin-bottom:var(--sp-4);}
.gallery__compare-col:first-child i{color:var(--secondary);}
.gallery__compare-col:last-child i{color:var(--teal);}

.gallery__mini-grid{display:grid; gap:var(--sp-4); grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); margin-top:var(--sp-6);}
.spotlight-mini{display:flex; gap:var(--sp-3); align-items:flex-start;}
.spotlight-mini i{color:var(--primary); font-size:1.2rem; margin-top:.2rem;}
.spotlight-mini h4{margin:0 0 .3rem; font-size:1rem;}
.spotlight-mini p{font-size:.9rem; margin:0;}

.gallery--teaser .gallery__teaser-inner{
  background:var(--gradient-dark); border-radius:var(--r-xl); padding:var(--sp-8);
  color:#fff; box-shadow:var(--shadow-lg);
}
.gallery--teaser h2{color:#fff;}
.gallery--teaser p{color:rgba(255,255,255,0.85); max-width:640px;}
.gallery--teaser .placard--muted{color:var(--accent);}

.gallery__lightbox-grid{display:grid; gap:var(--sp-5); grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.easel--tile{position:relative; aspect-ratio:4/3;}
.easel--tile img{width:100%; height:100%; object-fit:cover;}
.easel__caption{
  position:absolute; left:0; right:0; bottom:0; padding:var(--sp-4);
  background:linear-gradient(0deg,rgba(30,27,46,0.75),transparent);
  color:#fff; font-weight:600; font-size:.95rem;
}
.gallery__footnote{font-size:.85rem; color:var(--ink-faint); margin-top:var(--sp-5);}


.marquee{padding-block:var(--sp-9); background:var(--gradient-dark); color:#fff;}
.marquee__heading{max-width:640px; margin-bottom:var(--sp-7);}
.marquee__heading h2{color:#fff;}
.marquee__steps{display:grid; gap:var(--sp-6); grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.marquee__step{
  background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12);
  border-radius:var(--r-lg); padding:var(--sp-6);
  transition:transform .4s var(--ease), background .4s var(--ease);
}
.marquee__step:hover{transform:translateY(-6px); background:rgba(255,255,255,0.1);}
.marquee__num{
  font-size:1.8rem; font-weight:800; background:var(--gradient-main);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.marquee__step h3{color:#fff; margin-top:.4rem;}
.marquee__step p{color:rgba(255,255,255,0.75);}

.marquee--cta{background:var(--gradient-main); background-size:200% 200%; animation:gradientShift 12s ease infinite;}
.marquee__cta-inner{text-align:center; max-width:680px; margin-inline:auto;}
.marquee__cta-inner h2{color:#fff;}
.marquee__cta-inner p{color:rgba(255,255,255,0.9); margin-bottom:var(--sp-6);}
.marquee__cta-inner .stage__actions{justify-content:center;}


.shelf{padding-block:var(--sp-9); container-type:inline-size; container-name:shelf;}
.shelf .frame > *{margin-bottom:var(--sp-8);}
.shelf .frame > *:last-child{margin-bottom:0;}
.shelf__row{display:flex; flex-direction:column; gap:var(--sp-6); align-items:center;}
@container shelf (min-width:680px){
  .shelf__row{flex-direction:row;}
  .shelf__row--reverse{flex-direction:row-reverse;}
  .shelf__media,.shelf__body{flex:1;}
}
.shelf__media{width:100%; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-md);}
.shelf__media img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; transition:transform .6s var(--ease);}
.shelf__media:hover img{transform:scale(1.05);}
.shelf__body{width:100%;}


.gallery--faq .gallery__faq-list{display:flex; flex-direction:column; gap:var(--sp-4); max-width:820px;}
.spotlight-faq{
  background:var(--paper-card); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:var(--sp-2) var(--sp-2); box-shadow:var(--shadow-sm);
  transition:box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.spotlight-faq:hover{box-shadow:var(--shadow-md);}
.spotlight-faq.is-open{border-color:var(--primary);}
.spotlight-faq__q{
  width:100%; display:flex; justify-content:space-between; align-items:center;
  background:transparent; border:none; padding:var(--sp-4) var(--sp-4);
  font-weight:600; font-size:1.02rem; color:var(--ink); text-align:left;
}
.spotlight-faq__q i{transition:transform .4s var(--ease); color:var(--primary); flex-shrink:0; margin-left:var(--sp-4);}
.spotlight-faq.is-open .spotlight-faq__q i{transform:rotate(180deg);}
.spotlight-faq__answer-wrap{display:grid; grid-template-rows:0fr; transition:grid-template-rows .45s var(--ease);}
.spotlight-faq.is-open .spotlight-faq__answer-wrap{grid-template-rows:1fr;}
.spotlight-faq__a{overflow:hidden;}
.spotlight-faq__a p{padding:0 var(--sp-4) var(--sp-4); margin:0; font-size:.96rem;}


.spotlight-timeline{max-width:520px; margin-top:var(--sp-9); display:flex; flex-direction:column; gap:0;}
.spotlight-timeline__item{display:flex; gap:var(--sp-5); position:relative; padding-bottom:var(--sp-7);}
.spotlight-timeline__item:last-child{padding-bottom:0;}
.spotlight-timeline__item::before{
  content:''; position:absolute; left:21px; top:44px; bottom:0; width:2px; background:var(--line);
}
.spotlight-timeline__item:last-child::before{display:none;}
.spotlight-timeline__icon{
  width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--paper-alt); color:var(--ink-faint); flex-shrink:0; font-size:1.1rem;
  border:2px solid var(--line); z-index:1;
}
.spotlight-timeline__item.is-done .spotlight-timeline__icon{background:var(--gradient-main); color:#fff; border-color:transparent;}
.spotlight-timeline__item.is-current .spotlight-timeline__icon{box-shadow:0 0 0 6px rgba(67,56,202,0.12);}
.spotlight-timeline__item h3{margin:0 0 .2rem; font-size:1.1rem;}
.spotlight-timeline__item.is-upcoming h3,.spotlight-timeline__item.is-upcoming p{color:var(--ink-faint);}


.gallery--form .kiosk{
  background:var(--paper-card); border-radius:var(--r-xl); padding:var(--sp-8);
  box-shadow:var(--shadow-lg); border:1px solid var(--line);
  display:grid; gap:var(--sp-8); grid-template-columns:1fr;
}
@media (min-width:820px){ .gallery--form .kiosk{grid-template-columns:.9fr 1.1fr;} }
.kiosk__intro h2{margin-bottom:var(--sp-4);}
.kiosk__form{display:grid; gap:var(--sp-5); grid-template-columns:1fr 1fr;}
.kiosk__field{display:flex; flex-direction:column; gap:.5rem;}
.kiosk__field--full{grid-column:1/-1;}
.kiosk__field label{font-weight:600; font-size:.92rem; color:var(--ink);}
.kiosk__field input,.kiosk__field select,.kiosk__field textarea{
  border:1.5px solid var(--line); border-radius:var(--r-md); padding:.85rem 1rem;
  font-family:inherit; font-size:.98rem; background:var(--paper);
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
  min-height:44px;
}
.kiosk__field textarea{min-height:100px; resize:vertical;}
.kiosk__field input:focus,.kiosk__field select:focus,.kiosk__field textarea:focus{
  outline:none; border-color:var(--primary); box-shadow:0 0 0 4px rgba(67,56,202,0.12);
}
.kiosk__field input.has-error,.kiosk__field textarea.has-error,.kiosk__field select.has-error{border-color:var(--secondary);}
.kiosk__checkbox{flex-direction:row; align-items:flex-start; gap:.7rem;}
.kiosk__checkbox input{width:20px; height:20px; margin-top:.2rem; flex-shrink:0;}
.kiosk__checkbox label{font-weight:400; font-size:.9rem; color:var(--ink-soft);}
.kiosk__submit{grid-column:1/-1; justify-self:start;}


.kiosk--chat{background:transparent; box-shadow:none; border:none; padding:0;}
.kiosk__chat{display:flex; flex-direction:column; gap:var(--sp-4);}
.kiosk__bubble{max-width:88%; padding:var(--sp-4) var(--sp-5); border-radius:var(--r-lg); animation:bubbleIn .5s var(--ease);}
@keyframes bubbleIn{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);}}
.kiosk__bubble--company{
  background:var(--paper-alt); align-self:flex-start; border-bottom-left-radius:6px;
}
.kiosk__bubble--company p{margin:0; color:var(--ink);}
.kiosk__bubble--user{
  align-self:flex-end; background:var(--paper-card); border:1.5px solid var(--line);
  border-bottom-right-radius:6px; width:100%; max-width:88%; box-shadow:var(--shadow-sm);
}
.kiosk__bubble--user input,.kiosk__bubble--user textarea{
  width:100%; border:none; background:transparent; font-family:inherit; font-size:1rem;
  padding:.3rem; min-height:24px;
}
.kiosk__bubble--user input:focus,.kiosk__bubble--user textarea:focus{outline:none;}
.kiosk__bubble--checkbox{display:flex; align-items:flex-start; gap:.6rem;}
.kiosk__bubble--checkbox input{width:20px; height:20px; flex-shrink:0; margin-top:.15rem;}
.kiosk__bubble--checkbox label{font-size:.9rem; color:var(--ink-soft);}
.kiosk__send{align-self:flex-end; margin-top:var(--sp-2);}
.kiosk__side{display:flex; flex-direction:column; gap:var(--sp-5);}
.easel--map iframe{width:100%; height:340px; border:0; display:block;}


.ledger{display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; background:var(--paper-card); box-shadow:var(--shadow-sm);}
.ledger__row{display:grid; grid-template-columns:1fr; gap:.3rem; padding:var(--sp-5); border-bottom:1px solid var(--line);}
.ledger__row:last-child{border-bottom:none;}
.ledger__row--head{background:var(--paper-alt); font-weight:700; display:none;}
@media (min-width:760px){
  .ledger__row{grid-template-columns:2.2fr 1.1fr 1fr .9fr; align-items:center; gap:var(--sp-4);}
  .ledger__row--head{display:grid;}
  .ledger__row span[data-label]::before{content:none;}
}
.ledger__row span[data-label]{font-size:.92rem;}
@media (max-width:759px){
  .ledger__row span[data-label]::before{content:attr(data-label) ": "; font-weight:700; color:var(--primary);}
}
.ledger--compact{box-shadow:none; border:none;}
.ledger--compact .ledger__row{grid-template-columns:1fr auto; padding:.6rem 0; border-bottom:1px dashed var(--line); font-size:.9rem;}


.legal{padding-block:var(--sp-9) var(--sp-9);}
.legal__intro{max-width:760px; margin-bottom:var(--sp-8);}
.legal__intro h1{margin-top:var(--sp-3);}
.legal__layout{display:grid; grid-template-columns:1fr; gap:var(--sp-8);}
@media (min-width:920px){ .legal__layout{grid-template-columns:260px 1fr;} }
.drawer--sidebar{position:static; visibility:visible; pointer-events:auto;}
.drawer--sidebar nav{
  display:flex; flex-direction:column; gap:.2rem; position:sticky; top:100px;
  background:var(--paper-card); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:var(--sp-4); box-shadow:var(--shadow-sm);
}
.drawer--sidebar nav a{
  padding:.65rem .8rem; border-radius:var(--r-sm); font-size:.9rem; color:var(--ink-soft); font-weight:500;
  transition:background .3s var(--ease), color .3s var(--ease);
}
.drawer--sidebar nav a:hover{background:var(--paper-alt); color:var(--primary);}
.legal__content section{margin-bottom:var(--sp-8); scroll-margin-top:100px;}
.legal__content h2{font-size:1.4rem; margin-bottom:var(--sp-3);}
.legal__content p{font-size:.98rem;}
.legal__block{
  background:var(--paper-card); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:var(--sp-6); margin-bottom:var(--sp-5); box-shadow:var(--shadow-sm);
}


.spotlight-cookie{
  position:fixed; left:50%; bottom:1.25rem; transform:translateX(-50%) translateY(140%);
  z-index:300; width:min(94vw,480px);
  background:var(--paper-card); border-radius:var(--r-xl);
  box-shadow:var(--shadow-lg); border:1px solid var(--line);
  padding:var(--sp-5); transition:transform .5s var(--ease), width .5s var(--ease), max-width .5s var(--ease);
}
.spotlight-cookie.is-visible{transform:translateX(-50%) translateY(0);}
.spotlight-cookie__compact p{margin:0 0 var(--sp-4); font-size:.9rem; color:var(--ink-soft);}
.spotlight-cookie__compact a{color:var(--primary); font-weight:600;}
.spotlight-cookie__actions{display:flex; gap:.7rem; flex-wrap:wrap;}
.spotlight-cookie__panel{
  display:grid; grid-template-rows:0fr; transition:grid-template-rows .5s var(--ease);
}
.spotlight-cookie--expanded{width:min(94vw,620px);}
.spotlight-cookie--expanded .spotlight-cookie__panel{grid-template-rows:1fr; margin-top:var(--sp-4);}
.spotlight-cookie__panel > *{overflow:hidden;}
.spotlight-cookie__panel h3{font-size:1.1rem; margin-bottom:var(--sp-2);}
.spotlight-cookie__panel p{font-size:.88rem;}
.spotlight-cookie__row{display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4); padding:.8rem 0; border-top:1px solid var(--line);}
.spotlight-cookie__row div{display:flex; flex-direction:column; gap:.2rem;}
.spotlight-cookie__row strong{font-size:.92rem;}
.spotlight-cookie__row span{font-size:.8rem; color:var(--ink-faint);}
.switch{position:relative; display:inline-block; width:44px; height:26px; flex-shrink:0;}
.switch input{opacity:0; width:0; height:0;}
.switch__track{position:absolute; inset:0; background:var(--line); border-radius:var(--r-full); transition:background .3s var(--ease);}
.switch__track::before{content:''; position:absolute; width:20px; height:20px; left:3px; top:3px; background:#fff; border-radius:50%; transition:transform .3s var(--ease); box-shadow:var(--shadow-sm);}
.switch input:checked + .switch__track{background:var(--primary);}
.switch input:checked + .switch__track::before{transform:translateX(18px);}
.switch--disabled{opacity:.6;}


.plaza{background:var(--gradient-dark); color:rgba(255,255,255,0.85); padding-top:var(--sp-9); margin-top:auto;}
.plaza__grid{display:grid; gap:var(--sp-7); grid-template-columns:1fr; padding-bottom:var(--sp-8);}
@media (min-width:760px){ .plaza__grid{grid-template-columns:1.4fr .8fr .8fr 1fr;} }
.plaza__brand p{color:rgba(255,255,255,0.7); font-size:.9rem; max-width:320px;}
.plaza__brand .stage-nav__logo{color:#fff; margin-bottom:var(--sp-4);}
.plaza__col h4{color:#fff; font-size:.95rem; margin-bottom:var(--sp-4); text-transform:uppercase; letter-spacing:.05em;}
.plaza__col a,.plaza__col p{display:block; color:rgba(255,255,255,0.72); font-size:.92rem; margin-bottom:.6rem; transition:color .3s var(--ease), transform .3s var(--ease);}
.plaza__col a:hover{color:#fff; transform:translateX(3px);}
.plaza__col i{margin-right:.4rem; color:var(--accent);}
.plaza__bottom{border-top:1px solid rgba(255,255,255,0.12); padding-block:var(--sp-5); text-align:center;}
.plaza__bottom p{color:rgba(255,255,255,0.55); font-size:.82rem; margin:0;}

body{display:flex; flex-direction:column; min-height:100vh;}
main{flex:1;}

@media (max-width:640px){
  .stage__actions{flex-direction:column; align-items:stretch;}
  .kiosk__form{grid-template-columns:1fr;}
}