:root {
    --maxw: 1200px;
    --gap: 16px;
    --brand: #111;
    --accent: #ff6b6b;
    --line: #eee;
    --fg: #111;
    --muted: #666;
}

* {
    box-sizing: border-box
}

body {
    margin: 0;
    font-family: system-ui, -apple-system, Segoe UI, Roboto, 'Noto Sans KR', sans-serif;
    color: var(--fg);
    background: #fff
}

a {
    color: inherit;
    text-decoration: none
}

img {
    display: block;
    max-width: 100%
}

.container {
    max-width: var(--maxw);
    margin: 0 auto;
    padding: 0 var(--gap)
}

/* header */
.topbar {
    background: #fff;
    border-bottom: 1px solid var(--line);
    position: sticky;
    top: 0;
    z-index: 20
}

.nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 68px;
    gap: 20px
}

.brand {
    font-weight: 800;
    font-size: 20px
}

.menu {
    display: flex;
    gap: 18px;
    flex-wrap: wrap
}

.menu a {
    padding: 10px 12px;
    border-radius: 8px
}

.menu a.active, .menu a:hover {
    background: #f6f6f6
}

.cta {
    padding: 9px 12px;
    border-radius: 999px;
    border: 1px solid var(--line)
}

/* hero */
.hero {
    background: #fff5f5;
    border-bottom: 1px solid var(--line)
}

.hero .wrap {
    display: grid;
    grid-template-columns:1.2fr 1fr;
    gap: 24px;
    align-items: center;
    padding: 56px 0
}

.hero h1 {
    font-size: clamp(26px, 4vw, 40px);
    margin: 0 0 10px
}

.hero p {
    color: var(--muted);
    margin: 0
}

.mock {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    aspect-ratio: 16/10
}

/* sections */
.section {
    padding: 56px 0
}

.section h2 {
    margin: 0 0 14px;
}

.grid {
    display: grid;
    gap: 18px;
    grid-template-columns:repeat(auto-fill, minmax(240px, 1fr))
}

.card {
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    display: flex;
    flex-direction: column
}

.card img {
    aspect-ratio: 4/3;
    object-fit: cover
}

.meta {
    padding: 12px;
    display: grid;
    gap: 6px
}

.badge {
    display: inline-block;
    font-size: 12px;
    padding: 2px 8px;
    border-radius: 999px;
    background: #ffe3e3;
    color: #a33
}

.price {
    color: var(--accent);
    font-weight: 800
}

.btn {
    padding: 8px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    display: inline-block
}

.btn.primary {
    background: var(--brand);
    border-color: var(--brand);
    color: #fff
}

.muted {
    color: var(--muted)
}

footer {
    border-top: 1px solid var(--line);
    padding: 36px 0;
    color: var(--muted);
    font-size: 14px
}

@media (max-width: 920px) {
    .hero .wrap {
        grid-template-columns:1fr;
        padding: 40px 0;
    }
    .section {
        padding: 40px 0;
    }
    .grid {
        gap: 16px;
    }
    .mock {
        max-width: 100%;
        margin: 0 auto;
    }
}

