/* ============================================================
   Công Viên Đêm — Night Park at P2 Park
   dominopark.com のレイアウトシステムを忠実に踏襲：
   ・白地 #FFF ＋ 墨 #191919、フラットな大きい色面（橙／淡青）
   ・ピルボタン h38 r19、カード r8、黒丸日付バッジ
   ・単一書体 Be Vietnam Pro（Ano相当・越語対応）＋ Saira Stencil One（数字）
   ・余白：セクション py96（SP64）、大見出し 40–56px、横スクロールのカード列
   ============================================================ */

:root{
  --paper:#FFFFFF;
  --ink:#191919;
  --sub:#616161;
  --orange:#F08A24;
  --orange-soft:#FFD5B5;   /* Dominoのpeach同値系 */
  --blue:#2E6E85;
  --blue-soft:#DAE7F0;     /* Dominoのpale blue同値 */
  --line:#E5E1DA;
  --radius:8px;
  --maxw:1280px;
  --font:"Be Vietnam Pro",system-ui,sans-serif;
  --stencil:"Saira Stencil One",var(--font);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);color:var(--ink);
  font-family:var(--font);font-weight:400;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}

/* ---------------- HEADER（白・薄いボーダー・中央ナビ） ---------------- */
.site-head{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  height:64px;padding:0 24px;
  background:rgba(255,255,255,0.95);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.wordmark{font-weight:800;font-size:1rem;letter-spacing:0.01em;line-height:1.05;white-space:nowrap;}
.wordmark span{display:block;font-weight:500;font-size:0.58rem;letter-spacing:0.34em;color:var(--sub);}
.site-nav{display:none;gap:26px;margin-right:auto;margin-left:34px;}
@media(min-width:900px){.site-nav{display:flex;}}
.site-nav a{font-size:0.9rem;font-weight:500;}
.site-nav a:hover{opacity:0.6;}
.lang{display:flex;border:1px solid var(--ink);border-radius:19px;overflow:hidden;flex-shrink:0;}
.lang button{
  border:none;background:none;cursor:pointer;
  font-family:var(--font);font-size:0.78rem;font-weight:500;
  padding:7px 12px;color:var(--ink);
}
.lang button.on{background:var(--ink);color:#fff;font-weight:700;}

/* ---------------- ボタン（Domino実寸：h38 / r19 / 18px） ---------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  height:38px;padding:2px 18px 0;border-radius:19px;
  font-size:1rem;font-weight:500;letter-spacing:0.01em;
  border:1px solid var(--ink);
  transition:opacity .15s ease,transform .15s ease;
}
.btn:active{transform:scale(0.97);}
.btn-solid{background:var(--ink);color:#fff;}
.btn-line{background:transparent;color:var(--ink);}
.hero .btn-line{border-color:#fff;color:#fff;}

/* ---------------- HERO（全幅写真・下部に白テキスト） ---------------- */
.hero{position:relative;height:min(86svh,820px);display:flex;align-items:flex-end;overflow:hidden;}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,12,20,0) 40%,rgba(10,12,20,0.66) 100%);}
.hero-inner{position:relative;z-index:1;color:#fff;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px 56px;}
.hero h1{font-weight:800;font-size:clamp(2.8rem,8vw,5.2rem);line-height:1.0;letter-spacing:-0.015em;margin-bottom:12px;}
.hero-tag{font-weight:500;font-size:clamp(1.02rem,3.4vw,1.35rem);max-width:30em;text-wrap:balance;}
.hero-hours,.hero-dates,.hero .hero-status,.hero .btns{display:none;} /* 情報はWELCOMEへ */

/* ---------------- WELCOME（Dominoの型：左テキスト＋右TODAYカード） ---------------- */
.welcome{max-width:var(--maxw);margin:0 auto;padding:96px 24px 0;}
@media(max-width:767px){.welcome{padding-top:64px;}}
.welcome-grid{display:grid;gap:40px;align-items:start;}
@media(min-width:900px){.welcome-grid{grid-template-columns:5fr 4fr;gap:64px;}}
.welcome-lead{font-weight:500;font-size:clamp(1.25rem,3vw,1.7rem);line-height:1.6;margin-bottom:34px;text-wrap:pretty;}
.open-lbl{font-size:0.8rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--sub);margin-bottom:4px;}
.open-hours{font-family:var(--stencil);font-size:clamp(2.6rem,7vw,4.2rem);line-height:1.05;margin-bottom:14px;}
.hero-status2{
  display:inline-block;background:var(--orange);color:#fff;
  font-size:0.82rem;font-weight:700;padding:6px 14px;border-radius:19px;margin-bottom:16px;
}
.hero-status2.is-rain{background:var(--blue);}
.hero-status2:empty{display:none;}
.visit-by{font-size:1rem;color:var(--sub);margin-bottom:22px;}
.btns{display:flex;gap:10px;flex-wrap:wrap;}

