/* 小沢ガーデン 公開ホームページ 試作 — LocAl Dive homepage template pack 準拠（単一CSS・外部依存は Google Fonts のみ） */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --tomato:#d6402b;--tomato-deep:#a82a1c;--tomato-soft:#fbe3dc;
  --orange:#f08a3c;--yellow:#f4c542;--green:#4f8a3a;--green-deep:#2f5e24;--green-soft:#e7f1df;
  --cream:#fffaf2;--paper:#ffffff;--ink:#2b2420;--ink-soft:#5e544d;--line:#eadfd2;
  --shadow:0 12px 32px rgba(120,50,30,.12);
  --radius:22px;
  --font-body:'Zen Kaku Gothic New',-apple-system,'Hiragino Sans','Noto Sans JP',sans-serif;
  --font-head:'Shippori Mincho B1','Hiragino Mincho ProN',serif;
}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--ink);background:var(--cream);line-height:1.85;overflow-x:hidden;font-size:16px}
img,svg{max-width:100%;display:block}
a{color:var(--tomato-deep)}
a:hover{color:var(--tomato)}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:10px 16px;z-index:999}
.skip:focus{left:12px;top:12px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* 試作バナー */
.preview-bar{background:repeating-linear-gradient(45deg,#2b2420,#2b2420 12px,#3a302a 12px,#3a302a 24px);color:#ffe9a8;font-size:.78rem;text-align:center;padding:6px 12px;letter-spacing:.04em}
.preview-bar strong{color:#fff}

/* 要確認 札 */
.tbc{display:inline-block;font-size:.68rem;font-weight:700;background:#fff3c4;color:#7a5a00;border:1px dashed #d9b440;border-radius:999px;padding:1px 9px;margin-left:6px;vertical-align:middle;letter-spacing:.02em;white-space:nowrap;font-family:var(--font-body)}
.tbc-block{border:2px dashed #d9b440;background:#fffbea;border-radius:16px;padding:14px 16px;font-size:.88rem;color:#5c4700}
.tbc-block b{color:#7a5a00}

/* ヘッダー */
.header{position:sticky;top:0;z-index:100;background:rgba(255,250,242,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.header-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;gap:16px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand-mark{width:38px;height:38px;flex:none}
.brand-name{font-family:var(--font-head);font-weight:700;font-size:1.2rem;line-height:1.2}
.brand-name small{display:block;font-family:var(--font-body);font-size:.68rem;color:var(--ink-soft);font-weight:500;letter-spacing:.08em}
.nav ul{list-style:none;display:flex;gap:4px;align-items:center}
.nav a{display:block;padding:8px 12px;border-radius:999px;text-decoration:none;color:var(--ink);font-weight:700;font-size:.9rem}
.nav a:hover,.nav a[aria-current="page"]{background:var(--tomato-soft);color:var(--tomato-deep)}
.nav .nav-cta{background:var(--tomato);color:#fff}
.nav .nav-cta:hover{background:var(--tomato-deep);color:#fff}
.menu-btn{display:none;background:none;border:2px solid var(--line);border-radius:12px;padding:6px 12px;font:inherit;font-weight:700;color:var(--ink);cursor:pointer}
@media (max-width:860px){
  .menu-btn{display:block}
  .nav{position:absolute;left:0;right:0;top:100%;background:var(--cream);border-bottom:1px solid var(--line);display:none}
  .nav.open{display:block}
  .nav ul{flex-direction:column;align-items:stretch;padding:10px 16px 18px}
  .nav a{padding:12px 14px;font-size:1rem}
}

/* 熟度プログレス（スクロールで緑→赤に色づく） */
.ripeness{position:fixed;left:0;top:0;height:4px;width:100%;z-index:200;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,var(--green),var(--yellow),var(--orange),var(--tomato))}

/* 共通レイアウト */
main{display:block}
.section{padding:88px 20px}
.container{max-width:1100px;margin:0 auto}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:700;letter-spacing:.14em;color:var(--green-deep);text-transform:uppercase}
.eyebrow::before{content:"";width:22px;height:2px;background:currentColor}
h1,h2,h3{font-family:var(--font-head);line-height:1.4;color:var(--ink)}
h2{font-size:clamp(1.6rem,3.6vw,2.3rem);margin:10px 0 18px}
h3{font-size:1.2rem;margin-bottom:8px}
.lead{font-size:1.05rem;color:var(--ink-soft);max-width:680px}
.center{text-align:center}
.center .lead{margin:0 auto}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:999px;font-weight:700;text-decoration:none;border:2px solid transparent;transition:transform .25s,box-shadow .25s,background .25s;font-size:1rem;cursor:pointer;font-family:inherit}
.btn-primary{background:var(--tomato);color:#fff;box-shadow:0 8px 20px rgba(214,64,43,.3)}
.btn-primary:hover{background:var(--tomato-deep);color:#fff;transform:translateY(-2px)}
.btn-ghost{background:#fff;color:var(--green-deep);border-color:var(--green)}
.btn-ghost:hover{background:var(--green-soft);color:var(--green-deep)}
.btn[disabled],.btn[aria-disabled="true"]{background:#cfc6bd;color:#fff;box-shadow:none;cursor:not-allowed;transform:none}
.btn-lg{padding:16px 32px;font-size:1.05rem}
.btn-sm{padding:8px 16px;font-size:.88rem;margin-top:8px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
@media (max-width:600px){.btn-lg{width:100%;justify-content:center}}

/* イラスト（実際の写真が届くまでのイメージ図。写真に見せかけない） */
.illust{margin:0;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.illust img{width:100%;height:auto}
.illust figcaption{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:10px 16px 12px;font-size:.8rem;color:var(--ink-soft);border-top:1px solid var(--line);background:#fffdf9}
.illust-badge{display:inline-block;background:var(--green-soft);color:var(--green-deep);font-weight:700;font-size:.72rem;border-radius:999px;padding:2px 10px;letter-spacing:.04em;white-space:nowrap}
.illust-foot{margin-top:18px;font-size:.82rem;color:var(--ink-soft)}
.illust-foot .illust-badge{margin-right:8px}
.wide-media{margin-top:26px}
/* 本物の写真（photos.json で承認済みのものだけ build で差し込まれる） */
.photo-real{margin:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#fff}
.photo-real img{width:100%;height:auto;object-fit:cover}
.photo-note{padding:8px 14px;font-size:.78rem;color:var(--ink-soft);background:#fffdf9}

/* ヒーロー（大きなキャッチコピー＋角丸のメインビジュアル） */
.hero{position:relative;overflow:hidden;padding:64px 20px 80px;text-align:center;background:
  radial-gradient(1100px 480px at 50% -14%,#ffe2d6 0%,transparent 62%),
  radial-gradient(800px 420px at -10% 105%,#e3f0d6 0%,transparent 60%),var(--cream)}
.hero-inner{max-width:880px;margin:0 auto}
.hero-tag{display:inline-flex;align-items:center;gap:8px;background:#fff;border-radius:999px;padding:8px 18px;font-size:.85rem;font-weight:700;color:var(--tomato-deep);box-shadow:0 4px 14px rgba(214,64,43,.12)}
.hero-tag i{width:12px;height:12px;border-radius:50%;background:var(--tomato);box-shadow:inset -3px -3px 0 rgba(0,0,0,.12);display:inline-block}
.hero h1{font-size:clamp(2.2rem,6.4vw,3.8rem);letter-spacing:.02em;margin:18px 0 16px;line-height:1.3}
.hero h1 .accent{color:var(--tomato);display:inline-block}
.hero .lead{font-size:1.08rem;margin:0 auto}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;justify-content:center}
.hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;justify-content:center}
.chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:700;color:var(--ink-soft)}
.chip i{width:10px;height:10px;border-radius:50%;background:var(--green);display:inline-block}
.hero-visual{position:relative;max-width:1040px;margin:40px auto 0;aspect-ratio:16/9;border-radius:32px;overflow:hidden;box-shadow:0 18px 44px rgba(120,50,30,.18);background:#fff}
.hero-visual .vine,.hero-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-visual picture{position:absolute;inset:0}
.hero-visual figcaption{position:absolute;left:14px;bottom:14px;right:14px;margin:0 auto;width:fit-content;max-width:calc(100% - 28px);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 8px;background:rgba(255,255,255,.94);border-radius:999px;padding:6px 14px;font-size:.78rem;color:var(--ink-soft);text-align:left}
@media (max-width:860px){.hero{padding:40px 16px 56px}.hero-visual{margin-top:28px}}
@media (max-width:600px){.hero-visual{aspect-ratio:4/3;border-radius:22px}.hero-visual figcaption{border-radius:14px;bottom:10px}}

/* 熟していくトマト（ヒーロー）：付け根に近い実から順に色づく */
.fruit{transition:fill 1.4s ease}
.ripen .fruit.f1{fill:#c8321f}
.ripen .fruit.f2{fill:var(--tomato);transition-delay:.3s}
.ripen .fruit.f3{fill:#dc4a2c;transition-delay:.6s}
.ripen .fruit.f4{fill:#e2552c;transition-delay:.9s}
.ripen .fruit.f5{fill:#ea6b30;transition-delay:1.2s}
.ripen .fruit.f6{fill:var(--orange);transition-delay:1.5s}
.ripen .fruit.f7{fill:#e9a23a;transition-delay:1.8s}
.ripen .fruit.f8{fill:#cfc35a;transition-delay:2.1s}
.sway{transform-origin:50% 0;animation:sway 6s ease-in-out infinite}
@keyframes sway{0%,100%{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}
.float-leaf{animation:floaty 7s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* スクロール表示 */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.2s}.reveal.d3{transition-delay:.3s}

/* 3つの柱 */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}
.pillar{background:#fff;border-radius:var(--radius);padding:28px 24px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.pillar .num::before{content:attr(data-num)}
.pillar .num{font-family:var(--font-head);font-size:2.6rem;color:var(--tomato-soft);position:absolute;right:18px;top:6px;font-weight:700}
.pillar .icon{width:52px;height:52px;border-radius:16px;background:var(--green-soft);display:grid;place-items:center;margin-bottom:14px}
.pillar p{color:var(--ink-soft);font-size:.95rem}
@media (max-width:860px){.pillars{grid-template-columns:1fr}}

/* 左右レイアウト */
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.split.rev .split-media{order:2}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:24px}.split.rev .split-media{order:0}}

/* 品種カード・主な仕事カード */
.varieties{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;margin-top:36px}
.variety{background:#fff;border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);text-align:center;transition:transform .3s}
.variety:hover{transform:translateY(-6px)}
.variety .ball{width:92px;height:92px;margin:0 auto 12px}
.variety .spot{width:132px;height:132px;margin:0 auto 12px}
.variety .tag{font-size:.75rem;color:var(--green-deep);font-weight:700;letter-spacing:.1em}
.variety p{font-size:.9rem;color:var(--ink-soft);text-align:left;margin-top:8px}

/* 色のついた背景のセクション */
.section-tint{background:linear-gradient(180deg,#fff3ea,#f3f8ec);border-radius:40px;max-width:1200px;margin:0 auto}
@media (max-width:600px){.section-tint{border-radius:24px}}

/* ページ内の目次 */
.page-toc{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.page-toc a{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:.85rem;font-weight:700;color:var(--green-deep);text-decoration:none}
.page-toc a:hover{border-color:var(--green)}

/* 仕事の図解（ステップ） */
.guide-block{margin-top:40px}
.guide-title{display:flex;align-items:center;gap:10px;font-size:1.3rem}
.guide-title::before{content:"";width:14px;height:14px;border-radius:50%;background:var(--tomato);box-shadow:inset -3px -3px 0 rgba(0,0,0,.14);flex:none}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:16px}
.steps.two{grid-template-columns:repeat(2,1fr)}
.step{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.step figure{margin:0;position:relative}
.step img{width:100%;height:auto}
.illust-tag{position:absolute;left:10px;top:10px;background:rgba(255,255,255,.92);color:var(--green-deep);font-size:.7rem;font-weight:700;border-radius:999px;padding:2px 10px}
.step-body{padding:16px 18px 20px}
.step-no{display:inline-block;font-weight:700;font-size:.72rem;letter-spacing:.12em;color:#fff;background:var(--tomato-deep);border-radius:999px;padding:2px 10px;margin-bottom:6px}
.step h4{font-family:var(--font-head);font-size:1.12rem;margin-bottom:4px}
.step p{font-size:.92rem;color:var(--ink-soft)}
@media (max-width:860px){.steps,.steps.two{grid-template-columns:1fr}}

/* 色づきの凡例 */
.ripe-legend{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 22px;margin:16px 0 0;font-weight:700;font-size:.9rem;color:var(--ink-soft)}
.ripe-legend li{display:inline-flex;align-items:center;gap:8px}
.ripe-legend li+li::before{content:"→";color:var(--tomato);margin-right:14px}
.ripe-legend i{width:16px;height:16px;border-radius:50%;display:inline-block}
.ripe-legend .c1{background:#8fbf5a}.ripe-legend .c2{background:#d9c45a}.ripe-legend .c3{background:#c8321f}

/* 写真ギャラリー（承認済みの写真だけが並ぶ） */
.gallery{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:24px}
.gallery figure{margin:0;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 4px 15px rgba(0,0,0,.08)}
.gallery img{width:100%;height:auto;aspect-ratio:1;object-fit:cover}
.gallery-empty{margin-top:22px;border:2px dashed var(--line);border-radius:var(--radius);padding:22px;text-align:center;color:var(--ink-soft);background:#fffdf9;font-size:.92rem}
.gallery-empty b{color:var(--ink)}

/* ティッカー（横に流れる帯） */
.ticker{overflow:hidden;background:var(--green-deep);color:#f4f7ea;padding:14px 0;white-space:nowrap}
.ticker-track{display:inline-flex;gap:48px;animation:ticker 32s linear infinite;padding-left:48px;font-family:var(--font-head);font-size:1.05rem}
.ticker-track span::before{content:"●";color:var(--tomato);margin-right:14px;font-size:.7rem;vertical-align:middle}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* 1日の流れ タイムライン */
.timeline{position:relative;margin-top:36px;padding-left:34px}
.timeline::before{content:"";position:absolute;left:11px;top:6px;bottom:6px;width:3px;background:linear-gradient(var(--green),var(--tomato));border-radius:3px}
.tl-item{position:relative;padding:0 0 26px}
.tl-item::before{content:"";position:absolute;left:-30px;top:6px;width:18px;height:18px;border-radius:50%;background:#fff;border:4px solid var(--tomato)}
.tl-time{font-weight:700;color:var(--tomato-deep);font-size:.9rem}
.tl-item p{color:var(--ink-soft);font-size:.95rem}

/* 季節の仕事 タブ */
.season-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 18px}
.season-tabs button{font:inherit;font-weight:700;border:2px solid var(--line);background:#fff;border-radius:999px;padding:8px 16px;cursor:pointer;color:var(--ink-soft)}
.season-tabs button[aria-selected="true"]{background:var(--tomato);border-color:var(--tomato);color:#fff}
.season-panel{background:#fff;border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);min-height:160px}
.season-panel[hidden]{display:none}
.season-panel ul{padding-left:1.2em;color:var(--ink-soft)}

/* 働く環境 条件表 */
.facts{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.facts th,.facts td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;font-size:.95rem}
.facts th{width:30%;background:#fbf4ea;font-weight:700;color:var(--ink)}
.facts tr:last-child th,.facts tr:last-child td{border-bottom:none}
@media (max-width:600px){.facts th,.facts td{display:block;width:100%}.facts th{border-bottom:none;padding-bottom:4px}}

/* 声カード */
.voices{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:30px}
.voice{background:#fff;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);border-top:6px solid var(--green)}
.voice p{font-size:.93rem;color:var(--ink-soft)}
.voice .who{margin-top:10px;font-size:.8rem;font-weight:700;color:var(--green-deep)}

/* FAQ アコーディオン */
.faq{max-width:820px;margin:30px auto 0}
.faq-cat{margin:34px 0 10px;font-family:var(--font-head);font-size:1.15rem;color:var(--green-deep)}
.faq-item{background:#fff;border-radius:16px;box-shadow:0 4px 14px rgba(120,50,30,.07);margin-bottom:12px;overflow:hidden}
.faq-q{width:100%;text-align:left;background:none;border:none;font:inherit;font-weight:700;padding:18px 52px 18px 20px;cursor:pointer;position:relative;color:var(--ink);line-height:1.6}
.faq-q::before{content:"Q";color:var(--tomato);font-family:var(--font-head);margin-right:10px;font-size:1.1rem}
.faq-q::after{content:"";position:absolute;right:20px;top:50%;width:12px;height:12px;border-right:3px solid var(--tomato);border-bottom:3px solid var(--tomato);transform:translateY(-70%) rotate(45deg);transition:transform .3s}
.faq-q[aria-expanded="true"]::after{transform:translateY(-30%) rotate(-135deg)}
.faq-a{padding:0 20px 18px 46px;color:var(--ink-soft);font-size:.95rem}
.faq-a[hidden]{display:none}

/* 問い合わせフォーム */
.form-card{background:#fff;border-radius:var(--radius);padding:30px;box-shadow:var(--shadow);max-width:760px;margin:30px auto 0}
.field{margin-bottom:18px}
.field label,.field legend{display:block;font-weight:700;margin-bottom:6px}
.field .req{font-size:.72rem;background:var(--tomato);color:#fff;border-radius:6px;padding:1px 6px;margin-left:6px;vertical-align:middle}
.field input,.field select,.field textarea{width:100%;font:inherit;padding:12px 14px;border:2px solid var(--line);border-radius:12px;background:#fffdf9;color:var(--ink)}
.field input:disabled,.field select:disabled,.field textarea:disabled{background:#f3eee8;color:#9b918a}
.field .hint{font-size:.8rem;color:var(--ink-soft);margin-top:4px}
fieldset{border:none}
.radio-row{display:flex;flex-wrap:wrap;gap:10px}
.radio-row label{font-weight:500;display:inline-flex;gap:6px;align-items:center;border:2px solid var(--line);border-radius:999px;padding:6px 14px}
/* 縦一列のフォーム（金子様からいただいた例に合わせる） */
.form-stack{max-width:640px}
.form-lead{font-size:.88rem;color:var(--ink-soft);margin-bottom:20px}
.form-lead .req{font-size:.7rem;background:var(--tomato);color:#fff;border-radius:6px;padding:1px 6px;margin:0 2px}
.field .opt{font-size:.72rem;background:#efe8df;color:var(--ink-soft);border-radius:6px;padding:1px 6px;margin-left:6px;vertical-align:middle}
.field.agree label{display:flex;align-items:center;gap:8px;font-weight:500}
.field.agree input{width:20px;height:20px;flex:none}
.spam-box{display:flex;align-items:center;gap:12px;border:1px solid #cfd6e0;background:#f6f8fb;border-radius:10px;padding:12px 14px;font-size:.82rem;color:#34445a;margin:6px 0 22px}
.spam-box svg{flex:none}
.btn-submit{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;background:#23395b;color:#fff;border:none;border-radius:14px;padding:16px 20px;font:inherit;font-size:1.12rem;font-weight:700;letter-spacing:.08em;cursor:pointer;box-shadow:0 8px 20px rgba(35,57,91,.25);transition:background .2s}
.btn-submit:hover{background:#1a2b45}
.btn-submit small{font-size:.72rem;font-weight:500;letter-spacing:0;opacity:.9}
.btn-submit[aria-disabled="true"]{background:#3a5078;cursor:not-allowed;box-shadow:none}

/* 問い合わせの入口（カード2枚） */
.contact-section{max-width:820px;margin:0 auto;background:#fff;border-radius:32px;padding:46px 28px;box-shadow:var(--shadow);text-align:center}
.contact-section p{color:var(--ink-soft);max-width:620px;margin:0 auto}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin:24px 0 14px}
.contact-card{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;background:#fff6f1;border:2px solid transparent;border-radius:20px;padding:22px 18px;text-decoration:none;color:var(--ink);font:inherit;cursor:pointer;transition:border-color .2s,transform .2s}
.contact-card:hover{border-color:var(--tomato);transform:translateY(-3px);color:var(--ink)}
.contact-card .icon{width:56px;height:56px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--tomato-deep);box-shadow:0 4px 12px rgba(214,64,43,.12);margin-bottom:6px}
.contact-card .label{font-size:.8rem;color:var(--green-deep);font-weight:700}
.contact-card .value{font-size:1.08rem;font-weight:700;color:var(--tomato-deep)}
.hint{font-size:.8rem;color:var(--ink-soft)}

/* CTA 帯 */
.cta-band{background:linear-gradient(120deg,var(--tomato),#e2672e);color:#fff;border-radius:32px;padding:48px 28px;text-align:center;position:relative;overflow:hidden}
.cta-band h2{color:#fff}
.cta-band p{opacity:.95;max-width:620px;margin:0 auto 22px}
.cta-band .btn-primary{background:#fff;color:var(--tomato-deep)}
.cta-band .btn-primary:hover{background:#fff5ef}

/* ページヘッダー */
.page-hero{padding:64px 20px 40px;background:radial-gradient(900px 400px at 90% 0%,#ffe2d6,transparent 60%),var(--cream);border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(1.8rem,4.6vw,2.7rem);margin:10px 0 10px}
.breadcrumb{font-size:.8rem;color:var(--ink-soft)}
.breadcrumb a{color:var(--ink-soft)}

/* 本文ページ（規約など） */
.prose{max-width:820px;margin:0 auto}
.prose h2{font-size:1.3rem;margin:34px 0 10px}
.prose p,.prose li{color:var(--ink-soft);font-size:.96rem}
.prose ul,.prose ol{padding-left:1.4em;margin:8px 0}

/* フッター */
.footer{background:#2b2420;color:#e9e1d8;padding:56px 20px 28px;margin-top:40px}
.footer-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:30px}
.footer a{color:#ffd6c7}
.footer ul{list-style:none}
.footer li{margin:6px 0;font-size:.9rem}
.footer h2{color:#fff;font-size:1rem;margin:0 0 10px}
.footer .footer-cta{margin-top:16px}
.footer .footer-cta .btn-primary{color:#fff;box-shadow:none}
.footer .copy{max-width:1100px;margin:30px auto 0;border-top:1px solid #4a3f38;padding-top:18px;font-size:.78rem;color:#b7aca2;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr}}

/* AI FAQ チャット（下書き表示）：右下の丸いボタン＋開くパネル */
.chat-toggle{position:fixed;right:20px;bottom:20px;z-index:300;width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--tomato),var(--tomato-deep));color:#fff;border:none;display:grid;place-items:center;box-shadow:0 10px 26px rgba(168,42,28,.38);cursor:pointer;transition:transform .2s}
.chat-toggle:hover{transform:translateY(-2px)}
.chat-badge{position:absolute;top:-4px;right:-4px;background:var(--green-deep);color:#fff;border:2px solid #fff;border-radius:999px;font-size:.64rem;font-weight:700;line-height:1;padding:4px 6px}
.chat-label{position:absolute;right:76px;top:50%;transform:translateY(-50%);white-space:nowrap;background:#fff;color:var(--tomato-deep);font-size:.82rem;font-weight:700;border-radius:999px;padding:7px 14px;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.chat-toggle[aria-expanded="true"] .chat-label{display:none}
.chat-panel{position:fixed;right:20px;bottom:96px;z-index:300;width:min(380px,calc(100vw - 32px));max-height:min(580px,calc(100vh - 130px));background:#fff;border-radius:22px;box-shadow:0 20px 50px rgba(0,0,0,.25);display:flex;flex-direction:column;overflow:hidden}
.chat-panel[hidden]{display:none}
.chat-head{background:linear-gradient(135deg,var(--tomato),var(--tomato-deep));color:#fff;padding:14px 16px;display:flex;gap:10px;align-items:center}
.chat-head div{flex:1}
.chat-head b{font-size:.98rem}
.chat-head small{display:flex;align-items:center;gap:6px;font-size:.72rem;opacity:.92}
.chat-head small i{width:7px;height:7px;border-radius:50%;background:#ffe9a8}
.chat-avatar{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.22) url("img/favicon.svg") center/24px no-repeat;flex:none}
.chat-form-link{display:block;text-align:center;font-size:.8rem;font-weight:700;padding:10px 12px;border-top:1px solid var(--line);color:var(--tomato-deep);text-decoration:none;background:#fffaf6}
.chat-form-link:hover{text-decoration:underline}
.chat-close{background:none;border:none;color:#fff;font-size:1.3rem;cursor:pointer;line-height:1}
.chat-draft{background:#fff3c4;color:#6a4f00;font-size:.75rem;padding:8px 14px;border-bottom:1px dashed #d9b440}
.chat-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:#fbf7f1}
.msg{max-width:85%;padding:10px 13px;border-radius:14px;font-size:.9rem;line-height:1.6;white-space:pre-wrap}
.msg.bot{background:#fff;border:1px solid var(--line);align-self:flex-start}
.msg.me{background:var(--tomato);color:#fff;align-self:flex-end}
.chat-suggest{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;border-top:1px solid var(--line)}
.chat-suggest button{font:inherit;font-size:.78rem;border:1px solid var(--green);color:var(--green-deep);background:#fff;border-radius:999px;padding:5px 10px;cursor:pointer}
.chat-input{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line)}
.chat-input input{flex:1;font:inherit;padding:10px 12px;border:2px solid var(--line);border-radius:12px}
.chat-input button{width:40px;height:40px;flex:none;display:grid;place-items:center;background:var(--tomato);color:#fff;border:none;border-radius:50%;cursor:pointer}

@media (max-width:860px){.chat-label{display:none}}
@media (max-width:600px){
  .chat-toggle{right:14px;bottom:14px;width:58px;height:58px}
  .chat-panel{right:12px;bottom:82px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}
