/* ============================================================
   새몸만들기 — style.css
   색은 전부 :root 에 모아 뒀습니다. 톤을 바꾸려면 여기만 만지세요.
   ============================================================ */

:root{
  /* ── 색 ────────────────────────────────────────────────
     이 집의 논리가 그대로 색이 됩니다.
     "몸이 차면 대부분의 일이 더디게 돌아간다 → 안에서부터 데운다."
     그래서 페이지는 위(서늘함)에서 아래(따뜻함)로 데워집니다.
     크림+금색을 쓰지 않는 이유: 어느 사이트에나 붙는 조합이라
     이 집만의 색이 되지 못합니다. 먹빛과 대추빛으로 갑니다. */

  --cool-paper: #DFE8E7;   /* 서늘한 쪽 — 페이지 맨 위 */
  --warm-paper: #F8DCC2;   /* 데워진 쪽 — 페이지 맨 아래 */
  --ivory:      #F6F2EC;   /* 카드가 아닌 면의 기준색 */
  --cream:      #F1EBE3;   /* 살짝 눌러야 할 면 */
  --white:      #FFFCFA;   /* 순백이 아니라 살짝 따뜻한 흰색 */

  --ink:        #17232A;   /* 먹빛 */
  --ink-2:      #4A5459;
  --ink-3:      #636B6F;   /* 작은 글씨에도 쓰므로 명암비 4.5 를 넘겨 둡니다 */

  /* 대추빛. 금색 자리를 대신합니다 — 이름은 그대로 두어 기존 규칙이 다 따라옵니다 */
  --gold:       #A84835;
  --gold-deep:  #8E3B2E;
  --gold-soft:  #E3CAC2;

  --deep:       #17232A;   /* 차가운 어둠 — 히어로. 여기서 시작합니다 */
  --deep-2:     #22333A;
  --warm-dark:  #2B1C15;   /* 따뜻한 어둠 — 상담 예약. 여기서 끝납니다 */

  --line:       rgba(23,35,42,.12);
  --line-light: rgba(255,255,255,.14);

  --kakao:      #FEE500;
  --kakao-ink:  #191600;

  /* 모서리는 둘뿐입니다. 작은 것(칩·알림·FAQ 줄) / 카드 */
  --radius:     14px;
  --radius-lg:  20px;

  /* 여백도 둘뿐입니다. 카드 안 / 좁은 알림 상자 */
  --pad-card:   clamp(22px, 2.4vw, 30px);
  --pad-tight:  17px 19px;

  /* 강조 카드의 은은한 테. 금색 테두리는 '강조' 라는 뜻으로만 씁니다 */
  --ring-gold:  0 0 0 3px rgba(168,72,53,.09);
  --shadow:     0 1px 2px rgba(23,35,42,.04), 0 8px 28px rgba(23,35,42,.07);
  --shadow-lg:  0 2px 6px rgba(23,35,42,.05), 0 20px 54px rgba(23,35,42,.12);

  --nav-h:      64px;
  --wrap:       1140px;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 12px); }

body{
  margin:0;
  /* 문서 전체에 한 장. 섹션이 저마다 배경을 칠하면 이웃끼리 색이 부딪혀서
     실제로 두 번이나 어긋났습니다. 한 장으로 두면 그 문제가 없어지고,
     내려갈수록 데워지는 것이 눈에 보입니다. */
  background:linear-gradient(180deg,
    var(--cool-paper)  0%,
    #E8EDEB           14%,
    #F2EFE8           38%,
    #F9EBDB           68%,
    var(--warm-paper) 100%) no-repeat;
  background-size:100% 100%;
  color:var(--ink);
  font-family:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont,
              system-ui, "Malgun Gothic", "맑은 고딕", sans-serif;
  font-size:17px;
  line-height:1.75;
  letter-spacing:-0.01em;
  -webkit-font-smoothing:antialiased;
  -webkit-text-size-adjust:100%;
  padding-bottom:0;
  /* 모바일에서 탭할 때 파란 사각형이 번쩍이지 않게. 대신 :active 를 직접 줍니다 */
  -webkit-tap-highlight-color:transparent;
}

/* 제목은 명조, 본문은 고딕. 두 벌뿐입니다.
   차 마시고 그림 보는 방에 고딕만 쓰면 병원처럼 읽힙니다.
   명조는 세로획이 가늘어 자간을 덜 좁히고 행간을 조금 더 줍니다. */
h1,h2,h3{
  margin:0;
  font-family:"Gowun Batang", "Nanum Myeongjo", "Apple SD Gothic Neo",
              "본명조", serif;
  font-weight:700;
  letter-spacing:-0.015em;
  line-height:1.42;
  word-break:keep-all;   /* 좁은 화면에서 단어가 아무 데서나 잘리지 않게 */
}
h4{
  margin:0; font-weight:700; letter-spacing:-0.02em;
  line-height:1.35; word-break:keep-all;
}
p{ margin:0; word-break:keep-all; }
ul,ol,dl,dd{ margin:0; padding:0; }
li{ list-style:none; }
img{ max-width:100%; height:auto; display:block; }

a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; }

.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{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--ink); color:#fff; padding:12px 18px; border-radius:0 0 8px 0;
}
.skip:focus{ left:0; }

.wrap{ width:min(100% - 40px, var(--wrap)); margin-inline:auto; }
.wrap-narrow{ width:min(100% - 40px, 760px); }

/* ── 버튼 ────────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:52px; padding:0 26px;
  border:1px solid transparent; border-radius:999px;
  font-size:16px; font-weight:600; letter-spacing:-0.02em;
  transition:transform .16s ease, box-shadow .16s ease,
             background-color .16s ease, color .16s ease, border-color .16s ease;
  white-space:nowrap;
}
.btn:active{ transform:translateY(1px); }

/* 모바일은 hover 가 없습니다. 눌린 느낌은 :active 로 줍니다 */
.btn-gold:active{ filter:brightness(.94); }
.btn-ghost:active{ background:rgba(255,255,255,.2); }
.btn-ghost-dark:active{ background:rgba(168,72,53,.12); border-color:var(--gold); }
.btn-kakao:active{ filter:brightness(.92); }

/* 손가락으로 누르는 화면이므로 최소 44px 을 지킵니다 */
@media (hover: none){
  .btn{ min-height:54px; }
  .btn-sm{ min-height:46px; }
  .pcard:active{ border-color:var(--gold-soft); background:#FFFAF8; }
  .faq summary:active{ background:rgba(168,72,53,.06); }
  .nav-panel a:active{ background:rgba(168,72,53,.08); }
}

.btn-gold{
  background:linear-gradient(135deg, var(--gold) 0%, var(--gold-deep) 100%);
  color:#fff;
  box-shadow:0 6px 18px rgba(142,59,46,.28);
}
.btn-gold:hover{ box-shadow:0 10px 26px rgba(142,59,46,.36); }

.btn-ghost{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.32);
  color:#fff;
}
.btn-ghost:hover{ background:rgba(255,255,255,.14); }

.btn-ghost-dark{
  background:transparent; border-color:var(--line); color:var(--ink);
}
.btn-ghost-dark:hover{ border-color:var(--gold); color:var(--gold-deep); }

