/* こもれび整体院(架空店舗デモ) — 和モダン・木×生成り×柿色。写真不使用/SVGとCSSのみ。 */
:root{
  --wood:#8a5a34; --wood-d:#6b4325; --wood-l:#f1e3d0;
  --kaki:#c1592e; --kaki-d:#9c4321; --kaki-l:#f6ddce;
  --moss:#6b7a4f; --moss-d:#525f3c; --moss-l:#e6ebdd;
  --cream:#f6efe3; --paper:#fbf7ef; --card:#ffffff;
  --ink:#3a2f22; --muted:#7d7261; --line:#e4d8c4; --line-d:rgba(246,239,227,.2);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;color:var(--ink);background:var(--paper);line-height:1.95;font-size:15.5px;-webkit-text-size-adjust:100%}
.mincho{font-family:"Zen Old Mincho","Hiragino Mincho ProN",serif}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1020px;margin:0 auto;padding:0 22px}
[id]{scroll-margin-top:84px}

/* ===== header ===== */
header{position:sticky;top:0;z-index:50;background:rgba(251,247,239,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hd{display:flex;align-items:center;justify-content:space-between;height:68px;gap:10px}
.logo{display:flex;align-items:center;gap:11px;text-decoration:none;flex-shrink:0}
.logo-mark{width:38px;height:38px;flex-shrink:0}
.logo-t{white-space:nowrap}
.logo-t .disp{font-family:"Zen Old Mincho",serif;font-weight:600;font-size:1.18rem;letter-spacing:.08em;line-height:1.15;display:block;color:var(--wood-d)}
.logo-t small{display:block;font-size:.6rem;letter-spacing:.22em;color:var(--muted);font-weight:500;margin-top:2px}
nav.g{display:flex;align-items:center}
nav.g a{color:var(--ink);text-decoration:none;font-size:.86rem;margin-left:22px;letter-spacing:.03em;white-space:nowrap}
nav.g a:hover,nav.g a.on{color:var(--kaki-d)}
@media(max-width:840px){html.js nav.g a{display:none}}
html:not(.js) nav.g{flex-wrap:wrap;justify-content:flex-end;row-gap:6px}

/* ハンバーガー */
.menu-btn{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;padding:0 10px;margin-left:8px;flex-shrink:0}
.menu-btn span{display:block;height:2.4px;border-radius:2px;background:var(--wood-d);transition:.25s}
html.menu-open .menu-btn span:nth-child(1){transform:translateY(7.4px) rotate(45deg)}
html.menu-open .menu-btn span:nth-child(2){opacity:0}
html.menu-open .menu-btn span:nth-child(3){transform:translateY(-7.4px) rotate(-45deg)}
@media(max-width:840px){.menu-btn{display:flex}}
html.menu-open{overflow:hidden}
.m-nav{position:fixed;top:68px;left:0;right:0;z-index:49;background:rgba(251,247,239,.98);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:6px 22px calc(20px + env(safe-area-inset-bottom));display:none;flex-direction:column;max-height:calc(100vh - 68px);overflow-y:auto;box-shadow:0 18px 30px rgba(58,47,34,.12)}
html.menu-open .m-nav{display:flex}
.m-nav a{padding:14px 4px;border-bottom:1px dashed var(--line);text-decoration:none;font-size:.98rem;color:var(--ink);font-weight:500}
.m-nav a.on{color:var(--kaki-d)}

/* ===== 下層ページ見出し ===== */
.page-head{background:linear-gradient(155deg,var(--wood),var(--wood-d));color:var(--wood-l);padding:52px 0 44px;position:relative;overflow:hidden}
.page-head::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(246,239,227,.08) 1.5px,transparent 1.5px);background-size:26px 26px}
.page-head::after{content:"";position:absolute;right:-50px;top:-60px;width:220px;height:220px;border-radius:50%;background:rgba(246,239,227,.07)}
.page-head .wrap{position:relative}
.page-head .en{font-size:.68rem;letter-spacing:.36em;color:#e9c9ad}
.page-head h1{font-family:"Zen Old Mincho",serif;font-weight:600;font-size:clamp(1.5rem,3.6vw,2.05rem);letter-spacing:.06em;margin-top:8px}
.page-head p{font-size:.9rem;color:#f1e3d0;margin-top:10px;max-width:38em}
.crumb{font-size:.76rem;color:#e2c8ab;margin-top:16px}
.crumb a{color:#e2c8ab}

/* ===== section / typography ===== */
section{padding:60px 0}
.sec-label{display:flex;align-items:center;gap:11px;color:var(--kaki-d);font-size:.74rem;letter-spacing:.28em;font-weight:700;margin-bottom:10px}
.sec-label::before{content:"";width:26px;height:3px;border-radius:2px;background:var(--moss)}
h2{font-family:"Zen Old Mincho",serif;font-weight:600;font-size:clamp(1.32rem,3vw,1.68rem);letter-spacing:.04em;margin-bottom:14px;color:var(--wood-d)}
h3{font-family:"Zen Old Mincho",serif;font-weight:600;letter-spacing:.03em}
.sec-lead{color:var(--muted);max-width:42em;margin-bottom:34px;font-size:.94rem}
.note{font-size:.82rem;color:var(--muted)}
.alt{background:var(--cream)}
.alt2{background:var(--moss-l)}

/* ===== buttons(内部リンクのみ) ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:700;border-radius:99px;padding:13px 26px;font-size:.92rem;letter-spacing:.03em;transition:.2s;border:1.6px solid var(--wood)}
.btn-pri{background:var(--kaki);border-color:var(--kaki);color:#fff !important;box-shadow:0 8px 18px rgba(193,89,46,.26)}
.btn-pri:hover{background:var(--kaki-d);border-color:var(--kaki-d);transform:translateY(-1px)}
.btn-line{border:1.6px solid var(--wood);color:var(--wood-d);background:#fff}
.btn-line:hover{background:var(--wood-l)}
.btn-line.lt{border-color:var(--wood-l);color:var(--wood-l)}
.btn-line.lt:hover{background:var(--wood-l);color:var(--wood-d)}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}

/* ===== cards / grid ===== */
.card{background:var(--card);border:1px solid var(--line);border-radius:16px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:780px){.grid2,.grid3,.grid4{grid-template-columns:1fr}}
@media(min-width:481px) and (max-width:780px){.grid4{grid-template-columns:1fr 1fr}}

/* ===== 料金テーブル(デモ用の架空料金) ===== */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.price{width:100%;min-width:520px;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;font-size:.9rem}
table.price th,table.price td{border:1px solid var(--line);padding:13px 14px;text-align:left}
table.price th{background:var(--wood);color:#fff;font-weight:500;letter-spacing:.04em}
table.price td.yen{font-family:"Zen Old Mincho",serif;color:var(--kaki-d);font-weight:600;white-space:nowrap}
table.price td.rec{position:relative}
.price-note{font-size:.78rem;color:var(--muted);margin-top:10px}

/* ===== FAQ ===== */
details{background:var(--card);border:1px solid var(--line);border-radius:14px;margin-bottom:10px}
summary{cursor:pointer;padding:16px 44px 16px 20px;font-weight:700;font-size:.94rem;list-style:none;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"＋";position:absolute;right:18px;top:16px;color:var(--kaki)}
details[open] summary::after{content:"－"}
details .a{padding:0 20px 18px;font-size:.9rem;color:var(--muted)}

/* ===== 施術の流れ(ステップ) ===== */
.steps{counter-reset:step;list-style:none}
.step{position:relative;padding:0 0 32px 52px;border-left:2px solid var(--line);margin-left:19px}
.step:last-child{border-color:transparent;padding-bottom:0}
.step::before{counter-increment:step;content:counter(step);position:absolute;left:-21px;top:0;width:40px;height:40px;border-radius:50%;background:var(--kaki);color:#fff;font-family:"Zen Old Mincho",serif;font-weight:600;display:flex;align-items:center;justify-content:center;font-size:1.02rem}
.step h3{font-size:1.02rem;margin-bottom:6px;color:var(--wood-d)}
.step p{font-size:.9rem;color:var(--muted)}

/* ===== 柱(考え方)カード ===== */
.pillar{padding:26px 24px;text-align:center}
.pillar .ico{width:58px;height:58px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--moss)}
.pillar .ico svg{width:28px;height:28px}
.pillar:nth-child(2) .ico{background:var(--kaki)}
.pillar:nth-child(3) .ico{background:var(--wood)}
.pillar h3{font-size:1.05rem;color:var(--wood-d)}
.pillar p{font-size:.88rem;color:var(--muted);margin-top:8px;text-align:left}

/* ===== こんなお悩みチップ ===== */
.sym-strip{background:var(--wood);color:var(--wood-l);padding:18px 0}
.sym-strip .wrap{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sym-strip .t{font-size:.78rem;letter-spacing:.14em;color:#e9c9ad;margin-right:6px;font-weight:700}
.sym-chip{font-size:.82rem;border:1px solid rgba(246,239,227,.42);border-radius:99px;padding:4px 13px;color:#fff}

/* ===== ご提案(未実装機能の見せ方)・プレースホルダー ===== */
.propose{border:1.8px dashed var(--moss);border-radius:14px;padding:20px 22px;background:var(--moss-l)}
.propose .tag-p{display:inline-block;font-size:.7rem;letter-spacing:.16em;background:var(--moss);color:#fff;border-radius:3px;padding:2px 10px;margin-bottom:8px}
.propose p{font-size:.86rem;color:var(--muted)}

/* ===== hero ===== */
.hero{background:var(--cream);position:relative;overflow:hidden}
.hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:34px;padding:60px 22px 54px;align-items:center;max-width:1020px;margin:0 auto}
.est{font-family:"Zen Old Mincho",serif;font-size:.82rem;letter-spacing:.4em;color:var(--kaki-d)}
.hero h1{font-family:"Zen Old Mincho",serif;font-weight:600;font-size:clamp(1.7rem,4.4vw,2.65rem);line-height:1.55;letter-spacing:.05em;color:var(--wood-d);margin-top:10px}
.hero .lead{margin-top:14px;color:#544737;max-width:32em;font-size:.96rem}
.badge-row{margin-top:20px;display:flex;gap:9px;flex-wrap:wrap}
.badge{font-size:.78rem;background:#fff;border:1px solid var(--line);border-radius:99px;padding:5px 13px;color:#544737}
.badge.gr{background:var(--moss);border-color:var(--moss);color:#fff;font-weight:700}
.hero .cta-row{margin-top:24px}
.hero-ph{display:flex;justify-content:center}
.hero-ph svg{width:min(300px,100%);filter:drop-shadow(0 18px 40px rgba(107,67,37,.18))}
@media(max-width:780px){
  .hero-in{grid-template-columns:1fr;padding:38px 22px 40px}
  .hero-ph{order:-1;margin-bottom:6px}
  .hero-ph svg{width:190px}
}

/* ===== CTAバンド(内部リンクのみ) ===== */
.cta-band{background:linear-gradient(155deg,var(--wood),var(--wood-d));color:var(--wood-l);text-align:center;padding:54px 22px;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(246,239,227,.08) 1.5px,transparent 1.5px);background-size:26px 26px}
.cta-band>*{position:relative}
.cta-band h2{color:#fff;margin-bottom:8px}
.cta-band p{font-size:.9rem;color:#f1e3d0;margin-bottom:24px}
.cta-band .btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ===== footer ===== */
footer{background:var(--wood-d);color:#e6d9c4;padding:40px 0 118px;font-size:.85rem;margin-top:6px}
footer .fx{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
footer b{color:#fff;font-family:"Zen Old Mincho",serif;letter-spacing:.06em;font-size:1.04rem}
footer nav{margin-top:14px;display:flex;gap:16px;flex-wrap:wrap;font-size:.8rem}
footer nav a{color:#cbb99a;text-decoration:none;padding:4px 0}
footer nav a:hover{color:#fff}
footer .fic{margin-top:4px;color:#cbb99a;font-size:.86rem}
footer .disclaim{margin-top:26px;padding-top:18px;border-top:1px solid var(--line-d);font-size:.78rem;color:#b7a689;line-height:1.9;max-width:56em}

/* ===== sticky cta(電話・地図なし: 内部リンクのみ) ===== */
.sticky-cta{position:fixed;bottom:0;left:0;right:0;z-index:60;display:none;grid-template-columns:1fr 1fr;gap:1px;background:var(--wood-d);padding-bottom:env(safe-area-inset-bottom)}
.sticky-cta a{padding:15px 8px;text-align:center;font-weight:700;text-decoration:none;font-size:.9rem}
.s-1{background:var(--kaki);color:#fff}
.s-2{background:var(--wood);color:var(--wood-l)}
@media(max-width:780px){.sticky-cta{display:grid}}

/* ===== 架空店舗デモ・固定バッジ ===== */
.demo-badge{position:fixed;right:16px;bottom:20px;z-index:70;display:inline-flex;align-items:center;gap:7px;background:var(--kaki);color:#fff;text-decoration:none;font-size:.76rem;font-weight:700;letter-spacing:.02em;padding:9px 15px;border-radius:99px;box-shadow:0 10px 24px rgba(58,47,34,.28);border:1.5px solid rgba(255,255,255,.35)}
.demo-badge:hover{background:var(--kaki-d)}
.demo-badge svg{width:15px;height:15px;flex-shrink:0}
@media(max-width:780px){.demo-badge{bottom:calc(64px + env(safe-area-inset-bottom) + 14px);right:12px;font-size:.72rem;padding:8px 13px}}
@media(max-width:400px){.demo-badge span{display:none}.demo-badge{padding:10px;border-radius:50%}}

/* ===== reveal(JS有効時のみ) ===== */
html.js .rv{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}
html.js .rv.in{opacity:1;transform:none}

/* ===== 装飾: 木目/木漏れ日の帯 ===== */
.komorebi-band{height:14px;background:linear-gradient(90deg,var(--wood) 0 20%,var(--kaki) 20% 40%,var(--moss) 40% 60%,var(--wood) 60% 80%,var(--kaki) 80% 100%);opacity:.85}

/* ===== about: 空間説明カード ===== */
.room-note{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.room-note svg{width:min(220px,100%);flex-shrink:0}
.room-note .tx{flex:1;min-width:240px}

/* ===== 375px幅 微調整 ===== */
@media(max-width:430px){
  .logo-t .disp{font-size:1.02rem}
  .logo-t small{display:none}
  table.price{font-size:.78rem}
  table.price th,table.price td{padding:9px 8px}
  .page-head h1{font-size:1.4rem}
  .cta-band h2{font-size:1.2rem;letter-spacing:.02em}
}
