/* ═══════════════════════════════════════════════════
   동탄역 헤리움 센트럴 — landing page
   Brand purple #53056C sampled from the 2026-06-23 deck.
   Mobile-first: ~95% of Meta traffic is phones. Desktop is
   a genuine multi-column layout from 1024px up, not the
   phone column stranded in the middle of a wide screen.
   All @media blocks live at the END of this file — media
   queries add no specificity, so a later base rule wins.
   ═══════════════════════════════════════════════════ */

:root{
  --purple:#53056C;
  --purple-d:#3A034C;
  --purple-l:#7B2A94;
  --gold:#C9A227;
  --gold-l:#E5C558;
  --ink:#1A1418;
  --ink-2:#4A4048;
  --ink-3:#7C737A;
  --paper:#FFFFFF;
  --paper-2:#FAF7F5;
  --paper-3:#F2ECEF;
  --line:#E4DBE0;

  --wrap:1080px;
  --pad:20px;
  --bar:64px;                 /* sticky bottom bar */
  --hdr:56px;

  --r:14px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic','맑은 고딕',sans-serif;
  color:var(--ink);
  background:var(--paper);
  font-size:16px;
  line-height:1.65;
  word-break:keep-all;
  overflow-wrap:break-word;
  letter-spacing:-.015em;
  padding-bottom:calc(var(--bar) + env(safe-area-inset-bottom));
}
img{max-width:100%; height:auto; display:block}
a{color:inherit; text-decoration:none}
h1,h2,h3{margin:0; line-height:1.28; letter-spacing:-.035em; font-weight:800}
p{margin:0}
ul,ol,dl{margin:0; padding:0; list-style:none}
button{font:inherit; color:inherit}
svg{fill:currentColor}

/* The sprite must stay in the layout tree — display:none on the host
   <svg> breaks <use> resolution in some engines. */
.sprite{position:absolute; width:0; height:0; overflow:hidden}

