/* リハビリデイ ひなた（制作の見本）
   色：朝の光のクリームの地・こげ茶の字・ひなたの黄・若葉・あたたかい橙。
   字：Zen Maru Gothic（500・700）／数字と欧文は Quicksand。端末の字を控えに書いてある。
   しるし：日が昇る（始まりの幕／「午前の3時間」の弧／見学の節の大きな日）。 */
:root{
  --bg:#FFF8EC; --surface:#FCEFD6; --card:#FFFDF8; --pale:#FDF1D3;
  --ink:#4A3B2A; --mute:#7A6A55; --line:rgba(74,59,42,.13); --line2:rgba(74,59,42,.28);
  --sun:#F2B33D; --sun-soft:#FBE2A0;
  --leaf:#7FA65A; --leaf-mid:#B7D39A; --leaf-soft:#E8F0DA; --leaf-deep:#4C6B33;
  --warm:#E0764A; --warm-soft:#F9DECF;
  --ff:"Quicksand","Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Sans","Yu Gothic",sans-serif;
  --ff-num:"Quicksand","Zen Maru Gothic","Hiragino Sans",sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1); --out:cubic-bezier(.16,1,.3,1); --spring:cubic-bezier(.34,1.45,.64,1);
  --g:clamp(20px,5.6vw,80px);
  --dh:clamp(36px,9vw,104px);
  --hd:64px;
  --sh:0 18px 40px -26px rgba(74,59,42,.45);
  --chk:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.2 6.3l2.5 2.4 5-5.2' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;font-size:100%;scroll-behavior:smooth;scroll-padding-top:76px;background:var(--bg)}
html.is-big{font-size:120%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--ff);font-weight:500;font-size:1rem;line-height:2;letter-spacing:.04em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-break:strict;overflow-wrap:anywhere;word-break:normal;word-break:auto-phrase}
/* 言葉の途中で折らないよう、短い文は <span class="ib"> で区切ってある（auto-phrase は対応する端末だけ） */
.h2,.h3,.say,.worry__list p,.bubble,.hero__sub,.am__h,.door__name,.faq summary .t,.cta__b b{font-feature-settings:"palt"}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0;padding:0}
h1,h2,h3,h4,b{font-weight:700}
ul,ol{list-style:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;letter-spacing:inherit}
table{border-collapse:collapse}
::selection{background:var(--sun-soft);color:var(--ink)}
:focus-visible{outline:2.5px solid var(--warm);outline-offset:3px}
.ib{display:inline-block}
.n{font-family:var(--ff-num);font-weight:600;letter-spacing:.02em}

/* ---------- 共通の部品 ---------- */
main{position:relative;display:block}
.sec{position:relative;padding:100px 0 108px;overflow-x:hidden}
@supports (overflow:clip){.sec{overflow-x:clip}}
.sec__in{position:relative;z-index:1;width:100%;max-width:1200px;margin:0 auto;padding:0 var(--g)}
/* 節の境目：日が昇る丘のような、ゆるい曲線 */
.dome{margin-top:calc(var(--dh) * -1);padding-top:calc(var(--dh) + 64px);border-radius:50% 50% 0 0 / var(--dh) var(--dh) 0 0}
.lbl{display:inline-flex;align-items:center;gap:10px;margin-bottom:18px;padding:6px 16px 6px 12px;border-radius:999px;background:var(--card);box-shadow:inset 0 0 0 1.5px var(--line);font-size:.8125rem;font-weight:700;letter-spacing:.14em;line-height:1.5}
.lbl::before{content:"";flex:none;width:18px;height:9px;border-radius:18px 18px 0 0;background:var(--sun);box-shadow:0 1.5px 0 var(--ink)}
.h2{font-size:1.75rem;line-height:1.55;letter-spacing:.06em;text-wrap:balance}
.h3{font-size:1.25rem;line-height:1.6;letter-spacing:.05em;text-wrap:balance}
.h3 small{display:block;margin-top:2px;font-size:.8125rem;font-weight:500;letter-spacing:.04em;color:var(--mute);line-height:1.7}
.body{margin-top:20px;line-height:2.05;text-wrap:pretty}
.fine,.note{font-size:.8125rem;line-height:1.85;color:var(--mute)}

/* ボタン：黄色の面に、白い丸の矢印 */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-height:60px;padding:0 9px 0 28px;border-radius:999px;background:var(--sun);color:var(--ink);font-size:1.0625rem;font-weight:700;letter-spacing:.08em;line-height:1.4;box-shadow:0 14px 26px -16px rgba(196,104,36,.8),inset 0 -3px 0 rgba(74,59,42,.12);transition:transform .45s var(--out),box-shadow .45s}
.btn i,.cta__b i{position:relative;flex:none;display:block;width:42px;height:42px;border-radius:50%;background:var(--card)}
.btn i::before,.cta__b i::before{content:"";position:absolute;left:13px;top:20px;width:15px;height:2.2px;border-radius:2px;background:var(--ink)}
.btn i::after,.cta__b i::after{content:"";position:absolute;left:19.5px;top:16px;width:8px;height:8px;border-top:2.2px solid var(--ink);border-right:2.2px solid var(--ink);border-radius:1px;transform:rotate(45deg)}
.btn:hover{transform:translateY(-2px);box-shadow:0 18px 30px -16px rgba(196,104,36,.85),inset 0 -3px 0 rgba(74,59,42,.12)}
.btn--leaf{background:var(--leaf-mid);box-shadow:0 14px 26px -16px rgba(76,107,51,.75),inset 0 -3px 0 rgba(74,59,42,.1)}

/* 写真：円・アーチの窓・やわらかい形で切る */
.ph{position:relative;margin:0}
.ph__z{display:block;position:relative;overflow:hidden;background:var(--surface);isolation:isolate}
.ph__z img{position:absolute;left:0;top:-7%;width:100%;height:114%;object-fit:cover;object-position:var(--op,50% 50%);will-change:transform}
.ph--circle .ph__z{aspect-ratio:1/1;border-radius:50%}
.ph--arch .ph__z{aspect-ratio:3/4;border-radius:50% 50% 30px 30px / 37.5% 37.5% 30px 30px}
.ph--blob .ph__z{aspect-ratio:4/5;border-radius:58% 42% 47% 53% / 44% 50% 50% 56%;animation:blob 16s ease-in-out infinite alternate}
@keyframes blob{to{border-radius:46% 54% 56% 44% / 54% 44% 56% 46%}}
.ph figcaption{margin-top:14px;font-size:.8125rem;line-height:1.8;color:var(--mute)}

