/* =========================================================
   THE WALK JAPAN 2027 OKINAWA – lower.css (下層ページ)
   Design language = C01 (style.css). Same --u unit system:
   PC 681u = 1440px / SP 447u = viewport.
   ========================================================= */

/* ---------- common lower hero ---------- */
.l-hero{position:relative;height:calc(var(--u)*150);background:linear-gradient(90deg,#fff 0,#fbf6f6 46%,#fff 100%);overflow:hidden}
.l-hero__img{position:absolute;right:0;top:0;width:calc(var(--u)*430);height:100%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 34%);mask-image:linear-gradient(90deg,transparent 0,#000 34%)}
.l-hero__img img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,right center)}
.l-hero__body{position:relative;z-index:2;padding:calc(var(--u)*38) 0 0 calc(var(--u)*41)}
.l-hero__en{display:flex;align-items:center;gap:calc(var(--u)*8);font-family:var(--serif);font-weight:700;color:var(--red);font-size:calc(var(--u)*9);letter-spacing:.16em;line-height:1}
.l-hero__en::before{content:"";width:calc(var(--u)*20);height:1.5px;background:var(--red)}
.l-hero__title{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*29);letter-spacing:.08em;line-height:1.3;margin-top:calc(var(--u)*11)}
.l-hero__lead{font-family:var(--serif);font-weight:600;color:#333;font-size:calc(var(--u)*9.6);line-height:1.8;letter-spacing:.04em;margin-top:calc(var(--u)*10)}
.l-hero--dark{background:var(--black)}
.l-hero--dark .l-hero__img{width:calc(var(--u)*460)}
.l-hero--dark .l-hero__title{color:#fff}
.l-hero--dark .l-hero__lead{color:#ddd}
.l-hero--sm{height:calc(var(--u)*112)}
.l-hero--sm .l-hero__body{padding-top:calc(var(--u)*30)}
.l-hero .c-petal{z-index:3}

/* ---------- breadcrumb ---------- */
.c-breadcrumb{border-bottom:1px solid #f1ecec;background:#fff}
.c-breadcrumb ol{list-style:none;margin:0;padding:calc(var(--u)*7) calc(var(--u)*41);display:flex;flex-wrap:wrap;align-items:center;font-family:var(--sans);font-weight:500;font-size:calc(var(--u)*6.8);color:#8a8a8a;letter-spacing:.04em}
.c-breadcrumb li{display:flex;align-items:center}
.c-breadcrumb li+li::before{content:"";width:calc(var(--u)*3.4);height:calc(var(--u)*3.4);border-top:1.5px solid var(--red);border-right:1.5px solid var(--red);transform:rotate(45deg);margin:0 calc(var(--u)*9) 0 calc(var(--u)*7)}
.c-breadcrumb a{color:#333;transition:color .2s}
.c-breadcrumb a:hover{color:var(--red)}
.c-breadcrumb [aria-current]{color:#8a8a8a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:calc(var(--u)*300)}

/* ---------- sections ---------- */
.l-sec{position:relative;padding:calc(var(--u)*46) calc(var(--u)*41)}
.l-sec--tint{background:linear-gradient(90deg,#fff 0,#fbf7f7 50%,#fff)}
.l-sec--pink{background:#fbf6f6}
.l-sec--dark{background:var(--black);color:#eee}
.l-sec--tight{padding-top:calc(var(--u)*30)}
.l-inner{max-width:calc(var(--u)*599);margin:0 auto;position:relative;z-index:2}
.l-inner--narrow{max-width:calc(var(--u)*470)}
.l-head{margin-bottom:calc(var(--u)*24)}
.l-head--center{text-align:center}
.l-head--center .c-label{justify-content:center}
.l-head--row{display:flex;justify-content:space-between;align-items:flex-end}
.l-sec .c-heading{font-size:calc(var(--u)*21);line-height:1.45;margin-top:calc(var(--u)*9)}
.l-sec--dark .c-heading{color:#fff}
.l-h3{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*12.5);line-height:1.5;letter-spacing:.04em}
.l-h3--line{display:flex;align-items:center;gap:calc(var(--u)*10);margin:calc(var(--u)*30) 0 calc(var(--u)*14)}
.l-h3--line::after{content:"";flex:1;height:1px;background:var(--line)}
.l-lead{font-family:var(--serif);font-weight:600;font-size:calc(var(--u)*9.6);line-height:2;color:#262626;letter-spacing:.03em;margin-top:calc(var(--u)*12)}
.l-sec--dark .l-lead{color:#e6e6e6}
.l-text{font-family:var(--sans);font-weight:400;font-size:calc(var(--u)*8);line-height:2;color:#444;letter-spacing:.03em}
.l-text p+p{margin-top:1em}
.l-note{font-family:var(--sans);font-size:calc(var(--u)*6.8);line-height:1.8;color:#8a8a8a;margin-top:calc(var(--u)*10)}
.l-btns{display:flex;flex-wrap:wrap;gap:calc(var(--u)*10);margin-top:calc(var(--u)*20)}
.l-btns .c-btn{margin-top:0}
.l-btns--center{justify-content:center}
.c-btn--white{border:1.5px solid #fff;color:#fff;background:transparent;min-width:calc(var(--u)*196)}
.c-btn--white:hover{background:#fff;color:var(--red)}
.c-btn--lg{height:calc(var(--u)*36);min-width:calc(var(--u)*220);font-size:calc(var(--u)*10)}
.c-btn--fill{min-width:calc(var(--u)*196)}
.l-sec .c-petal{z-index:1}

/* split (text + image) */
.l-split{display:grid;grid-template-columns:1fr calc(var(--u)*300);gap:calc(var(--u)*40);align-items:center}
.l-split--rev{grid-template-columns:calc(var(--u)*300) 1fr}
.l-split--rev .l-split__img{order:-1}
.l-split__img{position:relative;border-radius:calc(var(--u)*3);overflow:hidden;aspect-ratio:300/210}
.l-split__img img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,center)}
.l-split__img::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04);border-radius:inherit}
.l-split__img--fade{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%);mask-image:linear-gradient(90deg,transparent 0,#000 22%);border-radius:0}

/* points / cards */
.l-points{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(var(--u)*14)}
.l-points--4{grid-template-columns:repeat(4,1fr);gap:calc(var(--u)*10)}
.l-point{position:relative;background:#fff;border:1px solid #efeaea;border-radius:calc(var(--u)*3);padding:calc(var(--u)*22) calc(var(--u)*18) calc(var(--u)*20);overflow:hidden}
.l-point::before{content:"";position:absolute;left:0;top:0;width:calc(var(--u)*26);height:2px;background:var(--red)}
.l-point__num{font-family:var(--serif);font-weight:700;color:var(--red);font-size:calc(var(--u)*7.4);letter-spacing:.14em;line-height:1}
.l-point__num b{display:block;font-size:calc(var(--u)*22);letter-spacing:.02em;margin-top:calc(var(--u)*4)}
.l-point__title{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*12);line-height:1.5;margin-top:calc(var(--u)*10)}
.l-point__text{font-family:var(--sans);font-size:calc(var(--u)*7.6);line-height:1.9;color:#555;margin-top:calc(var(--u)*7)}
.l-point__ico{position:absolute;right:calc(var(--u)*14);top:calc(var(--u)*16);width:calc(var(--u)*22);opacity:.9}

/* table */
.l-table{border-top:1.5px solid var(--ink);margin:0}
.l-table__row{display:grid;grid-template-columns:calc(var(--u)*130) 1fr;border-bottom:1px solid var(--line);padding:calc(var(--u)*13) 0}
.l-table dt{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*8.6);line-height:1.8;padding-left:calc(var(--u)*6)}
.l-table dd{margin:0;font-family:var(--sans);font-size:calc(var(--u)*8);line-height:1.8;color:#333}
.l-table dd small{display:block;color:#8a8a8a;font-size:.88em;margin-top:.3em}
.c-kari{display:inline-block;font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*6);line-height:1;color:#b8860b;border:1px solid #e2c77a;background:#fffaf0;border-radius:2px;padding:calc(var(--u)*1.6) calc(var(--u)*3.4);margin-left:.6em;vertical-align:.15em;letter-spacing:.04em}

/* events (outline) */
.l-events{display:grid;grid-template-columns:repeat(2,1fr);gap:calc(var(--u)*18)}
.l-event{background:#fff;border-radius:calc(var(--u)*6);box-shadow:0 calc(var(--u)*3) calc(var(--u)*14) rgba(0,0,0,.08);overflow:hidden;display:flex;flex-direction:column}
.l-event__img{position:relative;height:calc(var(--u)*120)}
.l-event__img img{width:100%;height:100%;object-fit:cover}
.l-event__step{position:absolute;left:0;top:calc(var(--u)*12);background:var(--red);color:#fff;font-family:var(--serif);font-weight:700;font-size:calc(var(--u)*7.4);letter-spacing:.14em;padding:calc(var(--u)*4) calc(var(--u)*10)}
.l-event__body{padding:calc(var(--u)*18) calc(var(--u)*22) calc(var(--u)*22);flex:1;display:flex;flex-direction:column}
.l-event .p-dates__name{font-size:calc(var(--u)*13)}
.l-event .p-dates__date{font-size:calc(var(--u)*26);margin-top:calc(var(--u)*4)}
.l-event__place{font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*8.4);color:#333;margin-top:calc(var(--u)*6);display:flex;gap:calc(var(--u)*5);align-items:flex-start}
.l-event__place svg{width:1.2em;height:1.2em;fill:var(--red);flex:none;margin-top:.25em}
.l-event__info{margin-top:calc(var(--u)*12);border-top:1px solid var(--line);padding-top:calc(var(--u)*10);font-family:var(--sans);font-size:calc(var(--u)*7.4);line-height:1.9;color:#555}
.l-event__info b{color:var(--ink);margin-right:.8em}
.l-event .c-btn{margin-top:auto;align-self:flex-start}
.l-event .l-event__info+.c-btn{margin-top:calc(var(--u)*14)}

/* route */
.l-route{display:grid;grid-template-columns:repeat(4,1fr);gap:calc(var(--u)*12);position:relative;counter-reset:r}
.l-route::before{content:"";position:absolute;left:12%;right:12%;top:calc(var(--u)*22);height:1px;background:repeating-linear-gradient(90deg,var(--red) 0 6px,transparent 6px 11px)}
.l-route li{position:relative;text-align:center}
.l-route__dot{position:relative;z-index:1;width:calc(var(--u)*44);height:calc(var(--u)*44);border-radius:50%;margin:0 auto;background:#fff;border:1.5px solid var(--red);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;color:var(--red);font-size:calc(var(--u)*13)}
.l-route li:nth-child(3) .l-route__dot,.l-route li.is-main .l-route__dot{background:var(--red);color:#fff}
.l-route__en{font-family:var(--serif);font-weight:700;color:var(--red);font-size:calc(var(--u)*7);letter-spacing:.12em;margin-top:calc(var(--u)*10)}
.l-route__name{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*11.4);margin-top:calc(var(--u)*4);line-height:1.4}
.l-route__date{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*9.4);margin-top:calc(var(--u)*4)}
.l-route__text{font-family:var(--sans);font-size:calc(var(--u)*7);line-height:1.8;color:#666;margin-top:calc(var(--u)*5)}

/* timeline (schedule) */
.l-timeline{border-top:1px solid var(--line)}
.l-timeline li{display:grid;grid-template-columns:calc(var(--u)*90) 1fr;gap:calc(var(--u)*16);padding:calc(var(--u)*12) 0;border-bottom:1px dashed #e4dcdc;position:relative}
.l-timeline time{font-family:var(--serif);font-weight:700;color:var(--red);font-size:calc(var(--u)*13);line-height:1.3;letter-spacing:.04em}
.l-timeline b{display:block;font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*10);line-height:1.5}
.l-timeline span{display:block;font-family:var(--sans);font-size:calc(var(--u)*7.4);color:#666;line-height:1.8;margin-top:calc(var(--u)*2)}

/* flow (steps) */
.l-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:calc(var(--u)*12)}
.l-flow--4{grid-template-columns:repeat(4,1fr)}
.l-flow li{position:relative;background:#fff;border:1px solid #efeaea;border-radius:calc(var(--u)*3);padding:calc(var(--u)*16) calc(var(--u)*12) calc(var(--u)*16)}
.l-flow li:not(:last-child)::after{content:"";position:absolute;right:calc(var(--u)*-8.5);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);z-index:2}
.l-flow__step{font-family:var(--serif);font-weight:700;color:var(--red);font-size:calc(var(--u)*7);letter-spacing:.14em;line-height:1}
.l-flow__step b{font-size:calc(var(--u)*16);letter-spacing:.02em;margin-left:.2em}
.l-flow__title{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*10.4);line-height:1.45;margin-top:calc(var(--u)*8)}
.l-flow__text{font-family:var(--sans);font-size:calc(var(--u)*7);line-height:1.8;color:#666;margin-top:calc(var(--u)*6)}

/* FAQ */
.l-faq{border-top:1.5px solid var(--ink)}
.l-faq details{border-bottom:1px solid var(--line)}
.l-faq summary{list-style:none;display:flex;align-items:baseline;gap:calc(var(--u)*12);padding:calc(var(--u)*14) calc(var(--u)*34) calc(var(--u)*14) calc(var(--u)*6);font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*9.4);line-height:1.6;cursor:pointer;position:relative;transition:color .2s}
.l-faq summary::-webkit-details-marker{display:none}
.l-faq summary:hover{color:var(--red)}
.l-faq summary::before,.l-faq__a::before{font-family:var(--serif);font-weight:700;font-size:calc(var(--u)*14);line-height:1;flex:none;width:calc(var(--u)*14)}
.l-faq summary::before{content:"Q";color:var(--red)}
.l-faq summary::after{content:"";position:absolute;right:calc(var(--u)*8);top:50%;width:calc(var(--u)*6);height:calc(var(--u)*6);border-right:1.5px solid var(--red);border-bottom:1.5px solid var(--red);transform:translateY(-70%) rotate(45deg);transition:transform .3s}
.l-faq details[open] summary::after{transform:translateY(-20%) rotate(-135deg)}
.l-faq__a{display:flex;align-items:baseline;gap:calc(var(--u)*12);padding:0 calc(var(--u)*34) calc(var(--u)*16) calc(var(--u)*6);font-family:var(--sans);font-size:calc(var(--u)*8);line-height:1.95;color:#444}
.l-faq__a::before{content:"A";color:#c4b9b9}

/* CTA band */
.l-cta{position:relative;background:var(--black);overflow:hidden;min-height:calc(var(--u)*170);display:flex;align-items:center}
.l-cta__bg{position:absolute;right:0;top:0;bottom:0;width:calc(var(--u)*430);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 40%);mask-image:linear-gradient(90deg,transparent 0,#000 40%)}
.l-cta__bg img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,center)}
.l-cta__body{position:relative;z-index:2;padding:calc(var(--u)*30) calc(var(--u)*41)}
.l-cta .c-heading{color:#fff;font-size:calc(var(--u)*21);margin-top:calc(var(--u)*9)}
.l-cta .c-heading em{color:#ff3b4e}
.l-cta .c-text{color:#ddd;font-size:calc(var(--u)*9);line-height:1.8;font-weight:500;margin-top:calc(var(--u)*10)}
.l-cta .l-btns{margin-top:calc(var(--u)*18)}

/* stories */
.l-feature{display:grid;grid-template-columns:calc(var(--u)*330) 1fr;background:var(--black);border-radius:calc(var(--u)*4);overflow:hidden;color:#eee}
.l-feature__img{position:relative;min-height:calc(var(--u)*230)}
.l-feature__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,right center)}
.l-feature__body{padding:calc(var(--u)*30) calc(var(--u)*30) calc(var(--u)*28)}
.l-feature__title{font-family:var(--serif);font-weight:700;color:#fff;font-size:calc(var(--u)*17);line-height:1.5;margin-top:calc(var(--u)*10)}
.l-feature__name{font-family:var(--sans);font-weight:500;color:#aaa;font-size:calc(var(--u)*7.4);margin-top:calc(var(--u)*8)}
.l-feature__text{font-family:var(--serif);font-weight:500;color:#ddd;font-size:calc(var(--u)*8.6);line-height:2;margin-top:calc(var(--u)*12)}
.l-stories{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(var(--u)*22) calc(var(--u)*16)}
.l-story{display:block}
.l-story__img{overflow:hidden;border-radius:calc(var(--u)*3);aspect-ratio:4/3;background:#111}
.l-story__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.l-story:hover .l-story__img img{transform:scale(1.04)}
.l-story__meta{display:flex;align-items:center;gap:calc(var(--u)*8);margin-top:calc(var(--u)*10)}
.l-story__no{font-family:var(--serif);font-weight:700;color:var(--red);font-size:calc(var(--u)*7.4);letter-spacing:.12em}
.l-story__title{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*10.4);line-height:1.6;margin-top:calc(var(--u)*6);transition:color .2s}
.l-story:hover .l-story__title{color:var(--red)}
.l-story__name{font-family:var(--sans);font-size:calc(var(--u)*7);color:#8a8a8a;margin-top:calc(var(--u)*4)}
.l-quote{text-align:center;font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*20);line-height:1.7;letter-spacing:.08em}
.l-quote::before,.l-quote::after{content:"";display:block;width:1.5px;height:calc(var(--u)*26);background:var(--red);margin:0 auto calc(var(--u)*16)}
.l-quote::after{margin:calc(var(--u)*16) auto 0}

/* message (about) */
.l-msg{display:grid;grid-template-columns:calc(var(--u)*290) 1fr;gap:calc(var(--u)*36);align-items:start}
.l-msg__photo{position:relative;border-radius:calc(var(--u)*3);overflow:hidden;aspect-ratio:290/250}
.l-msg__photo img{width:100%;height:100%;object-fit:cover;object-position:30% center}
.l-msg__sign{margin-top:calc(var(--u)*22);padding-top:calc(var(--u)*14);border-top:1px solid var(--line)}
.l-msg__sign .p-message__role{font-size:calc(var(--u)*7.4)}
.l-msg__sign .p-message__ja{font-size:calc(var(--u)*17);margin-top:calc(var(--u)*6)}
.l-msg__sign .p-message__en{font-size:calc(var(--u)*9.4);color:var(--red)}

/* news (list / single) */
.l-tabs{display:flex;flex-wrap:wrap;gap:calc(var(--u)*8);margin-bottom:calc(var(--u)*20)}
.l-tabs a{display:inline-flex;align-items:center;height:calc(var(--u)*22);padding:0 calc(var(--u)*14);border:1px solid #e4dcdc;border-radius:calc(var(--u)*11);font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*7.6);color:#444;transition:.2s}
.l-tabs a:hover{border-color:var(--red);color:var(--red)}
.l-tabs a[aria-current]{background:var(--red);border-color:var(--red);color:#fff}
.l-newslist{display:grid;gap:calc(var(--u)*6)}
.l-newslist .c-news{height:calc(var(--u)*54)}
.c-pager{display:flex;justify-content:center;align-items:center;gap:calc(var(--u)*6);margin-top:calc(var(--u)*28);font-family:var(--serif);font-weight:700}
.c-pager a,.c-pager span{display:inline-flex;align-items:center;justify-content:center;min-width:calc(var(--u)*22);height:calc(var(--u)*22);border:1px solid #e4dcdc;border-radius:calc(var(--u)*3);font-size:calc(var(--u)*8);color:#333;padding:0 calc(var(--u)*6);transition:.2s}
.c-pager a:hover{border-color:var(--red);color:var(--red)}
.c-pager .current{background:var(--red);border-color:var(--red);color:#fff}
.c-pager .dots{border:0;min-width:0}
.c-pager .next,.c-pager .prev{border:0;color:var(--red);font-family:var(--sans);font-size:calc(var(--u)*7.6)}
.l-article{max-width:calc(var(--u)*470);margin:0 auto}
.l-article__meta{display:flex;align-items:center;gap:calc(var(--u)*10)}
.l-article__meta time{font-family:var(--serif);color:#999;font-size:calc(var(--u)*9)}
.l-article__title{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*19);line-height:1.55;letter-spacing:.03em;margin-top:calc(var(--u)*10);padding-bottom:calc(var(--u)*16);border-bottom:1px solid var(--line)}
.l-article__eye{margin-top:calc(var(--u)*22);border-radius:calc(var(--u)*3);overflow:hidden;aspect-ratio:16/8}
.l-article__eye img{width:100%;height:100%;object-fit:cover}
.l-article__body{font-family:var(--sans);font-size:calc(var(--u)*8.2);line-height:2.05;color:#333;margin-top:calc(var(--u)*24);letter-spacing:.03em}
.l-article__body>*+*{margin-top:1.4em}
.l-article__body h2{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*12.5);line-height:1.5;padding:.1em 0 .1em .9em;border-left:3px solid var(--red);margin-top:2.4em}
.l-article__body h3{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*10.4);margin-top:2em}
.l-article__body ul{padding-left:0}
.l-article__body ul li{position:relative;padding-left:1.2em}
.l-article__body ul li::before{content:"";position:absolute;left:.2em;top:.9em;width:.4em;height:.4em;border-radius:50%;background:var(--red)}
.l-article__body a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.l-article__body table{width:100%;border-collapse:collapse;border-top:1.5px solid var(--ink)}
.l-article__body th,.l-article__body td{border-bottom:1px solid var(--line);padding:.9em .6em;text-align:left;vertical-align:top}
.l-article__body th{font-family:var(--serif);font-weight:700;color:var(--ink);width:28%;white-space:nowrap}
.l-article__share{display:flex;align-items:center;gap:calc(var(--u)*10);margin-top:calc(var(--u)*30);padding-top:calc(var(--u)*16);border-top:1px solid var(--line);font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*7.6);letter-spacing:.12em}
.l-article__share .c-sns{margin:0}
.l-article__share .c-sns svg{width:calc(var(--u)*15);height:calc(var(--u)*15)}
.l-postnav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:calc(var(--u)*12);margin-top:calc(var(--u)*24)}
.l-postnav a{font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*7.6);color:#333;display:flex;align-items:center;gap:calc(var(--u)*8);transition:color .2s;line-height:1.6}
.l-postnav a:hover{color:var(--red)}
.l-postnav__next{justify-content:flex-end;text-align:right}
.l-postnav__prev .c-arrow{transform:scaleX(-1);margin:0 .2em 0 0;color:var(--red)}
.l-postnav__next .c-arrow{color:var(--red)}
.l-postnav .c-btn{margin:0;min-width:calc(var(--u)*150)}

/* form (Contact Form 7 compatible markup) */
.l-form{max-width:calc(var(--u)*500);margin:0 auto}
.l-form__row{display:grid;grid-template-columns:calc(var(--u)*140) 1fr;gap:calc(var(--u)*20);padding:calc(var(--u)*14) 0;border-bottom:1px solid var(--line);align-items:start}
.l-form__row:first-child{border-top:1.5px solid var(--ink)}
.l-form__label{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*8.6);line-height:1.5;padding-top:calc(var(--u)*7);display:flex;align-items:center;flex-wrap:wrap;gap:calc(var(--u)*6)}
.c-req,.c-any{display:inline-block;font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*6.2);line-height:1;color:#fff;background:var(--red);border-radius:2px;padding:calc(var(--u)*2.4) calc(var(--u)*4.5)}
.c-any{background:#b5b0b0}
.l-form input[type=text],.l-form input[type=email],.l-form input[type=tel],.l-form select,.l-form textarea{width:100%;font-family:var(--sans);font-size:calc(var(--u)*8.2);color:#222;background:#fcfafa;border:1px solid #e0d8d8;border-radius:calc(var(--u)*3);padding:calc(var(--u)*7) calc(var(--u)*10);line-height:1.6;transition:border-color .2s,box-shadow .2s,background .2s;-webkit-appearance:none;appearance:none}
.l-form input::placeholder,.l-form textarea::placeholder{color:#b7b0b0}
.l-form input:focus,.l-form select:focus,.l-form textarea:focus{outline:0;border-color:var(--red);background:#fff;box-shadow:0 0 0 3px rgba(227,19,42,.1)}
.l-form textarea{min-height:calc(var(--u)*120);resize:vertical}
.l-form select{background-image:linear-gradient(45deg,transparent 50%,var(--red) 50%),linear-gradient(135deg,var(--red) 50%,transparent 50%);background-position:calc(100% - 1.4em) 55%,calc(100% - 1em) 55%;background-size:.4em .4em;background-repeat:no-repeat;padding-right:2.6em}
.l-form__half{display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--u)*10)}
.l-form .wpcf7-radio,.l-form .l-choices{display:flex;flex-wrap:wrap;gap:calc(var(--u)*8) calc(var(--u)*18);padding-top:calc(var(--u)*6)}
.l-form .wpcf7-list-item{margin:0}
.l-form label.l-check{display:inline-flex;align-items:center;gap:calc(var(--u)*6);font-family:var(--sans);font-size:calc(var(--u)*8);color:#333;cursor:pointer}
.l-form input[type=radio],.l-form input[type=checkbox]{accent-color:var(--red);width:calc(var(--u)*9);height:calc(var(--u)*9);margin:0}
.l-form__hint{font-family:var(--sans);font-size:calc(var(--u)*6.8);color:#8a8a8a;margin-top:calc(var(--u)*5);line-height:1.7}
.l-form__agree{text-align:center;margin-top:calc(var(--u)*26)}
.l-form__agree p{font-family:var(--sans);font-size:calc(var(--u)*7.4);color:#555;line-height:1.9;margin-bottom:calc(var(--u)*12)}
.l-form__agree a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.l-form__submit{text-align:center;margin-top:calc(var(--u)*22)}
.l-form__submit .c-btn,.l-form__submit input[type=submit]{min-width:calc(var(--u)*240);height:calc(var(--u)*38);font-size:calc(var(--u)*10);cursor:pointer;border:1.5px solid var(--red);margin:0}
.l-contact-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(var(--u)*12);margin-bottom:calc(var(--u)*34)}
.l-contact-guide a{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u)*8);border:1px solid #efeaea;border-radius:calc(var(--u)*3);padding:calc(var(--u)*14) calc(var(--u)*16);background:#fff;transition:.25s}
.l-contact-guide a:hover{border-color:var(--red);box-shadow:0 4px 16px rgba(0,0,0,.06)}
.l-contact-guide b{display:block;font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*9.6)}
.l-contact-guide small{display:block;font-family:var(--sans);color:#888;font-size:calc(var(--u)*6.8);margin-top:calc(var(--u)*3)}
.l-contact-guide .c-arrow{color:var(--red)}

/* venue / access */
.l-venue{display:grid;grid-template-columns:calc(var(--u)*250) 1fr;gap:calc(var(--u)*30);align-items:start}
.l-venue+.l-venue{margin-top:calc(var(--u)*34);padding-top:calc(var(--u)*34);border-top:1px solid var(--line)}
.l-venue__img{border-radius:calc(var(--u)*3);overflow:hidden;aspect-ratio:250/170}
.l-venue__img img{width:100%;height:100%;object-fit:cover}
.l-venue__en{font-family:var(--serif);font-weight:700;color:var(--red);font-size:calc(var(--u)*7.4);letter-spacing:.14em}
.l-venue__name{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:calc(var(--u)*14);line-height:1.45;margin-top:calc(var(--u)*5)}
.l-venue .l-table{margin-top:calc(var(--u)*14);border-top-width:1px}
.l-venue .l-table__row{grid-template-columns:calc(var(--u)*70) 1fr;padding:calc(var(--u)*9) 0}
.l-map{margin-top:calc(var(--u)*14);height:calc(var(--u)*110);border-radius:calc(var(--u)*3);background:#f6f1f1 url(../img/c/map.png) no-repeat right calc(var(--u)*20) center/auto 90%;display:flex;align-items:center;padding-left:calc(var(--u)*20);font-family:var(--sans);font-size:calc(var(--u)*7.2);color:#999;border:1px dashed #e0d6d6}
.l-map iframe{width:100%;height:100%;border:0}

/* fade for lower */
.l-page .js-fade{transform:translateY(18px)}

/* =========================================================
   SP
   ========================================================= */
@media (max-width:767px){
  .l-hero,.l-hero--sm{height:calc(var(--u)*210)}
  .l-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(255,255,255,.92) 0,rgba(255,255,255,.72) 42%,rgba(255,255,255,0) 72%)}
  .l-hero--dark::after{background:linear-gradient(90deg,rgba(11,11,13,.9) 0,rgba(11,11,13,.6) 45%,rgba(11,11,13,0) 75%)}
  .l-hero__img,.l-hero--dark .l-hero__img{width:100%;-webkit-mask-image:none;mask-image:none}
  .l-hero__img img{object-position:var(--pos-sp,var(--pos,right center))}
  .l-hero__body,.l-hero--sm .l-hero__body{padding:calc(var(--u)*62) 0 0 calc(var(--u)*24)}
  .l-hero__en{font-size:calc(var(--u)*11);gap:calc(var(--u)*8)}
  .l-hero__title{font-size:calc(var(--u)*32);margin-top:calc(var(--u)*12)}
  .l-hero__lead{font-size:calc(var(--u)*12.5);line-height:1.7;margin-top:calc(var(--u)*10);font-weight:700}
  .l-hero .c-petal{display:block}
  .c-breadcrumb ol{padding:calc(var(--u)*10) calc(var(--u)*24);font-size:calc(var(--u)*11);flex-wrap:nowrap;overflow:hidden}
  .c-breadcrumb [aria-current]{max-width:calc(var(--u)*240)}
  .c-breadcrumb li+li::before{width:calc(var(--u)*5);height:calc(var(--u)*5);margin:0 calc(var(--u)*10) 0 calc(var(--u)*7)}
  .l-sec{padding:calc(var(--u)*50) calc(var(--u)*24)}
  .l-head{margin-bottom:calc(var(--u)*24)}
  .l-head--row{display:block}
  .l-sec .c-label,.l-cta .c-label{font-size:calc(var(--u)*11.5)}
  .l-sec .c-heading,.l-cta .c-heading{font-size:calc(var(--u)*25);line-height:1.45;margin-top:calc(var(--u)*10);letter-spacing:.02em}
  .l-h3{font-size:calc(var(--u)*18)}
  .l-lead{font-size:calc(var(--u)*15);line-height:1.95;margin-top:calc(var(--u)*14)}
  .l-text,.l-text p{font-size:calc(var(--u)*14.5);line-height:1.95}
  .l-note{font-size:calc(var(--u)*12)}
  .l-btns{gap:calc(var(--u)*10);margin-top:calc(var(--u)*22)}
  .l-btns .c-btn,.l-sec .c-btn,.l-cta .c-btn{height:calc(var(--u)*46);font-size:calc(var(--u)*14);min-width:0;width:100%;padding:0 calc(var(--u)*16);border-radius:calc(var(--u)*4);margin-top:0}
  .l-btns--inline .c-btn{width:auto}
  .l-split,.l-split--rev{grid-template-columns:1fr;gap:calc(var(--u)*24)}
  .l-split--rev .l-split__img{order:0}
  .l-split__img{aspect-ratio:399/250;margin:0 calc(var(--u)*-24);border-radius:0}
  .l-split__img--fade{-webkit-mask-image:none;mask-image:none}
  .l-points,.l-points--4{grid-template-columns:1fr;gap:calc(var(--u)*12)}
  .l-point{padding:calc(var(--u)*20) calc(var(--u)*20) calc(var(--u)*20) calc(var(--u)*86);min-height:calc(var(--u)*96)}
  .l-point__num{position:absolute;left:calc(var(--u)*20);top:calc(var(--u)*22);font-size:calc(var(--u)*10)}
  .l-point__num b{font-size:calc(var(--u)*30)}
  .l-point__title{font-size:calc(var(--u)*17);margin-top:0}
  .l-point__text{font-size:calc(var(--u)*13.5);margin-top:calc(var(--u)*6)}
  .l-table__row{grid-template-columns:1fr;padding:calc(var(--u)*14) 0;gap:calc(var(--u)*4)}
  .l-table dt{font-size:calc(var(--u)*14);padding-left:0;color:var(--red)}
  .l-table dd{font-size:calc(var(--u)*14.5)}
  .c-kari{font-size:calc(var(--u)*10);padding:calc(var(--u)*2.5) calc(var(--u)*5)}
  .l-events{grid-template-columns:1fr;gap:calc(var(--u)*20)}
  .l-event{border-radius:calc(var(--u)*8)}
  .l-event__img{height:calc(var(--u)*170)}
  .l-event__step{font-size:calc(var(--u)*11);padding:calc(var(--u)*6) calc(var(--u)*14)}
  .l-event__body{padding:calc(var(--u)*20) calc(var(--u)*22) calc(var(--u)*24)}
  .l-event .p-dates__en{font-size:calc(var(--u)*11)}
  .l-event .p-dates__name{font-size:calc(var(--u)*17)}
  .l-event .p-dates__date{font-size:calc(var(--u)*34)}
  .l-event__place{font-size:calc(var(--u)*14);line-height:1.6;margin-top:calc(var(--u)*8)}
  .l-event__info{font-size:calc(var(--u)*13);margin-top:calc(var(--u)*14);padding-top:calc(var(--u)*12)}
  .l-event .l-event__info+.c-btn{margin-top:calc(var(--u)*18)}
  .l-route{grid-template-columns:1fr;gap:calc(var(--u)*22)}
  .l-route::before{left:calc(var(--u)*30);right:auto;top:calc(var(--u)*20);bottom:calc(var(--u)*40);width:1px;height:auto;background:repeating-linear-gradient(180deg,var(--red) 0 6px,transparent 6px 11px)}
  .l-route li{text-align:left;display:grid;grid-template-columns:calc(var(--u)*60) 1fr;column-gap:calc(var(--u)*16);align-items:center}
  .l-route__dot{grid-row:1/5;width:calc(var(--u)*60);height:calc(var(--u)*60);font-size:calc(var(--u)*18);align-self:start}
  .l-route__en{font-size:calc(var(--u)*10.5);margin-top:0}
  .l-route__name{font-size:calc(var(--u)*17)}
  .l-route__date{font-size:calc(var(--u)*14)}
  .l-route__text{font-size:calc(var(--u)*12.5)}
  .l-timeline li{grid-template-columns:calc(var(--u)*76) 1fr;gap:calc(var(--u)*12);padding:calc(var(--u)*14) 0}
  .l-timeline time{font-size:calc(var(--u)*17)}
  .l-timeline b{font-size:calc(var(--u)*15)}
  .l-timeline span{font-size:calc(var(--u)*12.5)}
  .l-flow,.l-flow--4{grid-template-columns:1fr;gap:calc(var(--u)*18)}
  .l-flow li{display:grid;grid-template-columns:calc(var(--u)*72) 1fr;column-gap:calc(var(--u)*14);padding:calc(var(--u)*18) calc(var(--u)*18)}
  .l-flow li:not(:last-child)::after{right:auto;left:50%;top:auto;bottom:calc(var(--u)*-13);width:calc(var(--u)*8);height:calc(var(--u)*8);transform:translateX(-50%) rotate(135deg)}
  .l-flow__step{grid-row:1/3;font-size:calc(var(--u)*10);border-right:1px solid var(--line);align-self:stretch;display:flex;flex-direction:column;justify-content:center}
  .l-flow__step b{display:block;font-size:calc(var(--u)*26);margin:calc(var(--u)*3) 0 0}
  .l-flow__title{font-size:calc(var(--u)*16);margin-top:0}
  .l-flow__text{font-size:calc(var(--u)*12.5);margin-top:calc(var(--u)*4)}
  .l-faq summary{font-size:calc(var(--u)*15);padding:calc(var(--u)*18) calc(var(--u)*34) calc(var(--u)*18) 0;gap:calc(var(--u)*12)}
  .l-faq summary::before,.l-faq__a::before{font-size:calc(var(--u)*20);width:calc(var(--u)*18)}
  .l-faq summary::after{width:calc(var(--u)*9);height:calc(var(--u)*9);right:calc(var(--u)*6)}
  .l-faq__a{font-size:calc(var(--u)*14);padding:0 calc(var(--u)*10) calc(var(--u)*20) 0}
  .l-cta{min-height:0;display:block}
  .l-cta__bg{position:relative;width:100%;height:calc(var(--u)*200);-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent)}
  .l-cta__body{padding:0 calc(var(--u)*24) calc(var(--u)*50);margin-top:calc(var(--u)*-40)}
  .l-cta .c-text{font-size:calc(var(--u)*14);line-height:1.85}
  .l-feature{grid-template-columns:1fr;border-radius:calc(var(--u)*6);margin:0 calc(var(--u)*-24);border-radius:0}
  .l-feature__img{min-height:calc(var(--u)*230)}
  .l-feature__body{padding:calc(var(--u)*24) calc(var(--u)*24) calc(var(--u)*34)}
  .l-feature__title{font-size:calc(var(--u)*22)}
  .l-feature__name{font-size:calc(var(--u)*12)}
  .l-feature__text{font-size:calc(var(--u)*14.5);line-height:1.95}
  .l-stories{grid-template-columns:1fr 1fr;gap:calc(var(--u)*26) calc(var(--u)*14)}
  .l-story__no{font-size:calc(var(--u)*10.5)}
  .l-story .c-tag{font-size:calc(var(--u)*9.5)}
  .l-story__title{font-size:calc(var(--u)*14.5);line-height:1.55}
  .l-story__name{font-size:calc(var(--u)*11.5)}
  .l-quote{font-size:calc(var(--u)*23);line-height:1.75}
  .l-msg{grid-template-columns:1fr;gap:calc(var(--u)*24)}
  .l-msg__photo{aspect-ratio:399/260;margin:0 calc(var(--u)*-24);border-radius:0}
  .l-msg__sign .p-message__role{font-size:calc(var(--u)*12)}
  .l-msg__sign .p-message__ja{font-size:calc(var(--u)*24)}
  .l-msg__sign .p-message__en{font-size:calc(var(--u)*13)}
  .l-tabs{gap:calc(var(--u)*8);margin-bottom:calc(var(--u)*16);flex-wrap:nowrap;overflow-x:auto;margin-right:calc(var(--u)*-24);padding-right:calc(var(--u)*24)}
  .l-tabs a{height:calc(var(--u)*34);padding:0 calc(var(--u)*18);font-size:calc(var(--u)*12.5);border-radius:calc(var(--u)*17);white-space:nowrap}
  .l-newslist{gap:0}
  .l-newslist .c-news{height:auto;min-height:calc(var(--u)*76);grid-template-columns:calc(var(--u)*112) 1fr calc(var(--u)*14);padding:calc(var(--u)*10) 0}
  .l-newslist .c-news img{height:calc(var(--u)*64)}
  .l-newslist .c-news__meta time{font-size:calc(var(--u)*11.5)}
  .l-newslist .c-tag{font-size:calc(var(--u)*9.5)}
  .l-newslist .c-news__title{font-size:calc(var(--u)*13.5);line-height:1.45}
  .c-pager{gap:calc(var(--u)*6);margin-top:calc(var(--u)*30)}
  .c-pager a,.c-pager span{min-width:calc(var(--u)*36);height:calc(var(--u)*36);font-size:calc(var(--u)*13)}
  .c-pager .next,.c-pager .prev{font-size:calc(var(--u)*12.5)}
  .l-article__meta time{font-size:calc(var(--u)*13)}
  .l-article__meta .c-tag{font-size:calc(var(--u)*10.5)}
  .l-article__title{font-size:calc(var(--u)*23);margin-top:calc(var(--u)*12)}
  .l-article__eye{margin:calc(var(--u)*20) calc(var(--u)*-24) 0;border-radius:0}
  .l-article__body{font-size:calc(var(--u)*15);line-height:2}
  .l-article__body h2{font-size:calc(var(--u)*19)}
  .l-article__body h3{font-size:calc(var(--u)*16.5)}
  .l-article__body th{width:34%;white-space:normal}
  .l-article__share{font-size:calc(var(--u)*12)}
  .l-article__share .c-sns svg{width:calc(var(--u)*22);height:calc(var(--u)*22)}
  .l-postnav{grid-template-columns:1fr 1fr;gap:calc(var(--u)*14)}
  .l-postnav a{font-size:calc(var(--u)*12.5)}
  .l-postnav__back{grid-column:1/-1;grid-row:2;text-align:center}
  .l-postnav .c-btn{width:100%}
  .l-form__row{grid-template-columns:1fr;gap:calc(var(--u)*8);padding:calc(var(--u)*16) 0}
  .l-form__label{font-size:calc(var(--u)*14.5);padding-top:0}
  .c-req,.c-any{font-size:calc(var(--u)*10);padding:calc(var(--u)*3.5) calc(var(--u)*6)}
  .l-form input[type=text],.l-form input[type=email],.l-form input[type=tel],.l-form select,.l-form textarea{font-size:16px;padding:calc(var(--u)*12) calc(var(--u)*14)}
  .l-form textarea{min-height:calc(var(--u)*200)}
  .l-form label.l-check{font-size:calc(var(--u)*14.5);gap:calc(var(--u)*8)}
  .l-form input[type=radio],.l-form input[type=checkbox]{width:calc(var(--u)*17);height:calc(var(--u)*17)}
  .l-form .wpcf7-radio,.l-form .l-choices{display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--u)*12)}
  .l-form__hint{font-size:calc(var(--u)*12)}
  .l-form__agree p{font-size:calc(var(--u)*13);text-align:left}
  .l-form__submit .c-btn,.l-form__submit input[type=submit]{width:100%;min-width:0;height:calc(var(--u)*52);font-size:calc(var(--u)*15)}
  .l-contact-guide{grid-template-columns:1fr;gap:calc(var(--u)*10);margin-bottom:calc(var(--u)*30)}
  .l-contact-guide a{padding:calc(var(--u)*16) calc(var(--u)*18)}
  .l-contact-guide b{font-size:calc(var(--u)*15.5)}
  .l-contact-guide small{font-size:calc(var(--u)*12)}
  .l-venue{grid-template-columns:1fr;gap:calc(var(--u)*18)}
  .l-venue__en{font-size:calc(var(--u)*11)}
  .l-venue__name{font-size:calc(var(--u)*21)}
  .l-venue .l-table__row{grid-template-columns:calc(var(--u)*80) 1fr;gap:calc(var(--u)*8)}
  .l-venue .l-table dt{color:var(--ink);font-size:calc(var(--u)*13.5)}
  .l-venue .l-table dd{font-size:calc(var(--u)*13.5)}
  .l-map{height:calc(var(--u)*190);font-size:calc(var(--u)*12)}
}

/* ---- QA fixes ---- */
.l-route,.l-flow,.l-timeline,.l-points,.l-stories,.l-newslist{list-style:none;margin-left:0;padding-left:0}
.l-route li:nth-child(3) .l-route__dot{background:#fff;color:var(--red)}
.l-route li:nth-child(2) .l-route__dot,.l-route li.is-main .l-route__dot{background:var(--red);color:#fff}
.l-cta .l-btns{flex-wrap:wrap}
.l-cta .c-btn--lg{min-width:calc(var(--u)*150);padding:0 calc(var(--u)*16)}

.u-nobr{white-space:nowrap}
