/* DANOVI website v2 — RED POINT
   Accent rule: brand red #ee4028 is the ONLY accent. It appears in exactly
   five places — scroll progress, nav underline, primary button, card rule,
   footer segment. Nothing else is colored. */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{word-break:keep-all;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-weight:400;line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--brand-red);color:#fff}
.dn-wrap{max-width:var(--max);margin:0 auto;padding:0 32px}
@media (max-width:720px){.dn-wrap{padding:0 20px}}

/* ── header ─────────────────────────────── */
.dn-header{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(255,255,255,.82);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid transparent;transition:border-color .3s ease,background .3s ease}
.dn-header.scrolled{border-bottom-color:var(--line)}
.dn-nav{display:flex;align-items:center;justify-content:space-between;height:72px}
.dn-logo{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:700;letter-spacing:.22em;color:var(--ink);text-decoration:none}
.dn-logo img{height:30px;width:auto}
.dn-logo span{line-height:1;padding-top:1px}
.dn-menu{display:flex;gap:34px;font-size:14.5px;color:var(--ink-2);align-items:center}
.dn-menu a{position:relative;padding:4px 0;transition:color .2s;white-space:nowrap}
.dn-menu a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform .32s cubic-bezier(.4,0,.2,1)}
.dn-menu a:hover,.dn-menu a.on{color:var(--ink)}
.dn-menu a:hover::after,.dn-menu a.on::after{transform:scaleX(1);transform-origin:left}
.dn-menu a.cta{color:var(--ink);font-weight:500;border:1px solid var(--ink);padding:6px 16px;border-radius:999px;transition:.24s ease}
.dn-menu a.cta::after{display:none}
.dn-menu a.cta:hover{background:var(--red);border-color:var(--red);color:#fff}
/* scroll progress — 2px red, the brand mark's own line */
.dn-progress{position:absolute;left:0;bottom:-1px;height:2px;background:var(--red);width:100%;transform:scaleX(0);transform-origin:left;transition:transform .1s linear}
.dn-burger{display:none;width:26px;height:16px;position:relative;cursor:pointer;background:none;border:0}
.dn-burger span{position:absolute;left:0;width:100%;height:1.5px;background:var(--ink);transition:.3s}
.dn-burger span:nth-child(1){top:0}.dn-burger span:nth-child(2){top:7px}.dn-burger span:nth-child(3){top:14px}
@media (max-width:900px){
  .dn-menu{position:fixed;inset:72px 0 auto 0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 24px;transform:translateY(-12px);opacity:0;pointer-events:none;transition:.28s ease}
  .dn-menu.open{transform:none;opacity:1;pointer-events:auto}
  .dn-menu a{padding:13px 0;font-size:16px;border-bottom:1px solid var(--line)}
  .dn-menu a::after{display:none}
  .dn-menu a.cta{border:0;padding:15px 0;border-radius:0;color:var(--red)}
  .dn-menu a.cta:hover{background:none;color:var(--red)}
  .dn-burger{display:block}
}

/* ── eyebrow ────────────────────────────── */
.dn-eyebrow{font-size:12px;letter-spacing:.34em;color:var(--ink-2);margin-bottom:26px;display:flex;align-items:center;gap:12px}
.dn-eyebrow::before{content:"";width:26px;height:2px;background:var(--red);flex:none}

@keyframes dnFade{from{opacity:0}to{opacity:1}}

/* ── buttons ────────────────────────────── */
.dn-btn{white-space:nowrap;display:inline-flex;align-items:center;gap:9px;padding:14px 26px;border-radius:999px;font-size:14.5px;font-weight:500;border:1px solid var(--ink);transition:.24s ease;cursor:pointer}
.dn-btn.solid{background:var(--red);border-color:var(--red);color:#fff}
.dn-btn.solid:hover{background:var(--red-deep);border-color:var(--red-deep);transform:translateY(-2px)}
.dn-btn.ghost:hover{background:var(--paper);transform:translateY(-2px)}
.dn-btn .arw{transition:transform .24s ease}
.dn-btn:hover .arw{transform:translateX(4px)}


/* ── sections ───────────────────────────── */
section{padding:104px 0}
@media (max-width:720px){section{padding:72px 0}}
.dn-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:12px}
.dn-sec-head h2{font-size:clamp(20px,2.4vw,27px);font-weight:700;letter-spacing:-.01em}
.dn-sec-tags{font-size:14px;color:var(--ink-2);letter-spacing:.01em}
.dn-more{font-size:14px;color:var(--ink-2);display:inline-flex;align-items:center;gap:7px;border-bottom:1px solid var(--line);padding-bottom:3px;transition:.22s}
.dn-more:hover{color:var(--red);border-color:var(--red)}
.dn-more .arw{transition:transform .22s}
.dn-more:hover .arw{transform:translateX(4px)}

/* 리빌 — 기본은 "보임". 화면 밖 요소만 .dn-pre로 잠시 숨겼다가 .in으로 등장시킵니다.
   JS가 실패해도 콘텐츠가 사라지지 않도록 한 구조입니다. */
.dn-reveal{opacity:1;transform:none}
.dn-reveal.dn-pre{opacity:0;transform:translateY(22px)}
.dn-reveal.in{opacity:1;transform:none;transition:opacity .75s ease,transform .75s cubic-bezier(.22,1,.36,1)}
.dn-reveal.dn-pre.in{transition:opacity .75s ease,transform .75s cubic-bezier(.22,1,.36,1)}

/* ── 레이아웃 기준 (모든 페이지가 공유) ──────
   페이지별 CSS 파일에 두면 그 파일을 안 불러온 페이지에서 값이 사라집니다.
   베이스인 여기에 둡니다. */
:root{--sec:64px}
@media (max-width:720px){:root{--sec:40px}}

/* 푸터 · 내비 CTA는 f1-sections.css, 카카오 버튼은 a1-about.css 에서 정의합니다. */

/* 접근성: 모션을 줄이면 애니메이션을 끄고 곧바로 최종 상태로 보여줍니다. */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .dn-reveal,.dn-reveal.dn-pre{opacity:1;transform:none}
}


/* ── 밀도 조정 (f1-patch 병합) ───────────── */
/* DANOVI — 기본 레이아웃 (조밀·실용 버전) */

section{padding:72px 0}
@media (max-width:720px){section{padding:52px 0}}
.dn-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:0}
.dn-sec-head h2{font-size:clamp(18px,2vw,22px);font-weight:700;letter-spacing:-.01em}
.dn-sec-tags{font-size:13px;color:var(--ink-2);margin-top:6px}