/* 出てくる動き（プログラムが動く時だけ）：字は下から、写真は下から日が差すように丸く */
html.js [data-r=""]{opacity:0;transform:translateY(24px);transition:opacity 1s var(--ease) var(--d,0s),transform 1.3s var(--out) var(--d,0s)}
html.js [data-r=""].is-in{opacity:1;transform:none}
html.js .ph[data-r="img"] .ph__z{clip-path:circle(0% at 50% 100%);transition:clip-path 1.8s var(--out) var(--d,0s)}
html.js .ph[data-r="img"].is-in .ph__z{clip-path:circle(142% at 50% 100%)}
html.js .ph[data-r="img"] img{scale:1.18;transition:scale 2.4s var(--out) var(--d,0s)}
html.js .ph[data-r="img"].is-in img{scale:1}
html.js .ph[data-r="img"] figcaption{opacity:0;transition:opacity 1s var(--ease) .9s}
html.js .ph[data-r="img"].is-in figcaption{opacity:1}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- 始まりの幕：下から朝日が昇り、その円が広がって写真になる ---------- */
.dawn{display:none}
html.js .dawn{display:block;position:fixed;inset:0;z-index:200;overflow:hidden;background:var(--bg);pointer-events:none;--cy:46%;--sun:clamp(120px,34vmin,230px);animation:dawnSafe .1s linear 6s forwards}
html.js.is-loaded .dawn{visibility:hidden;transition:visibility 0s 1.15s}
@keyframes dawnSafe{to{opacity:0;visibility:hidden}}
.dawn__photo{position:absolute;inset:0;opacity:0;clip-path:circle(calc(var(--sun) / 2) at 50% var(--cy))}
.dawn__photo picture,.dawn__photo img{display:block;width:100%;height:100%}
html.js.is-loaded .dawn__photo{opacity:1;clip-path:circle(78vmax at 50% var(--cy));transition:clip-path 1.1s cubic-bezier(.62,0,.3,1)}
.dawn__rise{position:absolute;left:50%;top:var(--cy);width:var(--sun);height:var(--sun);margin:calc(var(--sun) / -2) 0 0 calc(var(--sun) / -2);animation:sunUp 1.25s cubic-bezier(.22,.8,.3,1) .05s backwards}
@keyframes sunUp{from{transform:translateY(64vh)}}
.dawn__sun{width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 50% 36%,#FFDA7C 0%,#F7C254 50%,#F2B33D 100%);box-shadow:0 0 0 16px rgba(242,179,61,.16),0 0 0 40px rgba(242,179,61,.07),0 26px 60px -12px rgba(224,118,74,.45)}
html.js.is-loaded .dawn__sun{opacity:0;transform:scale(1.4);transition:opacity .7s ease .2s,transform 1.1s cubic-bezier(.62,0,.3,1)}
.dawn__name{position:absolute;left:0;right:0;top:calc(var(--cy) + var(--sun) / 2 + 34px);padding-left:.24em;text-align:center;font-size:20px;font-weight:700;letter-spacing:.24em;line-height:1.6;animation:fadeUp .9s var(--ease) .55s backwards}
.dawn__name small{display:block;margin-top:6px;font-size:13px;font-weight:500;letter-spacing:.14em;color:var(--mute)}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}}
html.js.is-loaded .dawn__name{opacity:0;transition:opacity .35s}

/* ---------- 上の帯 ---------- */
.hd{position:fixed;z-index:220;top:0;left:0;right:0;display:flex;align-items:center;gap:10px;height:var(--hd);padding:0 max(14px,calc(var(--g) - 4px));transition:transform .6s var(--ease),background-color .45s,box-shadow .45s}
html.js .hd{opacity:0;transition:opacity 1s var(--ease) 1.05s,transform .6s var(--ease),background-color .45s,box-shadow .45s}
html.js.is-loaded .hd{opacity:1}
.hd.is-solid{background:rgba(255,248,236,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line)}
.hd.is-hide{transform:translateY(-104%)}
.hd__logo{display:flex;align-items:center;gap:7px;min-height:44px;margin-right:auto}
.mark{flex:none;width:38px;height:26px;overflow:visible}
.mark__sun{fill:var(--sun)}
.mark__ray,.mark__line{fill:none;stroke:var(--ink);stroke-width:2.2;stroke-linecap:round}
.hd__name{display:flex;flex-direction:column;line-height:1.05}
.hd__name small{font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--mute)}
.hd__name b{margin-top:3px;font-size:21px;letter-spacing:.16em}
.hd__nav,.hd__cta{display:none}
.fs{display:flex;align-items:center;gap:7px}
.fs__lbl{font-size:12px;font-weight:700;letter-spacing:.04em;line-height:1.3;color:var(--mute);white-space:nowrap}
.fs__sw{display:flex;border-radius:999px;background:var(--card);box-shadow:inset 0 0 0 1.5px var(--line2)}
.fs button{height:44px;padding:0 11px;border-radius:999px;font-size:14px;font-weight:700;letter-spacing:.04em;line-height:1;color:var(--mute);transition:background-color .35s,color .35s}
.fs button[data-fs="big"]{font-size:16px}
.fs button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}

