/* ============================================================
   OSAKA OPEN 2026 — 共有スタイルシート
   全ページから ../assets/styles.css で読み込みます
   ============================================================ */
:root{
  --black:#0A0A0A;--ink:#141414;--navy:#0E1B3A;--navy-deep:#080F22;
  --gold:#C9A24B;--gold-soft:#B8913E;--gold-bright:#E6C078;
  --paper:#F5F3EE;--paper-2:#EDE9E0;--gray:#E8E5DE;--gray-mid:#8A867E;
  --line:rgba(201,162,75,.35);--line-dark:rgba(255,255,255,.12);
  --max:1360px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--paper);color:var(--ink);font-family:"Noto Sans JP",sans-serif;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}
body{overflow-x:hidden;line-height:1.6}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
h1,h2,h3,h4{font-weight:600;letter-spacing:.01em}
html{scroll-behavior:smooth}
button{cursor:pointer;font-family:inherit;border:none;background:none;color:inherit}

.en{font-family:"Oswald",sans-serif;letter-spacing:.02em;text-transform:uppercase}
.en-body{font-family:"Space Grotesk",sans-serif;letter-spacing:.04em;text-transform:uppercase}
.num{font-family:"Oswald",sans-serif;font-weight:600;font-variant-numeric:tabular-nums}
.container{max-width:var(--max);margin:0 auto;padding:0 60px}
.section-tag{display:flex;align-items:center;gap:14px;font-family:"Space Grotesk",sans-serif;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.section-tag .num-tag{font-family:"Oswald";font-size:14px;color:var(--gold);letter-spacing:0}
.section-tag .line{flex:0 0 40px;height:1px;background:var(--gold);opacity:.6}
.heading-jp{font-family:"Noto Sans JP",sans-serif;font-weight:700;letter-spacing:.04em;line-height:1.25}
.heading-en-sub{font-family:"Oswald",sans-serif;font-weight:500;letter-spacing:.14em;color:var(--gray-mid);text-transform:uppercase;font-size:13px;margin-top:8px}

.washi-bg{position:relative}
.washi-bg::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(20,20,20,.035) 1px, transparent 1.4px),radial-gradient(rgba(20,20,20,.02) 1px, transparent 1.4px);
  background-size:3px 3px,7px 7px;background-position:0 0,1.5px 1.5px;mix-blend-mode:multiply;opacity:.85;z-index:0}
.washi-bg > *{position:relative;z-index:1}
.washi-dark::before{background-image:radial-gradient(rgba(255,255,255,.03) 1px, transparent 1.4px),radial-gradient(rgba(255,255,255,.02) 1px, transparent 1.4px);mix-blend-mode:screen}

