/* ============================================================
   V9 — 탄성마루 · 댄스플로어 · 전신 거울
   Elegance / Soft Pink
   ============================================================ */

/* ---------- Tokens ---------- */
:root{
  /* Keep the light palette in browsers that honor automatic dark-mode opt-out. */
  color-scheme:only light;

  /* surface */
  --bg:            #FFFEFD;
  --bg-tint:       #FFF7F6;
  --bg-deep:       #FDECEA;
  --surface:       #FFFFFF;

  /* pink scale */
  --pink-50:       #FFFDFD;
  --pink-100:      #FFF2F3;
  --pink-200:      #FCE2E5;
  --pink-300:      #F2C3C9;

  /* accent — rose gold */
  --rose:          #DCA1AB;
  --rose-deep:     #BE6F7E;
  --rose-ink:      #8F4E5A;
  --heading-pink:  #D99AA6;
  --button-pink:   #F8E1E4;
  --button-pink-strong:#F1CBD2;
  --button-ink:    #6E3B45;
  --gold:          #D4B476;

  /* ink */
  --ink:           #2A2224;
  --ink-2:         #584C50;
  --ink-3:         #89797D;
  --line:          #F0DEDE;
  --line-soft:     #FAF0EF;

  /* type */
  /* Two-typeface system: Gowun Batang for display, Pretendard for UI and copy. */
  --serif:  "Gowun Batang", serif;
  --serif-kr: "Gowun Batang", serif;
  --latin:  "Gowun Batang", serif;
  --sans:   "Pretendard Variable", sans-serif;

  /* metrics */
  --shell: 1200px;
  --pad: 24px;
  --header-h: 76px;
  --marquee-h: 64px;
  --r-s: 8px;
  --r-m: 16px;
  --r-l: 26px;
  --shadow-s: 0 2px 12px rgba(143,78,90,.035);
  --shadow-m: 0 16px 44px -20px rgba(143,78,90,.18);
  --shadow-l: 0 30px 80px -34px rgba(143,78,90,.25);
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; background:var(--bg); }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  font-variant-numeric:lining-nums tabular-nums;
  font-feature-settings:"lnum" 1;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.75;
  letter-spacing:-.012em;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  word-break:keep-all;
}
img,svg{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button,input,textarea,select{ font:inherit; color:inherit; }
button{ background:none; border:0; cursor:pointer; }
h1,h2,h3,h4,p,figure,dl,dd{ margin:0; }
h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:400;
  text-wrap:balance;
}
ul,ol{ margin:0; padding:0; list-style:none; }
fieldset{ margin:0; padding:0; border:0; }
legend{ padding:0; }
::selection{ background:var(--pink-300); color:var(--ink); }

.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;
}
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:999;
  background:var(--ink); color:#fff; padding:12px 20px; border-radius:0 0 var(--r-s) 0;
}
.skip-link:focus{ left:0; }
:focus-visible{ outline:2px solid var(--rose-deep); outline-offset:3px; border-radius:4px; }

/* ---------- Remix Icon 4.9.0 (local SVGs, no icon font) ---------- */
.ri-icon,
.text-link::after,
.check-list li::before,
.faq-item summary::after{
  display:inline-block;
  width:1em; height:1em; flex:none;
  background-color:currentColor;
  -webkit-mask:var(--ri-icon) center / contain no-repeat;
  mask:var(--ri-icon) center / contain no-repeat;
}
.ri-icon{ vertical-align:middle; }
.ri-close-line{ --ri-icon:url("../icons/remix/close-line.svg"); }
.ri-stack-line{ --ri-icon:url("../icons/remix/stack-line.svg"); }
.ri-tools-line{ --ri-icon:url("../icons/remix/tools-line.svg"); }
.ri-rectangle-line{ --ri-icon:url("../icons/remix/rectangle-line.svg"); }
.ri-phone-line{ --ri-icon:url("../icons/remix/phone-line.svg"); }
.ri-map-pin-line{ --ri-icon:url("../icons/remix/map-pin-line.svg"); }
.ri-time-line{ --ri-icon:url("../icons/remix/time-line.svg"); }
.ri-kakao-talk-line{ --ri-icon:url("../icons/remix/kakao-talk-line.svg"); }
.ri-kakao-talk-fill{ --ri-icon:url("../icons/remix/kakao-talk-fill.svg"); }
.ri-arrow-right-line{ --ri-icon:url("../icons/remix/arrow-right-line.svg"); }
.ri-arrow-right-s-line{ --ri-icon:url("../icons/remix/arrow-right-s-line.svg"); }
.ri-arrow-up-line{ --ri-icon:url("../icons/remix/arrow-up-line.svg"); }
.ri-arrow-down-line{ --ri-icon:url("../icons/remix/arrow-down-line.svg"); }
.ri-check-line{ --ri-icon:url("../icons/remix/check-line.svg"); }
.ri-subtract-line{ --ri-icon:url("../icons/remix/subtract-line.svg"); }
.ri-add-line{ --ri-icon:url("../icons/remix/add-line.svg"); }
.ri-vip-diamond-line{ --ri-icon:url("../icons/remix/vip-diamond-line.svg"); }
.ri-sparkling-2-fill{ --ri-icon:url("../icons/remix/sparkling-2-fill.svg"); }
.ri-menu-line{ --ri-icon:url("../icons/remix/menu-line.svg"); }

/* ---------- Layout ---------- */
.shell{
  width:100%;
  max-width:var(--shell);
  margin-inline:auto;
  padding-inline:var(--pad);
}
.shell.narrow{ max-width:860px; }
.section{ padding-block:clamp(72px,9vw,140px); position:relative; }
section[id],[id="top"]{ scroll-margin-top:calc(var(--header-h) + 8px); }
.section-tint{ background:var(--bg-tint); }
.only-mobile{ display:none; }

