/* ホームページ（公開側）。色・丸み・書体は App\Support\SiteTheme が出力する CSS 変数で決まる
   レイアウトは <body class="ly-simple|ly-photo|ly-story">。共通の土台 → 部品 → レイアウトごとの違い、の順に書く */
:root{--ink:#1C2833;--sub:#4E5B66;--line:#DDE3E8;--acc:var(--acc-l,#0E6A6A);--hi:#F2C230;--bg:var(--bg-l,#F4F6F5);--r:8px;--rp:10px;--font:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",sans-serif;
  --acc-soft:color-mix(in srgb,var(--acc) 10%,#fff);--acc-deep:color-mix(in srgb,var(--acc) 72%,#000)}
*{box-sizing:border-box}
html{font-size:calc(16px*var(--fs,1));scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--ink);background:#fff;line-height:1.8;font-size:1rem}
img{max-width:100%}
a{color:var(--acc)}
.in{max-width:1160px;margin:0 auto;padding:0 24px}
@media(max-width:600px){.in{padding:0 18px}}

/* ---- ヘッダー・フッター */
.sh-head{background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:2}
.sh-head .in{display:flex;align-items:center;gap:28px;padding-top:14px;padding-bottom:14px}
.logo{display:inline-flex;align-items:center;gap:10px;font-weight:900;font-size:1.2rem;color:inherit;text-decoration:none;min-width:0}
.logo img{width:40px;height:40px;flex:none;border-radius:var(--r);object-fit:cover}
@media(max-width:560px){.logo img{width:34px;height:34px}}
.nav{display:flex;gap:24px;font-size:.95rem;font-weight:500}
.nav a{color:var(--sub);text-decoration:none}
.nav a:hover{color:var(--acc)}
.sh-head .hr{display:flex;align-items:center;gap:16px;margin-left:auto}
.tel{font-weight:700;font-size:1.1rem;color:inherit;text-decoration:none;white-space:nowrap}
.hbtn{background:var(--acc);color:#fff;font-weight:700;font-size:.95rem;text-decoration:none;padding:10px 20px;border-radius:var(--r);white-space:nowrap}
@media(max-width:900px){.nav{display:none}}
@media(max-width:560px){.sh-head .tel{display:none}}
.sh-foot{background:color-mix(in srgb,var(--acc) 30%,#111);color:#D6DCE2;font-size:.85rem}
.sh-foot .in{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:24px;padding-bottom:24px}
.sh-foot a{color:inherit}
/* フッターのSNSアイコン（押しやすいように 44px 以上の枠。スマホでは折り返す） */
.sh-sns{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.sh-sns a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:10px;text-decoration:none;transition:background .15s}
.sh-sns a:hover,.sh-sns a:focus-visible{background:rgba(255,255,255,.14)}
.sh-sns img{display:block;width:32px;height:32px}
/* X は公式の画像が無いので、文字のバッジで出す */
.sh-sns-txt{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#fff;color:#111;font-weight:800;font-size:1rem;line-height:1}

/* ---- ボタン */
.btn{display:inline-flex;align-items:center;gap:8px;padding:16px 32px;border-radius:var(--r);background:var(--acc);color:#fff;font-weight:700;font-size:1.05rem;text-decoration:none;border:2px solid transparent}
.btn-hi{background:var(--hi);color:#1C2833}
.btn-line{background:#fff;color:var(--acc);border-color:color-mix(in srgb,var(--acc) 35%,#fff)}
.btn-ghost{background:transparent;color:#fff;border-color:#fff}
.acts{display:flex;flex-wrap:wrap;gap:14px;align-items:center}

/* ---- 共通の部品 */
.tag{display:inline-block;background:var(--hi);color:#1C2833;font-weight:700;font-size:.85rem;padding:4px 14px;border-radius:4px}
h1{font-size:clamp(1.9rem,4.4vw,2.9rem);line-height:1.35;margin:18px 0;font-weight:900;letter-spacing:.02em}
.lead{font-size:1.1rem;color:var(--sub);margin:0 0 32px;white-space:pre-line}
section{padding:88px 0}
@media(max-width:600px){section{padding:56px 0}}
.alt{background:var(--bg)}
.sh{margin-bottom:36px}
.eb{display:block;color:var(--acc);font-weight:700;font-size:.8rem;letter-spacing:.18em}
h2{font-size:clamp(1.5rem,3vw,2rem);margin:4px 0 0;font-weight:900;line-height:1.4}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--rp);padding:28px;color:inherit;text-decoration:none}
.alt .card{border-color:transparent}
a.card:hover{border-color:var(--acc)}
.card h3{margin:0 0 6px;font-size:1.2rem}
.card p{margin:0;color:var(--sub);line-height:1.75}
.more{display:inline-block;margin-top:14px;color:var(--acc);font-weight:700;font-size:.95rem}
.chips{display:flex;gap:12px;height:260px;align-items:flex-end}
.chips i{flex:1;border-radius:var(--r) var(--r) 0 0}

/* サービス（シンプル） */
.svc{display:flex;flex-direction:column}
.svc .ico{width:56px;height:56px;border-radius:var(--rp);background:var(--acc-soft);display:inline-grid;place-items:center;font-size:1.7rem;margin-bottom:14px}
.svc .more{margin-top:auto;padding-top:14px}

/* 理由 */
.rsn .no{display:block;font-size:2.2rem;font-weight:900;color:var(--acc);line-height:1;margin-bottom:14px}
.rsn .chk{width:44px;height:44px;border-radius:50%;background:var(--acc-soft);color:var(--acc);display:inline-grid;place-items:center;margin-bottom:14px}

/* 流れ */
.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:20px}
.flow li{border-top:4px solid var(--acc);padding-top:14px}
.flow b{display:block;font-size:1.05rem}
.flow li > span:not(.num),.flow li div > span{display:block;color:var(--sub);font-size:.92rem;line-height:1.7;margin-top:4px}

/* 施工事例：件数に合わせて列が増える（1件なら全幅） */
.works{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:24px}
.w{margin:0;background:#fff;border-radius:var(--rp);overflow:hidden;border:1px solid var(--line)}
.alt .w{border-color:transparent}
.ph{width:100%;padding:0;border:0;cursor:zoom-in;font:inherit;display:grid;grid-template-columns:1fr 1fr;background:none}
.pi{position:relative;aspect-ratio:4/3;display:block;overflow:hidden}
.pi img,.pi i{display:block;width:100%;height:100%;object-fit:cover;background:#B9C1C9}
.pi i.af{background:color-mix(in srgb,var(--acc) 40%,#fff)}
.pi b{position:absolute;left:10px;bottom:10px;background:#1C2833;color:#fff;font-size:.8rem;padding:2px 10px;border-radius:4px}
.pi b.af{background:var(--acc)}
.w figcaption{padding:16px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.w-title{font-weight:700}
.w-svc{font-size:.8rem;font-weight:700;color:var(--acc);background:var(--acc-soft);border-radius:99px;padding:2px 10px;text-decoration:none}
.w-svc:hover{text-decoration:underline}
.w-desc{flex-basis:100%;margin:2px 0 0;color:var(--sub);font-size:.92rem;line-height:1.75;white-space:pre-line}

/* 対応エリア・会社概要（左右2列） */
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:56px;align-items:start}
.pref{margin-bottom:18px}
.pref b{display:block;font-size:1.1rem;margin-bottom:8px}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags span{background:#fff;border:1.5px solid color-mix(in srgb,var(--acc) 35%,#fff);color:var(--acc);border-radius:99px;padding:3px 14px;font-size:.92rem}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:14px 6px;border-bottom:1px solid var(--line);vertical-align:top}
th{width:7em;color:var(--sub);font-weight:500}
td a{color:inherit}

/* ページ下の案内 */
.cta{background:var(--acc);color:#fff;padding:72px 0}
.cta .in{display:flex;flex-wrap:wrap;gap:28px;align-items:center;justify-content:space-between}
.cta h2{margin:0 0 6px}
.cta p{margin:0;color:color-mix(in srgb,#fff 85%,var(--acc))}

/* ============ レイアウト：シンプル ============ */
.hero{background:var(--bg);padding:80px 0}
.hero .in{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:center}
@media(max-width:820px){.hero .in{grid-template-columns:1fr;gap:32px}}
.hero-img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:calc(var(--rp) * 2);display:block}
@media(max-width:600px){.hero{padding:48px 0}}

/* ============ レイアウト：フォト ============ */
.hero-photo{position:relative;min-height:600px;display:flex;align-items:flex-end;color:#fff;background:var(--acc-deep);overflow:hidden}
.hero-photo .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-photo:not(.no-img)::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,16,24,.78),rgba(10,16,24,.25) 70%)}
.hero-photo .in{position:relative;z-index:1;width:100%;padding-top:96px;padding-bottom:88px}
.hero-photo h1{font-size:clamp(2.1rem,5.4vw,3.5rem);max-width:15em}
.hero-photo .lead{color:#E9EEF3;max-width:34em}
@media(max-width:600px){.hero-photo{min-height:520px}.hero-photo .in{padding-bottom:56px}}
.ly-photo .sh{text-align:center;margin-bottom:44px}
.pcard{padding:0;overflow:hidden;display:flex;flex-direction:column;border:0;box-shadow:0 1px 2px rgba(20,30,40,.06),0 10px 28px rgba(20,30,40,.09)}
.pcard .media{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.pcard .media.none{display:grid;place-items:center;background:var(--acc-soft);font-size:3rem}
.pcard .body{display:flex;flex-direction:column;padding:24px 28px 28px;flex:1}
.pcard .more{margin-top:auto;padding-top:14px}
.ly-photo .works{grid-template-columns:repeat(auto-fit,minmax(min(460px,100%),1fr))}
.ly-photo .pi{aspect-ratio:3/2}
.ly-photo .w figcaption{padding:20px 24px}
.ly-photo .w-title{font-size:1.1rem}
.ly-photo .rsn{text-align:left}
.circles{text-align:center}
.circles li{border-top:0;padding-top:0}
.circles .num{width:60px;height:60px;border-radius:50%;background:var(--acc);color:#fff;font-weight:900;font-size:1.4rem;display:grid;place-items:center;margin:0 auto 14px}
.circles li:last-child .num{background:var(--hi);color:#1C2833}
.ly-photo .home-cta{background:var(--acc-deep)}
.ly-photo .home-cta .in{flex-direction:column;text-align:center}
.ly-photo .home-cta .acts{justify-content:center}

/* ============ レイアウト：ストーリー ============ */
.hero-split{display:flex;flex-wrap:wrap;background:var(--bg)}
.hero-split .hero-t{flex:1 1 480px;padding:88px 56px 88px max(24px,calc((100% - 1160px) / 2 + 24px));display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.hero-split .hero-img{flex:1 1 420px;min-width:0;width:auto;min-height:480px;aspect-ratio:auto;border-radius:0;object-fit:cover}
.hero-split .hero-img.none{display:flex;align-items:flex-end;padding:56px;background:color-mix(in srgb,var(--acc) 8%,#fff)}
.hero-split .hero-img.none .chips{width:100%}
@media(max-width:600px){.hero-split .hero-t{padding:48px 18px}.hero-split .hero-img{min-height:280px}}
.zig{display:flex;flex-direction:column;gap:72px}
.zig .row{display:flex;flex-wrap:wrap;gap:48px;align-items:center}
.zig .row:nth-child(even){flex-direction:row-reverse}
.zig .media{flex:1 1 400px;min-width:0;display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:calc(var(--rp) * 1.6)}
.zig .media.none{display:grid;place-items:center;background:var(--acc-soft);font-size:4rem}
.zig .txt{flex:1 1 360px}
.zig .no{color:var(--acc);font-weight:700}
.zig h3{font-size:1.7rem;margin:2px 0 14px;font-weight:900}
.zig p{margin:0;color:var(--sub);font-size:1.05rem}
@media(max-width:600px){.zig{gap:48px}.zig .row{gap:20px}}
.dark{background:var(--acc-deep);color:#fff}
.dark .eb{color:var(--hi)}
.dark .grid{gap:40px}
.dark .rsn{border-top:1px solid rgba(255,255,255,.3);padding-top:24px}
.dark .rsn .no{color:var(--hi);font-size:3.6rem}
.dark .rsn h3{font-size:1.3rem;margin:0 0 8px}
.dark .rsn p{margin:0;color:rgba(255,255,255,.85)}
.flow-wrap{display:flex;flex-wrap:wrap;gap:56px}
.flow-intro{flex:1 1 280px}
.flow-intro p{color:var(--sub);margin:0 0 24px}
.timeline{flex:2 1 460px;display:flex;flex-direction:column;gap:0}
.timeline li{border-top:0;padding:0 0 28px;display:flex;gap:20px;position:relative}
.timeline li:not(:last-child)::before{content:"";position:absolute;left:21px;top:44px;bottom:0;width:2px;background:color-mix(in srgb,var(--acc) 25%,#fff)}
.timeline .num{flex:none;width:44px;height:44px;border-radius:50%;background:var(--acc);color:#fff;font-weight:700;display:grid;place-items:center}
.timeline li:last-child .num{background:var(--hi);color:#1C2833}
.timeline li div{padding-top:8px}
.ly-story .home-cta{background:#fff;padding:0 0 88px}
.ly-story .home-cta .in{background:var(--acc);border-radius:calc(var(--rp) * 2);padding:56px 48px;max-width:1112px}
@media(max-width:600px){.ly-story .home-cta .in{padding:40px 24px;margin:0 18px}}

/* ============ サービス紹介ページ（上部はレイアウトごと、本文は共通） ============ */
.crumb{font-size:.85rem;color:var(--sub);margin:0 0 6px}
.crumb a{color:inherit}
.svc-band{background:var(--bg);padding:56px 0 48px}
.svc-title{display:flex;align-items:center;gap:16px}
.svc-title h1{margin:8px 0}
.svc-title .ico{width:64px;height:64px;flex:none;border-radius:var(--rp);background:#fff;display:grid;place-items:center;font-size:2rem}
.svc-band .lead{margin:8px 0 0;max-width:46em}
.svc-top.hero-photo{min-height:440px}
.svc-top.hero-photo .crumb,.svc-top.hero-photo .crumb a{color:#E9EEF3}
.svc-top.hero-photo .in{padding-top:72px;padding-bottom:64px}
.svc-top.hero-split .hero-t{padding-top:64px;padding-bottom:64px}
.svc-top.hero-split .hero-img{min-height:380px}
.hero-img.emoji{display:grid;place-items:center;font-size:5rem;background:var(--acc-soft)}
.mi{height:300px;border-radius:var(--rp);width:100%;background:linear-gradient(135deg,var(--acc),color-mix(in srgb,var(--acc) 45%,#fff));display:block}
.dh{max-width:960px;margin:0 auto;padding:56px 24px 88px}
.dh .car,.dh .mi{margin-bottom:56px}
.dh .sh{margin:56px 0 24px}
.dh .car + .sh,.dh .mi + .sh,.dh > .sh:first-child{margin-top:0}
.prose p{margin:0 0 1.2em;font-size:1.05rem}
.pts{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.pts .card{display:flex;align-items:center;gap:14px;padding:20px 22px}
.pts .card h3{margin:0;font-size:1.05rem}
.pts .chk{width:36px;height:36px;flex:none;border-radius:50%;background:var(--acc-soft);color:var(--acc);display:grid;place-items:center}
.ly-photo .dh .sh{text-align:left}
.back{margin:56px 0 0}
.back a{font-weight:700;text-decoration:none}
.svc-cta .in{flex-direction:column;text-align:center}
.svc-cta p{margin:0;font-size:1.15rem;color:#fff}
.lead2{color:var(--sub);white-space:pre-line}

/* サービス紹介の写真（自動で切り替わるカルーセル） */
.car-stage{position:relative;height:440px;border-radius:var(--r);overflow:hidden;background:#dfe5e3}
@media(max-width:600px){.car-stage{height:240px}}
.car-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s}
.car-slide.on{opacity:1}
.ths{display:flex;gap:8px;margin-top:8px;overflow-x:auto;padding-bottom:4px}
.ths button{flex:0 0 auto;padding:0;border:2px solid transparent;border-radius:var(--r);background:none;cursor:pointer;opacity:.65}
.ths button.on{border-color:var(--acc);opacity:1}
.ths img{display:block;width:84px;height:64px;object-fit:cover;border-radius:calc(var(--r) - 2px)}
@media(prefers-reduced-motion:reduce){.car-slide{transition:none}html{scroll-behavior:auto}}

/* 施工事例の拡大表示 */
.lb{position:fixed;inset:0;z-index:50;background:rgba(10,18,22,.86);display:grid;place-items:center;padding:16px;overflow:auto}
.lb-in{max-width:1000px;width:100%;color:#fff}
.lb-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:700px){.lb-pair{grid-template-columns:1fr}}
.lb figure{margin:0;position:relative}
.lb figure img{width:100%;max-height:70vh;object-fit:contain;display:block;border-radius:var(--r);background:#222}
.lb figcaption{position:absolute;left:8px;top:8px;background:rgba(0,0,0,.65);padding:0 10px;border-radius:4px;font-size:.8rem;font-weight:700}
.lb-t{margin:12px 0 0;text-align:center;font-weight:700}
.lb-x{position:fixed;top:10px;right:14px;width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:#1C2B33;font-size:1.4rem;cursor:pointer}

/* ============ 見た目の仕上げ（華やかさ）：区切り・ラベル・影・立体ボタン ============
   動きは <html data-motion="none|fade|rise|slide|pop">、区切りの形は <html data-divider="wave|slant|flat">（設定 ＞ デザイン） */
:root{--shadow:0 1px 2px rgba(20,30,40,.05),0 10px 28px rgba(20,30,40,.08);--acc-edge:color-mix(in srgb,var(--acc) 62%,#000);--hi-edge:color-mix(in srgb,var(--hi) 62%,#000);--dh:clamp(22px,4.2vw,54px)}
body{background:#fff}
::selection{background:color-mix(in srgb,var(--hi) 70%,#fff)}

/* ヘッダー：上に付いてくる。スクロールすると影が出る */
.sh-head{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);transition:box-shadow .25s}
.sh-head.is-scrolled{box-shadow:0 6px 24px rgba(20,30,40,.1)}
.logo{letter-spacing:.02em}

/* ボタン：下に影のある立体ボタン */
.btn,.hbtn{box-shadow:0 5px 0 var(--acc-edge);transition:transform .15s,box-shadow .15s;position:relative}
.btn:hover,.hbtn:hover{transform:translateY(2px);box-shadow:0 3px 0 var(--acc-edge)}
.btn:active,.hbtn:active{transform:translateY(5px);box-shadow:0 0 0 var(--acc-edge)}
.btn-hi{box-shadow:0 5px 0 var(--hi-edge)}
.btn-hi:hover{box-shadow:0 3px 0 var(--hi-edge)}
.btn-hi:active{box-shadow:0 0 0 var(--hi-edge)}
.btn-line,.btn-ghost{box-shadow:none}
.btn-line:hover,.btn-ghost:hover{transform:none;box-shadow:none;background:var(--acc-soft)}
.btn-ghost:hover{background:rgba(255,255,255,.14)}
.btn:focus-visible,.hbtn:focus-visible,a:focus-visible{outline:3px solid var(--hi);outline-offset:3px}

/* 見出し：小さな ✦ ラベルと、蛍光ペン風の下線 */
.eb::before{content:"✦ ";color:var(--hi)}
.dark .eb::before,.cta .eb::before{color:var(--hi)}
.sh h2{display:inline;background:linear-gradient(transparent 68%,color-mix(in srgb,var(--hi) 65%,transparent) 68%,color-mix(in srgb,var(--hi) 65%,transparent) 92%,transparent 92%);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .1em}
.dark .sh h2{background:linear-gradient(transparent 68%,rgba(255,255,255,.18) 68%,rgba(255,255,255,.18) 92%,transparent 92%)}
.ly-photo .sh,.ly-photo .sh h2{text-align:center}

/* カード：やわらかい影 */
.card,.w{border-color:transparent;box-shadow:var(--shadow)}
.alt .card,.alt .w{box-shadow:0 1px 2px rgba(20,30,40,.04),0 8px 22px rgba(20,30,40,.06)}
.pcard{box-shadow:var(--shadow)}
a.card,.w{transition:transform .25s ease,box-shadow .25s ease}
a.card:hover{transform:translateY(-4px);box-shadow:0 2px 4px rgba(20,30,40,.06),0 18px 36px rgba(20,30,40,.12);border-color:transparent}
.svc .ico{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--acc) 14%,transparent)}
.flow li{border-top-width:5px;border-radius:2px}
.tags span{background:var(--acc-soft);border-color:transparent}

/* ヒーロー：グラデーションと水玉、ゆっくり漂う色の丸 */
.hero,.hero-split{position:relative;overflow:hidden;background:radial-gradient(color-mix(in srgb,var(--acc) 13%,transparent) 1.4px,transparent 1.6px) 0 0/22px 22px,linear-gradient(135deg,var(--bg),color-mix(in srgb,var(--bg) 55%,#fff))}
.hero::after,.hero-split::after{content:"";position:absolute;right:-90px;top:-90px;width:300px;height:300px;border-radius:50%;background:color-mix(in srgb,var(--hi) 38%,transparent);pointer-events:none}
.hero .in,.hero-split>*{position:relative;z-index:1}
.hero-img{box-shadow:0 18px 44px rgba(20,30,40,.18)}
.hero-split .hero-img{box-shadow:none}
.tag{box-shadow:0 3px 0 var(--hi-edge)}
.hero-photo .bg{transform-origin:center}

/* セクションの区切り：色のついた帯の上端を、波・斜めの形にする（上の背景が何色でも同じ形になる） */
.alt,.cta,.dark,.hero + section:not(.alt):not(.dark),.hero-split + section:not(.alt):not(.dark),.hero-photo + section:not(.alt):not(.dark){position:relative}
.alt::before,.cta::before,.dark::before,.hero + section:not(.alt):not(.dark)::before,.hero-split + section:not(.alt):not(.dark)::before,.hero-photo + section:not(.alt):not(.dark)::before{content:"";position:absolute;left:0;right:0;top:calc(1px - var(--dh));height:var(--dh);background:inherit;pointer-events:none;z-index:1;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V22C130 2 260 2 400 20S660 38 800 20 1070 2 1200 22V40Z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V22C130 2 260 2 400 20S660 38 800 20 1070 2 1200 22V40Z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat}
.hero + section:not(.alt):not(.dark)::before,.hero-split + section:not(.alt):not(.dark)::before,.hero-photo + section:not(.alt):not(.dark)::before{background:#fff}
html[data-divider="slant"] :is(.alt,.cta,.dark,.hero + section,.hero-split + section,.hero-photo + section)::before{-webkit-mask:none;mask:none;clip-path:polygon(0 100%,100% 0,100% 100%)}
html[data-divider="flat"] :is(.alt,.cta,.dark,.hero + section,.hero-split + section,.hero-photo + section)::before{display:none}
.ly-story .home-cta::before,.svc-cta::before{display:none}
.sh-foot{position:relative}

/* スマホの固定ボタン：予約／電話。ページ下の案内が見えている間は隠す */
.mcta{display:none}
@media(max-width:700px){
  .mcta{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 -6px 24px rgba(20,30,40,.14);transform:translateY(110%);transition:transform .3s}
  .mcta.is-on{transform:none}
  .mcta .btn{flex:1;justify-content:center;padding:13px 10px;font-size:1rem;box-shadow:0 4px 0 var(--acc-edge)}
  .mcta .btn-line{flex:0 0 auto;padding:13px 16px;box-shadow:none;border-color:color-mix(in srgb,var(--acc) 45%,#fff)}
  body.has-mcta{padding-bottom:76px}
}

/* ============ 動き：設定 ＞ デザイン の「アニメーション」 ============
   motion.js が <html class="js"> を付けた（＝動かす設定で、端末も許可している）ときだけ、読み込み時に隠しておき、見えたら現す */
html.js :is(.sh,.card,.flow li,.w,.zig .row,.timeline li,.two>.box,.hero-t>*,.hero-img,.chips,.cta .in>*,.car,.mi){transition:opacity 1.3s ease,transform 1.3s cubic-bezier(.22,.8,.3,1)}
html.js :is(.sh,.card,.flow li,.w,.zig .row,.timeline li,.two>.box,.hero-t>*,.hero-img,.chips,.cta .in>*,.car,.mi):not(.is-in){opacity:0}
html.js[data-motion="rise"] :is(.sh,.card,.flow li,.w,.zig .row,.timeline li,.two>.box,.hero-t>*,.hero-img,.chips,.cta .in>*,.car,.mi):not(.is-in){transform:translateY(44px)}
html.js[data-motion="slide"] :is(.sh,.card,.flow li,.w,.zig .row,.timeline li,.two>.box,.hero-t>*,.hero-img,.chips,.cta .in>*,.car,.mi):not(.is-in){transform:translateX(-56px)}
html.js[data-motion="slide"] :is(.card,.flow li,.w,.two>.box,.hero-img):nth-child(even):not(.is-in),html.js[data-motion="slide"] .zig .row:nth-child(even):not(.is-in){transform:translateX(56px)}
html.js[data-motion="pop"] :is(.sh,.card,.flow li,.w,.zig .row,.timeline li,.two>.box,.hero-t>*,.hero-img,.chips,.cta .in>*,.car,.mi):not(.is-in){transform:scale(.88) translateY(14px);transition-timing-function:ease,cubic-bezier(.3,1.25,.5,1)}
html.js .is-in.is-done{transition:transform .25s ease,box-shadow .25s ease}
/* ヒーローの飾りと写真の動き（なし以外のとき） */
html[data-motion]:not([data-motion="none"]) .hero::after,html[data-motion]:not([data-motion="none"]) .hero-split::after{animation:sh-float 9s ease-in-out infinite alternate}
html[data-motion]:not([data-motion="none"]) .hero-photo:not(.no-img) .bg{animation:sh-zoom 20s ease-out both}
@keyframes sh-float{from{transform:translate(0,0) scale(1)}to{transform:translate(-26px,30px) scale(1.08)}}
@keyframes sh-zoom{from{transform:scale(1)}to{transform:scale(1.09)}}
@media(prefers-reduced-motion:reduce){
  html.js :is(.sh,.card,.flow li,.w,.zig .row,.timeline li,.two>.box,.hero-t>*,.hero-img,.chips,.cta .in>*,.car,.mi){opacity:1!important;transform:none!important;transition:none!important}
  .hero::after,.hero-split::after,.hero-photo .bg{animation:none!important}
  .btn,.hbtn,a.card,.mcta{transition:none}
}
@media print{.sh-head{position:static;box-shadow:none}.mcta{display:none}html.js :is(.sh,.card,.flow li,.w,.zig .row,.timeline li,.two>.box,.hero-t>*,.hero-img,.chips,.cta .in>*,.car,.mi){opacity:1!important;transform:none!important}.alt::before,.cta::before,.dark::before{display:none}}
.lk{color:var(--acc);text-decoration:underline;overflow-wrap:anywhere}

/* お客様の声 */
.rv-sum{margin:0 0 18px}
.rv-avg{margin:0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.rv-avg b{font-size:2.2rem;line-height:1}
.rv-stars-s{color:#E8A317;letter-spacing:1px}
.rv-n{color:var(--sub,#5b6b7b);font-size:.9rem}
.rv-note{margin:6px 0 0;color:var(--sub,#5b6b7b);font-size:.82rem}
.rv-list{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.rv-card{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:12px;padding:14px 16px}
.rv-top{margin:0 0 6px;font-size:.92rem}
.rv-top small{color:var(--sub,#5b6b7b);display:block}
.rv-body{margin:0 0 8px;white-space:pre-wrap;overflow-wrap:anywhere}
.rv-reply{margin:8px 0 0;padding:8px 10px;background:rgba(0,0,0,.04);border-radius:8px;font-size:.88rem;white-space:pre-wrap;overflow-wrap:anywhere}
.rv-more{margin:14px 0 0}
.rv-pager{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}