/* ---------- 1. 最初の画面 ---------- */
.hero{position:relative;--hill:calc(var(--dh) + 34px)}
.hero__stage{position:relative;height:100vh;height:100svh;min-height:600px;overflow:hidden;background:var(--surface)}
.hero__media{position:absolute;inset:0;will-change:transform}
.hero__media picture,.hero-img{display:block;width:100%;height:100%}
.hero-img{object-fit:cover;object-position:50% 72%}
html.js .hero-img{scale:1.1;transition:scale 3s var(--out) .1s}
html.js.is-loaded .hero-img{scale:1}
.hero__stage::after{content:"";position:absolute;z-index:1;left:-12%;right:-12%;bottom:-2px;height:calc(var(--hill) + 2px);background:var(--bg);border-radius:50% 50% 0 0 / 100% 100% 0 0}
html.js .hero__stage::after{transform:translateY(102%);transition:transform 1.4s var(--out) 1.1s}
html.js.is-loaded .hero__stage::after{transform:none}
.hero__txt{position:absolute;z-index:205;left:var(--g);right:var(--g);top:calc(var(--hd) + 3.2vh)}
.hero__for{font-size:.9375rem;font-weight:700;letter-spacing:.08em;line-height:1.75}
.hero__ttl{margin-top:12px;font-size:min(9vw,2.5rem);line-height:1.45;letter-spacing:.04em}
.hl{display:block;overflow:hidden;padding-bottom:.06em}
.hl>span{display:block;white-space:nowrap}
.n3{position:relative;z-index:0;display:inline-block;margin:0 .07em;font-family:var(--ff-num);font-weight:700;font-size:1.2em;line-height:1}
.n3::before{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:1.12em;height:1.12em;margin:-.58em 0 0 -.56em;border-radius:50%;background:var(--sun)}
.hero__sub{margin-top:14px;font-size:1.0625rem;font-weight:700;line-height:1.85;letter-spacing:.06em}
.hero__act{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:22px}
.hero__cm{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:.9375rem;font-weight:700;letter-spacing:.04em;line-height:1.5;padding:0 16px 0 12px;margin-left:-12px;border-radius:999px;background:rgba(255,248,236,.9)}
.hero__cm span{background:linear-gradient(var(--leaf),var(--leaf)) no-repeat 0 100% / 100% 2px;padding-bottom:2px}
.hero__cm::before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:var(--leaf)}
html.js .hero__for,html.js .hero__sub,html.js .hero__act{opacity:0;transform:translateY(14px);transition:opacity 1s var(--ease),transform 1.2s var(--out)}
html.js.is-loaded .hero__for{opacity:1;transform:none;transition-delay:.35s}
html.js.is-loaded .hero__sub{opacity:1;transform:none;transition-delay:1s}
html.js.is-loaded .hero__act{opacity:1;transform:none;transition-delay:1.2s}
html.js .hl>span{transform:translateY(106%);transition:transform 1.3s var(--out)}
html.js.is-loaded .hl>span{transform:none}
html.js.is-loaded .hl:nth-child(1)>span{transition-delay:.5s}
html.js.is-loaded .hl:nth-child(2)>span{transition-delay:.68s}
html.js .n3::before{transform:scale(0);transition:transform 1s var(--spring)}
html.js.is-loaded .n3::before{transform:none;transition-delay:1.15s}
.hero__facts{position:relative;z-index:5;display:flex;justify-content:center;margin:calc((var(--fc) + var(--hill) - 8px) * -1) auto 0;padding:0 var(--g);--fc:min(7em,29vw)}
.hero__facts li{display:flex;flex-direction:column;align-items:center;justify-content:center;width:var(--fc);height:var(--fc);margin:0 -4px;border-radius:50%;text-align:center;font-size:.9375rem;font-weight:700;line-height:1.4;letter-spacing:.04em;box-shadow:var(--sh)}
.hero__facts li:nth-child(1){background:var(--sun)}
.hero__facts li:nth-child(2){background:var(--card)}
.hero__facts li:nth-child(3){background:var(--leaf-mid)}
.hero__facts li:nth-child(1) .n{font-size:1.06em;line-height:1.3}
.hero__facts li:nth-child(2) .n{font-size:1.5em;line-height:1;margin-right:.06em}
html.js .hero__facts li{opacity:0;transform:translateY(34px) scale(.6);transition:opacity .6s var(--ease),transform 1.1s var(--spring)}
html.js.is-loaded .hero__facts li{opacity:1;transform:none}
html.js.is-loaded .hero__facts li:nth-child(1){transition-delay:1.3s}
html.js.is-loaded .hero__facts li:nth-child(2){transition-delay:1.42s}
html.js.is-loaded .hero__facts li:nth-child(3){transition-delay:1.54s}

/* ---------- 2. こんな様子が ---------- */
.worry{padding-top:68px}
.worry__ph{width:66%;margin:26px calc(var(--g) * -1) 0 auto}
.worry__list{position:relative;z-index:2;display:grid;gap:16px;margin-top:-46px}
.worry__list li{width:94%;padding:18px 20px 20px;border-radius:26px;background:var(--card);box-shadow:var(--sh)}
.worry__list li:nth-child(2){margin-left:auto}
.worry__list small{display:inline-block;padding:1px 12px;border-radius:999px;background:var(--surface);font-size:.8125rem;font-weight:700;letter-spacing:.08em;line-height:1.8;color:var(--mute)}
.worry__list p{margin-top:8px;font-size:1.0625rem;line-height:1.9;letter-spacing:.03em}
.worry__say{margin-top:76px;text-align:center}
.say__s{font-size:1rem;line-height:1.9;color:var(--mute)}
.say{margin-top:14px;font-size:1.625rem;font-weight:700;line-height:1.8;letter-spacing:.06em}
.mk{background:linear-gradient(transparent 58%,var(--sun-soft) 58%,var(--sun-soft) 90%,transparent 90%) no-repeat 0 0 / 100% 100%}
html.js .mk{background-size:0% 100%;transition:background-size 1.1s var(--out) .55s}
html.js .mk--2{transition-delay:.95s}
html.js .is-in .mk{background-size:100% 100%}
.trail{width:96px;height:auto;margin:34px auto 0;overflow:visible}
.trail .fp{fill:var(--mute);opacity:.45}
html.js .trail .fp{opacity:0;transition:opacity .5s ease calc(var(--i) * .2s + .3s)}
html.js .trail.is-in .fp{opacity:.45}

