/* =========================================================
   手づくり村 鯉艸郷 — 下層ページの部品（発注書 S16b）
   トップ（style.css）と同じパーツで下層ページを組む：英字ラベル＋日本語見出し＋手描きの波線（.sec-head）、
   紙のカード、ピル型ボタン（.btn／.btn-line）、白フチ写真（.frame）、波形の区切り（.band＋.wave）。
   トークン・書体・ボタンは style.css のもの。ここは下層ページだけの並べ方と部品。
   文字の大きさ（発注書 S24）：本文は --t-body（SP 15px・PC 16px。デモの値）、ほかも「標準の値 × var(--fs)」（style.css の説明）。
   ========================================================= */

/* ---------- 下層ページの頭 ---------- */
.phead{
  position:relative; overflow:clip;
  padding:clamp(20px, 3vw, 40px) var(--gutter) clamp(36px, 5vw, 64px);
  --tone:var(--c-fuji-pale);
}
.phead--ayame{ --tone:var(--c-ayame-pale); }
.phead--leaf{ --tone:var(--c-leaf-pale); }
.phead--sun{ --tone:var(--c-sun-pale); }
.phead--kaya{ --tone:var(--c-kaya-pale); }
.phead__bg{ position:absolute; inset:0; pointer-events:none; }
.phead__blob{ position:absolute; right:-6%; top:-30%; width:min(620px, 70vw); height:auto; color:var(--tone); opacity:.9; }
.phead__inner{ display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:12px 32px; }
.phead .crumbs{ grid-column:1 / -1; }
.phead__text{ position:relative; min-width:0; }
.phead__en{ margin:14px 0 2px; font-size:clamp(38px, 5vw, 66px); }
.phead__title{ font-size:calc(clamp(24.5px, 2.88vw, 36px) * var(--fs)); letter-spacing:.1em; line-height:1.45; }
.phead__squiggle{ margin:12px 0 0; }
.phead__lead{ margin:18px 0 0; max-width:42em; font-size:calc(15.5px * var(--fs)); line-height:2; }
.phead__ill{ position:relative; width:clamp(96px, 12vw, 160px); height:auto; filter:drop-shadow(0 8px 14px rgba(42,37,48,.1)); animation:floatY 6s ease-in-out infinite; }
/* 横長の絵（花畑。発注書 S19）は横長のまま大きめに・浮かせない */
.phead__ill--wide{ width:clamp(200px, 26vw, 380px); animation:none; }
.phead__btns{ display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }

/* パンくず */
.crumbs ol{ display:flex; flex-wrap:wrap; align-items:center; gap:2px 0; margin:0; padding:0; list-style:none; font-size:calc(14px * var(--fs)); line-height:1.6; color:var(--c-ink-sub); }
.crumbs li{ display:inline-flex; align-items:center; }
.crumbs li + li::before{ content:""; width:6px; height:6px; margin:0 10px; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; transform:rotate(45deg); opacity:.6; }
.crumbs a{ color:var(--c-ai); text-decoration:none; }
.crumbs a:hover{ text-decoration:underline; }
.crumbs [aria-current]{ color:var(--c-ink); font-weight:700; }

/* ---------- 下層ページのセクション ---------- */
.psec{ position:relative; padding:clamp(40px, 6vw, 88px) var(--gutter); }
.psec--first{ padding-top:clamp(8px, 2vw, 24px); }
.psec--tight{ padding-top:0; padding-bottom:clamp(8px, 2vw, 16px); }
.psec + .psec:not(.g-sec--alt){ padding-top:clamp(16px, 3vw, 40px); }
.psec-head{ margin-bottom:clamp(24px, 4vw, 44px); }
.psec-head .sec-en{ font-size:clamp(34px, 4.2vw, 56px); }
.psec-head.sec-head--left{ max-width:none; }

/* 色の帯（上下を波形で区切る） */
.band{ position:relative; margin:clamp(16px, 3vw, 32px) 0; }
.band__body{ background:var(--bandc); }
.band .wave{ color:var(--bandc); }
.band--leaf{ --bandc:var(--c-leaf-pale); }
.band--fuji{ --bandc:var(--c-fuji-pale); }
.band--kaya{ --bandc:var(--c-kaya-pale); }
.band--sun{ --bandc:var(--c-sun-pale); }
.band--paper{ --bandc:var(--c-base-deep); }

/* 本文 */
.prose{ font-size:calc(15.5px * var(--fs)); line-height:2; }
.prose p{ margin:0 0 1em; }
.prose p:last-child{ margin-bottom:0; }
.prose a{ color:var(--c-ai); font-weight:700; }
.prose h2,.prose h3{ color:var(--c-ai); letter-spacing:.06em; }
.prose h2{ margin:2em 0 .6em; font-size:calc(19px * var(--fs)); }
.prose h3{ margin:1.6em 0 .4em; font-size:calc(17px * var(--fs)); }
.prose ul,.prose ol{ margin:0 0 1em; padding-left:1.4em; }
.prose li{ margin-bottom:.3em; }

/* 紙のカード */
.pcard{ position:relative; padding:clamp(22px, 3vw, 36px); border-radius:var(--radius-l); background:var(--c-paper); box-shadow:var(--shadow-card); }
.pcard + .pcard{ margin-top:20px; }
.pcard__title{ display:flex; align-items:center; gap:10px; margin:0 0 12px; font-size:calc(17.5px * var(--fs)); color:var(--c-ai); letter-spacing:.06em; line-height:1.5; }
.pcard__title .i{ width:26px; height:26px; color:var(--c-fuji); }
.pcard p{ margin:0 0 .8em; font-size:var(--t-body); line-height:1.95; }
.pcard p:last-child{ margin-bottom:0; }

