/* Full-screen Matsuri Trip landing, recreated as real, accessible HTML controls. */
body.landing-page{margin:0;background:#faf9f6;color:#202543}
.landing-page .landing-hero{position:relative;isolation:isolate;min-height:800px;min-height:max(800px,100svh);width:100%;overflow:hidden;color:#fff;background:#284266}
.landing-page .landing-hero::before{content:"";position:absolute;inset:0;z-index:-2;background-image:url('/assets/matsuri-start.jpg');background-repeat:no-repeat;background-size:cover;background-position:center 48%;filter:none;transform:none}
.landing-page .landing-hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 45% 39% at 50% 36%,rgba(255,247,237,.84) 0%,rgba(255,244,234,.52) 45%,rgba(255,244,234,0) 100%),linear-gradient(to bottom,rgba(19,32,76,.26) 0%,rgba(22,30,66,0) 16%,rgba(15,20,37,0) 48%,rgba(15,20,35,.09) 66%,rgba(8,13,30,.52) 100%)}
.landing-page .landing-header{position:absolute;top:0;left:0;right:0;z-index:15;min-height:108px;display:flex;align-items:center;gap:35px;padding:25px clamp(23px,3%,55px);color:#fff;text-shadow:0 1px 9px rgba(22,32,63,.24)}
.landing-page .landing-brand{display:inline-flex;align-items:center;gap:13px;flex:0 0 auto;font-family:var(--ds-font);font-size:clamp(22px,2.1vw,34px);line-height:1.1;font-weight:760;letter-spacing:-.045em;color:#fff;text-decoration:none;white-space:nowrap}
.landing-page .landing-flower{font-size:clamp(41px,3.8vw,61px);line-height:1;color:#ff4c89;text-shadow:0 2px 6px rgba(121,31,72,.18)}
.landing-page .landing-nav{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:clamp(23px,3.15vw,49px);direction:ltr;white-space:nowrap}
.landing-page .landing-nav a{font-size:clamp(14px,1.2vw,19px);font-weight:680;white-space:nowrap;color:#fff;text-decoration:none;transition:opacity .15s}
.landing-page .landing-nav a:hover{opacity:.75}
.landing-page .language-picker{position:relative;flex:0 0 auto;direction:ltr}
.landing-page #languageToggle{display:flex;align-items:center;justify-content:center;gap:18px;min-width:135px;height:55px;padding:0 23px;border:1.5px solid rgba(255,255,255,.96);background:rgba(44,64,106,.18);color:#fff;border-radius:40px;white-space:nowrap;font-size:16px;font-weight:650;backdrop-filter:blur(12px)}
.landing-page #languageToggle:hover,.landing-page #languageToggle[aria-expanded=true]{background:rgba(32,45,90,.44)}
.landing-page .language-menu{position:absolute;top:calc(100% + 10px);right:0;width:min(280px,calc(100vw - 30px));padding:9px;background:#fff;color:#263045;border:1px solid #e2d9e2;border-radius:14px;box-shadow:0 18px 60px rgba(19,22,50,.3);max-height:min(510px,74vh);overflow:auto;text-shadow:none;z-index:30}
.landing-page .language-menu[hidden]{display:none}
.landing-page .language-menu button{display:flex;gap:12px;align-items:center;width:100%;padding:9px 12px;min-height:39px;border:none;border-radius:8px;background:transparent;color:#25304c;text-align:left;font-size:14px;font-weight:580;white-space:nowrap;direction:ltr}
.landing-page .language-menu button:hover,.landing-page .language-menu button[aria-selected=true]{background:#ffe8ef;color:#9d3260}
.landing-page .language-menu button>span{font-size:19px}
.landing-page .landing-center{position:absolute;z-index:4;top:20.3%;left:50%;width:min(1050px,94%);transform:translateX(-50%);text-align:center}
.landing-page #hero-title{display:flex;flex-direction:column;gap:2px;align-items:center;margin:0;font-weight:820;letter-spacing:-.068em;line-height:1.17;word-break:keep-all;text-wrap:balance}
.landing-page .landing-pink{font-size:clamp(57px,6.2vw,94px);color:#f3437d;text-shadow:0 2px 1px rgba(255,255,255,.55),0 3px 20px #fff4}
.landing-page .landing-navy{font-size:clamp(44px,4.45vw,70px);color:#1d224b;text-shadow:0 2px 6px rgba(255,255,255,.24)}
.landing-page .landing-subtitle{display:flex;flex-direction:column;gap:0;margin:21px auto 0;color:#242847;font-size:clamp(16px,1.38vw,22px);line-height:1.5;font-weight:550;text-shadow:0 1px 3px rgba(255,255,255,.55)}
.landing-page .landing-cta{width:min(343px,84vw);min-height:73px;margin:38px auto 0;padding:12px 21px;display:inline-flex;align-items:center;justify-content:center;gap:19px;border:2px solid #ffc1d0;border-radius:999px;background:linear-gradient(110deg,#ff3e7d,#ff648d);color:#fff;font-size:25px;line-height:1.2;font-weight:790;box-shadow:0 7px 27px rgba(230,36,96,.34),0 0 0 2px rgba(255,255,255,.2);text-decoration:none;transition:transform .15s,filter .15s}
.landing-page .landing-cta:hover{transform:translateY(-3px);filter:brightness(1.065)}
.landing-page .landing-cta svg{width:35px;height:35px}
.landing-page .landing-features{position:absolute;z-index:4;bottom:8%;left:50%;transform:translateX(-50%);width:min(1120px,92%);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;align-items:start;text-align:center}
.landing-page .landing-feature{display:flex;flex-direction:column;align-items:center;gap:7px;color:#fff;text-decoration:none;text-shadow:0 2px 7px rgba(12,17,39,.55);padding:9px 6px 10px;border-radius:15px;transition:background .15s,transform .15s}
.landing-page .landing-feature:hover{transform:translateY(-5px);background:rgba(13,14,46,.25)}
.landing-page .feature-circle{width:64px;height:64px;margin-bottom:3px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.97);text-shadow:none;box-shadow:0 4px 20px rgba(20,26,55,.18)}
.landing-page .feature-circle svg{width:34px;height:34px}
.landing-page .feature-search{color:#607be6}.landing-page .feature-calendar{color:#ff4983}.landing-page .feature-map{color:#15bda9}.landing-page .feature-festival{color:#f47764}
.landing-page .landing-feature strong{font-size:clamp(17px,1.36vw,22px);font-weight:810;line-height:1.23}
.landing-page .landing-feature small{font-size:clamp(12px,1.06vw,16px);font-weight:540;line-height:1.36}
.landing-page .home-below{background:var(--bg);color:var(--text);position:relative;z-index:2}
.landing-page .home-below>.guide{border-top:0}
.landing-page .site-footer{background:var(--bg);color:var(--text)}
.landing-page .site-footer .brand{color:var(--text)}
@media(min-width:1500px){.landing-page .landing-hero{min-height:950px}}
@media(max-width:1100px){
  .landing-page .landing-header{gap:20px;padding:22px 26px}
  .landing-page .landing-nav{gap:22px}
  .landing-page .landing-brand{font-size:24px}
  .landing-page .landing-center{top:22%}
  .landing-page .landing-pink{font-size:74px}
  .landing-page .landing-navy{font-size:54px}
}
@media(max-width:800px){
  .landing-page .landing-hero{min-height:780px;min-height:100svh}
  .landing-page .landing-header{flex-wrap:wrap;justify-content:space-between;gap:11px;padding:18px 20px}
  .landing-page .landing-brand{font-size:21px}.landing-page .landing-flower{font-size:38px}
  .landing-page .landing-nav{order:3;flex:1 0 100%;justify-content:center;margin:2px 0 0;gap:25px}
  .landing-page .landing-nav a{font-size:13px}
  .landing-page #languageToggle{min-width:100px;height:42px;padding:0 14px;font-size:13px;gap:9px}
  .landing-page .landing-center{top:21%;width:95%}
  .landing-page .landing-pink{font-size:clamp(43px,8.5vw,67px)}
  .landing-page .landing-navy{font-size:clamp(30px,6vw,48px)}
  .landing-page .landing-subtitle{font-size:clamp(14px,2.6vw,18px)}
  .landing-page .landing-cta{min-height:57px;width:280px;font-size:20px;margin-top:22px}
  .landing-page .landing-cta svg{width:27px;height:27px}
  .landing-page .landing-features{width:min(620px,97%);gap:10px;bottom:6%}
  .landing-page .feature-circle{width:54px;height:54px}.landing-page .feature-circle svg{width:29px;height:29px}
  .landing-page .landing-feature strong{font-size:15px}.landing-page .landing-feature small{font-size:11px}
}
@media(max-width:560px){
  .landing-page .landing-hero{min-height:785px;min-height:max(785px,100svh)}
  .landing-page .landing-hero::before{background-position:47% center}
  .landing-page .landing-hero::after{background:radial-gradient(ellipse 75% 31% at 50% 36%,rgba(255,249,237,.8),rgba(255,246,236,.6) 47%,transparent),linear-gradient(180deg,rgba(8,16,46,.28),transparent 17%,transparent 51%,rgba(8,13,30,.58))}
  .landing-page .landing-center{top:25%;width:calc(100% - 22px)}
  .landing-page .landing-pink{font-size:51px}
  .landing-page .landing-navy{font-size:clamp(32px,8vw,44px)}
  .landing-page .landing-subtitle{margin-top:20px;font-size:15px}
  .landing-page .landing-cta{margin-top:31px}
  .landing-page .landing-features{grid-template-columns:repeat(2,1fr);gap:8px 10px;bottom:3%;width:min(390px,94%)}
  .landing-page .landing-feature{padding:4px 3px 6px;gap:3px}
  .landing-page .feature-circle{width:46px;height:46px;margin-bottom:2px}.landing-page .feature-circle svg{width:27px;height:27px}
  .landing-page .landing-feature strong{font-size:14px}.landing-page .landing-feature small{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  .landing-page .landing-feature,.landing-page .landing-cta{transition:none}
  .landing-page .landing-feature:hover,.landing-page .landing-cta:hover{transform:none}
}

/* Feature explanations open in place, without navigating away from the landing. */
.landing-page .language-picker{margin-inline-start:auto}
.landing-page button.landing-feature{border:0;background:transparent;font:inherit;cursor:pointer;width:100%}
.landing-page button.landing-feature:focus-visible{outline:3px solid #ffe7b4;outline-offset:5px}

.feature-popover{position:fixed;z-index:50;width:min(420px,calc(100vw - 32px));max-height:calc(100svh - 32px);overflow:auto;padding:24px;border:1px solid rgba(255,255,255,.75);border-radius:18px;background:rgba(255,250,248,.82);color:#28304c;box-shadow:0 14px 45px rgba(24,25,48,.24);backdrop-filter:blur(18px);text-align:start;pointer-events:auto}
.feature-popover[hidden]{display:none}
.feature-popover h2{margin:0 0 14px;font-size:22px;line-height:1.4;color:#9e2b50;letter-spacing:-.03em}
.feature-popover p{margin:0 0 12px;font-size:14px;line-height:1.8;word-break:keep-all;overflow-wrap:anywhere}
.feature-popover p:last-child{margin:0;padding-top:12px;border-top:1px solid rgba(122,72,89,.2);font-size:13px;color:#4f576b}
@media(max-width:560px){.feature-popover{padding:20px}.feature-popover h2{font-size:20px}.feature-popover p{font-size:13px}}
