  /* ============================
     DESIGN TOKENS — Kansai Food
     ----------------------------
     ※ このCSSは ex_kansai_food2026.php 専用。
        共通CSS（common.css 等）の影響を避けるため、
        ほぼ全てのセレクタを .kansai-fp2026-wrap 配下に
        スコープしています。h1〜h6 もここで再定義します。
  ============================ */
  :root{
    /* Light/Cream (primary surface) */
    --paper:        #faf6ed;
    --cream:        #f0e5d1;
    --cream-deep:   #e5d6ba;
    --ink:          #1c1814;
    --ink-soft:     #5c5046;
    --ink-muted:    #8a7e74;
    --ink-light:    rgba(28,24,20,.5);

    /* Dark (secondary surface, warm) */
    --bg-dark:      #1c1814;
    --bg-darker:    #14110d;
    --bg-dark-soft: #2a241d;
    --ivory:        #f5ede0;
    --ivory-soft:   #c8c2b6;
    --ivory-muted:  #837e76;

    /* Accents */
    --persimmon:    #c8541b;
    --persimmon-deep:#a83f12;
    --persimmon-soft:#e8a87c;
    --umber:        #6b3617;
    --matcha:       #5a6b35;
    --gold:         #c9a866;

    /* Lines */
    --line:         rgba(28,24,20,.14);
    --line-soft:    rgba(28,24,20,.08);
    --line-dark:    rgba(245,237,224,.12);

    --serif-jp:     "Shippori Mincho B1", "Yu Mincho", "Hiragino Mincho ProN", serif;
    --sans-jp:      "Noto Sans JP", sans-serif;
    --sans-jp-body: "Noto Sans JP", sans-serif;
    --serif-en:     "Roboto", "Helvetica Neue", Arial, sans-serif;
    /* Legacy aliases (kept so existing rules still resolve) */
    --serif-jp-body:"Noto Sans JP", sans-serif;
  }

  /* ============================
     SCOPED RESET & BASE
     ----------------------------
     common.css 等の影響を受けないよう、
     wrapper 内だけに当たる reset を再定義
  ============================ */
  .kansai-fp2026-wrap,
  .kansai-fp2026-wrap *,
  .kansai-fp2026-wrap *::before,
  .kansai-fp2026-wrap *::after{
    box-sizing:border-box;
  }
  .kansai-fp2026-wrap{
    display:block;
    margin:0;
    padding:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--sans-jp);
    font-weight:400;
    font-size:16px;
    line-height:1.85;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  .kansai-fp2026-wrap p,
  .kansai-fp2026-wrap ul,
  .kansai-fp2026-wrap ol,
  .kansai-fp2026-wrap li,
  .kansai-fp2026-wrap dl,
  .kansai-fp2026-wrap dt,
  .kansai-fp2026-wrap dd,
  .kansai-fp2026-wrap figure,
  .kansai-fp2026-wrap blockquote{
    margin:0;
    padding:0;
  }
  .kansai-fp2026-wrap ul,
  .kansai-fp2026-wrap ol{list-style:none}

  /* ─── 見出しタグ：common.css の h1〜h6 上書き対策 ─── */
  .kansai-fp2026-wrap h1,
  .kansai-fp2026-wrap h2,
  .kansai-fp2026-wrap h3,
  .kansai-fp2026-wrap h4,
  .kansai-fp2026-wrap h5,
  .kansai-fp2026-wrap h6{
    margin:0;
    padding:0;
    font-family:var(--sans-jp);
    font-weight:700;
    font-size:100%;
    line-height:1.4;
    color:inherit;
    letter-spacing:normal;
    text-align:left;
  }

  .kansai-fp2026-wrap img{display:block;max-width:100%;height:auto}
  .kansai-fp2026-wrap a{color:inherit;text-decoration:none}

  /* ============================
     TOP RIBBON (light, vs. dark in siblings)
  ============================ */
  .kansai-fp2026-wrap .ribbon{
    background:var(--paper);
    border-bottom:1px solid var(--line);
    padding:14px 32px;
    display:flex;align-items:center;justify-content:space-between;
    flex-wrap:wrap;gap:16px;
    font-size:12px;letter-spacing:.05em;
  }
  .kansai-fp2026-wrap .ribbon-left{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
  .kansai-fp2026-wrap .ribbon-tag{
    font-family:var(--sans-jp);
    font-size:11px;
    letter-spacing:.18em;
    color:var(--ink-muted);
  }
  .kansai-fp2026-wrap .ribbon-event{
    font-family:var(--sans-jp);
    font-weight:600;font-size:13px;
    letter-spacing:.1em;
    color:var(--ink);
  }
  .kansai-fp2026-wrap .ribbon-event span{color:var(--persimmon)}
  .kansai-fp2026-wrap .ribbon-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
  .kansai-fp2026-wrap .ribbon-date{
    font-family:var(--serif-en);
    font-size:15px;color:var(--ink);
    letter-spacing:.06em;
  }
  .kansai-fp2026-wrap .ribbon-date b{font-weight:600;color:var(--persimmon)}
  .kansai-fp2026-wrap .ribbon-date small{color:var(--ink-muted)}
  .kansai-fp2026-wrap .ribbon-badge{
    background:var(--persimmon);
    color:#fff;padding:7px 14px;
    font-size:11px;font-weight:700;
    letter-spacing:.15em;
  }

  /* ============================
     MASTHEAD / ISSUE TAG
  ============================ */
  .kansai-fp2026-wrap .masthead{
    padding:36px 7vw 0;
    display:flex;align-items:baseline;
    justify-content:space-between;
    gap:24px;
    border-bottom:1px solid var(--line);
    margin-bottom:0;
  }
  .kansai-fp2026-wrap .masthead-issue{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:13px;
    letter-spacing:.32em;
    color:var(--persimmon);
    text-transform:uppercase;
  }
  .kansai-fp2026-wrap .masthead-title{
    font-family:var(--sans-jp);
    font-weight:700;
    font-size:14px;
    letter-spacing:.3em;
    color:var(--ink);
  }
  .kansai-fp2026-wrap .masthead-page{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:13px;
    letter-spacing:.25em;
    color:var(--ink-muted);
  }

  /* ============================
     HERO (Magazine cover style)
  ============================ */
  /* HERO WRAP — full-bleed background image with dark overlay */
  .kansai-fp2026-wrap .hero-wrap{
    position:relative;
    background:#1c1814 url('../img/kansai_fp2026/kansai_fv.webp') center/cover no-repeat;
    isolation:isolate;
  }
  .kansai-fp2026-wrap .hero-wrap::before{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.55) 50%, rgba(0,0,0,.72) 100%);
    z-index:0;
  }
  .kansai-fp2026-wrap .hero-wrap > *{position:relative;z-index:1}

  .kansai-fp2026-wrap .hero{
    padding:64px 7vw 60px;
    position:relative;
    display:grid;
    grid-template-columns:1fr 1.05fr 1fr;
    gap:48px;
    align-items:center;
    max-width:1500px;
    margin:0 auto;
  }
  .kansai-fp2026-wrap .hero-left,
  .kansai-fp2026-wrap .hero-right{position:relative;z-index:3}
  .kansai-fp2026-wrap .hero-eyebrow{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:13px;
    letter-spacing:.32em;
    color:var(--persimmon-soft);
    text-transform:uppercase;
    margin-bottom:28px;
    display:flex;align-items:center;gap:14px;
  }
  .kansai-fp2026-wrap .hero-eyebrow::before{
    content:"";
    width:42px;height:1px;
    background:var(--persimmon-soft);
  }
  .kansai-fp2026-wrap .hero-headline,
  .kansai-fp2026-wrap h1.hero-headline{
    font-family:var(--sans-jp);
    font-weight:900;
    font-size:clamp(28px,3.0vw,40px);
    line-height:1.55;
    letter-spacing:.04em;
    color:#ffffff;
    text-shadow:0 2px 16px rgba(0,0,0,.55);
    margin-bottom:28px;
  }
  .kansai-fp2026-wrap .hero-headline .quote{
    font-family:var(--serif-en);
    color:var(--persimmon-soft);
    font-weight:400;
    font-style:italic;
  }
  .kansai-fp2026-wrap .hero-headline .accent{color:var(--persimmon-soft)}
  .kansai-fp2026-wrap .hero-sub{
    font-family:var(--sans-jp);
    font-size:14px;
    line-height:2;
    color:rgba(255,255,255,.88);
    letter-spacing:.04em;
    max-width:380px;
    text-shadow:0 2px 12px rgba(0,0,0,.5);
  }

  /* HERO CENTER — single tilted photo card w/ deco */
  .kansai-fp2026-wrap .hero-center{
    position:relative;
    aspect-ratio:3/4;
    display:flex;align-items:center;justify-content:center;
  }
  .kansai-fp2026-wrap .hero-photo{
    position:relative;
    width:100%;height:100%;
    transform:rotate(-4deg);
    box-shadow:0 36px 80px -32px rgba(28,24,20,.45), 0 14px 30px -18px rgba(28,24,20,.25);
    overflow:hidden;
    z-index:3;
  }
  .kansai-fp2026-wrap .hero-photo img{
    width:100%;height:100%;object-fit:cover;
    transition:transform 1.6s cubic-bezier(.22,1,.36,1);
  }
  .kansai-fp2026-wrap .hero-photo:hover img{transform:scale(1.06)}
  .kansai-fp2026-wrap .hero-circle{
    position:absolute;
    width:124%;aspect-ratio:1/1;
    border:1px solid var(--persimmon);
    border-radius:50%;
    right:-32%;top:50%;
    transform:translateY(-50%);
    opacity:.45;
    z-index:1;
  }
  .kansai-fp2026-wrap .hero-brush{display:none}

  /* HERO RIGHT — brand wordmark */
  .kansai-fp2026-wrap .hero-right{
    display:flex;flex-direction:column;align-items:flex-start;
  }
  .kansai-fp2026-wrap .hero-tag-en{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:13px;
    letter-spacing:.32em;
    color:var(--persimmon);
    text-transform:uppercase;
    margin-bottom:4px;
  }
  .kansai-fp2026-wrap .hero-tag-jp{
    font-family:var(--sans-jp);
    font-size:12px;font-weight:600;
    letter-spacing:.28em;
    color:rgba(255,255,255,.85);
    margin-bottom:18px;
    text-shadow:0 2px 12px rgba(0,0,0,.5);
  }
  .kansai-fp2026-wrap .hero-brand{
    font-family:var(--serif-en);
    font-weight:700;
    font-size:clamp(48px,5.8vw,84px);
    line-height:1.0;
    letter-spacing:-.005em;
    color:var(--persimmon-soft);
    margin-bottom:20px;
    text-shadow:0 4px 24px rgba(0,0,0,.5);
  }
  .kansai-fp2026-wrap .hero-brand span{display:block}
  .kansai-fp2026-wrap .hero-brand .brand-light{color:#ffffff}
  .kansai-fp2026-wrap .hero-brand-jp{
    font-family:var(--serif-jp);
    font-weight:700;
    font-size:16px;
    letter-spacing:.22em;
    color:#ffffff;
    padding-top:14px;
    border-top:1px solid rgba(255,255,255,.25);
    width:100%;
    text-shadow:0 2px 12px rgba(0,0,0,.5);
  }

  /* HERO FOOT — scroll cue + message */
  .kansai-fp2026-wrap .hero-foot{
    max-width:1500px;
    margin:0 auto;
    padding:0 7vw 64px;
    display:flex;align-items:center;justify-content:center;gap:32px;
  }
  .kansai-fp2026-wrap .scroll-cue{
    display:flex;flex-direction:column;align-items:center;gap:14px;
    font-family:var(--serif-en);
    font-style:italic;
    font-size:12px;
    letter-spacing:.28em;
    color:rgba(255,255,255,.85);
    text-transform:uppercase;
  }
  .kansai-fp2026-wrap .scroll-cue .dot{
    width:14px;height:14px;border-radius:50%;
    background:var(--persimmon-soft);
    box-shadow:0 0 0 4px rgba(232,168,124,.25);
    animation:kansai-fp-scroll-bob 1.8s ease-in-out infinite;
  }
  @keyframes kansai-fp-scroll-bob{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(8px)}
  }
  .kansai-fp2026-wrap .hero-message{
    display:flex;flex-direction:column;align-items:center;gap:6px;
    text-align:center;
  }
  .kansai-fp2026-wrap .hero-message .msg-label{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:13px;letter-spacing:.28em;
    color:var(--persimmon);text-transform:uppercase;
  }
  .kansai-fp2026-wrap .hero-message .msg-body{
    font-family:var(--sans-jp);
    font-weight:700;font-size:16px;
    letter-spacing:.06em;color:#ffffff;
    border-bottom:2px solid var(--persimmon-soft);
    padding-bottom:6px;
    text-shadow:0 2px 12px rgba(0,0,0,.5);
  }

  /* Subtle paper grain on cream/paper surfaces */
  .kansai-fp2026-wrap .paper-grain{
    position:relative;
  }
  .kansai-fp2026-wrap .paper-grain::after{
    content:"";
    position:absolute;inset:0;
    pointer-events:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.36  0 0 0 0 0.27  0 0 0 0 0.17  0 0 0 0.07 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
    mix-blend-mode:multiply;
    opacity:.5;
  }

  /* ============================
     SECTION SHELL
  ============================ */
  .kansai-fp2026-wrap section{padding:140px 7vw;position:relative}
  .kansai-fp2026-wrap .section-eyebrow{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:13px;
    letter-spacing:.32em;
    color:var(--persimmon);
    text-transform:uppercase;
    margin-bottom:20px;
    display:inline-flex;align-items:center;gap:12px;
  }
  .kansai-fp2026-wrap .section-eyebrow::before{
    content:"";width:32px;height:1px;background:var(--persimmon);
  }
  .kansai-fp2026-wrap .section-title,
  .kansai-fp2026-wrap h2.section-title{
    font-family:var(--sans-jp);
    font-weight:900;
    font-size:clamp(30px,4vw,46px);
    line-height:1.4;
    letter-spacing:.03em;
    color:var(--ink);
    margin-bottom:36px;
  }
  .kansai-fp2026-wrap .section-title .accent{color:var(--persimmon)}
  .kansai-fp2026-wrap .section-title .quote{font-family:var(--serif-en);color:var(--persimmon);font-style:italic;font-weight:400}
  .kansai-fp2026-wrap .section-lead{
    font-family:var(--sans-jp);
    font-size:16px;
    line-height:1.95;
    color:var(--ink-soft);
    letter-spacing:.04em;
    max-width:680px;
    margin-bottom:64px;
  }

  /* Dark theme override */
  .kansai-fp2026-wrap .theme-dark{
    background:var(--bg-dark);
    color:var(--ivory);
  }
  .kansai-fp2026-wrap .theme-dark .section-eyebrow{color:var(--persimmon-soft)}
  .kansai-fp2026-wrap .theme-dark .section-eyebrow::before{background:var(--persimmon-soft)}
  .kansai-fp2026-wrap .theme-dark .section-title{color:var(--ivory)}
  .kansai-fp2026-wrap .theme-dark .section-lead{color:var(--ivory-soft)}

  /* ============================
     SECTION 01 ─ MARKET TREND
  ============================ */
  .kansai-fp2026-wrap .trend-section{
    background:var(--cream);
    position:relative;
  }
  .kansai-fp2026-wrap .trend-section::before{
    content:"";
    position:absolute;left:0;right:0;top:0;
    height:1px;
    background:linear-gradient(90deg, transparent, var(--persimmon) 30%, var(--persimmon) 70%, transparent);
    opacity:.4;
  }
  .kansai-fp2026-wrap .trend-grid{
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:88px;
    align-items:start;
  }
  .kansai-fp2026-wrap .trend-left .section-title{
    font-size:clamp(30px,3.8vw,52px);
  }
  .kansai-fp2026-wrap .trend-body{
    font-family:var(--serif-jp-body);
    font-size:16px;
    line-height:2.1;
    color:var(--ink-soft);
    letter-spacing:.04em;
    margin-bottom:32px;
  }
  /* Drop cap on first paragraph */
  .kansai-fp2026-wrap .trend-body.dropcap::first-letter{
    font-family:var(--serif-en);
    font-style:italic;
    font-weight:500;
    font-size:5em;
    float:left;
    line-height:.85;
    margin:8px 14px 0 -4px;
    color:var(--persimmon);
  }
  .kansai-fp2026-wrap .trend-tags{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin:32px 0;
  }
  .kansai-fp2026-wrap .trend-tag{
    position:relative;
    display:flex;
    align-items:center;
    gap:18px;
    padding:18px 22px;
    background:#ffffff;
    border:1px solid var(--line-soft);
    box-shadow:0 6px 22px -14px rgba(28,24,20,.22);
    transition:transform .35s ease, box-shadow .35s ease;
    min-width:0;
  }
  .kansai-fp2026-wrap .trend-tag::before{
    content:"";
    position:absolute;
    left:0;top:14%;bottom:14%;
    width:3px;
    background:var(--persimmon);
  }
  .kansai-fp2026-wrap .trend-tag:hover{
    transform:translateY(-2px);
    box-shadow:0 12px 28px -14px rgba(28,24,20,.3);
  }
  .kansai-fp2026-wrap .trend-tag .n{
    font-family:'Roboto', sans-serif;
    font-weight:300;
    font-size:30px;
    line-height:1;
    color:var(--persimmon);
    flex:0 0 auto;
  }
  .kansai-fp2026-wrap .trend-tag .t{
    font-family:var(--sans-jp);
    font-weight:600;
    font-size:14.5px;
    letter-spacing:.04em;
    color:var(--ink);
    line-height:1.35;
    white-space:nowrap;
  }
  .kansai-fp2026-wrap .trend-right{
    position:relative;
    aspect-ratio:3/4;
    overflow:visible;
  }
  .kansai-fp2026-wrap .trend-right img{
    width:100%;height:100%;object-fit:contain;
    transition:transform 1.6s cubic-bezier(.22,1,.36,1);
  }
  .kansai-fp2026-wrap .trend-right:hover img{transform:scale(1.05)}
  .kansai-fp2026-wrap .trend-right .caption{
    position:absolute;
    bottom:24px;left:24px;right:24px;
    background:var(--paper);
    padding:14px 18px;
    font-family:var(--serif-jp-body);
    font-size:12.5px;
    line-height:1.7;
    color:var(--ink);
    letter-spacing:.05em;
    border-left:3px solid var(--persimmon);
  }
  .kansai-fp2026-wrap .trend-right .caption b{
    display:block;
    font-family:var(--serif-en);
    font-style:italic;
    font-size:10px;
    letter-spacing:.25em;
    color:var(--persimmon);
    text-transform:uppercase;
    margin-bottom:4px;
    font-weight:500;
  }

  /* ============================
     FULL-BLEED #1 ─ Magazine Spread
  ============================ */
  .kansai-fp2026-wrap .spread{
    position:relative;
    height:80vh;
    min-height:560px;
    overflow:hidden;
    padding:0;
  }
  .kansai-fp2026-wrap .spread img{
    position:absolute;inset:0;
    width:100%;height:100%;
    object-fit:cover;
    transition:transform 18s ease;
  }
  .kansai-fp2026-wrap .spread:hover img{transform:scale(1.05)}
  .kansai-fp2026-wrap .spread::after{
    content:"";
    position:absolute;inset:0;
    background:rgba(0,0,0,.55);
  }
  .kansai-fp2026-wrap .spread-content{
    position:absolute;inset:0;
    z-index:2;
    padding:0 7vw;
    display:flex;flex-direction:column;
    justify-content:center;align-items:flex-start;
  }
  .kansai-fp2026-wrap .spread-pageno{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:13px;
    letter-spacing:.32em;
    color:var(--persimmon-soft);
    text-transform:uppercase;
    margin-bottom:32px;
  }
  .kansai-fp2026-wrap .spread-quote{
    font-family:var(--serif-jp);
    font-weight:700;
    font-size:clamp(34px,5.2vw,72px);
    line-height:1.45;
    letter-spacing:.04em;
    color:var(--ivory);
    max-width:920px;
    text-shadow:0 4px 24px rgba(0,0,0,.45);
  }
  .kansai-fp2026-wrap .spread-quote .q{
    font-family:var(--serif-en);
    color:var(--persimmon-soft);
    font-style:italic;
    font-weight:400;
    font-size:1.15em;
  }
  .kansai-fp2026-wrap .spread-author{
    margin-top:32px;
    font-family:var(--serif-en);
    font-style:italic;
    font-size:14px;
    letter-spacing:.25em;
    color:var(--ivory);
    text-transform:uppercase;
  }
  .kansai-fp2026-wrap .spread-author::before{
    content:"";
    display:inline-block;
    width:32px;height:1px;
    background:var(--persimmon-soft);
    margin-right:14px;
    vertical-align:middle;
  }

  /* ============================
     SECTION 02 ─ WHY VISIT (Dark)
  ============================ */
  .kansai-fp2026-wrap .why-section{background:var(--bg-dark)}
  .kansai-fp2026-wrap .why-head{
    text-align:center;margin-bottom:80px;
  }
  .kansai-fp2026-wrap .why-head .section-eyebrow{justify-content:center}
  .kansai-fp2026-wrap .why-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:40px 32px;
    background:transparent;
    border:0;
  }
  .kansai-fp2026-wrap .why-card{
    background:transparent;
    padding:0;
    display:flex;flex-direction:column;
    min-height:auto;
    transition:none;
  }
  .kansai-fp2026-wrap .why-card:hover{background:transparent}
  .kansai-fp2026-wrap .why-card-img{
    position:relative;
    aspect-ratio:4/5;
    overflow:hidden;
    margin-bottom:24px;
    background:linear-gradient(135deg,#3a2818,#1c1814);
  }
  .kansai-fp2026-wrap .why-card-img img{
    width:100%;height:100%;
    object-fit:cover;
    filter:saturate(.92) contrast(1.04) brightness(.92);
    transition:transform 1.8s cubic-bezier(.22,1,.36,1);
  }
  .kansai-fp2026-wrap .why-card:hover .why-card-img img{transform:scale(1.06)}
  .kansai-fp2026-wrap .why-card-img::after{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(28,24,20,.05) 0%, rgba(28,24,20,.1) 55%, rgba(28,24,20,.78) 100%);
  }
  .kansai-fp2026-wrap .why-num{
    position:absolute;
    top:20px;left:20px;
    z-index:2;
    font-family:var(--serif-en);
    font-style:italic;
    font-size:13px;
    letter-spacing:.28em;
    color:var(--persimmon-soft);
    text-transform:uppercase;
    display:inline-flex;align-items:center;gap:10px;
    text-shadow:0 1px 8px rgba(0,0,0,.55);
  }
  .kansai-fp2026-wrap .why-num::before{
    content:"";
    width:22px;height:1px;
    background:var(--persimmon-soft);
  }
  .kansai-fp2026-wrap .why-icon{
    position:absolute;
    bottom:18px;right:18px;
    z-index:2;
    width:30px;height:30px;
    color:var(--ivory);
    opacity:.78;
    margin:0;
    filter:drop-shadow(0 2px 6px rgba(0,0,0,.45));
  }
  .kansai-fp2026-wrap .why-card h3{
    font-family:var(--sans-jp);
    font-weight:700;
    font-size:19px;
    letter-spacing:.06em;
    line-height:1.65;
    color:var(--ivory);
    padding:0 4px;
    margin-bottom:14px;
  }
  .kansai-fp2026-wrap .why-card p{
    font-family:var(--serif-jp-body);
    font-size:13.5px;
    line-height:1.95;
    color:var(--ivory-soft);
    margin-top:0;
    padding:14px 4px 0;
    border-top:1px solid var(--line-dark);
    letter-spacing:.04em;
  }

  /* ============================
     SECTION 03 ─ BUYER VOICES (Cream)
  ============================ */
  .kansai-fp2026-wrap .voices-section{background:var(--paper)}
  .kansai-fp2026-wrap .voices-head{
    display:grid;
    grid-template-columns:1.5fr 1fr;
    gap:88px;
    margin-bottom:80px;
    align-items:end;
  }
  .kansai-fp2026-wrap .voices-head .meta{
    font-family:var(--serif-jp-body);
    font-size:14px;
    line-height:1.9;
    color:var(--ink-muted);
    letter-spacing:.04em;
    padding-bottom:14px;
    border-bottom:1px solid var(--line);
  }
  .kansai-fp2026-wrap .voices-head .meta b{
    color:var(--ink);
    font-weight:600;
    font-family:var(--sans-jp);
  }
  .kansai-fp2026-wrap .voices-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:48px;
  }
  .kansai-fp2026-wrap .voice-card{
    background:transparent;
    display:flex;flex-direction:column;
  }
  .kansai-fp2026-wrap .voice-img{
    aspect-ratio:5/4;
    overflow:hidden;
    margin-bottom:28px;
    position:relative;
  }
  .kansai-fp2026-wrap .voice-img img{
    width:100%;height:100%;object-fit:cover;
    transition:transform 1.4s cubic-bezier(.22,1,.36,1);
  }
  .kansai-fp2026-wrap .voice-card:hover .voice-img img{transform:scale(1.05)}
  .kansai-fp2026-wrap .voice-img .tag{
    position:absolute;
    top:18px;left:18px;
    padding:6px 14px;
    background:var(--paper);
    color:var(--persimmon);
    font-family:var(--serif-en);
    font-style:italic;
    font-size:11px;
    letter-spacing:.25em;
    text-transform:uppercase;
  }
  .kansai-fp2026-wrap .voice-icon{
    color:var(--persimmon);
    width:30px;height:30px;
    margin-bottom:14px;
  }
  .kansai-fp2026-wrap .voice-card h4{
    font-family:var(--sans-jp);
    font-weight:700;
    font-size:18px;
    letter-spacing:.1em;
    color:var(--ink);
    margin-bottom:18px;
    padding-bottom:14px;
    border-bottom:1px solid var(--line);
  }
  .kansai-fp2026-wrap .voice-quote{
    font-family:var(--serif-jp-body);
    font-weight:500;
    font-size:16px;
    line-height:1.85;
    letter-spacing:.04em;
    color:var(--ink);
    margin-bottom:16px;
  }
  .kansai-fp2026-wrap .voice-quote::before{
    content:"「";color:var(--persimmon);font-size:1.4em;line-height:0;vertical-align:-.15em;
  }
  .kansai-fp2026-wrap .voice-quote::after{
    content:"」";color:var(--persimmon);
  }
  .kansai-fp2026-wrap .voice-source{
    font-family:var(--serif-jp-body);
    font-size:12px;
    color:var(--ink-muted);
    letter-spacing:.08em;
    padding-top:12px;
    border-top:1px dashed var(--line);
  }
  .kansai-fp2026-wrap .voice-source em{
    font-family:var(--serif-en);
    font-style:italic;
    color:var(--persimmon);
    margin-right:8px;
    letter-spacing:.18em;
    font-weight:500;
    font-size:11px;
    text-transform:uppercase;
  }

  /* ============================
     FULL-BLEED #2 ─ Chef hands quote
  ============================ */
  .kansai-fp2026-wrap .spread-2{
    position:relative;
    height:70vh;
    min-height:520px;
    overflow:hidden;
    padding:0;
    background:#000;
  }
  .kansai-fp2026-wrap .spread-2 img{
    position:absolute;inset:0;
    width:100%;height:100%;
    object-fit:cover;
    opacity:.95;
    transition:transform 18s ease;
  }
  .kansai-fp2026-wrap .spread-2:hover img{transform:scale(1.05)}
  .kansai-fp2026-wrap .spread-2::after{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(90deg, rgba(28,24,20,.88) 0%, rgba(28,24,20,.7) 45%, rgba(28,24,20,.35) 75%, transparent 100%);
  }
  .kansai-fp2026-wrap .spread-2-content{
    position:absolute;left:0;top:0;bottom:0;
    width:min(1180px, 94vw);
    padding:80px 7vw;
    display:flex;flex-direction:column;
    justify-content:center;align-items:flex-start;
    box-sizing:border-box;
    z-index:2;
  }
  .kansai-fp2026-wrap .spread-2 .label{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:13px;
    letter-spacing:.32em;
    color:var(--persimmon-soft);
    text-transform:uppercase;
    margin-bottom:28px;
  }
  .kansai-fp2026-wrap .spread-2 h2{
    font-family:var(--serif-jp);
    font-weight:800;
    font-size:clamp(26px,3.4vw,46px);
    line-height:1.55;
    letter-spacing:.04em;
    color:var(--ivory);
    margin-bottom:28px;
    text-wrap:pretty;
  }
  .kansai-fp2026-wrap .spread-2 h2 .accent{color:var(--persimmon-soft)}
  .kansai-fp2026-wrap .spread-2 p{
    font-family:var(--serif-jp-body);
    font-size:16px;
    line-height:2;
    color:var(--ivory-soft);
    max-width:580px;
    letter-spacing:.04em;
  }

  /* ============================
     SECTION 04 ─ CATEGORIES (Photo Gallery)
  ============================ */
  .kansai-fp2026-wrap .cat-section{background:var(--paper)}
  .kansai-fp2026-wrap .cat-head{
    display:grid;
    grid-template-columns:1.3fr 1fr;
    gap:88px;
    margin-bottom:80px;
    align-items:end;
  }
  .kansai-fp2026-wrap .cat-head .meta{
    font-family:var(--serif-jp-body);
    font-size:14px;
    line-height:1.9;
    color:var(--ink-muted);
    letter-spacing:.04em;
    padding-bottom:14px;
    border-bottom:1px solid var(--line);
  }
  /* Editorial mosaic ── 6-col modular grid with featured + wide variation */
  .kansai-fp2026-wrap .cat-grid{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    grid-auto-rows:1fr;
    gap:14px;
  }
  .kansai-fp2026-wrap .cat-card{
    position:relative;
    aspect-ratio:1/1;
    overflow:hidden;
    background:#000;
    cursor:default;
    grid-column:span 2;
  }
  .kansai-fp2026-wrap .cat-card.featured{
    grid-column:span 2;
    grid-row:span 2;
    aspect-ratio:auto;
  }
  .kansai-fp2026-wrap .cat-card.wide{
    grid-column:span 4;
    aspect-ratio:2/1;
  }
  .kansai-fp2026-wrap .cat-card img{
    width:100%;height:100%;object-fit:cover;
    transition:transform 1.4s cubic-bezier(.22,1,.36,1);
  }
  .kansai-fp2026-wrap .cat-card:hover img{transform:scale(1.08)}
  .kansai-fp2026-wrap .cat-card .overlay{
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,.78) 100%);
  }
  .kansai-fp2026-wrap .cat-card .label{
    position:absolute;
    bottom:18px;left:18px;right:18px;
    z-index:2;
  }
  .kansai-fp2026-wrap .cat-card .num{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:11px;
    letter-spacing:.28em;
    color:var(--persimmon-soft);
    text-transform:uppercase;
    margin-bottom:6px;
  }
  .kansai-fp2026-wrap .cat-card .name{
    font-family:var(--sans-jp);
    font-weight:700;
    font-size:15px;
    letter-spacing:.08em;
    line-height:1.5;
    color:var(--ivory);
  }
  .kansai-fp2026-wrap .cat-card.featured .name{font-size:22px}
  .kansai-fp2026-wrap .cat-card.featured .num{font-size:13px;margin-bottom:10px}

  /* ============================
     SECTION 05 ─ STATS + PIE (Dark)
  ============================ */
  .kansai-fp2026-wrap .stats-section{background:var(--bg-darker);padding:140px 7vw}
  .kansai-fp2026-wrap .stats-head{
    text-align:center;margin-bottom:80px;
  }
  .kansai-fp2026-wrap .stats-head .section-eyebrow{justify-content:center}
  .kansai-fp2026-wrap .stats-head .section-title{color:var(--ivory)}
  .kansai-fp2026-wrap .stats-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:0;
    max-width:1200px;
    margin:0 auto;
    border-top:1px solid var(--line-dark);
    border-bottom:1px solid var(--line-dark);
    align-items:stretch;
  }
  .kansai-fp2026-wrap .stat{
    padding:56px 24px;
    text-align:center;
    border-left:1px solid var(--line-dark);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  }
  .kansai-fp2026-wrap .stat:first-child{border-left:none}
  .kansai-fp2026-wrap .stat .num{
    font-family:var(--serif-en);
    font-weight:300;
    font-size:clamp(44px,5vw,72px);
    color:var(--ivory);
    line-height:1;
    letter-spacing:-.01em;
  }
  .kansai-fp2026-wrap .stat .num .unit{
    font-family:var(--sans-jp);
    font-size:.34em;
    font-weight:600;
    color:var(--persimmon-soft);
    margin-left:6px;
    letter-spacing:.08em;
  }
  .kansai-fp2026-wrap .stat .label{
    font-family:var(--sans-jp);
    font-size:12px;
    font-weight:500;
    letter-spacing:.22em;
    color:var(--ivory-muted);
  }
  .kansai-fp2026-wrap .stats-note{
    max-width:1200px;
    margin:32px auto 0;
    text-align:center;
    font-family:var(--sans-jp);
    font-size:12px;
    color:var(--ivory-muted);
    letter-spacing:.14em;
    line-height:1.8;
  }
  .kansai-fp2026-wrap .stats-numbers{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
  }
  .kansai-fp2026-wrap .stat-row{
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:32px;
    align-items:baseline;
    padding:32px 0;
    border-bottom:1px solid var(--line-dark);
  }
  .kansai-fp2026-wrap .stat-row:first-child{border-top:1px solid var(--line-dark)}
  .kansai-fp2026-wrap .stat-row .label{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:13px;
    letter-spacing:.3em;
    color:var(--persimmon-soft);
    text-transform:uppercase;
    min-width:160px;
  }
  .kansai-fp2026-wrap .stat-row .label-jp{
    display:block;
    font-family:var(--sans-jp);
    font-style:normal;
    font-size:11px;
    color:var(--ivory-muted);
    letter-spacing:.18em;
    margin-top:4px;
    text-transform:none;
  }
  .kansai-fp2026-wrap .stat-row .num{
    font-family:var(--serif-en);
    font-weight:400;
    font-style:italic;
    font-size:clamp(56px,8.4vw,108px);
    line-height:.95;
    color:var(--ivory);
    letter-spacing:-.02em;
  }
  .kansai-fp2026-wrap .stat-row .num .unit{
    font-family:var(--sans-jp);
    font-style:normal;
    font-size:.32em;
    font-weight:700;
    color:var(--ivory-soft);
    letter-spacing:.1em;
    margin-left:8px;
  }
  .kansai-fp2026-wrap .stat-row .prev{
    font-family:var(--sans-jp);
    font-size:12px;
    color:var(--ivory-muted);
    letter-spacing:.1em;
    text-align:right;
  }
  .kansai-fp2026-wrap .stat-row .prev em{
    font-family:var(--serif-en);
    font-style:italic;
    color:var(--persimmon-soft);
    font-size:10px;
    letter-spacing:.2em;
    text-transform:uppercase;
    display:block;
    margin-bottom:2px;
    font-weight:500;
  }

  /* Pie chart ── editorial donut */
  .kansai-fp2026-wrap .pie-wrap{
    background:var(--bg-dark);
    padding:56px 48px;
    border:1px solid var(--line-dark);
    position:relative;
  }
  .kansai-fp2026-wrap .pie-wrap::before{
    content:"— Chart 01";
    position:absolute;
    top:-1px;left:24px;
    transform:translateY(-50%);
    background:var(--bg-darker);
    padding:0 12px;
    font-family:var(--serif-en);
    font-style:italic;
    font-size:10px;
    letter-spacing:.3em;
    color:var(--persimmon-soft);
    text-transform:uppercase;
  }
  .kansai-fp2026-wrap .pie-title{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:12px;
    letter-spacing:.32em;
    color:var(--persimmon-soft);
    text-transform:uppercase;
    margin-bottom:10px;
    display:flex;align-items:center;gap:10px;
  }
  .kansai-fp2026-wrap .pie-title::before{
    content:"";width:24px;height:1px;background:var(--persimmon-soft);
  }
  .kansai-fp2026-wrap .pie-headline{
    font-family:var(--sans-jp);
    font-weight:700;
    font-size:15px;
    letter-spacing:.12em;
    color:var(--ivory);
    margin-bottom:40px;
    line-height:1.7;
    padding-bottom:24px;
    border-bottom:1px solid var(--line-dark);
  }
  .kansai-fp2026-wrap .pie-headline .big{
    font-family:var(--serif-en);
    font-style:italic;
    font-weight:400;
    font-size:64px;
    color:var(--persimmon-soft);
    letter-spacing:-.02em;
    display:block;
    margin-bottom:6px;
    line-height:.95;
  }
  .kansai-fp2026-wrap .pie-container{
    display:grid;
    grid-template-columns:220px 1fr;
    gap:40px;
    align-items:center;
  }
  .kansai-fp2026-wrap .pie-svg-wrap{
    position:relative;
    width:220px;height:220px;
  }
  .kansai-fp2026-wrap .pie-svg{width:220px;height:220px;display:block;transform:rotate(-90deg)}
  .kansai-fp2026-wrap .pie-svg circle{transition:stroke-width .4s ease}
  .kansai-fp2026-wrap .pie-center{
    position:absolute;inset:0;
    display:flex;flex-direction:column;
    align-items:center;justify-content:center;
    text-align:center;
    pointer-events:none;
  }
  .kansai-fp2026-wrap .pie-center .lbl{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:10px;
    letter-spacing:.32em;
    color:var(--ivory-muted);
    text-transform:uppercase;
    margin-bottom:4px;
  }
  .kansai-fp2026-wrap .pie-center .val{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:38px;
    color:var(--ivory);
    font-weight:400;
    line-height:1;
    letter-spacing:-.01em;
  }
  .kansai-fp2026-wrap .pie-center .val small{
    font-size:.5em;
    margin-left:2px;
    color:var(--persimmon-soft);
  }
  .kansai-fp2026-wrap .pie-center .sub{
    font-family:var(--sans-jp);
    font-size:9.5px;
    color:var(--ivory-muted);
    letter-spacing:.18em;
    margin-top:6px;
  }
  .kansai-fp2026-wrap .pie-legend{
    display:flex;flex-direction:column;
    gap:0;
  }
  .kansai-fp2026-wrap .pie-row{
    display:grid;
    grid-template-columns:14px 1fr auto;
    gap:14px;
    align-items:baseline;
    padding:8px 0;
    border-bottom:1px dotted var(--line-dark);
    font-size:12.5px;
    font-family:var(--sans-jp);
    letter-spacing:.06em;
    color:var(--ivory-soft);
  }
  .kansai-fp2026-wrap .pie-row:last-child{border-bottom:none}
  .kansai-fp2026-wrap .pie-row .sw{width:10px;height:10px;border-radius:1px;align-self:center}
  .kansai-fp2026-wrap .pie-row .pct{
    font-family:var(--serif-en);
    font-style:italic;
    color:var(--ivory);
    font-size:14px;
    font-weight:500;
  }
  .kansai-fp2026-wrap .pie-note{
    margin-top:28px;
    padding-top:18px;
    border-top:1px solid var(--line-dark);
    font-family:var(--sans-jp);
    font-size:10.5px;
    color:var(--ivory-muted);
    letter-spacing:.15em;
    text-align:right;
  }

  /* ============================
     SECTION 06 ─ SPECIAL FEATURE (Cream-deep)
  ============================ */
  .kansai-fp2026-wrap .special-section{background:var(--cream)}
  .kansai-fp2026-wrap .special-grid{
    display:grid;
    grid-template-columns:1fr 1.1fr;
    gap:88px;
    align-items:center;
    max-width:1440px;margin:0 auto;
  }
  .kansai-fp2026-wrap .special-img{
    position:relative;
    aspect-ratio:5/6;
    overflow:hidden;
  }
  .kansai-fp2026-wrap .special-img img{
    width:100%;height:100%;object-fit:cover;
    transition:transform 1.6s cubic-bezier(.22,1,.36,1);
  }
  .kansai-fp2026-wrap .special-img:hover img{transform:scale(1.05)}
  .kansai-fp2026-wrap .special-img .stamp{
    position:absolute;
    top:24px;left:24px;
    padding:8px 16px;
    background:var(--persimmon);
    color:#fff;
    font-family:var(--sans-jp);
    font-weight:700;
    font-size:11px;
    letter-spacing:.25em;
  }
  .kansai-fp2026-wrap .special-text h2{
    margin-bottom:32px;
  }
  .kansai-fp2026-wrap .special-text p{
    font-family:var(--serif-jp-body);
    font-size:16px;
    line-height:2.1;
    color:var(--ink-soft);
    letter-spacing:.04em;
    margin-bottom:24px;
  }
  .kansai-fp2026-wrap .special-text p b{
    background:linear-gradient(transparent 60%, rgba(200,84,27,.25) 60%);
    color:var(--ink);
    font-weight:500;
  }
  .kansai-fp2026-wrap .special-points{
    margin-top:40px;
    padding:32px;
    background:var(--paper);
    border-left:3px solid var(--persimmon);
  }
  .kansai-fp2026-wrap .special-points h4{
    font-family:var(--sans-jp);
    font-size:14px;
    font-weight:700;
    letter-spacing:.15em;
    color:var(--persimmon-deep);
    margin-bottom:12px;
  }
  .kansai-fp2026-wrap .special-points p{
    font-size:14px;
    line-height:1.9;
    margin-bottom:0;
    color:var(--ink);
  }

  /* ============================
     AUDIENCE
  ============================ */
  .kansai-fp2026-wrap .audience-section{
    background:var(--paper);
    padding:120px 7vw;
    text-align:center;
  }
  .kansai-fp2026-wrap .audience-section .section-eyebrow{justify-content:center}
  .kansai-fp2026-wrap .audience-section .section-title{margin-bottom:64px;font-size:clamp(28px,3.4vw,44px);text-align:center}
  .kansai-fp2026-wrap .audience-list{
    display:flex;flex-wrap:wrap;
    justify-content:center;
    gap:14px;
    max-width:980px;
    margin:0 auto;
  }
  .kansai-fp2026-wrap .audience-chip{
    font-family:var(--sans-jp);
    font-weight:500;
    font-size:14px;
    letter-spacing:.2em;
    padding:16px 28px;
    border:1px solid var(--line);
    color:var(--ink);
    background:var(--paper);
    transition:all .3s ease;
  }
  .kansai-fp2026-wrap .audience-chip:nth-child(odd){
    color:var(--persimmon);
    border-color:var(--persimmon);
  }
  .kansai-fp2026-wrap .audience-chip:hover{
    background:var(--persimmon);color:#fff;border-color:var(--persimmon);
  }

  /* ============================
     CTA
  ============================ */
  .kansai-fp2026-wrap .cta-section{
    background:var(--persimmon);
    color:#fff;
    padding:140px 7vw 60px;
    position:relative;
    overflow:hidden;
  }
  .kansai-fp2026-wrap .cta-bg{
    position:absolute;inset:0;
    z-index:0;
    opacity:.15;
  }
  .kansai-fp2026-wrap .cta-bg img{
    width:100%;height:100%;object-fit:cover;
    filter:contrast(1.2);
  }
  .kansai-fp2026-wrap .cta-wrap{
    position:relative;z-index:1;
    text-align:center;
    max-width:1100px;margin:0 auto;
  }
  .kansai-fp2026-wrap .cta-eyebrow{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:14px;
    letter-spacing:.32em;
    color:#ffd8a8;
    text-transform:uppercase;
    margin-bottom:32px;
  }
  .kansai-fp2026-wrap .cta-title,
  .kansai-fp2026-wrap h2.cta-title{
    font-family:var(--sans-jp);
    font-weight:800;
    font-size:clamp(28px,4vw,56px);
    line-height:1.55;
    letter-spacing:.06em;
    margin-bottom:24px;
    color:#fff;
    text-align:center;
  }
  .kansai-fp2026-wrap .cta-title .accent{
    font-family:var(--serif-en);
    font-style:italic;
    color:#ffe5cc;
    font-weight:500;
  }
  .kansai-fp2026-wrap .cta-sub{
    font-family:var(--serif-jp-body);
    font-size:17px;
    line-height:2;
    color:rgba(255,255,255,.92);
    letter-spacing:.06em;
    margin-bottom:56px;
  }
  .kansai-fp2026-wrap .cta-free{
    display:inline-block;
    margin-bottom:32px;
    background:#fff;
    color:var(--persimmon);
    padding:8px 22px;
    font-family:var(--sans-jp);
    font-size:12px;
    letter-spacing:.25em;
    font-weight:700;
  }
  .kansai-fp2026-wrap .cta-button{
    display:inline-flex;
    align-items:center;
    gap:24px;
    padding:24px 56px;
    background:var(--ink);
    color:#fff;
    font-family:var(--sans-jp);
    font-weight:700;
    font-size:18px;
    letter-spacing:.18em;
    cursor:pointer;
    transition:all .3s ease;
  }
  .kansai-fp2026-wrap .cta-button:hover{background:var(--bg-darker);transform:translateY(-2px)}
  .kansai-fp2026-wrap .cta-button::after{
    content:"";
    width:36px;height:1px;background:#fff;
    transition:width .3s ease;
  }
  .kansai-fp2026-wrap .cta-button:hover::after{width:48px}

  .kansai-fp2026-wrap .event-info{
    margin-top:96px;
    padding-top:48px;
    border-top:1px solid rgba(255,255,255,.25);
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:32px;
    max-width:920px;
    margin-left:auto;margin-right:auto;
    text-align:left;
  }
  .kansai-fp2026-wrap .info-item .label{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:11px;
    letter-spacing:.3em;
    color:#ffd8a8;
    text-transform:uppercase;
    margin-bottom:8px;
  }
  .kansai-fp2026-wrap .info-item .value{
    font-family:var(--sans-jp);
    font-size:15px;
    line-height:1.75;
    color:#fff;
    letter-spacing:.06em;
  }
  .kansai-fp2026-wrap .info-item .value small{
    color:rgba(255,255,255,.7);
    font-size:12px;
  }

  /* Scroll reveal */
  .kansai-fp2026-wrap .reveal{
    opacity:0;transform:translateY(28px);
    transition:opacity 1s cubic-bezier(.22,1,.36,1), transform 1s cubic-bezier(.22,1,.36,1);
  }
  .kansai-fp2026-wrap .reveal.in{opacity:1;transform:none}

  /* ============================
     RESPONSIVE
  ============================ */
  @media (max-width: 980px){
    .kansai-fp2026-wrap section{padding:80px 24px}
    .kansai-fp2026-wrap .hero{grid-template-columns:1fr;gap:40px;padding:32px 24px 48px}
    .kansai-fp2026-wrap .hero-center{aspect-ratio:4/5;order:-1;max-width:380px;margin:0 auto}
    .kansai-fp2026-wrap .hero-brand{font-size:clamp(44px,12vw,72px)}
    .kansai-fp2026-wrap .hero-right{align-items:flex-start}
    .kansai-fp2026-wrap .hero-foot{flex-direction:column;align-items:flex-start;gap:24px;padding:0 24px 48px}
    .kansai-fp2026-wrap .hero-message{align-items:flex-start}

    .kansai-fp2026-wrap .masthead{padding:24px 24px 0;flex-wrap:wrap;gap:8px}
    .kansai-fp2026-wrap .masthead-page{display:none}

    .kansai-fp2026-wrap .trend-grid{grid-template-columns:1fr;gap:48px}
    .kansai-fp2026-wrap .trend-right{aspect-ratio:4/5}

    .kansai-fp2026-wrap .spread{height:60vh;min-height:420px}
    .kansai-fp2026-wrap .spread-2{height:55vh;min-height:380px}

    .kansai-fp2026-wrap .why-grid{grid-template-columns:1fr 1fr}

    .kansai-fp2026-wrap .voices-head{grid-template-columns:1fr;gap:24px;margin-bottom:48px}
    .kansai-fp2026-wrap .voices-grid{grid-template-columns:1fr;gap:48px}

    .kansai-fp2026-wrap .cat-head{grid-template-columns:1fr;gap:24px;margin-bottom:48px}
    .kansai-fp2026-wrap .cat-grid{grid-template-columns:repeat(2,1fr);gap:12px}
    .kansai-fp2026-wrap .cat-card{grid-column:auto}
    .kansai-fp2026-wrap .cat-card.featured{grid-column:span 2;grid-row:auto;aspect-ratio:4/3}
    .kansai-fp2026-wrap .cat-card.wide{grid-column:span 2;aspect-ratio:16/9}

    .kansai-fp2026-wrap .stats-grid{grid-template-columns:1fr 1fr;gap:0}
    .kansai-fp2026-wrap .stat{padding:36px 16px}
    .kansai-fp2026-wrap .stat:nth-child(odd){border-left:none}
    .kansai-fp2026-wrap .stat:nth-child(n+3){border-top:1px solid var(--line-dark)}
    .kansai-fp2026-wrap .stat-row .prev{text-align:center}
    .kansai-fp2026-wrap .pie-wrap{padding:40px 24px}
    .kansai-fp2026-wrap .pie-container{grid-template-columns:1fr;gap:32px}
    .kansai-fp2026-wrap .pie-svg-wrap{margin:0 auto}

    .kansai-fp2026-wrap .special-grid{grid-template-columns:1fr;gap:48px}
    .kansai-fp2026-wrap .special-img{aspect-ratio:4/3}

    .kansai-fp2026-wrap .cta-section{padding:80px 24px 48px}
    .kansai-fp2026-wrap .cta-button{padding:18px 32px;font-size:15px;width:100%;justify-content:center}
    .kansai-fp2026-wrap .event-info{grid-template-columns:1fr;gap:24px;margin-top:64px}

    .kansai-fp2026-wrap .ribbon{padding:10px 16px;font-size:11px}
    .kansai-fp2026-wrap .ribbon-event{font-size:11px}
    .kansai-fp2026-wrap .ribbon-date{font-size:12px}
  }

  @media (max-width: 480px){
    .kansai-fp2026-wrap .why-grid{grid-template-columns:1fr}
    .kansai-fp2026-wrap .cat-grid{grid-template-columns:1fr}
    .kansai-fp2026-wrap .cat-card.featured{grid-column:span 1}
  }

  /* ============================
     PC MAX-WIDTH (1400px cap)
     ─ Backgrounds stay full-bleed; inner content is capped & centered.
       Full-bleed image sections (.spread / .spread-2 / .cta-section) keep
       their bg full-bleed; their inner content wrappers already cap themselves.
  ============================ */
  .kansai-fp2026-wrap .masthead,
  .kansai-fp2026-wrap .trend-grid,
  .kansai-fp2026-wrap .why-head, .kansai-fp2026-wrap .why-grid,
  .kansai-fp2026-wrap .voices-head, .kansai-fp2026-wrap .voices-grid,
  .kansai-fp2026-wrap .cat-head, .kansai-fp2026-wrap .cat-grid,
  .kansai-fp2026-wrap .stats-head, .kansai-fp2026-wrap .stats-grid,
  .kansai-fp2026-wrap .special-grid,
  .kansai-fp2026-wrap .audience-section > .reveal,
  .kansai-fp2026-wrap .audience-list{
    max-width:1400px;
    margin-left:auto;
    margin-right:auto;
  }