/* データの表（見出し：内容） */
.dlist{ margin:0; padding:4px 22px; border-radius:var(--radius-m); background:#fff; box-shadow:var(--shadow-card); }
.dlist > div{ display:grid; grid-template-columns:9.5em minmax(0,1fr); gap:6px 16px; padding:14px 0; border-bottom:1px dashed var(--rule); font-size:var(--t-body); line-height:1.8; }
.dlist > div:last-child{ border-bottom:0; }
.dlist dt{ font-weight:700; color:var(--c-ai); }
.dlist dd{ margin:0; }
.dlist dd a{ color:var(--c-ai); font-weight:700; }
.dlist small{ display:block; font-size:calc(14px * var(--fs)); color:var(--c-ink-sub); }

/* 表（料金・品種など） */
.dtable{ width:100%; border-collapse:collapse; overflow:hidden; border-radius:var(--radius-m); background:#fff; box-shadow:var(--shadow-card); font-size:var(--t-body); }
.dtable th,.dtable td{ padding:12px 16px; border-bottom:1px solid var(--rule); text-align:left; line-height:1.7; }
.dtable thead th{ background:var(--c-ai); color:#fff; font-size:calc(14.5px * var(--fs)); font-weight:700; white-space:nowrap; }
.dtable tbody tr:last-child th,.dtable tbody tr:last-child td{ border-bottom:0; }
.dtable tbody th{ font-weight:700; color:var(--c-ai); }
.dtable .num{ font-family:var(--ff-en); font-weight:700; white-space:nowrap; font-variant-numeric:tabular-nums; }
.dtable tr.is-now{ background:var(--c-ayame-pale); }

/* 箇条（・で始まる注意書き） */
.plist{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.plist li{ position:relative; padding-left:1.3em; font-size:var(--t-body); line-height:1.85; }
.plist li::before{ content:""; position:absolute; left:.2em; top:.72em; width:7px; height:7px; border-radius:50%; background:var(--c-fuji); }

/* お知らせの囲み（注意・案内） */
.pnote{ display:flex; gap:14px; align-items:flex-start; padding:18px 20px; border-radius:var(--radius-m); background:var(--c-fuji-pale); font-size:var(--t-body); line-height:1.85; }
.pnote > .i{ width:26px; height:26px; flex:none; margin-top:2px; color:var(--c-ai); }
.pnote p{ margin:0; }
.pnote p + p{ margin-top:6px; }
.pnote__title{ font-weight:700; color:var(--c-ai); }
.pnote--leaf{ background:var(--c-leaf-pale); }
.pnote--leaf > .i{ color:var(--c-leaf); }
.pnote--sun{ background:var(--c-sun-pale); }
.pnote--sun > .i{ color:#9A5D05; }
.pnote a{ color:var(--c-ai); font-weight:700; }

/* 写真＋キャプション */
.pfig{ margin:0; }
.pfig__frame{ border-width:6px; border-radius:22px; }
.pfig__frame img{ width:100%; height:auto; border-radius:0; }
.pfig--cover .pfig__frame{ aspect-ratio:4/3; }
.pfig--cover .pfig__frame img{ height:100%; object-fit:cover; }
.pfig__cap{ margin:10px 4px 0; font-size:var(--t-body); line-height:1.8; color:var(--c-ink); }

/* ボタンの並び */
.pbtns{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 16px; margin-top:22px; }
.pbtns--center{ justify-content:center; }
.btn-line .i{ flex:none; }
.btn,.btn-line{ min-height:48px; }
.btn{ font-size:var(--t-body); }
.btn-line{ font-size:var(--t-body); }
.btn-line--sm,.btn-line--mini{ min-height:0; }

/* タグ（下層ページは少し大きく） */
.is-sub .tag{ font-size:calc(13px * var(--fs)); padding:2px 11px; }
.tag--leaf{ background:var(--c-leaf-pale); color:#00602C; }
.tag--fuji{ background:var(--c-fuji-pale); color:var(--c-ai); }
.tag--sun{ background:var(--c-sun-pale); color:#8A5304; }
.tag--ayame{ background:var(--c-ayame-pale); color:#B0154A; }
.tag--kaya{ background:var(--c-kaya-pale); color:#7B5125; }
.tag--gray{ background:#EBE8E4; color:#5E5862; }

/* 下のほかのページへ */
.next-links{ padding-top:clamp(24px, 4vw, 48px); }
.next-links__title{ margin:0 0 14px; font-family:var(--ff-hand); font-weight:600; font-size:calc(17px * var(--fs)); color:var(--c-ai); text-align:center; }
.next-links__list{ list-style:none; display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:12px; margin:0; padding:0; }
.next-link{ display:flex; align-items:center; gap:12px; min-height:64px; padding:10px 16px 10px 12px; border-radius:var(--radius-m); background:#fff; box-shadow:0 3px 0 rgba(62,68,120,.08); color:var(--c-ai); font-weight:700; font-size:var(--t-body); text-decoration:none; transition:transform .2s, background .2s; }
.next-link:hover{ transform:translateY(-2px); background:var(--c-fuji-pale); }
.next-link__icon{ width:42px; height:42px; flex:none; display:grid; place-items:center; border-radius:50%; background:var(--c-fuji-pale); }
.next-link__icon .i{ width:24px; height:24px; color:var(--c-ai); }
.next-link__label{ flex:1; line-height:1.4; }
.next-link__go{ width:18px; height:18px; color:var(--c-fuji); }

/* =========================================================
   植物園（/garden・/garden/{slug}）
   ========================================================= */
.g-cards{ list-style:none; display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:28px 24px; margin:0; padding:0; }
.g-card__link{ position:relative; display:flex; flex-direction:column; height:100%; padding:10px 10px 20px; border-radius:var(--radius-l); background:var(--c-paper); box-shadow:var(--shadow-card); color:inherit; text-decoration:none; transition:transform .25s cubic-bezier(.2,.8,.2,1); }
.g-card__link:hover{ transform:translateY(-4px); }
.g-card__photo{ position:relative; overflow:hidden; aspect-ratio:4/3; border-radius:20px; background:var(--c-fuji-pale); }
.g-card__photo img{ width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.8,.2,1); }
.g-card__link:hover .g-card__photo img{ transform:scale(1.04); }
.g-card__ill{ position:absolute; right:6px; top:-40px; width:68px; height:68px; pointer-events:none; filter:drop-shadow(0 4px 8px rgba(42,37,48,.12)); }
.g-card__ill--wide{ right:2px; top:-34px; width:128px; height:auto; }
.g-card__body{ position:relative; display:flex; flex-direction:column; flex:1; padding:16px 10px 0; }
.g-card__name{ margin:0 0 8px; padding-right:60px; font-size:calc(19px * var(--fs)); color:var(--c-ai); letter-spacing:.08em; line-height:1.45; }
.g-card__data{ margin:0 0 14px; display:grid; gap:4px; }
.g-card__data > div{ display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 10px; font-size:var(--t-body); line-height:1.7; }
.g-card__data dt{ display:inline-flex; align-items:center; gap:4px; flex:none; font-size:calc(14px * var(--fs)); font-weight:700; color:var(--c-ink-sub); }
.g-card__data dt .i{ width:18px; height:18px; color:var(--c-fuji); }
.g-card__data dd{ margin:0; font-weight:700; }
.g-card__more{ display:inline-flex; align-items:center; gap:6px; margin-top:auto; color:var(--c-ai); font-weight:700; font-size:calc(14.5px * var(--fs)); }
.g-card__more .i{ width:18px; height:18px; transition:transform .3s; }
.g-card__link:hover .g-card__more .i{ transform:translateX(4px); }
.g-note{ margin-top:22px; text-align:center; font-size:calc(14px * var(--fs)); }

/* 園内の見所（植物以外） */
.spots{ display:grid; gap:clamp(28px, 4vw, 48px); }
.spot{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:clamp(20px, 3.4vw, 44px); align-items:center; }
.spot:nth-child(even) .spot__photos{ order:2; }
.spot__photos{ position:relative; }
.spot__sub{ position:absolute; right:-8px; bottom:-18px; width:30%; }
.spot__sub .pfig__frame{ border-width:5px; }
.spot__head{ display:flex; align-items:center; gap:12px; margin:0 0 10px; }
.spot__ill{ width:88px; height:88px; flex:none; filter:drop-shadow(0 4px 8px rgba(42,37,48,.1)); }
.spot__name{ margin:0; font-size:calc(19.5px * var(--fs)); color:var(--c-ai); letter-spacing:.08em; }
.spot__body p{ margin:0 0 .9em; font-size:var(--t-body); line-height:2; }
.spot__body .btn{ margin-top:6px; }
/* S26a：水車小屋の公式の写真とキャプション（2 枚） */
.spot__figs{ margin-top:12px; gap:14px; }
.spot__figs .pfig__frame{ border-width:5px; border-radius:16px; }
.spot__figs .pfig__cap{ font-size:calc(13.5px * var(--fs)); line-height:1.6; }

/* 詳細：上の写真＋データ */
.g-top{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:clamp(20px, 3vw, 40px); align-items:start; }
.g-top__photo .pfig__frame{ border-width:8px; border-radius:var(--radius-l); aspect-ratio:4/3; }
.g-top__photo .pfig__frame img{ height:100%; object-fit:cover; }
.g-data{ position:relative; padding:16px 24px 22px; border-radius:var(--radius-l); background:var(--c-paper); box-shadow:var(--shadow-card); }
.g-data__en{ margin:0 0 2px; font-family:var(--ff-en); font-style:italic; font-size:30px; line-height:1.1; color:var(--c-fuji); opacity:.55; }
.g-data__list{ margin:0; }
.g-data__list > div{ display:grid; grid-template-columns:7.5em minmax(0,1fr); gap:4px 14px; padding:12px 0; border-bottom:1px dashed var(--rule); font-size:var(--t-body); line-height:1.75; }
.g-data__list > div:last-child{ border-bottom:0; }
.g-data__list dt{ font-weight:700; color:var(--c-ai); font-size:calc(14.5px * var(--fs)); }
.g-data__list dd{ margin:0; font-weight:700; }
.g-data__btns{ display:flex; flex-direction:column; align-items:stretch; gap:10px; margin-top:16px; }
.g-data__btns > *{ justify-content:space-between; }
.g-data__btns .btn-line{ justify-content:center; }
.g-data__btns .btn--tel{ justify-content:center; font-size:calc(17.5px * var(--fs)); flex-wrap:wrap; }

/* 目次（その他の植物） */
.toc{ list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin:0; padding:0; }
.toc a{ display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:8px 18px; border-radius:999px; background:#fff; box-shadow:0 2px 0 rgba(62,68,120,.08); color:var(--c-ai); font-weight:700; font-size:calc(15px * var(--fs)); text-decoration:none; }
.toc a::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--c-ayame); }
.toc a:hover{ background:var(--c-fuji-pale); }

/* 詳細の本文 */
.g-sec{ scroll-margin-top:calc(var(--header-h) + 12px); }
.g-sec--alt{ background:linear-gradient(to bottom, transparent, rgba(236,229,211,.5) 12%, rgba(236,229,211,.5) 88%, transparent); }
.g-blocks{ display:grid; gap:clamp(24px, 3.4vw, 40px); }
.g-figure{ max-width:880px; }
.g-figure--narrow{ max-width:560px; }
.g-figs{ display:grid; gap:24px 20px; }
.g-figs--2{ grid-template-columns:repeat(2, minmax(0,1fr)); }
.g-figs--3{ grid-template-columns:repeat(3, minmax(0,1fr)); }
.g-gallery{ list-style:none; display:grid; grid-template-columns:repeat(auto-fill, minmax(172px, 1fr)); gap:18px 14px; margin:0; padding:0; }
.g-gallery .pfig__frame{ border-width:5px; border-radius:16px; }
.g-gallery .pfig__cap{ margin-top:6px; font-size:calc(14.5px * var(--fs)); font-weight:700; text-align:center; line-height:1.5; }
.g-profile{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(18px, 3vw, 36px); align-items:start; }
.g-profile__photo .pfig__cap{ font-size:calc(14.5px * var(--fs)); color:var(--c-ink-sub); }
.g-profile__photo .pfig__cap::before{ content:"▲ "; color:var(--c-fuji); }
.g-profile__title{ margin:0 0 12px; font-size:calc(19px * var(--fs)); color:var(--c-ai); letter-spacing:.06em; line-height:1.5; }
.g-profile__body > p{ margin:0 0 .9em; font-size:calc(15.5px * var(--fs)); line-height:2; }
.g-profile__body > p:last-child{ margin-bottom:0; }
.g-facts{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.g-facts > div{ display:flex; align-items:baseline; gap:8px; padding:6px 14px; border-radius:14px; background:var(--c-fuji-pale); font-size:var(--t-body); line-height:1.6; }
.g-facts dt{ font-weight:700; color:var(--c-ai); font-size:calc(14px * var(--fs)); }
.g-facts dd{ margin:0; font-weight:700; }
.g-tel a{ display:inline-flex; align-items:center; gap:6px; color:var(--c-ai); font-family:var(--ff-en); font-weight:700; font-size:calc(18px * var(--fs)); text-decoration:none; }
.g-tel .i{ width:22px; height:22px; }
.g-text{ max-width:52em; }
/* 補足の箱（発注書 S24：左の太い線と影をやめ、全周の角丸の箱＋淡い藤の面＋同系色の 1px の枠＋見出しの前の小さな丸いアイコン） */
.g-supp{ display:grid; grid-template-columns:22px minmax(0,1fr); column-gap:10px; align-items:start; max-width:52em; padding:14px 18px; border:1px solid rgba(62,68,120,.24); border-radius:var(--radius-m); background:#F0F0F8; font-size:var(--t-body); line-height:1.9; }
.g-supp__icon{ display:block; width:22px; height:22px; margin-top:calc((var(--t-body) * 1.9 - 22px) / 2); color:var(--c-ai); }
.g-supp__main{ min-width:0; }
.g-supp p{ margin:0; }
.g-supp__title{ font-weight:700; color:var(--c-ai); margin-bottom:2px!important; }
.g-list{ margin:0; display:grid; gap:10px; max-width:52em; }
.g-list > div{ display:grid; grid-template-columns:6.5em minmax(0,1fr); gap:14px; padding:14px 18px; border-radius:var(--radius-m); background:#fff; box-shadow:var(--shadow-card); font-size:var(--t-body); line-height:1.85; }
.g-list dt{ font-weight:700; color:var(--c-ai); }
.g-list dd{ margin:0; }
.g-table-wrap{ max-width:720px; }
.g-table td:nth-child(3),.g-table td:nth-child(4){ white-space:nowrap; }
.g-table-note{ margin:10px 0 0; font-size:var(--t-body); }
/* S26a：表の見出し（時期ごとの山野草）と箇条書き（芍薬の育て方） */
.g-table-title{ margin-bottom:10px; }
.g-bullets{ max-width:52em; }
.g-bullets li{ line-height:1.9; }
.g-link{ margin:0; }
.g-shop{ display:flex; gap:18px; align-items:center; max-width:760px; padding:20px 24px; border-radius:var(--radius-l); background:var(--c-leaf-pale); }
.g-shop__ill{ width:80px; height:80px; flex:none; }
.g-shop__title{ margin:0 0 4px; font-size:calc(17.5px * var(--fs)); font-weight:700; color:var(--c-ai); }
.g-shop__body p{ margin:0; font-size:var(--t-body); line-height:1.85; }
.g-shop__btns{ display:flex; flex-wrap:wrap; gap:10px 14px; margin-top:12px; }
.g-mini{ list-style:none; display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:14px; margin:0; padding:0; }
.g-mini__link{ display:flex; flex-direction:column; gap:8px; padding:6px 6px 12px; border-radius:var(--radius-m); background:#fff; box-shadow:var(--shadow-card); color:var(--c-ai); font-weight:700; text-decoration:none; text-align:center; transition:transform .2s; }
.g-mini__link:hover{ transform:translateY(-3px); }
.g-mini__photo{ display:block; aspect-ratio:4/3; overflow:hidden; border-radius:12px; }
.g-mini__photo img{ width:100%; height:100%; object-fit:cover; }
.g-mini__name{ font-size:var(--t-body); line-height:1.4; }
.g-back{ margin:28px 0 0; text-align:center; }

/* =========================================================
   レスポンシブ
   ========================================================= */
@media (max-width:1079px){
  .g-top{ grid-template-columns:minmax(0,1fr); }
}
@media (max-width:767px){
  .phead{ padding-top:12px; }
  .phead__inner{ position:relative; grid-template-columns:minmax(0,1fr); }
  .phead__ill{ position:absolute; right:0; top:38px; width:72px; }
  .phead__ill--wide{ position:relative; top:auto; right:auto; justify-self:end; width:min(240px, 64vw); margin-top:-4px; }
  .phead__en,.phead__title{ padding-right:80px; }
  .phead__lead{ font-size:var(--t-body); }
  .phead__blob{ top:-10%; right:-30%; width:120vw; }
  .phead__btns{ flex-direction:column; align-items:stretch; }
  .phead__btns .btn{ justify-content:space-between; }
  .psec{ padding-top:36px; padding-bottom:36px; }
  .dlist{ padding:2px 16px; }
  .dlist > div{ grid-template-columns:minmax(0,1fr); gap:2px; padding:12px 0; }
  .dtable th,.dtable td{ padding:10px 12px; }
  .g-cards{ grid-template-columns:minmax(0,1fr); gap:20px; }
  .spot{ grid-template-columns:minmax(0,1fr); }
  .spot:nth-child(even) .spot__photos{ order:0; }
  .spot__sub{ right:-4px; bottom:-14px; width:32%; }
  .spot__ill{ width:64px; height:64px; }
  .g-data{ padding:20px 18px; }
  .g-data__list > div{ grid-template-columns:7.4em minmax(0,1fr); gap:10px; padding:10px 0; }
  .g-data__list dt{ font-size:calc(14px * var(--fs)); }
  .g-figs--2,.g-figs--3{ grid-template-columns:minmax(0,1fr); }
  .g-gallery{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px 10px; }
  .g-profile{ grid-template-columns:minmax(0,1fr); }
  .g-list > div{ grid-template-columns:minmax(0,1fr); gap:2px; }
  .g-shop{ flex-direction:column; align-items:flex-start; padding:18px; }
  .g-shop__btns{ flex-direction:column; align-items:stretch; width:100%; }
  .g-shop__btns > *{ justify-content:center; }
  .g-mini{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .next-links__list{ grid-template-columns:minmax(0,1fr); }
}
@media (min-width:768px) and (max-width:1079px){
  .g-figs--3{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}

/* =========================================================
   サイトマップ（/sitemap）
   ========================================================= */
.smap{ display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:20px; align-items:start; }
.smap .pcard + .pcard{ margin-top:0; }
.smap__list{ list-style:none; margin:0; padding:0; display:grid; gap:2px; }
.smap__list a{ display:flex; align-items:center; gap:10px; min-height:44px; padding:6px 4px; color:var(--c-ink); font-size:var(--t-body); text-decoration:none; border-bottom:1px dashed var(--rule); }
.smap__list a::before{ content:""; width:7px; height:7px; flex:none; border-radius:50%; background:var(--c-fuji); }
.smap__list a:hover{ color:var(--c-ai); text-decoration:underline; }
.smap__list li:first-child a{ font-weight:700; color:var(--c-ai); }

/* =========================================================
   体験（/experiences・/experiences/{slug}）
   ========================================================= */
.btn--sm{ padding:6px 6px 6px 18px; font-size:calc(14.5px * var(--fs)); gap:10px; }
.btn--sm .btn__arrow{ width:30px; height:30px; }
.exp-card__more{ display:inline-flex; align-items:center; gap:4px; color:var(--c-ai); font-weight:700; font-size:calc(14.5px * var(--fs)); }
.exp-card__more .i{ width:16px; height:16px; }
.exp-card__today{ margin:0 0 10px; }
.exp-card__lead{ display:block; margin:10px 0 0; font-size:calc(13px * var(--fs)); }
.exp-card__desc{ font-size:var(--t-body); }
.exp-tags{ display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 0; }
.exp-hero{ aspect-ratio:4/3; border-radius:var(--radius-l); }
.exp-hero .ph{ position:absolute; inset:0; aspect-ratio:auto; height:100%; }
.exp-price{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:2px 0; }
.exp-price + .exp-price{ border-top:1px dotted var(--rule); padding-top:6px; margin-top:4px; }
.exp-price__label{ font-weight:700; }
.exp-price__label small{ display:block; font-size:calc(13.5px * var(--fs)); font-weight:500; color:var(--c-ink-sub); }
.exp-price__yen{ font-family:var(--ff-en); font-size:calc(19.5px * var(--fs)); font-weight:700; color:var(--c-ayame); white-space:nowrap; font-variant-numeric:tabular-nums; }
.exp-price__note{ display:block; margin-top:6px; font-size:calc(13.5px * var(--fs)); font-weight:500; color:var(--c-ink-sub); }
/* 発注書 S32：団体の料金（例：10名以上は1人 1,650円）と人数の案内（そば打ち：3名までは要相談） */
.exp-price{ flex-wrap:wrap; }
.exp-price__group{ flex-basis:100%; margin-top:-2px; text-align:right; font-size:calc(14px * var(--fs)); font-weight:700; color:var(--c-ayame); }
.exp-party-note{ display:block; margin-top:4px; font-size:calc(14px * var(--fs)); font-weight:500; line-height:1.6; color:var(--c-ink-sub); }
.g-data__list dd small{ display:block; font-weight:500; font-size:calc(14px * var(--fs)); color:var(--c-ink-sub); }
.exp-approval-note{ margin:0; font-size:calc(14px * var(--fs)); line-height:1.75; color:var(--c-ink-sub); }
.exp-info{ display:grid; gap:18px; max-width:880px; }
.exp-info__list{ padding:16px 20px; border-radius:var(--radius-m); background:#fff; box-shadow:var(--shadow-card); }
.exp-info__tel{ margin:0; font-size:var(--t-body); }
.exp-info__tel a{ color:var(--c-ai); font-family:var(--ff-en); font-weight:700; font-size:calc(17.5px * var(--fs)); white-space:nowrap; }

/* ご予約の帯 */
.reserve-band{ display:grid; grid-template-columns:130px minmax(0,1fr); gap:clamp(16px, 3vw, 36px); align-items:start; max-width:980px; }
.reserve-band__usagi{ width:130px; height:130px; }
.reserve-band__en{ margin:0 0 2px; font-size:clamp(32px, 4vw, 48px); }
.reserve-steps{ list-style:none; display:grid; gap:10px; margin:18px 0 14px; padding:0; }
.reserve-steps li{ display:flex; align-items:center; gap:14px; padding:10px 16px 10px 10px; border-radius:var(--radius-m); background:#fff; box-shadow:0 4px 14px rgba(0,145,67,.08); font-size:var(--t-body); line-height:1.7; }
.reserve-steps__no{ width:40px; height:40px; flex:none; display:grid; place-items:center; border-radius:50%; background:var(--c-leaf); color:#fff; font-family:var(--ff-en); font-size:calc(17.5px * var(--fs)); font-weight:700; }
.reserve-steps li:last-child .reserve-steps__no{ background:var(--c-ayame); }
.reserve-band__note{ margin:0; font-size:var(--t-body); line-height:1.85; color:var(--c-ink-sub); }
.reserve-band__links{ margin:14px 0 0; font-size:calc(14.5px * var(--fs)); }
.reserve-band__links a{ color:var(--c-ai); font-weight:700; }
.reserve-band .btn--tel{ flex-wrap:wrap; }

@media (max-width:767px){
  .reserve-band{ grid-template-columns:minmax(0,1fr); }
  .reserve-band__usagi{ width:88px; height:88px; }
  .reserve-band .pbtns{ flex-direction:column; align-items:stretch; }
  .reserve-band .pbtns > *{ justify-content:center; }
  .exp-card__foot{ gap:12px; }
}

/* =========================================================
   お買い物（/shop）
   ========================================================= */
.shop-info{ display:grid; gap:14px; margin:0 0 28px; max-width:900px; }
.shop-info__note{ margin:0; font-size:var(--t-body); line-height:1.95; }
/* S26a：区分の紹介（公式「商品紹介」の原文と写真）と、店頭・お問い合わせの商品（えんつこ） */
.shop-intro{ display:grid; gap:16px; margin:14px 0 26px; max-width:900px; }
.shop-intro__text{ margin:0; font-size:var(--t-body); line-height:1.95; }
.shop-intro__photos{ grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); }
.shop-counter__lead{ margin:10px 0 16px; font-size:var(--t-body); color:var(--c-ink-sub); }
.shop-counter{ display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:clamp(16px, 3vw, 32px); align-items:start; max-width:960px; padding:clamp(14px, 2vw, 22px); border-radius:var(--radius-l); background:#fff; box-shadow:var(--shadow-card); }
.shop-counter__name{ margin:0 0 8px; font-size:calc(18px * var(--fs)); color:var(--c-ai); letter-spacing:.06em; }
.shop-counter__body p{ margin:0 0 .8em; font-size:var(--t-body); line-height:1.95; }
@media (max-width:767px){ .shop-counter{ grid-template-columns:minmax(0,1fr); } }
.shop-info__ways{ list-style:none; display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:12px; margin:0; padding:0; }
.shop-way{ display:flex; gap:14px; align-items:flex-start; padding:16px 18px; border-radius:var(--radius-m); background:#fff; box-shadow:var(--shadow-card); }
.shop-way__icon{ width:44px; height:44px; flex:none; display:grid; place-items:center; border-radius:50%; background:var(--c-leaf-pale); color:var(--c-leaf); }
.shop-way--pickup .shop-way__icon{ background:var(--c-kaya-pale); color:var(--c-kaya); }
.shop-way__icon .i{ width:24px; height:24px; }
.shop-way__label{ margin:0; font-weight:700; color:var(--c-ai); font-size:calc(16px * var(--fs)); }
.shop-way__text{ margin:2px 0 0; font-size:var(--t-body); line-height:1.8; }
.shop-info__list{ padding:4px 2px; }
.shop-sec .shop-grid{ margin-top:8px; }
.shop-sec .shop-grid--few{ justify-content:start; }
.is-sub .prod__name{ font-size:var(--t-body); }
.is-sub .prod__price{ font-size:calc(14px * var(--fs)); }
.is-sub .prod__ship{ font-size:calc(14px * var(--fs)); }
.cal__flower a{ color:inherit; text-decoration:underline; text-decoration-style:dotted; text-underline-offset:3px; }
.cal__flower a:hover{ color:var(--c-ai); text-decoration-style:solid; }

/* =========================================================
   法務ページ（/legal/*・/terms・/privacy・/cancel-policy）
   ========================================================= */
.wrap.legal{ max-width:900px; }
.legal{ font-size:var(--t-body); line-height:2; }
.legal > p{ margin:0 0 1.2em; }
.legal .stack + .stack,.legal > p + .stack{ margin-top:30px; }
.legal .stack p{ margin:0 0 .8em; }
.legal__h2{ display:flex; align-items:center; gap:10px; margin:0 0 10px; font-size:calc(17.5px * var(--fs)); color:var(--c-ai); letter-spacing:.06em; line-height:1.5; }
.legal__h2::before{ content:""; width:9px; height:9px; flex:none; border-radius:50%; background:var(--c-ayame); } /* 発注書 S24：左の太い縦線をやめて小さな丸 */
.legal .note-list{ margin:0; padding-left:1.6em; display:grid; gap:6px; }
.legal ul.note-list{ list-style:none; padding-left:0; }
.legal ul.note-list li{ position:relative; padding-left:1.3em; }
.legal ul.note-list li::before{ content:""; position:absolute; left:.2em; top:.8em; width:7px; height:7px; border-radius:50%; background:var(--c-fuji); }
.legal ol.note-list li::marker{ color:var(--c-ai); font-weight:700; }
.legal a{ color:var(--c-ai); font-weight:700; }
.legal .muted{ color:var(--c-ink-sub); font-size:calc(14px * var(--fs)); }
.legal .legal__dl{ padding:0; box-shadow:none; background:transparent; }
.legal .legal__dl dd > p{ margin:0 0 .4em; }
.legal .legal__dl dd > p + .note-list,.legal .legal__dl dd > .note-list + p{ margin-top:.4em; }
.legal .legal__date{ margin:34px 0 0; text-align:right; color:var(--c-ink-sub); font-size:calc(15px * var(--fs)); } /* 発注書 S27：制定日 */
.legal .table-wrap{ margin:4px 0 12px; }
.cancel-table th,.cancel-table td{ font-size:var(--t-body); }
.cancel-table tbody th{ white-space:nowrap; vertical-align:top; }
/* 発注書 S28：SP（〜767px）は行ごとのカード（見出し＋「いつまで・キャンセル・返金」の縦並び。項目名は td の data-label）。PC は表のまま。
   現地決済の 2 行目の見出し（.cancel-table__sp-head）は、PC では 1 行目の見出しが 2 行分（rowspan）なので出さない */
.cancel-table .cancel-table__sp-head{ display:none; }
@media (max-width:767px){
  .legal .cancel-table-wrap{ overflow:visible; }
  .cancel-table{ display:block; background:transparent; box-shadow:none; border-radius:0; overflow:visible; }
  .cancel-table thead{ display:none; }
  .cancel-table tbody{ display:grid; gap:14px; }
  .cancel-table tr{ display:block; background:#fff; border-radius:var(--radius-m); box-shadow:var(--shadow-card); overflow:hidden; }
  .cancel-table tbody th,.cancel-table .cancel-table__sp-head{ display:block; padding:12px 16px; background:var(--c-ai); color:#fff; white-space:normal; border-bottom:0; }
  .cancel-table tbody th br{ display:none; }
  .cancel-table tbody th .muted{ color:rgba(255,255,255,.88); font-weight:500; }
  /* 項目名（data-label）は左に重ね、セルの中身（文と注記）はそのまま右に流す */
  .cancel-table tbody tr > td{ display:block; position:relative; padding:11px 16px 11px calc(16px + 6.5em); border-bottom:0; }
  .cancel-table tbody tr > td:not(:last-child){ border-bottom:1px solid var(--rule); }
  .cancel-table td::before{ content:attr(data-label); position:absolute; left:16px; top:11px; font-weight:700; color:var(--c-ai); font-size:calc(14px * var(--fs)); line-height:1.9; }
}

/* =========================================================
   営業案内（/info）・今の見頃（/bloom）・アクセス・園内マップ・お問い合わせ・よくある質問・お知らせ
   ========================================================= */
.info-top{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr); gap:clamp(16px, 3vw, 32px); align-items:stretch; }
.info-today{ min-height:0; }
.info-today .st-card__ttl{ font-size:calc(14.5px * var(--fs)); }
.info-today__label{ margin:6px 0 0; font-weight:700; font-size:calc(16px * var(--fs)); }
.info-today__sub{ margin:6px 0 0; font-size:var(--t-body); line-height:1.7; }
.info-hours{ align-self:start; }
.info-fee{ max-width:880px; }
.info-fee .fee__table{ font-size:var(--t-body); }
.info-fee .fee__table thead th{ font-size:calc(14px * var(--fs)); }
.info-fee__notes{ margin-top:14px; gap:2px; }
/* S26a：注記は公式どおり「※」で始まるので、箇条の点は出さない */
.info-fee__notes li{ padding-left:0; }
.info-fee__notes li::before{ display:none; }
.info-fee .fee__table th small.info-fee__note{ display:block; margin-top:2px; font-weight:500; color:var(--c-ink-sub); }
.info-fee .fee__table tbody th,.info-fee .fee__table thead th{ white-space:normal; }
/* 時期ごとの見どころ（発注書 S26c） */
.info-fee__sub{ margin:26px 0 10px; font-size:calc(17px * var(--fs)); font-weight:700; color:var(--c-ai); }
.info-highlights > div{ grid-template-columns:10.5em minmax(0,1fr); }
@media (max-width: 600px){ .info-highlights > div{ grid-template-columns:1fr; gap:2px; } }
@media (max-width: 600px){ .info-fee .fee__table th,.info-fee .fee__table td{ padding:10px 4px; } .info-fee .fee__table td b{ font-size:calc(17px * var(--fs)); } }
.info-closed{ list-style:none; display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:10px; margin:0; padding:0; }
.info-closed li{ padding:12px 16px; border-radius:var(--radius-m); background:#fff; box-shadow:var(--shadow-card); font-size:var(--t-body); line-height:1.6; }
.info-closed__date{ display:block; font-weight:700; color:var(--c-ai); }
.info-closed__note{ display:block; font-size:calc(14px * var(--fs)); color:var(--c-ink-sub); }
.info-basic{ max-width:760px; }
.info-rest{ max-width:880px; }
.info-rest__hours{ margin-top:12px; }

.bloom-cards{ list-style:none; display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:22px 18px; margin:0; padding:0; }
.bloom-card2{ display:flex; flex-direction:column; padding:10px 10px 18px; border-radius:var(--radius-l); background:var(--c-paper); box-shadow:var(--shadow-card); }
.bloom-card2__photo{ position:relative; overflow:hidden; aspect-ratio:4/3; border-radius:18px; }
.bloom-card2__photo .ph{ position:absolute; inset:0; aspect-ratio:auto; height:100%; }
.bloom-card2__body{ padding:14px 8px 0; }
.bloom-card2__status{ margin:0 0 6px; }
.bloom-card2__name{ margin:0 0 6px; font-size:calc(18px * var(--fs)); color:var(--c-ai); letter-spacing:.06em; }
.bloom-card2__area{ display:flex; align-items:center; gap:6px; margin:0 0 6px; font-size:calc(14.5px * var(--fs)); color:var(--c-ink-sub); }
.bloom-card2__area .i{ width:18px; height:18px; color:var(--c-fuji); }
.bloom-card2__comment{ margin:0 0 10px; font-size:var(--t-body); line-height:1.85; }

.access-routes{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px; }
.access-routes .pcard + .pcard{ margin-top:0; }
.is-sub .info-list > div{ font-size:var(--t-body); }
.is-sub .access-table th,.is-sub .access-table td{ font-size:var(--t-body); }
.is-sub .basic__text{ font-size:var(--t-body); }

.map-about-grid{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:28px; align-items:start; }
.map-about .sec-head{ margin-bottom:14px; }
.map-about .plist{ margin:10px 0 0; }
.map-about .pbtns{ margin-top:20px; }
.map-image{ margin:0; }
.park-map__link{ display:block; border-radius:16px; overflow:hidden; background:#fff; box-shadow:0 10px 26px -18px rgba(62,68,120,.45); border:1px solid rgba(62,68,120,.12); }
.park-map__img{ display:block; width:100%; height:auto; }
.park-map__link:focus-visible{ outline:3px solid var(--c-ai); outline-offset:3px; }
.map-image .pfig__cap b{ display:block; font-size:var(--t-body); color:var(--c-ai); }
@media (max-width: 900px){ .map-about-grid{ grid-template-columns:1fr; } }
.map.psec .chips{ margin-top:0; }

.contact-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:20px; align-items:start; }
.contact-grid .pcard + .pcard{ margin-top:0; }
.contact-card2__tel{ display:inline-block; margin:2px 0 6px; font-family:var(--ff-en); font-size:calc(clamp(25px, 2.7vw, 30.5px) * var(--fs)); font-weight:700; color:var(--c-ai); text-decoration:none; letter-spacing:.02em; }
.contact-card2__line{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:12px; }
.contact-card2__qr{ width:108px; height:108px; border-radius:12px; border:1px solid var(--rule); background:#fff; padding:4px; }
.contact-card2 a[href^="mailto"]{ color:var(--c-ai); font-weight:700; font-size:calc(16px * var(--fs)); }

.faq-page{ display:grid; gap:24px; max-width:900px; }
.qa-list{ display:grid; gap:14px; margin:0; }
.qa-item{ padding:18px 20px; border-radius:var(--radius-m); background:#fff; box-shadow:var(--shadow-card); }
.qa-item__q,.qa-item__a{ display:flex; gap:12px; align-items:flex-start; margin:0; font-size:var(--t-body); line-height:1.85; }
.qa-item__q{ font-weight:700; color:var(--c-ai); font-size:calc(16px * var(--fs)); }
.qa-item__a{ margin-top:10px; padding-top:10px; border-top:1px dashed var(--rule); }
.qa-item .qa{ margin-top:-1px; }
.qa-item a{ color:var(--c-ai); font-weight:700; }

.news-grid{ list-style:none; display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:20px 16px; margin:0; padding:0; }
.news-grid .news-card{ flex:none; }
.is-sub .news-card__title{ font-size:var(--t-body); }
.event-page{ display:grid; gap:24px; max-width:860px; }
.event-page__photo{ aspect-ratio:16/10; }
.event-page__photo .ph{ position:absolute; inset:0; aspect-ratio:auto; height:100%; }
.ev-date--page{ margin-top:16px; }

@media (max-width:767px){
  .info-top{ grid-template-columns:minmax(0,1fr); }
  .access-routes{ grid-template-columns:minmax(0,1fr); }
  .qa-item{ padding:16px; }
}
