/* =========================================================
   THE WALK JAPAN 2027 OKINAWA  – style.css (single bundle)
   Unit system: --u = 1 comp-pixel of the design comps.
   PC comps: 681u = 1440px  /  SP comps: 447u = viewport
   ========================================================= */
:root{
  --red:#e3132a; --red-d:#c50d20; --ink:#1b1b1b; --text:#333; --gray:#8a8a8a; --line:#e8e3e3;
  --bg:#fff; --black:#0b0b0d;
  --serif:"Noto Serif JP","Shippori Mincho","Yu Mincho",serif;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  --u:min(calc(100vw / 681), 2.115px);
  --maxw:1440px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--serif);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none;margin:0;padding:0}
p,h1,h2,h3{margin:0}
em{font-style:normal;color:var(--red)}
.sp,.sp-only,.sp-img,.sp-li,.sp-flex{display:none!important}
main{max-width:var(--maxw);margin:0 auto;position:relative;overflow:clip}

/* ---------- components ---------- */
.c-arrow{display:inline-block;width:1.05em;height:.6em;margin-left:.55em;position:relative;flex:none}
.c-arrow::before{content:"";position:absolute;left:0;right:.1em;top:50%;height:1.5px;background:currentColor;transform:translateY(-50%)}
.c-arrow::after{content:"";position:absolute;right:.05em;top:50%;width:.42em;height:.42em;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:translateY(-50%) rotate(45deg)}
.c-label{font-family:var(--serif);font-weight:700;color:var(--red);font-size:calc(var(--u)*9);letter-spacing:.06em;line-height:1}
.c-heading{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*22);line-height:1.38;letter-spacing:.02em;margin-top:calc(var(--u)*9)}
.c-heading--lg{font-size:calc(var(--u)*23.5)}
.c-heading--white{color:#fff}
.c-text{font-size:calc(var(--u)*11);line-height:1.55;color:#262626;margin-top:calc(var(--u)*6);font-weight:600;letter-spacing:.02em}
.c-text--white{color:#eee}
.c-btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*9.6);letter-spacing:.04em;height:calc(var(--u)*30);padding:0 calc(var(--u)*22);border-radius:calc(var(--u)*3);transition:.3s;white-space:nowrap}
.c-btn--line{border:1.5px solid var(--red);color:var(--red);background:rgba(255,255,255,.92);min-width:calc(var(--u)*196);margin-top:calc(var(--u)*13)}
.c-btn--line:hover{background:var(--red);color:#fff}
.c-btn--fill{background:var(--red);color:#fff;border:1.5px solid var(--red)}
.c-btn--fill:hover{background:var(--red-d)}
.c-btn--dark{border:1.5px solid var(--red);color:var(--red);background:transparent;min-width:calc(var(--u)*198);margin-top:calc(var(--u)*13)}
.c-btn--dark:hover{background:var(--red);color:#fff}
.c-btn .c-ico{width:1.2em;height:1.2em;fill:currentColor;margin-right:.7em}
.c-more{font-family:var(--sans);font-weight:700;color:var(--red);font-size:calc(var(--u)*9);display:inline-flex;align-items:center}
.c-tag{display:inline-block;background:var(--red);color:#fff;font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*7.8);line-height:1;padding:calc(var(--u)*2.6) calc(var(--u)*6);border-radius:2px}
.c-tag--dark{background:#23262b}
.c-petal{position:absolute;left:var(--x);top:var(--y);width:calc(var(--u)*var(--w));pointer-events:none;z-index:3;height:auto}

/* ---------- header ---------- */
.c-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);height:calc(var(--u)*39)}
.c-header__inner{max-width:var(--maxw);margin:0 auto;height:100%;display:flex;align-items:center;padding:0 calc(var(--u)*28) 0 calc(var(--u)*23);position:relative}
.c-header__logo{position:absolute;left:calc(var(--u)*23);top:calc(var(--u)*1);width:calc(var(--u)*155);z-index:2}
.c-header__nav{margin-left:auto;margin-right:calc(var(--u)*28)}
.c-header__nav ul{display:flex;gap:calc(var(--u)*14)}
.c-header__nav a{font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*7.8);color:#222;letter-spacing:.03em;transition:color .2s}
.c-header__nav a:hover{color:var(--red)}
.c-header__cta{display:inline-flex;align-items:center;justify-content:center;background:var(--red);color:#fff;font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*7.8);width:calc(var(--u)*107);height:calc(var(--u)*26);border-radius:calc(var(--u)*3);letter-spacing:.04em}
.c-header__cta--sp{display:none}
.c-header__toggle{display:none}

/* ---------- hero ---------- */
.p-hero{position:relative;height:calc(var(--u)*311)}
.p-hero__bg,.p-hero__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center}
.p-hero__body{position:relative;z-index:2;padding:calc(var(--u)*27) 0 0 calc(var(--u)*31)}
.p-hero__title{font-family:var(--serif);font-weight:700;font-size:calc(var(--u)*25.5);line-height:1.5;color:var(--ink);letter-spacing:.02em}
.p-hero__lead{font-size:calc(var(--u)*13.2);line-height:1.38;font-weight:700;color:var(--ink);margin-top:calc(var(--u)*8)}
.p-hero__en{font-size:calc(var(--u)*11);font-weight:700;color:var(--red);margin-top:calc(var(--u)*3);letter-spacing:.01em}
.p-hero__btns{display:grid;grid-template-columns:calc(var(--u)*162) calc(var(--u)*179);gap:calc(var(--u)*9) calc(var(--u)*9);margin-top:calc(var(--u)*12);margin-left:calc(var(--u)*5)}
.p-hero__btns .c-btn{height:calc(var(--u)*35);font-size:calc(var(--u)*10.4);margin:0;min-width:0}
.p-hero__btns .c-btn--wide{grid-column:1/-1;width:calc(var(--u)*232)}
.p-hero__btns .c-btn--sq{background:#fff;border-color:#ef8d97;color:var(--red)}.p-hero__btns .c-btn--sq .c-arrow{color:#333}
.p-hero__btns .c-btn--sq .c-arrow{margin-left:auto}
.p-hero__btns .c-btn--sq{justify-content:flex-start;padding:0 calc(var(--u)*14)}
.p-hero__copy{position:absolute;z-index:2;left:calc(var(--u)*544);top:calc(var(--u)*160);color:#fff;font-size:calc(var(--u)*13);line-height:1.62;font-weight:600;letter-spacing:.06em;text-shadow:0 1px 6px rgba(120,0,0,.35)}

/* ---------- dates ---------- */
.p-dates{position:relative;height:calc(var(--u)*88);display:flex;align-items:flex-start;padding-left:calc(var(--u)*109);padding-top:calc(var(--u)*15);background:#fff}
.p-dates__flower{position:absolute;left:0;top:calc(var(--u)*-20);width:calc(var(--u)*90);z-index:3}
.p-dates__item{width:calc(var(--u)*203)}
.p-dates__en{font-weight:700;color:var(--red);font-size:calc(var(--u)*8.4);letter-spacing:.08em;line-height:1}
.p-dates__name{font-weight:700;font-size:calc(var(--u)*12);color:var(--ink);margin-top:calc(var(--u)*4);line-height:1.2}
.p-dates__date{font-weight:700;font-size:calc(var(--u)*23.5);color:var(--ink);line-height:1.15;letter-spacing:.01em}
.p-dates__date small{font-size:.44em;color:var(--red);font-weight:700;margin-left:.45em;letter-spacing:.04em}
.p-dates__place{font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*7.8);color:#333;margin-top:calc(var(--u)*2)}
.p-dates__arrow{width:calc(var(--u)*8);height:calc(var(--u)*8);border-top:2px solid var(--red);border-right:2px solid var(--red);transform:rotate(45deg);margin:calc(var(--u)*36) calc(var(--u)*46) 0 0}
.p-dates__photo{position:absolute;right:0;top:0;width:calc(var(--u)*208);height:100%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%);mask-image:linear-gradient(90deg,transparent 0,#000 38%)}
.p-dates__photo img{width:100%;height:100%;object-fit:cover}

/* ---------- generic section with bg ---------- */
.p-sec{position:relative}
.p-sec__bg,.p-sec__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center}
.p-sec__body{position:relative;z-index:2}

.p-about{height:calc(var(--u)*217)}
.p-about .p-sec__body{padding:calc(var(--u)*21) 0 0 calc(var(--u)*35)}
.p-about .c-heading{margin-top:calc(var(--u)*6);font-size:calc(var(--u)*23)}
.p-about .c-text{margin-top:calc(var(--u)*8)}

/* stories */
.p-stories{display:flex;gap:calc(var(--u)*2);background:#fff;height:calc(var(--u)*205)}
.p-stories__main{position:relative;width:calc(var(--u)*364);background:#000;flex:none}
.p-stories__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.p-stories .p-sec__body{padding:calc(var(--u)*14) 0 0 calc(var(--u)*36)}
.p-stories .c-heading{font-size:calc(var(--u)*21.5)}
.p-stories .c-text{font-size:calc(var(--u)*9.4);line-height:1.72}
.p-stories__collage{flex:1;min-width:0}
.p-stories__collage img{width:100%;height:100%;object-fit:cover}

/* news */
.p-news{padding:calc(var(--u)*23) calc(var(--u)*33) calc(var(--u)*14) calc(var(--u)*37);position:relative}
.p-news__head{display:flex;justify-content:space-between;align-items:flex-end}
.p-news__title{font-weight:600;font-size:calc(var(--u)*17.5);color:var(--ink);margin-top:calc(var(--u)*5);line-height:1.2}
.p-news__head .c-more{margin-bottom:calc(var(--u)*4)}
.p-news__list{margin-top:calc(var(--u)*7);display:grid;gap:calc(var(--u)*5)}
.c-news{display:grid;grid-template-columns:calc(var(--u)*140) 1fr calc(var(--u)*20);grid-template-rows:1fr 1fr;overflow:hidden;column-gap:calc(var(--u)*21);align-items:center;border:1px solid #efeaea;border-radius:calc(var(--u)*3);background:#fff;height:calc(var(--u)*46);position:relative;transition:box-shadow .3s}
.c-news:hover{box-shadow:0 4px 16px rgba(0,0,0,.07)}
.c-news img{grid-row:1/3;grid-column:1;min-height:0;width:100%;height:100%;object-fit:cover;border-radius:calc(var(--u)*3)}
.c-news__meta{grid-column:2;grid-row:1;align-self:end;display:flex;align-items:center;gap:calc(var(--u)*8)}
.c-news__meta time{font-family:var(--serif);color:#999;font-size:calc(var(--u)*9.6)}
.c-news__title{grid-column:2;grid-row:2;align-self:start;font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*11.2);color:#1e1e1e;margin-top:calc(var(--u)*2)}
.c-news::after{content:"";position:absolute;right:calc(var(--u)*12);top:50%;width:calc(var(--u)*5);height:calc(var(--u)*5);border-top:2px solid var(--red);border-right:2px solid var(--red);transform:translateY(-50%) rotate(45deg)}

/* okinawa */
.p-okinawa{height:calc(var(--u)*205)}
.p-okinawa .p-sec__body{padding:calc(var(--u)*21) 0 0 calc(var(--u)*52)}
.p-okinawa .c-heading{margin-top:calc(var(--u)*8);line-height:1.42}
.p-okinawa .c-text{font-size:calc(var(--u)*10.2);margin-top:calc(var(--u)*7)}
.p-okinawa .c-btn{min-width:calc(var(--u)*190);margin-top:calc(var(--u)*10)}

/* what */
.p-what{height:calc(var(--u)*205);display:flex}
.p-what__img{width:calc(var(--u)*330);flex:none;-webkit-mask-image:linear-gradient(90deg,#000 72%,transparent);mask-image:linear-gradient(90deg,#000 72%,transparent)}
.p-what__img img{width:100%;height:100%;object-fit:cover}
.p-what .p-sec__body{padding:calc(var(--u)*13) 0 0 calc(var(--u)*36)}
.p-what .c-heading{font-size:calc(var(--u)*22.5);margin-top:calc(var(--u)*8)}
.p-what .c-text{font-size:calc(var(--u)*10.2);margin-top:calc(var(--u)*7)}
.p-what .c-btn{min-width:calc(var(--u)*185)}

/* message */
.p-message{height:calc(var(--u)*194);display:flex;background:linear-gradient(90deg,#fff 0,#fbf7f7 50%,#fff)}
.p-message .p-sec__body{width:calc(var(--u)*353);flex:none;padding:calc(var(--u)*14) 0 0 calc(var(--u)*41)}
.p-message .c-heading{font-size:calc(var(--u)*22.5)}
.p-message .c-text{font-size:calc(var(--u)*10.2)}
.p-message .c-btn{min-width:calc(var(--u)*215)}
.p-message__card{position:relative;margin-top:calc(var(--u)*15);flex:1;height:calc(var(--u)*175)}
.p-message__card img{width:100%;height:100%;object-fit:cover}
.p-message__name{position:absolute;left:calc(var(--u)*186);top:calc(var(--u)*76)}
.p-message__ja{font-weight:700;font-size:calc(var(--u)*19);color:var(--ink);letter-spacing:.08em;line-height:1.2}
.p-message__en{font-weight:700;font-size:calc(var(--u)*12);color:var(--ink);letter-spacing:.04em;margin-top:calc(var(--u)*2)}
.p-message__role{font-size:calc(var(--u)*7.4);font-weight:600;color:#555;line-height:1.5;margin-top:calc(var(--u)*6)}

/* from */
.p-from{height:calc(var(--u)*136);display:flex}
.p-from .p-sec__body{width:calc(var(--u)*351);flex:none;padding:calc(var(--u)*6) 0 0 calc(var(--u)*41)}
.p-from .c-heading{font-size:calc(var(--u)*21.5);margin-top:calc(var(--u)*7);line-height:1.32}
.p-from .c-text{font-size:calc(var(--u)*9.8);line-height:1.65;margin-top:calc(var(--u)*7)}
.p-from__hibiscus{position:absolute;left:calc(var(--u)*259);top:calc(var(--u)*46);width:calc(var(--u)*53);z-index:2}
.p-from__route{position:relative;display:flex;align-items:flex-start;padding-top:calc(var(--u)*30);flex:1}
.p-from__item{width:calc(var(--u)*120);position:relative;z-index:2}
.p-from__map{width:calc(var(--u)*101);margin:calc(var(--u)*-22) calc(var(--u)*-15) 0 calc(var(--u)*-37);opacity:.9}
.p-from__name{font-weight:700;font-size:calc(var(--u)*12);color:var(--ink);margin-top:calc(var(--u)*3);line-height:1.3}
.p-from__date{font-weight:700;font-size:calc(var(--u)*18);color:var(--ink);line-height:1.3}
.p-from__date small{font-size:.5em;color:var(--red);font-weight:700;margin-left:.4em}
.p-from__place{font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*7.6);line-height:1.45;color:#333}

/* partnership */
.p-partner{height:calc(var(--u)*185)}
.p-partner__img{position:absolute;right:0;top:0;width:calc(var(--u)*353);height:100%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 18%);mask-image:linear-gradient(90deg,transparent 0,#000 18%)}
.p-partner__img img{width:100%;height:100%;object-fit:cover}
.p-partner .p-sec__body{padding:calc(var(--u)*8) 0 0 calc(var(--u)*41)}
.p-partner .c-heading{font-size:calc(var(--u)*21.5);margin-top:calc(var(--u)*8)}
.p-partner .c-text{font-size:calc(var(--u)*9.6);line-height:1.62;margin-top:calc(var(--u)*7)}
.p-partner .c-btn{min-width:calc(var(--u)*207);margin-top:calc(var(--u)*11)}

/* ---------- footer ---------- */
.c-footer{max-width:var(--maxw);margin:0 auto;background:#fff;padding:calc(var(--u)*2) calc(var(--u)*23) calc(var(--u)*14) calc(var(--u)*20)}
.c-footer__top{display:flex;align-items:center;height:calc(var(--u)*44);border-bottom:1px solid #eee}
.c-footer__logo{width:calc(var(--u)*190)}
.c-footer__nav{display:flex;gap:calc(var(--u)*10);margin-left:calc(var(--u)*68)}
.c-footer__nav a,.c-footer__sub a{font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*7.4);color:#333}
.c-sns{display:flex;gap:calc(var(--u)*12);margin-left:auto;margin-right:calc(var(--u)*10)}
.c-sns svg{width:calc(var(--u)*18);height:calc(var(--u)*18);fill:#111}
.c-footer__bottom{display:flex;justify-content:space-between;align-items:center;padding:calc(var(--u)*14) calc(var(--u)*16) 0 calc(var(--u)*23)}
.c-footer__sub{display:flex}
.c-footer__sub li+li::before{content:"|";color:var(--red);margin:0 calc(var(--u)*10);font-size:calc(var(--u)*6.8)}
.c-footer__sub a{font-weight:500;color:#888}
.c-footer__copy{font-family:var(--serif);font-size:calc(var(--u)*7.2);color:#888}
.c-footer__copy small{font-size:inherit}

/* =========================================================
   SP (C01_SP comp: content width 447u = viewport)
   ========================================================= */
@media (max-width:767px){
  :root{--u:calc(100vw / 447)}
  .pc,.pc-only,.pc-li{display:none!important}
  .sp{display:inline!important}
  br.sp{display:inline!important}
  .sp-li{display:list-item!important}
  .sp-flex{display:flex!important}
  .sp-img{display:block!important}
  main{display:flex;flex-direction:column}
  .p-message{order:1}.p-what{order:2}.p-from{order:3}.p-partner{order:4}
  /* header */
  .c-header{height:calc(var(--u)*52)}
  .c-header__inner{padding:0}
  .c-header__logo{left:calc(var(--u)*17);top:calc(var(--u)*11);width:calc(var(--u)*162)}
  .c-header__cta{position:absolute;left:calc(var(--u)*269);top:calc(var(--u)*14);width:calc(var(--u)*120);height:calc(var(--u)*32);font-size:calc(var(--u)*11);border-radius:calc(var(--u)*3)}
  .c-header__toggle{display:block;position:absolute;left:calc(var(--u)*405);top:calc(var(--u)*12);width:calc(var(--u)*36);height:calc(var(--u)*28);background:none;border:0;padding:0;cursor:pointer;z-index:3}
  .c-header__toggle span{position:absolute;left:calc(var(--u)*6);right:calc(var(--u)*6);height:2px;background:#222;transition:.3s}
  .c-header__toggle span:nth-child(1){top:calc(var(--u)*6)}
  .c-header__toggle span:nth-child(2){top:calc(var(--u)*13)}
  .c-header__toggle span:nth-child(3){top:calc(var(--u)*20)}
  .c-header.is-open .c-header__toggle span:nth-child(1){top:calc(var(--u)*13);transform:rotate(45deg)}
  .c-header.is-open .c-header__toggle span:nth-child(2){opacity:0}
  .c-header.is-open .c-header__toggle span:nth-child(3){top:calc(var(--u)*13);transform:rotate(-45deg)}
  .c-header__nav{position:fixed;left:0;right:0;top:calc(var(--u)*52);bottom:0;margin:0;background:#fff;padding:calc(var(--u)*30) calc(var(--u)*30);opacity:0;visibility:hidden;transition:.3s;overflow:auto}
  .c-header.is-open .c-header__nav{opacity:1;visibility:visible}
  .c-header__nav ul{flex-direction:column;gap:0}
  .c-header__nav li{border-bottom:1px solid #eee}
  .c-header__nav a{display:block;padding:calc(var(--u)*16) 0;font-size:calc(var(--u)*15)}
  .c-header__cta--sp{display:flex;margin-top:calc(var(--u)*24);height:calc(var(--u)*46);background:var(--red);color:#fff;font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*14);align-items:center;justify-content:center;border-radius:calc(var(--u)*3)}
  .c-header__nav .c-header__cta--sp{display:flex;color:#fff;height:calc(var(--u)*46);position:static;width:auto;padding:0;font-size:calc(var(--u)*14);gap:calc(var(--u)*8)}
  body.is-lock{overflow:hidden}
  /* hero */
  .p-hero{height:calc(var(--u)*410);z-index:1}
  .p-hero__bg{position:absolute;inset:0 0 auto 0;height:calc(var(--u)*548)}
  .p-hero__bg img{height:100%;object-position:center top}
  .p-hero__body{padding:calc(var(--u)*71) 0 0 calc(var(--u)*27)}
  .p-hero__title{font-size:calc(var(--u)*29);line-height:1.27;letter-spacing:.03em}
  .p-hero__lead{font-size:calc(var(--u)*15.5);line-height:1.25;margin-top:calc(var(--u)*13)}
  .p-hero__en{font-size:calc(var(--u)*12.5);line-height:1.25;margin-top:calc(var(--u)*7)}
  .p-hero__btns{grid-template-columns:calc(var(--u)*242);gap:calc(var(--u)*6);margin:calc(var(--u)*12) 0 0 calc(var(--u)*76)}
  .p-hero__btns .c-btn{height:calc(var(--u)*46);font-size:calc(var(--u)*13.5);justify-content:center}
  .p-hero__btns .c-btn--sq .c-arrow{margin-left:.55em;color:inherit}
  .p-hero__btns .sp-fill{background:var(--red);color:#fff;border-color:var(--red)}
  .p-hero__copy{display:none}
  /* dates cards */
  .p-dates{height:calc(var(--u)*138);padding:0 0 0 calc(var(--u)*21);gap:calc(var(--u)*18);background:transparent;z-index:2}
  .p-dates__flower{display:none}
  .p-dates__item{width:calc(var(--u)*193);height:calc(var(--u)*126);background:#fff;border-radius:calc(var(--u)*8);box-shadow:0 calc(var(--u)*3) calc(var(--u)*14) rgba(0,0,0,.12);padding:calc(var(--u)*12) 0 0 calc(var(--u)*20)}
  .p-dates__en{font-size:calc(var(--u)*10)}
  .p-dates__name{font-size:calc(var(--u)*13.5);margin-top:calc(var(--u)*5)}
  .p-dates__date{font-size:calc(var(--u)*25);margin-top:calc(var(--u)*6)}
  .p-dates__place{font-size:calc(var(--u)*10.5);line-height:1.75;margin-top:calc(var(--u)*5)}
  /* generic */
  .p-sec__sp{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
  .c-label{font-size:calc(var(--u)*10)}
  .c-heading,.p-stories .c-heading,.p-what .c-heading,.p-message .c-heading,.p-from .c-heading,.p-partner .c-heading,.c-heading--lg{font-size:calc(var(--u)*21);line-height:1.2;margin-top:calc(var(--u)*7)}
  .c-text,.p-stories .c-text,.p-okinawa .c-text,.p-what .c-text,.p-message .c-text,.p-from .c-text,.p-partner .c-text{font-size:calc(var(--u)*10.8);line-height:1.74;margin-top:calc(var(--u)*7);font-weight:500}
  .c-btn,.c-btn--line,.c-btn--dark,.p-okinawa .c-btn,.p-what .c-btn,.p-message .c-btn,.p-partner .c-btn{height:calc(var(--u)*28);font-size:calc(var(--u)*10.8);min-width:calc(var(--u)*198);margin-top:calc(var(--u)*9);padding:0 calc(var(--u)*12);border-radius:calc(var(--u)*4)}
  .p-sec__body,.p-about .p-sec__body,.p-okinawa .p-sec__body,.p-what .p-sec__body,.p-message .p-sec__body,.p-from .p-sec__body,.p-partner .p-sec__body,.p-stories .p-sec__body{width:auto;padding:calc(var(--u)*15) 0 0 calc(var(--u)*24)}
  .p-about{height:calc(var(--u)*213)}
  .p-about .p-sec__body{padding-top:calc(var(--u)*13)}
  .p-about .c-heading{font-size:calc(var(--u)*21)}
  /* stories */
  .p-stories{flex-direction:column;height:auto;gap:0;background:#000}
  .p-stories__main{width:100%;height:calc(var(--u)*190)}
  .p-stories__img{display:none}
  .p-stories .p-sec__body{padding-top:calc(var(--u)*19)}
  .p-stories .c-heading{font-size:calc(var(--u)*22)}
  .p-stories .c-text{margin-top:calc(var(--u)*6);line-height:1.6}
  .p-stories .c-btn--dark{border:0;min-width:0;padding:0;height:auto;margin-top:calc(var(--u)*9);font-size:calc(var(--u)*11)}
  .p-stories__collage{height:calc(var(--u)*94)}
  /* news */
  .p-news{padding:calc(var(--u)*11) calc(var(--u)*12) calc(var(--u)*2) calc(var(--u)*24)}
  .p-news__list{margin-top:calc(var(--u)*4)!important}
  .p-news__title{font-size:calc(var(--u)*19);margin-top:calc(var(--u)*5)}
  .p-news__head .c-more{font-size:calc(var(--u)*10);margin:0 0 calc(var(--u)*14)}
  .p-news__list{gap:calc(var(--u)*0);margin-top:calc(var(--u)*6)}
  .c-news{grid-template-columns:calc(var(--u)*85) 1fr calc(var(--u)*14);column-gap:calc(var(--u)*17);height:calc(var(--u)*57);border:0;border-bottom:1px solid #eee;border-radius:0;padding:calc(var(--u)*4) 0}
  .c-news img{height:calc(var(--u)*48);border-radius:calc(var(--u)*2)}
  .c-news__meta time{font-size:calc(var(--u)*10)}
  .c-tag{font-size:calc(var(--u)*8.5)}
  .c-news__title{font-size:calc(var(--u)*11.5);line-height:1.3}
  .c-news::after{right:calc(var(--u)*4)}
  /* okinawa */
  .p-okinawa{height:calc(var(--u)*198)}
  .p-okinawa .p-sec__body{padding-top:calc(var(--u)*23)}
  .p-okinawa .c-btn{min-width:calc(var(--u)*198)}
  /* message */
  .p-message{height:calc(var(--u)*160);display:block;background:#fff}
  .p-message__card{position:absolute;inset:0;margin:0;height:auto;z-index:1}
  .p-message__card img{display:none}
  .p-message__name{left:calc(var(--u)*347);top:calc(var(--u)*68)}
  .p-message__ja{font-size:calc(var(--u)*17)}
  .p-message__en{font-size:calc(var(--u)*9)}
  .p-message__role{font-size:calc(var(--u)*8.5);line-height:1.3;margin-top:calc(var(--u)*5);color:#333}
  .p-message .p-sec__body{padding-top:calc(var(--u)*10)}
  /* what */
  .p-what{height:calc(var(--u)*162);display:block}
  .p-what__img{display:none}
  .p-what .c-heading{font-size:calc(var(--u)*19.5)}
  .p-what .c-text{line-height:1.5;margin-top:calc(var(--u)*6)}
  /* from */
  .p-from{height:calc(var(--u)*145);display:block}
  .p-from .p-sec__body{padding-top:calc(var(--u)*9)}
  .p-from .c-text{line-height:1.45;margin-top:calc(var(--u)*5)}
  .p-from .c-btn{min-width:calc(var(--u)*168);margin-top:calc(var(--u)*5)}
  /* partner */
  .p-partner{height:calc(var(--u)*125)}
  .p-partner__img{display:none}
  .p-partner .p-sec__body{padding-top:calc(var(--u)*11)}
  .p-partner .c-btn{position:absolute;left:calc(var(--u)*195);top:calc(var(--u)*82);min-width:calc(var(--u)*137);margin:0;height:calc(var(--u)*27)}
  .c-petal{display:none}
  .c-heading{letter-spacing:0;font-feature-settings:'palt';font-weight:800}
  .c-text,.p-stories .c-text,.p-okinawa .c-text,.p-what .c-text,.p-message .c-text,.p-from .c-text,.p-partner .c-text{font-family:var(--sans);letter-spacing:0;line-height:1.6;font-weight:500}
  .p-what .c-text,.p-from .c-text,.p-message .c-text,.p-partner .c-text{line-height:1.45;margin-top:calc(var(--u)*4)}
  .p-what .p-sec__body{padding-top:calc(var(--u)*9)}
  .p-what .c-heading{margin-top:calc(var(--u)*5)}
  .p-what .c-btn{margin-top:calc(var(--u)*6)}
  .c-footer__logo{width:calc(var(--u)*100)!important}
  .p-okinawa .c-text{line-height:1.55}
  .c-news{grid-template-rows:auto auto;align-content:center;row-gap:calc(var(--u)*3)}
  .c-news img{grid-row:1/3;align-self:center}
  .c-news__title{margin:0;letter-spacing:0}
  .c-news__meta{align-self:end}
  .c-footer__sub.sp-flex{margin-left:calc(var(--u)*70);white-space:nowrap}
  .c-footer__sub.sp-flex a{font-size:calc(var(--u)*7.2)}
  .c-footer__sub.sp-flex li+li::before{margin:0 calc(var(--u)*5)}
  .c-sns{gap:calc(var(--u)*8)}
  .c-sns svg{width:calc(var(--u)*16);height:calc(var(--u)*16)}
  /* footer */
  .c-footer{padding:0 calc(var(--u)*14) calc(var(--u)*16)}
  .c-footer__top{height:calc(var(--u)*50);border:0}
  .c-footer__logo{width:calc(var(--u)*92)}
  .c-footer__sub.sp-flex{margin-left:calc(var(--u)*66)}
  .c-footer__sub a{font-size:calc(var(--u)*7.6);color:#333;font-weight:500}
  .c-footer__sub li+li::before{margin:0 calc(var(--u)*6);color:#aaa}
  .c-sns{gap:calc(var(--u)*9);margin-right:0}
  .c-sns svg{width:calc(var(--u)*18);height:calc(var(--u)*18)}
  .c-footer__bottom{justify-content:center;padding:calc(var(--u)*4) 0 0}
  .c-footer__copy{font-size:calc(var(--u)*7.5);font-family:var(--sans)}
}

/* ---------- animation ---------- */
.js-fade{opacity:0;transform:translateY(18px);transition:opacity 1.15s ease,transform 1.15s cubic-bezier(.16,.6,.24,1)}
.js-fade.is-in{opacity:1;transform:none}
.no-js .js-fade{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js-fade{opacity:1;transform:none;transition:none}}

/* ===== 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}

/* SP WHAT: white veil so text stays readable over the photo (2026-11-10) */
@media (max-width:767px){
  .p-what::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#fff 24%,rgba(255,255,255,.88) 46%,rgba(255,255,255,0) 74%)}
}

/* ================================================================
   TOP SP REDESIGN (2026-11-10) — dedicated phone layout for the top
   page only. PC untouched. Sections stack: photo block, then text on
   white at readable sizes (body 15px class).
   ================================================================ */
@media (max-width:767px){
  /* --- hero: keep the approved composition, set real type sizes --- */
  body:not(.l-page) .p-hero h1{font-size:31px;line-height:1.52;letter-spacing:.04em}
  body:not(.l-page) .p-hero__lead{font-size:14.5px;line-height:1.6;margin-top:12px}
  body:not(.l-page) .p-hero__en{font-size:12px;margin-top:8px}
  body:not(.l-page) .p-hero__btns{grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
  body:not(.l-page) .p-hero .c-btn{min-height:50px;font-size:14px;padding:0 10px}

  /* --- dates: stack the two events full width --- */
  body:not(.l-page) .p-dates{height:auto;flex-direction:column;align-items:stretch;padding:4px 20px 20px;gap:0}
  body:not(.l-page) .p-dates__item{width:100%;padding:14px 0 12px;border-top:1px solid var(--line)}
  body:not(.l-page) .p-dates__en{font-size:10.5px}
  body:not(.l-page) .p-dates__name{font-size:15.5px;margin-top:5px}
  body:not(.l-page) .p-dates__date{font-size:30px;margin-top:5px}
  body:not(.l-page) .p-dates__place{font-size:12.5px;line-height:1.75;margin-top:5px}

  /* --- shared section type (top page) --- */
  body:not(.l-page) .p-sec{height:auto;padding-bottom:58px;background:#fff}
  body:not(.l-page) .p-sec__body{width:auto;padding:30px 20px 0}
  body:not(.l-page) .p-sec .c-label{font-size:11px;letter-spacing:.16em}
  body:not(.l-page) .p-sec .c-heading{font-size:26px;line-height:1.6;margin-top:12px}
  body:not(.l-page) .p-sec .c-text{font-size:15px;line-height:2.0;margin-top:14px}
  body:not(.l-page) .p-sec .c-btn{width:100%;min-height:54px;font-size:15px;margin-top:26px}

  /* --- pattern A: background photo becomes a top block --- */
  body:not(.l-page) .p-about .p-sec__bg,
  body:not(.l-page) .p-okinawa .p-sec__bg{position:relative;inset:auto;height:250px}
  body:not(.l-page) .p-okinawa .p-sec__bg{height:215px}

  /* --- pattern B: SP photo becomes a top block, text below on white --- */
  body:not(.l-page) .p-sec__sp{position:relative;inset:auto;width:100%;height:250px}
  body:not(.l-page) .p-message .p-sec__sp{height:330px;object-position:center 22%}
  body:not(.l-page) .p-from .p-sec__sp{height:225px}
  body:not(.l-page) .p-partner .p-sec__sp{height:225px}
  body:not(.l-page) .p-what::before{display:none}
  body:not(.l-page) .p-message{height:auto;display:block}
  body:not(.l-page) .p-from{height:auto;display:block}
  body:not(.l-page) .p-partner{height:auto}

  /* --- stories: photo block, copy, then the collage strip --- */
  body:not(.l-page) .p-stories{height:auto;background:#fff;padding-bottom:58px}
  body:not(.l-page) .p-stories .p-sec__sp{height:260px}
  body:not(.l-page) .p-stories__collage{height:auto;margin-top:30px}
  body:not(.l-page) .p-stories__collage img{width:100%;height:auto}

  /* --- news: readable rows --- */
  body:not(.l-page) .p-news{height:auto;padding:58px 20px;background:#fff}
  body:not(.l-page) .p-news__title{font-size:25px;line-height:1.5}
  body:not(.l-page) .c-news{display:flex;gap:14px;padding:15px 0;align-items:flex-start}
  body:not(.l-page) .c-news img{width:104px;height:auto;flex:none}
  body:not(.l-page) .c-news__meta{font-size:11px}
  body:not(.l-page) .c-news__title{font-size:14.5px;line-height:1.65}

  /* --- message name block --- */
  body:not(.l-page) .p-message__card{position:relative;height:auto;margin-top:24px}
  body:not(.l-page) .p-message__name{position:relative;left:auto;top:auto}
  body:not(.l-page) .p-message__ja{font-size:19px}

  /* --- from-okinawa route steps --- */
  body:not(.l-page) .p-from__route{flex-direction:column;padding-top:26px;gap:18px}
  body:not(.l-page) .p-from__item{width:100%}

  /* --- final CTA + footer (top page scope) --- */
  body:not(.l-page) .l-cta{height:auto;padding:54px 20px}
}

/* TOP SP redesign — round 2 fixes */
@media (max-width:767px){
  body:not(.l-page) .p-hero__body{padding-right:20px}
  body:not(.l-page) .p-hero__btns{margin:20px 0 0;width:auto}
  body:not(.l-page) .p-stories{background:#000;color:#fff}
  body:not(.l-page) .p-stories .c-heading{color:#fff}
  body:not(.l-page) .p-stories .c-text{color:#eee}
  body:not(.l-page) .p-stories__collage{flex:none;margin-top:30px}
  body:not(.l-page) .p-stories__collage img{display:block;width:100%;height:auto}
}

/* TOP SP redesign — round 3 fixes */
@media (max-width:767px){
  body:not(.l-page) .p-stories .c-label{font-size:11px;letter-spacing:.16em}
  body:not(.l-page) .p-stories .c-heading{font-size:26px;line-height:1.6;margin-top:12px;color:#fff}
  body:not(.l-page) .p-stories .c-text{font-size:15px;line-height:2.0;margin-top:14px;color:#eee}
  body:not(.l-page) .p-stories .c-btn{width:100%;min-height:54px;font-size:15px;margin-top:26px}
  body:not(.l-page) .p-partner .c-btn{position:relative;left:auto;right:auto;top:auto;bottom:auto}
  body:not(.l-page) .p-from .c-btn{width:100%;min-height:54px;height:auto}
  body:not(.l-page) .c-news{display:grid;grid-template-columns:106px 1fr;grid-template-rows:auto auto;column-gap:14px;row-gap:3px;height:auto;overflow:visible;align-content:start;padding:15px 0}
  body:not(.l-page) .c-news img{grid-row:1/3;width:106px;height:auto}
  body:not(.l-page) .c-news__meta{grid-column:2;grid-row:1;font-size:11px}
  body:not(.l-page) .c-news__title{grid-column:2;grid-row:2;font-size:14.5px;line-height:1.65}
}

/* TOP SP redesign — round 4 fixes */
@media (max-width:767px){
  body:not(.l-page) .p-stories{display:block;height:auto}
  body:not(.l-page) .p-stories__main{width:100%;height:auto}
}

/* TOP SP redesign — round 5 fixes */
@media (max-width:767px){
  body:not(.l-page) .p-from .c-btn{display:inline-flex!important}
}

/* ==== Round 6 (2026-11-10 user review): PC fixes ==== */
.p-message__name{background:#fff;padding:calc(var(--u)*10) calc(var(--u)*14) calc(var(--u)*9);box-shadow:0 calc(var(--u)*8) calc(var(--u)*22) rgba(59,10,24,.20)}
.p-partner .c-btn{position:static;margin-top:calc(var(--u)*8)}
.p-partner{padding-bottom:calc(var(--u)*18)}

/* ==== Round 6: SP fixes (photo crops, dates, news, message order, footer sitemap) ==== */
@media (max-width:767px){
 body:not(.l-page) .p-hero h1{font-size:29px;max-width:330px}
 body:not(.l-page) .p-dates{gap:12px;padding-bottom:24px}
 body:not(.l-page) .p-dates__item{height:auto;padding:16px 18px 15px}
 body:not(.l-page) .p-stories .p-sec__sp{height:250px}
 body:not(.l-page) .p-okinawa .p-sec__bg{height:238px}
 body:not(.l-page) .p-okinawa .p-sec__bg img{object-position:93% 50%}
 body:not(.l-page) .p-what .p-sec__sp{height:295px;object-position:80% 50%}
 body:not(.l-page) .p-from .p-sec__sp{height:300px;object-position:84% 50%}
 body:not(.l-page) .p-partner .p-sec__sp{height:285px;object-position:87% 50%}
 body:not(.l-page) .p-news .c-news{grid-template-columns:124px 1fr}
 body:not(.l-page) .p-news .c-news img{width:124px;height:88px}
 body:not(.l-page) .p-news .c-news__title{padding-right:18px}
 body:not(.l-page) .p-message .p-sec__body{display:flex;flex-direction:column}
 body:not(.l-page) .p-message__card{order:5;margin:22px 0 0;padding-top:16px;border-top:1px solid var(--line)}
 body:not(.l-page) .p-message .c-btn{order:6}
 body:not(.l-page) .p-message__ja{font-size:22px}
 .c-footer__top{height:auto;flex-wrap:wrap;padding-top:10px;padding-bottom:2px;row-gap:6px}
 .c-footer__nav{display:flex;flex-wrap:wrap;gap:6px 18px;margin:4px 0 6px}
 .c-footer__nav a{font-size:12.5px;white-space:nowrap}
}

/* ==== Round 6b: message name placement (section-level order) + SP footer sitemap ==== */
@media (max-width:767px){
 body:not(.l-page) .p-message{display:flex;flex-direction:column}
 body:not(.l-page) .p-message__card{order:1;margin:16px 20px 0;padding-top:14px;border-top:1px solid var(--line)}
 body:not(.l-page) .p-message .p-sec__body{order:2}
 .c-footer__nav.pc-only{display:flex!important;flex-basis:100%;order:5;flex-wrap:wrap;gap:8px 18px;margin:8px 0 4px;margin-left:0}
 .c-footer__nav.pc-only a{font-size:12.5px;white-space:nowrap}
}

/* ==== Round 7 (2026-11-10 user review 2): partner height, footer structure ==== */
.p-partner{height:auto!important}
.c-footer__top{height:auto;padding-top:calc(var(--u)*6);padding-bottom:calc(var(--u)*6)}
@media (max-width:767px){
 .c-footer{padding:20px 20px 18px}
 .c-footer__top{flex-direction:column;align-items:flex-start;gap:12px;padding:0 0 12px}
 .c-footer__logo img{width:148px;height:auto}
 .c-footer__nav.pc-only{flex-basis:auto;margin:0;gap:10px 20px}
 .c-footer__bottom{padding-top:10px}
}
.p-partner .p-sec__body{height:auto!important}
@media (max-width:767px){
 body .c-footer__top{flex-direction:column!important;align-items:flex-start!important}
 body .c-footer__nav.pc-only{flex-basis:auto!important}
}
@media (max-width:767px){
 body .c-footer__sub.sp-flex{position:static!important}
 body .c-footer .c-sns{position:static!important}
 body .c-footer__nav.pc-only a{font-family:var(--sans)}
}
@media (max-width:767px){
 body .c-footer__sub.sp-flex{margin-left:0!important}
 body .c-footer .c-sns{margin-left:0!important}
 body .c-footer__logo{width:142px}
 body .c-footer__logo img{width:100%!important;height:auto!important}
}
@media (max-width:767px){
 body .c-footer__logo{order:1!important}
 body .c-footer__nav.pc-only{order:2!important}
 body .c-footer__sub.sp-flex{order:3!important}
 body .c-footer .c-sns{order:4!important}
}

/* ==== Round 8 (2026-11-10 user review 3): message catch, hero type, about overlay ==== */
.p-message__catch{font-family:var(--serif);color:var(--red);font-size:calc(var(--u)*8.5);letter-spacing:.05em;margin-bottom:calc(var(--u)*4)}
@media (max-width:767px){
 body:not(.l-page) .p-hero h1{font-size:27px;max-width:305px}
 body:not(.l-page) .p-message__catch{font-size:13.5px;margin-bottom:5px}
 body:not(.l-page) .p-about .p-sec__bg{height:300px}
 body:not(.l-page) .p-about .p-sec__bg::after{content:"";position:absolute;left:0;right:0;bottom:0;height:58%;background:linear-gradient(180deg,transparent,rgba(24,4,12,.55));z-index:1}
 body:not(.l-page) .p-about .c-heading{position:absolute;left:20px;right:20px;top:204px;color:#fff;z-index:3;text-shadow:0 2px 16px rgba(0,0,0,.4)}
 body:not(.l-page) .p-about .c-heading .c-red{color:#ff9db1}
}
@media (max-width:767px){
 body:not(.l-page) .p-about{position:relative}
 body:not(.l-page) .p-about .p-sec__body{position:static}
}

/* ==== Round 9 (2026-11-10 user review 4): plate into photo (SP), plate slim (PC) ==== */
@media (min-width:768px){
 .p-message__name{left:calc(var(--u)*212)!important;top:calc(var(--u)*88)!important}
 .p-message__catch{font-size:calc(var(--u)*7.4);line-height:1.55}
}
@media (max-width:767px){
 body:not(.l-page) .p-message__name{margin-top:-146px}
}

/* ==== Round 10 (2026-11-10): hibiscus dressing — watermark, drifting petals, points ==== */
.hibi-drift{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.hibi-drift img{position:absolute;top:-6%;left:var(--x);width:calc(var(--u)*var(--w));height:auto;opacity:0;animation:twjFall var(--dur,22s) linear infinite;animation-delay:var(--del,0s)}
@keyframes twjFall{
 0%{top:-6%;opacity:0;transform:translateX(0) rotate(0deg)}
 7%{opacity:.92}
 25%{transform:translateX(-16px) rotate(100deg)}
 50%{transform:translateX(10px) rotate(195deg)}
 75%{transform:translateX(-8px) rotate(275deg)}
 93%{opacity:.92}
 100%{top:102%;opacity:0;transform:translateX(5px) rotate(350deg)}
}
body:not(.l-page) .p-what{background-image:url(../img/c/hibiscus-wm.png);background-repeat:no-repeat;background-position:right -60px top -50px;background-size:220px auto}
body:not(.l-page) .p-news{background-image:url(../img/c/hibiscus-bloom.png);background-repeat:no-repeat;background-position:right -52px bottom -44px;background-size:196px auto}
.c-footer{background-image:url(../img/c/hibiscus-bloom.png);background-repeat:no-repeat;background-position:right -88px bottom -96px;background-size:250px auto}
.p-partner__img::after{content:"";position:absolute;right:calc(var(--u)*-6);top:calc(var(--u)*-10);width:calc(var(--u)*30);height:calc(var(--u)*30);background:url(../img/c/hibiscus.png) center/contain no-repeat;transform:rotate(12deg);z-index:5;pointer-events:none}
@media (min-width:768px){
 .p-okinawa{background-image:url(../img/c/hibiscus-wm.png);background-repeat:no-repeat;background-position:right -46px top -30px;background-size:calc(var(--u)*150) auto}
}
@media (max-width:767px){
 .hibi-drift img{width:calc(var(--w)*1.55px)}
 .c-footer{background-size:170px auto;background-position:right -80px bottom -90px}
 body:not(.l-page) .p-what{background-position:right -44px bottom -58px;background-size:130px auto}
 body:not(.l-page) .p-news{background-size:150px auto;background-position:right -40px bottom -34px}
}

/* ==== Round 11 (2026-11-10): a little more hibiscus on white sections ==== */
body:not(.l-page) .p-about{background-image:url(../img/c/hibiscus-wm.png);background-repeat:no-repeat;background-position:right -34px bottom -30px;background-size:190px auto}
body:not(.l-page) .p-from{background-image:url(../img/c/hibiscus-wm.png);background-repeat:no-repeat;background-position:left -40px top -30px;background-size:200px auto}
@media (max-width:767px){
 body:not(.l-page) .p-about{background-size:140px auto;background-position:right -40px bottom -52px}
 body:not(.l-page) .p-from{background-size:150px auto;background-position:left -30px bottom -26px}
}

/* ==== Round 14 (2026-11-10): SP about heading decorated, centered on photo ==== */
@media (max-width:767px){
 body:not(.l-page) .p-about .p-sec__bg::before{content:"";position:absolute;left:-34px;top:26px;width:215px;height:215px;background:url(../img/c/hibiscus-photo.jpg) center/contain no-repeat;mix-blend-mode:screen;opacity:.6;z-index:1}
 body:not(.l-page) .p-about .c-heading{top:118px;left:22px;right:104px;padding-left:16px;font-size:23px;line-height:1.5;text-shadow:0 2px 18px rgba(0,0,0,.55)}
 body:not(.l-page) .p-about .c-heading::before{content:"THE WALK JAPAN";display:block;font-family:var(--sans);font-weight:700;font-size:10px;letter-spacing:.38em;color:#ff9db1;margin-bottom:11px;text-shadow:none}
 body:not(.l-page) .p-about .c-heading::after{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;background:var(--red)}
}

/* ==== Round 16 (2026-11-10): winners' voices on TOP ==== */
.p-winners{background:#12040a;padding:calc(var(--u)*20) calc(var(--u)*37) calc(var(--u)*24)}
.p-winners__head{display:flex;justify-content:space-between;align-items:flex-end}
.p-winners .c-label{color:#ff9db1}
.p-winners__title{color:#fff;font-weight:600;font-size:calc(var(--u)*15);margin-top:calc(var(--u)*4)}
.p-winners .c-more{color:#fff}
.win-minis{list-style:none;margin:calc(var(--u)*13) 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:calc(var(--u)*9)}
.win-mini a{display:block;text-decoration:none;color:var(--ink)}
.win-mini figure{margin:0 0 calc(var(--u)*5);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 calc(var(--u)*5.2) var(--sans);letter-spacing:.08em;color:var(--red);margin:0 0 calc(var(--u)*1.6)}
.win-mini__name{font-family:var(--serif);font-size:calc(var(--u)*8);margin:0 0 calc(var(--u)*2.4)}
.win-mini__quote{font-size:calc(var(--u)*5.7);line-height:1.7;color:#6d5f63;margin:0}
.win-minis--dark .win-mini__name{color:#fff}
.win-minis--dark .win-mini__quote{color:rgba(255,255,255,.72)}
.win-minis--dark .win-mini__award{color:#ff8fa0}
@media (max-width:767px){
 body:not(.l-page) .p-winners{height:auto;padding:52px 20px 46px}
 body:not(.l-page) .p-winners__title{font-size:24px}
 body:not(.l-page) .win-minis{display:flex;overflow-x:auto;gap:14px;margin-top:22px;padding-bottom:8px;scroll-snap-type:x mandatory}
 body:not(.l-page) .win-mini{flex:0 0 62%;scroll-snap-align:start}
 body:not(.l-page) .win-mini__award{font-size:10.5px}
 body:not(.l-page) .win-mini__name{font-size:16.5px}
 body:not(.l-page) .win-mini__quote{font-size:11.5px}
}

/* ==== Round 17 (2026-11-10): comp-style deco (moderate) ==== */
.deco-script{position:absolute;font-family:"Pinyon Script",cursive;color:#fff;pointer-events:none;z-index:6;line-height:1.2;text-shadow:0 2px 16px rgba(20,0,8,.4);margin:0}
.deco-script--hero{top:calc(var(--u)*15);right:calc(var(--u)*34);font-size:calc(var(--u)*16.5);transform:rotate(-5deg)}
.deco-script--about{top:calc(var(--u)*13);right:calc(var(--u)*38);font-size:calc(var(--u)*12.5);transform:rotate(-4deg)}
.deco-script--okinawa{top:calc(var(--u)*9);right:calc(var(--u)*44);font-size:calc(var(--u)*19);transform:rotate(-3deg)}
.deco-script--message{left:calc(var(--u)*366);top:calc(var(--u)*124);font-size:calc(var(--u)*12.5);color:#433034;text-shadow:none;transform:rotate(-4deg)}
.deco-bloom{position:absolute;pointer-events:none;z-index:5}
.deco-bloom--stories{left:calc(var(--u)*-8);bottom:calc(var(--u)*-10);width:calc(var(--u)*54)}
.deco-bloom--okinawa{right:calc(var(--u)*-16);bottom:calc(var(--u)*-18);width:calc(var(--u)*92)}
.deco-bloom--what{left:calc(var(--u)*262);bottom:calc(var(--u)*4);width:calc(var(--u)*56)}
.p-from__hibiscus{width:calc(var(--u)*62)}
@media (max-width:767px){
 body:not(.l-page) .deco-script--hero{top:64px;right:4px;font-size:16.5px;max-width:150px;text-align:center}
 body:not(.l-page) .deco-script--about{display:none}
 body:not(.l-page) .deco-script--okinawa{top:12px;right:16px;font-size:27px}
 body:not(.l-page) .deco-script--message{display:none}
 body:not(.l-page) .deco-bloom--stories{width:96px;left:-16px;bottom:-12px}
 body:not(.l-page) .deco-bloom--okinawa{width:138px;right:-26px;bottom:-14px}
 body:not(.l-page) .deco-bloom--what{display:none}
}

/* ==== Round 18 (2026-11-10): SP — catch copy ON the photo for every TOP section ==== */
@media (max-width:767px){
 body:not(.l-page) .p-stories,body:not(.l-page) .p-okinawa,body:not(.l-page) .p-what,body:not(.l-page) .p-from,body:not(.l-page) .p-partner{position:relative}
 body:not(.l-page) .p-stories .p-sec__body,body:not(.l-page) .p-okinawa .p-sec__body,body:not(.l-page) .p-what .p-sec__body,body:not(.l-page) .p-from .p-sec__body,body:not(.l-page) .p-partner .p-sec__body{position:static}
 body:not(.l-page) .p-stories .c-heading,body:not(.l-page) .p-okinawa .c-heading,body:not(.l-page) .p-what .c-heading,body:not(.l-page) .p-partner .c-heading{position:absolute;left:20px;right:20px;z-index:3;color:#fff;text-shadow:0 2px 14px rgba(10,0,6,.55);margin:0}
 body:not(.l-page) .p-stories .c-heading{top:158px}
 body:not(.l-page) .p-okinawa .c-heading{top:140px}
 body:not(.l-page) .p-what .c-heading{top:150px}
 body:not(.l-page) .p-partner .c-heading{top:128px}
 body:not(.l-page) .p-from .c-heading{position:absolute;left:20px;right:20px;top:20px;z-index:3;color:#fff;text-shadow:0 2px 14px rgba(10,0,6,.6);margin:0}
 body:not(.l-page) .p-stories::after,body:not(.l-page) .p-okinawa::after,body:not(.l-page) .p-what::after,body:not(.l-page) .p-partner::after{content:"";position:absolute;left:0;right:0;z-index:2;pointer-events:none;background:linear-gradient(to top,rgba(12,2,8,.62),rgba(12,2,8,0));height:150px}
 body:not(.l-page) .p-stories::after{top:100px}
 body:not(.l-page) .p-okinawa::after{top:88px}
 body:not(.l-page) .p-what::after{top:100px}
 body:not(.l-page) .p-partner::after{top:75px}
 body:not(.l-page) .p-from::after{content:"";position:absolute;left:0;right:0;top:0;height:130px;z-index:2;pointer-events:none;background:linear-gradient(to bottom,rgba(12,2,8,.55),rgba(12,2,8,0))}
}
/* Round 18b: type rhythm on the on-photo headings (hero grammar: accent + size contrast + stagger) */
@media (max-width:767px){
 body:not(.l-page) .p-stories .c-heading,body:not(.l-page) .p-okinawa .c-heading,body:not(.l-page) .p-what .c-heading,body:not(.l-page) .p-partner .c-heading{font-size:24px;line-height:1.45;letter-spacing:.02em}
 body:not(.l-page) .p-from .c-heading{font-size:25px;line-height:1.45;letter-spacing:.02em}
 body:not(.l-page) .p-stories .c-heading em,body:not(.l-page) .p-okinawa .c-heading em,body:not(.l-page) .p-what .c-heading em,body:not(.l-page) .p-from .c-heading em,body:not(.l-page) .p-partner .c-heading em{color:#ff5470;font-style:normal;font-size:1.18em}
 body:not(.l-page) .p-stories .c-heading .rl,body:not(.l-page) .p-okinawa .c-heading .rl,body:not(.l-page) .p-what .c-heading .rl,body:not(.l-page) .p-from .c-heading .rl,body:not(.l-page) .p-partner .c-heading .rl{display:inline-block;margin-left:16px}
 body:not(.l-page) .p-okinawa .c-heading{font-size:23px}
}
@media (max-width:767px){body:not(.l-page) .p-from .c-heading{font-size:23px}body:not(.l-page) .p-from .c-heading em{font-size:1.12em}}
