/* こもれび食堂｜スタイリッシュ（stylish）見本 */
:root{
  --c-base:#fff; --c-face:#f1f1ef; --c-ink:#141414; --c-sub:#5c5c5c; --c-line:#dcdcd8;
  --c-accent:#ff5b1f; --c-deep:#141414;
  --f-ja:"Noto Sans JP",system-ui,sans-serif; --f-en:"Inter Tight","Noto Sans JP",sans-serif;
  --ease:cubic-bezier(.4,0,.2,1); --ease-out:cubic-bezier(.16,1,.3,1);
  --sec:112px; --wrap:1200px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--c-base);color:var(--c-ink);font-family:var(--f-ja);font-weight:400;font-size:15px;line-height:1.7;letter-spacing:.02em;overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,p,li,dd,dt{word-break:auto-phrase;text-wrap:pretty}
h1,h2,h3{margin:0;font-weight:700;line-height:1.4}
p{margin:0}
.wrap{width:min(100% - 48px,var(--wrap));margin-inline:auto}
.sec{padding-block:var(--sec)}
.en{font-family:var(--f-en);font-weight:700;letter-spacing:-.03em}
:focus-visible{outline:3px solid var(--c-accent);outline-offset:3px}

.demo-bar{background:var(--c-ink);color:#fff;font-size:12px;text-align:center;padding:6px 16px;line-height:1.6}

/* ヘッダー */
.hd{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.hd__in{display:flex;align-items:center;gap:32px;height:72px}
.logo{display:flex;align-items:baseline;gap:12px;text-decoration:none;white-space:nowrap}
.logo b{font-family:var(--f-en);font-weight:700;font-size:22px;letter-spacing:-.03em}
.logo span{font-size:12px;font-weight:700}
.gnav{margin-left:auto;display:flex;gap:32px;font-size:14px;font-weight:700}
.gnav a{text-decoration:none;display:inline-flex;flex-direction:column;overflow:hidden;height:1.7em;line-height:1.7}
.gnav a span{transition:transform .4s var(--ease)}
.gnav a:hover span{transform:translateY(-100%)}
.gnav a[aria-current=page]{color:var(--c-accent)}

/* ボタン st-C-01 */
.btn{display:inline-flex;align-items:center;gap:14px;height:52px;padding:0 10px 0 26px;border-radius:999px;background:var(--c-ink);color:#fff;text-decoration:none;font-weight:700;font-size:14px;white-space:nowrap;border:0;cursor:pointer;font-family:inherit}
.btn__box{width:32px;height:32px;border-radius:8px;background:var(--c-accent);color:var(--c-ink);display:grid;place-items:center;overflow:hidden;flex:none}
.btn__box svg{width:14px;height:14px}
.btn:hover .btn__box svg{animation:through .45s var(--ease)}
@keyframes through{0%{transform:none}49%{transform:translateX(24px)}50%{transform:translateX(-24px)}100%{transform:none}}
.btn--line{background:transparent;color:var(--c-ink);box-shadow:inset 0 0 0 2px var(--c-ink)}
.btn--sm{height:44px;padding:0 6px 0 18px;font-size:13px}
.btn--sm .btn__box{width:30px;height:30px}
.menu-btn{display:none;width:44px;height:44px;border-radius:999px;border:0;background:var(--c-ink);cursor:pointer;place-items:center;padding:0}
.menu-btn span{display:block;width:16px;height:2px;background:#fff;position:relative;transition:background .2s}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0;width:16px;height:2px;background:#fff;transition:transform .3s var(--ease)}
.menu-btn span::before{top:-5px}.menu-btn span::after{top:5px}
.menu-open .menu-btn span{background:transparent}
.menu-open .menu-btn span::before{transform:translateY(5px) rotate(45deg)}
.menu-open .menu-btn span::after{transform:translateY(-5px) rotate(-45deg)}
.drawer{display:none}

/* ヒーロー st-H-02 */
.hero{position:relative;padding:24px 0 0;overflow-x:clip}
.hero__word{font-family:var(--f-en);font-weight:700;font-size:18.4vw;line-height:.82;letter-spacing:-.05em;color:var(--c-accent);margin:0;white-space:nowrap;text-align:center;overflow:hidden;padding-bottom:.04em}
.hero__word .ch{display:inline-block}
.hero__row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:end;margin-top:clamp(32px,3vw,56px);position:relative}
.hero__copy{padding-bottom:24px}
.hero__label{font-family:var(--f-en);font-size:14px;font-weight:600;letter-spacing:0;margin-bottom:20px}
.hero h1{font-size:clamp(28px,3.2vw,40px);font-weight:900;line-height:1.35;letter-spacing:.01em}
.line{display:block;overflow:hidden}
.line>span{display:block}
.hero__lead{margin-top:20px;color:var(--c-sub);max-width:26em}
.hero__actions{margin-top:32px;display:flex;gap:12px;flex-wrap:wrap}
.hero__photo{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:16/11;background:var(--c-face)}
.hero__photo img{width:100%;height:100%;object-fit:cover}
.hero__tag{position:absolute;left:20px;top:20px;background:#fff;border-radius:999px;padding:6px 14px 6px 8px;font-size:12px;font-weight:700;display:flex;align-items:center;gap:8px}
.hero__tag i{width:10px;height:10px;border-radius:50%;background:var(--c-accent);animation:blink 1.6s ease-in-out infinite}
@keyframes blink{50%{opacity:.25}}

/* 情報バー st-N-01 bar */
.bar{margin-top:40px;background:var(--c-ink);color:#fff}
.bar__in{display:flex;align-items:center;gap:40px;height:64px;font-size:14px;overflow-x:auto;scrollbar-width:none}
.bar__in::-webkit-scrollbar{display:none}
.bar__in b{font-family:var(--f-en);color:var(--c-accent);margin-right:10px;letter-spacing:0}
.bar__in span{white-space:nowrap}
.bar__in a{margin-left:auto;text-decoration:none;font-weight:700;white-space:nowrap}

/* 表示アニメ st-A-01 / A-x01 */
.js .rv{opacity:0;transform:translateY(60px)}
.rv.is-in{opacity:1;transform:none;transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}
.js .hero .ch{transform:translateY(105%)}
.js .hero .line>span{transform:translateY(calc(100% + 2px))}
.js .hero__photo{opacity:0;transform:translateY(80px)}
.hero.is-ready .ch{transform:none;transition:transform 1s var(--ease-out);transition-delay:calc(var(--i)*.05s)}
.hero.is-ready .line>span{transform:none;transition:transform 1.5s cubic-bezier(.19,1,.22,1);transition-delay:calc(.5s + var(--i)*.12s)}
.hero.is-ready .hero__photo{opacity:1;transform:none;transition:opacity 1s var(--ease-out) .45s,transform 1.2s var(--ease-out) .45s}
.zoom img{transform:scale(1.08);transition:transform 2.4s var(--ease-out)}
.zoom.is-in img,.hero.is-ready .zoom img{transform:scale(1)}

/* 見出し st-T-01 */
.ttl{margin-bottom:56px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.ttl__en{display:block;font-family:var(--f-en);font-weight:700;font-size:clamp(56px,7.5vw,96px);line-height:.95;letter-spacing:-.04em}
.ttl__ja{display:flex;align-items:center;gap:10px;margin-top:14px;font-weight:700;font-size:15px}
.ttl__ja::before{content:"";width:10px;height:10px;background:var(--c-accent)}
.ttl--white{color:#fff}

/* マーキー st-M-01 */
.mq{position:relative;overflow:hidden;padding:28px 0;border-block:1px solid var(--c-line)}
.mq__track{display:flex;width:max-content;animation:mq 40s linear infinite}
.mq__item{font-family:var(--f-en);font-weight:700;font-size:clamp(44px,8vw,120px);letter-spacing:-.04em;line-height:1;white-space:nowrap;padding-right:.4em;display:flex;align-items:center;gap:.4em}
.mq__item i{width:.32em;height:.32em;border-radius:50%;background:var(--c-accent);display:inline-block}
.mq.is-paused .mq__track,.mq.is-off .mq__track{animation-play-state:paused}
.mq__btn{position:absolute;right:16px;bottom:8px;height:32px;padding:0 14px;border-radius:999px;border:1px solid var(--c-line);background:#fff;font:inherit;font-size:12px;cursor:pointer}
@keyframes mq{to{transform:translateX(-50%)}}

/* おすすめ */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;list-style:none;margin:0;padding:0}
.card{display:block;text-decoration:none}
.card__ph{border-radius:16px;overflow:hidden;aspect-ratio:4/5;background:var(--c-face)}
.card__ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out)}
.card:hover .card__ph img{transform:scale(1.06)}
.card__b{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:18px 2px 0;border-bottom:2px solid var(--c-ink);padding-bottom:14px}
.card h3{font-size:20px;font-weight:900}
.card .pr{font-family:var(--f-en);font-weight:700;font-size:28px;letter-spacing:-.03em;color:var(--c-accent);white-space:nowrap}
.card p{margin-top:12px;font-size:14px;color:var(--c-sub)}
.cards--stagger li:nth-child(2){margin-top:64px}
.cards--stagger li:nth-child(3){margin-top:128px}

/* 写真固定＋文字スクロール st-S-01 */
.s01s{position:relative;background:var(--c-deep);color:#fff}
.s01s__bg{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.s01s__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s var(--ease)}
.s01s__bg img.is-on{opacity:1}
.s01s__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.66),rgba(0,0,0,.4))}
.s01s__body{position:relative;margin-top:-100vh;margin-top:-100svh;padding:18vh 0 26vh}
.s01s__step{min-height:62vh;display:flex;align-items:center}
.s01s__step p{font-size:clamp(20px,2.2vw,28px);font-weight:700;line-height:1.7;max-width:22em}
.s01s__step p small{display:block;font-size:15px;font-weight:400;margin-top:16px;opacity:.9;line-height:1.9}
.s01s .btn{background:#fff;color:var(--c-ink)}

/* 昼と夜のカード st-S-x01 */
.stack{display:grid;gap:0}
.sx{position:sticky;top:96px;border-radius:40px;padding:56px 56px 64px;min-height:380px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;align-items:center;margin-bottom:24px}
.sx:nth-child(2){top:120px}
.sx:nth-child(3){top:144px;margin-bottom:0}
.sx--a{background:var(--c-accent)}
.sx--b{background:var(--c-face)}
.sx--c{background:var(--c-ink);color:#fff}
.sx__en{font-family:var(--f-en);font-weight:700;font-size:clamp(56px,8vw,112px);line-height:.9;letter-spacing:-.05em}
.sx__time{font-family:var(--f-en);font-weight:700;font-size:28px;letter-spacing:-.02em;margin-top:16px}
.sx div>p:not([class]){font-size:15px;max-width:24em}
.sx h3{font-size:22px;font-weight:900;margin-bottom:12px}
.sx__tag{position:absolute;right:48px;top:-18px;background:var(--c-ink);color:#fff;font-weight:700;font-size:13px;border-radius:999px;padding:8px 18px;transform:rotate(-6deg)}
.sx--c .sx__tag{background:var(--c-accent);color:var(--c-ink)}

/* Instagram */
.ig{display:flex;align-items:center;gap:32px;flex-wrap:wrap;padding:40px 0;border-block:2px solid var(--c-ink)}
.ig__glyph{width:64px;height:64px;border-radius:16px;background:var(--c-ink);color:#fff;display:grid;place-items:center;flex:none}
.ig__glyph svg{width:30px;height:30px}
.ig__txt{flex:1 1 300px;min-width:0}
.ig__txt b{display:block;font-size:20px;font-weight:900}
.ig__txt span{font-family:var(--f-en);font-weight:600;letter-spacing:0;color:var(--c-sub)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none}
.chips li{border:1px solid var(--c-line);border-radius:999px;padding:3px 14px;font-size:13px}

/* CTA st-D-01（オレンジの全面） */
.cta{background:var(--c-accent);color:var(--c-ink);position:relative;overflow:hidden}
.cta--arc{border-radius:50% 50% 0 0/120px 120px 0 0}
.cta__big{font-family:var(--f-en);font-weight:700;font-size:clamp(64px,12vw,176px);line-height:.88;letter-spacing:-.05em}
.cta__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;margin-top:48px;align-items:end}
.cta__grid p{font-size:16px;font-weight:700;max-width:24em}
.cta__tel{font-family:var(--f-en);font-weight:700;font-size:clamp(32px,4vw,52px);letter-spacing:-.03em;text-decoration:none;display:block}
.cta__acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.cta .btn__box{background:#fff}

/* フッター */
.ft{background:var(--c-face);padding:96px 0 32px;overflow:hidden}
.ft__grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px}
.ft dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 24px;font-size:14px}
.ft dt{color:var(--c-sub)}
.ft dd{margin:0}
.ft__nav{display:grid;gap:6px;align-content:start;font-family:var(--f-ja);font-weight:700}
.ft__nav a{text-decoration:none;font-size:18px}
.ft__nav a:hover{color:var(--c-accent)}
.ft__word{font-family:var(--f-en);font-weight:700;font-size:18.4vw;line-height:.8;letter-spacing:-.05em;text-align:center;margin:72px 0 0;white-space:nowrap;color:var(--c-ink)}
.ft__copy{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--c-sub);margin-top:24px}

/* 右下の固定カード st-N-01 card */
.fcard{position:fixed;right:20px;bottom:20px;z-index:40;display:flex;align-items:center;gap:14px;background:var(--c-ink);color:#fff;border-radius:16px;padding:12px 12px 12px 18px;text-decoration:none;font-weight:700;font-size:14px;opacity:0;transform:translateY(24px);pointer-events:none;transition:opacity .4s var(--ease),transform .4s var(--ease)}
.fcard.is-show{opacity:1;transform:none;pointer-events:auto}
.fcard small{display:block;font-family:var(--f-en);color:var(--c-accent);font-size:12px;letter-spacing:0}

/* 下層 */
.phead{padding:64px 0 56px;border-bottom:2px solid var(--c-ink);margin-bottom:var(--sec)}
.crumb{font-size:12px;color:var(--c-sub);margin-bottom:24px}
.crumb a{text-decoration:none}
.phead__en{font-family:var(--f-en);font-weight:700;font-size:clamp(72px,13vw,184px);line-height:.85;letter-spacing:-.05em;overflow:hidden}
.phead__en span{display:inline-block}
.phead__row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 48px;flex-wrap:wrap;margin-top:24px}
.phead h1{font-size:24px;font-weight:900;display:flex;align-items:center;gap:12px}
.phead h1::before{content:"";width:12px;height:12px;background:var(--c-accent)}
.phead__row p{color:var(--c-sub);max-width:32em}
.js .phead__en span{transform:translateY(105%)}
.phead.is-ready .phead__en span{transform:none;transition:transform 1.2s var(--ease-out)}

.mgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 32px;list-style:none;margin:0;padding:0}
.mitem__ph{border-radius:16px;overflow:hidden;aspect-ratio:16/10;background:var(--c-face)}
.mitem__ph img{width:100%;height:100%;object-fit:cover}
.mitem__b{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding-top:20px}
.mitem h3{font-size:24px;font-weight:900}
.mitem .pr{font-family:var(--f-en);font-weight:700;font-size:32px;letter-spacing:-.03em;color:var(--c-accent);line-height:1.1}
.mitem p{grid-column:1/-1;color:var(--c-sub);font-size:14px;margin-top:4px}
.mitem .badge{display:inline-block;background:var(--c-ink);color:#fff;font-size:12px;font-weight:700;border-radius:999px;padding:2px 12px;margin-bottom:8px;transform:rotate(-4deg)}
.mcols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px}
.mcols h3{font-size:18px;font-weight:900;padding-bottom:12px;border-bottom:2px solid var(--c-ink)}
.mlist{list-style:none;margin:0;padding:0}
.mlist li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;border-bottom:1px solid var(--c-line)}
.mlist small{display:block;font-size:13px;color:var(--c-sub)}
.mlist .pr{font-family:var(--f-en);font-weight:700;font-size:20px;letter-spacing:-.02em;white-space:nowrap}
.note{margin-top:48px;background:var(--c-face);border-radius:16px;padding:24px 28px;font-size:14px}
.note ul{margin:0;padding-left:1.2em}

.story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px;align-items:center}
.story p+p{margin-top:1.2em}
.story__lead{font-size:clamp(22px,2.4vw,30px);font-weight:900;line-height:1.5;margin-bottom:28px}
.s02s{position:relative;min-height:560px}
.s02s__ph{position:absolute;overflow:hidden;background:var(--c-face);will-change:transform}
.s02s__ph img{width:100%;height:100%;object-fit:cover}
.s02s__ph--a{left:0;top:0;width:68%;aspect-ratio:4/3;border-radius:16px}
.s02s__ph--b{right:0;top:36%;width:44%;aspect-ratio:1;border-radius:50%}
.s02s__ph--c{left:12%;bottom:0;width:36%;aspect-ratio:3/4;border-radius:999px}
.promise{list-style:none;margin:0;padding:0;border-top:2px solid var(--c-ink)}
.promise li{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr) minmax(0,3fr);gap:40px;align-items:center;padding:40px 0;border-bottom:1px solid var(--c-line)}
.promise__key{font-family:var(--f-en);font-weight:700;font-size:clamp(40px,5vw,72px);line-height:.95;letter-spacing:-.04em;color:var(--c-accent)}
.promise h3{font-size:22px;font-weight:900;margin-bottom:8px}
.promise div>p{color:var(--c-sub);font-size:14px}
.promise__ph{border-radius:16px;overflow:hidden;aspect-ratio:4/3;background:var(--c-face)}
.promise__ph img{width:100%;height:100%;object-fit:cover}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:80px}
.stat{background:var(--c-face);border-radius:16px;padding:32px}
.stat b{display:block;font-family:var(--f-en);font-weight:700;font-size:clamp(64px,7vw,96px);line-height:.9;letter-spacing:-.05em}
.stat span{display:block;margin-top:12px;font-weight:700}