/* ---------------- TODAY カード（スクショの構図をそのまま） ---------------- */
.today{
  position:relative;border-radius:16px;overflow:hidden;
  background:var(--orange);color:var(--ink);
  min-height:320px;padding:24px;
}
.today.is-rain{background:var(--blue-soft);}
.today.is-night{background:#17202E;color:#EDE7DC;}
.t-date{
  position:absolute;top:24px;left:24px;
  width:88px;height:88px;border-radius:50%;
  background:var(--ink);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;
}
.t-date .m,.t-date .w{font-size:0.62rem;font-weight:500;letter-spacing:0.22em;}
.t-date .d{font-family:var(--stencil);font-size:1.9rem;}
.t-meta{position:absolute;top:26px;right:24px;display:grid;grid-template-columns:auto auto;gap:4px 20px;}
.t-meta .k{font-size:0.72rem;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;display:block;}
.t-meta .v{font-size:0.8rem;font-weight:700;letter-spacing:0.06em;display:block;text-align:right;}
.t-meta > div{display:contents;}
.t-note{position:absolute;left:24px;bottom:26px;max-width:46%;font-size:0.9rem;font-weight:700;line-height:1.6;}
.t-temp{position:absolute;right:18px;bottom:0;font-family:var(--stencil);font-size:clamp(4.4rem,15vw,7.6rem);line-height:1.15;}
@media(max-width:560px){
  .today{min-height:340px;}
  .t-meta{top:auto;bottom:140px;right:24px;}
  .t-note{max-width:56%;bottom:auto;top:132px;}
}

/* ---------------- INTRO（説明＋クイックリンク） ---------------- */
.intro{max-width:var(--maxw);margin:0 auto;padding:72px 24px 0;text-align:left;}
.intro-lead{font-size:1.05rem;color:var(--sub);line-height:1.9;max-width:46em;font-weight:400;}
.quick{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;justify-content:flex-start;}
.quick a{
  border:1px solid var(--ink);border-radius:19px;height:38px;
  display:inline-flex;align-items:center;padding:2px 18px 0;
  font-size:0.95rem;font-weight:500;color:var(--ink);
}
.quick a:hover{background:var(--ink);color:#fff;}

/* ---------------- SECTIONS 共通（余白＝Dominoのリズム） ---------------- */
.sec{max-width:var(--maxw);margin:0 auto;padding:96px 24px 0;}
@media(max-width:767px){.sec{padding-top:64px;}}
.sec h2{
  font-weight:800;font-size:clamp(2rem,5vw,3.2rem);
  line-height:1.1;margin-bottom:34px;letter-spacing:-0.015em;
}
.sec h2.sub{font-size:clamp(1.4rem,3.6vw,2rem);margin:56px 0 22px;}

/* ---------------- FEATURES（横スクロールのカード列＝Dominoのswiper） ---------------- */
.feat-row{
  display:grid;grid-auto-flow:column;grid-auto-columns:78%;
  gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:10px;margin:0 -24px;padding-left:24px;padding-right:24px;
  scrollbar-width:none;
}
.feat-row::-webkit-scrollbar{display:none;}
@media(min-width:700px){.feat-row{grid-auto-columns:44%;}}
@media(min-width:1100px){.feat-row{grid-auto-columns:31%;}}
.fcard{scroll-snap-align:start;}
.fcard img,.fcard > .phx{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);}
.fcard .body{padding:16px 2px 0;}
.fcard .zone{font-size:0.72rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--orange);margin-bottom:4px;}
.fcard h3{font-weight:700;font-size:1.3rem;line-height:1.3;margin-bottom:6px;}
.fcard p{font-size:0.95rem;color:var(--sub);line-height:1.8;margin-bottom:10px;}
.chips{display:flex;gap:6px;flex-wrap:wrap;}
.chips span{border:1px solid var(--line);border-radius:19px;padding:3px 12px;font-size:0.8rem;color:var(--sub);}