/* ---------- Reveal ---------- */
.reveal{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .9s var(--ease), transform .9s var(--ease);
  transition-delay:calc(var(--d,0) * 90ms);
}
.reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:54px; padding:0 34px;
  border-radius:999px;
  font-size:15px; font-weight:600; letter-spacing:.02em;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease),
             background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
  will-change:transform;
}
.btn-primary{
  background:var(--button-pink);
  color:var(--button-ink);
  box-shadow:0 12px 26px -14px rgba(190,111,126,.28);
}
.btn-primary:hover{ background:var(--button-pink-strong); transform:translateY(-2px); box-shadow:0 18px 34px -14px rgba(190,111,126,.38); }
.btn-ghost{
  border:1px solid var(--rose);
  color:var(--rose-ink);
  background:rgba(255,255,255,.6);
  backdrop-filter:blur(6px);
}
.btn-ghost:hover{ background:#fff; transform:translateY(-2px); border-color:var(--rose-deep); }

.text-link{
  display:inline-flex; align-items:center; gap:7px;
  margin-top:auto; padding-top:18px;
  font-size:14px; font-weight:600; color:var(--rose-ink);
}
.text-link::after{
  --ri-icon:url("../icons/remix/arrow-right-line.svg");
  content:""; width:20px; height:20px;
  transition:transform .35s var(--ease);
}
.text-link:hover::after{ transform:translateX(4px); }

/* ---------- Header ---------- */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  height:var(--header-h);
  display:flex; align-items:center;
  transition:background .4s var(--ease), box-shadow .4s var(--ease), height .4s var(--ease);
}
.site-header.is-stuck{
  height:66px;
  background:rgba(255,254,253,.92);
  backdrop-filter:blur(14px) saturate(1.2);
  box-shadow:0 1px 0 var(--line-soft), var(--shadow-s);
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:20px; }

.brand{ display:flex; flex:none; align-items:center; gap:11px; position:relative; z-index:2; }
.brand-text{ display:flex; flex-direction:column; line-height:1.1; }
.brand-text b{
  font-family:var(--latin); font-size:32px; font-weight:700; letter-spacing:.12em;
  font-variant-numeric:lining-nums;
  color:var(--ink);
}
.brand-text em{
  font-style:normal; font-size:10px; letter-spacing:.3em; color:var(--ink-3); font-weight:500;
}

.nav{ display:flex; align-items:center; gap:clamp(18px,2.4vw,34px); }
.nav a{
  position:relative; font-family:var(--serif-kr); font-size:17px; font-weight:700;
  letter-spacing:-.02em; color:var(--ink-2); white-space:nowrap;
  transition:color .3s var(--ease);
}
.nav a:not(.nav-cta)::after{
  content:""; position:absolute; left:0; bottom:-6px; width:0; height:1px;
  background:var(--rose-deep); transition:width .35s var(--ease);
}
.nav a:hover{ color:var(--rose-ink); }
.nav a:hover:not(.nav-cta)::after{ width:100%; }
.nav .nav-cta{
  margin-left:4px;
  padding:10px 22px; border-radius:999px;
  background:var(--button-pink); color:var(--button-ink); font-weight:700; font-size:17px;
}
.nav .nav-cta:hover{ background:var(--button-pink-strong); color:var(--button-ink); }

.nav-toggle{
  display:none; flex:none;
  width:46px; height:46px; padding:0;
  position:relative; z-index:2;
  border:1px solid rgba(87,74,78,.18);
  border-radius:12px;
  background:rgba(255,254,253,.9);
  color:var(--ink);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  transition:background .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);
  -webkit-tap-highlight-color:transparent;
}
.nav-toggle .ri-icon{
  position:absolute; left:50%; top:50%;
  width:24px; height:24px;
  transform:translate(-50%,-50%);
  transition:transform .3s var(--ease), opacity .3s var(--ease);
}
.nav-toggle .nav-icon-close{ opacity:0; transform:translate(-50%,-50%) rotate(-90deg); }
.nav-toggle[aria-expanded="true"]{ background:var(--bg-tint); border-color:rgba(87,74,78,.3); }
.nav-toggle[aria-expanded="true"] .nav-icon-menu{ opacity:0; transform:translate(-50%,-50%) rotate(90deg); }
.nav-toggle[aria-expanded="true"] .nav-icon-close{ opacity:1; transform:translate(-50%,-50%) rotate(0); }
.nav-toggle:active{ transform:scale(.96); }
.nav-toggle:focus-visible{ border-radius:12px; }
@media (hover:hover){
  .nav-toggle:hover{ background:var(--surface); border-color:rgba(87,74,78,.4); }
}
@media (prefers-reduced-motion:reduce){
  .nav-toggle,.nav-toggle .ri-icon{ transition:none; }
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; align-items:center;
  padding-block:calc(var(--header-h) + 48px) 96px;
  overflow:hidden;
}
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-photo{
  position:absolute; inset:0;
  background:#F7ECEA url("../img/hero-studio.webp") no-repeat;
  background-size:cover; background-position:center;
  filter:brightness(1.08) saturate(.92);
  animation:heroZoom 22s var(--ease) forwards;
}
@keyframes heroZoom{ from{ transform:scale(1.08); } to{ transform:scale(1); } }
.hero-veil{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 60% 62% at 50% 48%, rgba(255,254,253,.79) 0%, rgba(255,254,253,.48) 55%, transparent 100%),
    linear-gradient(180deg, rgba(255,254,253,.76) 0%, rgba(255,254,253,.19) 25%, rgba(255,254,253,.15) 65%, rgba(255,254,253,.84) 100%);
}
.hero-glow{ position:absolute; border-radius:50%; filter:blur(90px); opacity:.18; }
.hero-glow.g1{ width:46vw; height:46vw; left:-10vw; top:-8vw; background:rgba(237,200,201,.75); }
.hero-glow.g2{ width:38vw; height:38vw; right:-8vw; bottom:-10vw; background:rgba(201,169,110,.28); }

.hero-inner{ position:relative; z-index:1; text-align:center; }