/* ---------- 3. 決めていること ---------- */
.rules{background:var(--surface)}
.rule{position:relative}
.rule--am{margin-top:40px}
.disc{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:min(62vw,250px);aspect-ratio:1;border-radius:50%;text-align:center;line-height:1.3;--ray:var(--sun)}
.disc::before{content:"";position:absolute;inset:-17px;border-radius:50%;background:repeating-conic-gradient(var(--ray) 0deg 1.4deg,transparent 1.4deg 7.5deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 9px),#000 calc(100% - 8px));mask:radial-gradient(farthest-side,transparent calc(100% - 9px),#000 calc(100% - 8px));opacity:.75;animation:spin 70s linear infinite}
.disc__k{font-size:1.0625rem;font-weight:700;letter-spacing:.12em}
.disc__n{margin-top:6px;font-size:1.625rem;font-weight:700;letter-spacing:.04em}
.disc__n i{font-style:normal;margin:0 .06em}
.disc--sun{background:radial-gradient(circle at 50% 36%,#FFD978,var(--sun) 72%);box-shadow:0 26px 50px -24px rgba(196,104,36,.7)}
.disc--leaf{--ray:var(--leaf);background:var(--leaf-soft);box-shadow:inset 0 0 0 2px rgba(127,166,90,.35)}
.disc--warm{--ray:var(--warm);background:var(--warm-soft);box-shadow:inset 0 0 0 2px rgba(224,118,74,.3)}
.disc--leaf .disc__n{display:flex;align-items:baseline;gap:2px;margin-top:0}
.disc--leaf .disc__n .n{font-size:2.9em;font-weight:700;line-height:1;letter-spacing:0}
.disc--leaf .disc__n small{font-size:.66em}
.disc--warm .disc__n{font-size:1.75rem}
html.js [data-r="disc"]{opacity:0;transform:scale(.55) rotate(-24deg);transition:opacity .7s var(--ease) var(--d,0s),transform 1.25s var(--spring) var(--d,0s)}
html.js [data-r="disc"].is-in{opacity:1;transform:none}
.rule__txt{margin-top:30px}
.rule .h3{margin-top:28px}
.rule__txt .h3{margin-top:0}
.rule__p{margin-top:12px;line-height:2.05}
.rule__p b{display:block;margin-bottom:6px;font-size:1.125rem}
.nai{display:grid;grid-template-columns:repeat(2,max-content);gap:4px 26px;margin-top:20px}
.nai li{position:relative;padding:0 4px;font-size:1.375rem;font-weight:700;letter-spacing:.06em;line-height:1.75;color:var(--mute)}
.nai svg{position:absolute;left:-7%;top:calc(50% - 8px);width:114%;height:18px;overflow:visible;pointer-events:none}
.nai path{fill:none;stroke:var(--warm);stroke-width:3.2;stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:0}
html.js .nai path{stroke-dashoffset:1;transition:stroke-dashoffset .75s var(--ease) calc(.3s + var(--i) * .28s)}
html.js .nai.is-in path{stroke-dashoffset:0}
.rules__two{display:grid;gap:72px;margin-top:76px}
.rule--ten .disc{margin-left:auto}
.rules__fine{margin-top:54px}
/* 記録の紙（見本） */
.rec{position:relative;width:min(100%,350px);margin:34px 0 0 auto;padding:24px 20px 16px;border-radius:18px;background:#FFFEFA;box-shadow:0 1px 0 rgba(74,59,42,.06),0 26px 46px -24px rgba(74,59,42,.5);transform:rotate(1.4deg)}
.rec::before{content:"";position:absolute;left:50%;top:-11px;width:76px;height:22px;margin-left:-38px;border-radius:3px;background:rgba(242,179,61,.5);transform:rotate(-3deg)}
.rec__cap{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;border-bottom:2px solid var(--ink)}
.rec__cap b{font-size:1.0625rem;letter-spacing:.12em}
.rec__cap span{padding:0 10px;border-radius:999px;background:var(--warm-soft);font-size:.8125rem;font-weight:700;line-height:1.8;color:#8A3E1C}
.rec__goal{margin-top:12px;font-size:.9375rem;font-weight:700;line-height:1.7}
.rec__goal small{display:inline-block;margin-right:8px;padding:0 9px;border-radius:7px;background:var(--leaf-soft);font-size:.8125rem;color:var(--leaf-deep)}
.rec__tbl{width:100%;margin-top:8px;font-size:.875rem;line-height:1.55}
.rec__tbl th,.rec__tbl td{padding:9px 0;border-bottom:1px dashed var(--line2);text-align:left;font-weight:500}
.rec__tbl thead th{font-size:.8125rem;font-weight:700;color:var(--mute)}
.rec__tbl thead th+th,.rec__tbl td{padding-left:8px;text-align:right;white-space:nowrap}
.rec__tbl td .n{font-size:1.125rem;font-weight:700}
.rec__note{margin-top:10px;font-size:.8125rem;line-height:1.7;color:var(--mute)}
html.js .rec[data-r="card"]{opacity:0;transform:translateY(40px) rotate(-5deg);transition:opacity .9s var(--ease) var(--d,0s),transform 1.4s var(--out) var(--d,0s)}
html.js .rec[data-r="card"].is-in{opacity:1;transform:rotate(1.4deg)}

/* ---------- 4. 午前の3時間 ---------- */
.am{position:relative;margin-top:calc(var(--dh) * -1);padding-top:calc(var(--dh) + 64px);background:var(--bg);border-radius:50% 50% 0 0 / var(--dh) var(--dh) 0 0;--S:min(90vw,43vh,390px)}
@supports (height:1svh){.am{--S:min(90vw,43svh,390px)}}
html.is-big .am{--S:min(84vw,37vh,360px)}
@supports (height:1svh){html.is-big .am{--S:min(84vw,37svh,360px)}}
.am__hint{display:block;margin-top:4px;font-size:.875rem;color:var(--mute)}
.am__track{position:relative;margin-top:36px}
.am__pin{position:relative}
.am__sky,.am__clock,.am__chips,.am__tag{display:none}
.am.is-live .am__tag{display:inline-flex;align-items:center;gap:8px;margin-bottom:6px;font-size:.8125rem;font-weight:700;letter-spacing:.16em;line-height:1.6;color:var(--mute)}
.am.is-live .am__tag::before{content:"";width:16px;height:8px;border-radius:16px 16px 0 0;background:var(--sun);box-shadow:0 1.5px 0 var(--ink)}
/* 止めた姿・プログラムなし：時刻の一覧 */
.am__list{display:grid;gap:30px;max-width:1200px;margin:0 auto;padding:0 var(--g) 110px}
.am__it{display:grid;grid-template-columns:40% 1fr;grid-template-rows:auto auto 1fr;column-gap:18px;align-items:start}
.am__it .am__ph{grid-row:1 / 4}
.am__ph .ph__z{aspect-ratio:4/5;border-radius:50% 50% 22px 22px / 40% 40% 22px 22px}
.am__t{margin-top:4px;font-size:1.75rem;font-weight:700;line-height:1.2}
.am__h{margin-top:4px;font-size:1.25rem;line-height:1.6}
.am__x p{margin-top:4px;line-height:2}
/* 動く姿：画面を止めて、スクロールで9時から12時へ */
.am.is-live .am__track{height:calc(100vh + 6 * 64vh)}
@supports (height:1svh){.am.is-live .am__track{height:calc(100svh + 6 * 64svh)}}
.am.is-live .am__pin{position:sticky;top:0;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;padding:calc(var(--hd) + 2px) var(--g) 18px;overflow:hidden;--gx:6%}
@supports (height:1svh){.am.is-live .am__pin{height:100svh}}
.am.is-live .am__pin::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(90% 62% at var(--gx) 96%,rgba(242,179,61,.24),rgba(242,179,61,0) 70%);pointer-events:none}
.am.is-live .am__sky{display:block;position:relative;flex:none;width:var(--S);aspect-ratio:200/190}
.am__win{position:absolute;left:18%;width:64%;top:18.95%;bottom:0;overflow:hidden;background:var(--surface);border-radius:calc(var(--S) * .32) calc(var(--S) * .32) 24px 24px;isolation:isolate;box-shadow:0 30px 60px -36px rgba(74,59,42,.6)}
.am.is-live .am__win .am__ph{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .9s var(--ease)}
.am.is-live .am__win .am__ph.is-on{opacity:1}
.am.is-live .am__win .ph__z{position:absolute;inset:0;aspect-ratio:auto;border-radius:0}
.am.is-live .am__win .ph__z img{scale:1.1;transition:scale 2s var(--out)}
.am.is-live .am__win .am__ph.is-on img{scale:1}
.am__arc{position:absolute;inset:0;z-index:2;width:100%;height:100%;overflow:visible;pointer-events:none}
.am__dots{fill:none;stroke:rgba(74,59,42,.34);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:0 4.6}
.am__trail{fill:none;stroke:var(--sun);stroke-width:3;stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:1}
.am__hz{fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:round;opacity:.5}
.am__tk{fill:var(--ink);opacity:.45}
.am__lab{font-family:var(--ff-num);font-size:max(8.9px,min(10.2px,calc(18.1px - 1.43svh)));font-weight:700;letter-spacing:.02em;fill:var(--mute)}
.am__core{fill:var(--sun);stroke:rgba(224,118,74,.6);stroke-width:1}
.am__rays path{fill:none;stroke:var(--sun);stroke-width:2.1;stroke-linecap:round}
.am__rays{transform-box:fill-box;transform-origin:center;animation:spin 16s linear infinite}
.am.is-live .am__clock{display:flex;align-items:baseline;justify-content:center;margin-top:10px;font-family:var(--ff-num);font-weight:600;font-size:min(15vw,8vh,4.25rem);line-height:1;letter-spacing:0;color:var(--ink)}
@supports (height:1svh){.am.is-live .am__clock{font-size:min(15vw,8svh,4.25rem)}}
.am__clock i{display:inline-block;width:.6em;font-style:normal;text-align:center}
.am__clock i.is-zero{opacity:.22}
.am__clock b{width:.3em;font-weight:600;text-align:center;animation:colon 2.4s ease-in-out infinite}
@keyframes colon{50%{opacity:.3}}
.am.is-live .am__list{display:grid;width:100%;max-width:440px;margin:6px auto 0;padding:0;gap:0}
.am.is-live .am__it{display:block;grid-area:1/1;text-align:center;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .4s var(--ease),transform .7s var(--out),visibility 0s .4s}
.am.is-live .am__it.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .6s var(--ease) .12s,transform .8s var(--out) .12s,visibility 0s}
.am.is-live .am__t{display:none}
.am.is-live .am__h{margin-top:0;font-size:1.3125rem;line-height:1.5}
.am.is-live .am__x p{margin-top:6px;font-size:1rem;line-height:1.85;text-wrap:balance}
.am.is-live .am__chips{display:flex;justify-content:center;gap:2px;margin-top:10px}
.am__chips button{min-width:44px;height:44px;padding:0 7px;border-radius:999px;font-family:var(--ff-num);font-size:13px;font-weight:700;letter-spacing:0;color:var(--mute);transition:background-color .35s,color .35s}
.am__chips button.is-on{background:var(--ink);color:var(--bg)}

/* ---------- 5. 入口の切り替え ---------- */
.door{background:var(--surface);transition:background-color .8s var(--ease)}
.door.is-cm{background:var(--leaf-soft)}
.door__tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:30px}
.door__tab{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:156px;padding:16px 14px 16px 16px;border-radius:26px;background:var(--card);text-align:left;box-shadow:inset 0 0 0 1.5px var(--line);transition:background-color .45s var(--ease),box-shadow .45s,transform .45s var(--out)}
.door__tab:hover{transform:translateY(-2px)}
.door__tab::after{content:"";position:absolute;right:14px;top:16px;width:24px;height:24px;border-radius:50%;box-shadow:inset 0 0 0 2px var(--line2);transition:background-color .35s,box-shadow .35s}
.door__tab[aria-selected="true"]{box-shadow:0 18px 30px -20px rgba(74,59,42,.6)}
.door__tab[aria-selected="true"]::after{background:var(--ink) var(--chk) center / 13px no-repeat;box-shadow:none}
.door__tab--fam[aria-selected="true"]{background:var(--sun)}
.door__tab--cm[aria-selected="true"]{background:var(--leaf-mid)}
.door__ic{width:40px;height:40px;fill:none;stroke:var(--ink);stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
.door__name{margin-top:8px;font-size:1.125rem;font-weight:700;line-height:1.4;letter-spacing:.03em}
.door__sub{font-size:.8125rem;line-height:1.6;color:var(--mute)}
.door__tab[aria-selected="true"] .door__sub{color:var(--ink)}
.door__panel{margin-top:20px;padding:26px 18px 26px;border-radius:30px;background:var(--card);box-shadow:var(--sh)}
.door__panel[hidden]{display:none}
.door__panel:not([hidden]){animation:panelIn .7s var(--out)}
@keyframes panelIn{from{opacity:0;transform:translateY(16px)}}
.flow{margin-top:18px}
.flow li{position:relative;display:grid;grid-template-columns:44px 1fr;column-gap:14px;padding-bottom:18px}
.flow li::before{content:"";position:absolute;left:21px;top:50px;bottom:6px;border-left:2.5px dotted var(--line2)}
.flow li:last-child{padding-bottom:0}
.flow li:last-child::before{display:none}
.flow b{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--sun-soft);font-size:1.125rem;line-height:1}
.flow h4{padding-top:7px;font-size:1.0625rem;line-height:1.6}
.flow h4 small{display:inline-block;margin-left:8px;padding:0 9px;border-radius:999px;background:var(--surface);font-size:.8125rem;font-weight:700;line-height:1.8;color:var(--mute);vertical-align:2px}
.flow p{margin-top:2px;font-size:1rem;line-height:1.85}
.fam__side{display:grid;gap:12px;margin-top:26px}
.fam__box{padding:18px 18px 16px;border-radius:22px;background:var(--bg)}
.bring{margin-top:8px}
.bring div{padding:8px 0;border-top:1.5px dotted var(--line2)}
.bring dt{font-size:.8125rem;font-weight:700;line-height:1.9;color:var(--mute)}
.bring dd{font-size:1rem;line-height:1.85}
.fam__yen{margin-top:6px;font-size:1rem;font-weight:700;line-height:1.4}
.fam__yen b{margin:0 .06em;font-size:2.25rem;line-height:1}
.fam__s{margin-top:6px;font-size:.875rem;line-height:1.8;color:var(--mute)}
.fam__s a{color:var(--ink);font-weight:700;text-decoration:underline;text-decoration-color:var(--sun);text-decoration-thickness:2px;text-underline-offset:4px}
.fam__say{padding:4px 2px 0}
.fam__say-h{font-size:.875rem;font-weight:700;color:var(--mute)}
.bubble{position:relative;margin-top:10px;padding:16px 18px;border-radius:24px 24px 24px 6px;background:var(--sun-soft);font-size:1.0625rem;font-weight:700;line-height:1.8}
.week{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-top:14px}
.week li{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 2px;border-radius:16px;background:var(--bg);text-align:center}
.week b{font-size:1.125rem;line-height:1}
.week i{position:relative;display:block;width:22px;height:22px}
.week .is-ok i{border-radius:50%;box-shadow:inset 0 0 0 3.5px var(--leaf)}
.week .is-few i::before{content:"";position:absolute;inset:1px 0 1px;background:var(--sun);clip-path:polygon(50% 0,100% 100%,0 100%)}
.week .is-full i::before,.week .is-full i::after{content:"";position:absolute;left:-1px;top:9.5px;width:24px;height:3px;border-radius:3px;background:var(--mute);transform:rotate(45deg)}
.week .is-full i::after{transform:rotate(-45deg)}
.week span{font-size:.8125rem;font-weight:700;line-height:1.35}
.week .is-full{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line)}
.week .is-full span{color:var(--mute)}
.cm__week .fine{margin-top:10px}
.spec{margin-top:16px}
.spec div{padding:10px 0;border-top:1.5px dotted var(--line2)}
.spec dt{font-size:.8125rem;font-weight:700;line-height:1.9;color:var(--leaf-deep)}
.spec dd{font-size:1rem;line-height:1.85}
.cm__call{margin-top:22px;padding:20px 18px;border-radius:22px;background:var(--leaf-soft)}
.cm__tel{margin-top:6px}
.cm__tel small{display:block;font-size:.8125rem;font-weight:700;color:var(--leaf-deep)}
.cm__tel .n{display:block;font-size:2rem;font-weight:700;letter-spacing:.04em;line-height:1.3}
.cm__call .fine{margin-top:8px}
.cm__call .btn{margin-top:16px}
.cm__call .note{margin-top:8px}

/* ---------- 6. 費用のめやす ---------- */
.price{background:var(--bg)}
.price__main{margin-top:32px}
.board{padding:22px 20px 18px;border-radius:30px;background:var(--card);box-shadow:var(--sh)}
.board__cap{display:inline-block;padding:0 12px;border-radius:999px;background:var(--surface);font-size:.8125rem;font-weight:700;line-height:1.9;color:var(--mute)}
.yen{margin-top:6px}
.yen div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 2px;border-bottom:1.5px dotted var(--line2)}
.yen dt{font-size:1.0625rem;font-weight:700;line-height:1.4}
.yen dt small{display:block;margin-top:2px;font-size:.8125rem;font-weight:500;color:var(--mute)}
.yen dd{white-space:nowrap;font-size:.875rem;font-weight:700}
.yen dd small{margin-right:5px;font-size:.8125rem;color:var(--mute)}
.yen dd b{margin-right:3px;font-size:2rem;line-height:1}
.board__note{margin-top:12px;font-size:.875rem;line-height:1.8;color:var(--mute)}
.free{margin-top:16px;padding:20px 18px;border-radius:26px;background:var(--leaf-soft)}
.free__h{font-size:1rem;letter-spacing:.08em}
.free ul{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.free li{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 7px;border-radius:999px;background:var(--card);font-size:.9375rem;font-weight:700;line-height:1.5}
.free li::before{content:"";flex:none;width:24px;height:24px;border-radius:50%;background:var(--leaf) var(--chk) center / 13px no-repeat}

/* ---------- 7. スタッフから ---------- */
.staff{background:var(--surface)}
.staff__ph{width:min(72vw,320px);margin:0 0 0 auto}
.staff__ph::before{content:"";position:absolute;z-index:-1;left:-14%;top:8%;width:46%;aspect-ratio:1;border-radius:50%;background:var(--sun);opacity:.85}
.staff__txt{margin-top:30px}
.letter{position:relative;margin-top:22px;padding:26px 22px;border-radius:28px;background:var(--card);box-shadow:var(--sh)}
.sprout{position:absolute;right:16px;top:-30px;width:50px;height:50px;overflow:visible}
.sprout__stem{fill:none;stroke:var(--leaf-deep);stroke-width:2;stroke-linecap:round}
.sprout__leaf{fill:var(--leaf-mid);stroke:var(--leaf-deep);stroke-width:1.6;stroke-linejoin:round}
html.js .sprout[data-r]{transform-origin:50% 100%;transform:scale(.2);opacity:0;transition:transform 1.2s var(--spring) .3s,opacity .5s var(--ease) .3s}
html.js .sprout[data-r].is-in{transform:none;opacity:1}
.letter p{line-height:2.05;text-wrap:pretty}
.letter p+p{margin-top:1em}
.sign{display:flex;align-items:baseline;justify-content:flex-end;gap:12px;margin-top:18px}
.sign small{font-size:.875rem;font-weight:700;color:var(--mute)}
.sign b{font-size:1.625rem;letter-spacing:.2em;line-height:1.4}

/* ---------- 8. よくある質問 ---------- */
.faq{background:var(--bg)}
.faq__list{display:grid;gap:12px;margin-top:30px}
.faq details{border-radius:24px;background:var(--card);box-shadow:inset 0 0 0 1.5px var(--line);transition:box-shadow .45s}
.faq details[open]{box-shadow:var(--sh)}
.faq summary{display:grid;grid-template-columns:36px 1fr 30px;align-items:center;gap:12px;min-height:64px;padding:14px 16px;cursor:pointer;list-style:none;font-size:1.0625rem;font-weight:700;line-height:1.6}
.faq summary::-webkit-details-marker{display:none}
.faq .q{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--sun);font-size:1rem;font-weight:700;line-height:1}
.faq summary i{position:relative;width:30px;height:30px;border-radius:50%;background:var(--surface)}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:9px;top:14px;width:12px;height:2.2px;border-radius:2px;background:var(--ink);transition:transform .45s var(--out)}
.faq summary i::after{transform:rotate(90deg)}
.faq details[open] summary i::after{transform:rotate(0deg)}
.faq .a{padding:0 18px 20px 64px}
.faq .a p{line-height:2}
.faq details[open] .a{animation:faqIn .6s var(--out)}
@keyframes faqIn{from{opacity:0;transform:translateY(-6px)}}

