/* =========================================================
   THE WALK JAPAN 2027 OKINAWA – pages.css (v3 下層ページ)
   一意のヒーロー（h-*）＋ バリエーションのあるセクション（pg-*）
   C01 のカラー/フォントを継承。SP本文 15px / 行間1.9 以上。
   ========================================================= */
:root{--hd:82px;--gut:clamp(20px,5.6vw,88px);--wrap:1180px;--glow:0 0 80px rgba(227,19,42,.35)}
@media (max-width:767px){:root{--hd:46px}}
.page-about main,.page-story main,.page-outline main,.page-entry main,.page-sponsor main,.page-news main,.page-contact main,.page-news-detail main{overflow-x:clip}
picture{display:block}
figure>picture{height:100%}
picture img{display:block;width:100%;height:100%;object-fit:cover}
.sp{display:none}
@media (max-width:767px){.sp{display:inline}.pc{display:none}}

/* ---------- shared hero atoms ---------- */
.h-en{display:inline-flex;align-items:center;gap:12px;font-family:var(--serif);font-weight:700;color:var(--red);font-size:13px;letter-spacing:.24em;line-height:1}
.h-en::before{content:"";width:34px;height:1.5px;background:currentColor}
.h-en--light{color:#fff}
.h-script{font-family:"Pinyon Script",cursive;line-height:1;pointer-events:none;white-space:nowrap}
.pg-scroll{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);font:600 11px/1 var(--sans);letter-spacing:.3em;color:#fff;z-index:4;padding-bottom:46px}
.pg-scroll::after{content:"";position:absolute;left:50%;bottom:0;width:1px;height:38px;background:linear-gradient(#fff,transparent);animation:pgScroll 2s infinite}
@keyframes pgScroll{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
[data-kb] img{animation:pgKb 1.6s ease-out both}
@keyframes pgKb{from{transform:scale(1.12)}to{transform:scale(1)}}

/* ===== 1. ABOUT : cinematic ===== */
.h-cine{position:relative;height:calc(100svh - var(--hd));min-height:600px;max-height:900px;background:#000;color:#fff;overflow:hidden}
.h-cine__img{position:absolute;inset:0}
.h-cine__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72) 0,rgba(0,0,0,.25) 45%,rgba(0,0,0,.1) 70%,rgba(0,0,0,.55) 100%),linear-gradient(0deg,rgba(0,0,0,.6),transparent 40%)}
.h-cine__body{position:absolute;left:var(--gut);bottom:clamp(48px,9vh,96px);z-index:3;max-width:560px}
.h-cine__title{font-family:var(--serif);font-weight:700;font-size:clamp(30px,3.4vw,50px);letter-spacing:.14em;margin-top:18px;line-height:1.3}
.h-cine__lead{font-family:var(--serif);font-size:clamp(15px,1.25vw,18px);line-height:2;margin-top:16px;color:#eee}
.h-cine__v{position:absolute;right:calc(var(--gut) + 10px);top:clamp(40px,8vh,90px);z-index:3;writing-mode:vertical-rl;font-family:var(--serif);font-weight:600;font-size:clamp(26px,2.6vw,40px);letter-spacing:.22em;line-height:1.75;text-shadow:0 2px 18px rgba(0,0,0,.5)}
.h-cine__script{position:absolute;z-index:2;right:clamp(140px,16vw,260px);bottom:clamp(60px,12vh,140px);font-size:clamp(64px,8.4vw,132px);color:rgba(255,255,255,.88);transform:rotate(-8deg);text-shadow:0 4px 30px rgba(0,0,0,.4)}
@media (max-width:767px){
  .h-cine{height:calc(100svh - var(--hd) - 64px);min-height:560px}
  .h-cine__shade{background:linear-gradient(0deg,rgba(0,0,0,.82) 0,rgba(0,0,0,.2) 55%,rgba(0,0,0,.35) 100%)}
  .h-cine__img img{object-position:62% 40%!important}
  .h-cine__v{right:18px;top:24px;font-size:24px}
  .h-cine__script{right:auto;left:18px;bottom:auto;top:46%;font-size:60px}
  .h-cine__body{left:20px;right:20px;bottom:76px}
  .pg-scroll{bottom:10px;padding-bottom:34px}.pg-scroll::after{height:28px}
}

/* ===== 2. STORY : editorial mosaic ===== */
.h-mosaic{position:relative;background:var(--black);color:#fff;overflow:hidden;padding:clamp(40px,5vw,72px) var(--gut);min-height:min(820px,calc(100svh - var(--hd)))}
.h-mosaic__grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(6,1fr);gap:10px;padding:10px}
.h-mosaic__grid figure{margin:0;overflow:hidden;position:relative;animation:pgWipe .85s cubic-bezier(.7,0,.2,1) both;animation-delay:calc(var(--d)*.12s + .03s)}
.h-mosaic__grid figure img{filter:saturate(.9);transition:transform .66s}
.h-mosaic__grid figure:hover img{transform:scale(1.05)}
@keyframes pgWipe{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
.m0{grid-column:7/10;grid-row:1/5}.m1{grid-column:10/13;grid-row:1/4}.m2{grid-column:10/13;grid-row:4/7}.m3{grid-column:7/10;grid-row:5/7}
.m4{grid-column:5/7;grid-row:1/3}.m5{grid-column:5/7;grid-row:3/5;opacity:.85}.m6{grid-column:5/7;grid-row:5/7;opacity:.85}
.h-mosaic::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--black) 0,rgba(11,11,13,.92) 30%,rgba(11,11,13,.2) 52%,transparent 70%);pointer-events:none}
.h-mosaic__body{position:relative;z-index:3;display:flex;flex-direction:column;justify-content:flex-end;min-height:calc(min(820px,calc(100svh - var(--hd))) - 2*clamp(40px,5vw,72px));max-width:520px}
.h-mosaic__issue{font:700 12px/1 var(--sans);letter-spacing:.3em;color:var(--red);border-top:1px solid rgba(255,255,255,.3);padding-top:14px;position:absolute;top:0;left:0;right:0}
.h-mosaic__big{font-family:"Pinyon Script",cursive;font-size:clamp(96px,12vw,190px);line-height:.9;color:#fff;margin-left:-.06em}
.h-mosaic__title{font-family:var(--serif);font-weight:700;font-size:clamp(28px,2.6vw,40px);letter-spacing:.16em;margin-top:18px}
.h-mosaic__lead{font-family:var(--serif);font-size:clamp(15px,1.2vw,17px);line-height:2;color:#ddd;margin-top:14px}
@media (max-width:767px){
  .h-mosaic{padding:0;min-height:0}
  .h-mosaic__grid{position:relative;height:118vw;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(6,1fr);gap:6px;padding:6px}
  .m0{grid-column:1/4;grid-row:1/5}.m1{grid-column:4/7;grid-row:1/3}.m2{grid-column:4/7;grid-row:3/5}.m3{grid-column:1/3;grid-row:5/7}.m4{grid-column:3/5;grid-row:5/7}.m5{grid-column:5/7;grid-row:5/7}.m6{display:none}
  .h-mosaic::after{background:linear-gradient(0deg,var(--black) 0,rgba(11,11,13,.9) 34%,transparent 58%)}
  .h-mosaic__body{min-height:0;margin-top:-44vw;padding:0 20px 44px}
  .h-mosaic__issue{position:static;margin-bottom:6px}
  .h-mosaic__big{font-size:92px}
}

/* ===== 3. OUTLINE : split typography + countdown ===== */
.h-split{display:grid;grid-template-columns:1.08fr 1fr;min-height:min(760px,calc(100svh - var(--hd)));background:#fff;position:relative;overflow:hidden}
.h-split__type{padding:clamp(40px,5vw,80px) var(--gut);display:flex;flex-direction:column;justify-content:center;background:linear-gradient(90deg,#fff,#fbf6f6)}
.h-split__title{font-family:var(--serif);font-weight:700;font-size:clamp(28px,2.6vw,40px);letter-spacing:.16em;color:var(--ink);margin-top:16px}
.h-split__dates{margin-top:clamp(20px,3vw,40px);display:grid;gap:clamp(6px,1vw,14px)}
.h-date{display:grid;grid-template-columns:auto 1fr;align-items:end;column-gap:22px;color:var(--ink);text-decoration:none}
.h-date__en{grid-column:1/3;font:700 12px/1 var(--sans);letter-spacing:.28em;color:var(--red)}
.h-date__num{font-family:"Noto Serif JP",serif;font-weight:700;font-size:clamp(96px,11.5vw,184px);line-height:.95;letter-spacing:-.02em;color:var(--red)}
.h-date--out .h-date__num{color:transparent;-webkit-text-stroke:2px var(--ink)}
.h-date__ja{font-family:var(--serif);font-weight:600;font-size:15px;line-height:1.7;padding-bottom:18px;color:#444}
.h-date:hover .h-date__num{color:var(--red-d);-webkit-text-stroke-color:var(--red)}
.h-split__media{position:relative;overflow:hidden}
.h-split__media picture{position:absolute;inset:0}
.h-split__media::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(0,0,0,.55),transparent 50%)}
.h-count{position:absolute;z-index:2;left:clamp(20px,3vw,44px);right:clamp(20px,3vw,44px);bottom:clamp(20px,3vw,44px);padding:20px 24px;border-radius:6px;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.3);color:#fff}
.h-count__en{font:700 11px/1 var(--sans);letter-spacing:.3em;opacity:.9}
.h-count__nums{display:flex;gap:clamp(14px,2vw,30px);margin-top:12px}
.h-count__nums span{display:flex;flex-direction:column;font:600 11px/1 var(--sans);letter-spacing:.18em}
.h-count__nums b{font-family:var(--serif);font-weight:700;font-size:clamp(34px,3.4vw,52px);line-height:1;letter-spacing:0;margin-bottom:6px;font-variant-numeric:tabular-nums}
@media (max-width:767px){
  .h-split{grid-template-columns:1fr;min-height:0}
  .h-split__type{padding:36px 20px 28px}
  .h-date__num{font-size:clamp(84px,27vw,120px)}
  .h-date__ja{font-size:14px;padding-bottom:10px}
  .h-split__media{height:78vw}
  .h-count{padding:14px 16px}
}

/* ===== 4. ENTRY : runway + diagonal red band ===== */
.h-run{position:relative;height:calc(100svh - var(--hd));min-height:620px;max-height:880px;background:#000;overflow:hidden;color:#fff}
.h-run__img{position:absolute;inset:0}
.h-run__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.66),rgba(0,0,0,.08) 55%,transparent)}
.h-run__body{position:absolute;z-index:3;left:var(--gut);top:clamp(44px,10vh,110px)}
.h-run__title{font-family:var(--serif);font-weight:700;font-size:clamp(40px,4.6vw,72px);line-height:1.35;letter-spacing:.06em;margin-top:20px;text-shadow:0 4px 30px rgba(0,0,0,.35)}
.h-run__sub{font-family:var(--serif);font-weight:600;font-size:18px;letter-spacing:.3em;margin-top:18px;display:inline-block;border-bottom:1px solid rgba(255,255,255,.6);padding-bottom:6px}
.h-run__band{position:absolute;z-index:3;left:-4%;right:-4%;bottom:0;padding:clamp(44px,6vw,80px) calc(var(--gut) + 4%) clamp(26px,3vw,40px);background:linear-gradient(100deg,var(--red) 0,#d1061d 100%);clip-path:polygon(0 34%,100% 0,100% 100%,0 100%);display:flex;align-items:flex-end;justify-content:space-between;gap:30px;box-shadow:var(--glow)}
.h-run__pts{display:flex;gap:clamp(16px,2.6vw,44px);list-style:none;margin:0;padding:0}
.h-run__pts li{display:flex;flex-direction:column;padding-left:16px;border-left:1px solid rgba(255,255,255,.5)}
.h-run__pts b{font-family:var(--serif);font-weight:700;font-size:clamp(22px,2.2vw,34px);line-height:1.2;white-space:nowrap}
.h-run__pts small{font:500 14px/1.6 var(--sans);opacity:.9;margin-top:4px}
.h-run__cta{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.c-btn--white-fill{background:#fff;color:var(--red);border:0;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.c-btn--white-fill:hover{background:var(--ink);color:#fff}
.h-run__line{color:#fff;font:700 15px/1 var(--sans);text-decoration:underline;text-underline-offset:5px;display:inline-flex;align-items:center;gap:8px}
.h-run__script{position:absolute;z-index:2;right:var(--gut);top:clamp(40px,10vh,100px);font-size:clamp(70px,8vw,130px);color:rgba(255,255,255,.9);transform:rotate(-7deg)}
@media (max-width:767px){
  .h-run{height:auto;min-height:0;max-height:none;display:flex;flex-direction:column}
  .h-run__img{position:relative;height:96vw}
  .h-run__img img{object-position:58% 30%!important}
  .h-run__shade{height:96vw;background:linear-gradient(0deg,rgba(0,0,0,.7),transparent 60%)}
  .h-run__body{top:auto;bottom:auto;left:20px;right:20px;position:absolute;top:calc(96vw - 172px)}
  .h-run__title{font-size:34px;margin-top:12px}
  .h-run__sub{font-size:15px;margin-top:10px}
  .h-run__band{position:relative;left:0;right:0;margin-top:-26px;padding:46px 20px 26px;clip-path:polygon(0 26px,100% 0,100% 100%,0 100%);flex-direction:column;align-items:stretch;gap:18px}
  .h-run__pts{gap:0;justify-content:space-between}
  .h-run__pts li{padding:0 8px;flex:1}
  .h-run__pts li:first-child{border-left:0;padding-left:0}
  .h-run__pts b{font-size:18px;white-space:normal}
  .h-run__pts small{font-size:13px}
  .h-run__cta{align-items:stretch}.h-run__cta .c-btn{width:100%}.h-run__line{justify-content:center;font-size:15px}
  .h-run__script{top:18px;right:16px;font-size:58px}
}

/* ===== 5. SPONSOR : dark premium ===== */
.h-prem{position:relative;background:#050506;color:#fff;overflow:hidden;min-height:min(800px,calc(100svh - var(--hd)));display:flex;flex-direction:column;justify-content:flex-end}
.h-prem__img{position:absolute;inset:0}
.h-prem__img img{filter:saturate(.75) contrast(1.06)}
.h-prem__shade{position:absolute;inset:0;background:radial-gradient(60% 70% at 72% 40%,transparent,rgba(5,5,6,.85) 70%),linear-gradient(90deg,#050506 0,rgba(5,5,6,.75) 40%,rgba(5,5,6,.1) 75%),linear-gradient(0deg,#050506,transparent 40%)}
.h-prem::after{content:"";position:absolute;left:58%;top:30%;width:520px;height:520px;border-radius:50%;background:radial-gradient(rgba(227,19,42,.32),transparent 65%);filter:blur(20px);pointer-events:none}
.h-prem__body{position:relative;z-index:3;padding:clamp(60px,8vw,120px) var(--gut) 40px;max-width:780px}
.h-prem__sub{font-family:var(--serif);font-weight:600;font-size:17px;letter-spacing:.32em;margin-top:22px;color:#cfcfcf}
.h-prem__title{font-family:var(--serif);font-weight:700;font-size:clamp(36px,4.2vw,64px);line-height:1.45;letter-spacing:.06em;margin-top:14px}
.h-prem__title em{font-style:normal;background:linear-gradient(90deg,#fff,#ffb3bc);-webkit-background-clip:text;background-clip:text;color:transparent}
.h-prem .pg-btns{margin-top:30px}
.h-prem__logos{position:relative;z-index:3;border-top:1px solid rgba(255,255,255,.14);display:flex;align-items:center;gap:30px;padding:20px 0 20px var(--gut);overflow:hidden}
.h-prem__logos>p{font:700 11px/1 var(--sans);letter-spacing:.3em;color:var(--red);flex:none}
.h-prem__track{display:flex;gap:56px;animation:pgMarq 52s linear infinite;flex:none}
.h-prem__track span{font-family:"Noto Serif JP",serif;font-weight:600;letter-spacing:.22em;font-size:14px;color:rgba(255,255,255,.42);white-space:nowrap;border:1px solid rgba(255,255,255,.16);padding:10px 22px}
@media (max-width:767px){
  .h-prem{min-height:0}
  .h-prem__img{position:relative;height:84vw;inset:auto}
  .h-prem__shade{height:84vw;background:linear-gradient(0deg,#050506 0,rgba(5,5,6,.3) 60%,rgba(5,5,6,.5))}
  .h-prem::after{left:30%;top:10%;width:300px;height:300px}
  .h-prem__body{padding:0 20px 30px;margin-top:-90px}
  .h-prem__title{font-size:30px}
  .h-prem__logos{padding-left:20px;gap:18px}
}

/* ===== 6. NEWS : light journal ===== */
.h-journal{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,4vw,64px);align-items:center;padding:clamp(40px,5vw,72px) var(--gut);background:#fff;background-image:repeating-linear-gradient(0deg,transparent 0 35px,rgba(0,0,0,.035) 35px 36px)}
.h-journal__title{font-family:var(--serif);font-weight:700;font-size:clamp(34px,3.4vw,52px);letter-spacing:.14em;color:var(--ink);margin-top:16px}
.h-journal__lead{font-family:var(--serif);font-size:16px;line-height:2;color:#444;margin-top:14px}
.h-feat{display:grid;grid-template-columns:1.1fr 1fr;background:#fff;box-shadow:0 30px 60px -30px rgba(0,0,0,.28);text-decoration:none;color:var(--ink);border-radius:4px;overflow:hidden;transition:transform .5s,box-shadow .5s}
.h-feat:hover{transform:translateY(-4px);box-shadow:0 40px 70px -30px rgba(0,0,0,.35)}
.h-feat__img{margin:0;aspect-ratio:4/3;overflow:hidden}
.h-feat__img img{transition:transform .55s}.h-feat:hover .h-feat__img img{transform:scale(1.05)}
.h-feat__body{padding:clamp(20px,2.4vw,36px);display:flex;flex-direction:column}
.h-feat__new{font:700 11px/1 var(--sans);letter-spacing:.3em;color:var(--red)}
.h-feat__meta{display:flex;align-items:center;gap:12px;margin-top:14px;font:500 14px/1 var(--sans);color:#888}
.h-feat__title{font-family:var(--serif);font-weight:700;font-size:clamp(19px,1.7vw,24px);line-height:1.6;margin-top:14px}
.h-feat__more{margin-top:auto;padding-top:18px;font:700 14px/1 var(--sans);color:var(--red);display:inline-flex;gap:8px;align-items:center}
.h-journal--sm{display:block;padding:36px var(--gut) 28px}
.h-journal--sm .h-journal__title{font-size:26px}
@media (max-width:767px){
  .h-journal{grid-template-columns:1fr;padding:32px 20px 36px;gap:22px}
  .h-feat{grid-template-columns:1fr}
  .h-feat__title{font-size:18px}
}

/* ===== 7. CONTACT : calm minimal ===== */
.h-calm{position:relative;display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(30px,4vw,70px);align-items:center;padding:clamp(48px,6vw,96px) var(--gut);background:linear-gradient(180deg,#fbf8f7,#fff)}
.h-calm__title{font-family:var(--serif);font-weight:700;font-size:clamp(30px,3vw,46px);letter-spacing:.14em;color:var(--ink);margin-top:16px}
.h-calm__lead{font-family:var(--serif);font-size:16px;line-height:2;color:#444;margin-top:14px}
.h-choice{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:32px}
.h-choice__card{position:relative;display:flex;flex-direction:column;gap:8px;padding:26px 26px 24px;background:#fff;border:1px solid #eee3e3;border-radius:8px;text-decoration:none;color:var(--ink);transition:.35s;box-shadow:0 14px 34px -24px rgba(0,0,0,.3)}
.h-choice__card:hover{border-color:var(--red);transform:translateY(-3px)}
.h-choice__card b{font-family:var(--serif);font-size:19px;letter-spacing:.06em}
.h-choice__card small{font:400 15px/1.85 var(--sans);color:#555}
.h-choice__card .c-arrow{position:absolute;right:22px;top:30px}
.h-choice__ico{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fbeef0;color:var(--red)}
.h-choice__ico svg{width:22px;height:22px;fill:currentColor}
.h-choice__card:not(.h-choice__card--line) .h-choice__ico svg{fill:none}
.h-choice__card--line .h-choice__ico{background:#06c755;color:#fff}
.h-choice__tag{font:700 12px/1 var(--sans);letter-spacing:.1em;color:var(--red);margin-top:6px}
.h-calm__img{margin:0;aspect-ratio:3/4;border-radius:999px 999px 6px 6px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.35)}
@media (max-width:767px){
  .h-calm{grid-template-columns:1fr;padding:34px 20px 40px}
  .h-calm__img{position:absolute;right:20px;top:26px;width:30vw;opacity:.95}
  .h-calm__body{position:relative;z-index:2}
  .h-calm__lead{padding-right:32vw}
  .h-choice{grid-template-columns:1fr;gap:12px;margin-top:22px}
  .h-choice__card{padding:20px 50px 20px 20px}
}

/* =================== SECTIONS =================== */
.pg-sec{position:relative;padding:clamp(72px,8vw,128px) var(--gut);overflow:hidden}
.pg-sec--tint{background:linear-gradient(180deg,#fff,#fbf6f6 30%,#fbf6f6 70%,#fff)}
.pg-sec--pink{background:#fbf6f6}
.pg-wrap{max-width:var(--wrap);margin:0 auto;position:relative;z-index:2}
.pg-wrap--narrow{max-width:860px}
.pg-center{text-align:center}.pg-center .pg-label{justify-content:center}
.pg-label{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-weight:700;color:var(--red);font-size:13px;letter-spacing:.24em;line-height:1}
.pg-label__no{font-family:"Noto Serif JP",serif;font-size:13px;padding:6px 8px;border:1px solid currentColor;line-height:1}
.pg-label--light{color:#fff}
.pg-h2{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:clamp(26px,2.5vw,38px);line-height:1.55;letter-spacing:.04em;margin-top:20px}
.pg-h2 em,.pg-h3 em{font-style:normal;color:var(--red)}
.pg-h3{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:clamp(19px,1.5vw,22px);line-height:1.55;letter-spacing:.04em}
.pg-p{font-family:var(--sans);font-size:16px;line-height:2;color:#3a3a3a;letter-spacing:.03em;margin-top:18px}
.pg-note{font:400 14px/1.8 var(--sans);color:#888;margin-top:16px}
.pg-link{color:var(--red);text-decoration:underline;text-underline-offset:4px}
.pg-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.pg-btns .c-btn{margin:0}
.pg-dropcap::first-letter{float:left;font-family:var(--serif);font-weight:700;font-size:3.4em;line-height:.95;margin:.08em .12em 0 0;color:var(--red)}
.pg-outline-no{position:absolute;left:-.04em;top:.1em;font-family:"Noto Serif JP",serif;font-weight:700;font-size:clamp(160px,20vw,320px);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(227,19,42,.22);pointer-events:none;z-index:1}
.pg-outline-no--r{left:auto;right:-.04em}
.pg-head-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 30px;margin-bottom:40px}
.pg-head-row .pg-label{width:100%}.pg-head-row .pg-h2{margin-top:6px}.pg-head-row>a,.pg-head-row .pg-hint{margin-left:auto}
.pg-hint{font:500 13px/1 var(--sans);color:#999}
@media (max-width:767px){
  .pg-sec{padding:64px 20px}
  .pg-p{font-size:15px;line-height:1.95}
  .pg-h2{font-size:24px;line-height:1.6}
  .pg-outline-no{font-size:150px}
  .pg-btns .c-btn{width:100%}
}

/* concept: asymmetric + overlapping frames */
.pg-concept__grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(40px,6vw,100px);align-items:center}
.pg-concept--rev .pg-concept__grid{grid-template-columns:1.05fr 1fr}
.pg-concept__text .c-btn{margin-top:26px}
.pg-frames{position:relative;aspect-ratio:1/1.02}
.pg-frames figure{margin:0;position:absolute;overflow:hidden}
.pg-frames__a{left:0;top:0;width:72%;height:88%;box-shadow:24px 24px 0 #fbe6e9}
.pg-frames__b{right:0;bottom:0;width:44%;height:52%;border:8px solid #fff;box-shadow:0 30px 50px -20px rgba(0,0,0,.35)}
.pg-frames__cap{position:absolute;right:0;top:6%;writing-mode:vertical-rl;font:700 12px/1 var(--sans);letter-spacing:.4em;color:var(--red)}
.pg-dark .pg-frames__a{box-shadow:24px 24px 0 rgba(227,19,42,.28)}
.pg-dark .pg-frames__b{border-color:#111}
@media (max-width:767px){
  .pg-concept__grid,.pg-concept--rev .pg-concept__grid{grid-template-columns:1fr;gap:40px}
  .pg-concept--rev .pg-frames{order:2}
  .pg-frames{aspect-ratio:1/1.1;margin-right:-4px}
}

/* marquee */
.pg-marquee{overflow:hidden;background:var(--red);color:#fff;padding:18px 0;transform:rotate(-1.6deg) scale(1.03);margin:10px 0;position:relative;z-index:3}
.pg-marquee--dark{background:var(--black);transform:rotate(1.4deg) scale(1.03)}
.pg-marquee__track{display:flex;gap:30px;width:max-content;animation:pgMarq 46s linear infinite;align-items:center}
.pg-marquee span{font-family:"Noto Serif JP",serif;font-weight:700;font-size:clamp(20px,2.2vw,32px);letter-spacing:.14em;white-space:nowrap}
.pg-marquee i{font-style:normal;font-size:16px;opacity:.7}
@keyframes pgMarq{to{transform:translateX(-33.333%)}}

/* stats: dark + red glow */
.pg-stats{position:relative;background:var(--black);color:#fff;padding:clamp(64px,7vw,110px) var(--gut);overflow:hidden}
.pg-stats::before{content:"";position:absolute;left:50%;top:50%;width:900px;height:420px;transform:translate(-50%,-50%);background:radial-gradient(rgba(227,19,42,.38),transparent 65%);filter:blur(30px)}
.pg-stats__list{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;margin:0 auto}
.pg-stats__list li{text-align:center;padding:10px 16px;border-left:1px solid rgba(255,255,255,.16)}
.pg-stats__list li:first-child{border-left:0}
.pg-stats__list b{display:block;font-family:"Noto Serif JP",serif;font-weight:700;font-size:clamp(58px,6vw,92px);line-height:1;text-shadow:var(--glow)}
.pg-stats__list span{display:block;font:700 12px/1 var(--sans);letter-spacing:.26em;color:var(--red);margin-top:12px}
.pg-stats__list small{display:block;font:400 14px/1.7 var(--sans);color:#ccc;margin-top:10px}
.pg-stats--line{background:#0b0b0d;border-top:1px solid rgba(255,255,255,.08)}
@media (max-width:767px){.pg-stats{padding:54px 20px}.pg-stats__list{grid-template-columns:1fr 1fr;row-gap:30px}.pg-stats__list li:nth-child(3){border-left:0}.pg-stats__list b{font-size:56px}}

/* sticky storytelling */
.pg-sticky__head{max-width:720px}
.pg-sticky__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px);margin-top:56px}
.pg-sticky__media{position:sticky;top:calc(var(--hd) + 40px);height:calc(100vh - var(--hd) - 80px);max-height:640px}
.pg-sticky__media figure{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.04);transition:opacity .7s,transform .9s;overflow:hidden;border-radius:2px}
.pg-sticky__media figure.is-on{opacity:1;transform:none}
.pg-sticky__count{position:absolute;z-index:2;left:-1px;bottom:-1px;background:#fff;padding:14px 18px 0 0;font:600 14px/1 var(--sans);color:#999;letter-spacing:.1em}
.pg-sticky__count b{font-family:"Noto Serif JP",serif;font-size:40px;color:var(--red);margin-right:4px}
.pg-sticky__steps{list-style:none;margin:0;padding:0}
.pg-sticky__steps li{min-height:72vh;max-height:none;display:flex;flex-direction:column;justify-content:center;opacity:.28;transition:opacity .5s;border-top:1px solid var(--line)}
.pg-sticky__steps li.is-on{opacity:1}
.pg-step-no{font:700 13px/1 var(--sans);letter-spacing:.26em;color:var(--red);margin-bottom:14px}
.pg-sticky__steps .pg-h3{font-size:clamp(24px,2.2vw,32px)}
.pg-sticky__sp{display:none}
@media (max-width:767px){
  .pg-sticky__grid{grid-template-columns:1fr;margin-top:30px}
  .pg-sticky__media{display:none}
  .pg-sticky__steps li{min-height:0;opacity:1;padding:26px 0 8px;border-top:0}
  .pg-sticky__sp{display:block;margin:0 0 18px;aspect-ratio:4/3;overflow:hidden}
  .pg-sticky__steps .pg-h3{font-size:22px}
}

/* okinawa: diagonal clip + pull quote */
.pg-oki{position:relative;display:grid;grid-template-columns:1fr 1fr;min-height:620px;background:#fff}
.pg-oki__img{position:relative;clip-path:polygon(0 0,100% 0,82% 100%,0 100%);overflow:hidden}
.pg-oki__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:30% center}
.pg-oki__body{padding:clamp(60px,7vw,110px) var(--gut) clamp(60px,7vw,110px) 0;align-self:center;max-width:560px}
.pg-oki .c-btn{margin-top:26px}
.pg-pull{font-family:var(--serif);font-weight:700;font-size:clamp(38px,4vw,60px);line-height:1.35;letter-spacing:.06em;color:var(--ink);margin:22px 0 0;position:relative;padding-left:.1em}
.pg-pull::before{content:"“";position:absolute;left:-.5em;top:-.3em;font-size:2.2em;color:var(--red);opacity:.3;line-height:1}
.pg-pull small{display:block;font-size:16px;letter-spacing:.2em;color:var(--red);margin-top:14px}
.pg-pull em{font-style:normal;color:var(--red)}
.pg-pull--light{color:#fff}.pg-pull--light em{color:#ff8a98}
@media (max-width:767px){.pg-oki{grid-template-columns:1fr;min-height:0}.pg-oki__img{height:64vw;clip-path:polygon(0 0,100% 0,100% 82%,0 100%)}.pg-oki__body{padding:40px 20px 64px}.pg-pull{font-size:34px}.pg-pull::before{left:-.2em}}

/* letter (message) */
.pg-letter{background:#fbf6f6}
.pg-letter__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,96px);align-items:center}
.pg-letter__photo{margin:0;position:relative}
.pg-letter__photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:70% center;display:block;border-radius:200px 200px 2px 2px}
.pg-letter__photo figcaption{position:absolute;left:-16px;bottom:30px;background:var(--red);color:#fff;font:700 13px/1.5 var(--sans);padding:10px 16px;letter-spacing:.06em;max-width:80%}
.pg-sign{margin-top:30px;display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.pg-sign span{font-family:var(--serif);font-weight:700;font-size:24px;letter-spacing:.2em;color:var(--ink)}
.pg-sign em{font-family:"Pinyon Script",cursive;font-style:normal;font-size:34px;color:var(--red)}
@media (max-width:767px){.pg-letter__grid{grid-template-columns:1fr}.pg-letter__photo{max-width:78%;margin:0 auto}}

/* route: drawn line */
.pg-route{list-style:none;padding:0;margin:56px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative}
.pg-route::before{content:"";position:absolute;left:24px;right:24px;top:24px;height:2px;background:var(--red);transform:scaleX(var(--p,0));transform-origin:left;transition:transform .8s cubic-bezier(.6,0,.2,1)}
.pg-route li{position:relative;z-index:1}
.pg-route b{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#fff;border:2px solid var(--red);font-family:"Noto Serif JP",serif;color:var(--red);font-size:16px}
.pg-route li:last-child b{background:var(--red);color:#fff;box-shadow:var(--glow)}
.pg-route span{display:block;font:700 12px/1 var(--sans);letter-spacing:.24em;color:var(--red);margin-top:20px}
.pg-route h3{font-family:var(--serif);font-size:20px;margin-top:10px;color:var(--ink)}
.pg-route p{font:400 15px/1.85 var(--sans);color:#555;margin-top:8px}
.pg-route strong{display:block;font-family:var(--serif);color:var(--ink);font-size:16px}
@media (max-width:767px){
  .pg-route{grid-template-columns:1fr;gap:28px;margin-top:36px;padding-left:66px}
  .pg-route::before{left:24px;right:auto;top:24px;bottom:24px;width:2px;height:auto;transform:scaleY(var(--p,0));transform-origin:top}
  .pg-route b{position:absolute;left:-66px;top:0}
  .pg-route span{margin-top:4px}
}

/* story: magazine intro */
.pg-intro__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,5vw,80px);align-items:end}
.pg-cols{columns:2;column-gap:40px}.pg-cols .pg-p:first-child{margin-top:0}
@media (max-width:767px){.pg-intro__grid{grid-template-columns:1fr}.pg-cols{columns:1}}
/* story: spread */
.pg-spread{display:grid;grid-template-columns:1fr 1fr;background:var(--black);color:#fff;min-height:680px}
.pg-spread__img{margin:0;position:relative;overflow:hidden}.pg-spread__img picture{position:absolute;inset:0}
.pg-spread__body{padding:clamp(56px,6vw,100px) var(--gut);align-self:center;position:relative}
.pg-spread__body::before{content:"";position:absolute;right:10%;top:10%;width:300px;height:300px;background:radial-gradient(rgba(227,19,42,.3),transparent 65%);filter:blur(10px)}
.pg-spread .pg-p{color:#ddd}
.pg-spread__name{font:700 14px/1 var(--sans);letter-spacing:.12em;color:#aaa;margin:22px 0 26px;padding-left:40px;position:relative}
.pg-spread__name::before{content:"";position:absolute;left:0;top:50%;width:28px;height:1px;background:var(--red)}
@media (max-width:767px){.pg-spread{grid-template-columns:1fr;min-height:0}.pg-spread__img{height:110vw}.pg-spread__body{padding:44px 20px 56px}.pg-spread .pg-pull{font-size:30px}.pg-spread .c-btn{width:100%}}
/* story: voices masonry / SP horizontal */
.pg-voices{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:10px;gap:0 28px}
.pg-voice{grid-row:span 44}.pg-voice.is-wide{grid-row:span 38}.pg-voice.is-tall{grid-row:span 52}
.pg-voice:nth-child(3n+2){margin-top:60px}
.pg-voice a{display:block;text-decoration:none;color:var(--ink)}
.pg-voice figure{margin:0;overflow:hidden;aspect-ratio:4/5;border-radius:2px}
.pg-voice.is-wide figure{aspect-ratio:4/3.6}.pg-voice.is-tall figure{aspect-ratio:3/4.4}
.pg-voice img{transition:transform .55s}.pg-voice a:hover img{transform:scale(1.06)}
.pg-voice__meta{display:flex;gap:12px;align-items:center;margin-top:16px;font:700 12px/1 var(--sans);letter-spacing:.18em;color:var(--red)}
.pg-voice__title{font-family:var(--serif);font-weight:700;font-size:19px;line-height:1.65;margin-top:10px}
.pg-voice__name{font:400 14px/1.6 var(--sans);color:#888;margin-top:6px}
@media (max-width:767px){
  .pg-voices{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin:0 -20px;padding:0 20px 10px;scrollbar-width:none}
  .pg-voices::-webkit-scrollbar{display:none}
  .pg-voice{flex:0 0 76vw;scroll-snap-align:start;margin-top:0!important}
  .pg-voice figure,.pg-voice.is-wide figure,.pg-voice.is-tall figure{aspect-ratio:4/5}
  .pg-voice__title{font-size:18px}
}
.pg-quote{text-align:center;background:#fbf6f6}
.pg-quote__text{font-family:var(--serif);font-weight:700;font-size:clamp(28px,3.4vw,50px);line-height:1.7;letter-spacing:.08em;color:var(--ink)}
.pg-quote__text em{font-style:normal;color:var(--red);background:linear-gradient(transparent 70%,rgba(227,19,42,.15) 70%)}
@media (max-width:767px){.pg-quote__text{font-size:24px}}

/* outline: ticket stubs */
.pg-stubs{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:48px}
.pg-stub{display:grid;grid-template-columns:150px 1fr;background:#fff;border:1px solid #efe5e5;border-radius:10px;box-shadow:0 30px 60px -36px rgba(0,0,0,.3);position:relative;overflow:hidden}
.pg-stub__date{background:var(--red);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px 10px;position:relative;border-right:2px dashed rgba(255,255,255,.6)}
.pg-stub__date span{font:700 11px/1 var(--sans);letter-spacing:.24em}
.pg-stub__date b{font-family:"Noto Serif JP",serif;font-size:48px;line-height:1.1;margin:10px 0}
.pg-stub__date small{font:600 12px/1 var(--sans);letter-spacing:.2em}
.pg-stub__body{padding:30px 30px 32px}
.pg-stub__en{font:700 12px/1 var(--sans);letter-spacing:.24em;color:var(--red);margin-bottom:10px}
.pg-stub__place{display:flex;gap:6px;align-items:flex-start;font:500 15px/1.7 var(--sans);margin-top:10px;color:#333}
.pg-stub__place svg{width:16px;flex:none;margin-top:4px;fill:var(--red)}
.pg-stub .c-btn{margin-top:20px}
.pg-stub--dark{background:var(--black);border-color:#222}
.pg-stub--dark .pg-stub__date{background:#1a1a1d}
.pg-stub--dark .pg-h3,.pg-stub--dark .pg-stub__place,.pg-stub--dark .pg-p{color:#eee}
@media (max-width:767px){.pg-stubs{grid-template-columns:1fr;gap:22px;margin-top:30px}.pg-stub{grid-template-columns:1fr}.pg-stub__date{flex-direction:row;gap:14px;border-right:0;border-bottom:2px dashed rgba(255,255,255,.6);padding:16px}.pg-stub__date b{font-size:36px;margin:0}.pg-stub__body{padding:24px 20px}.pg-stub .c-btn{width:100%}}
/* timeline drawn */
.pg-tl-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,96px)}
.pg-tl-head{position:sticky;top:calc(var(--hd) + 40px);align-self:start}
.pg-tl{list-style:none;margin:0;padding:0 0 0 40px;position:relative}
.pg-tl::before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:#eadcdc}
.pg-tl::after{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--red);transform:scaleY(var(--p,0));transform-origin:top;transition:transform .2s linear}
.pg-tl li{position:relative;padding:0 0 34px;display:grid;grid-template-columns:76px 1fr;column-gap:16px}
.pg-tl li::before{content:"";position:absolute;left:-40px;top:6px;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--red);z-index:1}
.pg-tl li.is-key::before{background:var(--red);box-shadow:var(--glow)}
.pg-tl time{font-family:"Noto Serif JP",serif;font-weight:700;font-size:22px;color:var(--red);line-height:1.2}
.pg-tl b{font-family:var(--serif);font-size:18px;color:var(--ink);line-height:1.6}
.pg-tl span{grid-column:2;font:400 15px/1.85 var(--sans);color:#555;margin-top:4px}
@media (max-width:767px){.pg-tl-grid{grid-template-columns:1fr;gap:30px}.pg-tl-head{position:static}.pg-tl li{grid-template-columns:1fr}.pg-tl span{grid-column:1}.pg-tl time{font-size:20px}}
/* aside (sticky head + table) */
.pg-aside{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(40px,6vw,96px)}
.pg-aside__head{position:sticky;top:calc(var(--hd) + 40px);align-self:start}
.pg-table{margin:0;border-top:2px solid var(--ink)}
.pg-table>div{display:grid;grid-template-columns:170px 1fr;border-bottom:1px solid var(--line);padding:20px 0}
.pg-table dt{font-family:var(--serif);font-weight:700;font-size:16px;color:var(--ink)}
.pg-table dd{margin:0;font:400 16px/1.9 var(--sans);color:#333}
.pg-table dd small{display:block;font-size:14px;color:#888;margin-top:4px}
.pg-table a{color:var(--red)!important}
.pg-table--sm{border-top-width:1px}.pg-table--sm>div{grid-template-columns:70px 1fr;padding:14px 0}
@media (max-width:767px){.pg-aside{grid-template-columns:1fr;gap:26px}.pg-aside__head{position:static}.pg-table>div{grid-template-columns:1fr;gap:4px;padding:16px 0}.pg-table dd{font-size:15px}}
/* ticket */
.pg-ticket{padding:clamp(72px,8vw,120px) var(--gut);background:var(--black);position:relative;overflow:hidden}
.pg-ticket::before{content:"";position:absolute;right:-10%;top:-20%;width:700px;height:700px;background:radial-gradient(rgba(227,19,42,.35),transparent 65%)}
.pg-ticket__inner{display:grid;grid-template-columns:300px 1fr;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);-webkit-mask:radial-gradient(circle 16px at 300px 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 16px at 300px 100%,#0000 98%,#000) bottom/100% 51% no-repeat;mask:radial-gradient(circle 16px at 300px 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 16px at 300px 100%,#0000 98%,#000) bottom/100% 51% no-repeat}
.pg-ticket__stub{background:var(--red);color:#fff;padding:40px 30px;display:flex;flex-direction:column;justify-content:center;border-right:2px dashed rgba(255,255,255,.7)}
.pg-ticket__stub span{font:700 12px/1 var(--sans);letter-spacing:.3em}
.pg-ticket__stub b{font-family:"Noto Serif JP",serif;font-size:46px;margin:14px 0}
.pg-ticket__stub small{font:600 13px/1.8 var(--sans);letter-spacing:.1em}
.pg-ticket__body{padding:clamp(30px,4vw,56px)}
.pg-ticket__price{font-family:var(--serif);font-weight:700;font-size:18px;margin:18px 0 22px;color:var(--ink)}
@media (max-width:767px){.pg-ticket{padding:56px 20px}.pg-ticket__inner{grid-template-columns:1fr;-webkit-mask:none;mask:none}.pg-ticket__stub{border-right:0;border-bottom:2px dashed rgba(255,255,255,.7);padding:24px 20px}.pg-ticket__stub b{font-size:38px;margin:8px 0}.pg-ticket__body{padding:28px 20px}.pg-ticket .c-btn{width:100%}}
/* venues */
.pg-venues{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:44px}
.pg-venue{padding:36px;background:#fff;border:1px solid var(--line);border-radius:6px;position:relative}
.pg-venue::before{content:"";position:absolute;left:0;top:0;width:60px;height:4px;background:var(--red)}
.pg-venue__en{font:700 12px/1 var(--sans);letter-spacing:.24em;color:var(--red)}
.pg-venue__name{font-family:var(--serif);font-weight:700;font-size:24px;line-height:1.5;margin:12px 0 18px;color:var(--ink)}
.pg-map{margin-top:20px;height:200px;display:grid;place-items:center;background:repeating-linear-gradient(45deg,#f6f1f1 0 12px,#fbf8f8 12px 24px);font:500 14px/1 var(--sans);color:#999;border-radius:4px}
@media (max-width:767px){.pg-venues{grid-template-columns:1fr;gap:20px;margin-top:28px}.pg-venue{padding:26px 20px}.pg-venue__name{font-size:20px}}

/* entry: checks */
.pg-checks{list-style:none;padding:0;margin:44px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pg-checks li{display:flex;align-items:center;gap:18px;background:#fff;padding:22px 26px;border-radius:6px;font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.7;color:var(--ink);box-shadow:0 14px 30px -24px rgba(0,0,0,.35);border-left:3px solid var(--red)}
.pg-checks span{font-family:"Noto Serif JP",serif;font-size:28px;color:transparent;-webkit-text-stroke:1px var(--red);flex:none}
@media (max-width:767px){.pg-checks{grid-template-columns:1fr;gap:10px;margin-top:28px}.pg-checks li{font-size:16px;padding:16px 18px}}
/* entry: depth cards */
.pg-cards{list-style:none;padding:0;margin:52px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;perspective:1200px}
.pg-card{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 0 #f1e6e6,0 40px 60px -40px rgba(120,0,10,.45);transition:transform .5s,box-shadow .5s;transform-style:preserve-3d}
.pg-card:hover{transform:translateY(-8px) rotateX(3deg);box-shadow:0 60px 70px -40px rgba(120,0,10,.55)}
.pg-card--up{margin-top:-28px;margin-bottom:28px}
.pg-card figure{margin:0;aspect-ratio:4/3;overflow:hidden}
.pg-card>div{padding:26px 26px 30px;position:relative}
.pg-card__no{position:absolute;right:20px;top:-36px;font-family:"Noto Serif JP",serif;font-weight:700;font-size:64px;line-height:1;color:#fff;-webkit-text-stroke:1px var(--red);text-shadow:0 6px 20px rgba(0,0,0,.15)}
@media (max-width:767px){.pg-cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin:30px -20px 0;padding:0 20px 30px;scrollbar-width:none}.pg-cards::-webkit-scrollbar{display:none}.pg-card{flex:0 0 80vw;scroll-snap-align:start}.pg-card--up{margin:0}}
/* steps (horizontal drawn) */
.pg-steps{list-style:none;padding:0;margin:56px 0 0;display:grid;grid-template-columns:repeat(5,1fr);gap:20px;position:relative}
.pg-steps--4{grid-template-columns:repeat(4,1fr)}
.pg-steps::before{content:"";position:absolute;left:30px;right:30px;top:30px;height:2px;background:linear-gradient(90deg,var(--red) 0 50%,#eadcdc 50%) ;background-size:200% 100%;background-position:calc(100% - var(--p,0)*100%) 0;transition:background-position .77s}
.pg-steps li{position:relative;text-align:center}
.pg-steps b{display:grid;place-items:center;margin:0 auto;width:60px;height:60px;border-radius:50%;background:#fff;border:2px solid var(--red);font-family:"Noto Serif JP",serif;font-size:18px;color:var(--red);position:relative;z-index:1}
.pg-steps h3{font-family:var(--serif);font-size:18px;color:var(--ink);margin-top:18px}
.pg-steps p{font:400 15px/1.85 var(--sans);color:#555;margin-top:8px}
@media (max-width:767px){.pg-steps,.pg-steps--4{grid-template-columns:1fr;gap:0;margin-top:30px}.pg-steps::before{left:29px;right:auto;top:30px;bottom:30px;width:2px;height:auto;background:var(--red);transform:scaleY(var(--p,0));transform-origin:top;transition:transform .77s}.pg-steps li{text-align:left;padding:0 0 26px 80px;min-height:60px}.pg-steps b{position:absolute;left:0;top:0}.pg-steps h3{margin-top:14px}}
/* faq inside aside */
.pg-aside .l-faq{margin-top:0}

/* sponsor dark */
.page-sponsor{background:#0b0b0d}
.pg-dark{background:#0b0b0d;color:#eee}
.pg-dark .pg-h2,.pg-dark .pg-h3{color:#fff}.pg-dark .pg-p{color:#ccc}
.pg-glass{position:relative;padding:clamp(80px,9vw,140px) var(--gut);overflow:hidden;color:#fff}
.pg-glass__bg{position:absolute;inset:0}.pg-glass__bg::after{content:"";position:absolute;inset:0;background:rgba(5,5,6,.66)}
.pg-glass .pg-h2{color:#fff}
.pg-glass__list{list-style:none;padding:0;margin:50px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pg-glass__list li{padding:34px 30px;border-radius:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.pg-glass__list b{font-family:"Noto Serif JP",serif;font-size:40px;color:var(--red);display:block;line-height:1;margin-bottom:16px}
.pg-glass__list .pg-h3{color:#fff}.pg-glass__list .pg-p{color:#ddd}
@media (max-width:767px){.pg-glass{padding:64px 20px}.pg-glass__list{grid-template-columns:1fr;gap:14px;margin-top:30px}.pg-glass__list li{padding:24px 20px}}
.pg-plans{list-style:none;padding:0;margin:52px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:stretch}
.pg-plan{padding:34px 26px;border-radius:12px;background:linear-gradient(160deg,#1c1c20,#121215);border:1px solid #2a2a2f;box-shadow:0 30px 50px -30px #000;transition:transform .4s}
.pg-plan:hover{transform:translateY(-6px)}
.pg-plan--top{background:linear-gradient(160deg,var(--red),#8e0715);border-color:transparent;box-shadow:var(--glow),0 30px 50px -30px #000;transform:translateY(-14px)}
.pg-plan__en{font:700 11px/1 var(--sans);letter-spacing:.28em;color:var(--red)}.pg-plan--top .pg-plan__en{color:#ffd4da}
.pg-plan h3{font-family:var(--serif);font-size:20px;color:#fff;margin-top:12px}
.pg-plan__price{font-family:"Noto Serif JP",serif;font-weight:700;font-size:36px;color:#fff;margin:18px 0;line-height:1}
.pg-plan__price small{font-size:14px;margin-left:4px}
.pg-plan ul{list-style:none;padding:18px 0 0;margin:0;border-top:1px solid rgba(255,255,255,.14)}
.pg-plan ul li{font:400 15px/1.7 var(--sans);color:#ddd;padding:4px 0 4px 18px;position:relative}
.pg-plan ul li::before{content:"";position:absolute;left:0;top:13px;width:8px;height:1px;background:currentColor}
@media (max-width:767px){.pg-plans{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin:30px -20px 0;padding:20px 20px 20px;gap:14px;scrollbar-width:none}.pg-plan{flex:0 0 72vw;scroll-snap-align:start}.pg-plan--top{transform:none}}
.page-sponsor #partners{background:#fff}

/* news journal list */
.pg-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}
.pg-tabs a{padding:10px 20px;border-radius:999px;border:1px solid var(--line);font:500 15px/1 var(--sans);color:#333;text-decoration:none;transition:.3s}
.pg-tabs a[aria-current],.pg-tabs a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.pg-jlist{list-style:none;padding:0;margin:0;border-top:1px solid var(--ink)}
.pg-jitem a{display:grid;grid-template-columns:110px 1fr 160px;gap:28px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);transition:background .3s}
.pg-jitem a:hover{background:#fbf6f6}
.pg-jitem time{display:flex;flex-direction:column;font:500 13px/1 var(--sans);color:#999;letter-spacing:.1em}
.pg-jitem time b{font-family:"Noto Serif JP",serif;font-size:30px;color:var(--ink);letter-spacing:0;margin-bottom:6px}
.pg-jitem__title{display:block;font-family:var(--serif);font-weight:700;font-size:18px;line-height:1.65;margin-top:10px}
.pg-jitem figure{margin:0;aspect-ratio:16/10;overflow:hidden;border-radius:3px}
@media (max-width:767px){.pg-jitem a{grid-template-columns:1fr 28vw;gap:8px 14px;padding:18px 0}.pg-jitem time{grid-column:1;flex-direction:row;align-items:baseline;gap:8px}.pg-jitem time b{font-size:22px;margin:0}.pg-jitem__body{grid-column:1}.pg-jitem figure{grid-column:2;grid-row:1/3}.pg-jitem__title{font-size:16px}.pg-tabs a{font-size:14px;padding:9px 16px}}
.pg-article .l-article__eye picture{aspect-ratio:16/9}

/* contact */
.pg-contact .l-reassure{margin-top:30px}

/* =================== reveal motion =================== */
.js [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--rd,0s)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js .pg-frames[data-reveal] .pg-frames__b{transform:translate(30px,40px);opacity:0;transition:.61s cubic-bezier(.2,.7,.2,1) .25s}
.js .pg-frames.is-in .pg-frames__b{transform:none;opacity:1}
.js .h-cine__v[data-reveal]{transform:translateY(-20px);clip-path:inset(0 0 100% 0);opacity:1;transition:clip-path .8s cubic-bezier(.7,0,.2,1) .4s,transform .8s .14s}
.js .h-cine__v.is-in{clip-path:inset(0);transform:none}
@media (prefers-reduced-motion:reduce){
  [data-kb] img,.h-mosaic__grid figure,.pg-marquee__track,.h-prem__track,.pg-scroll::after{animation:none!important}
  .h-mosaic__grid figure{clip-path:none}
  .js [data-reveal],.js .pg-frames[data-reveal] .pg-frames__b{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
  .pg-route::before,.pg-tl::after,.pg-steps::before{--p:1;transition:none}
  .pg-sticky__media figure{transition:none}
}

@media (max-width:767px){.c-tag,.h-choice__tag,.l-form__hint{font-size:14px!important}}
@media (max-width:767px){
  .h-run__pts small{font-size:14px}
  .l-page .l-contact-guide b{font-size:15px!important}.l-page .l-contact-guide small{font-size:14px!important}
  .l-page .l-logos__item--empty{font-size:12px}
}

/* =========================================================
   C01 SKIN — 下層ヒーロー/セクションをC01トップの意匠へ統一
   白基調＋C01レッド、明朝見出し（赤の強調語）、赤の英字ラベル、
   スクリプト英字、ハイビスカス/花びら。ダークはC01同様ストーリー系のみ。
   ========================================================= */
:root{--petals:url(../img/c/petal1.png) no-repeat 7% 16%/30px auto,url(../img/c/petal2.png) no-repeat 44% 88%/26px auto,url(../img/c/petal3.png) no-repeat 95% 9%/38px auto,url(../img/c/petal1.png) no-repeat 63% 6%/20px auto;
  --flower:url(../img/c/flower-hero.png) no-repeat -10px 100%/clamp(110px,12vw,180px) auto;--hib:url(../img/c/hibiscus.png) no-repeat 97% 92%/clamp(70px,7vw,110px) auto}
.h-script{font-family:var(--script,"Pinyon Script"),cursive}
.h-en{font-size:13px;letter-spacing:.16em}
.h-en::before{display:none}
[class^="h-"] em,[class*=" h-"] em{color:var(--red);background:none;-webkit-text-fill-color:currentColor}

/* 1 ABOUT: full photo + vertical Mincho (white fade like C01 hero) */
.h-cine{background:#fff;color:var(--ink)}
.h-cine__img{left:34%}
.h-cine__shade{background:var(--petals),var(--flower),linear-gradient(90deg,#fff 30%,rgba(255,255,255,.85) 40%,rgba(255,255,255,0) 62%),linear-gradient(0deg,rgba(255,255,255,.9),transparent 26%)}
.h-cine__title{color:var(--ink)}.h-cine__lead{color:#333}
.h-cine__v{color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.45)}
.h-cine__script{color:rgba(255,255,255,.92);text-shadow:0 2px 20px rgba(227,19,42,.45)}
.h-cine .pg-scroll{color:var(--red)}.h-cine .pg-scroll::after{background:linear-gradient(var(--red),transparent)}
@media (max-width:767px){
  .h-cine{height:auto;min-height:0;display:flex;flex-direction:column}
  .h-cine__img{position:relative;left:0;height:112vw}
  .h-cine__shade{height:112vw;background:var(--petals),linear-gradient(0deg,#fff 0,rgba(255,255,255,0) 32%)}
  .h-cine__body{position:relative;left:auto;right:auto;bottom:auto;padding:0 20px 40px;margin-top:-40px;background:var(--flower);background-size:110px auto;background-position:right -20px bottom 0}
  .h-cine__script{top:auto;bottom:calc(100% - 112vw + 50px);font-size:54px}
  .h-cine .pg-scroll{display:none}
}

/* 2 STORY: collage on white */
.h-mosaic{background:#fff;color:var(--ink)}
.h-mosaic::after{background:var(--petals),var(--flower),linear-gradient(90deg,#fff 0,rgba(255,255,255,.95) 32%,rgba(255,255,255,.1) 50%,transparent 62%)}
.h-mosaic__grid figure{border-radius:4px;box-shadow:0 14px 30px -18px rgba(0,0,0,.35)}
.h-mosaic__issue{color:var(--red);border-top-color:rgba(227,19,42,.35)}
.h-mosaic__big{font-family:var(--script,"Pinyon Script"),cursive;color:var(--red)}
.h-mosaic__title{color:var(--ink)}.h-mosaic__lead{color:#444}
@media (max-width:767px){.h-mosaic::after{background:var(--petals),linear-gradient(0deg,#fff 0,rgba(255,255,255,.94) 36%,transparent 58%)}}

/* 3 OUTLINE: big dates + countdown */
.h-split{position:relative}
.h-split::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:var(--petals),var(--hib)}
.h-split__type{background:#fff}
.h-date--out .h-date__num{-webkit-text-stroke:2px var(--red);color:transparent}
.h-split__media::before{background:linear-gradient(90deg,#fff 0,rgba(255,255,255,0) 22%)}
.h-count{background:#fff;color:var(--ink);border:0;border-top:3px solid var(--red);box-shadow:0 20px 40px -20px rgba(0,0,0,.4);-webkit-backdrop-filter:none;backdrop-filter:none}
.h-count__en{color:var(--red)}.h-count__nums b{color:var(--red)}
@media (max-width:767px){.h-split__media::before{background:linear-gradient(180deg,#fff 0,rgba(255,255,255,0) 20%)}}

/* 4 ENTRY: runway photo + red diagonal band */
.h-run{background:#fff;color:var(--ink)}
.h-run__img{left:30%}
.h-run__shade{background:var(--petals),linear-gradient(90deg,#fff 26%,rgba(255,255,255,.8) 36%,rgba(255,255,255,0) 58%)}
.h-run__title{color:var(--ink);text-shadow:none}
.h-run__sub{color:var(--red);border-bottom-color:var(--red)}
.h-run__script{color:rgba(255,255,255,.92);text-shadow:0 2px 20px rgba(227,19,42,.5)}
.h-run__band{box-shadow:none}
@media (max-width:767px){
  .h-run__img{left:0}
  .h-run__shade{background:var(--petals),linear-gradient(0deg,#fff 0,rgba(255,255,255,.75) 26%,transparent 50%)}
  .h-run__title{font-size:32px}
}

/* 5 SPONSOR: premium, C01 palette (white + red, not black) */
.page-sponsor{background:#fff}
.h-prem{background:#fff;color:var(--ink)}
.h-prem__img{left:38%}
.h-prem__img img{filter:none}
.h-prem__shade{background:var(--petals),var(--hib),linear-gradient(90deg,#fff 0,#fff 30%,rgba(255,255,255,.75) 44%,rgba(255,255,255,0) 66%),linear-gradient(0deg,#fff 0,transparent 30%)}
.h-prem::after{display:none}
.h-prem__sub{color:var(--red)}
.h-prem__title{color:var(--ink)}
.h-prem__title em{background:none;color:var(--red);-webkit-text-fill-color:var(--red)}
.h-prem__logos{border-top:1px solid #f0dede;background:#fff}
.h-prem__track span{color:#b8a9a9;border-color:#f0dede}
.h-prem .c-btn--line{background:#fff}
@media (max-width:767px){
  .h-prem__img{left:0}
  .h-prem__shade{background:var(--petals),linear-gradient(0deg,#fff 0,rgba(255,255,255,.6) 30%,transparent 55%)}
}
.pg-dark{background:#fbf5f5;color:var(--text)}
.pg-dark .pg-h2,.pg-dark .pg-h3{color:var(--ink)}.pg-dark .pg-p{color:#444}
.pg-dark .pg-frames__b{border-color:#fff}
.pg-glass__bg::after{background:rgba(255,255,255,.84)}
.pg-glass,.pg-glass .pg-h2,.pg-glass__list .pg-h3{color:var(--ink)}
.pg-glass__list li{background:rgba(255,255,255,.85);border:1px solid #f0dede;box-shadow:0 18px 36px -24px rgba(0,0,0,.3)}
.pg-glass__list .pg-p{color:#444}
.pg-plan{background:#fff;border:1px solid #f0dede;box-shadow:0 24px 40px -28px rgba(0,0,0,.35)}
.pg-plan h3,.pg-plan__price{color:var(--ink)}
.pg-plan ul{border-top-color:#f0dede}.pg-plan ul li{color:#444}
.pg-plan--top{background:var(--red);box-shadow:0 30px 50px -26px rgba(227,19,42,.6)}
.pg-plan--top h3,.pg-plan--top .pg-plan__price,.pg-plan--top ul li{color:#fff}
.pg-plan--top ul{border-top-color:rgba(255,255,255,.4)}

/* 6 NEWS: featured latest */
.h-journal{position:relative;background-image:none;background:linear-gradient(180deg,#fff,#fdf7f7)}
.h-journal::before{content:"";position:absolute;inset:0;pointer-events:none;background:var(--petals),var(--hib)}
.h-journal>*{position:relative;z-index:1}
.h-feat{border-top:3px solid var(--red)}

/* 7 CONTACT: LINE vs form cards */
.h-calm{background:#fff}
.h-calm::before{content:"";position:absolute;inset:0;pointer-events:none;background:var(--petals),var(--flower)}
.h-calm>*{position:relative;z-index:1}
.h-choice__card{border-color:#f0dede}

/* sections: dark only where C01 uses it (story spread) */
.pg-stats,.pg-stats--line{background:#fbf5f5;color:var(--ink);border:0}
.pg-stats::before{background:radial-gradient(rgba(227,19,42,.10),transparent 65%)}
.pg-stats__list li{border-left-color:#f0dede}
.pg-stats__list b{color:var(--red);text-shadow:none}
.pg-stats__list small{color:#555}
.pg-marquee--dark{background:var(--red)}
.pg-stub--dark{background:var(--red);border-color:var(--red)}
.pg-ticket{background:#fbf5f5}
.h-cine__shade{background:var(--petals),linear-gradient(90deg,#fff 30%,rgba(255,255,255,.85) 40%,rgba(255,255,255,0) 62%),linear-gradient(0deg,rgba(255,255,255,.9),transparent 26%)}
.h-cine__body::after{content:"";position:absolute;left:-90px;top:-40px;width:80px;height:80px;background:url(../img/c/hibiscus.png) no-repeat center/contain;opacity:.95}
.h-cine__script{color:var(--red);text-shadow:0 2px 14px rgba(255,255,255,.8)}
@media (max-width:767px){.h-cine__body::after{left:auto;right:10px;top:-30px;width:64px;height:64px}}

/* ===================== v4 SECTION DECO LAYER ===================== */
.dx-sec{position:relative;isolation:isolate}
.dx-on main{overflow-x:clip}
/* paper texture */
.dx-sec.pg-sec--tint,.dx-sec.pg-sec--pink,.pg-counters,.pg-flow3{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .1 0 0 0 0 .15 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),linear-gradient(180deg,#fff,#fbf3f3 18%,#fbf3f3 82%,#fff)}
/* oversized outlined number */
.dx-no{position:absolute;top:clamp(20px,3vw,48px);font:700 clamp(150px,17vw,280px)/.8 var(--serif,"Noto Serif JP",serif);color:transparent;-webkit-text-stroke:1px rgba(227,19,42,.22);z-index:-1;pointer-events:none;transform:translateY(var(--py,0));letter-spacing:-.04em}
.dx-sec--l .dx-no{left:2vw}.dx-sec--r .dx-no{right:2vw}
/* script overlay */
.dx-script{position:absolute;bottom:clamp(18px,3vw,46px);font:400 clamp(44px,6vw,104px)/1 var(--script,"Pinyon Script",cursive);color:rgba(227,19,42,.13);white-space:nowrap;z-index:-1;pointer-events:none;transform:translateY(var(--py,0)) rotate(-6deg)}
.dx-sec--l .dx-script{right:3vw}.dx-sec--r .dx-script{left:3vw}
.pg-spread .dx-script,.pg-dark .dx-script,.l-cta .dx-script{color:rgba(255,255,255,.16)}
/* petals & hibiscus */
.dx-petal{position:absolute;width:clamp(26px,2.6vw,44px);pointer-events:none;z-index:2;opacity:.9;transform:translateY(var(--py,0));animation:dxFloat 7s var(--d,0s) ease-in-out infinite alternate}
.dx-petal--0{top:14%}.dx-petal--1{bottom:12%;width:clamp(18px,1.8vw,30px)}
.dx-sec--l .dx-petal--0{right:4%}.dx-sec--l .dx-petal--1{left:3%}
.dx-sec--r .dx-petal--0{left:5%}.dx-sec--r .dx-petal--1{right:4%}
.dx-hib{position:absolute;width:clamp(90px,10vw,170px);bottom:-34px;z-index:2;pointer-events:none;transform:translateY(var(--py,0)) rotate(-12deg);filter:drop-shadow(0 12px 18px rgba(120,0,10,.18))}
.dx-sec--l .dx-hib{right:-30px}.dx-sec--r .dx-hib{left:-30px}
@keyframes dxFloat{0%{translate:0 0;rotate:0deg}100%{translate:14px 22px;rotate:38deg}}
/* section dividers */
.dx-div--curve::before,.dx-div--diag::before,.dx-div--wave::before{content:"";position:absolute;left:0;right:0;top:-1px;height:clamp(28px,4vw,64px);background:#fff;z-index:1;pointer-events:none}
.dx-div--curve::before{clip-path:ellipse(70% 100% at 50% 0)}
.dx-div--diag::before{clip-path:polygon(0 0,100% 0,0 100%)}
.dx-div--wave::before{height:clamp(14px,2vw,26px);background:linear-gradient(90deg,transparent,var(--red) 20%,var(--red) 80%,transparent);clip-path:none;height:2px;top:0;transform:scaleX(0);transition:transform .8s cubic-bezier(.7,0,.2,1)}
.dx-div--wave.dx-seen::before{transform:none}
.pg-sec--tint.dx-div--diag::before,.pg-sec--pink.dx-div--diag::before{background:#fff}
section:not(.pg-sec--tint):not(.pg-sec--pink):not(.pg-dark):not(.pg-spread):not(.pg-ticket):not(.pg-oki):not(.l-cta).dx-div--curve::before,
section:not(.pg-sec--tint):not(.pg-sec--pink):not(.pg-dark):not(.pg-spread):not(.pg-ticket):not(.pg-oki):not(.l-cta).dx-div--diag::before{background:#fbf3f3}
/* headline line reveal (red underline sweep) */
.js .dx-h[data-reveal]{clip-path:inset(0 100% 0 0);transform:none;opacity:1;transition:clip-path .95s cubic-bezier(.7,0,.2,1)}
.js .dx-h[data-reveal].is-in{clip-path:inset(0 0 -20% 0)}
.dx-h em,.pg-h2 em{color:var(--red);font-style:normal}
/* image mask reveal */
.js .dx-clip[data-reveal]{opacity:1;transform:none;clip-path:inset(0 0 100% 0);transition:clip-path 1s cubic-bezier(.7,0,.2,1) var(--rd,0s)}
.js .dx-clip[data-reveal].is-in{clip-path:inset(-40px -40px -40px -40px)}
/* drawn red offset frames */
.dx-frame{position:absolute;inset:0;border:1.5px solid var(--red);border-radius:inherit;pointer-events:none;transform:translate(16px,16px);z-index:-1;clip-path:inset(0 100% 100% 0);transition:clip-path .8s cubic-bezier(.7,0,.2,1) .5s}
.is-in > .dx-frame,.dx-seen .dx-frame{clip-path:inset(-4px -4px -4px -4px)}
.pg-letter__photo,.pg-spread__img{position:relative}
/* hover micro interactions */
.dx-on .c-btn{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,background .35s,color .35s}
.dx-on .c-btn:hover{transform:translateY(-3px);box-shadow:0 14px 26px -14px rgba(227,19,42,.6)}
.dx-on .c-btn:hover .c-arrow{transform:translateX(5px)}.dx-on .c-arrow{transition:transform .35s}
.dx-on .pg-card,.dx-on .pg-plan,.dx-on .pg-stub,.dx-on .pg-venue,.dx-on .pg-voice,.dx-on .pg-jitem a,.dx-on .pg-follow__card{transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s}
.dx-on .pg-card:hover,.dx-on .pg-plan:hover,.dx-on .pg-stub:hover,.dx-on .pg-venue:hover,.dx-on .pg-follow__card:hover{transform:translateY(-6px);box-shadow:0 30px 50px -30px rgba(160,0,20,.45)}
.dx-on .pg-voice:hover img,.dx-on .pg-jitem a:hover img{transform:scale(1.06)}.dx-on .pg-voice img,.dx-on .pg-jitem img{transition:transform .55s cubic-bezier(.2,.7,.2,1)}
/* FAQ animated icon */
.dx-on .l-faq summary{position:relative;padding-right:48px;cursor:pointer;list-style:none}
.dx-on .l-faq summary::-webkit-details-marker{display:none}
.dx-on .l-faq summary::after{content:"";position:absolute;right:12px;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:50%;border:1.5px solid var(--red);background:linear-gradient(var(--red),var(--red)) center/10px 1.5px no-repeat,linear-gradient(var(--red),var(--red)) center/1.5px 10px no-repeat;transition:transform .45s cubic-bezier(.2,.7,.2,1),background-color .3s}
.dx-on .l-faq details[open] summary::after{transform:none;background-color:#fde8ea;background-image:linear-gradient(var(--red),var(--red));background-size:10px 1.5px;background-position:center;background-repeat:no-repeat}
.dx-on .l-faq details{border-left:2px solid transparent;transition:border-color .4s}.dx-on .l-faq details[open]{border-left-color:var(--red)}

/* ---------- page specific compositions ---------- */
/* ABOUT */
.dx-about .pg-stats{background:var(--red);color:#fff;clip-path:polygon(0 8%,100% 0,100% 92%,0 100%);padding:clamp(70px,8vw,120px) var(--gut)}
.dx-about .pg-stats b,.dx-about .pg-stats span,.dx-about .pg-stats small{color:#fff!important}
.dx-about .pg-stats .dx-no{-webkit-text-stroke-color:rgba(255,255,255,.3)}
.dx-about .pg-letter .pg-letter__photo{box-shadow:-24px 24px 0 #fbe5e7}
.dx-about .pg-route{position:relative}
/* STORY */
.dx-story .pg-quote{background:#fff;border-top:1px solid #f1d6d9;border-bottom:1px solid #f1d6d9}
.dx-story .pg-quote__text{position:relative}
.dx-story .pg-quote__text::before{content:"\201C";position:absolute;left:-.1em;top:-.55em;font:700 1.0em/1 var(--serif);font-size:clamp(120px,12vw,200px);color:rgba(227,19,42,.16)}
.dx-story .pg-intro .pg-cols{border-left:2px solid var(--red);padding-left:clamp(18px,2vw,32px)}
/* OUTLINE */
.dx-outline .pg-stub{border-radius:6px}
.dx-outline .pg-table__row{transition:background .4s}.dx-outline .pg-table__row:hover{background:#fdf1f2}
.dx-outline .pg-venue{border-top:3px solid var(--red)}
.dx-outline .pg-ticket{clip-path:polygon(0 0,100% 4%,100% 100%,0 96%)}
/* ENTRY */
.pg-counters{position:relative;padding:clamp(64px,7vw,110px) var(--gut)}
.pg-counters__script{position:absolute;left:50%;top:2px;transform:translateX(-50%) rotate(-4deg);font:400 clamp(36px,4.4vw,64px)/1 var(--script,"Pinyon Script",cursive);color:rgba(227,19,42,.10);white-space:nowrap;margin:0;pointer-events:none}
.pg-counters__list{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(5,1fr);max-width:1180px;position:relative;z-index:2}
.pg-counters__list li{text-align:center;padding:26px 10px;border-left:1px solid rgba(227,19,42,.25)}
.pg-counters__list li:first-child{border-left:0}
.pg-counters__list b{display:block;font:700 clamp(30px,3.4vw,52px)/1.1 var(--serif,"Noto Serif JP",serif);color:var(--red);white-space:nowrap}
.pg-counters__list b small{font-size:.42em;margin-left:2px}
.pg-counters__list li>span{display:block;margin-top:12px;font-size:14px;color:#555;letter-spacing:.06em}
.dx-entry .pg-checks li{transition:transform .4s}.dx-entry .pg-checks li:hover{transform:translateX(6px)}
.dx-entry .pg-card--up{box-shadow:0 30px 60px -32px rgba(227,19,42,.55)}
.dx-entry .pg-steps{position:relative}
/* SPONSOR */
.dx-sponsor .pg-plan--top{background:linear-gradient(160deg,#fff 40%,#fde8ea);border:1.5px solid var(--red);box-shadow:0 40px 70px -40px rgba(227,19,42,.6);transform:translateY(-12px)}
.dx-sponsor .pg-plan--top h3,.dx-sponsor .pg-plan--top .pg-plan__price{color:var(--ink)}
.dx-sponsor .pg-plan--top .pg-plan__en{color:var(--red)}
.dx-sponsor .pg-plan--top ul{border-top-color:#f0dede}.dx-sponsor .pg-plan--top ul li{color:#444}
.dx-sponsor .l-logos__item{transition:border-color .4s,background .4s}.dx-sponsor .l-logos__item:hover{border-color:var(--red);background:#fff7f8}
/* NEWS */
.pg-follow{position:relative;padding:clamp(70px,8vw,120px) var(--gut);background:linear-gradient(120deg,#fff 0 55%,#fbe8ea 55% 100%);overflow:hidden}
.pg-follow__script{position:absolute;right:4vw;top:14px;margin:0;font:400 clamp(50px,7vw,120px)/1 var(--script,"Pinyon Script",cursive);color:rgba(227,19,42,.18);transform:rotate(-6deg);pointer-events:none}
.pg-follow__inner{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,4vw,64px);align-items:center;max-width:1100px;margin:0 auto;position:relative;z-index:2}
.pg-follow__btns{display:grid;gap:16px}
.pg-follow__card{display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center;padding:22px 26px;background:#fff;border:1.5px solid var(--red);border-radius:999px;color:var(--ink,#111);text-decoration:none}
.pg-follow__card span{font:600 13px/1 var(--sans);letter-spacing:.16em;color:var(--red)}
.pg-follow__card b{grid-column:1;font:600 17px/1.4 var(--serif,"Noto Serif JP",serif)}
.pg-follow__card i{grid-row:1/3;grid-column:2;color:var(--red)}
.pg-follow__card--line{background:var(--red);color:#fff}.pg-follow__card--line span,.pg-follow__card--line i{color:#fff}
.dx-news .pg-jitem a{position:relative}
.dx-news .pg-jitem a::after{content:"";position:absolute;left:0;bottom:0;height:1.5px;width:100%;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.7,0,.2,1)}
.dx-news .pg-jitem a:hover::after{transform:none}
/* NEWS DETAIL */
.dx-detail .pg-article{position:relative}
.dx-detail .pg-article .l-article__body p:first-of-type::first-letter{font:700 3.2em/1 var(--serif,"Noto Serif JP",serif);color:var(--red);float:left;margin:.06em .12em 0 0}
.pg-bandcta{position:relative;padding:clamp(70px,8vw,120px) var(--gut);background:var(--red);color:#fff;clip-path:polygon(0 10%,100% 0,100% 100%,0 100%);text-align:center;overflow:hidden}
.pg-bandcta .pg-h2,.pg-bandcta .pg-h2 em{color:#fff}
.pg-bandcta .pg-h2 em{border-bottom:2px solid #fff}
.pg-bandcta__script{margin:0 0 6px;font:400 clamp(36px,4.4vw,70px)/1 var(--script,"Pinyon Script",cursive);color:rgba(255,255,255,.55)}
.pg-bandcta__btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.pg-bandcta .c-btn--fill{background:#fff;color:var(--red)}.pg-bandcta .c-btn--line{border-color:#fff;color:#fff;background:transparent}
/* CONTACT */
.pg-flow3{position:relative;padding:clamp(70px,8vw,120px) var(--gut)}
.pg-flow3__list{list-style:none;margin:44px auto 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:1040px;position:relative}
.pg-flow3__list::before{content:"";position:absolute;left:8%;right:8%;top:34px;height:1.5px;background:var(--red);transform:scaleX(var(--p,0));transform-origin:left;transition:transform .8s cubic-bezier(.7,0,.2,1)}
.pg-flow3__list li{position:relative;text-align:center;background:#fff;padding:0 18px 26px;border-radius:8px}
.pg-flow3__list b{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 16px;border-radius:50%;background:#fff;border:1.5px solid var(--red);color:var(--red);font:700 20px/1 var(--serif,"Noto Serif JP",serif);position:relative;z-index:1}
.pg-flow3__list h3{font:600 18px/1.5 var(--serif,"Noto Serif JP",serif);margin:0}
.pg-flow3__list p{font-size:15px;line-height:1.9;color:#444;margin:8px 0 0}
.pg-cfaq .l-faq{margin-top:34px}

/* SP */
@media (max-width:767px){
  .dx-no{font-size:120px;top:14px}
  .dx-script{font-size:46px;bottom:10px}
  .dx-hib{width:84px;bottom:-22px}
  .dx-petal{width:24px}
  .dx-on .pg-p,.dx-on .l-faq__a p,.dx-on .pg-table dd,.dx-on .pg-table__row>*:last-child{font-size:15px;line-height:1.9}
  .pg-counters__list{grid-template-columns:repeat(2,1fr);gap:0}
  .pg-counters__list li{border-left:0;border-top:1px solid rgba(227,19,42,.2)}
  .pg-counters__list li:last-child{grid-column:1/-1}
  .pg-follow{background:linear-gradient(170deg,#fff 0 50%,#fbe8ea 50%)}
  .pg-follow__inner{grid-template-columns:1fr}
  .pg-follow__script{font-size:56px}
  .pg-flow3__list{grid-template-columns:1fr;gap:18px}
  .pg-flow3__list::before{left:34px;right:auto;top:0;bottom:0;width:1.5px;height:auto;transform:scaleY(var(--p,0));transform-origin:top}
  .pg-flow3__list li{display:grid;grid-template-columns:68px 1fr;gap:0 16px;text-align:left;padding:0}
  .pg-flow3__list b{grid-row:1/3;margin:0}
  .dx-story .pg-voices{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin:0 -20px;padding:0 20px 12px;-webkit-overflow-scrolling:touch}
  .dx-story .pg-voice{flex:0 0 78%;scroll-snap-align:start}
  .dx-about .pg-stats{clip-path:polygon(0 4%,100% 0,100% 96%,0 100%)}
  .dx-sponsor .pg-plan--top{transform:none}
}
@media (prefers-reduced-motion:reduce){
  .dx-petal{animation:none}
  .js .dx-h[data-reveal],.js .dx-clip[data-reveal],.dx-frame{clip-path:none!important;transition:none!important}
  .dx-div--wave::before{transform:none}
  .dx-no,.dx-script,.dx-hib,.dx-petal{transform:none}
}
/* v4 round2 */
.dx-contact .pg-contact{background:linear-gradient(180deg,#fff 0,#fff 260px,#fbf3f3 260px,#fbf3f3 100%)}
.dx-contact .l-form{background:#fff;padding:clamp(24px,4vw,56px);border-radius:10px;border-top:3px solid var(--red);box-shadow:0 40px 80px -50px rgba(160,0,20,.4);position:relative;z-index:2}
.dx-news .pg-journal::after{content:"最新のお知らせ";position:absolute;left:clamp(16px,4vw,70px);top:120px;writing-mode:vertical-rl;font:600 clamp(18px,1.6vw,24px)/1 var(--serif,"Noto Serif JP",serif);letter-spacing:.5em;color:var(--red);opacity:.85;border-left:1px solid var(--red);padding-left:12px}
.dx-outline .pg-sec:not(.pg-sec--tint) .pg-h2::after,.dx-sponsor .pg-sec .pg-h2::after{content:"";display:block;width:48px;height:2px;background:var(--red);margin:18px auto 0}
.dx-outline .pg-aside .pg-h2::after,.dx-sponsor .pg-concept .pg-h2::after{margin-left:0}
@media (max-width:767px){.dx-news .pg-journal::after{display:none}}

/* =================== v5 RESPONSIVE / CROSS-BROWSER LAYER =================== */
/* svh fallback for browsers without small-viewport units */
@supports not (height:100svh){
  .h-cine,.h-run{height:calc(100vh - var(--hd))}
  .h-mosaic{min-height:min(820px,calc(100vh - var(--hd)))}
  .h-mosaic__body{min-height:calc(min(820px,calc(100vh - var(--hd))) - 2*clamp(40px,5vw,72px))}
  .h-split{min-height:min(760px,calc(100vh - var(--hd)))}
  .h-prem{min-height:min(800px,calc(100vh - var(--hd)))}
}
/* sticky steps: tighter, no long dim gaps */
.pg-sticky__media{position:-webkit-sticky;position:sticky;height:min(calc(100vh - var(--hd) - 80px),620px)}
.pg-sticky__media figure:first-of-type{opacity:1}
@media (min-width:768px){.pg-sticky__steps li{min-height:min(58vh,520px);opacity:.42}}
/* images never taller than the screen */
.pg-sec img{max-width:100%}
.pg-voice figure,.pg-frames figure{max-height:min(86vh,760px);overflow:hidden}
/* short laptop screens (1366x768, 1280x720) */
@media (min-width:1024px) and (max-height:820px){
  .h-cine,.h-run{min-height:540px}
  .h-mosaic,.h-split,.h-prem{min-height:min(680px,calc(100svh - var(--hd)))}
  .pg-sec{padding-top:clamp(64px,6.5vw,104px);padding-bottom:clamp(64px,6.5vw,104px)}
}
/* tablet: hero not too short, grids breathe */
@media (min-width:768px) and (max-width:1023px){
  .pg-sec{padding:clamp(64px,8vw,96px) clamp(28px,5vw,48px)}
}
/* large monitors: contained content, full-bleed backgrounds */
@media (min-width:1600px){
  :root{--wrap:1240px;--gut:clamp(88px,8vw,200px)}
  .pg-sec{padding-top:136px;padding-bottom:136px}
  .h-mosaic,.h-split,.h-prem,.h-cine,.h-run,.h-calm,.h-journal{max-height:960px}
  .pg-wrap--narrow{max-width:900px}
}
@media (min-width:2200px){:root{--wrap:1320px}}
/* webkit text / font fallbacks */
.pg-h2,.pg-h3,.dx-script{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
[style*="vertical-rl"],.dx-news .pg-journal::after{-webkit-writing-mode:vertical-rl}
@supports not (clip-path:inset(0 0 0 0)){
  .js .dx-h[data-reveal],.js .dx-clip[data-reveal],.dx-frame,.js .h-cine__v[data-reveal]{clip-path:none!important}
}
.l-cta__bg{overflow:hidden}.l-cta__bg picture{display:block;width:100%;height:100%}

/* photo strip (entry) */
.pg-strip{display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:10px;padding:0 var(--gut);margin:0 auto;max-width:1440px}
.pg-strip figure{margin:0;height:clamp(180px,26vw,340px);overflow:hidden;border-radius:10px}
.pg-strip figure:nth-child(2){transform:translateY(18px)}
.pg-strip img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.pg-strip figure:hover img{transform:scale(1.05)}
@media (max-width:767px){.pg-strip{grid-template-columns:1fr 1fr 1fr;gap:6px;padding:0 12px}.pg-strip figure{height:26vw}.pg-strip figure:nth-child(2){transform:none}}
.pg-oki__img img{filter:saturate(1.14) contrast(1.05)}
.dx-story .pg-voices{margin-bottom:88px}
.pg-genband{max-width:1200px;margin:clamp(28px,4vw,48px) auto 0;padding:0 var(--gut)}
.pg-genband figure{margin:0;border-radius:12px;overflow:hidden}
.pg-genband img{width:100%;height:clamp(200px,30vw,400px);object-fit:cover;display:block}
.pg-genband figcaption{margin-top:8px;font-size:11px;color:#999;text-align:right;letter-spacing:.08em}

/* ===== PILOT: sponsor polish (2026-11-09) ===== */
.dx-sponsor #plan .dx-petal,.dx-sponsor #plan .dx-hib{display:none}
.dx-sponsor #plan .dx-no{opacity:.05}
.dx-sponsor #flow .dx-petal{opacity:.55}
.pg-plan h3{font-size:21px;letter-spacing:.04em}
.pg-plan__price{font-size:40px}
.pg-plan ul li::before{background:var(--red);width:10px;height:2px;top:12px}
.pg-plan{border-top:3px solid rgba(255,255,255,.08)}
.pg-plan--top{border-top-color:rgba(255,255,255,.35)}

/* ===== RHYTHM: calm zones + interval variation (2026-11-09) ===== */
.dx-sec:has(.pg-table) .dx-no,.dx-sec:has(.pg-table) .dx-script,
.dx-sec:has(form) .dx-no,.dx-sec:has(form) .dx-script{opacity:.045}
.dx-sec:has(.pg-table) .dx-petal,.dx-sec:has(form) .dx-petal{opacity:.4}
.pg-sec--tint{padding-top:clamp(60px,6.5vw,104px);padding-bottom:clamp(60px,6.5vw,104px)}
.dx-about .pg-sticky__steps li{border-top:2px solid rgba(227,19,42,.30)}
.dx-about .pg-sticky__steps .pg-point__no{font-size:15px;letter-spacing:.34em}

/* ===== HONESTY + FOCUS (2026-11-09, from cross-review) ===== */
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--red);outline-offset:2px;border-radius:2px}
.demo-note{display:flex;gap:10px;align-items:flex-start;background:#fdf1f2;border:1px solid #f0c3c8;color:#8e2432;border-radius:8px;padding:14px 16px;font:500 13.5px/1.7 var(--sans);margin-top:22px}
.sample-note{font:500 12.5px/1.6 var(--sans);color:#977d7d;letter-spacing:.03em;margin:0 0 18px}

/* NEWS HERO: tighten PC composition (2026-11-10) */
@media (min-width:768px){
  .h-journal{padding-left:max(var(--gut),calc((100% - 1180px)/2));padding-right:max(var(--gut),calc((100% - 1180px)/2));gap:clamp(28px,3vw,48px)}
}

/* SP plan swipe hint (2026-11-10) */
.pg-swipe-hint{display:none}
@media (max-width:767px){
  .pg-swipe-hint{display:flex;align-items:center;gap:8px;margin:26px 0 -14px;font:700 12px/1 var(--sans);letter-spacing:.08em;color:var(--red)}
  .pg-swipe-hint span{font-size:15px}
}

/* SP ABOUT HERO: narrow the white fade so the photo fills the band (2026-11-10) */
@media (max-width:767px){
  .h-cine__shade{background:linear-gradient(90deg,rgba(255,255,255,.92) 0,rgba(255,255,255,.5) 13%,rgba(255,255,255,0) 36%),linear-gradient(0deg,rgba(255,255,255,.9),transparent 26%)}
}

/* GPT-review fixes (2026-11-10): sticky repair, tablet plans, tablet about hero */
.pg-sticky,#schedule,#detail,#eligibility{overflow:clip}
@media (min-width:768px) and (max-width:1199px){
  .pg-plans{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:768px) and (max-width:1023px){
  .h-cine{height:auto;min-height:0;display:flex;flex-direction:column}
  .h-cine__img{position:relative;left:0;height:60vw}
  .h-cine__img img{width:100%;height:100%;object-fit:cover}
  .h-cine__img picture{display:block;height:100%}
  .h-cine__shade{height:60vw}
  .h-cine__body{position:relative;left:auto;right:auto;bottom:auto;padding:0 32px 44px;margin-top:-40px}
  .h-cine__script{top:auto;bottom:calc(100% - 60vw + 50px)}
  .h-cine .pg-scroll{display:none}
}

/* SP ABOUT HERO: keep the lead text clear of the hibiscus (2026-11-10) */
@media (max-width:767px){
  .h-cine__body::after{display:none}
  .h-cine__body{background-image:none}
}

/* ==== Round 6 (2026-11-10 user review): about hero raise + news featured integration ==== */
@media (min-width:1024px){
 .h-cine__body{bottom:clamp(110px,16vh,168px)}
 .h-feat{grid-template-columns:1.12fr 1fr;background:transparent;box-shadow:none;border-top:0;border-radius:0;overflow:visible;align-items:center}
 .h-feat__img{border-radius:4px;box-shadow:0 30px 60px -30px rgba(0,0,0,.35)}
 .h-feat__body{background:#fff;margin-left:-56px;position:relative;z-index:2;border-top:3px solid var(--red);box-shadow:0 30px 60px -30px rgba(0,0,0,.30);border-radius:4px}
}
@media (min-width:1024px){ .h-cine__lead{max-width:390px} }

/* ==== Winners' voices (2026-11-10) ==== */
.win-lead{margin:6px 0 34px}
.win-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px 30px}
.win-card{border:1px solid #efe6e8;border-radius:4px;overflow:hidden;background:#fff}
.win-card__fig{margin:0;aspect-ratio:4/5;overflow:hidden}
.win-card__fig img{width:100%;height:100%;object-fit:cover}
.win-card__body{padding:22px 24px 26px}
.win-award{margin:0 0 10px}
.win-name{font-family:var(--serif);font-size:24px;margin:0 0 4px}
.win-role{font:500 12.5px var(--sans);color:#8a7d81;margin:0 0 6px}
.win-ig{display:inline-block;font:700 12px var(--sans);letter-spacing:.04em;color:var(--red);text-decoration:none;margin-bottom:8px}
.win-qas{margin-top:12px;border-top:1px solid #f0e7ea;padding-top:14px}
.win-qa{margin-bottom:14px}.win-qa:last-child{margin-bottom:0}
.win-q{font:700 12.5px var(--sans);letter-spacing:.06em;color:var(--red);margin:0 0 5px}
.win-a{font-size:13.5px;line-height:1.85;color:#3d3236;margin:0}
.win-minis{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.win-mini a{display:block;text-decoration:none;color:var(--ink)}
.win-mini figure{margin:0 0 10px;aspect-ratio:4/5;overflow:hidden;border-radius:3px}
.win-mini img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.win-mini a:hover img{transform:scale(1.05)}
.win-mini__award{font:700 10.5px var(--sans);letter-spacing:.08em;color:var(--red);margin:0 0 3px}
.win-mini__name{font-family:var(--serif);font-size:16.5px;margin:0 0 5px}
.win-mini__quote{font-size:11.5px;line-height:1.7;color:#6d5f63;margin:0}
.win-more{text-align:center;margin:30px 0 0}
@media (max-width:767px){
 .win-grid{grid-template-columns:1fr}
 .win-minis{display:flex;overflow-x:auto;gap:14px;padding-bottom:8px;scroll-snap-type:x mandatory}
 .win-mini{flex:0 0 62%;scroll-snap-align:start}
}
