/* Matsuri Trip design system • color / typography / spacing
   Inspired by the video's rule-based design approach, not a copied template.
   Pretendard Variable: SIL Open Font License (orioncactus/pretendard).
   System fonts remain the fallback if the CDN is unavailable. */
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.css");

:root {
  --ds-font: "Pretendard Variable","Pretendard","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  --ds-ink: #293047;
  --ds-green: #b64265;
  --ds-green-hover: #9e3456;
  --ds-rose: #c45172;
  --ds-rose-soft: #fff0f3;
  --ds-mist: #faf8f7;
  --ds-line: #eadfe3;
  --ds-shadow-sm: 0 2px 10px rgba(25,54,44,.055);
  --ds-shadow-md: 0 12px 32px rgba(25,54,44,.105);
  --ds-radius-sm: 8px;
  --ds-radius-md: 12px;
  --ds-radius-lg: 18px;
  --ds-space-1: 4px;
  --ds-space-2: 8px;
  --ds-space-3: 12px;
  --ds-space-4: 16px;
  --ds-space-6: 24px;
  --ds-space-8: 32px;
  --ds-space-12: 48px;
}
html,body,button,input,select,textarea {font-family:var(--ds-font)}
body {font-size:16px;line-height:1.5;letter-spacing:-.012em;word-break:keep-all}
button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent }
:where(button,a,input,select,textarea,summary):focus-visible {
  outline:3px solid #d08d4e !important;
  outline-offset:3px;
}
button,input,select {transition:background-color .16s,border-color .16s,box-shadow .16s,color .16s}
::selection {background:#f5c9d5;color:#203b37}

/* Home: soft cherry blossom cues, a clear reading hierarchy, restrained motion. */
.page-home .hero{position:relative;isolation:isolate}
.page-home .hero::before{
  content:"";position:absolute;inset:8% auto 10% -9%;width:65%;
  border-radius:50%;background:radial-gradient(ellipse,#fbe9edb8 0%,#fbe9ed52 41%,transparent 73%);
  z-index:-1;pointer-events:none
}
.page-home .hero-copy{max-width:510px}
.page-home .eyebrow{font-size:12px;letter-spacing:.105em;font-weight:750;color:var(--ds-green)}
.page-home .hero-copy>.eyebrow{
  display:inline-flex;align-items:center;gap:9px;padding:8px 13px;
  margin-bottom:24px;border-radius:999px;background:#fcecf0;color:#98425d;
  border:1px solid #f5d7e0
}
.page-home .hero-copy>.eyebrow::before{content:"✿";font-size:15px;line-height:1;color:#bd5b7c}
.page-home .hero h1{font-weight:760;letter-spacing:-.065em;line-height:1.24;font-size:clamp(34px,3.8vw,52px)}
.page-home .intro{line-height:1.82;font-weight:430;letter-spacing:-.018em;margin-top:24px;margin-bottom:21px}
.page-home .hero-points{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 29px}
.page-home .hero-points span{
  font-size:12px;line-height:1.35;font-weight:650;
  display:inline-flex;align-items:center;padding:7px 11px;
  border:1px solid #e3e8df;border-radius:999px;
  background:rgba(255,255,255,.82);color:#45635b
}
.page-home .hero .button,.page-home .closing .button{
  box-shadow:0 5px 17px rgba(36,94,97,.14);border-radius:11px;
  min-height:50px;gap:45px;letter-spacing:-.015em
}
.page-home .hero-visual img{
  border-radius:var(--ds-radius-lg);
  box-shadow:0 23px 60px rgba(41,62,47,.14);
  border:1px solid #e9e4e2;object-position:center
}
.page-home .hero-visual figcaption{margin-top:12px;font-size:12px;line-height:1.65}
.page-home .guide{border-color:var(--ds-line)}
.page-home .section-intro h2,.page-home .product-copy h2,.page-home .closing h2{
  font-weight:720;letter-spacing:-.055em;line-height:1.37
}
.page-home .steps li{gap:18px}
.page-home .step-no{
  display:inline-grid;place-items:center;flex:0 0 40px;height:40px;
  padding:0;border-radius:12px;background:#fceef1;color:#9f4963;
  font-size:13px;font-weight:800
}
.page-home .steps li h3{font-size:18px;font-weight:740}
.page-home .steps li p{line-height:1.84}
.page-home .product-section{background:linear-gradient(145deg,#f0f5f0,#f9f7f3)}
.page-home .product-visual img{
  border-radius:var(--ds-radius-lg);
  box-shadow:var(--ds-shadow-md);border-color:var(--ds-line)
}
.page-home .product-copy .text-link{
  display:inline-flex;align-items:center;gap:9px;text-underline-offset:4px
}
.page-home .product-copy .text-link span{margin-left:5px}
.page-home .questions details{border-color:var(--ds-line)}
.page-home .questions summary{font-weight:660;letter-spacing:-.022em}
.page-home .questions details[open]{background:linear-gradient(90deg,#f8fbf6,transparent 75%);padding-left:13px}
.page-home .closing{background:radial-gradient(ellipse at 50% 45%,#fbedf0a1,transparent 67%);border-color:var(--ds-line)}
.page-home .site-header{border-color:var(--ds-line)}
.page-home .brand,.page-legal .brand,.page-planner .brand{font-weight:780;letter-spacing:-.045em}
.page-home .site-legal-nav a,.page-legal .site-legal-nav a{text-decoration:none}
.page-home .site-legal-nav a:hover,.page-legal .site-legal-nav a:hover{text-decoration:underline;text-underline-offset:4px}

/* Planner: same tokens, denser layout because users actively edit schedules. */
.page-planner{background:#f6f8f5;color:var(--ds-ink)}
.page-planner>header{background:#fff;border-color:var(--ds-line);box-shadow:0 2px 10px rgba(30,65,55,.035)}
.page-planner>header .brand-mark{border-radius:11px;box-shadow:0 3px 10px rgba(36,94,97,.14)}
.page-planner .trip-bar{padding-top:21px;padding-bottom:17px}
.page-planner .trip-bar label,.page-planner .layout-toolbar label{font-weight:610;letter-spacing:-.01em}
.page-planner button:not(.panel-handle):not(.event button){
  border-radius:var(--ds-radius-sm)
}
.page-planner .primary{background:var(--ds-green);border-color:var(--ds-green);font-weight:730;box-shadow:0 3px 10px rgba(36,94,97,.11)}
.page-planner .primary:hover:not(:disabled){background:var(--ds-green-hover);border-color:var(--ds-green-hover)}
.page-planner .trip-bar input,.page-planner .trip-bar select{
  border:1px solid #cfded6;min-height:41px;background:#fff;
  box-shadow:var(--ds-shadow-sm)
}
.page-planner .trip-bar input:focus,.page-planner .trip-bar select:focus,
.page-planner .search:focus-within{border-color:#6aa193;box-shadow:0 0 0 3px #cfe9de88}
.page-planner .build-actions{gap:10px}
.page-planner .help-icon{border-radius:50%!important;box-shadow:none!important}
.page-planner .icon-button{border:1px solid #ccded4}
.page-planner #workspace{
  background:#fff;border-color:var(--ds-line);
  border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-sm)
}
.page-planner #workspace .places-panel,.page-planner #workspace .map-panel{background:#fff}
.page-planner #workspace .schedule-panel{background:#fdfefd}
.page-planner #workspace .panel-title h2,.page-planner .schedule-toolbar h2{
  font-size:16px;font-weight:760;letter-spacing:-.035em
}
.page-planner .schedule-toolbar{border-bottom:1px solid #e7ede6}
.page-planner #workspace .panel-handle{color:#81938b}
.page-planner #workspace .panel-handle:hover{color:var(--ds-green)}
.page-planner .search{border-color:#d6e3d9}
.page-planner .selected-card,.page-planner .place-card{line-height:1.52}
.page-planner .selected-card{background:#f9fcf8;border-color:#dce7dd;border-radius:10px}
.page-planner .selected-card:hover{border-color:#adc6b5;background:#f3f8f3}
.page-planner .event{border-radius:10px;box-shadow:inset 0 0 0 1px rgba(24,69,58,.065)}
.page-planner .event:focus-within{box-shadow:inset 0 0 0 1px rgba(24,69,58,.13),0 3px 12px #193c2e20}
.page-planner .day-header{border-color:#dce8de}
.page-planner .day-header strong{font-weight:750}
.page-planner .event-transport{border-color:#aecbc0;border-radius:6px}
.page-planner .section-heading h2{font-size:15px;line-height:1.5}
.page-planner .map-panel .route-summary strong{font-size:15px}
.page-planner #workspace .panel-splitter{background:#e4eee8}
.page-planner #workspace .panel-splitter:hover{background:#cde1d5}
.page-planner .planner-footer{line-height:1.7}
.page-planner .planner-footer a{text-decoration:none}
.page-planner .planner-footer a:hover{text-decoration:underline}
.page-planner #toast{box-shadow:0 8px 25px #0d1b1640}

/* Info pages use the same typographic rhythm as the home page. */
.page-legal .legal-main h1{font-weight:760;letter-spacing:-.055em}
.page-legal .legal-main section h2{font-weight:730;letter-spacing:-.03em}
.page-legal .legal-main section{border-color:var(--ds-line)}
.page-legal .legal-main section p{line-height:1.9}
.page-legal .site-header{border-color:var(--ds-line)}
.page-legal .legal-cta{background:linear-gradient(135deg,#edf5ee,#fbeff0);border-radius:var(--ds-radius-lg)}

@media(prefers-color-scheme:dark){
  :root:not([data-theme=light]) .page-home .hero::before{opacity:.12}
  :root:not([data-theme=light]) .page-home .hero-copy>.eyebrow{background:#49323b;color:#f5c8d7;border-color:#75475b}
  :root:not([data-theme=light]) .page-home .hero-points span{background:#213b35;color:#d7e9de;border-color:#416153}
  :root:not([data-theme=light]) .page-home .product-section{background:#1b302d}
  :root:not([data-theme=light]) .page-home .closing{background:transparent}
  :root:not([data-theme=light]) .page-home .questions details[open]{background:#213a35}
  :root:not([data-theme=light]) .page-legal .legal-cta{background:#25403a}
}
:root[data-theme=dark] .page-home .hero::before{opacity:.12}
:root[data-theme=dark] .page-home .hero-copy>.eyebrow{background:#49323b;color:#f5c8d7;border-color:#75475b}
:root[data-theme=dark] .page-home .hero-points span{background:#213b35;color:#d7e9de;border-color:#416153}
:root[data-theme=dark] .page-home .product-section{background:#1b302d}
:root[data-theme=dark] .page-home .closing{background:transparent}
:root[data-theme=dark] .page-home .questions details[open]{background:#213a35}
:root[data-theme=dark] .page-legal .legal-cta{background:#25403a}
@media(max-width:1000px){
  .page-home .hero{gap:32px}
  .page-home .hero-copy>.eyebrow{margin-bottom:20px}
  .page-home .hero-points{margin-bottom:24px}
}
@media(max-width:700px){
  .page-home .hero::before{width:115%;left:-13%;top:0;opacity:.75}
  .page-home .hero h1{font-size:clamp(34px,9vw,42px);line-height:1.29}
  .page-home .hero-points{gap:6px}
  .page-home .hero-points span{font-size:11px;padding:6px 10px}
  .page-home .hero-visual img{border-radius:14px;box-shadow:0 12px 26px #293f331f}
  .page-home .guide{padding-top:37px}
  .page-home .steps li{gap:13px}
  .page-planner .trip-bar{padding-top:14px}
  .page-planner .schedule-toolbar{gap:11px}
  .page-planner .planner-footer{gap:10px}
}
@media(prefers-reduced-motion:reduce){
  button,input,select,textarea,.page-home .button{transition:none!important}
  .page-home .button:hover{transform:none!important}
}

/* Search input must not draw a second focus outline over the search button. */
.page-planner #searchForm .search{
  display:flex;align-items:center;gap:0;
  min-height:46px;border:1px solid #cfded6;border-radius:11px;
  background:#fff;overflow:visible;
  transition:border-color .18s,box-shadow .18s;
}
.page-planner #searchForm .search:focus-within{
  border-color:#4f9380;
  box-shadow:0 0 0 3px rgba(79,147,128,.18);
}
.page-planner #searchForm .search input{
  flex:1 1 auto;min-width:0;min-height:44px;height:44px;
  padding:9px 12px;border:0!important;border-radius:10px 0 0 10px;
  background:transparent!important;outline:0!important;box-shadow:none!important;
}
.page-planner #searchForm .search input:focus,
.page-planner #searchForm .search input:focus-visible{
  border:0!important;outline:0!important;box-shadow:none!important;
}
.page-planner #searchForm .search button{
  flex:0 0 43px;width:43px;height:42px;min-height:42px;
  display:inline-flex;align-items:center;justify-content:center;
  margin:1px 2px 1px 0;padding:0!important;border:0;border-radius:9px;
  background:transparent;font-size:23px;line-height:1;color:#245e61;
}
.page-planner #searchForm .search button:hover{background:#eaf3ed}
.page-planner #searchForm .search button:focus-visible{outline:2px solid #4f9380;outline-offset:-3px}

/* Equal-size top-right layout controls. */
.page-planner .trip-bar .layout-toolbar{align-items:center;gap:10px}
.page-planner .trip-bar .layout-toolbar label{
  display:flex;flex-direction:row;align-items:center;gap:9px;margin:0;
  font-weight:600;font-size:12px;white-space:nowrap
}
.page-planner .trip-bar .layout-toolbar #mapPosition,
.page-planner .trip-bar .layout-toolbar #resetLayout{
  box-sizing:border-box;width:116px;min-width:116px;height:42px;min-height:42px;
  padding:0 10px;margin:0;font-size:12px;line-height:20px;font-weight:600;
  border:1px solid #cfded6;border-radius:9px;background:#fff;
  box-shadow:0 1px 5px rgba(25,54,44,.045);
}
.page-planner .trip-bar .layout-toolbar #mapPosition{padding-right:20px}
.page-planner .trip-bar .layout-toolbar #resetLayout{display:inline-flex;align-items:center;justify-content:center}

/* Removable day headers; the delete button remains separate from date selection. */
.page-planner .day-header{position:relative}
.page-planner .day-header>button[data-day]{display:block;width:100%;padding-right:31px}
.page-planner .day-header .delete-trip-day{
  position:absolute;right:5px;top:50%;transform:translateY(-50%);
  width:24px;height:26px;min-width:24px;min-height:26px;
  padding:0;border:1px solid transparent;border-radius:7px;
  display:inline-flex;align-items:center;justify-content:center;
  color:#6f8580;background:transparent;
  line-height:1;font-size:18px;z-index:2;
}
.page-planner .day-header .delete-trip-day:hover{background:#fce7e8;border-color:#edc1c8;color:#a43c51}
.page-planner .day-header .delete-trip-day:focus-visible{outline:2px solid #b85069;outline-offset:1px}
@media(max-width:700px){
  .page-planner .trip-bar .layout-toolbar{justify-content:flex-end}
  .page-planner .trip-bar .layout-toolbar #mapPosition,
  .page-planner .trip-bar .layout-toolbar #resetLayout{min-width:104px;width:104px}
}

/* Shared cherry blossom branding: keep the planner's editing surfaces quiet. */
.matsuri-brand{display:inline-flex;align-items:center;gap:11px;white-space:nowrap;direction:ltr;font-weight:760;letter-spacing:-.045em;text-decoration:none}
.matsuri-flower{display:inline-block;font-size:42px;line-height:1;color:#ff4c89;font-weight:760;letter-spacing:0}
.page-planner .matsuri-brand,.landing-page .site-footer .matsuri-brand{color:#293047;font-size:24px;line-height:1.1}
.page-planner>header{position:relative;z-index:1100}
.page-planner .header-right{display:flex;align-items:center;gap:12px}
.page-planner{--green:#b64265;--line:#eadfe3;--muted:#79727e;background:#faf8f7}
.page-planner .trip-bar input,.page-planner .trip-bar select,.page-planner .icon-button,
.page-planner .trip-bar .layout-toolbar #mapPosition,.page-planner .trip-bar .layout-toolbar #resetLayout{border-color:#e5dbe0}
.page-planner .trip-bar input:focus,.page-planner .trip-bar select:focus,
.page-planner #searchForm .search:focus-within{border-color:#c16c88;box-shadow:0 0 0 3px #f3dae488}
.page-planner #searchForm .search{border-color:#e5dbe0}
.page-planner #searchForm .search button{color:#b64265}
.page-planner #searchForm .search button:hover{background:#fff0f4}
.page-planner #searchForm .search button:focus-visible{outline-color:#b64265}
.page-planner .primary{box-shadow:0 3px 10px #b6426515}
.page-planner .day-header.active{background:#fff0f5;color:#993655}
.page-planner .day-header,.page-planner .schedule-toolbar{border-color:#ece2e7}
.page-planner #workspace .panel-handle{color:#a28d99}
.page-planner #workspace .panel-splitter{background:#efe6eb}
.page-planner #workspace .panel-splitter:hover{background:#e9c9d5}
.page-planner .marker{background:#b64265}
.landing-page .home-below{background:#faf8f7;color:#293047}
.landing-page .product-section{background:linear-gradient(145deg,#fcf2f5,#faf8f3)}
.landing-page .site-footer{color:#293047}
.page-planner .language-picker{position:relative;direction:ltr}
.page-planner #languageToggle{display:flex;align-items:center;justify-content:center;gap:14px;min-width:110px;height:42px;padding:0 16px;border:1px solid #e5dbe0;border-radius:999px;background:#fff;color:#293047;white-space:nowrap;font-size:14px;font-weight:650}
.page-planner #languageToggle:hover,.page-planner #languageToggle[aria-expanded=true]{background:#fff2f6;border-color:#d6a8b9}
.page-planner .language-menu{position:absolute;top:calc(100% + 10px);right:0;width:min(280px,calc(100vw - 30px));max-height:min(510px,74vh);overflow:auto;padding:9px;background:#fff;color:#293047;border:1px solid #eadfe3;border-radius:14px;box-shadow:0 18px 60px #23223d30;z-index:1200}
.page-planner .language-menu[hidden]{display:none}
.page-planner .language-menu button{display:flex;align-items:center;gap:12px;width:100%;padding:9px 12px;min-height:39px;border:0;border-radius:8px;background:transparent;color:#293047;text-align:left;font-size:14px;white-space:nowrap;direction:ltr}
.page-planner .language-menu button:hover,.page-planner .language-menu button[aria-selected=true]{background:#ffe8ef;color:#9d3260}
.page-planner .language-menu button>span{font-size:19px}
@media(max-width:700px){
 .page-planner>header{height:auto;min-height:76px;align-items:center;flex-wrap:wrap;gap:12px;padding:13px 16px}
 .page-planner .matsuri-brand,.landing-page .site-footer .matsuri-brand{font-size:21px}
 .page-planner .matsuri-flower,.landing-page .site-footer .matsuri-flower{font-size:36px}
 .page-planner .header-right{margin-left:auto;gap:8px}
 .page-planner #languageToggle{min-width:92px;padding:0 11px;gap:9px}
 .page-planner #export{font-size:12px;padding:9px 10px}
}

/* Keep timeline geometry stable in every language; Arabic labels remain bidirectional. */
.page-planner{direction:ltr}

.landing-page .home-below .button{background:#b64265;border-color:#b64265;color:#fff}
.landing-page .home-below .button:hover{background:#9e3456;border-color:#9e3456}
.landing-page .home-below .text-link{color:#b64265}

/* API content keeps its Korean original next to actual translations. */
.bi-text{display:inline-flex;flex-direction:column;vertical-align:top;max-width:100%;min-width:0}
.bi-translation[hidden]{display:none}
.bi-text.is-translated>.bi-original{font-size:.83em;color:#697579;line-height:1.55}
.bi-translation{line-height:1.55}
.planner-footer #apiLanguageNotice{flex-basis:100%;font-size:.75rem;color:#697579}
.page-planner #workspace .map-dock{display:none}
.page-planner #workspace.map-panel-grabbed .map-dock{display:grid;place-items:center;min-height:44px;margin:12px 20px}
.page-planner .calendar-scroll{max-height:max(772px,calc(100dvh - 255px))}
.page-planner .schedule-panel[style*="height:"]{display:flex;flex-direction:column}
.page-planner .schedule-panel[style*="height:"]>.calendar-scroll{flex:1;min-height:0;max-height:none}
.page-planner #workspace:not(.map-below) .schedule-stack[style*="height:"]>.schedule-panel{height:100%;display:flex;flex-direction:column}
.page-planner #workspace:not(.map-below) .schedule-stack[style*="height:"]>.schedule-panel>.calendar-scroll{flex:1;min-height:0;max-height:none}
@media(max-width:1200px){.page-planner .calendar-scroll{max-height:max(622px,calc(100dvh - 255px))}}

/* Keep the dock reachable during a map drag on the current viewport. */
.page-planner #workspace.map-panel-grabbed .calendar-scroll{max-height:min(730px,calc(100dvh - 420px))}
@media(max-width:1200px){.page-planner #workspace.map-panel-grabbed .calendar-scroll{max-height:min(580px,calc(100dvh - 420px))}}