.wrap{max-width:var(--wrap); margin:0 auto; padding-inline:var(--pad)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

#apply{scroll-margin-top:var(--hdr)}

/* ── section furniture ───────────────────────────── */
.sec__kicker{
  font-size:12px; font-weight:700; letter-spacing:.16em;
  color:var(--purple-l); text-transform:uppercase; margin-bottom:10px;
}
.sec__h2{font-size:26px; margin-bottom:14px}
.sec__h2 b{color:var(--purple)}
.sec__lead{color:var(--ink-2); font-size:15px; margin-bottom:22px}
.note{margin-top:16px; font-size:11.5px; line-height:1.6; color:var(--ink-3)}

/* ── buttons ─────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:54px; padding:0 26px; border-radius:999px;
  font-weight:800; font-size:16.5px; letter-spacing:-.02em;
  border:1.5px solid transparent; cursor:pointer;
  transition:transform .18s var(--ease), box-shadow .18s var(--ease), background-color .18s var(--ease);
}
.btn--gold{
  background:linear-gradient(180deg,var(--gold-l),var(--gold));
  color:#2A1E00; box-shadow:0 6px 18px rgba(201,162,39,.32);
}
.btn--ghost{background:rgba(255,255,255,.1); color:#fff; border-color:rgba(255,255,255,.55)}
.btn--submit{
  width:100%; margin-top:22px; min-height:58px; font-size:17px;
  background:var(--purple); color:#fff; box-shadow:0 8px 22px rgba(83,5,108,.28);
}
.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.55; pointer-events:none}

/* ── header ──────────────────────────────────────── */
.hdr{
  position:fixed; inset:0 0 auto 0; z-index:60; height:var(--hdr);
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(150%) blur(12px);
  -webkit-backdrop-filter:saturate(150%) blur(12px);
  border-bottom:1px solid transparent;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.hdr.is-stuck{border-bottom-color:var(--line); box-shadow:0 2px 14px rgba(26,20,24,.06)}
.hdr__in{
  max-width:var(--wrap); height:100%; margin:0 auto; padding-inline:var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.hdr__logo{font-weight:800; font-size:17px; letter-spacing:-.04em; line-height:1.1; color:var(--purple-d)}
.hdr__logo em{font-style:normal; color:var(--purple-l)}
.hdr__logo-sm{display:block; font-size:10px; font-weight:600; letter-spacing:.06em; color:var(--ink-3)}
.hdr__right{display:flex; align-items:center; gap:10px}
.hdr__phone{display:none; align-items:center; gap:8px; color:var(--purple-d); font-size:15px}
.hdr__phone svg{width:17px; height:17px; color:var(--purple-l)}
.hdr__phone b{font-size:18px; font-weight:800; letter-spacing:-.02em}
.hdr__call{
  flex:none; width:42px; height:42px; border-radius:50%;
  background:var(--purple); display:grid; place-items:center;
}
.hdr__call svg{width:21px; height:21px; fill:#fff}

/* ── hero ────────────────────────────────────────── */
.hero{position:relative; margin-top:var(--hdr); min-height:74svh; display:flex; align-items:flex-end; isolation:isolate}
.hero__bg{position:absolute; inset:0; z-index:-1; overflow:hidden; background:var(--purple-d)}
.hero__bg img{
  width:100%; height:100%; object-fit:cover; object-position:50% 62%;
  transform-origin:50% 60%;
  animation:kenburns 20s var(--ease) forwards;
}
@keyframes kenburns{from{transform:scale(1.09)} to{transform:scale(1)}}
.hero__bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(178deg,rgba(24,2,32,.42) 0%,rgba(24,2,32,.18) 32%,rgba(30,3,40,.78) 74%,rgba(24,2,32,.94) 100%);
}
.hero__body{width:100%; max-width:var(--wrap); margin:0 auto; padding:64px var(--pad) 34px; color:#fff}
.hero__eyebrow{font-size:12.5px; font-weight:600; letter-spacing:.02em; color:rgba(255,255,255,.82); margin-bottom:12px}
.hero__eyebrow span{
  display:inline-block; padding:3px 9px; margin-right:6px; border-radius:4px;
  background:rgba(255,255,255,.16); font-weight:700;
}
.hero__h1{font-size:34px; letter-spacing:-.045em; text-shadow:0 2px 22px rgba(0,0,0,.4)}
.hero__h1 b{color:var(--gold-l)}
.hero__sub{margin-top:12px; font-size:15px; color:rgba(255,255,255,.9)}
.hero__sub b{color:#fff}

.hero__chips{display:flex; flex-wrap:wrap; gap:7px; margin-top:18px}
.hero__chips li{
  padding:7px 13px; border-radius:999px; font-size:13px; font-weight:600;
  background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.24);
  color:rgba(255,255,255,.92); backdrop-filter:blur(4px);
}
.hero__chips b{font-weight:800; color:var(--gold-l)}
.hero__chips i{font-style:normal; font-size:10.5px; opacity:.7; margin-left:5px}

.hero__cta{display:flex; gap:9px; margin-top:24px}
.hero__cta .btn{flex:1; padding-inline:14px}
.hero__note{margin-top:16px; font-size:10.5px; color:rgba(255,255,255,.55); line-height:1.5}

/* ── facts strip ─────────────────────────────────── */
.facts{background:var(--purple); color:#fff}
.facts__in{
  max-width:var(--wrap); margin:0 auto; padding:18px var(--pad);
  display:grid; grid-template-columns:repeat(2,1fr); gap:14px 10px;
}
.fact{text-align:center; padding:4px 0}
.fact b{display:block; font-size:19px; font-weight:800; letter-spacing:-.035em; color:var(--gold-l)}
.fact span{display:block; font-size:11.5px; color:rgba(255,255,255,.72); margin-top:2px}

/* ── apply / form ────────────────────────────────── */
.apply{background:var(--paper-2); padding:44px 0 48px; border-bottom:1px solid var(--line)}
.apply__lead{margin:6px 0 22px; font-size:14.5px; line-height:1.75; color:var(--ink-2)}
.apply__lead b{color:var(--purple); font-weight:700}
.apply__ticks{display:grid; gap:8px; margin-bottom:26px}
.apply__ticks li{position:relative; padding-left:26px; font-size:14px; color:var(--ink-2)}
.apply__ticks li::before{
  content:''; position:absolute; left:0; top:.42em; width:16px; height:16px; border-radius:50%;
  background:var(--purple) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'/%3E%3C/svg%3E") center/10px no-repeat;
}

.form{background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:24px 20px}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

.field{margin-bottom:20px}
.field label{display:block; font-size:13px; font-weight:700; color:var(--ink-2); margin-bottom:7px}
.field label i{font-style:normal; font-weight:500; color:var(--ink-3)}
.field input,.field select{
  width:100%; height:52px; padding:0 2px;
  font:inherit; font-size:16px;              /* <16px triggers iOS zoom-on-focus */
  color:var(--ink); background:transparent;
  border:0; border-bottom:1.5px solid var(--line); border-radius:0;
  -webkit-appearance:none; appearance:none;
  transition:border-color .2s var(--ease);
}
.field select{
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%237C737A' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 4px center; background-size:11px;
  padding-right:24px;
}
.field input::placeholder{color:#C3B9C0}
.field input:focus,.field select:focus{outline:none; border-bottom-color:var(--purple)}
.field.is-bad input{border-bottom-color:#C8202A}

.consent{display:flex; align-items:flex-start; gap:10px; margin-top:24px; font-size:13.5px; color:var(--ink-2); cursor:pointer}
.consent input{flex:none; width:21px; height:21px; margin:1px 0 0; accent-color:var(--purple)}
.consent b{font-weight:600}
.linkish{background:none; border:0; padding:0; font-size:inherit; color:var(--purple-l); text-decoration:underline; cursor:pointer}

.form__msg{margin-top:14px; font-size:14px; font-weight:600; line-height:1.6; min-height:1px}
.form__msg.is-ok{color:#17743C}
.form__msg.is-bad{color:#C8202A}
.form__alt{margin-top:18px; text-align:center; font-size:13.5px; color:var(--ink-3)}
.form__alt a{font-weight:800; color:var(--purple); text-decoration:underline; text-underline-offset:3px}

/* ── points ──────────────────────────────────────── */
.points{padding:48px 0}
.pt-list{display:grid; gap:14px; margin-top:24px}
.pt-list li{
  position:relative; background:var(--paper-2); border:1px solid var(--line);
  border-radius:var(--r); padding:22px 20px 20px;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.pt-ico{
  display:grid; place-items:center; width:44px; height:44px; border-radius:12px;
  background:#fff; border:1px solid var(--line); color:var(--purple); margin-bottom:14px;
}
.pt-ico svg{width:23px; height:23px}
.pt-num{
  display:block; font-size:11px; font-weight:800; letter-spacing:.1em;
  color:var(--gold); margin-bottom:6px;
}
.pt-list h3{font-size:18px; margin-bottom:8px}
.pt-list h3 b{color:var(--purple)}
.pt-list p{font-size:14.5px; line-height:1.75; color:var(--ink-2)}
.pt-list p b{color:var(--ink); font-weight:700}

/* ── overview table ──────────────────────────────── */
.overview{padding:48px 0; background:var(--paper-2); border-block:1px solid var(--line)}
.tbl-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; margin-top:22px; border:1px solid var(--line); border-radius:var(--r); background:#fff}
.tbl-hint{margin-top:10px; font-size:11.5px; color:var(--ink-3); text-align:right}
.tbl{width:100%; min-width:520px; border-collapse:collapse; font-size:13px}
.tbl thead th{background:var(--purple); color:#fff; font-weight:700; font-size:13.5px; padding:11px 8px}
.tbl tbody th{background:var(--paper-3); font-weight:700; color:var(--ink-2); text-align:left; padding:11px 12px; white-space:nowrap; font-size:12.5px; border-top:1px solid var(--line)}
.tbl td{padding:11px 10px; text-align:center; border-top:1px solid var(--line); line-height:1.5}
.tbl td b{color:var(--purple); font-weight:800; font-size:14px}
.tbl td i{font-style:normal; font-size:11px; color:var(--ink-3); line-height:1.45; display:inline-block}

/* ── types rail ──────────────────────────────────── */
.types{padding:48px 0}
.rail{margin-top:6px; overflow-x:auto; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail__track{display:flex; gap:12px; padding:4px var(--pad) 8px; width:max-content}
.tcard{
  flex:none; width:212px; scroll-snap-align:center;
  background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
/* Fixed box + contain: the source tiles have three different aspect
   ratios, and a flex row of ragged-height cards misaligns every caption. */
.tcard img{width:100%; height:250px; object-fit:contain; background:#fff; padding:6px}
.tcard__cap{padding:11px 13px 13px; border-top:1px solid var(--line); background:var(--paper-2)}
.tcard__cap b{display:block; font-size:19px; font-weight:800; letter-spacing:-.04em; color:var(--purple)}
.tcard__cap span{display:block; font-size:11.5px; color:var(--ink-3); margin-top:1px}

/* ── location ────────────────────────────────────── */
.loc{padding:48px 0; background:var(--paper-2); border-block:1px solid var(--line)}
.loc__fig{margin:22px 0 0; background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden}
.loc__fig figcaption{padding:9px 12px; font-size:10.5px; color:var(--ink-3); border-top:1px solid var(--line); background:var(--paper-2)}
.loc__list{margin-top:20px; display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden}
.loc__list li{background:#fff; padding:15px 17px 15px 54px; position:relative}
.loc__ico{
  position:absolute; left:16px; top:15px; width:26px; height:26px;
  display:grid; place-items:center; color:var(--purple-l);
}
.loc__ico svg{width:22px; height:22px}
.loc__list b{display:block; font-size:15px; font-weight:700; color:var(--purple-d)}
.loc__list span{display:block; font-size:13px; color:var(--ink-2); margin-top:3px}

/* ── gallery ─────────────────────────────────────── */
.gal{padding:48px 0}
.gal__grid{display:grid; gap:12px; margin-top:22px}
.gal__grid figure{margin:0; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:#fff}
.gal__grid img{transition:transform .5s var(--ease)}
.gal__grid figcaption{padding:9px 13px; font-size:12px; font-weight:600; color:var(--ink-2); border-top:1px solid var(--line); background:var(--paper-2)}

/* ── closing ─────────────────────────────────────── */
.closing{background:linear-gradient(160deg,var(--purple),var(--purple-d)); color:#fff; padding:52px 0}
.closing__h2{font-size:26px; margin-bottom:14px}
.closing__h2 b{color:var(--gold-l)}
.closing p{font-size:14.5px; line-height:1.75; color:rgba(255,255,255,.82)}
.closing p b{color:#fff; font-weight:700}
.closing__cta{display:flex; gap:9px; margin-top:26px}
.closing__cta .btn{flex:1; padding-inline:14px}

/* ── footer ──────────────────────────────────────── */
.ft{background:#241028; color:rgba(255,255,255,.62); padding:38px 0 34px; font-size:12.5px; line-height:1.7}
.ft__name{font-size:16px; font-weight:800; color:#fff; letter-spacing:-.03em}
.ft__addr{margin-top:4px}
.ft__tel{margin-top:10px; font-size:14px; color:#fff}
.ft__tel a{font-weight:800; color:var(--gold-l); text-decoration:underline; text-underline-offset:3px}
.ft__disc{margin-top:20px; padding-top:18px; border-top:1px solid rgba(255,255,255,.14); display:grid; gap:6px}
.ft__disc li{position:relative; padding-left:11px; font-size:11.5px; line-height:1.65; color:rgba(255,255,255,.5)}
.ft__disc li::before{content:'※'; position:absolute; left:0; top:0; font-size:9px}
.ft__links{margin-top:18px}
.ft__links .linkish{color:rgba(255,255,255,.75)}

/* ── sticky bottom bar ───────────────────────────── */
.sticky{
  position:fixed; inset:auto 0 0 0; z-index:70; display:flex;
  background:var(--ink); padding-bottom:env(safe-area-inset-bottom);
  box-shadow:0 -2px 18px rgba(0,0,0,.22);
  transform:translateY(110%); transition:transform .35s var(--ease);
}
.sticky.is-up{transform:none}
.sticky__btn{
  flex:1; height:var(--bar); display:flex; align-items:center; justify-content:center; gap:7px;
  font-size:16px; font-weight:800; letter-spacing:-.02em; color:#fff;
}
.sticky__btn svg{width:20px; height:20px; fill:currentColor}
.sticky__btn--form{background:var(--purple)}
.sticky__btn--call{background:var(--gold); color:#2A1E00}
.sticky__btn:active{filter:brightness(.92)}

/* ── privacy modal ───────────────────────────────── */
.modal{position:fixed; inset:0; z-index:90; display:grid; place-items:center; padding:20px; background:rgba(20,4,26,.6); backdrop-filter:blur(3px)}
.modal[hidden]{display:none}
.modal__box{background:#fff; border-radius:var(--r); padding:26px 22px 22px; max-width:440px; width:100%; max-height:82svh; overflow:auto}
.modal__box h3{font-size:19px; margin-bottom:16px; color:var(--purple)}
.modal__box dt{font-size:12px; font-weight:800; color:var(--purple-l); margin-top:14px}
.modal__box dd{margin:3px 0 0; font-size:13.5px; line-height:1.7; color:var(--ink-2)}
.modal__box .btn{width:100%; margin-top:22px}

/* ── lightbox ────────────────────────────────────── */
.zoomable{cursor:zoom-in}
.lb{position:fixed; inset:0; z-index:95; background:#0E0212; display:flex; flex-direction:column}
.lb[hidden]{display:none}
.lb__stage{flex:1; overflow:auto; -webkit-overflow-scrolling:touch; display:grid; place-items:center; padding:14px}
.lb__stage img{max-width:none; width:190%; max-height:none}
.lb__bar{
  flex:none; display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:rgba(0,0,0,.5); color:rgba(255,255,255,.8); font-size:12.5px;
}
.lb__close{
  flex:none; min-height:40px; padding:0 18px; border-radius:999px; border:1px solid rgba(255,255,255,.4);
  background:rgba(255,255,255,.1); color:#fff; font-weight:700; cursor:pointer;
}

/* ── motion ──────────────────────────────────────── */
.anim{opacity:0; transform:translateY(16px); animation:fadeUp .75s var(--ease) forwards; animation-delay:var(--d,0ms)}
@keyframes fadeUp{to{opacity:1; transform:none}}

.rv{opacity:0; transform:translateY(20px); transition:opacity .65s var(--ease), transform .65s var(--ease); transition-delay:var(--i,0ms)}
.rv.is-in{opacity:1; transform:none}

/* Edit mode must never hide content behind a scroll trigger. */
body.is-edit .anim,body.is-edit .rv{opacity:1 !important; transform:none !important; animation:none !important}
body.is-edit .hero__bg img{animation:none}
body.is-edit .sticky{transform:none}

/* ═══ media queries — must stay last ═══════════════ */
@media (min-width:600px){
  .facts__in{grid-template-columns:repeat(4,1fr)}
  .hero__h1{font-size:44px}
  .sec__h2,.closing__h2{font-size:32px}
  .gal__grid{grid-template-columns:1fr 1fr}
  .loc__list{grid-template-columns:1fr 1fr}
  .tcard{width:238px}
  .pt-list{grid-template-columns:1fr 1fr}
}
@media (min-width:900px){
  :root{--pad:32px}
  .hero{min-height:78svh}
  .hero__h1{font-size:52px}
  .hero__body{padding-block:88px 52px}
  .hero__cta .btn,.closing__cta .btn{flex:0 1 auto; min-width:200px}
  .sec__h2,.closing__h2{font-size:36px}
  .form{padding:32px 30px}
  .apply__lead{font-size:15.5px}
}

/* ── desktop: a real layout, not a phone column ──── */
@media (min-width:1024px){
  :root{--wrap:1240px; --pad:40px; --hdr:72px}

  body{padding-bottom:0}
  .sticky{display:none}
  .hdr__call{display:none}
  .hdr__phone{display:flex}
  .hdr__logo{font-size:19px}

  .hero{min-height:640px; align-items:center}
  .hero__bg img{object-position:60% 55%}
  /* Wide viewports letterbox the render, so the vertical scrim alone stops
     carrying the left-aligned headline. Add a horizontal one. */
  .hero__bg::after{
    background:
      linear-gradient(100deg,rgba(22,2,30,.90) 0%,rgba(22,2,30,.62) 38%,rgba(22,2,30,.10) 70%),
      linear-gradient(180deg,rgba(22,2,30,.34) 0%,rgba(22,2,30,.06) 40%,rgba(22,2,30,.52) 100%);
  }
  .hero__body{padding-block:80px}
  .hero__inner{max-width:600px}
  .hero__h1{font-size:60px}
  .hero__sub{font-size:17px; margin-top:16px}
  .hero__chips li{font-size:14px; padding:8px 15px}
  .hero__note{max-width:520px}

  .facts__in{padding:26px var(--pad)}
  .fact b{font-size:26px}
  .fact span{font-size:12.5px}

  .apply{padding:76px 0 80px}
  .apply__grid{display:grid; grid-template-columns:1fr 480px; gap:56px; align-items:start}
  .apply__copy{padding-top:6px}
  .form{padding:36px 34px; position:sticky; top:calc(var(--hdr) + 20px)}

  .points{padding:80px 0}
  .pt-list{grid-template-columns:repeat(4,1fr); gap:20px; margin-top:34px}
  .pt-list li{padding:26px 22px 24px}

  .overview{padding:80px 0}
  .tbl{min-width:0; font-size:14px}
  .tbl thead th{padding:14px 10px; font-size:15px}
  .tbl tbody th{font-size:13.5px; padding:14px 16px}
  .tbl td{padding:14px 12px}
  .tbl-hint{display:none}

  .types{padding:80px 0}
  /* The rail is a phone affordance. On desktop it becomes a grid that
     actually uses the width. */
  .rail{overflow:visible; scroll-snap-type:none; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad)}
  .rail__track{display:grid; grid-template-columns:repeat(5,1fr); gap:16px; width:auto; padding:6px 0}
  .tcard{width:auto}
  .tcard img{height:230px}

  .loc{padding:80px 0}
  .loc__grid{display:grid; grid-template-columns:1.1fr 1fr; gap:28px; align-items:start; margin-top:28px}
  .loc__fig{margin:0}
  .loc__list{margin-top:0; grid-template-columns:1fr; align-content:start}
  .loc__list li{padding:18px 20px 18px 58px}
  .loc__ico{top:18px}

  .gal{padding:80px 0}
  .gal__grid{gap:20px; margin-top:34px}

  .closing{padding:84px 0}
  .closing__in{max-width:760px; margin:0 auto; text-align:center}
  .closing__cta{justify-content:center; gap:12px}
  .closing p{font-size:16px}

  .ft{padding:52px 0 46px}
  .ft__grid{display:grid; grid-template-columns:1fr 1.4fr; gap:48px; align-items:start}
  .ft__disc{margin-top:0; padding-top:0; border-top:0}
  .lb__stage img{width:auto; max-width:100%; max-height:100%}
}
@media (min-width:1400px){
  :root{--wrap:1320px}
  .hero__h1{font-size:66px}
  .hero__inner{max-width:660px}
}
@media (hover:hover){
  .btn:hover{transform:translateY(-2px)}
  .btn--gold:hover{box-shadow:0 10px 26px rgba(201,162,39,.42)}
  .btn--ghost:hover{background:rgba(255,255,255,.2)}
  .btn--submit:hover{background:var(--purple-l)}
  .tcard:hover{border-color:var(--purple-l); transform:translateY(-4px); box-shadow:0 12px 28px rgba(83,5,108,.14)}
  .pt-list li:hover{border-color:var(--purple-l); transform:translateY(-3px); box-shadow:0 12px 28px rgba(83,5,108,.10)}
  .gal__grid figure:hover img{transform:scale(1.035)}
  .hdr__phone:hover b{color:var(--purple-l)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important; transition-duration:.01ms !important}
  .rv,.anim{opacity:1; transform:none}
  .sticky{transform:none}
}