.btn-kakao{ background:var(--kakao); color:var(--kakao-ink); }
.btn-kakao:hover{ filter:brightness(.96); }

.btn-sm{ min-height:42px; padding:0 20px; font-size:15px; }
.btn-lg{ min-height:60px; padding:0 34px; font-size:17px; }
.btn-block{ display:flex; width:100%; }

/* ── 헤더 ────────────────────────────────────────────────── */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  height:var(--nav-h);
  background:rgba(251,247,240,0);
  transition:background-color .25s ease, box-shadow .25s ease, border-color .25s ease;
  border-bottom:1px solid transparent;
}
.nav.solid{
  background:rgba(251,247,240,.92);
  backdrop-filter:saturate(1.6) blur(12px);
  -webkit-backdrop-filter:saturate(1.6) blur(12px);
  border-bottom-color:var(--line);
}
.nav-in{ display:flex; align-items:center; gap:24px; height:var(--nav-h); }

.brand{ display:flex; align-items:center; gap:9px; margin-right:auto; }
.brand-mark{
  width:22px; height:22px; border-radius:50%;
  background:radial-gradient(circle at 32% 30%, #EFD6CE 0%, var(--gold) 46%, var(--gold-deep) 100%);
  box-shadow:0 0 0 4px rgba(168,72,53,.16);
  flex:none;
}
.brand-name{
  font-family:"Gowun Batang", serif;
  font-weight:700; font-size:20px; letter-spacing:-0.01em;
  color:#fff; transition:color .25s ease;
}
.nav.solid .brand-name{ color:var(--ink); }
.nav.solid .brand-mark{ box-shadow:0 0 0 4px rgba(168,72,53,.14); }

.nav-links{ display:flex; gap:26px; }
.nav-links a{
  font-size:15.5px; font-weight:500; color:rgba(255,255,255,.82);
  transition:color .2s ease; position:relative; padding:4px 0;
}
.nav.solid .nav-links a{ color:var(--ink-2); }
.nav-links a:hover{ color:var(--gold); }

.nav-toggle{
  display:none; width:48px; height:48px; border:0; background:transparent;
  align-items:center; justify-content:center; margin-left:auto;
  margin-right:-10px;   /* 아이콘은 가운데, 누르는 면적은 화면 끝까지 */
}
.bars{ position:relative; }
.bars, .bars::before, .bars::after{
  display:block; width:22px; height:2px; border-radius:2px;
  background:#fff; transition:transform .2s ease, opacity .2s ease, background-color .25s ease;
}
.nav.solid .bars, .nav.solid .bars::before, .nav.solid .bars::after{ background:var(--ink); }
.bars::before, .bars::after{ content:""; position:absolute; }
.bars::before{ transform:translateY(-7px); }
.bars::after{ transform:translateY(7px); }
.nav-toggle[aria-expanded="true"] .bars{ background:transparent !important; }
.nav-toggle[aria-expanded="true"] .bars::before{ transform:rotate(45deg); }
.nav-toggle[aria-expanded="true"] .bars::after{ transform:rotate(-45deg); }

.nav-panel{
  position:absolute; top:var(--nav-h); left:0; right:0;
  background:var(--ivory); border-bottom:1px solid var(--line);
  padding:8px 20px 20px; box-shadow:var(--shadow);
}
.nav-panel a{
  display:block; padding:15px 4px; font-size:17px; font-weight:600;
  border-bottom:1px solid var(--line);
}
.nav-panel a:last-child{ border-bottom:0; color:var(--gold-deep); }
[hidden]{ display:none !important; }   /* [hidden] 은 쉽게 지므로 눌러 둡니다 */

/* ── HERO ────────────────────────────────────────────────── */
.hero{
  position:relative; overflow:hidden;
  min-height:min(92vh, 780px);
  display:flex; align-items:center;
  background:
    radial-gradient(120% 80% at 50% -10%, #2C4450 0%, transparent 62%),
    linear-gradient(175deg, #1E323C 0%, var(--deep) 55%, #101A20 100%);
  color:#fff;
  padding:calc(var(--nav-h) + 56px) 0 96px;
}
.hero-glow{
  position:absolute; left:50%; top:26%; transform:translate(-50%,-50%);
  width:min(1000px, 130vw); aspect-ratio:1;
  background:radial-gradient(circle,
    rgba(240,206,138,.30) 0%,
    rgba(168,72,53,.16) 28%,
    rgba(168,72,53,.05) 48%,
    transparent 68%);
  pointer-events:none;
  animation:breathe 7s ease-in-out infinite;
}
@keyframes breathe{
  0%,100%{ opacity:.85; transform:translate(-50%,-50%) scale(1); }
  50%    { opacity:1;   transform:translate(-50%,-50%) scale(1.07); }
}
.hero-in{ position:relative; text-align:center; }

.eyebrow{
  display:inline-block;
  font-size:13.5px; font-weight:600; letter-spacing:.06em;
  color:var(--gold-soft);
  border:1px solid rgba(227,202,194,.34);
  border-radius:999px; padding:7px 16px; margin-bottom:26px;
}
.hero-title{
  font-size:clamp(35px, 6.6vw, 64px);
  line-height:1.3; letter-spacing:-0.03em; font-weight:700;
  margin-bottom:24px;
}
.hero-title em{
  font-style:normal;
  background:linear-gradient(100deg, #EFD6CE 0%, var(--gold) 60%, #C56A52 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-sub{
  font-size:clamp(16px, 2.1vw, 19px);
  color:rgba(255,255,255,.78); line-height:1.8; margin-bottom:36px;
}
/* 문장 단위로 줄을 끊습니다. 문장 한가운데서 넘어가면 읽는 리듬이 끊깁니다 */
.hero-sub span{ display:block; }
.hero-cta{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.hero-badges{
  display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:40px;
}
.hero-down{
  position:absolute; left:50%; bottom:30px; transform:translateX(-50%);
  width:26px; height:42px; border:1px solid rgba(255,255,255,.3); border-radius:999px;
  display:flex; justify-content:center; padding-top:8px;
}
.hero-down span{
  width:3px; height:7px; border-radius:2px; background:var(--gold-soft);
  animation:drop 1.9s ease-in-out infinite;
}
@keyframes drop{ 0%,100%{ transform:translateY(0); opacity:1; } 60%{ transform:translateY(13px); opacity:0; } }

/* ── 예약 안내 띠 ────────────────────────────────────────
   1인 사업장이라 예약 없이 오시면 헛걸음합니다.
   히어로 바로 아래, 스크롤하기 전에 보이는 자리에 둡니다. */
.ribbon{
  background:linear-gradient(90deg, rgba(168,72,53,.16), rgba(168,72,53,.09));
  border-bottom:1px solid rgba(168,72,53,.28);
}
.ribbon-in{
  display:flex; align-items:center; gap:14px;
  padding:16px 0;
}
.ribbon-ico{
  width:22px; height:22px; flex:none; fill:var(--gold-deep);
}
.ribbon-text{
  flex:1; font-size:15.5px; line-height:1.6; color:var(--ink-2);
}
.ribbon-text b{ color:var(--ink); }
.ribbon-cta{ flex:none; }

/* ── 움직임에 대한 원칙 ──────────────────────────────────
   두 가지를 구분합니다.

   ① 사람이 한 동작에 대한 반응 — 누르고, 열고, 확인할 때. 이건 넣습니다.
      무엇이 바뀌었는지 보여주는 역할이라 없으면 답답합니다.
   ② 아무도 안 눌렀는데 저절로 일어나는 것 — 섹션마다 스르륵 올라오는 등장,
      카드마다 붕 뜨는 hover. 이건 어느 사이트에나 붙는 기본값이라 뺐습니다.

   대신 저절로 움직이는 것은 '한 곳에 한 번' 만 둡니다 — 첫 화면 등장입니다. */

/* 손댈 수 있는 것들의 반응. 뜨는 대신 테두리와 바탕이 대추빛으로 옮겨갑니다 */
.dev, .free, .pcard, .faq, .course, .map img{
  transition:border-color .18s ease, background-color .18s ease;
}
.dev:hover, .pcard:hover{ border-color:var(--gold-soft); }
.free:hover{ border-color:var(--gold); }
.faq:hover{ border-color:var(--gold-soft); }
.faq summary{ transition:color .16s ease; }
.faq summary:hover{ color:var(--gold-deep); }
.map a:hover img{ border-color:var(--gold); }

/* 눌렀을 때는 확실히 눌린 티가 나야 합니다 (모바일엔 hover 가 없습니다) */
.dev:active, .free:active, .pcard:active{ border-color:var(--gold); }

/* ── 첫 화면 등장 — 페이지에서 저절로 움직이는 유일한 곳 ──
   순서대로 한 번만 흐릅니다. 스크롤해도 다시 일어나지 않습니다. */
@keyframes hero-in{
  from{ opacity:0; transform:translateY(14px); }
  to  { opacity:1; transform:none; }
}
.hero .eyebrow,
.hero .hero-title,
.hero .hero-sub,
.hero .hero-cta,
.hero .hero-badges{
  animation:hero-in .72s cubic-bezier(.22,.61,.36,1) both;
}
.hero .hero-title  { animation-delay:.10s; }
.hero .hero-sub    { animation-delay:.22s; }
.hero .hero-cta    { animation-delay:.34s; }
.hero .hero-badges { animation-delay:.46s; }

@media (prefers-reduced-motion: reduce){
  .hero .eyebrow, .hero .hero-title, .hero .hero-sub,
  .hero .hero-cta, .hero .hero-badges{ animation:none; }
}

/* ── 칩 ──────────────────────────────────────────────────
   태그처럼 생긴 것이 다섯 군데 있었는데 글씨·여백·배경이 다 달랐습니다.
   한 벌로 맞춥니다. */
.free-list li, .space-tags li, .owner-tags li,
.hero-badges li, .free-tag{
  display:inline-flex; align-items:center;
  font-size:14px; line-height:1.5;
  padding:6px 14px; border-radius:999px;
  border:1px solid transparent;
}
.space-tags li{ background:var(--white); border-color:var(--line); color:var(--ink-2); }
.free-list li, .owner-tags li{
  background:rgba(168,72,53,.09); border-color:rgba(168,72,53,.22);
  color:var(--gold-deep);
}
.free-tag{ background:var(--gold-deep); color:#fff; font-weight:800; letter-spacing:.03em; }
.hero-badges li{
  background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.12);
  color:rgba(255,255,255,.68);
}
.hero-badges li b{ color:#fff; font-weight:700; }

/* ── 카드 기본형 ─────────────────────────────────────────
   섹션을 하나씩 덧붙이다 보니 카드마다 모서리·여백·테두리가 제각각이었습니다.
   여기서 한 번 정하고, 아래에서는 '다른 점' 만 덧씁니다.
     기본 = 흰 바탕 + 연한 회색 테 + 큰 모서리
     강조 = 위 + 금색 테 + 은은한 링
   금색 테두리를 아무 데나 쓰면 '강조' 라는 뜻이 사라집니다. */
.empathy-grid li,
.pcard, .dev, .free, .ways, .vcard, .photo-slot, .map img{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
}
.pcard, .ways, .vcard, .empathy-grid li{ padding:var(--pad-card); }
.free, .ways, .pcard-lead{
  border-color:var(--gold-soft);
  box-shadow:var(--ring-gold);
}

/* ── 섹션 공통 ───────────────────────────────────────────── */
.sec{ padding:clamp(76px, 9.5vw, 132px) 0; }
/* 섹션 구분 — 손으로 칠하지 않습니다.
   손으로 클래스를 붙이면 섹션을 끼우거나 뺄 때마다 이웃끼리 같은 색이 되어
   실제로 세 번 어긋났습니다. 홀짝은 CSS 가 셉니다(주석 처리된 섹션은 DOM 에
   없으므로 셈에서 자동으로 빠집니다).

   색을 칠하는 대신 반투명 흰 판을 얹습니다. 아래 그라데이션이 비쳐서
   '내려갈수록 데워진다' 는 흐름은 살아 있고, 판의 경계로 구간은 갈립니다. */
.sec-cream{ background:transparent; }

main > section.sec:not(.sec-dark):nth-of-type(even){
  background:rgba(168,72,53,.055);   /* 대추빛을 아주 옅게 */
  border-top:1px solid var(--line);
}
main > section.sec:not(.sec-dark):nth-of-type(odd){
  border-top:1px solid var(--line);
}
main > section.sec-dark + section.sec{ border-top:0; }
.sec-dark{ background:linear-gradient(170deg, var(--deep-2) 0%, var(--deep) 100%); color:#fff; }
/* 마지막 어두운 구간은 따뜻한 어둠. 차가운 히어로에서 여기까지가 한 흐름입니다 */
#contact.sec-dark{ background:linear-gradient(170deg, #3A2419 0%, var(--warm-dark) 100%); }

.kicker{
  font-size:13.5px; font-weight:700; letter-spacing:.08em;
  color:var(--gold-deep); margin-bottom:14px;
}
.kicker-light{ color:var(--gold-soft); }
.sec-title{ font-size:clamp(27px, 4.2vw, 43px); line-height:1.36; margin-bottom:22px; }
.sec-title-light{ color:#fff; }
.sec-lead{ font-size:17px; color:var(--ink-2); max-width:640px; margin-bottom:44px; }
.sec-lead-light{ color:rgba(255,255,255,.72); }
.body{ font-size:16.5px; color:var(--ink-2); margin-bottom:18px; }
.body strong{ color:var(--ink); font-weight:700; }

.grid-2{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px, 5vw, 72px);
  align-items:center;
}

.notice{
  margin-top:26px; padding:18px 20px;
  background:rgba(168,72,53,.08);
  border-left:3px solid var(--gold);
  border-radius:0 10px 10px 0;
  font-size:14.5px; line-height:1.72; color:var(--ink-2);
}
.notice strong{ color:var(--gold-deep); }
/* 헛걸음을 막아야 하는 안내는 더 세게 */
.notice-warn{
  background:rgba(168,72,53,.14);
  border-left-color:var(--gold-deep);
  border-radius:10px; padding:18px 20px;
  margin:26px 0 0; font-size:15.5px; color:var(--ink-2);
}
.notice-warn strong{ display:block; margin-bottom:5px; color:var(--ink); font-size:16px; }

/* ── 공감 ────────────────────────────────────────────────── */
.empathy-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr));
  gap:14px; margin-top:12px;
}
.empathy-grid li{
  font-size:16.5px; color:var(--ink-2);
  display:flex; gap:12px; align-items:flex-start;
}
.empathy-grid .q{
  font-size:30px; line-height:.9; color:var(--gold-soft); font-weight:700; flex:none;
}
.empathy-note{
  margin-top:32px; font-size:17px; color:var(--ink-2); text-align:center;
}


/* ── 무료 검사 두 가지 ───────────────────────────────────── */
.frees{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
/* 차 한 잔은 검사 둘과 성격이 달라 살짝 눕혀 둡니다 */
.free-tea{ background:var(--cream); }
.free-tea .free-img{ background:var(--white); }
.free{ overflow:hidden; }
.free-img{ background:var(--cream); border-bottom:1px solid var(--line); }
.free-img img{ width:100%; height:auto; display:block; }
.free-body{ padding:26px 26px 28px; }
.free-tag{ margin-bottom:9px; }
.free h3{ font-size:24px; margin-bottom:12px; }
.free-desc{ font-size:16px; color:var(--ink-2); line-height:1.72; }
.free-desc b{ color:var(--ink); }
.free-list{
  display:flex; flex-wrap:wrap; gap:7px;
  margin:16px 0 18px; padding:16px 0 0; border-top:1px solid var(--line);
}
.free-after{
  font-size:15.5px; color:var(--ink-2); line-height:1.7;
  padding-top:14px; border-top:1px solid var(--line);
}
.free-after b{ color:var(--ink); }

/* ── 어떤 공간인가 ───────────────────────────────────────── */
.space-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
/* 사진 자리. 파일을 넣을 때는 안에 <img> 를 두고 data-label 을 지우세요 */
/* 사진이 아직 없는 자리. 점선으로 '비어 있음' 을 알립니다 */
.photo-slot{
  aspect-ratio:4/3;
  border-style:dashed; border-color:rgba(168,72,53,.4);
  background:
    repeating-linear-gradient(45deg, rgba(168,72,53,.05) 0 12px, transparent 12px 24px),
    var(--white);
  display:grid; place-items:center; text-align:center;
}
.photo-slot[data-label]::after{
  content:attr(data-label); white-space:pre-line;
  font-size:13.5px; font-weight:600; color:var(--ink-3); line-height:1.7; padding:0 20px;
}
.photo-slot img{ width:100%; height:100%; object-fit:cover; border-radius:var(--radius-lg); }

/* ── 대표 인사말 ─────────────────────────────────────────── */
.owner{
  display:grid; grid-template-columns:0.85fr 1.15fr;
  gap:clamp(32px, 5vw, 72px); align-items:center;
}
.owner-photo{ margin:0; position:relative; }
.owner-photo::before{
  /* 사진 뒤에 은은한 빛. 수채화 가장자리가 바탕에 자연스럽게 앉습니다 */
  content:""; position:absolute; inset:-6% -4% -2%;
  background:radial-gradient(60% 55% at 50% 42%,
    rgba(168,72,53,.16) 0%, rgba(168,72,53,.05) 45%, transparent 72%);
  border-radius:50%; z-index:0;
}
.owner-photo img{
  position:relative; z-index:1;
  width:100%; max-width:420px; margin-inline:auto;
  border-radius:var(--radius-lg);
  /* 수채화 원본이 흰 바탕이라 그대로 두면 크림색 위에 흰 사각형이 뜹니다.
     multiply 로 흰 부분을 바탕에 녹입니다. */
  mix-blend-mode:multiply;
}
/* 얼굴 사진 대신 넣은 카드. 사진과 달리 multiply 를 걸지 않습니다 */
.owner-photo-card img{
  mix-blend-mode:normal;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
}

/* 사진이 아직 없을 때. data-label 을 지우면 사라집니다 */
.owner-photo[data-label]{
  position:relative; z-index:1;
  width:100%; max-width:420px; margin-inline:auto;
  aspect-ratio:3/4; border-radius:var(--radius-lg);
  display:grid; place-items:center; text-align:center;
  background:
    repeating-linear-gradient(45deg, rgba(168,72,53,.05) 0 12px, transparent 12px 24px),
    var(--white);
  border:1px dashed rgba(168,72,53,.4);
}
.owner-photo[data-label]::after{
  content:attr(data-label);
  font-size:13.5px; font-weight:600; color:var(--ink-3); padding:0 16px;
}
.owner-text .sec-title{ margin-bottom:20px; }
.owner-sign{
  display:flex; align-items:baseline; gap:10px;
  margin-top:26px; padding-top:22px; border-top:1px solid var(--line);
}
.owner-role{ font-size:14px; color:var(--ink-3); }
.owner-name{ font-size:20px; font-weight:700; letter-spacing:.04em; }
.owner-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }

/* ── 어두운 카드 3개 ─────────────────────────────────────── */
.cards-3{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:20px;
}
.dcard{
  background:rgba(255,255,255,.045); border:1px solid var(--line-light);
  border-radius:var(--radius); padding:32px 28px;
}
.dnum{
  display:block; font-size:13px; font-weight:700; letter-spacing:.1em;
  color:var(--gold); margin-bottom:14px;
}
.dcard h3{ font-size:20px; margin-bottom:12px; }
.dcard p{ font-size:15.5px; color:rgba(255,255,255,.68); line-height:1.75; }

/* ── 프로그램 ────────────────────────────────────────────── */
.pgrid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:20px;
}
.pcard{
  display:flex; flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.pcard-lead{
  grid-column:1 / -1;
  display:grid; grid-template-columns:minmax(190px, 1fr) 2.2fr;
  gap:clamp(20px, 3vw, 44px); align-items:center;
}
.pcard-lead .lead-head h3{
  font-size:26px;
  background:linear-gradient(100deg, var(--gold-deep) 0%, var(--gold) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.pcard-lead .pdesc{ margin-bottom:0; }
.pcard-lead .plist{ margin-top:16px; }
.ptag{
  font-size:12.5px; font-weight:700; letter-spacing:.04em;
  color:var(--ink-3); margin-bottom:8px;
}
.ptag-hot{ color:var(--gold-deep); }
.pcard h3{ font-size:22px; margin-bottom:12px; }
.pdesc{ font-size:15.5px; color:var(--ink-2); line-height:1.72; margin-bottom:18px; }
.plist{ margin-top:auto; padding-top:16px; border-top:1px solid var(--line); }
/* 점 붙은 목록 — 코스 조건과 프로그램 항목이 같은 모양이어야 합니다 */
.plist li, .c-meta li{
  font-size:14.5px; color:var(--ink-2);
  padding:5px 0 5px 18px; position:relative;
}
.plist li a{ color:var(--gold-deep); font-weight:600; border-bottom:1px solid rgba(168,72,53,.4); }
.plist li::before, .c-meta li::before{
  content:""; position:absolute; left:2px; top:14px;
  width:5px; height:5px; border-radius:50%; background:var(--gold);
}
.price{ margin:16px 0 18px; font-size:15px; color:var(--ink-2); }
.price b{ font-size:19px; color:var(--ink); letter-spacing:-0.02em; font-variant-numeric:tabular-nums; }
.price-note{ margin-top:26px; font-size:14px; color:var(--ink-3); }

/* ── 바이오포톤 이야기 ───────────────────────────────────── */
.lead-p{ font-size:18px; color:var(--ink); }
.sub-h{
  font-size:21px; margin:38px 0 14px;
  padding-left:14px; border-left:3px solid var(--gold);
}

.spectrum{ margin:30px 0 8px; }
.spec-bar{
  display:flex; height:44px; border-radius:10px; overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--line);
}
.spec-bar .seg{ display:grid; place-items:center; }
.seg-vis { flex:0 0 14%; background:linear-gradient(90deg,#8FA8D8,#E8D9A0); }
.seg-near{ flex:0 0 22%; background:#E7C88E; }
.seg-grow{
  flex:1 1 auto;
  background:linear-gradient(90deg, var(--gold) 0%, var(--gold-deep) 100%);
  box-shadow:0 0 0 2px var(--gold-deep) inset;
}
.seg-grow b{ color:#fff; font-size:14.5px; letter-spacing:-0.01em; white-space:nowrap; }
.seg-far { flex:0 0 24%; background:#B9A98F; }

.spec-legend{ display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:12px; }
.spec-legend li{
  display:flex; align-items:center; gap:7px;
  font-size:13.5px; color:var(--ink-3);
}
.spec-legend li.on{ color:var(--gold-deep); font-weight:700; }
.spec-legend i{ width:12px; height:12px; border-radius:3px; flex:none; }
.c-vis { background:linear-gradient(135deg,#8FA8D8,#E8D9A0); }
.c-near{ background:#E7C88E; }
.c-grow{ background:var(--gold); }
.c-far { background:#B9A98F; }

.spectrum figcaption{
  margin-top:18px; padding:var(--pad-tight);
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  font-size:15px; line-height:1.75; color:var(--ink-2);
}
.spectrum figcaption strong{ color:var(--ink); }

/* ── 이용 코스 ───────────────────────────────────────────── */
.courses{ border-top:1px solid var(--line); }
.course{
  display:grid;
  grid-template-columns:230px 1fr 190px;
  gap:26px; align-items:center;
  padding:26px 4px;
  border-bottom:1px solid var(--line);
  transition:background-color .18s ease;
}
.course:hover{ background:rgba(168,72,53,.045); }
.course-first{
  background:rgba(168,72,53,.07);
  border-radius:var(--radius); padding-inline:22px;
}
.course-first:hover{ background:rgba(168,72,53,.1); }
.c-tag{
  display:block; font-size:12.5px; font-weight:700;
  color:var(--gold-deep); margin-bottom:5px;
}
.c-head h3{ font-size:21px; }
.c-desc{ font-size:15.5px; color:var(--ink-2); line-height:1.7; }

/* ── 체험 기기 ───────────────────────────────────────────── */
/* 기기가 5개라 auto-fit 으로 두면 4+1 로 떨어집니다.
   6칸을 깔고 앞의 둘을 3칸씩, 나머지 셋을 2칸씩 줘서 2+3 으로 앉힙니다. */
.devices{
  display:grid; grid-template-columns:repeat(6, 1fr); gap:20px;
}
.dev:nth-child(n+3){ grid-column:span 2; }
/* 앞의 둘은 넓으니 사진을 왼쪽에 두는 가로형으로. 세로형이면 사진만 너무 높아집니다 */
.dev:nth-child(-n+2){
  grid-column:span 3;
  display:grid; grid-template-columns:1fr 1fr; align-items:stretch;
}
/* 자동 배치에 맡기면 h3 는 오른쪽 위, p 는 왼쪽 아래로 흩어집니다. 자리를 못 박습니다 */
.dev:nth-child(-n+2) .dev-photo{
  grid-column:1; grid-row:1 / span 2;
  aspect-ratio:auto; height:100%; min-height:230px;
  border-bottom:0; border-right:1px solid var(--line);
}
.dev:nth-child(-n+2) h3{
  grid-column:2; grid-row:1; align-self:end;
  margin:0 24px 10px;
}
.dev:nth-child(-n+2) p{
  grid-column:2; grid-row:2; align-self:start;
  margin:0 24px 0;
}
.dev{
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.dev-photo{
  aspect-ratio:3/2;                 /* 삽화도 제조사 사진도 480×320(3:2) 입니다 */
  display:grid; place-items:center; text-align:center;
  background:var(--cream);
  border-bottom:1px solid var(--line);
}
/* 아직 그림이 없는 칸만 줄무늬로 표시합니다 */
.dev-photo[data-label]{
  background:
    repeating-linear-gradient(45deg, rgba(168,72,53,.05) 0 12px, transparent 12px 24px),
    var(--cream);
}
/* 사진을 넣을 때는 안에 <img> 를 두고 data-label 을 지우면 안내문이 사라집니다 */
.dev-photo[data-label]::after{
  content:attr(data-label);
  font-size:13.5px; color:var(--ink-3); font-weight:600; padding:0 16px;
}
.dev-photo img{
  width:100%; height:100%;
  /* 제품 사진은 잘리면 무엇인지 알아보기 어려워집니다. cover 대신 contain */
  object-fit:contain;
}
.dev h3{ font-size:20px; margin:22px 22px 10px; }
.dev p{ font-size:15.5px; color:var(--ink-2); line-height:1.72; margin:0 22px 24px; }
.notice-wide{ margin-top:28px; }

/* ── 오시는 방법 셋 ──────────────────────────────────────── */
.ways{ margin-top:30px; }
.ways-t{ font-size:20px; margin-bottom:20px; }
.ways-l{ display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; counter-reset:w; }
.ways-l li{
  font-size:15.5px; line-height:1.7; color:var(--ink-2);
  padding-top:38px; position:relative;
}
.ways-l li::before{
  counter-increment:w; content:counter(w);
  position:absolute; top:0; left:0;
  width:28px; height:28px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--gold-soft); color:var(--gold-deep);
  font-size:14px; font-weight:700;
}
.ways-l b{ display:block; color:var(--ink); font-size:16.5px; margin-bottom:6px; }

/* ── 진행 과정 ───────────────────────────────────────────── */
.flow{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:26px;
  counter-reset:f;
}
.flow li{ position:relative; padding-top:8px; }
.fnum{
  display:grid; place-items:center;
  width:46px; height:46px; border-radius:50%;
  background:linear-gradient(135deg, var(--gold) 0%, var(--gold-deep) 100%);
  color:#fff; font-weight:700; font-size:18px;
  margin-bottom:18px;
  box-shadow:0 6px 16px rgba(142,59,46,.26);
}
.flow h3{ font-size:19px; margin-bottom:10px; }
.flow p{ font-size:15.5px; color:var(--ink-2); line-height:1.75; }

/* ── 후기 ────────────────────────────────────────────────── */
.vcard{
  margin:0; background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius-lg); padding:30px 28px;
  display:flex; flex-direction:column; gap:20px;
}
.vcard p{ font-size:16px; color:var(--ink-2); line-height:1.8; flex:1; }
.vcard footer{ display:flex; flex-direction:column; gap:2px; padding-top:16px; border-top:1px solid var(--line); }
.vcard footer b{ font-size:15px; }
.vcard footer span{ font-size:13.5px; color:var(--ink-3); }
.voice-note{ margin-top:24px; font-size:13.5px; color:var(--ink-3); }

/* ── FAQ ─────────────────────────────────────────────────── */
.faq{
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius); margin-bottom:12px; overflow:hidden;
}
.faq summary{
  list-style:none; cursor:pointer; padding:22px 56px 22px 24px;
  font-size:17px; font-weight:600; position:relative; word-break:keep-all;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:""; position:absolute; right:26px; top:50%;
  width:9px; height:9px; margin-top:-6px;
  border-right:2px solid var(--gold-deep); border-bottom:2px solid var(--gold-deep);
  transform:rotate(45deg); transition:transform .2s ease;
}
.faq[open] summary::after{ transform:rotate(-135deg); margin-top:-2px; }
.faq-a{ padding:0 24px 24px; }
.faq-a p{ font-size:15.5px; color:var(--ink-2); line-height:1.8; }

/* ── 오시는 길 ───────────────────────────────────────────── */
.visit-dl > div{
  display:flex; gap:20px; padding:16px 0; border-top:1px solid var(--line);
}
.visit-dl > div:first-child{ border-top:0; }
.visit-dl dt{ flex:none; width:84px; font-weight:700; font-size:15px; color:var(--ink); }
.visit-dl dd{ font-size:15.5px; color:var(--ink-2); }
.visit-dl dd a{ color:var(--gold-deep); font-weight:600; }
.muted{ display:block; font-size:14px; color:var(--ink-3); margin-top:4px; }
.visit-btns{ display:flex; gap:10px; flex-wrap:wrap; margin-top:26px; }
/* 이정표 — 주소를 읽는 것보다 '1층에 뭐가 있는 건물' 이 훨씬 잘 먹힙니다 */
.landmark{
  display:flex; gap:12px; align-items:flex-start;
  margin-top:22px; padding:var(--pad-tight);
  background:var(--white); border:1px solid var(--gold-soft);
  border-radius:var(--radius);
  font-size:15.5px; line-height:1.65; color:var(--ink-2);
}
.landmark-ico{ font-size:19px; line-height:1.3; flex:none; }
.landmark b{ color:var(--ink); }

/* 지도 */
.map{ margin:0; }
.map a{ display:block; }
.map img{
  display:block; width:100%; height:auto; background:var(--cream);
  transition:border-color .18s ease, box-shadow .18s ease;
}
.map a:hover img{ border-color:var(--gold); box-shadow:var(--shadow); }
.map a:active img{ border-color:var(--gold-deep); }
.map figcaption{
  margin-top:10px; text-align:center;
  font-size:13.5px; color:var(--ink-3);
}
.map figcaption b{ color:var(--gold-deep); }
.map figcaption .attr{ display:block; margin-top:4px; font-size:11.5px; opacity:.7; }

/* ── 상담 폼 ─────────────────────────────────────────────── */
.quick-btns{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:36px; }
.quick-btns .btn{ flex:1 1 240px; }

.ask{
  background:rgba(255,255,255,.05); border:1px solid var(--line-light);
  border-radius:var(--radius-lg); padding:clamp(24px, 4vw, 36px);
  display:flex; flex-direction:column; gap:18px;
}
.f-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.f{ display:flex; flex-direction:column; gap:8px; }
.f > span{ font-size:14.5px; font-weight:600; color:rgba(255,255,255,.85); }
.f > span b{ color:var(--gold); margin-left:3px; }
.f input, .f select, .f textarea{
  width:100%; min-height:52px; padding:14px 16px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.18); border-radius:10px;
  color:#fff; font:inherit; font-size:16px;
  transition:border-color .16s ease, background-color .16s ease;
}
.f textarea{ min-height:auto; resize:vertical; line-height:1.7; }
.f input::placeholder, .f textarea::placeholder{ color:rgba(255,255,255,.34); }
.f input:focus, .f select:focus, .f textarea:focus{
  outline:none; border-color:var(--gold); background:rgba(255,255,255,.11);
}
.f select{ appearance:none; background-image:none; cursor:pointer; }
.f select option{ background:var(--deep); color:#fff; }
.f input[aria-invalid="true"], .f select[aria-invalid="true"]{ border-color:#E0785F; }

.agree{ display:flex; gap:11px; align-items:flex-start; cursor:pointer; }
.agree input{ width:20px; height:20px; margin-top:3px; flex:none; accent-color:var(--gold); }
.agree span{ font-size:14px; color:rgba(255,255,255,.6); line-height:1.65; }
.ask-help{ font-size:13.5px; color:rgba(255,255,255,.5); text-align:center; }
.f-hint{ font-size:13.5px; color:rgba(255,255,255,.5); margin-top:-6px; }
.f input[type="date"]{ color-scheme:dark; }

/* 전화가 늘 되는 게 아니라는 안내 — 버튼 아래 한 줄 */
.call-line{
  margin:-20px 0 34px; text-align:center;
  font-size:14.5px; color:rgba(255,255,255,.6);
}
.call-line a{
  color:var(--gold-soft); font-weight:700;
  border-bottom:1px solid rgba(227,202,194,.4);
}
.ask-manual-lead{ font-size:14px; color:var(--gold-soft); margin-bottom:10px; }
/* 봇 덫 — 화면 밖으로 밀어냅니다. display:none 은 봇이 알아챕니다 */
.trap{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* 접수 완료 화면 (폼 자리에 들어갑니다) */
.sent{
  background:rgba(168,72,53,.12); border:1px solid rgba(168,72,53,.4);
  border-radius:var(--radius-lg); padding:clamp(26px, 4vw, 38px) clamp(20px, 3vw, 32px);
  text-align:center;
}
.sent-ttl{
  font-size:24px; font-weight:800; letter-spacing:-.03em; color:var(--gold-soft);
  margin-bottom:10px;
}
.sent-sub{ font-size:16px; color:rgba(255,255,255,.78); line-height:1.7; }
.sent-acts{ display:flex; gap:10px; flex-wrap:wrap; margin-top:24px; }
.sent-acts .btn{ flex:1 1 190px; }
.sent-copy{ margin-top:20px; text-align:left; }
.sent-copy summary{
  cursor:pointer; font-size:14px; color:rgba(255,255,255,.55); padding:6px 0;
}
.sent-copy pre{
  margin:8px 0 0; padding:14px 16px; border-radius:10px;
  background:rgba(0,0,0,.22); color:rgba(255,255,255,.8);
  font:inherit; font-size:14.5px; line-height:1.7;
  white-space:pre-wrap; word-break:break-word;
}
.ask-warn{ color:var(--gold-soft) !important; }

.ask-manual{
  width:100%; padding:14px 16px; border-radius:10px;
  background:rgba(255,255,255,.09); border:1px solid var(--gold);
  color:#fff; font:inherit; font-size:15px; line-height:1.7;
  text-align:left; resize:vertical;
}

/* ── 푸터 ────────────────────────────────────────────────── */
.foot{ background:#141F25; color:rgba(255,255,255,.6); padding:56px 0 100px; }
.foot-in{ display:grid; grid-template-columns:250px 1fr; gap:36px; }
.foot-brand{ display:flex; flex-direction:column; gap:8px; }
.foot-brand b{ font-size:19px; color:#fff; letter-spacing:-0.035em; }
.foot-brand p{ font-size:14px; }
.foot-info p{ font-size:14px; margin-bottom:6px; }
.foot-info a{ color:var(--gold-soft); }
.disclaimer{
  margin-top:16px !important; padding-top:16px;
  border-top:1px solid rgba(255,255,255,.1);
  font-size:13px !important; color:rgba(255,255,255,.42); line-height:1.7;
}
.copy{ margin-top:14px !important; font-size:13px !important; color:rgba(255,255,255,.34); }
/* 관리자 링크 — 주소를 외우게 하지 않으려고 걸어 둡니다.
   방문자 눈은 뺏지 않게 죽여 두고, 마우스를 올렸을 때만 살아납니다. */
.foot-admin{ margin-top:10px !important; }
.foot-admin a{ font-size:12px; color:rgba(255,255,255,.18); transition:color .2s ease; }
.foot-admin a:hover, .foot-admin a:focus{ color:rgba(255,255,255,.55); }

/* ── 모바일 하단 고정 바 ─────────────────────────────────── */
.bar{
  position:fixed; inset:auto 0 0 0; z-index:90;
  display:none; gap:1px;
  background:var(--line);
  padding-bottom:env(safe-area-inset-bottom);
  box-shadow:0 -6px 24px rgba(23,35,42,.14);
}
.bar-btn{
  flex:1; min-height:62px;
  display:flex; align-items:center; justify-content:center; gap:7px;
  font-size:16px; font-weight:700; letter-spacing:-0.02em;
  background:var(--white); color:var(--ink);
}
.bar-btn svg{ width:19px; height:19px; fill:currentColor; flex:none; }
.bar-btn:active{ filter:brightness(.94); }
.bar-kko{ background:var(--kakao); color:var(--kakao-ink); }
.bar-go{ background:linear-gradient(135deg, var(--gold) 0%, var(--gold-deep) 100%); color:#fff; flex:1.5; }

/* ── 토스트 ──────────────────────────────────────────────── */
.toast{
  position:fixed; left:50%; bottom:96px; transform:translate(-50%, 14px);
  z-index:180; max-width:calc(100% - 40px);
  background:var(--ink); color:#fff;
  padding:14px 22px; border-radius:999px;
  font-size:15px; font-weight:500; text-align:center;
  opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease;
}
.toast.on{ opacity:1; transform:translate(-50%, 0); }

/* ── 스크롤 등장 ─────────────────────────────────────────── */

/* ============================================================
   반응형 — 넓은 쪽에서 좁은 쪽으로 순서를 지킵니다.
   순서가 뒤엉키면 좁은 화면에서 뒤에 온 넓은 규칙이 이깁니다.
   1000 → 860 → 700 → 560 → 380
   ============================================================ */

/* ── 1000px 이하 ─────────────────────────────────────────── */
@media (max-width: 1000px){
  .pgrid{ grid-template-columns:repeat(2, 1fr); }
  .devices{ grid-template-columns:repeat(2, 1fr); }
  .frees{ grid-template-columns:1fr 1fr; }
  .ways-l{ grid-template-columns:1fr 1fr; }
  .dev:nth-child(-n+2), .dev:nth-child(n+3){ grid-column:span 1; }
  .dev:nth-child(-n+2){ display:flex; flex-direction:column; }
  /* 가로형에서 쓰던 align-self:end 가 남아 있으면 세로 배치에서 오른쪽으로 붙습니다 */
  .dev:nth-child(-n+2) h3, .dev:nth-child(-n+2) p{
    align-self:stretch; margin-inline:22px;
  }
  .dev:nth-child(-n+2) h3{ margin-top:22px; margin-bottom:10px; }
  .dev:nth-child(-n+2) p{ margin-bottom:24px; }
  .dev:nth-child(-n+2) .dev-photo{
    aspect-ratio:3/2; height:auto; min-height:0;
    border-bottom:1px solid var(--line); border-right:0;
  }
  .dev:nth-child(-n+2) h3{ margin-top:22px; }
  .foot-in{ grid-template-columns:1fr; }
}

/* ── 860px 이하 : 여기서부터 '모바일' 로 봅니다 ──────────── */
@media (max-width: 860px){
  .nav-links, .nav-cta{ display:none; }
  .nav-toggle{ display:flex; }

  /* 모바일에서는 헤더를 처음부터 불투명하게. backdrop-filter 는 끕니다 —
     보급형 안드로이드에서 스크롤이 눈에 띄게 끊깁니다. */
  .nav{
    background:var(--ivory);
    backdrop-filter:none; -webkit-backdrop-filter:none;
    border-bottom-color:var(--line);
  }
  .nav.solid{
    background:var(--ivory);
    backdrop-filter:none; -webkit-backdrop-filter:none;
    box-shadow:0 2px 12px rgba(23,35,42,.06);
  }
  .nav .brand-name{ color:var(--ink); }
  .nav .bars, .nav .bars::before, .nav .bars::after{ background:var(--ink); }

  .grid-2{ grid-template-columns:1fr; }
  .owner{ grid-template-columns:1fr; gap:30px; }
  .owner-photo img{ max-width:300px; }
  .col-visual{ order:-1; }
  #visit .col-visual{ order:0; }
  .f-row{ grid-template-columns:1fr; }

  /* 하단 고정 바 자리를 비워 둡니다 (기기 아래 여백까지 더해서) */
  body{ padding-bottom:calc(62px + env(safe-area-inset-bottom)); }
  .bar{ display:flex; }
  .foot{ padding-bottom:40px; }

  /* 코스는 좁아지면 4단이 무너집니다. 제목·설명 / 조건·금액 두 줄로 */
  .course{
    grid-template-columns:1fr; gap:8px;
    padding:24px 4px;
  }
  .c-head{ grid-column:1; }
  .c-desc{ grid-column:1 / -1; }
  .c-meta{ grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:0 20px; }

  .sec{ padding:64px 0; }
  .sec-title{ margin-bottom:16px; }
  .sec-lead{ margin-bottom:32px; }
}

/* ── 700px 이하 ──────────────────────────────────────────── */
@media (max-width: 700px){
  .pgrid{ grid-template-columns:1fr; gap:14px; }
  .devices{ grid-template-columns:1fr; gap:14px; }
  .pcard-lead{ grid-template-columns:1fr; align-items:stretch; gap:14px; padding:26px 22px; }
  .pcard-lead .lead-head h3{ font-size:24px; }
}

/* ── 560px 이하 : 손안의 화면 ────────────────────────────── */
@media (max-width: 560px){
  /* 50~70대가 주로 보는 화면입니다. 본문을 줄이지 않습니다. */
  body{ font-size:17px; line-height:1.72; }
  .wrap{ width:calc(100% - 32px); }
  .wrap-narrow{ width:calc(100% - 32px); }

  .sec{ padding:56px 0; }
  .sec-title{ font-size:26px; line-height:1.36; }
  .sec-lead{ font-size:16px; margin-bottom:26px; }
  .kicker{ font-size:13px; margin-bottom:10px; }
  .body{ font-size:16.5px; }

  /* 히어로 — 첫 화면에서 제목·버튼이 한눈에 들어오게 */
  .hero{ min-height:auto; padding:calc(var(--nav-h) + 32px) 0 48px; }
  .hero-title{ font-size:35px; line-height:1.28; margin-bottom:16px; }
  .hero-sub{ font-size:16px; line-height:1.7; margin-bottom:26px; }
  .eyebrow{ margin-bottom:16px; font-size:13px; padding:6px 14px; }
  .hero-cta{ flex-direction:column; gap:10px; }
  .hero-cta .btn{ width:100%; }
  .hero-badges{ margin-top:22px; gap:8px; }
  .hero-badges li{ font-size:13px; padding:5px 12px; }
  .hero-down{ display:none; }

  /* 무거운 것 끄기 — 커다란 radial-gradient 를 계속 키웠다 줄이면
     스크롤 중에 프레임이 떨어집니다. 빛은 남기고 움직임만 뺍니다. */
  .hero-glow{ animation:none; width:min(760px, 150vw); }
  .photon-orb span{ animation:none; opacity:.25; }

  .sub-h{ font-size:19px; margin:32px 0 12px; }
  .lead-p{ font-size:17px; }
  .spec-bar{ height:38px; }
  .seg-grow b{ font-size:13px; }
  .spec-legend{ gap:6px 14px; }
  .spec-legend li{ font-size:13px; }
  .spectrum figcaption{ font-size:15.5px; padding:15px 16px; }

  .course{ padding:22px 4px; gap:8px 16px; }
  .course-first{ padding-inline:18px; }
  .c-head h3{ font-size:20px; }
  .c-desc{ font-size:16px; }
  .c-meta li{ font-size:14.5px; }

  .dev h3{ font-size:19px; margin:20px 20px 8px; }
  .dev p{ font-size:16px; margin:0 20px 22px; }

  .owner{ grid-template-columns:1fr; gap:26px; }
  .owner-photo img{ max-width:250px; }
  .owner-text{ text-align:left; }
  .owner-sign{ margin-top:22px; padding-top:18px; }
  .owner-tags li{ font-size:13px; }

  .ribbon-in{ flex-wrap:wrap; gap:10px 12px; padding:15px 0; }
  .ribbon-text{ flex:1 1 100%; order:2; font-size:15.5px; }
  .ribbon-ico{ order:1; }
  .ribbon-cta{ order:3; width:100%; }
  .call-line{ margin:-14px 0 28px; font-size:15px; }

  .ways{ margin-top:24px; }
  .ways-l{ grid-template-columns:1fr; gap:18px; }
  .ways-t{ font-size:19px; }

  .frees{ grid-template-columns:1fr; }
  .free-body{ padding:22px 20px 24px; }
  .free h3{ font-size:22px; }
  .free-desc{ font-size:16px; }
  .free-list{ gap:6px; }
  .space-tags{ gap:7px; }
  .space-tags li{ font-size:14px; padding:7px 14px; }
  .photo-slot{ aspect-ratio:1/1; }

  .empathy-grid{ gap:10px; }
  .empathy-grid li{ padding:18px 18px; font-size:16px; }
  .empathy-note{ margin-top:26px; font-size:16px; text-align:left; }

  .photon-card{ padding:28px 20px; }
  .photon-orb{ width:120px; height:120px; margin-bottom:26px; }

  .dcard{ padding:26px 22px; }
  .pcard{ padding:26px 22px; }
  .pcard h3{ font-size:21px; }
  .pdesc{ font-size:16px; }
  .plist li{ font-size:15px; }

  /* 진행 과정 — 세로 타임라인으로. 번호가 선으로 이어져 순서가 보입니다 */
  .flow{ grid-template-columns:1fr; gap:0; }
  .flow li{
    position:relative; padding:0 0 30px 60px;
  }
  .flow li:last-child{ padding-bottom:0; }
  .flow li::before{
    content:""; position:absolute; left:22px; top:46px; bottom:-4px;
    width:2px; background:linear-gradient(var(--gold-soft), rgba(168,72,53,.15));
  }
  .flow li:last-child::before{ display:none; }
  .fnum{
    position:absolute; left:0; top:0;
    width:44px; height:44px; margin-bottom:0; font-size:17px;
  }
  .flow h3{ font-size:19px; margin-bottom:8px; padding-top:9px; }
  .flow p{ font-size:16px; }

  .vcard{ padding:26px 22px; gap:16px; }
  .vcard p{ font-size:16px; }

  .faq summary{ font-size:16.5px; padding:19px 46px 19px 20px; }
  .faq summary::after{ right:22px; }
  .faq-a{ padding:0 20px 20px; }
  .faq-a p{ font-size:16px; }

  .visit-dl > div{ flex-direction:column; gap:3px; padding:14px 0; }
  .visit-dl dt{ width:auto; font-size:13px; color:var(--ink-3); letter-spacing:.02em; }
  .visit-dl dd{ font-size:16.5px; }
  .visit-btns{ gap:8px; }
  .visit-btns .btn{ flex:1 1 calc(50% - 4px); padding:0 14px; font-size:15px; }
  .landmark{ font-size:16px; padding:15px 16px; }

  .quick-btns{ flex-direction:column; gap:10px; margin-bottom:28px; }
  .quick-btns .btn{ flex:1 1 auto; width:100%; }
  .ask{ padding:22px 18px; gap:16px; }

  .foot{ padding:44px 0 36px; }
  .foot-in{ gap:24px; }
  .toast{ bottom:calc(76px + env(safe-area-inset-bottom)); font-size:14.5px; padding:12px 18px; }
}

/* ── 380px 이하 : 아이폰 SE 등 ───────────────────────────── */
@media (max-width: 380px){
  .wrap, .wrap-narrow{ width:calc(100% - 24px); }
  .hero-title{ font-size:31px; }
  .sec-title{ font-size:24px; }
  .bar-btn{ font-size:15px; }
  .visit-btns .btn{ flex:1 1 100%; }
}

/* ── 가로로 눕혔을 때 히어로가 화면을 다 먹지 않게 ───────── */
@media (max-height: 520px) and (orientation: landscape){
  .hero{ min-height:auto; padding:calc(var(--nav-h) + 28px) 0 40px; }
  .hero-badges{ margin-top:20px; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  html{ scroll-behavior:auto; }
}