/* === Impact Hero (CharmingBalloon-style) === */
.hero-cover{position:relative;min-height:68vh;display:flex;align-items:flex-end;background:#000}
.hero-cover::before{content:"";position:absolute;inset:0;background-image:var(--hero, none);background-size:cover;background-position:center}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.55) 70%)}
.hero-inner{position:relative;padding:56px 0}
.hero-text{color:#fff;max-width:720px}
.hero-text h1{font-size:clamp(28px,6vw,64px);line-height:1.08;margin:0 0 12px;font-weight:800;letter-spacing:-.3px}
.hero-text .lead{font-size:clamp(16px,2.4vw,22px);opacity:.95;margin:0 0 18px}

/* CTA grid buttons */
.cta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:560px}
.cta-pill{display:flex;align-items:center;justify-content:center;padding:14px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.6);font-weight:700;text-align:center;backdrop-filter:saturate(140%) blur(6px)}
.cta-pill.solid{background:#10b981;border-color:#10b981;color:#fff}
.cta-pill.solid.alt{background:#2563eb;border-color:#2563eb}
.cta-pill.outline{background:rgba(255,255,255,.1);color:#fff}
.cta-pill:focus,.cta-pill:hover{transform:translateY(-1px);transition:.15s ease}

/* Mobile safety */
@media (max-width:680px){
  .hero-cover{min-height:72vh}
  .hero-inner{padding:32px 0 48px}
  .cta-grid{grid-template-columns:1fr; max-width: 100%}
  .hero-text{padding: 0 8px}
  .hero-text h1{font-size: clamp(24px, 5vw, 48px); line-height: 1.2}
  .hero-text .lead{font-size: clamp(15px, 2vw, 20px); line-height: 1.4; margin-bottom: 24px}
  .cta-pill{padding: 12px 14px}
}
/* === Responsive Navigation (CSS-only toggle) === */
.nav-toggle{ display:none; }
.menu-toggle{ display:none; background:none; border:none; padding:0; width:40px; height:40px; border-radius:8px; align-items:center; justify-content:center; }
.menu-toggle .bar{ display:block; width:22px; height:2px; background:#333; margin:3px 0; border-radius:2px; }

@media (max-width:900px){
  .topbar .nav{ position:relative; }
  .cta{ display:none; }
  .menu-toggle{ display:inline-flex; border:1px solid var(--line); }
  .menu{ display:none; position:absolute; top:68px; left:12px; right:12px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:8px 12px; box-shadow:0 8px 24px rgba(0,0,0,.08); flex-direction:column; gap:4px; }
  .menu a{ display:block; padding:12px 10px; border-radius:8px; }
  .menu a:hover{ background:#f6f6f6; }
  /* checkbox hack: when checked, show menu */
  .nav-toggle:checked ~ .menu{ display:flex; }
}
/* === Mobile Hamburger — Charming style === */
/* Button look inspired by CharmingBalloon: subtle border, rounded, clean bars */
.menu-toggle{position:relative}
.menu-toggle .bar{transition:transform .18s ease, opacity .18s ease}

@media (max-width:900px){
  /* prettier button */
  .menu-toggle{background:#fff;border:1px solid var(--line);box-shadow:0 2px 6px rgba(0,0,0,.06);width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center}
  .menu-toggle:hover{background:#fafafa}
  .menu-toggle .bar{width:20px;height:2px;background:#222;margin:3px 0;border-radius:2px}

  /* dropdown panel with soft motion */
  .menu{opacity:0;transform:translateY(-6px);transition:opacity .18s ease, transform .18s ease}
  .nav-toggle:checked ~ .menu{opacity:1;transform:none}

  /* morph bars to X when opened */
  .nav-toggle:checked + .menu-toggle .bar:nth-child(1){transform:translateY(5px) rotate(45deg)}
  .nav-toggle:checked + .menu-toggle .bar:nth-child(2){opacity:0}
  .nav-toggle:checked + .menu-toggle .bar:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
}

/* === Mobile Drawer (final override) === */
@media (max-width:900px){
  /* Hide cramped CTA, keep prettier hamburger */
  .cta{display:none!important}
  .menu-toggle{display:inline-flex}

  /* Off-canvas left drawer */
  .menu{
    display:block!important;               /* override earlier display:none */
    position:fixed; inset:0 auto 0 0;      /* left:0, full height */
    width:min(78vw, 320px);
    background:#fff; border-right:1px solid var(--line);
    transform:translateX(-100%);           /* hidden by default */
    transition:transform .22s ease;
    padding:8px 12px 16px; box-shadow:0 10px 30px rgba(0,0,0,.12);
    z-index:1001; overflow:auto;
  }
  .drawer-header{display:flex;align-items:center;justify-content:space-between;padding:12px 4px 10px;border-bottom:1px solid var(--line);margin-bottom:8px}
  .drawer-close{font-size:22px;line-height:1;width:36px;height:36px;display:grid;place-items:center;border-radius:10px;cursor:pointer;border:1px solid var(--line);color:#333;background:#fff}
  .drawer-close:hover{background:#fafafa}
  .menu a{display:block;padding:12px 4px;border-radius:8px}
  .menu a:hover{background:#f6f6f6}

  /* Dim overlay */
  .nav-dim{position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:1000}

  /* Open state via checkbox */
  .nav-toggle:checked ~ .menu{transform:none}
  .nav-toggle:checked ~ .nav-dim{opacity:1;pointer-events:auto}
}

/* === Mobile Drawer — Minimal text-only style (final) === */
@media (max-width:900px){
  /* keep desktop header intact; mobile shows hamburger only */
  .cta{display:none!important}
  .menu-toggle{display:inline-flex}

  /* Drawer: left off-canvas, no animation, no shadow */
  .menu{
    display:block!important;
    position:fixed; inset:0 auto 0 0;
    width:min(76vw, 320px);
    background:#fff;
    border-right:1px solid var(--line);
    transform:translateX(-100%);
    transition:none;                 /* instant open/close */
    padding:12px 16px 20px;
    box-shadow:none;
    z-index:1001; overflow:auto;
  }
  /* hide any leftover drawer header if present */
  .drawer-header, .drawer-close{display:none!important}

  /* Plain text menu items: chunky spacing, no hover bg */
  .menu a{
    display:block;
    padding:14px 0;                 /* vertical rhythm */
    font-size:17px;                 /* readable size */
    font-weight:500;                /* medium weight */
    letter-spacing:.1px;
    border-radius:0;
  }
  .menu a + a{ margin-top:2px; }    /* tiny gap between items */
  .menu a:hover{ background:transparent; text-decoration:underline; }

  /* Dim overlay (click to close) */
  .nav-dim{
    display:block; position:fixed; inset:0;
    background:rgba(0,0,0,.38);     /* slightly lighter dim */
    opacity:0; pointer-events:none;
    transition:opacity .12s linear; /* subtle fade only */
    z-index:1000;
  }
  /* Open state */
  .nav-toggle:checked ~ .menu{ transform:none; }
  .nav-toggle:checked ~ .nav-dim{ opacity:1; pointer-events:auto; }
}

/* === FINAL OVERRIDE v2 — drawer below header, text-only, index untouched === */
@media (max-width:900px){
  .topbar{ z-index:1200 !important; }
  .menu-toggle{ display:inline-flex !important; }
  .cta{ display:none !important; }

  /* Drawer stays BELOW header so brand/logo is always visible */
  .menu{
    position:fixed !important;
    top:68px !important; bottom:0 !important; left:0 !important; right:auto !important;
    width:min(76vw, 320px) !important;
    display:block !important;
    transform:translateX(-100%) !important;
    background:#fff !important;
    border-right:1px solid var(--line) !important;
    box-shadow:none !important;
    padding:12px 16px 20px !important;
    overflow:auto !important;
    transition:none !important; /* instant open/close per your request */
  }

  /* Dim overlay starts under the header */
  .nav-dim{
    display:block !important;
    position:fixed !important;
    top:68px !important; left:0 !important; right:0 !important; bottom:0 !important;
    background:rgba(0,0,0,.38) !important;
    opacity:0; pointer-events:none; transition:opacity .12s linear;
    z-index:1000;
  }

  /* Open state via checkbox (no JS) */
  .nav-toggle:checked ~ .menu{ transform:none !important; }
  .nav-toggle:checked ~ .nav-dim{ opacity:1 !important; pointer-events:auto !important; }

  /* Plain text menu items with subtle tap feedback */
  .menu a{
    display:block !important;
    padding:14px 0 !important;
    font-size:17px !important; font-weight:500 !important; letter-spacing:.1px;
    border-radius:0 !important; text-decoration:none !important;
    transition:background-color .1s ease, transform .1s ease;
  }
  .menu a:hover{ text-decoration:underline !important; }
  .menu a:active{ transform:translateX(3px) !important; background:#f2f2f2 !important; }
}


/* --- Inquiry Page Styles --- */
.naver-form-wrapper {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0,0,0,0.06);
    border: 1px solid var(--line);
    margin-bottom: 24px;
}

.contact-box {
    background: #f9f9f9;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--line);
    max-width: 560px;
}

.contact-box p {
    margin: 10px 0;
    color: var(--fg);
}

@media (max-width: 768px) {
    .naver-form-wrapper iframe {
        height: 680px;
    }
}