/* ---------- 9. 見学・空きの確認：後ろで大きな日が昇る ---------- */
.cta{overflow:hidden;background:var(--pale);padding-bottom:170px}
.cta__sun{position:absolute;z-index:0;left:50%;bottom:0;width:min(132vw,1060px);aspect-ratio:1;margin-left:calc(min(132vw,1060px) / -2);transform:translate3d(0,52%,0);pointer-events:none;will-change:transform}
.cta__sun::before{content:"";position:absolute;inset:-7%;border-radius:50%;background:repeating-conic-gradient(rgba(242,179,61,.55) 0deg 1.2deg,transparent 1.2deg 6deg);-webkit-mask:radial-gradient(farthest-side,transparent 84%,#000 85%,#000 97%,transparent 100%);mask:radial-gradient(farthest-side,transparent 84%,#000 85%,#000 97%,transparent 100%);animation:spin 120s linear infinite}
.cta__sun i{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 50% 30%,#FFDB80 0%,#F7C254 45%,#F2B33D 100%);box-shadow:0 0 0 28px rgba(242,179,61,.16),0 0 0 64px rgba(242,179,61,.08)}
.cta__in{text-align:center}
.cta__ttl{font-size:2rem}
.cta .body{max-width:34em;margin-inline:auto;text-align:left}
.cta__btns{display:grid;gap:12px;margin-top:30px;text-align:left}
.cta__b{position:relative;display:grid;grid-template-columns:1fr auto;column-gap:12px;align-items:center;padding:18px 16px 18px 22px;border-radius:26px;background:var(--card);box-shadow:0 22px 40px -26px rgba(74,59,42,.55);transition:transform .45s var(--out)}
.cta__b:hover{transform:translateY(-3px)}
.cta__b small{grid-column:1;font-size:.8125rem;font-weight:700;line-height:1.6;color:var(--mute)}
.cta__b b{grid-column:1;font-size:1.375rem;line-height:1.45;letter-spacing:.06em}
.cta__b span{grid-column:1;font-size:.875rem;line-height:1.6;color:var(--mute)}
.cta__b i{grid-column:2;grid-row:1 / 4;width:48px;height:48px;background:var(--leaf-mid)}
.cta__b i::before{left:15px;top:23px}
.cta__b i::after{left:21.5px;top:19px}
.cta__b--fam{background:var(--sun)}
.cta__b--fam small,.cta__b--fam span{color:var(--ink)}
.cta__b--fam i{background:var(--card)}
.cta__note{margin-top:14px}
.cta__tel{display:flex;flex-direction:column;align-items:center;margin-top:22px;line-height:1.5}
.cta__tel small{font-size:.8125rem;font-weight:700;color:var(--mute)}
.cta__tel .n{font-size:1.75rem;font-weight:700;letter-spacing:.04em}

/* ---------- 10. 施設の案内 ---------- */
.info{background:var(--bg);z-index:1}
.info__ph{width:min(84vw,420px);margin:0 auto}
.info__ph figcaption{text-align:center}
.info__txt{margin-top:44px}
.dl{margin-top:26px}
.dl div{display:grid;grid-template-columns:5.4em 1fr;gap:12px;padding:14px 0;border-top:1.5px dotted var(--line2)}
.dl div:last-child{border-bottom:1.5px dotted var(--line2)}
.dl dt{font-size:.875rem;font-weight:700;line-height:2;color:var(--mute)}
.dl dd{font-size:1rem;line-height:1.9}

/* ---------- 下の帯と、見本の帯 ---------- */
.ft{position:relative;z-index:1;background:var(--surface);overflow:hidden}
.ft__in{max-width:1200px;margin:0 auto;padding:0 var(--g) 44px}
.ft__logo{display:flex;align-items:center;gap:10px}
.ft__logo .mark{width:52px;height:36px}
.ft__logo span{display:flex;flex-direction:column;font-size:28px;font-weight:700;letter-spacing:.16em;line-height:1.15}
.ft__logo small{font-size:12px;letter-spacing:.1em;color:var(--mute)}
.ft__promise{margin-top:18px;font-size:1.25rem;font-weight:700;line-height:1.7}
.ft__nav{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;margin-top:20px}
.ft__nav a{display:flex;align-items:center;min-height:44px;font-size:.9375rem;font-weight:700}
.ft__addr{margin-top:16px;font-size:.875rem;line-height:1.9;color:var(--mute)}
.sample{padding:20px var(--g) calc(84px + env(safe-area-inset-bottom,0px));background:var(--bg);font-size:.8125rem;line-height:1.9}
.sample__lnk a{display:inline-flex;align-items:center;min-height:44px;font-weight:700;text-decoration:underline;text-decoration-color:var(--sun);text-decoration-thickness:2px;text-underline-offset:5px}

/* 見学の入口（下から昇る半分の日）と、見本の札 */
.rise{position:fixed;z-index:210;right:12px;bottom:0;display:flex;align-items:center;justify-content:center;width:112px;height:calc(58px + env(safe-area-inset-bottom,0px));padding:10px 0 env(safe-area-inset-bottom,0px);border-radius:56px 56px 0 0;background:var(--sun);color:var(--ink);font-size:13.5px;font-weight:700;line-height:1.35;letter-spacing:.06em;text-align:center;box-shadow:0 -8px 26px -12px rgba(196,104,36,.6);transform:translateY(calc(100% + 130px));transition:transform .9s var(--out)}
.rise.is-on{transform:none}
.rise::before{content:"";position:absolute;z-index:-1;left:50%;bottom:env(safe-area-inset-bottom,0px);width:154px;height:154px;margin:0 0 -77px -77px;border-radius:50%;background:repeating-conic-gradient(rgba(242,179,61,.75) 0deg 2.4deg,transparent 2.4deg 15deg);-webkit-mask:radial-gradient(farthest-side,transparent 76%,#000 77%,#000 97%,transparent 100%);mask:radial-gradient(farthest-side,transparent 76%,#000 77%,#000 97%,transparent 100%);animation:spin 28s linear infinite;pointer-events:none}
.pill{position:fixed;z-index:210;left:10px;bottom:calc(8px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:5px;min-height:44px;padding:0 9px 0 8px;border-radius:999px;background:rgba(255,253,248,.95);box-shadow:inset 0 0 0 1.5px var(--line2),0 10px 22px -14px rgba(74,59,42,.5);font-size:12px;font-weight:700;letter-spacing:.04em;line-height:1.3}
.pill span{display:flex;align-items:center;gap:4px;color:var(--mute)}
.pill span::before{content:"";width:12px;height:6px;border-radius:12px 12px 0 0;background:var(--sun)}
.pill a{display:flex;align-items:center;min-height:44px;text-decoration:underline;text-decoration-color:var(--sun);text-decoration-thickness:2px;text-underline-offset:4px}
html.js .pill{opacity:0;transition:opacity .9s var(--ease) 1.3s}
html.js.is-loaded .pill{opacity:1}

/* 背の低い携帯では、3つの丸を最初の画面の下の端にまたがせる（文と重ねない） */
@media (max-width:899px) and (max-height:700px){
  .hero__facts{margin-top:calc(var(--fc) / -2)}
  .worry{padding-top:118px}
}

/* ---------- 止めた姿（確かめ用） ---------- */
html.static .rise{transform:none}

/* ================= 広い画面 ================= */
@media (min-width:900px){
  :root{--hd:84px}
  html{scroll-padding-top:96px}
  body{font-size:1.0625rem}
  .sec{padding:150px 0 160px}
  .dome{padding-top:calc(var(--dh) + 104px)}
  .lbl{margin-bottom:24px;font-size:.875rem}
  .h2{font-size:2.625rem;line-height:1.5}
  .h3{font-size:1.5rem}
  .body{margin-top:26px}
  .btn{min-height:64px;padding-left:32px;font-size:1.125rem}

  .hd{gap:clamp(16px,2vw,30px);padding:0 clamp(24px,3vw,48px)}
  .mark{width:44px;height:30px}
  .hd__name small{font-size:12.5px}
  .hd__name b{font-size:25px}
  .fs__lbl{font-size:13px}
  .hd__cta{display:inline-flex;align-items:center;min-height:50px;padding:0 26px;border-radius:999px;background:var(--sun);font-size:15px;font-weight:700;letter-spacing:.08em;box-shadow:0 12px 22px -14px rgba(196,104,36,.8);transition:transform .4s var(--out)}
  .hd__cta:hover{transform:translateY(-2px)}

  .hero-img{object-position:50% 62%}
  .hero__txt{left:7vw;right:auto;top:auto;bottom:calc(var(--dh) + 13vh);width:min(44vw,640px)}
  .hero__for{font-size:1.0625rem}
  .hero__ttl{margin-top:16px;font-size:clamp(2.6rem,3.6vw,4rem)}
  .hero__sub{margin-top:20px;font-size:1.1875rem}
  .hero__act{margin-top:32px;gap:10px}
  .hero{--hill:var(--dh)}
  .hero__facts{--fc:9.4em;margin-top:calc(var(--fc) / -2)}
  .hero__facts li{margin:0 -6px;font-size:1.0625rem}

  .worry{padding-top:calc(9.4em / 2 + 90px)}
  .worry__in{display:grid;grid-template-columns:46fr 54fr;gap:7%;align-items:start}
  .worry__head .h2{font-size:2.25rem}
  .worry__ph{width:80%;margin:44px 0 0 -4%}
  .worry__list{margin-top:150px;gap:22px}
  .worry__list li{width:86%;padding:26px 32px 30px}
  .worry__list p{font-size:1.25rem;line-height:1.85}
  .worry__say{margin-top:120px}
  .say__s{font-size:1.0625rem}
  .say{font-size:2.5rem}
  .trail{width:120px;margin-top:50px}

  .rule--am{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(48px,7vw,120px);align-items:center;margin-top:70px}
  .rule--am .disc{width:min(30vw,380px)}
  .rule--am .disc__k{font-size:1.375rem}
  .rule--am .disc__n{font-size:2.375rem}
  .rule__txt{margin-top:0}
  .nai{gap:6px 40px;margin-top:26px}
  .nai li{font-size:2rem}
  .rule__p b{font-size:1.375rem}
  .rules__two{grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,120px);margin-top:130px;align-items:start}
  .rule--ten{padding-top:80px}
  .rules__two .disc{width:min(22vw,280px)}
  .rule--ten .disc{margin-left:0}
  .rec{margin:40px 0 0 8%}
  .rules__fine{margin-top:80px}

  .am{--S:min(42vw,64vh,600px)}
  @supports (height:1svh){.am{--S:min(42vw,64svh,600px)}}
  .am__list{grid-template-columns:repeat(3,1fr);gap:56px 36px}
  .am.is-live .am__pin{display:grid;grid-template-columns:auto minmax(0,460px);grid-template-rows:auto auto auto;column-gap:clamp(48px,6vw,120px);align-content:center;justify-content:center;align-items:start;padding:calc(var(--hd) + 8px) var(--g) 28px}
  .am.is-live .am__sky{grid-column:1;grid-row:1 / 4;align-self:center}
  .am.is-live .am__tag{grid-column:2;justify-self:start;margin:0 0 4px}
  .am.is-live .am__clock{grid-column:2;justify-content:flex-start;margin:0 0 0 -.04em;font-size:min(7.2vw,13vh,7.5rem)}
  .am.is-live .am__list{grid-column:2;grid-template-columns:minmax(0,1fr);max-width:none;margin:22px 0 0;gap:4px;align-self:start}
  .am.is-live .am__it{grid-area:auto;display:grid;grid-template-columns:4.2em minmax(0,1fr);grid-template-rows:auto auto;column-gap:14px;align-items:baseline;padding:10px 18px;border-radius:20px;text-align:left;opacity:1;visibility:visible;transform:none;cursor:pointer;transition:background-color .5s var(--ease),box-shadow .5s}
  .am.is-live .am__it.is-on{background:var(--card);box-shadow:var(--sh);transition:background-color .5s var(--ease),box-shadow .5s}
  .am.is-live .am__t{display:block;margin:0;font-size:1.125rem;color:var(--mute);transition:color .4s}
  .am.is-live .am__h{font-size:1.125rem;color:var(--mute);transition:color .4s}
  .am.is-live .am__it.is-on .am__t,.am.is-live .am__it.is-on .am__h{color:var(--ink)}
  .am.is-live .am__x{grid-column:2;display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--out)}
  .am.is-live .am__x>p{min-height:0;overflow:hidden;margin:0;font-size:1rem;text-wrap:pretty}
  .am.is-live .am__it.is-on .am__x{grid-template-rows:1fr}
  .am.is-live .am__it.is-on .am__x>p{padding-top:4px}
  .am.is-live .am__chips{display:none}

  .door__tabs{max-width:900px;gap:16px;margin-top:40px}
  .door__tab{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:16px;min-height:0;padding:24px 28px}
  .door__tab::after{right:22px;top:22px;width:28px;height:28px}
  .door__ic{width:48px;height:48px}
  .door__name{margin-top:0;font-size:1.5rem}
  .door__sub{flex:0 0 100%;padding-left:64px;font-size:.9375rem}
  .door__panel{display:grid;grid-template-columns:56fr 44fr;gap:48px;margin-top:28px;padding:44px 48px}
  .door__panel--cm{grid-template-columns:60fr 40fr}
  .fam__side{margin-top:0}
  .bring div,.spec div{display:grid;grid-template-columns:7.4em 1fr;gap:12px}
  .bring dt,.spec dt{font-size:.875rem}
  .week li{padding:16px 4px}
  .week span{font-size:.875rem}
  .cm__call{margin-top:0;align-self:start;padding:28px 26px}

  .price__in{display:grid;grid-template-columns:40fr 60fr;gap:7%;align-items:start}
  .price__main{margin-top:0}
  .board{padding:34px 40px 28px}
  .yen div{padding:18px 4px}
  .yen dt{font-size:1.1875rem}
  .yen dd b{font-size:2.5rem}
  .free{margin-top:18px;padding:24px 30px}

  .staff__in{display:grid;grid-template-columns:40fr 60fr;gap:7%;align-items:center}
  .staff__ph{width:100%;margin:0}
  .staff__txt{margin-top:0}
  .letter{padding:40px 46px}

  .faq__in{max-width:960px}
  .faq__head{text-align:center}
  .faq summary{grid-template-columns:40px 1fr 32px;gap:16px;min-height:78px;padding:18px 26px;font-size:1.1875rem}
  .faq .q{width:40px;height:40px}
  .faq .a{padding:0 32px 26px 82px}

  .cta{padding-bottom:230px}
  .cta__ttl{font-size:3.25rem}
  .cta .body{text-align:center}
  .cta__btns{grid-template-columns:1fr 1fr;max-width:860px;margin:44px auto 0;gap:18px}
  .cta__b{padding:26px 24px 26px 30px}
  .cta__b b{font-size:1.625rem}
  .cta__tel .n{font-size:2rem}

  .info__in{display:grid;grid-template-columns:40fr 60fr;gap:8%;align-items:start}
  .info__ph{width:100%}
  .info__txt{margin-top:0;padding-top:24px}
  .dl div{grid-template-columns:7em 1fr;padding:18px 0}
  .dl dd{font-size:1rem}

  .ft__in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 80px;align-items:start;padding-bottom:70px}
  .ft__promise{grid-column:1;margin-top:10px}
  .ft__nav{grid-column:2;grid-row:1 / 4;grid-template-columns:repeat(2,auto);gap:2px 48px;margin-top:0}
  .ft__addr{grid-column:1}
  .sample{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:22px var(--g) 22px 260px}
  .sample br{display:none}
  .rise{right:26px;width:150px;height:calc(75px + env(safe-area-inset-bottom,0px));padding-top:14px;border-radius:75px 75px 0 0;font-size:15px}
  .rise::before{width:206px;height:206px;margin:0 0 -103px -103px}
  .pill{left:20px;bottom:18px;font-size:12.5px}
}
@media (min-width:1180px){
  .hd__nav{display:flex;gap:clamp(16px,1.8vw,30px);font-size:15px;font-weight:700;letter-spacing:.05em}
  .hd__nav a{position:relative;display:flex;align-items:center;min-height:44px}
  .hd__nav a::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:2.5px;border-radius:2px;background:var(--sun);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--out)}
  .hd__nav a:hover::after{transform:scaleX(1)}
}