.ph{position:relative;background:var(--paper-2);color:#5a564e;overflow:hidden;display:flex;align-items:flex-end;justify-content:flex-start}
.ph::before{content:"";position:absolute;inset:0;
  background-image:linear-gradient(135deg, rgba(10,10,10,.06) 0 1px, transparent 1px 12px),radial-gradient(rgba(10,10,10,.05) 1px, transparent 1.4px);
  background-size:12px 12px,4px 4px;opacity:.9}
.ph::after{content:"";position:absolute;inset:14px;border:1px solid var(--line);pointer-events:none}
.ph .ph-label{position:relative;z-index:2;padding:16px 20px;font-family:"Space Grotesk",monospace;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);display:flex;align-items:center;gap:10px}
.ph .ph-label::before{content:"";width:22px;height:1px;background:var(--gold)}
.ph-dark{background:#1a1a20;color:#e6ddc9}
.ph-dark::before{background-image:linear-gradient(135deg, rgba(255,255,255,.05) 0 1px, transparent 1px 12px),radial-gradient(rgba(255,255,255,.04) 1px, transparent 1.4px);opacity:.9}
.ph-dark::after{border-color:rgba(201,162,75,.4)}
.ph-dark .ph-label{color:#f0e7d1}
.ph-navy{background:#0F1A34;color:#e6ddc9}
.ph-navy::before{background-image:linear-gradient(135deg, rgba(255,255,255,.04) 0 1px, transparent 1px 12px),radial-gradient(rgba(255,255,255,.03) 1px, transparent 1.4px)}
.ph-navy::after{border-color:rgba(201,162,75,.35)}
.ph-navy .ph-label{color:#e6ddc9}

.gold-hr{height:1px;background:var(--gold);opacity:.6;border:none;margin:0}
.gold-hr-thin{height:1px;background:var(--gold);opacity:.3;border:none}

/* === NAV === */
nav.top-nav{position:sticky;top:0;z-index:100;background:var(--black);color:#fff;border-bottom:1px solid var(--line-dark)}
.nav-inner{max-width:var(--max);margin:0 auto;padding:0 60px;height:72px;display:flex;align-items:center;justify-content:space-between}
.nav-logo{display:flex;align-items:center;gap:14px}
.nav-logo .logo-mark{width:34px;height:34px;border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:"Oswald";font-weight:700;font-size:15px;letter-spacing:.02em}
.nav-logo .logo-txt{font-family:"Oswald";font-weight:600;font-size:15px;letter-spacing:.16em;color:#fff}
.nav-logo .logo-txt small{display:block;font-family:"Noto Sans JP";font-size:9px;font-weight:400;letter-spacing:.24em;color:var(--gold);margin-top:2px}
.nav-links{display:flex;align-items:center;gap:34px}
.nav-links a{font-family:"Space Grotesk";font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.75);transition:color .2s;position:relative}
.nav-links a:hover,.nav-links a.active{color:var(--gold)}
.nav-links a.active::after{content:"";position:absolute;left:0;right:0;bottom:-22px;height:1px;background:var(--gold)}
.nav-cta{padding:12px 22px;border:1px solid var(--gold);color:var(--gold);font-family:"Oswald";font-weight:600;font-size:12px;letter-spacing:.24em;display:inline-flex;align-items:center;gap:8px;background:transparent;transition:all .2s}
.nav-cta:hover{background:var(--gold);color:var(--black)}
.nav-cta svg{width:11px;height:11px}
.nav-lang{display:flex;gap:14px;font-family:"Space Grotesk";font-size:11px;letter-spacing:.2em;color:rgba(255,255,255,.5)}
.nav-lang .active{color:#fff}

/* === PAGE HERO (sub pages) === */
.page-hero{background:var(--black);color:#fff;padding:80px 0 100px;position:relative;overflow:hidden;border-bottom:1px solid var(--line-dark)}
.page-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg, transparent 0 40px, rgba(255,255,255,.025) 40px 41px),repeating-linear-gradient(90deg, transparent 0 40px, rgba(255,255,255,.015) 40px 41px)}
.page-hero-inner{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:0 60px}
.breadcrumb{display:flex;gap:10px;font-family:"Space Grotesk";font-size:11px;letter-spacing:.28em;color:rgba(255,255,255,.4);text-transform:uppercase;margin-bottom:32px}
.breadcrumb a:hover{color:var(--gold)}
.breadcrumb .sep{opacity:.4}
.breadcrumb .now{color:var(--gold)}
.page-hero .kicker{font-family:"Space Grotesk";font-size:12px;letter-spacing:.4em;color:var(--gold);text-transform:uppercase;margin-bottom:24px;display:flex;align-items:center;gap:14px}
.page-hero .kicker::before{content:"";width:32px;height:1px;background:var(--gold)}
.page-hero h1{font-family:"Oswald";font-weight:700;font-size:96px;line-height:.95;letter-spacing:.01em;color:#fff;margin-bottom:20px}
.page-hero h1 .gold{color:var(--gold)}
.page-hero .h1-jp{font-family:"Noto Sans JP";font-weight:700;font-size:28px;color:rgba(255,255,255,.85);letter-spacing:.04em;line-height:1.4;max-width:900px}
.page-hero .h1-lead{margin-top:24px;font-size:15px;color:rgba(255,255,255,.65);max-width:680px;line-height:2}

/* === ENTRY: Hero CTA === */
.entry-hero{background:var(--navy-deep);color:#fff;padding:120px 0;position:relative;overflow:hidden}
.entry-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 70% 30%, rgba(201,162,75,.1), transparent 60%),repeating-linear-gradient(45deg, transparent 0 30px, rgba(201,162,75,.03) 30px 31px)}
.entry-hero-inner{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:0 60px;display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:center}
.entry-hero .kicker{font-family:"Space Grotesk";font-size:12px;letter-spacing:.4em;color:var(--gold);text-transform:uppercase;margin-bottom:24px;display:flex;align-items:center;gap:14px}
.entry-hero .kicker::before{content:"";width:32px;height:1px;background:var(--gold)}
.entry-hero h1{font-family:"Oswald";font-weight:700;font-size:120px;line-height:.9;letter-spacing:.005em;color:#fff}
.entry-hero h1 .gold{color:var(--gold)}
.entry-hero .h1-jp{font-family:"Noto Sans JP";font-weight:700;font-size:32px;color:rgba(255,255,255,.85);letter-spacing:.04em;line-height:1.4;margin-top:24px}
.entry-hero .lead{margin-top:28px;font-size:15px;color:rgba(255,255,255,.7);line-height:2;max-width:540px}
.entry-hero-stats{display:grid;gap:0;border:1px solid var(--line)}
.entry-stat{padding:24px 28px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:baseline;gap:20px}
.entry-stat:last-child{border-bottom:none}
.entry-stat .lbl{font-family:"Space Grotesk";font-size:11px;letter-spacing:.28em;color:var(--gold);text-transform:uppercase}
.entry-stat .val{font-family:"Oswald";font-weight:600;font-size:32px;color:#fff;letter-spacing:.02em;text-align:right}
.entry-stat .sub{font-family:"Noto Sans JP";font-size:12px;color:rgba(255,255,255,.55);text-align:right;margin-top:4px;letter-spacing:.06em}

/* === ENTRY: Categories grid === */
.entry-categories{background:var(--paper);padding:120px 0;scroll-margin-top:80px}
.entry-categories-inner{max-width:var(--max);margin:0 auto;padding:0 60px}
.ec-card{background:#fff;border:1px solid rgba(10,10,10,.1);padding:44px 40px;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;margin-bottom:20px;transition:all .25s;position:relative}
.ec-card:hover{border-color:var(--gold);transform:translateY(-3px)}
.ec-card.featured{background:var(--black);color:#fff;border-color:var(--gold)}
.ec-card.featured .ec-title{color:#fff}
.ec-card.featured .ec-desc{color:rgba(255,255,255,.7)}
.ec-card.featured .ec-date{color:rgba(255,255,255,.55)}
.ec-card.featured .ec-tag{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.2)}
.ec-card.featured .fee{color:var(--gold-bright)}
.ec-card .ec-head{display:flex;align-items:baseline;gap:14px;margin-bottom:10px}
.ec-card .ec-num{font-family:"Oswald";font-size:12px;font-weight:500;color:var(--gold);letter-spacing:.24em}
.ec-card .ec-tag{font-family:"Space Grotesk";font-size:10px;letter-spacing:.24em;color:var(--ink);background:var(--paper-2);padding:4px 10px;border:1px solid rgba(10,10,10,.1);text-transform:uppercase}
.ec-card .ec-title{font-family:"Noto Sans JP";font-weight:700;font-size:26px;color:var(--ink);letter-spacing:.02em;line-height:1.2}
.ec-card .ec-title-en{font-family:"Oswald";font-weight:500;font-size:14px;color:var(--gold);letter-spacing:.16em;margin-top:8px;text-transform:uppercase}
.ec-card .ec-desc{font-family:"Noto Sans JP";font-size:13px;line-height:1.9;margin-top:14px;color:#5a564e;max-width:560px}
.ec-card .ec-meta{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px;font-family:"Space Grotesk";font-size:11px;color:var(--gray-mid);letter-spacing:.16em;text-transform:uppercase}
.ec-card .ec-date{font-family:"Space Grotesk";font-size:11px;letter-spacing:.24em;color:var(--gray-mid);text-transform:uppercase}
.ec-card-right{text-align:right;display:flex;flex-direction:column;gap:8px;align-items:flex-end;min-width:200px}
.ec-card-right .fee-label{font-family:"Space Grotesk";font-size:10px;letter-spacing:.28em;color:var(--gray-mid);text-transform:uppercase}
.ec-card-right .fee{font-family:"Oswald";font-weight:700;font-size:36px;color:var(--gold-soft);letter-spacing:.02em;line-height:1}
.ec-card-right .fee-sub{font-family:"Noto Sans JP";font-size:11px;color:var(--gray-mid);letter-spacing:.1em}
.ec-card-right .ec-cta{display:inline-flex;align-items:center;gap:10px;margin-top:16px;padding:14px 22px;border:1px solid var(--gold);color:var(--gold);font-family:"Oswald";font-weight:600;font-size:11px;letter-spacing:.24em;text-transform:uppercase;transition:all .2s}
.ec-card.featured .ec-cta{background:var(--gold);color:var(--black)}
.ec-card-right .ec-cta:hover{background:var(--gold);color:var(--black)}

/* === ENTRY: How to === */
.entry-how{background:var(--ink);color:#fff;padding:120px 0;position:relative;overflow:hidden}
.entry-how::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg, transparent 0 60px, rgba(255,255,255,.02) 60px 61px),repeating-linear-gradient(90deg, transparent 0 60px, rgba(255,255,255,.02) 60px 61px)}
.entry-how-inner{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:0 60px}
.how-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
.how-step{padding:40px 32px 40px 0;border-right:1px solid rgba(255,255,255,.08);position:relative;display:flex;flex-direction:column;gap:14px;min-height:280px}
.how-step:last-child{border-right:none}
.how-step .step-num{font-family:"Oswald";font-weight:700;font-size:64px;color:var(--gold);line-height:1;opacity:.85}
.how-step .step-num::before{content:"— STEP ";font-family:"Space Grotesk";font-size:10px;letter-spacing:.32em;color:rgba(255,255,255,.5);text-transform:uppercase;display:block;margin-bottom:8px;opacity:.6}
.how-step .step-title{font-family:"Noto Sans JP";font-weight:700;font-size:18px;color:#fff;letter-spacing:.04em;line-height:1.4}
.how-step .step-desc{font-family:"Noto Sans JP";font-size:12px;color:rgba(255,255,255,.7);line-height:1.9;margin-top:6px}
.how-step .step-action{margin-top:auto;font-family:"Space Grotesk";font-size:10px;letter-spacing:.24em;color:var(--gold);text-transform:uppercase;padding-top:14px;border-top:1px dashed rgba(255,255,255,.15)}

/* === ENTRY: FAQ === */
.entry-faq{background:var(--paper);padding:120px 0;scroll-margin-top:80px}
.entry-faq-inner{max-width:var(--max);margin:0 auto;padding:0 60px}
.faq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;margin-top:60px}
.faq-item{background:#fff;border:1px solid rgba(10,10,10,.08);padding:32px;transition:all .2s}
.faq-item:hover{border-color:var(--gold)}
.faq-q{display:flex;gap:16px;align-items:flex-start;margin-bottom:14px}
.faq-q .q-label{font-family:"Oswald";font-weight:700;font-size:22px;color:var(--gold);letter-spacing:0;line-height:1;flex-shrink:0}
.faq-q .q-text{font-family:"Noto Sans JP";font-weight:600;font-size:15px;color:var(--ink);letter-spacing:.02em;line-height:1.6}
.faq-q .q-en{font-family:"Space Grotesk";font-size:10px;letter-spacing:.24em;color:var(--gray-mid);text-transform:uppercase;margin-top:6px}
.faq-a{font-family:"Noto Sans JP";font-size:13px;color:#3a3730;line-height:2;padding-top:14px;border-top:1px dashed rgba(10,10,10,.15)}
.faq-a strong{color:var(--gold-soft);font-weight:600}

/* === ACCESS === */
.access-hero{background:var(--black);color:#fff;padding:80px 0 110px;position:relative;overflow:hidden;border-bottom:1px solid var(--line-dark)}
.access-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg, transparent 0 40px, rgba(255,255,255,.025) 40px 41px),repeating-linear-gradient(90deg, transparent 0 40px, rgba(255,255,255,.015) 40px 41px)}
.access-hero-inner{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:0 60px}

.access-body{background:var(--paper);padding:120px 0}
.access-body-inner{max-width:var(--max);margin:0 auto;padding:0 60px}
.access-main{display:grid;grid-template-columns:1.3fr 1fr;gap:60px;align-items:start;margin-bottom:80px}
.access-info .kicker{font-family:"Space Grotesk";font-size:11px;letter-spacing:.4em;color:var(--gold);text-transform:uppercase;margin-bottom:24px;display:flex;align-items:center;gap:14px}
.access-info .kicker::before{content:"";width:32px;height:1px;background:var(--gold)}
.access-info h2{font-family:"Oswald";font-weight:700;font-size:64px;color:var(--ink);line-height:1;letter-spacing:.02em}
.access-info .h2-jp{font-family:"Noto Sans JP";font-weight:700;font-size:28px;color:var(--ink);line-height:1.3;letter-spacing:.04em;margin-top:12px}
.access-info .desc{margin-top:32px;font-size:14px;line-height:2;color:#3a3730;max-width:540px}
.access-spec{margin-top:40px;border-top:1px solid rgba(10,10,10,.15)}
.access-spec-row{display:grid;grid-template-columns:140px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid rgba(10,10,10,.08)}
.access-spec-row .label{font-family:"Space Grotesk";font-size:11px;letter-spacing:.28em;color:var(--gold);text-transform:uppercase}
.access-spec-row .value{font-family:"Noto Sans JP";font-size:15px;color:var(--ink);line-height:1.7}
.access-spec-row .value-en{font-family:"Oswald";font-size:12px;color:var(--gray-mid);letter-spacing:.12em;text-transform:uppercase;margin-top:6px}

.access-map{aspect-ratio:4/3;background:#0F1A34;color:#e6ddc9;position:relative;border:1px solid rgba(10,10,10,.15)}
.access-map::before{content:"";position:absolute;inset:0;background-image:linear-gradient(135deg, rgba(255,255,255,.05) 0 1px, transparent 1px 12px),radial-gradient(rgba(255,255,255,.04) 1px, transparent 1.4px);background-size:12px 12px,6px 6px;opacity:.9}
.access-map::after{content:"";position:absolute;inset:14px;border:1px dashed rgba(201,162,75,.35);pointer-events:none}
.access-map-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2;gap:14px;text-align:center;padding:24px}
.access-map-overlay .pin{width:48px;height:48px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;color:var(--black);font-family:"Oswald";font-weight:700;font-size:18px;box-shadow:0 0 0 8px rgba(201,162,75,.2),0 0 0 16px rgba(201,162,75,.1)}
.access-map-overlay .map-name{font-family:"Oswald";font-weight:700;font-size:36px;color:#fff;letter-spacing:.02em}
.access-map-overlay .map-jp{font-family:"Noto Sans JP";font-size:13px;color:rgba(255,255,255,.65);letter-spacing:.16em}
.access-map-overlay .map-coord{font-family:"Space Grotesk";font-size:11px;letter-spacing:.24em;color:var(--gold);margin-top:8px}
.access-map-overlay .map-note{font-family:"Space Grotesk";font-size:10px;letter-spacing:.24em;color:rgba(255,255,255,.45);margin-top:20px;text-transform:uppercase;padding-top:14px;border-top:1px dashed rgba(255,255,255,.15)}
.access-map-external{position:absolute;bottom:24px;right:24px;z-index:3;padding:10px 16px;background:var(--gold);color:var(--black);font-family:"Oswald";font-weight:600;font-size:11px;letter-spacing:.24em;text-transform:uppercase}
.access-map-external:hover{background:var(--gold-bright)}

.transport-section{background:#fff;border-top:1px solid rgba(10,10,10,.1);border-bottom:1px solid rgba(10,10,10,.1);padding:80px 0;margin-top:80px}
.transport-section-inner{max-width:var(--max);margin:0 auto;padding:0 60px}
.transport-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:48px;border-top:1px solid rgba(10,10,10,.15)}
.transport-item{padding:36px 32px 36px 0;border-right:1px solid rgba(10,10,10,.08)}
.transport-item:last-child{border-right:none;padding-right:0}
.transport-item .t-mode{font-family:"Space Grotesk";font-size:11px;letter-spacing:.32em;color:var(--gold);text-transform:uppercase;display:flex;align-items:center;gap:14px;margin-bottom:14px}
.transport-item .t-mode::before{content:"";width:28px;height:1px;background:var(--gold)}
.transport-item .t-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--gold);color:var(--gold);margin-bottom:18px}
.transport-item .t-route{font-family:"Oswald";font-weight:600;font-size:24px;color:var(--ink);letter-spacing:.02em;line-height:1.2}
.transport-item .t-time{font-family:"Oswald";font-weight:500;font-size:18px;color:var(--gold-soft);margin-top:8px;letter-spacing:.04em}
.transport-item .t-desc{font-family:"Noto Sans JP";font-size:12px;color:#5a564e;line-height:1.9;margin-top:12px}

.access-airport{background:var(--ink);color:#fff;padding:80px 0;margin-top:80px}
.access-airport-inner{max-width:var(--max);margin:0 auto;padding:0 60px}
.airport-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:40px}
.airport-card{padding:36px 32px;border:1px solid rgba(255,255,255,.15);position:relative}
.airport-card .a-code{font-family:"Oswald";font-weight:700;font-size:56px;color:var(--gold);letter-spacing:.02em;line-height:1}
.airport-card .a-name{font-family:"Noto Sans JP";font-weight:600;font-size:18px;color:#fff;letter-spacing:.04em;margin-top:10px}
.airport-card .a-name-en{font-family:"Oswald";font-size:12px;color:rgba(255,255,255,.5);letter-spacing:.2em;text-transform:uppercase;margin-top:4px}
.airport-card .a-time{font-family:"Oswald";font-weight:500;font-size:28px;color:#fff;margin-top:20px;letter-spacing:.04em}
.airport-card .a-route{font-family:"Noto Sans JP";font-size:13px;color:rgba(255,255,255,.75);line-height:1.9;margin-top:8px}

.access-secondary{background:var(--paper);padding:80px 0}
.access-secondary-inner{max-width:var(--max);margin:0 auto;padding:0 60px}
.access-secondary h3{font-family:"Noto Sans JP";font-weight:700;font-size:24px;color:var(--ink);margin-bottom:32px;letter-spacing:.04em}
.secondary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.secondary-grid .item{background:#fff;border:1px solid rgba(10,10,10,.1);padding:24px 20px;transition:all .2s}
.secondary-grid .item:hover{border-color:var(--gold)}
.secondary-grid .item .ic-name{font-family:"Oswald";font-weight:600;font-size:18px;color:var(--ink);letter-spacing:.02em}
.secondary-grid .item .ic-name-jp{font-family:"Noto Sans JP";font-size:12px;color:#5a564e;margin-top:8px;line-height:1.7}
.secondary-grid .item .ic-dist{font-family:"Space Grotesk";font-size:10px;color:var(--gold);letter-spacing:.24em;margin-top:10px;text-transform:uppercase}

/* === CTABAND (common) === */
.cta-band{background:var(--black);color:#fff;padding:100px 0;position:relative;overflow:hidden;border-top:1px solid var(--line-dark)}
.cta-band::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%, rgba(201,162,75,.08), transparent 60%)}
.cta-band-inner{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:0 60px;display:grid;grid-template-columns:1.4fr 1fr;gap:80px;align-items:center}
.cta-band h2{font-family:"Oswald";font-weight:700;font-size:72px;line-height:.95;letter-spacing:.01em;color:#fff}
.cta-band h2 .gold{color:var(--gold)}
.cta-band .h2-jp{font-family:"Noto Sans JP";font-weight:700;font-size:24px;color:rgba(255,255,255,.85);letter-spacing:.04em;line-height:1.4;margin-top:20px;max-width:560px}
.cta-band-right{text-align:right}
.cta-band-right a{display:inline-flex;align-items:center;gap:16px;padding:24px 38px;background:var(--black);border:1px solid var(--gold);color:var(--gold);font-family:"Oswald";font-weight:600;font-size:18px;letter-spacing:.24em;text-transform:uppercase;transition:all .25s}
.cta-band-right a:hover{background:var(--gold);color:var(--black)}
.cta-band-right .cta-jp{font-family:"Noto Sans JP";font-size:11px;color:rgba(255,255,255,.5);letter-spacing:.24em;margin-bottom:8px;display:block;text-transform:none}
.cta-band-right .cta-jp-band{font-family:"Noto Sans JP";font-size:11px;letter-spacing:.28em;color:rgba(255,255,255,.5);margin-bottom:14px;text-transform:uppercase}

/* === FOOTER === */
footer{background:var(--black);color:#fff;padding:100px 0 40px;border-top:1px solid var(--line-dark)}
.footer-inner{max-width:var(--max);margin:0 auto;padding:0 60px}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:60px;padding-bottom:60px;border-bottom:1px solid var(--line-dark)}
.footer-brand h3{font-family:"Oswald";font-weight:700;font-size:36px;color:#fff;line-height:1;letter-spacing:.02em}
.footer-brand h3 .gold{color:var(--gold)}
.footer-brand .h3-jp{font-family:"Noto Sans JP";font-size:12px;color:rgba(255,255,255,.55);letter-spacing:.24em;margin-top:14px}
.footer-brand p{font-family:"Noto Sans JP";font-size:12px;color:rgba(255,255,255,.55);margin-top:24px;line-height:1.9}
.footer-col h4{font-family:"Oswald";font-weight:500;font-size:12px;letter-spacing:.24em;color:var(--gold);text-transform:uppercase;margin-bottom:20px}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:12px}
.footer-col a{font-family:"Noto Sans JP";font-size:13px;color:rgba(255,255,255,.7);transition:color .2s}
.footer-col a:hover{color:var(--gold)}
.footer-col a .en{font-family:"Space Grotesk";font-size:10px;letter-spacing:.16em;color:rgba(255,255,255,.35);text-transform:uppercase;display:block;margin-top:2px}
.footer-sns{margin-top:24px;display:flex;gap:12px}
.footer-sns a{width:36px;height:36px;border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);transition:all .2s}
.footer-sns a:hover{border-color:var(--gold);color:var(--gold)}
.footer-sns svg{width:14px;height:14px}
.footer-cta{margin-top:24px}
.footer-cta a{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border:1px solid var(--gold);color:var(--gold);font-family:"Oswald";font-weight:600;font-size:11px;letter-spacing:.24em;text-transform:uppercase;transition:all .2s}
.footer-cta a:hover{background:var(--gold);color:var(--black)}
.footer-bottom{padding-top:32px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}
.footer-bottom .copy{font-family:"Space Grotesk";font-size:11px;color:rgba(255,255,255,.4);letter-spacing:.12em}
.footer-bottom .fine-print{display:flex;gap:24px;font-family:"Space Grotesk";font-size:11px;color:rgba(255,255,255,.4);letter-spacing:.12em}
.footer-bottom .fine-print a:hover{color:var(--gold)}

@media (max-width:1200px){
  .container,.nav-inner,.footer-inner,.entry-hero-inner,.entry-categories-inner,.entry-how-inner,.entry-faq-inner,.access-hero-inner,.access-body-inner,.transport-section-inner,.access-airport-inner,.access-secondary-inner,.cta-band-inner{left:0;right:0;padding-left:32px;padding-right:32px}
  .entry-hero-inner,.access-main,.cta-band-inner{grid-template-columns:1fr;gap:48px}
  .entry-hero h1{font-size:72px}
  .entry-stat{padding:18px 20px}
  .entry-stat .val{font-size:24px}
  .entry-stat{font-size:11px}
  .page-hero h1,.access-info h2,.cta-band h2{font-size:56px}
}
@media (max-width:720px){
  .nav-links,.nav-lang{display:none}
  .nav-inner{padding:0 20px}
  .container{padding:0 20px}
  .entry-hero,.entry-categories,.entry-how,.entry-faq,.access-body,.transport-section,.access-airport,.access-secondary,.cta-band{padding:60px 0}
  .entry-hero h1{font-size:48px}
  .page-hero h1,.access-info h2,.cta-band h2{font-size:36px}
  .entry-hero-stats{border:none}
  .entry-stat{border:1px solid var(--line);margin-bottom:12px}
  .how-steps,.faq-grid,.airport-grid,.transport-grid,.secondary-grid,.footer-top{grid-template-columns:1fr}
  .how-step{border-right:none;border-bottom:1px solid rgba(255,255,255,.08);padding:24px 0}
  .transport-item{border-right:none;border-bottom:1px solid rgba(10,10,10,.08);padding:24px 0}
  .footer-top{gap:32px}
  .footer-col{grid-column:span 1}
}
