/* DN Alpine palette. White object tiles stay neutral; color signals purpose.
   Blue = action / adult, terracotta = first steps, teal = progression / guidance.
   Navy anchors seasonal storytelling; snow and warm paper separate content. */
:root {
  --ink:#203249; --muted:#56677b; --blue:#245dcc; --paper:#fff;
  --ice:#edf4fc; --lime:#e8f4ef; --line:#dce4ed;
  --navy:#18354f; --warm:#f8f2e9; --sun:#ffc596;
  --kids:#9a4b2d; --kids-soft:#fff0e5;
  --adult:#245dcc; --adult-soft:#edf3ff;
  --advanced:#17685e; --advanced-soft:#e8f4ef;
}
body { color:var(--ink); background:var(--paper); }
.peach,.sky,.mint,.lilac,.sand,.rose { background:#fff; color:var(--muted); }
.button,.button.outline,.button.lime { background:#fff; color:var(--ink); border:1px solid #bdcbd9; box-shadow:none; }
.button:hover,.button.outline:hover,.button.lime:hover { background:var(--ice); color:var(--blue); border-color:var(--blue); }
.button.blue,.nav .button,.quick-book .button,.button[href*="booking.html"],.mobile-cta a {
  background:var(--blue); border:1px solid var(--blue); color:#fff; box-shadow:0 4px 12px #245dcc18;
}
.button.blue:hover,.nav .button:hover,.quick-book .button:hover,.button[href*="booking.html"]:hover,.mobile-cta a:hover {
  background:#194aa9; border-color:#194aa9; color:#fff;
}
.button .arrow,.button>span[aria-hidden],.quick-book .button>span { color:inherit; }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:3px solid var(--blue); outline-offset:4px; box-shadow:0 0 0 2px #fff;
}
.gentle-link,.text-link { color:var(--blue); }
.gentle-link:hover,.text-link:hover { color:#194aa9; text-decoration:underline; text-underline-offset:4px; }
.mini-label,.eyebrow { color:#416480; }
.season-bar { background:var(--navy); color:#e0ebf5; border:0; font-size:11px; }
.season-bar strong { color:var(--sun); }
.site-header { background:#fffffff5; border-color:var(--line); }
.brand-icon { color:var(--navy); }
.brand-icon:after,.site-footer .brand-icon:after { background:#df885b; }
.nav [aria-current=page] { color:var(--blue); }
.nav [aria-current=page]:after { content:''; display:block; width:16px; height:3px; border-radius:3px; background:var(--blue); margin:5px auto -8px; }
.menu-toggle { color:var(--ink); background:#fff; border-color:#b9c9d9; }
.welcome-story { background:var(--warm); border:1px solid #eee4d7; border-radius:24px; }
.soft-kicker { color:#895237; letter-spacing:.09em; }
.soft-kicker>span { color:#ba5a32; }
.welcome h1 { color:var(--navy); }
.welcome h1 em { color:var(--blue); }
.welcome-copy>p { color:#536171; }
.welcome-tags { color:#596779; }
.welcome-tags span+span { border-color:#cfc9bf; }
.welcome-copy .button { box-shadow:0 5px 16px #245dcc1c; }
.photo-sticker { display:none; }
.welcome-photo figcaption { background:#fffffff0; color:var(--navy); }
.welcome-photo figcaption span { color:#526478; font-size:10px; }
.category-nav { max-width:1000px; margin-top:30px; margin-bottom:34px; gap:24px; }
.category-icon { background:#fff; width:82px; height:78px; border-radius:20px; border:1px solid #e2e8ef; box-shadow:0 4px 14px #1d385c07; }
.category-icon img { display:block; width:69px; height:69px; object-fit:contain; filter:drop-shadow(0 3px 2px #16346609); }
.category-nav a:hover .category-icon { border-color:#9bb9e6; box-shadow:0 6px 20px #25375514; }
.category-nav b { font-weight:650; font-size:12px; color:var(--ink); }
.category-nav a:nth-child(-n+3) b:before { content:''; display:inline-block; width:5px; height:5px; border-radius:50%; margin-right:6px; vertical-align:2px; background:var(--kids); }
.category-nav a:nth-child(2) b:before { background:var(--adult); }
.category-nav a:nth-child(3) b:before { background:var(--advanced); }
.discovery { background:var(--ice); border-color:#cbdcf0; box-shadow:0 7px 22px #24486908; }
.discovery .mini-label { color:#385f8c; }
.discover-hint,.discovery-note { color:#53677f; }
.quick-field { background:#fff; border-color:#b8c8da; }
.quick-field label { color:#52677e; }
.quick-field select,.quick-field input { color:var(--ink); }
.quick-field:focus-within { border-color:var(--blue); }
/* Programs retain white cards and object illustrations. Color repeats in labels and detail tabs. */
.experience-card { --course:var(--kids); --course-soft:var(--kids-soft); border-color:var(--line); border-top:3px solid var(--course); box-shadow:0 3px 14px #20324905; }
.experience-card:nth-child(2) { --course:var(--adult); --course-soft:var(--adult-soft); }
.experience-card:nth-child(3) { --course:var(--advanced); --course-soft:var(--advanced-soft); }
.experience-card:hover { border-color:var(--course); box-shadow:0 10px 28px #20324912; }
.experience-art { background:#fff; color:var(--course); border-bottom:1px solid #edf0f4; height:194px; padding:25px 24px; }
.experience-art:after { content:''; position:absolute; right:10px; top:9px; width:132px; height:132px; border-radius:50%; background:var(--course-soft); z-index:0; }
.experience-art>span:first-child { color:var(--course); font-size:12px; }
.experience-art>b { color:var(--ink); font-size:15px; max-width:100%; line-height:1.6; z-index:2; font-weight:600; word-break:keep-all; }
.art-orbit { background:none; width:114px; height:114px; right:18px; top:16px; transform:none; border-radius:0; }
.art-orbit img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 7px 4px #2239550a); }
.art-slope { display:none; }
.experience-info .mini-label { display:inline-block; background:var(--course-soft); color:var(--course); padding:3px 9px; border-radius:6px; font-size:11px; }
.experience-info h3 { color:var(--ink); margin-top:10px; }
.experience-bottom { border-color:#e4eaf1; }
.experience-bottom small { color:var(--muted); }
.circle-arrow { background:var(--course-soft); color:var(--course); border:0; }
.finder { background:#f5f7fa; border:1px solid var(--line); }
.finder-form select { border-color:#b8c8da; color:var(--ink); }
.finder-result { color:var(--muted); }
.finder-result a { color:var(--blue); }
.season-feature { background:var(--navy); border:1px solid var(--navy); position:relative; overflow:hidden; }
.season-feature .mini-label { color:var(--sun); }
.season-feature h2 { color:#fff; }
.season-feature p { color:#d6e3ef; }
.season-doodle { background:#fff; border:0; transform:none; }
.season-doodle img { width:64px; height:64px; object-fit:contain; }
.season-feature .button { background:#fff; color:var(--navy); border-color:#fff; }
.season-feature .button:hover { background:#e6f0ff; }
.meet-card { border-color:var(--line); }
.meet-avatar { background:#edf3fb; color:#335d8a; }
.meet-card:nth-child(2) .meet-avatar { background:var(--warm); color:#8b5437; }
.meet-card:nth-child(3) .meet-avatar { background:var(--advanced-soft); color:var(--advanced); }
.meet-avatar span { color:inherit; font-size:7px; }
.meet-card .mini-label { color:#526478; }
.source-caption { color:#5a6c7d; font-size:11px; }
.journal-section { background:var(--warm); border-top:1px solid #eee6da; border-bottom:1px solid #eee6da; }
.journal-section .eyebrow,.journal-mark { color:#88583d; }
.note-card { background:#fff; border-color:#e3dcd0; }
.note-visual { background:#fff; border-bottom:1px solid #ece7df; height:130px; }
.note-visual img { width:88px; height:88px; object-fit:contain; }
.note-visual>span { font-family:inherit; font-style:normal; font-size:46px; opacity:1; font-weight:300; color:#b99c80; }
.note-card summary>.mini-label { color:#895237; }
.note-open { color:#59697b; }
.note-open b { color:var(--blue); }
.resort-card { background:#f0f5fc; border:1px solid #cddded; }
.resort-card.mint { background:var(--advanced-soft); border-color:#c8e1d6; }
.resort-card.mint .mini-label,.resort-card.mint .gentle-link { color:var(--advanced); }
.resort-card>img { width:96px; height:96px; object-fit:contain; flex:none; }
.faq-section { background:#f7f9fc; }
.faq-list summary:after { color:var(--blue); }
.faq-list details { border-color:#d7e1eb; }
.faq-list details[open] summary { color:var(--blue); }
.closing { background:#e7f2ed; border-top:1px solid #cee1d8; }
.closing .eyebrow { color:var(--advanced); }
.closing h2 { color:#214c47; }
.closing p { color:#475f5e; }
.site-footer { background:#fff; }
.footer-bottom { color:#5b6c7f; }
.footer-contact a { color:var(--navy); }
.mobile-cta { background:#fffffff5; color:var(--ink); border-color:#cbd8e6; }
/* Shared detail pages and consultation. */
.page-intro { background:#edf3fb; border-bottom:1px solid #d8e4f2; }
.page-intro h1 { color:var(--navy); }
.page-intro .eyebrow,.breadcrumbs a { color:#395d85; }
.tab-button { background:#fff; border-color:#b9c8d8; color:#4b6078; }
.tab-button[aria-pressed=true] { background:var(--blue); border-color:var(--blue); color:#fff; box-shadow:none; }
#lesson-tabs [data-program=kids][aria-pressed=true] { background:var(--kids); border-color:var(--kids); }
#lesson-tabs [data-program=advanced][aria-pressed=true] { background:var(--advanced); border-color:var(--advanced); }
.lesson-detail { --course:var(--kids); --course-soft:var(--kids-soft); border-color:var(--line); }
.lesson-detail[data-program=adult] { --course:var(--adult); --course-soft:var(--adult-soft); }
.lesson-detail[data-program=advanced] { --course:var(--advanced); --course-soft:var(--advanced-soft); }
.lesson-summary { background:var(--course-soft); border-top:3px solid var(--course); }
.lesson-summary .eyebrow { color:var(--course); }
.lesson-summary p { color:#495e72; }
.coach-top,.coach-card:nth-child(3n+2) .coach-top,.coach-card:nth-child(3n+3) .coach-top { background:#f0f5fb; }
.coach-card[data-resort="용평"] .coach-top { background:var(--advanced-soft); }
.coach-monogram { background:#fff; color:#3b6288; border:1px solid #d2dfed; }
.coach-card[data-resort="용평"] .coach-monogram { color:var(--advanced); border-color:#bfdace; }
.coach-role { color:#3b5b7b; }
.tag { background:var(--adult-soft); color:#315681; }
.team-note,.prep-card { background:#f7f9fc; border-color:var(--line); }
.comparison thead th { background:var(--navy); color:#fff; }
.comparison tbody th { background:#f0f5fc; }
.summary-card { background:var(--ice); border-color:#cadbed; border-top:3px solid var(--blue); }
.summary-card p { color:#4d627a; }
.field input,.field select,.field textarea { background:#fff; border-color:#a8bbcf; color:var(--ink); }
.field small { color:#55687c; }
.progress { background:#f1f5fb; }
.progress-item { color:#54667d; }
.progress-item.active { color:var(--blue); }
.progress-item.active b { background:var(--blue); color:#fff; }
.progress-item.complete { color:var(--advanced); }
.progress-item.complete b { background:var(--advanced); color:#fff; }
.review-summary { background:#f3f7fc; }
.message-panel { background:var(--advanced-soft); border-color:#bcd6cc; }
.status-message { color:var(--advanced); }
@media(max-width:640px) {
  .season-bar { font-size:10px; }
  .welcome-story { border-radius:20px; }
  .welcome-copy>p { font-size:14px; }
  .welcome-photo figcaption span { font-size:10px; }
  .category-nav { gap:18px 10px; }
  .category-icon { width:74px; height:70px; border-radius:18px; }
  .category-icon img { width:61px; height:61px; }
  .category-nav b { font-size:12px; }
  .quick-field { padding:10px 11px; }
  .quick-field label { font-size:11px; }
  .quick-field select,.quick-field input { font-size:16px; min-height:30px; }
  .quick-book { grid-template-columns:1fr; }
  .quick-book .button { height:49px; font-size:14px; }
  .discovery-note { font-size:11px; }
  .experience-art { height:160px; }
  .experience-art:after { width:120px; height:120px; right:15px; top:5px; }
  .art-orbit { width:119px; height:119px; top:2px; right:16px; }
  .experience-art>b { font-size:14px; max-width:100%; }
  .resort-card>img { width:72px; height:72px; }
  .season-doodle { display:none; }
  .note-visual { height:118px; }
  .note-visual img { width:81px; height:81px; }
  .finder-form select { font-size:16px; }
  .finder-form { grid-template-columns:1fr; }
  .mobile-cta a { min-height:44px; display:inline-flex; align-items:center; }
  .progress-item { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) { .category-icon,.experience-card,.button { transition:none; } }