/* ---------------- 色面バンド（雨＝淡青／夜＝濃紺・右に実写） ---------------- */
.rain-band,.night-band{max-width:none;padding:0;margin-top:96px;text-align:left;background:none;}
@media(max-width:767px){.rain-band,.night-band{margin-top:64px;}}
.band-in{
  max-width:var(--maxw);margin:0 auto;padding:0 24px;
  display:grid;gap:0;align-items:stretch;
}
@media(min-width:900px){.band-in{grid-template-columns:1fr 1fr;}}
.band-txt{padding:56px 40px;border-radius:16px 16px 0 0;}
@media(min-width:900px){.band-txt{border-radius:16px 0 0 16px;padding:72px 56px;}}
.band-img{min-height:280px;border-radius:0 0 16px 16px;overflow:hidden;}
@media(min-width:900px){.band-img{border-radius:0 16px 16px 0;}}
.band-img img{width:100%;height:100%;object-fit:cover;}
.rain-band .band-txt{background:var(--blue-soft);}
.rain-band h2{color:var(--blue);margin:0 0 8px;font-size:0.8rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;}
.rain-lead{font-size:clamp(1.6rem,4.6vw,2.4rem);font-weight:800;color:var(--blue);margin-bottom:16px;line-height:1.25;}
.rain-body p{font-size:1rem;line-height:1.95;color:#274B59;margin-bottom:0.5em;}
.night-band .band-txt{background:#17202E;color:#EDE7DC;}
.night-band h2{color:#E8A24C;margin:0 0 8px;font-size:0.8rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;}
.night-lead{font-size:clamp(1.6rem,4.6vw,2.4rem);font-weight:800;color:#E8A24C;margin-bottom:16px;line-height:1.25;}
.night-body p{font-size:1rem;line-height:1.95;color:#C9C3B6;margin-bottom:0.5em;}
.rain-deco{display:none;}

/* ---------------- WATER & SAFETY ---------------- */
.water-grid{display:grid;gap:16px;margin-bottom:34px;}
@media(min-width:680px){.water-grid{grid-template-columns:1fr 1fr;}}
.wcard{border:1px solid var(--line);border-radius:var(--radius);padding:24px;}
.wcard .src{font-size:0.72rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--blue);margin-bottom:8px;}
.wcard p{font-size:0.95rem;line-height:1.9;color:var(--sub);}
.wcard .note{margin-top:10px;font-weight:700;font-size:0.85rem;color:var(--orange);}
.qa .item{border-top:1px solid var(--line);padding:20px 0;}
.qa .item:last-child{border-bottom:1px solid var(--line);}
.qa .q{font-weight:700;font-size:1.02rem;margin-bottom:4px;}
.qa .a{font-size:0.95rem;color:var(--sub);line-height:1.9;}

/* ---------------- EVENTS（黒丸日付＋サムネ＝Dominoの行） ---------------- */
.event-list{display:grid;gap:0;border-top:1px solid var(--line);}
.ev{
  display:grid;grid-template-columns:88px 1fr;gap:22px;align-items:center;
  padding:28px 0;border-bottom:1px solid var(--line);border-radius:0;
}
@media(min-width:760px){.ev.has-img{grid-template-columns:88px 1fr 300px;}}
.ev .date{
  width:88px;height:88px;border-radius:50%;
  background:var(--ink);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;text-align:center;padding:0;
}
.ev .date .d{font-family:var(--stencil);font-weight:400;font-size:1.45rem;display:block;}
.ev .date .m{font-size:0.62rem;font-weight:500;letter-spacing:0.2em;}
.ev h3{font-weight:700;font-size:clamp(1.15rem,3vw,1.5rem);margin-bottom:2px;}
.ev .tag{font-size:0.8rem;font-weight:700;color:var(--orange);margin-bottom:6px;}
.ev p{font-size:0.95rem;color:var(--sub);line-height:1.8;}
.ev .more{
  display:inline-flex;align-items:center;height:34px;padding:1px 16px 0;margin-top:12px;
  border:1px solid var(--ink);border-radius:19px;font-size:0.88rem;font-weight:500;
}
.ev .more:hover{background:var(--ink);color:#fff;}
.ev .thumb{display:none;}
@media(min-width:760px){
  .ev.has-img .thumb{display:block;}
  .ev .thumb img,.ev .thumb .phx{aspect-ratio:16/10;width:100%;object-fit:cover;border-radius:var(--radius);}
}

/* ---------------- MAP ---------------- */

/* ---------------- VISIT ---------------- */
.visit-cards{display:grid;gap:16px;margin-bottom:40px;}
@media(min-width:680px){.visit-cards{grid-template-columns:1fr 1fr;}}
.vcard{border:1px solid var(--line);border-radius:var(--radius);padding:26px;}
.vcard .lbl{font-size:0.72rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--sub);margin-bottom:10px;}
.vcard .big{font-weight:700;font-size:1.3rem;line-height:1.5;}
.vcard p{font-size:0.9rem;color:var(--sub);margin-top:8px;}
.modes{display:grid;gap:16px;margin-bottom:48px;}
@media(min-width:760px){.modes{grid-template-columns:repeat(4,1fr);}}
.mode{border-top:2px solid var(--ink);padding:16px 2px 0;border-radius:0;}
.mode .ic{font-size:1.5rem;line-height:1;margin-bottom:10px;display:block;}
.mode h4{font-weight:700;font-size:1rem;margin-bottom:4px;}
.mode p{font-size:0.85rem;color:var(--sub);line-height:1.75;}
.access{display:grid;gap:24px;}
@media(min-width:760px){.access{grid-template-columns:5fr 7fr;align-items:start;}}
.access .addr{font-weight:700;font-size:1.1rem;line-height:1.7;margin-bottom:8px;}
.access .supp{font-size:0.92rem;color:var(--sub);margin-bottom:20px;}
.access-map{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3;}
.access-map iframe{width:100%;height:100%;border:0;}
.rules ul{list-style:none;}
.rules li{padding:12px 0 12px 26px;position:relative;font-size:0.95rem;color:var(--sub);border-bottom:1px solid var(--line);}
.rules li::before{content:"·";position:absolute;left:8px;color:var(--orange);font-weight:800;font-size:1.3em;line-height:1.15;}
.rules li.fun{color:var(--ink);font-weight:500;}
.rules li.fun::before{content:"★";font-size:0.8em;line-height:2;}
.faq details{border-top:1px solid var(--line);}
.faq details:last-child{border-bottom:1px solid var(--line);}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:18px 0;font-weight:700;font-size:1rem;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";font-weight:400;font-size:1.4rem;color:var(--orange);}
.faq details[open] summary::after{content:"–";}
.faq .ans{padding:0 0 18px;font-size:0.95rem;color:var(--sub);line-height:1.9;}

/* ---------------- INFO ---------------- */
.info-rows{border-top:1px solid var(--line);}
.info-rows > div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);}
.info-rows dt{font-weight:700;font-size:0.9rem;}
.info-rows dd{font-size:0.95rem;color:var(--sub);}

/* ---------------- FOOTER（黒・大きなワードマーク） ---------------- */
.foot{margin-top:112px;background:var(--ink);color:#fff;padding:64px 24px 40px;text-align:left;}
@media(max-width:767px){.foot{margin-top:72px;}}
.foot-mark{
  font-weight:800;font-size:clamp(2rem,7vw,4rem);letter-spacing:-0.01em;line-height:1;
  margin-bottom:34px;
}
.foot-mark span{display:block;font-family:var(--stencil);font-weight:400;font-size:0.35em;letter-spacing:0.4em;opacity:0.6;margin-top:8px;}
.foot-follow{margin-bottom:26px;}
.foot-follow a{display:inline-flex;align-items:center;height:38px;padding:2px 18px 0;border:1px solid #fff;border-radius:19px;font-weight:500;font-size:0.9rem;}
.foot-follow a:hover{background:#fff;color:var(--ink);}
.foot-nav{display:flex;gap:8px 26px;flex-wrap:wrap;margin-bottom:30px;justify-content:flex-start;}
.foot-nav a{font-size:0.88rem;opacity:0.75;}
.foot-nav a:hover{opacity:1;}
.orgs{display:flex;gap:18px 32px;flex-wrap:wrap;margin-bottom:26px;justify-content:flex-start;}
.orgs .org{display:flex;flex-direction:column;gap:2px;align-items:flex-start;}
.orgs .role{font-size:0.6rem;letter-spacing:0.16em;text-transform:uppercase;opacity:0.5;}
.orgs .name{font-size:0.85rem;font-weight:500;}
.foot-tags{font-size:0.8rem;opacity:0.55;margin-bottom:6px;}
.foot-meta{font-size:0.74rem;opacity:0.4;}

/* ---------------- プレースホルダ ---------------- */
.phx{
  position:relative;display:flex;align-items:center;justify-content:center;
  background:repeating-linear-gradient(45deg,#F4F1EA 0 14px,#ECE8DF 14px 28px);
  border:1px dashed #C9C4B8;border-radius:var(--radius);
  color:var(--sub);font-size:0.76rem;font-weight:700;letter-spacing:0.08em;
  text-transform:uppercase;text-align:center;padding:8px;
}
.phx.blue{background:repeating-linear-gradient(45deg,#E7F0F5 0 14px,#DEEAF1 14px 28px);}

/* ---------------- イベント詳細ページ ---------------- */
.detail{max-width:860px;margin:0 auto;padding:48px 24px 8px;}
.back{display:inline-flex;align-items:center;height:34px;padding:1px 16px 0;border:1px solid var(--ink);border-radius:19px;font-size:0.85rem;font-weight:500;margin-bottom:26px;}
.back:hover{background:var(--ink);color:#fff;}
.detail h1{font-weight:800;font-size:clamp(2rem,6.5vw,3.4rem);line-height:1.08;letter-spacing:-0.015em;margin-bottom:10px;}
.presented{font-size:0.85rem;color:var(--sub);margin-bottom:26px;}
.detail-hero{margin-bottom:30px;}
.detail-hero .phx,.detail-hero img{aspect-ratio:16/9;width:100%;object-fit:cover;border-radius:16px;}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:36px;}
.fields div{background:#fff;padding:16px 18px;}
.fields .k{font-size:0.66rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--sub);margin-bottom:3px;}
.fields .v{font-weight:700;font-size:0.98rem;line-height:1.45;}
.detail h2{font-weight:800;font-size:1.4rem;margin:36px 0 14px;}
.detail p{font-size:1rem;line-height:1.95;color:#3C3C3C;margin-bottom:0.8em;}
.sched{border-top:1px solid var(--line);margin-top:6px;}
.sched div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);}
.sched .t{font-family:var(--stencil);color:var(--ink);font-size:1.05rem;}
.sched .w{font-size:0.96rem;color:#3C3C3C;}
.partner{border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-top:30px;}
.partner .lbl{font-size:0.66rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--orange);margin-bottom:6px;}
.partner h3{font-weight:700;font-size:1.1rem;margin-bottom:6px;}
.partner p{font-size:0.92rem;color:var(--sub);margin:0;}
.more-events{margin-top:56px;}
.more-events h2{font-weight:800;font-size:1.4rem;margin-bottom:16px;}
.more-links{display:grid;gap:12px;}
@media(min-width:640px){.more-links{grid-template-columns:1fr 1fr;}}
.more-links a{border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;font-weight:700;font-size:0.98rem;}
.more-links a span{display:block;font-family:var(--stencil);font-weight:400;font-size:0.85rem;color:var(--sub);margin-top:2px;}
.more-links a:hover{border-color:var(--ink);}

/* ---------------- reveal ---------------- */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease;}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}


/* ---------------- v4 修正（ロゴ・リンクリスト・2エリア・モード2種） ---------------- */
.wordmark img{height:26px;width:auto;display:block;}
.hero-logo{width:min(560px,72vw);height:auto;margin-bottom:16px;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.foot-logo{width:min(440px,70vw);height:auto;margin-bottom:34px;}

/* Domino式の縦リンクリスト（About節の型） */
.link-list{margin-top:26px;max-width:520px;}
.link-list a{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 2px;border-top:1px solid var(--line);
  font-size:1.02rem;font-weight:500;
}
.link-list a:last-child{border-bottom:1px solid var(--line);}
.link-list .arw{transition:transform .15s ease;}
.link-list a:hover .arw{transform:translateX(4px);}

/* 2エリアの交互ブロック（画像＋本文） */
.area-block{display:grid;gap:26px;align-items:center;margin-bottom:64px;}
.area-block:last-child{margin-bottom:0;}
@media(min-width:860px){
  .area-block{grid-template-columns:1fr 1fr;gap:56px;}
  .area-block.rev .a-img{order:2;}
}
.a-img img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;}
.a-txt .zone{font-size:0.74rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--orange);margin-bottom:8px;}
.a-txt h3{font-weight:800;font-size:clamp(1.5rem,3.6vw,2.1rem);line-height:1.25;margin-bottom:12px;}
.a-txt p{font-size:1rem;color:var(--sub);line-height:1.95;margin-bottom:0.7em;}

/* Getting Here：2列（徒歩／Grab） */
@media(min-width:760px){.modes{grid-template-columns:repeat(2,1fr);max-width:720px;}}


/* ---------------- v5：マストヘッド（Dominoのスクショ構図） ---------------- */
.masthead{max-width:var(--maxw);margin:0 auto;padding:72px 24px 56px;}
@media(max-width:767px){.masthead{padding:48px 24px 40px;}}
.mast-logo{width:min(680px,86vw);height:auto;margin-bottom:34px;}
.mast-lead{
  font-weight:500;font-size:clamp(1.35rem,3.6vw,2rem);
  line-height:1.55;max-width:26em;text-wrap:pretty;
}
/* HERO＝文字なしの写真のみ */
.hero{height:min(72svh,720px);}
.hero-overlay,.hero-inner,.hero-logo{display:none;}


/* ============================================================
   v6：Domino比較検証にもとづく修正
   ============================================================ */

/* --- マストヘッド：PCはロゴ左＋文を右下（Dominoの構図） --- */
.mast-grid{display:grid;gap:26px;}
@media(min-width:900px){
  .mast-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:end;gap:56px;}
}
.mast-logo{width:min(880px,92vw);height:auto;margin-bottom:0;}
.mast-lead{font-weight:500;font-size:clamp(1.15rem,2.6vw,1.45rem);line-height:1.6;max-width:24em;}

/* --- 営業時間：大きな通常ウェイト2行（Dominoの "We are open daily / 6am—11pm"） --- */
.open-lbl{
  font-size:clamp(1.7rem,4.4vw,2.5rem);font-weight:500;letter-spacing:0;
  text-transform:none;color:var(--ink);margin-bottom:0;line-height:1.3;
}
.open-hours{
  font-family:var(--font);font-weight:500;
  font-size:clamp(1.7rem,4.4vw,2.5rem);line-height:1.3;margin-bottom:14px;
}
/* 会期前の期間表示はピルにしない（ボタンに見えるため） */
.hero-status2.plain{background:none;color:var(--sub);padding:0;border-radius:0;font-weight:500;font-size:1rem;}

/* --- 色付きタイルのグリッド（Dominoの署名ブロック） --- */
.intro-grid{display:grid;gap:40px;}
@media(min-width:900px){.intro-grid{grid-template-columns:1fr 1fr;gap:64px;align-items:start;}}
.intro-h{font-weight:800;font-size:clamp(1.7rem,4.4vw,2.6rem);line-height:1.2;letter-spacing:-0.01em;margin-bottom:16px;}
.tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.tile{
  position:relative;display:flex;flex-direction:column;justify-content:space-between;
  aspect-ratio:1.6/1;padding:14px 16px;border-radius:var(--radius);
  font-weight:700;font-size:clamp(0.95rem,2.6vw,1.1rem);line-height:1.35;
  transition:transform .15s ease;
}
.tile:hover{transform:translateY(-2px);}
.tile .arw{align-self:flex-end;font-weight:400;}
.tile.t1{background:var(--orange-soft);}
.tile.t2{background:var(--blue-soft);}
.tile.t3{background:#17202E;color:#EDE7DC;}
.tile.t4{background:#DCE9DC;}
.tile.t5{background:var(--orange);color:#fff;}

/* --- 色面バンド：フルブリード（角丸カードをやめる） --- */
.rain-band{background:var(--blue-soft);}
.night-band{background:#17202E;}
.rain-band,.night-band{margin-top:96px;}
.band-in{padding:64px 24px;gap:32px;align-items:center;}
@media(min-width:900px){.band-in{grid-template-columns:1fr 1fr;gap:64px;padding:80px 24px;}}
.band-txt{padding:0;border-radius:0;background:none !important;}
.band-img{min-height:0;border-radius:var(--radius);}
.band-img img{aspect-ratio:4/3;}

/* --- TODAYカード：夜モードの日付丸を可視化＋モバイル整理 --- */
.today.is-night .t-date{background:#EDE7DC;color:#17202E;}
.t-temp{font-size:clamp(3.6rem,13vw,7rem);}
@media(max-width:560px){
  .today{min-height:320px;}
  .t-meta{top:26px;bottom:auto;right:24px;}
  .t-note{top:auto;bottom:110px;max-width:70%;}
}

/* エリア見出しをDominoスケールに */
.a-txt h3{font-size:clamp(1.7rem,4vw,2.4rem);}

.tile.t5{background:var(--orange);color:#fff;}
.tile.t6{background:#F1EBDF;}


/* v6.1：モバイル修正 */
.mast-logo{width:100%;max-width:880px;}     /* 92vwはpadding分を超えて横スクロールを生んでいた */
html,body{overflow-x:clip;}


/* v6.2：グリッドのmin-width吹き出し対策（max-widthのem指定が列をmax-contentに広げていた） */
.mast-grid,.welcome-grid,.intro-grid{grid-template-columns:minmax(0,1fr);}
@media(min-width:900px){
  .mast-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);}
  .welcome-grid{grid-template-columns:minmax(0,5fr) minmax(0,4fr);}
  .intro-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
}
.mast-lead{max-width:min(24em,100%);}
.intro-lead{max-width:min(46em,100%);}


/* v6.3：min-width:auto を全面的に殺す（根本対応） */
.mast-grid > *,.welcome-grid > *,.intro-grid > *,.band-in > *,.area-block > *,
.tile-grid > *,.visit-cards > *,.modes > *,.access > *,.water-grid > *{min-width:0;}
@media(max-width:899px){
  .mast-lead,.intro-lead{max-width:none;}
}


/* ============================================================
   v7：SP文字サイズをDomino実測スケールに引き上げ
   Domino mobile: リード28px / 本文20px / 見出し40–52px /
                  キャプション14px / ボタン18px
   PCは現状維持（≤899pxのみ適用）
   ============================================================ */
@media(max-width:899px){
  html{font-size:17px;}                      /* remの全体レバー +6% */

  /* リード＝Dominoの28px級 */
  .mast-lead{font-size:1.6rem;line-height:1.5;}
  /* 見出し */
  .intro-h{font-size:2.1rem;}
  .sec h2{font-size:2.25rem;}
  .sec h2.sub{font-size:1.5rem;}
  .open-lbl,.open-hours{font-size:1.85rem;line-height:1.35;}
  /* 本文＝Dominoの20px級 */
  .intro-lead{font-size:1.18rem;line-height:1.85;}
  .a-txt p,.rain-body p,.night-body p{font-size:1.18rem;line-height:1.85;}
  .a-txt h3{font-size:1.7rem;}
  .rain-lead,.night-lead{font-size:1.75rem;}
  .visit-by{font-size:1.15rem;}
  /* ボタン＝Domino 18px */
  .btn{font-size:1.06rem;height:44px;border-radius:22px;padding:2px 20px 0;}
  .ev .more{font-size:1rem;height:38px;border-radius:19px;}
  /* タイル */
  .tile{font-size:1.18rem;aspect-ratio:1.5/1;}
  /* リスト・Q&A・ルール */
  .qa .q{font-size:1.15rem;}
  .qa .a{font-size:1.04rem;line-height:1.85;}
  .faq summary{font-size:1.1rem;padding:20px 0;}
  .faq .ans{font-size:1.04rem;line-height:1.85;}
  .rules li{font-size:1.04rem;padding:13px 0 13px 26px;}
  .wcard p{font-size:1.04rem;}
  .wcard .src{font-size:0.8rem;}
  /* イベント行 */
  .ev h3{font-size:1.35rem;}
  .ev p{font-size:1.04rem;}
  .ev .tag{font-size:0.88rem;}
  /* インフォ・アクセス */
  .info-rows dt{font-size:1rem;}
  .info-rows dd{font-size:1.04rem;}
  .access .addr{font-size:1.18rem;}
  .access .supp{font-size:1.02rem;}
  .mode h4{font-size:1.12rem;}
  .mode p{font-size:0.98rem;}
  .vcard .big{font-size:1.35rem;}
  .vcard .lbl{font-size:0.8rem;}
  /* TODAYカード */
  .t-note{font-size:1rem;}
  .t-meta .v{font-size:0.9rem;}
  .t-meta .k{font-size:0.78rem;}
  .hero-status2{font-size:0.95rem;}
  /* フッター */
  .foot-nav a{font-size:0.98rem;}
  .orgs .name{font-size:0.95rem;}
  .foot-tags{font-size:0.9rem;}
  /* イベント詳細ページ */
  .detail p{font-size:1.15rem;line-height:1.9;}
  .fields .v{font-size:1.05rem;}
  .fields .k{font-size:0.74rem;}
  .sched .t{font-size:1.1rem;}
  .sched .w{font-size:1.05rem;}
  .presented{font-size:0.98rem;}
  .partner p{font-size:1.02rem;}
  .more-links a{font-size:1.08rem;}
  .back{font-size:0.95rem;}
}


/* ============================================================
   v8：Dominoの6段階タイプスケールを正式採用（PC/SP共通）
   48 → 40 → 32 → 24 → 16 → 12px
   原則：見出し＝巨大＋詰める（tight tracking / tight leading）
         本文＝小さめの等幅（IBM Plex Mono・越語対応）＋少し開ける
   このコントラストがDominoの骨格。
   ============================================================ */
:root{
  --fs1:48px; --fs2:40px; --fs3:32px; --fs4:24px; --fs5:16px; --fs6:12px;
  --mono:"IBM Plex Mono","Noto Sans JP",monospace;
}

/* ---- 本文＝16px mono・字間+2%・行間広め ---- */
body{font-family:var(--mono);font-size:var(--fs5);letter-spacing:0.02em;line-height:1.85;}
.mast-lead,.intro-lead,.visit-by,
.a-txt p,.rain-body p,.night-body p,
.qa .a,.faq .ans,.rules li,.wcard p,
.ev p,.info-rows dd,.access .supp,.mode p,.vcard p,
.t-note,.detail p,.sched .w,.partner p{
  font-family:var(--mono);font-size:var(--fs5);letter-spacing:0.02em;line-height:1.85;
}

/* ---- 見出し＝サンズ太字・巨大・詰める ---- */
h1,h2,h3,h4,.sec h2,.intro-h,.a-txt h3,.ev h3,.detail h1,.detail h2,
.rain-lead,.night-lead,.open-lbl,.open-hours,.tile,.qa .q,.faq summary,
.wordmark,.btn,.lang button,.access .addr,.vcard .big,.mode h4,.fields .v,
.more-links a,.ev .more,.back,.quick a{
  font-family:var(--font);
}
.sec h2{font-size:var(--fs1);letter-spacing:-0.025em;line-height:1.02;font-weight:800;}
.intro-h{font-size:var(--fs1);letter-spacing:-0.025em;line-height:1.06;font-weight:800;}
.rain-lead,.night-lead{font-size:var(--fs2);letter-spacing:-0.02em;line-height:1.1;}
.sec h2.sub{font-size:var(--fs3);letter-spacing:-0.02em;line-height:1.15;}
.a-txt h3{font-size:var(--fs3);letter-spacing:-0.02em;line-height:1.15;font-weight:800;}
.ev h3{font-size:var(--fs4);letter-spacing:-0.015em;line-height:1.2;}
.detail h1{font-size:var(--fs1);letter-spacing:-0.025em;line-height:1.05;}
.detail h2{font-size:var(--fs3);letter-spacing:-0.02em;}
.open-lbl,.open-hours{font-size:var(--fs3);letter-spacing:-0.02em;line-height:1.2;font-weight:700;}
.mast-lead{font-family:var(--mono);font-size:var(--fs4);line-height:1.6;letter-spacing:0.01em;font-weight:400;}
.tile{font-size:var(--fs4);letter-spacing:-0.01em;font-weight:700;}
.qa .q{font-size:var(--fs5);font-weight:700;letter-spacing:0;}
.faq summary{font-size:var(--fs5);font-weight:700;}
.vcard .big{font-size:var(--fs4);letter-spacing:-0.015em;}
.access .addr{font-size:var(--fs4);letter-spacing:-0.015em;line-height:1.4;}
.mode h4{font-size:var(--fs5);font-weight:700;}
.fields .v{font-size:var(--fs5);}
.more-links a{font-size:var(--fs5);}
.intro-lead{font-size:var(--fs5);}

/* ---- キャプション＝12px mono・大きく開ける ---- */
.a-txt .zone,.wcard .src,.fields .k,.t-meta .k,.open-lbl2,
.vcard .lbl,.orgs .role,.rain-band h2,.night-band h2,
.presented,.ev .tag,.foot-tags,.foot-meta,.hero-status2,.info-rows dt{
  font-family:var(--mono);font-size:var(--fs6);letter-spacing:0.18em;text-transform:uppercase;font-weight:500;
}
.info-rows dt{text-transform:none;letter-spacing:0.06em;}
.presented{text-transform:none;letter-spacing:0.04em;}
.hero-status2{letter-spacing:0.06em;text-transform:none;font-size:13px;}
.ev .tag{letter-spacing:0.08em;}

/* ---- ボタン・ナビ＝サンズ16px ---- */
.btn{font-size:var(--fs5);font-weight:600;}
.site-nav a{font-size:14px;}
.ev .more{font-size:14px;font-weight:600;}
.back{font-size:14px;font-weight:600;}
.t-meta .v{font-family:var(--mono);font-size:13px;}
.sched .t{font-size:var(--fs5);}
.foot-nav a{font-family:var(--mono);font-size:13px;}
.orgs .name{font-family:var(--mono);font-size:13px;letter-spacing:0.02em;}

/* ---- v7のSP用微調整は6段階に吸収（上書き） ---- */
@media(max-width:899px){
  html{font-size:16px;}
  .sec h2{font-size:40px;}          /* SPの最上位は40（Domino max-md:52はH1のみ） */
  .intro-h{font-size:40px;}
  .detail h1{font-size:40px;}
  .rain-lead,.night-lead{font-size:32px;}
  .a-txt h3{font-size:32px;}
  .open-lbl,.open-hours{font-size:32px;}
  .mast-lead{font-size:24px;}
  .tile{font-size:24px;aspect-ratio:1.5/1;}
  .ev h3{font-size:24px;}
}


/* v9：書体変更の取り消し。--mono を本来の書体に束ねる（サイズ段階・字間設計は維持） */
:root{--mono:var(--font);}
body{letter-spacing:0.01em;}


/* ============================================================
   v10：最小フォントサイズを16pxに（12px段を廃止）
   スケールは 48 → 40 → 32 → 24 → 16 の5段階になる
   ============================================================ */
:root{--fs6:16px;}
.site-nav a{font-size:16px;}
.lang button{font-size:16px;padding:7px 14px;}
.btn{font-size:16px;}
.ev .more{font-size:16px;}
.back{font-size:16px;}
.hero-status2{font-size:16px;}
.t-meta .k{font-size:16px;}
.t-meta .v{font-size:16px;}
.t-date .m,.t-date .w{font-size:13px;}   /* 例外：直径88pxの丸の中のみ（AUG/THU） */
.foot-nav a{font-size:16px;}
.orgs .role{font-size:12px;}             /* 例外候補 → やはり16に寄せるなら下行を有効化 */
.orgs .role{font-size:16px;letter-spacing:0.1em;}
.orgs .name{font-size:16px;}
.foot-tags,.foot-meta{font-size:16px;}
.mode p{font-size:16px;}
.wcard .src{font-size:16px;letter-spacing:0.12em;}
.a-txt .zone{font-size:16px;letter-spacing:0.12em;}
.rain-band h2,.night-band h2{font-size:16px;letter-spacing:0.14em;}
.vcard .lbl{font-size:16px;letter-spacing:0.12em;}
.fields .k{font-size:16px;letter-spacing:0.1em;}
.ev .tag{font-size:16px;}
.presented{font-size:16px;}
.info-rows dt{font-size:16px;}
/* 日付丸バッジは物理サイズを少し拡大して16px級の視認性に */
.ev .date{width:96px;height:96px;}
.ev{grid-template-columns:96px 1fr;}
@media(min-width:760px){.ev.has-img{grid-template-columns:96px 1fr 300px;}}


/* ============================================================
   v11：新KV（ナイトブルー×イエロー）にトンマナを合わせる
   旧KV＝白地＋橙の線画／新KV＝濃紺の俯瞰イラスト（黄・淡青がアクセント）
   ・墨         ほぼ黒   → KVの濃紺  #0E1C3F
   ・アクセント面 橙      → KVの黄    #DBC300（変数名 --orange は据え置き）
   ・小さな文字のアクセントは黄では読めないので KVの中間青 #1A498A を使う
   ・淡青       → KVの雨の水色 #DCEAFB
   ・夜バンド／フッター → KVの背景紺 #001C57
   ============================================================ */
:root{
  --ink:#0E1C3F;
  --sub:#5B657F;
  --orange:#DBC300;        /* = KV yellow（面のアクセント） */
  --orange-soft:#FAF0AE;
  --blue:#1A498A;          /* = KV mid blue（文字のアクセント） */
  --blue-soft:#DCEAFB;     /* = KV rain blue */
  --navy:#001C57;
  --navy-deep:#00092B;
  --line:#E1E4EC;
}

/* --- 黄の面には墨文字（白は乗せない） --- */
.hero-status2{background:var(--orange);color:var(--ink);}
.hero-status2.is-rain{background:var(--blue);color:#fff;}
.today{background:var(--orange);color:var(--ink);}
.today.is-rain{background:var(--blue-soft);color:var(--ink);}
.today.is-night{background:var(--navy);color:#E9F0FF;}
.tile.t5{background:var(--orange);color:var(--ink);}
.tile.t6{background:var(--blue-soft);color:var(--ink);}
.tile.t1{background:var(--orange-soft);}

/* --- 小さなラベル類は黄をやめて中間青に（白地でのコントラスト確保） --- */
.a-txt .zone,.fcard .zone,.wcard .src,.ev .tag,.partner .lbl{color:var(--blue);}
.rules li::before{color:var(--blue);}
.faq summary::after{color:var(--blue);}
/* 「飲用ではありません」は淡黄のチップにして視認性を上げる */
.wcard .note{
  display:inline-block;margin-top:12px;padding:4px 12px;border-radius:14px;
  background:var(--orange-soft);color:var(--ink);font-weight:700;
}

/* --- 夜バンド／フッターをKVの紺に --- */
.night-band{background:var(--navy);}
.night-band .band-txt{background:var(--navy);color:#E9F0FF;}
.night-band h2{color:var(--orange);}
.foot{background:var(--navy);}

/* ============================================================
   v11-b：HERO＝承認済みKVをポスターとして全面に置く
   KVに題字・会期・会場・無料表記が焼き込まれているため、
   cover でトリミングせず contain で必ず全体を見せる。
   余白はKVの地色（濃紺）で埋めるので継ぎ目が出ない。
   ============================================================ */
.hero{
  height:auto;min-height:0;display:block;overflow:hidden;
  background:var(--navy-deep);
}
.hero picture{display:block;}
.hero .hero-img{
  position:static;inset:auto;
  width:100%;height:auto;max-height:min(86svh,880px);
  object-fit:contain;object-position:center;
}
/* KVの直下に置く一文（ロゴはKVと重複するため出さない） */
.masthead{padding-top:56px;padding-bottom:0;}
@media(max-width:767px){.masthead{padding-top:40px;}}
.masthead .mast-lead{max-width:min(34em,100%);}

/* ============================================================
   v11-c：イベントのカバー（イラストの上に文字を載せる＝仮カバー）
   画像は文字なしイラストの切り出し。文字はHTML側なので差し替え自由。
   ============================================================ */
.ev-cover{
  position:relative;border-radius:16px;overflow:hidden;
  margin:22px 0 30px;background:var(--navy-deep);
  display:flex;align-items:flex-end;
  min-height:clamp(300px,46svh,520px);
}
.ev-cover img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
}
.ev-cover::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,9,43,0.00) 0%,rgba(0,9,43,0.12) 34%,rgba(0,9,43,0.72) 58%,rgba(0,9,43,0.93) 78%,rgba(0,9,43,0.97) 100%);
}
.ev-cover-in{position:relative;z-index:1;padding:28px 26px;color:#fff;max-width:38em;}
@media(min-width:900px){.ev-cover-in{padding:40px 44px;}}
.ev-cover-k{
  font-size:16px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--orange);font-weight:700;margin-bottom:10px;
}
.ev-cover h1{color:#fff;margin-bottom:12px;}
.ev-cover-d{font-size:16px;font-weight:700;letter-spacing:0.04em;margin-bottom:4px;}
.ev-cover .presented{color:rgba(255,255,255,0.72);margin:0;}

/* ============================================================
   v11-d：エリア／バンドの画像はKVイラストの切り出し。
   濃紺の絵を白地に置くので、角丸と余白で「絵として」見せる。
   ============================================================ */
.a-img img,.band-img img,.ev .thumb img{background:var(--navy-deep);}

/* v11-e：ACCESS＝地図を全幅に。左に短文＋ボタンだけを置くと右半分が空いて見えていた
   （「徒歩」の説明は上の交通手段カードと重複していたので削除し、地図＋ボタンの1列にする） */
.access{display:block;}
@media(min-width:760px){.access{grid-template-columns:none;}}
.access-map{aspect-ratio:16/7;margin-bottom:18px;}
@media(max-width:759px){.access-map{aspect-ratio:4/3;}}

/* v11-f：クイックリンクのタイル配色をKVに合わせて整理（緑みを外す） */
.tile.t3{background:var(--navy);color:#E9F0FF;}
.tile.t4{background:#EEF1F7;color:var(--ink);}
.tile.t6{background:var(--orange-soft);color:var(--ink);}

/* v11-g：ヘッダーのワードマークに実寸を与える（未指定で原寸依存になっていた） */
.site-head .wordmark img{height:26px;width:auto;display:block;}

/* v11-h：カバーの文字が黄色い人物に重なると読めなかったので、
   文字ブロックそのものにも下地を敷いて可読性を担保する */
.ev-cover{min-height:clamp(340px,52svh,560px);}
.ev-cover-in{
  width:100%;max-width:none;
  padding-top:96px;
  background:linear-gradient(180deg,rgba(0,9,43,0) 0%,rgba(0,9,43,0.62) 26%,rgba(0,9,43,0.92) 100%);
}
@media(min-width:900px){.ev-cover-in{padding-top:110px;}}
.ev-cover-k{color:var(--orange);text-shadow:0 1px 10px rgba(0,9,43,0.9);}
.ev-cover h1,.ev-cover-d{text-shadow:0 1px 12px rgba(0,9,43,0.85);}
.ev-cover-d{color:#fff;}

/* v11-i：エリアカードの画像は設計CG（studio anettai）に戻す。
   完成予想であることが伝わるようキャプションを添える */
.a-img{position:relative;}
.a-cap{
  margin-top:8px;font-size:13px;letter-spacing:0.06em;color:var(--sub);
}

/* v11-j：日付バッジが期間表示（30–01 / OCT–NOV）でも収まるようにする。
   桁数が増えたときだけ字を詰める（1日・2日のイベントは今までどおり） */
.ev .date .d{line-height:1.05;}
.ev .date.wide .d{font-size:1.15rem;letter-spacing:-0.01em;}
.ev .date.wide .m{font-size:0.56rem;letter-spacing:0.10em;}

/* v11-k：タイムテーブル未定のイベントは「概要のみ」。決定後に .sched を戻すだけでよい */
.sched-tbd{
  margin-top:26px;padding:16px 18px;border-radius:var(--radius);
  background:var(--blue-soft);color:var(--ink);font-weight:500;
}

/* ============================================================
   v11-l：TODAYカードのSPレイアウトを絶対配置からグリッドへ
   ベトナム語のラベル（THỜI TIẾT / BÌNH MINH / HOÀNG HÔN）は
   英語より長く、360〜390px幅で左上の日付バッジに重なっていた。
   px単位のbottom/top指定を積み増して直すと言語ごとに破綻するので、
   カードが全幅になる 899px 以下では通常フローのグリッドに組み替える
   （620px以下だけだと、621〜899pxでカード中央に大きな空白が残っていた）。
   ============================================================ */
@media(max-width:899px){
  .today{
    position:relative;min-height:0;padding:20px;
    display:grid;grid-template-columns:auto minmax(0,1fr);
    gap:16px 14px;align-items:center;
  }
  /* 1段目＝日付バッジと気温。2段目＝天気の3項目を全幅で。3段目＝ひとこと */
  .t-date{position:static;inset:auto;grid-column:1;grid-row:1;width:72px;height:72px;}
  .t-temp{
    position:static;inset:auto;grid-column:2;grid-row:1;justify-self:end;
    font-size:clamp(3rem,15vw,4.4rem);line-height:1;margin:0;
  }
  .t-meta{
    position:static;inset:auto;grid-column:1 / -1;grid-row:2;
    display:grid;grid-template-columns:auto auto;
    justify-content:space-between;align-content:start;gap:4px 12px;
  }
  /* 越語のラベルは英語より長い。字間を詰めて1行に収める */
  .t-meta .k{letter-spacing:0.06em;}
  .t-note{position:static;inset:auto;grid-column:1 / -1;grid-row:3;max-width:none;margin:0;}
}

/* v11-m：クイックリンクのタイル高さをSPで揃える
   aspect-ratio は「最低限の高さ」でしかないので、ラベルが2行になった行だけ
   背が高くなっていた（越語は英語より折り返しやすい）。
   行を 1fr にして、いちばん高い行にすべての行を合わせる */
.tile-grid{grid-auto-rows:1fr;}
.tile{height:100%;}

/* v11-n：狭い画面でイベント行を1カラムに
   96pxの日付バッジが幅の3割を占め、360pxでは本文が10行以上に折り返していた。
   バッジを本文の上に置き、テキストに全幅を渡す。 */
@media(max-width:560px){
  .ev{grid-template-columns:1fr;gap:14px;align-items:start;padding:26px 0;}
  .ev .date{width:76px;height:76px;}
  .ev .date .d{font-size:1.3rem;}
  .ev .date.wide .d{font-size:1.02rem;}
}

/* v11-o：タイムテーブルは狭い画面で時刻を上に積む
   130pxの時刻列で本文が160px程度になり、1項目が3〜4行に折り返していた */
@media(max-width:560px){
  .sched div{grid-template-columns:1fr;gap:4px;padding:14px 0;}
  .sched .t{font-size:0.95rem;letter-spacing:0.04em;color:var(--blue);}
}