.acc{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:56px;align-items:start}
.map{border-radius:16px;overflow:hidden;aspect-ratio:4/3;background:var(--c-face)}
.map svg{width:100%;height:100%;display:block}
.map-note{font-size:12px;color:var(--c-sub);margin-top:8px}
.dtable{margin:0;border-top:2px solid var(--c-ink)}
.dtable div{display:grid;grid-template-columns:7em minmax(0,1fr);gap:16px;padding:16px 0;border-bottom:1px solid var(--c-line)}
.dtable dt{font-weight:700;font-size:14px}
.dtable dd{margin:0;min-width:0;overflow-wrap:anywhere}
.form{display:grid;gap:20px;max-width:880px}
.form label{display:block;font-weight:700;font-size:14px;margin-bottom:8px}
.form label em{font-style:normal;font-size:11px;background:var(--c-accent);padding:1px 8px;margin-left:8px;border-radius:4px;vertical-align:2px}
.form input,.form select,.form textarea{width:100%;font:inherit;font-size:16px;color:inherit;background:var(--c-face);border:0;border-bottom:2px solid var(--c-ink);border-radius:8px 8px 0 0;padding:14px 16px;transition:background .3s var(--ease)}
.form textarea{min-height:160px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 2px var(--c-accent)}
.form__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.form .btn{justify-self:start}
.form__msg{display:none;background:var(--c-face);border-left:4px solid var(--c-accent);padding:16px 20px;font-size:14px}
.form__msg.is-show{display:block}
.faq{border-top:2px solid var(--c-ink)}
.qa{border-bottom:1px solid var(--c-line)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;font-size:18px;font-weight:700}
.qa summary::-webkit-details-marker{display:none}
.qa summary i{flex:none;width:36px;height:36px;border-radius:8px;background:var(--c-ink);position:relative;transition:background .3s var(--ease)}
.qa summary i::before,.qa summary i::after{content:"";position:absolute;left:11px;top:17px;width:14px;height:2px;background:#fff;transition:transform .3s var(--ease)}
.qa summary i::after{transform:rotate(90deg)}
.qa[open] summary i{background:var(--c-accent)}
.qa[open] summary i::after{transform:rotate(0)}
.qa__a{padding:0 0 26px;color:var(--c-sub);max-width:46em}

.photo-empty{background:linear-gradient(135deg,var(--c-face),#e5e2dc)!important}

/* ---------- レスポンシブ ---------- */
@media (max-width:1023px){
  :root{--sec:96px}
  .gnav{display:none}
  .menu-btn{display:grid}
  .hd .btn{margin-left:auto}
  .drawer{display:block;position:fixed;inset:72px 0 auto 0;z-index:49;background:#fff;padding:16px 24px 32px;border-bottom:2px solid var(--c-ink);transform:translateY(-12px);opacity:0;visibility:hidden;transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s}
  .menu-open .drawer{opacity:1;visibility:visible;transform:none}
  .drawer a{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--c-line);text-decoration:none;font-weight:900;font-size:18px}
  .drawer a small{font-family:var(--f-en);font-weight:700;color:var(--c-accent);font-size:13px;letter-spacing:0}
  .hero__row{grid-template-columns:minmax(0,1fr);gap:32px;margin-top:24px}
  .hero__photo{order:-1}
  .hero__copy{padding-bottom:0}
  .cards--stagger li:nth-child(n){margin-top:0}
  .sx{grid-template-columns:minmax(0,1fr);gap:20px;padding:44px 36px 48px}
  .promise li{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .promise__ph{grid-column:2;grid-row:1/3}
}
@media (max-width:767px){
  :root{--sec:72px}
  body{font-size:14px}
  .wrap{width:min(100% - 40px,var(--wrap))}
  .hd__in{height:60px;gap:10px}
  .drawer{inset:60px 0 auto 0}
  .logo b{font-size:19px}
  .logo span{display:none}
  .hd .btn{height:40px;padding:0 4px 0 14px;font-size:12px;gap:8px}
  .hd .btn .btn__box{width:30px;height:30px}
  .hero{padding-top:16px}
  .hero__word{font-size:18vw}
  .hero__row{margin-top:20px}
  .hero__photo{aspect-ratio:4/3}
  .bar__in{gap:24px;height:56px;font-size:13px}
  .cards{grid-template-columns:minmax(0,1fr);gap:40px}
  .card__ph{aspect-ratio:4/3}
  .ttl{margin-bottom:36px}
  .s01s__step{min-height:70vh}
  .sx{top:76px;border-radius:28px;padding:36px 24px 40px;min-height:0}
  .sx:nth-child(2){top:92px}
  .sx:nth-child(3){top:108px}
  .sx__tag{right:20px}
  .sx__time{font-size:22px}
  .ig{gap:18px}
  .cta--arc{border-radius:50% 50% 0 0/40px 40px 0 0}
  .cta__grid,.ft__grid,.story,.acc,.mcols,.mgrid,.form__row{grid-template-columns:minmax(0,1fr);gap:32px}
  .ft{padding-top:64px}
  .ft__word{margin-top:48px}
  .fcard{right:12px;bottom:12px;padding:10px 10px 10px 14px;font-size:13px}
  .phead{padding:40px 0 36px}
  .phead__en{font-size:20vw}
  .s02s{min-height:380px}
  .s02s__ph--a{width:70%}.s02s__ph--b{width:42%;top:30%}.s02s__ph--c{width:32%;left:6%}
  .promise li{grid-template-columns:minmax(0,1fr);gap:16px;padding:32px 0}
  .promise__ph{grid-column:auto;grid-row:auto}
  .stats{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:48px}
  .stat{display:flex;align-items:baseline;gap:16px;padding:22px 24px}
  .stat b{font-size:56px}
  .stat span{margin-top:0}
  .dtable div{grid-template-columns:minmax(0,1fr);gap:2px}
  .qa summary{font-size:16px;padding:20px 0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv,.js .hero .ch,.js .hero .line>span,.js .hero__photo,.js .phead__en span{opacity:1!important;transform:none!important}
  .zoom img{transform:none!important}
  .s02s__ph{transform:none!important}
}