.hero-title{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(20px,4.5vw,56px);
  white-space:nowrap;
  line-height:1.24;
  letter-spacing:-.035em;
  color:#000;
}
.hero-title .accent{
  font-family:var(--serif-kr);
  font-weight:inherit;
  color:inherit;
}
.hero-sub{
  margin-top:30px;
  font-size:clamp(15px,1.6vw,17.5px);
  line-height:2;
  color:var(--ink-2);
}
.hero-sub b{ color:var(--rose-ink); font-weight:600; }

.hero-actions{ margin-top:42px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

.hero-badges{
  margin-top:64px;
  display:flex; justify-content:center; flex-wrap:wrap;
  gap:0;
  border-top:1px solid var(--line);
  padding-top:34px;
}
.hero-badges li{
  padding:4px 40px;
  display:flex; flex-direction:column; align-items:center; gap:4px;
  border-left:1px solid var(--line);
}
.hero-badges li:first-child{ border-left:0; }
.hero-badges b{
  font-family:var(--serif); font-size:22px; font-weight:700; letter-spacing:.015em;
  font-variant-numeric:lining-nums;
  color:var(--rose-ink);
}
.hero-badges span{ font-size:13px; color:var(--ink-3); letter-spacing:.02em; }

.scroll-hint{
  position:absolute; left:50%; bottom:20px; transform:translateX(-50%);
  display:grid; place-items:center;
  width:28px; height:28px; color:var(--rose-deep); z-index:1;
}
.scroll-hint .ri-icon{ width:22px; height:22px; animation:scrollNudge 2.4s var(--ease) infinite; }
@keyframes scrollNudge{ 0%,100%{ transform:translateY(-3px); } 50%{ transform:translateY(3px); } }
@media (prefers-reduced-motion:reduce){ .scroll-hint .ri-icon{ animation:none; } }

/* ---------- Marquee ---------- */
.marquee{
  overflow:hidden; padding-block:20px;
  background:var(--button-pink);
  color:var(--rose-ink);
}
.marquee-track{
  display:flex; align-items:center; width:max-content;
  animation:slide 38s linear infinite;
}
.marquee-group{
  flex:none; display:flex; align-items:center; justify-content:space-around; gap:38px;
  width:max-content; min-width:100vw; padding-inline:19px;
}
.marquee span{ font-family:var(--latin); font-size:16px; letter-spacing:.34em; white-space:nowrap; }
.marquee .ri-icon{ color:var(--rose-deep); width:14px; height:14px; opacity:.9; }
@keyframes slide{ to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .marquee-track{ animation:none; } }

/* Keep the moving strip inside the first desktop viewport. */
@media (min-width:721px){
  .hero{
    min-height:calc(100svh - var(--marquee-h));
    padding-block:calc(var(--header-h) + 28px) 52px;
  }
  .hero-sub{ margin-top:22px; }
  .hero-actions{ margin-top:30px; }
  .hero-badges{ margin-top:38px; padding-top:24px; }
  .marquee{
    height:var(--marquee-h);
    padding-block:0;
    display:flex;
    align-items:center;
  }
}

/* ---------- Section head ---------- */
.sec-head{ text-align:center; max-width:720px; margin:0 auto clamp(48px,6vw,80px); }
.sec-title{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(27px,3.9vw,46px); line-height:1.42; letter-spacing:-.032em;
}
.sec-title.sm{ font-size:clamp(24px,3vw,36px); }
.sec-title em{
  font-family:var(--serif-kr); font-style:normal; font-weight:700; color:var(--heading-pink);
  position:relative;
}
.sec-title em::after{
  content:""; position:absolute; left:0; right:0; bottom:.08em; height:.34em;
  background:linear-gradient(90deg,rgba(237,200,201,.55),rgba(201,169,110,.28));
  z-index:-1; border-radius:2px; display:none;
}
.sec-title em.has-highlight::after{ display:block; }
.sec-desc{ margin-top:22px; color:var(--ink-2); font-size:15.5px; line-height:2; }
.sec-desc.left{ text-align:left; }
.sec-desc b{ color:var(--rose-ink); font-weight:600; }

.mini-title{
  font-family:var(--serif); font-weight:400; font-size:20px;
  margin-bottom:26px; letter-spacing:-.025em;
}

/* ---------- Pillars ---------- */
.pillars{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.pillar{
  position:relative;
  display:flex; flex-direction:column;
  min-width:0;
  background:var(--surface);
  border:1px solid var(--line-soft);
  border-radius:18px;
  box-shadow:var(--shadow-s);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
  overflow:hidden;
}
.pillar-media{
  aspect-ratio:1; overflow:hidden;
  background:var(--bg-tint);
}
.pillar-media img{
  display:block; width:100%; height:100%; object-fit:cover;
  filter:brightness(1.06) saturate(.94);
}
@media (hover:hover){
  .pillar:hover{ transform:translateY(-4px); box-shadow:var(--shadow-m); border-color:var(--pink-200); }
  .pillar-photo-card:hover .pillar-media img{ transform:scale(1.045); }
  .pillar-photo-card:hover .pillar-caption .text-link::after{ transform:translateX(4px); }
}
@media (prefers-reduced-motion:reduce){ .pillar,.pillar-photo-card .pillar-media img{ transition:none; } }
.pillar h3{
  font-family:var(--serif-kr); font-size:23px; font-weight:700; margin-bottom:14px;
  letter-spacing:-.025em;
}
.pillar p{ font-size:15px; color:var(--ink-2); line-height:1.95; }
.pillar p b{ color:var(--rose-ink); font-weight:600; }

.pillar-photo-card .pillar-media{ position:relative; flex:1 0 auto; }
.pillar-photo-card .pillar-media img{
  position:absolute; inset:0;
  transition:transform .8s var(--ease);
}
.pillar-caption{
  position:absolute; inset:auto 0 0;
  padding:76px 24px 24px;
  color:#fff;
  background:linear-gradient(180deg,transparent 0%,rgba(73,48,54,.68) 44%,rgba(66,43,49,.86) 100%);
}
.pillar .pillar-caption h3{ color:#fff; margin-bottom:10px; line-height:1.4; }
.pillar .pillar-caption p{ color:#fff; font-size:14px; line-height:1.75; min-height:8.75em; }
.pillar .pillar-caption p b{ color:inherit; }
.pillar-caption .text-link{
  display:flex; width:100%; align-items:center; justify-content:space-between;
  margin-top:18px; padding-top:15px;
  border-top:1px solid rgba(255,255,255,.26);
  color:#fff; font-size:13.5px; letter-spacing:.01em;
}
.pillar-caption .text-link::after{ width:18px; height:18px; }
.pillar-swipe-hint{ display:none; }

/* ---------- Split ---------- */
.split{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,76px);
  align-items:center;
}
.split.reverse .split-media{ order:2; }
.split-media{ position:relative; }
.split-body > .sec-desc:first-child{ margin-top:0; }
.media-tag{
  position:absolute; left:16px; top:22px;
  writing-mode:vertical-rl;
  font-family:var(--latin); font-size:11px; letter-spacing:.32em;
  color:var(--rose); background:var(--surface);
  padding:14px 6px; border-radius:999px; border:1px solid var(--line-soft);
}
.split.reverse .media-tag{ left:auto; right:16px; }

/* placeholder figure */
.ph{
  position:relative; overflow:hidden;
  border-radius:var(--r-l);
  background:
    linear-gradient(135deg,#F6E5E4 0%, #EFD6D6 45%, #E8CCCE 100%);
  background-size:cover; background-position:center;
  box-shadow:var(--shadow-m);
  border:1px solid rgba(255,255,255,.7);
}
.ph::before{
  content:""; position:absolute; inset:0;
  background:
    repeating-linear-gradient(115deg, rgba(255,255,255,.22) 0 2px, transparent 2px 26px);
  opacity:.7;
}
.ph.has-img::before{ display:none; }
.ph-tall{ aspect-ratio:4/5; }
.ph-wide{ aspect-ratio:4/3; }
.ph figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:60px 26px 22px;
  font-size:13px; letter-spacing:.02em; color:#fff;
  background:linear-gradient(transparent, rgba(60,40,44,.62));
}

/* ---------- Layers ---------- */
.layers{ margin:34px 0 30px; display:flex; flex-direction:column; gap:7px; }
.layer{
  display:flex; align-items:center; gap:16px;
  padding:14px 20px;
  border-radius:12px;
  background:var(--surface);
  border:1px solid var(--line-soft);
  transition:transform .4s var(--ease), border-color .4s var(--ease);
}
.layer:hover{ transform:translateX(6px); border-color:var(--pink-300); }
.layer-no{
  font-family:var(--latin); font-size:14px; letter-spacing:.1em; color:var(--rose);
  flex:none; width:26px;
}
.layer b{ display:block; font-size:15px; font-weight:600; line-height:1.5; }
.layer em{ font-style:normal; font-size:13px; color:var(--ink-3); }

.check-list{ display:flex; flex-direction:column; gap:11px; }
.check-list li{
  position:relative; padding-left:28px; font-size:14.5px; color:var(--ink-2);
}
.check-list li::before{
  --ri-icon:url("../icons/remix/check-line.svg");
  content:""; position:absolute; left:0; top:.28em;
  width:18px; height:18px; color:var(--rose-deep);
}

/* ---------- Floor section alignment ---------- */
.floor-layout{ align-items:stretch; }
.floor-layout > *{ min-width:0; }
.floor-layout .ph{ height:100%; min-height:360px; aspect-ratio:auto; }
.floor-studio-image,.mirror-detail-image{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.floor-layout .split-body{ display:flex; }
.floor-layout .layers{
  width:100%; margin:0;
  display:grid; grid-template-rows:repeat(5,minmax(0,1fr)); gap:7px;
}
.floor-layout .layer{ min-height:0; }
.floor-benefits{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px;
  margin-top:36px; padding-top:28px; border-top:1px solid var(--line);
}
.floor-benefits li{
  min-width:0; display:flex; align-items:flex-start; gap:10px;
  color:var(--ink-2); font-size:14.5px; line-height:1.75;
}
.floor-benefits li + li{ border-left:1px solid var(--line); padding-left:24px; }
.floor-benefits .ri-icon{ width:20px; height:20px; margin-top:2px; color:var(--rose-deep); }

/* ============================================================
   Editorial block — 얇은 괘선과 타이포로 구성. 카드/그림자 없음.
   ============================================================ */
.ed{ margin-top:clamp(56px,7vw,96px); }
.ed:first-of-type{ margin-top:0; }

.ed-head{
  display:flex; align-items:baseline; gap:18px; flex-wrap:wrap;
  padding-bottom:16px;
  border-bottom:1px solid var(--ink);
}
.ed-head h3{
  font-family:var(--serif); font-weight:700; font-size:clamp(19px,2.1vw,23px);
  letter-spacing:-.03em; white-space:nowrap;
}
.ed-head p{ font-size:14px; color:var(--ink-3); letter-spacing:-.01em; }

/* ---------- Dance floor thickness ---------- */
.thick-grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:center;
}
.thick-card{
  position:relative;
  padding:clamp(32px,3.6vw,46px) clamp(24px,3vw,36px);
  text-align:center;
  background:var(--surface);
  border:1px solid var(--line-soft);
  border-radius:var(--r-m);
}
.thick-num{
  display:block;
  font-family:var(--serif); font-size:clamp(46px,6vw,68px); line-height:1;
  letter-spacing:-.04em;
}
.thick-num i{ font-style:normal; font-size:.4em; margin-left:.06em; letter-spacing:.04em; }
.thick-num{ color:var(--rose-ink); }
.thick-num + .thick-num{ border-left:1px solid var(--line); }
.thick-description{
  margin-top:28px; padding-top:24px; border-top:1px solid var(--line-soft);
  font-size:14.8px; line-height:1.95; color:var(--ink-2);
}
.thick-specs{
  margin-top:32px;
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px;
}
.thick-specs > div{
  min-width:0; min-height:64px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  padding:14px 20px;
  text-align:center;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:999px;
}
.thick-specs dt{
  flex:none;
  font-size:11px; font-weight:700; letter-spacing:.12em; color:var(--rose-deep);
}
.thick-specs dd{
  min-width:0; margin:0;
  font-size:13.5px; line-height:1.5; color:var(--ink-2);
}

/* ---------- Welding / tape comparison ---------- */
.welding-comparison{ margin-top:clamp(40px,5vw,64px); }
.welding-table{
  width:100%; border-collapse:collapse; table-layout:fixed;
  font-size:14.5px; line-height:1.75; text-align:left;
}
.welding-label-col{ width:18%; }
.welding-table th,.welding-table td{
  padding:20px 24px; vertical-align:top;
  border-bottom:1px solid var(--line);
}
.welding-table thead th{ font-size:16px; font-weight:700; }
.welding-table th[scope="row"]{ font-weight:600; color:var(--ink); }
.welding-table td{ color:var(--ink-2); }
.welding-table tr > :nth-child(2){ background:var(--pink-50); }
.welding-table thead th:nth-child(2){ color:var(--rose-ink); }
.welding-note{ margin-top:18px; font-size:13.5px; line-height:1.75; color:var(--rose-ink); }

/* ---------- Steps ---------- */
.steps{
  display:grid; grid-template-columns:repeat(6,1fr);
  border-top:1px solid var(--line);
  margin-top:-1px;
}
.steps-5{ grid-template-columns:repeat(5,1fr); border-top-color:var(--ink); }
.steps li{
  padding:22px 18px 26px 0;
  border-top:2px solid transparent;
  transition:border-color .35s var(--ease);
}
.steps li:hover{ border-top-color:var(--rose); }
.steps b{
  display:block; margin:0 0 7px;
  font-size:15px; font-weight:700; line-height:1.5; color:var(--ink); letter-spacing:-.022em;
}
.s-d{ display:block; font-size:13px; line-height:1.7; color:var(--ink-3); letter-spacing:-.01em; }

/* ---------- Mirror types ---------- */
.mtypes{
  display:grid; grid-template-columns:1fr 1fr;
  grid-template-rows:auto auto auto 1fr;
}
/* 두 열의 단면도 · 번호와 제목 · 리드문 · 목록 줄을 같은 높이에 맞춥니다 */
.mtype{
  position:relative; padding-top:30px;
  display:grid; grid-row:span 4; grid-template-rows:subgrid;
  align-content:start;
}
.mtype:first-child{ padding-right:clamp(28px,3.4vw,52px); }
.mtype + .mtype{
  padding-left:clamp(28px,3.4vw,52px);
  border-left:1px solid var(--line);
}

.mtype-fig{ margin:0 0 22px; }
.mtype-fig svg{
  display:block; width:100%; height:auto;
  background:var(--surface);
  border:1px solid var(--line-soft);
  border-radius:var(--r-s);
}

/* 단면도 요소 */
.d-line{ fill:none; stroke:var(--ink-3); stroke-width:1.4; stroke-linecap:round; }
.d-hatch{ fill:none; stroke:var(--line); stroke-width:1.2; stroke-linecap:round; }
.d-mirror{ fill:var(--pink-100); stroke:var(--rose-deep); stroke-width:1.4; }
.d-glint{ fill:none; stroke:var(--rose); stroke-width:1.2; stroke-linecap:round; opacity:.85; }
.d-base{ fill:var(--bg-deep); stroke:var(--ink-3); stroke-width:1.2; }
.d-wall{ fill:var(--bg-deep); stroke:var(--ink-3); stroke-width:1.2; }

.mtype-no{
  width:42px; height:42px;
  display:grid; place-items:center;
  font-family:var(--serif); font-size:12.5px; letter-spacing:.08em;
  color:var(--rose-deep); background:#fff;
  border:1px solid var(--line); border-radius:50%;
  box-shadow:var(--shadow-s); margin:0;
  font-variant-numeric:lining-nums;
}
.mtype-title{
  display:flex; align-items:center; gap:12px;
  margin-bottom:14px;
}
.mtype h4{
  margin:0 0 8px;
  font-family:var(--serif); font-weight:700;
  font-size:clamp(18px,2vw,21px); letter-spacing:-.03em; color:var(--ink);
}
.mtype-title h4{ margin:0; }
.mtype-lead{
  margin-bottom:18px; padding-bottom:16px;
  border-bottom:1px solid var(--line-soft);
  font-size:14.5px; line-height:1.7; color:var(--rose-ink); letter-spacing:-.015em;
}
.mtype ul{ display:flex; flex-direction:column; gap:10px; }
.mtype li{
  position:relative; padding-left:16px;
  font-size:14.5px; line-height:1.75; color:var(--ink-2); letter-spacing:-.012em;
}
.mtype li::before{
  content:""; position:absolute; left:0; top:.72em;
  width:5px; height:1px; background:var(--rose);
}

/* ---------- Feature grid ---------- */
.feature-grid{ margin-top:34px; display:grid; grid-template-columns:1fr 1fr; gap:2px;
  background:var(--line-soft); border:1px solid var(--line-soft); border-radius:var(--r-m); overflow:hidden; }
.feature{ background:var(--surface); padding:24px 22px; transition:background .4s var(--ease); }
.feature:hover{ background:var(--pink-50); }
.feature b{ display:block; font-size:15px; font-weight:600; margin-bottom:7px; color:var(--rose-ink); }
.feature span{ font-size:13.5px; color:var(--ink-2); line-height:1.8; }

/* ---------- Gallery ---------- */
#gallery .sec-head{ margin-bottom:28px; }
.gal-filter{ display:flex; justify-content:center; flex-wrap:wrap; gap:9px; margin-bottom:24px; }
.chip{
  padding:10px 24px; border-radius:999px;
  border:1px solid var(--line);
  background:var(--surface);
  font-size:14px; color:var(--ink-2);
  transition:all .35s var(--ease);
}
.chip:hover{ border-color:var(--rose); color:var(--rose-ink); }
.chip.is-on{ background:var(--button-pink); border-color:var(--button-pink); color:var(--button-ink); font-weight:600; }

.gal-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.gal-item{
  position:relative; aspect-ratio:4/3; overflow:hidden;
  border-radius:var(--r-m);
  background:linear-gradient(135deg,#F6E5E4,#EAD2D3);
  background-size:cover; background-position:center;
  border:1px solid rgba(255,255,255,.7);
  box-shadow:var(--shadow-s);
  transition:transform .55s var(--ease), box-shadow .55s var(--ease), opacity .4s var(--ease);
}
.gal-item::before{
  content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(115deg, rgba(255,255,255,.2) 0 2px, transparent 2px 24px);
}
.gal-item.has-img::before{ display:none; }
.gal-item:hover{ transform:translateY(-6px); box-shadow:var(--shadow-l); }
.gal-item figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:52px 22px 20px;
  background:linear-gradient(transparent, rgba(93,57,65,.62));
  color:#fff;
}
.gal-item figcaption b{ display:block; font-size:15px; font-weight:600; margin-bottom:3px; }
.gal-item figcaption span{ font-size:12.5px; color:rgba(255,255,255,.8); }
.gal-item.is-hidden{ display:none; }
figure[data-img]:not(.has-img) figcaption{
  inset:0; display:grid; place-items:center;
  padding:24px; background:none;
  color:var(--ink-2); font-family:var(--sans); font-size:14px; font-weight:500;
  text-align:center; letter-spacing:0;
}
.gal-note{
  margin-top:28px; text-align:center; font-size:13px; color:var(--ink-3);
}
.gal-note code{
  font-family:var(--sans); font-size:12.5px;
  background:var(--surface); padding:3px 8px; border-radius:5px; border:1px solid var(--line-soft);
}

/* ---------- FAQ ---------- */
.faq{ display:flex; flex-direction:column; gap:12px; }
.faq-item{
  background:var(--surface);
  border:1px solid var(--line-soft);
  border-radius:var(--r-m);
  overflow:hidden;
  transition:border-color .4s var(--ease), box-shadow .4s var(--ease);
}
.faq-item[open]{ border-color:var(--pink-200); box-shadow:var(--shadow-m); }
.faq-item summary{
  list-style:none; cursor:pointer;
  padding:24px 60px 24px 28px;
  position:relative;
  font-size:16px; font-weight:600; letter-spacing:-.01em;
  transition:color .3s var(--ease);
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary:hover{ color:var(--rose-ink); }
.faq-item summary::after{
  --ri-icon:url("../icons/remix/add-line.svg");
  content:""; position:absolute; right:24px; top:50%;
  width:22px; height:22px; color:var(--rose-deep);
  transform:translateY(-50%);
}
.faq-item[open] summary::after{ --ri-icon:url("../icons/remix/subtract-line.svg"); }
.faq-body{ padding:0 28px 26px; }
.faq-body p{ font-size:14.8px; color:var(--ink-2); line-height:2; }

/* ---------- Contact ---------- */
.contact{ background:linear-gradient(180deg,var(--bg) 0%, var(--bg-tint) 100%); }
.contact-simple{ max-width:620px; margin:0 auto; text-align:center; }
.contact-actions{
  margin-top:36px;
  display:flex; flex-wrap:wrap; justify-content:center; gap:12px;
}
.contact-actions .btn{ min-width:216px; }
.btn-kakao{
  background:#FEE500; color:#191600;
  font-weight:700; white-space:nowrap;
  box-shadow:0 14px 30px -14px rgba(190,160,0,.6);
}
.btn-kakao .ri-icon{ width:21px; height:21px; }
.btn-kakao:hover{ background:#FFDE00; transform:translateY(-2px); box-shadow:0 20px 38px -14px rgba(190,160,0,.7); }
.btn-ghost .ri-icon{ width:18px; height:18px; }
.contact-meta{
  margin-top:30px;
  display:flex; flex-wrap:wrap; justify-content:center; gap:10px 26px;
  font-size:13.5px; color:var(--ink-3);
}

/* ---------- Footer ---------- */
.site-footer{
  background:#6C5057; color:rgba(255,255,255,.82);
  padding-block:clamp(52px,6vw,80px) 100px;
}
.footer-inner{ display:grid; gap:34px; }
.footer-brand{ display:flex; align-items:center; gap:16px; }
.footer-tag{ font-size:14px; line-height:1.85; color:rgba(255,255,255,.62); }
.footer-tag b{ color:#fff; font-weight:600; }

.footer-nav{ display:flex; flex-wrap:wrap; gap:10px 26px; padding-block:26px;
  border-block:1px solid rgba(255,255,255,.1); }
.footer-nav a{ font-size:14px; color:rgba(255,255,255,.66); transition:color .3s var(--ease); }
.footer-nav a:hover{ color:var(--rose); }

.footer-biz{
  font-style:normal; display:flex; flex-wrap:wrap; gap:6px 22px;
  font-size:13px; color:rgba(255,255,255,.48); line-height:1.9;
}
.footer-biz b{ color:rgba(255,255,255,.78); font-weight:500; }
.footer-biz a:hover{ color:var(--rose); }
.copy{ font-family:var(--latin); font-size:12.5px; letter-spacing:.16em; color:rgba(255,255,255,.32); }

/* ---------- Floating ---------- */
.float-bar{
  position:fixed; left:50%; bottom:calc(44px + env(safe-area-inset-bottom,0px)); z-index:90;
  transform:translateX(-50%);
  width:calc(100% - 32px); max-width:400px;
  display:none; align-items:center; gap:6px; padding:6px;
  isolation:isolate; border-radius:999px;
  border:1px solid rgba(255,255,255,.9);
  background:linear-gradient(145deg,#FFF9FB,#F3E6EB);
  box-shadow:0 12px 32px rgba(55,35,45,.22),0 2px 5px rgba(55,35,45,.08),
    inset 0 2px 2px rgba(255,255,255,.95),
    inset 0 -2px 3px rgba(126,82,100,.2);
}
.float-bar::before{
  content:""; position:absolute; inset:2px; border-radius:inherit; pointer-events:none;
  border:1px solid rgba(255,255,255,.42);
  background:linear-gradient(165deg,rgba(255,255,255,.48) 0%,rgba(255,255,255,.1) 25%,transparent 48%,rgba(255,221,237,.1) 78%,rgba(255,255,255,.32) 100%);
}
.float-bar::after{
  content:""; position:absolute; left:50%; top:20px; bottom:20px; width:1px;
  pointer-events:none; background:rgba(115,71,88,.2);
  box-shadow:1px 0 0 rgba(255,255,255,.55);
}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .float-bar{
    background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,222,235,.08));
    -webkit-backdrop-filter:blur(8px) saturate(1.35) brightness(1.35);
    backdrop-filter:blur(8px) saturate(1.35) brightness(1.35);
  }
}
.fab{
  position:relative; z-index:1;
  flex:1; min-width:0; min-height:50px;
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 10px; border-radius:999px;
  font-size:14.5px; font-weight:600; white-space:nowrap;
  text-shadow:0 1px 2px rgba(255,255,255,.9),0 0 8px rgba(255,255,255,.7);
  transition:background .2s ease, transform .2s ease;
}
.fab .ri-icon{ width:19px; height:19px; }
.fab-tel{ color:#412830; }
.fab-quote{
  background:transparent; color:#412830;
}
@media (hover:hover){ .fab:hover{ background:rgba(255,255,255,.22); } }
.fab:active{ transform:scale(.97); background:rgba(255,255,255,.3); }
.fab:focus-visible{ border-radius:999px; outline-offset:0; }
@media (prefers-reduced-motion:reduce){ .fab{ transition:none; } }
@media (prefers-reduced-transparency:reduce){
  .float-bar{ background:#F8E1E4; -webkit-backdrop-filter:none; backdrop-filter:none; }
}

.to-top{
  position:fixed; right:24px; bottom:32px; z-index:91;
  width:46px; height:46px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--surface); color:var(--rose-deep);
  border:1px solid var(--line);
  box-shadow:var(--shadow-m);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:all .4s var(--ease);
}
.to-top .ri-icon{ width:20px; height:20px; }
.to-top.is-on{ opacity:1; visibility:visible; transform:none; }
.to-top:hover{ background:var(--rose-deep); color:#fff; border-color:var(--rose-deep); }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1080px){
  .steps{ grid-template-columns:repeat(3,1fr); }
  .steps-5{ grid-template-columns:repeat(3,1fr); }
  .gal-grid{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:900px){
  .steps{ grid-template-columns:repeat(3,1fr); }

  .nav{
    position:fixed; inset:0 0 auto 0; z-index:1;
    flex-direction:column; align-items:stretch; gap:0;
    padding:calc(var(--header-h) + 12px) var(--pad) 30px;
    background:rgba(255,254,253,.99);
    backdrop-filter:blur(16px);
    box-shadow:var(--shadow-m);
    transform:translateY(-104%);
    transition:transform .5s var(--ease);
    max-height:100svh; overflow-y:auto;
  }
  .nav.is-open{ transform:none; }
  .nav a{ padding:15px 4px; border-bottom:1px solid var(--line-soft); font-size:17px; }
  .nav a:not(.nav-cta)::after{ display:none; }
  .nav .nav-cta{ margin:18px 0 0; border-bottom:0; text-align:center; padding:15px 22px; }
  .nav-toggle{ display:block; }

  .pillars{
    grid-template-columns:none;
    grid-auto-flow:column; grid-auto-columns:min(82vw,380px); gap:16px;
    margin-inline:calc(-1 * var(--pad));
    padding:4px var(--pad) 20px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:var(--pad);
    overscroll-behavior-x:contain;
    scrollbar-width:thin;
    scrollbar-color:var(--rose-deep) var(--line-soft);
  }
  .pillars::-webkit-scrollbar{ height:5px; }
  .pillars::-webkit-scrollbar-track{ background:var(--line-soft); border-radius:999px; }
  .pillars::-webkit-scrollbar-thumb{ background:var(--rose-deep); border-radius:999px; }
  .pillars.is-dragging{ scroll-snap-type:none; user-select:none; -webkit-user-select:none; }
  .pillars.is-dragging a{ cursor:grabbing; }
  @media (pointer:fine){
    .pillars{ cursor:grab; }
    .pillars.is-dragging{ cursor:grabbing; }
  }
  .pillars > .pillar{
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .pillars > .pillar.reveal{ opacity:1; transform:none; transition:none; }
  .pillar-swipe-hint{
    display:flex; align-items:center; justify-content:center; gap:10px;
    margin-top:6px; color:var(--ink-2);
    font-size:12px; line-height:1.6; letter-spacing:-.01em;
  }
  .pillar-swipe-hint .ri-icon{
    width:20px; height:20px;
    animation:pillarSwipeCue 2s var(--ease) infinite;
  }
  .split{ grid-template-columns:1fr; }
  .split.reverse .split-media{ order:0; }
  .media-tag{ display:none; }
  .ph-tall{ aspect-ratio:16/11; }
  .floor-layout .ph{ height:auto; min-height:0; aspect-ratio:4/3; }
}

@media (max-width:720px){
  :root{ --pad:20px; --header-h:64px; }
  body{ font-size:15.5px; }
  .only-mobile{ display:inline; }
  .floor-benefits{ gap:12px; margin-top:28px; padding-top:24px; }
  .floor-benefits li{ flex-direction:column; align-items:center; text-align:center; font-size:12.5px; gap:8px; }
  .floor-benefits li + li{ padding-left:12px; }

  .hero{ min-height:auto; padding-block:calc(var(--header-h) + 60px) 80px; }
  .hero-badges{
    display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
    margin-top:40px; padding-top:26px; gap:0;
  }
  .hero-badges li{
    min-width:0; padding:0 6px; border-left:1px solid var(--line);
    flex-direction:column; justify-content:flex-start; gap:7px; align-items:center;
    text-align:center;
  }
  .hero-badges b{ font-size:clamp(14px,3.6vw,18px); letter-spacing:-.025em; white-space:nowrap; line-height:1.5; }
  .hero-badges span{ font-size:12px; letter-spacing:-.025em; line-height:1.6; }
  .scroll-hint{ display:none; }
  .btn{ min-height:50px; padding:0 26px; font-size:14.5px; }
  .hero-actions{ width:90%; margin-inline:auto; gap:10px; flex-wrap:nowrap; }
  .hero-actions .btn{ flex:1 1 0; min-width:0; padding-inline:12px; white-space:nowrap; }

  .marquee span{ font-size:13px; letter-spacing:.26em; }

  .ed-head{ flex-direction:column; gap:6px; align-items:flex-start; }
  .ed-head h3{ white-space:normal; }

  .thick-description{ font-size:13.5px; }
  .thick-specs{ grid-template-columns:1fr; gap:9px; }
  .thick-specs > div{ min-height:56px; padding:12px 18px; }
  .welding-label-col{ width:22%; }
  .welding-table{ font-size:12.5px; line-height:1.7; }
  .welding-table th,.welding-table td{ padding:14px 10px; }
  .welding-table thead th{ font-size:13.5px; }
  .welding-note{ font-size:12.5px; }

  .steps,.steps-5{ grid-template-columns:minmax(0,1fr); gap:0; }
  .steps li{
    padding:14px 0;
    border-top:1px solid var(--line-soft);
  }
  .steps li:first-child{ border-top-color:transparent; }
  .steps b{ margin-bottom:4px; font-size:14.5px; line-height:1.5; }
  .steps .s-d{ font-size:12.5px; line-height:1.6; }

  /* 필터 칩 4개를 모바일에서도 한 줄로 */
  #gallery .sec-head{ margin-bottom:24px; }
  .gal-filter{ flex-wrap:nowrap; gap:6px; margin-bottom:20px; }
  .chip{
    flex:0 1 auto; min-width:0; white-space:nowrap;
    padding:9px clamp(7px,2.6vw,16px);
    font-size:clamp(11.5px,3.15vw,13.5px);
    letter-spacing:-.03em;
  }

  .gal-grid{ grid-template-columns:1fr; }
  .feature-grid{ grid-template-columns:1fr; }
  /* 좁은 화면에서도 두 방식을 나란히 두고, 대신 작게 */
  .mtype{ padding-top:22px; }
  .mtype:first-child{ padding-right:14px; }
  .mtype + .mtype{ padding-left:14px; }
  .mtype-fig{ margin-bottom:14px; }
  .mtype-no{ width:36px; height:36px; font-size:11px; letter-spacing:.06em; }
  .mtype-title{ gap:9px; margin-bottom:10px; }
  .mtype h4{ font-size:15.5px; margin-bottom:6px; }
  .mtype-lead{
    margin-bottom:12px; padding-bottom:11px;
    font-size:12.5px; line-height:1.6;
  }
  .mtype ul{ gap:8px; }
  .mtype li{ padding-left:11px; font-size:12.5px; line-height:1.6; }
  .mtype li::before{ width:4px; }

  .contact-actions{ flex-direction:column; }
  .contact-actions .btn{ width:100%; min-width:0; padding-inline:16px; }
  .contact-meta{ flex-direction:column; gap:8px; }
  .faq-item summary{ padding:20px 52px 20px 22px; font-size:15px; }
  .faq-body{ padding:0 22px 22px; }

  .float-bar{ display:flex; }
  .site-footer{ padding-bottom:calc(150px + env(safe-area-inset-bottom,0px)); }
  .to-top{ right:16px; bottom:calc(124px + env(safe-area-inset-bottom,0px)); width:42px; height:42px; }

  .layer{ padding:13px 16px; gap:12px; }
}

@media (max-width:400px){
  .steps b{ font-size:14px; }

  .gal-filter{ gap:4px; }
  .chip{ padding:8px 7px; font-size:11px; }

  .mtype:first-child{ padding-right:10px; }
  .mtype + .mtype{ padding-left:10px; }
  .mtype h4{ font-size:14.5px; }
  .mtype-lead,.mtype li{ font-size:12px; }
}

@keyframes pillarSwipeCue{
  0%,100%{ transform:translateX(0); }
  50%{ transform:translateX(5px); }
}
@media (prefers-reduced-motion:reduce){
  .pillar-swipe-hint .ri-icon{ animation:none; }
}

/* ---------- Print ---------- */
@media print{
  .site-header,.float-bar,.to-top,.scroll-hint,.marquee,.pillar-swipe-hint{ display:none !important; }
  .reveal{ opacity:1 !important; transform:none !important; }
  .pillars{ grid-auto-flow:row; grid-template-columns:1fr; grid-auto-columns:auto; overflow:visible; margin-inline:0; padding:0; }
  body{ background:#fff; }
}

/* ---------- Summary (한눈에 보기) ---------- */
.summary-lead{
  margin:0 auto; max-width:64ch;
  font-size:16px; line-height:1.95; color:var(--ink-2);
  letter-spacing:-.015em; text-align:center;
}
.summary-lead b{ color:var(--ink); font-weight:700; }

.summary-specs{
  margin:clamp(28px,4vw,40px) 0 0;
  border-top:1px solid var(--line);
}
.summary-specs > div{
  display:grid; grid-template-columns:150px minmax(0,1fr); gap:16px;
  padding:14px 4px;
  border-bottom:1px solid var(--line-soft);
}
.summary-specs dt{
  font-size:13px; font-weight:700; line-height:1.7;
  letter-spacing:-.01em; color:var(--rose-deep);
}
.summary-specs dd{
  margin:0;
  font-size:14.5px; line-height:1.7;
  letter-spacing:-.015em; color:var(--ink-2);
}

@media (max-width:640px){
  .summary-lead{ font-size:15px; line-height:1.85; text-align:left; }
  .summary-specs > div{ grid-template-columns:1fr; gap:4px; padding:13px 2px; }
  .summary-specs dt{ font-size:12px; letter-spacing:.04em; }
}
