/* =========================================================
   下層専用 — page.css（A〜O 既存＋P〜U 既存＋V〜AE 追加）
   画像は ../images/sample01.jpg を使用
========================================================= */

/* ===== パンくず ===== */
.sec-breadcrumb{ padding:24px 7vw 0; background:#fff; }
.breadcrumb{ list-style:none; margin:0; padding:0; display:flex; gap:10px; color:#777; font-size:13px; }
.breadcrumb a{ text-decoration:underline; text-underline-offset:2px; }

/* ===== HERO（固定背景＋暗めオーバーレイ＋JP/EN） ===== */
.hero--static{
  position:relative;
  min-height:100vh; min-height:100svh;
  background-image:var(--hero-bg);
  background-size:cover; background-position:center; background-repeat:no-repeat; background-attachment:fixed;
}
@supports (min-height:100dvh){ .hero--static{ min-height:100dvh; } }
.hero--static::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, rgba(0,0,0,.48), rgba(0,0,0,.38));
}
.hero--static .hero-static__inner{
  position:relative; z-index:1; color:#fff;
  padding:clamp(72px, 12vh, 140px) 7vw 64px; text-align:left;
}
@media (max-width:768px){ .hero--static{ background-attachment:scroll; } }

/* ===== タイポ（明朝） ===== */
.mincho-title,.mincho-sub,.mincho-body{
  font-family:"Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
}
.mincho-title{ margin:0 0 12px; font-weight:700; letter-spacing:.06em; font-size:clamp(24px,3.6vw,36px); line-height:1.3; }
.mincho-sub{ margin:0 0 8px;  font-weight:700; letter-spacing:.05em; font-size:clamp(18px,2.2vw,24px); line-height:1.35; }
.mincho-body{ margin:0 0 1.2em; font-size:15px; line-height:2; color:#444; letter-spacing:.02em; }

/* ===== A：Intro（中央） ===== */
.sec-intro-narrow{ background:#fff; padding-top:60px; padding-bottom:40px; }
.intro-narrow{ max-width:760px; text-align:center; }

/* ===== B：Split（左画像 / 右テキスト） ===== */
.sec-split{ background:#fff; }
.split-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:28px; align-items:center; }
.split-media img{ width:100%; height:auto; display:block; object-fit:cover; }
.split-body{ max-width:520px; }
@media (max-width:1024px){ .split-grid{ grid-template-columns:1fr; } .split-body{ max-width:none; } }

/* ===== C：Zigzag ===== */
.sec-zigzag{ background:#fff; }
.zz{ display:grid; gap:28px; }
.zz-row{ display:grid; grid-template-columns:1.1fr 1fr; gap:24px; align-items:center; }
.zz-row.reverse{ grid-template-columns:1fr 1.1fr; }
.zz-row.reverse .zz-media{ order:2; }
.zz-row.reverse .zz-body{ order:1; }
.zz-media img{ width:100%; height:auto; display:block; object-fit:cover; }

/* ===== F：帯状CTA（背景固定＋右下キャプション） ===== */
.sec-cta-band{
  position:relative; min-height:64vh; padding:0;
  background-image:url("../images/sample01.jpg");
  background-size:cover; background-position:center; background-repeat:no-repeat; background-attachment:fixed;
}
.cta-caption{
  position:absolute; right:7vw; bottom:10vh; z-index:1;
  width:min(72ch, 48vw); background:rgba(255,255,255,.92);
  border:1px solid rgba(0,0,0,.06); padding:clamp(18px, 2.2vw, 28px); color:#111;
}
.cta-buttons{ margin:12px 0 0; display:flex; gap:10px; flex-wrap:wrap; }
.cta-btn{ display:inline-block; padding:10px 16px; font-size:14px; letter-spacing:.04em; color:#fff; background:#000; border:1px solid #000; text-decoration:none; border-radius:0; transition:opacity .2s ease; }
.cta-btn:hover{ opacity:.88; }
.cta-btn.ghost{ color:#000; background:#fff; }
@media (max-width:768px){ .sec-cta-band{ background-attachment:scroll; } .cta-caption{ left:6vw; right:6vw; width:auto; } }

/* ===== M：Masonry Gallery（★維持） ===== */
.sec-gallery-masonry{ background:#fff; }
.gm-cols{ column-count:4; column-gap:14px; }
.gm-item{ margin:0 0 14px; break-inside:avoid; overflow:hidden; background:#f7f7f7; border:1px solid #eee; }
.gm-item img{ width:100%; height:auto; display:block; object-fit:cover; }
.gm-item img{ aspect-ratio:4 / 3; }    /* 基本 */
.gm-item.tall img{ aspect-ratio:3 / 4; } /* 縦長 */
.gm-item.pano img{ aspect-ratio:16 / 7; } /* 横長 */
@media (max-width:1200px){ .gm-cols{ column-count:3; } }
@media (max-width:900px){ .gm-cols{ column-count:2; } }
@media (max-width:600px){ .gm-cols{ column-count:1; column-gap:10px; } .gm-item{ margin-bottom:10px; border-width:0; } }

/* ===== N：Grid + Hover Caption（★維持） ===== */
.sec-gallery-grid{ background:#fff; }
.gg-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.gg-item{ position:relative; overflow:hidden; background:#f6f6f6; border:1px solid #eee; }
.gg-item img{ width:100%; aspect-ratio:4 / 3; object-fit:cover; display:block; transition:transform .35s ease; }
.gg-cap{
  position:absolute; left:0; right:0; bottom:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.65) 100%);
  color:#fff; padding:10px 12px; font-size:13px;
  opacity:0; transform:translateY(8px); transition:opacity .25s ease, transform .25s ease;
}
.gg-item:hover img{ transform:scale(1.04); }
.gg-item:hover .gg-cap{ opacity:1; transform:translateY(0); }
@media (max-width:1024px){ .gg-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:768px){ .gg-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .gg-grid{ grid-template-columns:1fr; } }

/* ===== O：Horizontal Scroll（★維持） ===== */
.sec-gallery-hscroll{ background:#fff; padding-top:0; }
.gh-track{
  display:grid; grid-auto-flow:column; grid-auto-columns:80%;
  overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory;
  gap:12px; padding:12px 7vw 24px; -webkit-overflow-scrolling:touch;
}
.gh-item{ scroll-snap-align:center; border:1px solid #eee; background:#fff; overflow:hidden; }
.gh-item img{ width:100%; aspect-ratio:16 / 10; object-fit:cover; display:block; }
@media (min-width:900px){ .gh-track{ grid-auto-columns:40%; } }

/* ===== 共通リンク（DV風） ===== */
.dv-link{ display:inline-flex; align-items:center; gap:.5em; text-decoration:none; border-bottom:1px solid transparent; }
.dv-link::after{ content:"→"; transition:transform .2s ease; }
.dv-link:hover::after{ transform:translateX(2px); }
.dv-link--lg{ font-weight:700; font-size:15px; }
.dv-link--invert{ color:#fff; border-color:rgba(255,255,255,.25); }
.dv-link--invert:hover{ border-color:rgba(255,255,255,.5); }

/* ===== DV：P〜U（維持／Delight Ventures風） ===== */
.dv-vision{ background:#fff; padding-top:80px; padding-bottom:64px; }
.dv-vision__inner{ text-align:center; }
.dv-eyebrow{ margin:0 0 10px; color:#888; font-size:12px; letter-spacing:.12em; text-transform:uppercase; }
.dv-vision__title{ margin:0 0 10px; font-family:"Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif; font-weight:700; font-size:clamp(28px,4vw,44px); letter-spacing:.02em; }
.dv-vision__lead{ margin:0 auto; max-width:60ch; color:#555; line-height:1.9; font-family:"Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif; }

.dv-news{ background:#fff; padding-top:64px; padding-bottom:64px; }
.dv-news__list{ list-style:none; margin:24px auto 0; padding:0; max-width:960px; border-top:1px solid #eaeaea; }
.dv-news__item{ border-bottom:1px solid #eaeaea; }
.dv-news__item > .dv-link{ display:flex; gap:16px; padding:16px 6px; align-items:baseline; justify-content:space-between; }
.dv-news__meta{ display:flex; align-items:center; gap:10px; min-width:220px; color:#666; font-size:14px; }
.dv-chip{ display:inline-block; font-size:11px; letter-spacing:.06em; padding:3px 8px; border:1px solid #ddd; border-radius:999px; color:#555; background:#fff; }
.dv-news__title{ flex:1; min-width:0; color:#222; font-weight:600; letter-spacing:.01em; }

.dv-logos{ background:#fff; padding-top:68px; padding-bottom:68px; }
.dv-logos__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; align-items:center; }
.dv-logo{ display:grid; place-items:center; padding:18px; border:1px solid #eee; background:#fff; filter:grayscale(100%); opacity:.9; transition:opacity .2s ease, filter .2s ease; }
.dv-logo img{ width:100%; height:auto; object-fit:contain; }
.dv-logo:hover{ filter:grayscale(0%); opacity:1; }

.dv-team{ background:#fff; padding-top:72px; padding-bottom:72px; }
.dv-team__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:start; }
.dv-member{ text-align:center; }
.dv-member__photo{ width:120px; height:120px; object-fit:cover; border-radius:50%; display:block; margin:0 auto 12px; border:1px solid #eee; }
.dv-member__name{ margin:0 0 4px; font-weight:700; font-family:"Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif; }
.dv-member__role{ margin:0; color:#666; font-size:13px; }

.dv-company{ background:#fff; padding-top:72px; padding-bottom:72px; }
.dv-company__grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:28px; align-items:start; }
.dv-company__table{ display:grid; gap:10px; }
.dv-company__table > div{ display:grid; grid-template-columns:120px 1fr; gap:12px; padding:10px 12px; border:1px solid #eee; background:#fafafa; }
.dv-company__table dt{ font-weight:700; }

.dv-cta-wide{ position:relative; background:#0f1115; color:#fff; padding:96px 7vw; text-align:center; }
.dv-cta__title{ margin:0 0 12px; font-family:"Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif; font-weight:700; font-size:clamp(26px,4vw,40px); }
.dv-cta__actions{ margin:16px 0 0; }

/* ===== 新規DV：V〜AE（追加） ===== */
.dv-stats{ background:#fff; }
.dv-stats__grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:16px; text-align:center; }
.dv-stat{ border:1px solid #eee; background:#fafafa; padding:24px 12px; }
.dv-stat__value{ display:block; font-weight:700; font-size:clamp(28px,4.6vw,48px); line-height:1; }
.dv-stat__label{ display:block; margin-top:6px; color:#666; font-size:13px; }

.dv-cases{ background:#fff; }
.dv-cases__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.dv-case{ display:grid; grid-template-rows:auto 1fr; border:1px solid #eee; background:#fff; }
.dv-case__media img{ width:100%; aspect-ratio:16 / 10; object-fit:cover; display:block; }
.dv-case__body{ padding:14px 14px 18px; }
.dv-tags{ list-style:none; margin:0 0 6px; padding:0; display:flex; gap:8px; flex-wrap:wrap; }
.dv-tags li{ font-size:11px; padding:3px 8px; border:1px solid #ddd; border-radius:999px; color:#555; background:#fff; }
.dv-case__title{ margin:0 0 8px; font-weight:700; font-family:"Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif; }
@media (max-width:1024px){ .dv-cases__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .dv-cases__grid{ grid-template-columns:1fr; } }

.dv-press{ background:#fff; }
.dv-press__list{ list-style:none; margin:0 auto; padding:0; max-width:960px; border-top:1px solid #eee; }
.dv-press__item{ display:grid; grid-template-columns:160px 100px 1fr; gap:16px; align-items:center; padding:14px 0; border-bottom:1px solid #eee; text-decoration:none; color:inherit; }
.dv-press__pub{ color:#666; font-size:13px; }
.dv-press__ttl{ font-weight:600; }
.dv-press__item:hover .dv-press__ttl{ text-decoration:underline; text-underline-offset:2px; }
@media (max-width:640px){ .dv-press__item{ grid-template-columns:1fr; gap:6px; align-items:start; } }

.dv-subnav{ position:sticky; top:0; z-index:5; background:#fff; border-top:1px solid #eee; border-bottom:1px solid #eee; }
.dv-subnav__list{ list-style:none; margin:0; padding:8px 7vw; display:flex; gap:16px; overflow:auto; }
.dv-subnav__list a{ font-weight:600; white-space:nowrap; }
.dv-sections__wrap{ display:grid; gap:28px; }
.dv-sec{ padding:6px 0; border-bottom:1px solid #f0f0f0; }

.dv-longform{ background:#fff; }
.dv-longform__grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:28px; align-items:start; }
.dv-pull{ position:relative; }
.dv-quote{ margin:0; padding:18px; border-left:4px solid #000; background:#fafafa; font-family:"Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif; font-size:18px; }
@media (max-width:960px){ .dv-longform__grid{ grid-template-columns:1fr; } }

.dv-jobs{ background:#fff; }
.dv-job{ border:1px solid #eee; background:#fff; margin:10px 0; }
.dv-job > summary{ list-style:none; cursor:pointer; padding:14px 16px; display:flex; justify-content:space-between; align-items:center; }
.dv-job > summary::-webkit-details-marker{ display:none; }
.dv-job__role{ font-weight:700; }
.dv-job__type{ color:#666; font-size:13px; }
.dv-job__body{ padding:0 16px 16px; color:#444; line-height:1.9; }

.dv-logos-ticker{ background:#fff; padding:10px 0; border-top:1px solid #eee; border-bottom:1px solid #eee; overflow:hidden; }
.dv-logos-ticker__track{ display:flex; gap:28px; padding:10px 7vw; animation: dv-marquee 30s linear infinite; }
.dv-logos-ticker .dv-logo{ flex:0 0 140px; display:grid; place-items:center; border:1px solid #eee; background:#fff; filter:grayscale(100%); opacity:.9; }
.dv-logos-ticker .dv-logo img{ width:100%; height:auto; object-fit:contain; }
@keyframes dv-marquee{ 0%{ transform:translateX(0); } 100%{ transform:translateX(-50%); } }

.dv-splitband{ background:#fff; }
.dv-splitband__inner{ display:grid; grid-template-columns:1.1fr 1fr; gap:20px; align-items:center; padding:40px 7vw; border-top:1px solid #eee; border-bottom:1px solid #eee; }
.dv-splitband__media img{ width:100%; height:auto; display:block; object-fit:cover; border:1px solid #eee; }
@media (max-width:960px){ .dv-splitband__inner{ grid-template-columns:1fr; } }

.dv-indexcards{ background:#fff; }
.dv-indexcards__grid{ counter-reset:idx; list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.dv-idx{ border:1px solid #eee; background:#fff; display:grid; grid-template-rows:auto 1fr; position:relative; }
.dv-idx::before{ counter-increment:idx; content:counter(idx); position:absolute; top:8px; left:10px; font-weight:700; font-size:20px; color:#999; }
.dv-idx__media img{ width:100%; aspect-ratio:16 / 10; object-fit:cover; display:block; }
.dv-idx__body{ padding:14px 14px 18px; }
@media (max-width:960px){ .dv-indexcards__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .dv-indexcards__grid{ grid-template-columns:1fr; } }

.dv-contactband{ background:#0f1115; color:#fff; }
.dv-contactband__inner{ padding:72px 7vw; text-align:center; }
.dv-contactband__title{ margin:0 0 10px; font-weight:700; font-size:clamp(22px,3.6vw,34px); font-family:"Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif; }

/* =========================================
   AF–AQ：追加パターン用
========================================= */

/* AF：テキスト（中央・ワイドリード） */
.sec-text-leadcenter{ background:#fff; }
.textcenter-wrap{ max-width:860px; margin:0 auto; text-align:center; }
.text-kicker{ margin:0 0 8px; color:#888; font-size:12px; letter-spacing:.12em; text-transform:uppercase; }
.lead{ font-size:clamp(16px,2vw,18px); line-height:2; color:#444; }

/* AG：ドロップキャップ */
.sec-text-dropcap{ background:#fff; }
.dropcap-wrap{ max-width:860px; margin:0 auto; }
.dropcap:first-letter{
  float:left; font-family:"Shippori Mincho","Noto Serif JP",serif;
  font-size:3.2em; line-height:1; padding:.08em .18em 0 0; color:#111;
}

/* AH：引用バンド */
.sec-text-quoteband{ background:#fafafa; border-top:1px solid #eee; border-bottom:1px solid #eee; }
.quoteband{ max-width:900px; margin:0 auto; }
.quoteband blockquote{ margin:0; padding:22px 12px; text-align:center; }
.quoteband p{ margin:0 0 6px; font-size:clamp(18px,2.4vw,24px); font-family:"Shippori Mincho","Noto Serif JP",serif; }
.quoteband cite{ color:#777; font-size:13px; }

/* AI：FAQ */
.sec-text-faq{ background:#fff; }
.faq-item{ border:1px solid #eee; background:#fff; margin:10px 0; }
.faq-item > summary{
  list-style:none; cursor:pointer; padding:14px 16px; display:flex; justify-content:space-between; align-items:center;
}
.faq-item > summary::-webkit-details-marker{ display:none; }
.faq-body{ padding:0 16px 14px; }

/* AJ, AK：中央画像 */
.sec-img-center{ background:#fff; }
.imgcenter-wrap{ max-width:980px; margin:0 auto; }
.imgcenter{ display:grid; place-items:center; }
.imgcenter img{ width:min(100%, 860px); height:auto; display:block; border:1px solid #eee; background:#fff; }
.imgcenter.withcap figcaption{ margin-top:8px; text-align:center; color:#666; font-size:13px; }

/* AL：フルブリード画像 */
.sec-img-bleed{ background:#fff; padding-top:24px; }
.img-bleed{ width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
.img-bleed img{ width:100%; height:auto; display:block; }

/* AM：中央画像（2段） */
.sec-img-stacks{ background:#fff; }
.stack-wrap{ display:grid; gap:14px; justify-items:center; }
.stack-item.wide img{ width:min(100%, 980px); display:block; }
.stack-item.narrow img{ width:min(100%, 640px); display:block; }

/* AN–AO–AP：2カラム */
.sec-twocol{ background:#fff; }
.twocol-grid{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:28px; align-items:center; }
.twocol-media img{ width:100%; height:auto; object-fit:cover; display:block; }
.twocol-body{ max-width:560px; }
.media-right .twocol-grid{ grid-template-columns:0.85fr 1.15fr; }
@media (max-width:980px){
  .twocol-grid{ grid-template-columns:1fr; }
}

/* AP：チェックリスト */
.checklist{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.checklist li{ position:relative; padding-left:1.2em; }
.checklist li::before{
  content:"✓"; position:absolute; left:0; top:0; color:#111; font-weight:700; font-size:.95em;
}

/* AQ：オーバーラップ演出 */
.overlap-wrap{ position:relative; }
.overlap-text{ max-width:560px; background:#fff; border:1px solid #eee; padding:18px; position:relative; z-index:1; }
.overlap-media{ position:absolute; right:0; top:50%; transform:translateY(-50%); width:48%; }
.overlap-media img{ width:100%; height:auto; object-fit:cover; display:block; border:1px solid #eee; }
/* === [012] AQ のオーバーラップ演出を無効化する上書き === */
.overlap .overlap-wrap{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  align-items: start;
}

.overlap .overlap-media,
.overlap .overlap-text{
  position: static !important;
  margin: 0 !important;
  transform: none !important;
  z-index: auto !important;
}

.overlap .overlap-media img{
  width: 100%;
  height: auto;
  display: block;
}
@media (max-width:980px){
  .overlap-media{ position:static; transform:none; width:100%; margin-top:12px; }
}
/* === [012] AQ：オーバーラップ無効時の幅調整 === */
.overlap .overlap-media{ width: 100% !important; }   /* ← 48%を打ち消す */
.overlap .overlap-text{ max-width: none !important; }/* ← 560px制限を外す */
.overlap .overlap-wrap{ align-items: center; }       /* 高さ揃え（お好みで start でもOK） }

/* 画像は念のためフル幅 */
.overlap .overlap-media img{
  width: 100%;
  height: auto;
  display: block;
}

/* ===== [021] Stats Band ===== */
.sec-stats .stats-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px; text-align:center;
}
.stat{ padding:18px 8px; border:1px solid #eee; background:#fff; }
.stat .num{ display:block; font-family:"Shippori Mincho","Noto Serif JP",serif; font-weight:700;
  font-size:clamp(28px,4.2vw,40px); line-height:1; }
.stat .cap{ display:block; margin-top:6px; color:#666; }

/* ===== [022] Icons 4 cols ===== */
.sec-icons .icon-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:22px; text-align:center;
}
.sec-icons .ico{ width:40px; height:40px; fill:none; stroke:#111; stroke-width:2; margin:0 auto 10px; }

/* ===== [023] Timeline ===== */
.sec-timeline .tl{ list-style:none; margin:0; padding:0; border-left:2px solid #111; max-width:760px; margin-inline:auto; }
.sec-timeline .tl > li{ display:grid; grid-template-columns:auto 1fr; gap:12px; padding:14px 0 14px 16px; position:relative; }
.sec-timeline .tl > li::before{ content:""; position:absolute; left:-6px; top:24px; width:10px; height:10px; background:#111; border-radius:50%; }
.sec-timeline time{ font-weight:700; font-family:"Shippori Mincho","Noto Serif JP",serif; }

/* ===== [024] Compare 2 cols ===== */
.compare{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.cmp-col{ border:1px solid #eee; padding:16px; background:#fff; }
.cmp-list{ margin:10px 0 0; padding-left:1.2em; }

/* ===== [025] Menu cards ===== */
.menu-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.menu-card{ border:1px solid #eee; background:#fff; }
.menu-card img{ width:100%; height:auto; display:block; }
.menu-card figcaption{ padding:10px; text-align:center; }

/* ===== [026] Testimonials ===== */
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.testi{ margin:0; border:1px solid #eee; background:#fff; padding:16px; }
.testi p{ margin:0 0 8px; }
.testi cite{ color:#777; font-size:13px; }

/* ===== [027] FAQ alt ===== */
.faq-alt{ border:1px solid #eee; background:#fff; margin:10px 0; }
.faq-alt > summary{ padding:12px 14px; cursor:pointer; list-style:none; }
.faq-alt > summary::-webkit-details-marker{ display:none; }
.faq-alt > div{ padding:0 14px 12px; }

/* ===== [028] Plans (Pricing) ===== */
.plans-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.plan{ border:1px solid #eee; background:#fff; padding:18px; }
.plan.featured{ border-color:#111; box-shadow:0 10px 24px rgba(0,0,0,.06); }
.plan-name{ margin:0 0 6px; font-family:"Shippori Mincho","Noto Serif JP",serif; }
.plan-price{ margin:0 0 10px; font-weight:700; font-size:20px; }
.plan-feats{ margin:0 0 14px; padding-left:1.2em; }
.btn-min{ display:inline-block; padding:10px 14px; border:1px solid #111; background:#111; color:#fff; text-decoration:none; }
.btn-min.alt{ background:#fff; color:#111; }

/* ===== [029] Access (image + card) ===== */
.access-wrap{ max-width:980px; }
.access-fig{ position:relative; }
.access-fig img{ width:100%; height:auto; display:block; }
.access-card{
  position:absolute; right:14px; bottom:14px; background:rgba(255,255,255,.94);
  border:1px solid #eee; padding:12px 14px; max-width:min(70ch,60%);
}

/* ===== [030] Rail (scroll-snap) ===== */
.rail{ display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; padding:0 7vw; }
.rail img{ width:70vw; max-width:880px; height:auto; flex:0 0 auto; scroll-snap-align:center; border:1px solid #eee; }

/* ===== [031] Table slim ===== */
.table-slim{ width:100%; border-collapse:collapse; background:#fff; }
.table-slim th, .table-slim td{ border:1px solid #eee; padding:10px 12px; text-align:left; }
.table-slim th{ background:#fafafa; width:28%; }

/* ===== [032] CTA image ===== */
.sec-cta-image{ padding:0; }
.cta-img{ position:relative; min-height:48vh; background:#000;
  background-image:var(--bg); background-size:cover; background-position:center; }
.cta-img::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.45)); }
.cta-overlay{ position:relative; z-index:1; color:#fff; text-align:center; padding:64px 7vw; }
.cta-overlay .btn-min{ border-color:#fff; }

/* ===== [033] Staff grid ===== */
.staff-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.staff{ background:#fff; border:1px solid #eee; margin:0; }
.staff img{ width:100%; height:auto; display:block; }
.staff figcaption{ padding:10px; text-align:center; color:#444; }
.staff b{ font-family:"Shippori Mincho","Noto Serif JP",serif; }

/* ===== [034] Numbered steps ===== */
.steps-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.step{ border:1px solid #eee; background:#fff; padding:16px; position:relative; }
.badge{
  position:absolute; left:12px; top:12px; width:28px; height:28px; line-height:28px; text-align:center;
  background:#111; color:#fff; font-weight:700; border-radius:50%;
}

/* ===== Responsive ===== */
@media (max-width: 980px){
  .stats-grid{ grid-template-columns:repeat(2,1fr); }
  .icon-grid, .testi-grid, .plans-grid, .staff-grid, .steps-grid{ grid-template-columns:repeat(2,1fr); }
  .compare{ grid-template-columns:1fr; }
  .menu-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 600px){
  .icon-grid, .testi-grid, .plans-grid, .staff-grid, .steps-grid,
  .menu-grid{ grid-template-columns:1fr; }
  .rail img{ width:86vw; }
}
/* ===== [035] Cards ===== */
.articles-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.card-article{ border:1px solid #eee; background:#fff; padding:12px; }
.card-article figure{ margin:0 -12px 10px; }
.card-article img{ width:100%; height:auto; display:block; }
.card-article .meta{ color:#888; font-size:12px; }

/* ===== [036] Tabs (CSS-only) ===== */
.tabs{ border:1px solid #eee; background:#fff; }
.tabs input{ display:none; }
.tab-labels{ display:flex; gap:8px; border-bottom:1px solid #eee; padding:8px; }
.tab-labels label{ padding:8px 12px; border:1px solid #eee; background:#fafafa; cursor:pointer; }
#tab-a:checked ~ .tab-labels label[for="tab-a"],
#tab-b:checked ~ .tab-labels label[for="tab-b"],
#tab-c:checked ~ .tab-labels label[for="tab-c"]{ background:#111; color:#fff; border-color:#111; }
.tab-panels{ padding:12px; }
.tab-panels .panel{ display:none; }
#tab-a:checked ~ .tab-panels .panel:nth-child(1),
#tab-b:checked ~ .tab-panels .panel:nth-child(2),
#tab-c:checked ~ .tab-panels .panel:nth-child(3){ display:block; }
.tab-panels img{ width:100%; height:auto; display:block; margin-bottom:10px; }

/* ===== [037] Accordion ===== */
.acc{ border:1px solid #eee; background:#fff; margin:10px 0; }
.acc > summary{ padding:12px 14px; list-style:none; cursor:pointer; }
.acc > summary::-webkit-details-marker{ display:none; }
.acc > div{ padding:0 14px 12px; }

/* ===== [038] Horizontal timeline ===== */
.hztl{ display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; padding:0 7vw; list-style:none; margin:0; }
.hztl > li{ flex:0 0 auto; scroll-snap-align:center; border:1px solid #eee; background:#fff; padding:12px; min-width:180px; text-align:center; }
.hztl time{ display:block; font-weight:700; font-family:"Shippori Mincho","Noto Serif JP",serif; }

/* ===== [039] Split access ===== */
.split-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:22px; align-items:center; }
.split-media img{ width:100%; height:auto; display:block; }
.mapbox{ height:240px; border:1px dashed #bbb; display:grid; place-items:center; color:#666; font-weight:700; background:#fafafa; }

/* ===== [040] Video mock ===== */
.ratio{ position:relative; display:block; aspect-ratio:16/9; border:1px solid #eee; background:#000; }
.ratio img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.8; }
.ratio .play{ position:absolute; inset:auto 0 0 0; margin:auto; top:0; bottom:0; width:74px; height:74px; line-height:74px; text-align:center; background:rgba(255,255,255,.9); color:#111; border-radius:50%; font-weight:700; font-size:24px; }

/* ===== [041] Table striped ===== */
.table-striped{ width:100%; border-collapse:collapse; overflow:hidden; background:#fff; border:1px solid #eee; }
.table-striped th, .table-striped td{ padding:12px; border-bottom:1px solid #eee; text-align:left; }
.table-striped tbody tr:nth-child(odd){ background:#fafafa; }

/* ===== [042] Steps inline ===== */
.steps-line{ list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:0; counter-reset:s; }
.steps-line li{ position:relative; padding:10px 18px; border:1px solid #eee; background:#fff; }
.steps-line li + li{ margin-left:-1px; } /* 罫線をつなぐ */
.steps-line li::before{ counter-increment:s; content:counter(s); margin-right:.5em; font-weight:700; }

/* ===== [043] Hover caption gallery ===== */
.hover-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.hover-item{ position:relative; margin:0; overflow:hidden; border:1px solid #eee; }
.hover-item img{ width:100%; height:auto; display:block; transition:transform .35s ease; }
.hover-item figcaption{ position:absolute; inset:auto 0 0 0; background:linear-gradient(0deg,rgba(0,0,0,.55),rgba(0,0,0,0)); color:#fff; padding:10px 12px; transform:translateY(100%); transition:transform .35s ease; }
.hover-item:hover img{ transform:scale(1.05); }
.hover-item:hover figcaption{ transform:translateY(0); }

/* ===== [044] News list ===== */
.newslist{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.newslist li{ display:grid; grid-template-columns:120px 1fr; gap:12px; border-bottom:1px dashed #ddd; padding:8px 0; }
.newslist time{ color:#666; }

/* ===== [045] Sticky aside ===== */
.sticky-grid{ display:grid; grid-template-columns:280px 1fr; gap:24px; align-items:start; }
.sticky-aside{ position:sticky; top:80px; border:1px solid #eee; background:#fff; padding:14px; }
.toc{ margin:0; padding-left:1.2em; }
.sticky-body article{ border-bottom:1px solid #eee; padding:10px 0 18px; }

/* ===== [046] Mini CTAs ===== */
.mini-cta-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.mini-cta{ border:1px solid #eee; background:#fff; padding:16px; text-align:center; }

/* ===== [047] Dark quote ===== */
.sec-dark-quote{ background:#0f1115; }
.dark-quote blockquote{ margin:0; padding:28px 12px; text-align:center; color:#e9edf2; }
.dark-quote cite{ color:#97a6b5; font-size:13px; }

/* ===== [048] Dark text band ===== */
.sec-darkband{ background:#0f1115; }

/* ===== [049] Card rail (snap) ===== */
.card-rail{ display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; padding:0 7vw; }
.card-rail .card{ flex:0 0 70vw; max-width:880px; border:1px solid #eee; background:#fff; scroll-snap-align:center; }
.card-rail .card img{ width:100%; height:auto; display:block; }

/* ===== [050] Copy center ===== */
/* 既存の textcenter-wrap / lead を再利用 */

/* ===== Responsive for new blocks ===== */
@media (max-width: 980px){
  .articles-grid{ grid-template-columns:repeat(2,1fr); }
  .hover-grid{ grid-template-columns:repeat(2,1fr); }
  .split-grid{ grid-template-columns:1fr; }
  .sticky-grid{ grid-template-columns:1fr; }
  .mini-cta-grid{ grid-template-columns:1fr; }
}
@media (max-width: 600px){
  .articles-grid{ grid-template-columns:1fr; }
  .hover-grid{ grid-template-columns:1fr; }
  .newslist li{ grid-template-columns:1fr; }
}
/* ===== 共通：見出しセクション余白をややタイトに ===== */
.sec-hd { background:#fff; padding-top:56px; padding-bottom:56px; }

/* [051] Overline */
.hd-overline .mincho-sub{
  margin:0 0 8px; color:#777; letter-spacing:.14em; font-size:12px;
  position:relative; padding-top:10px;
}
.hd-overline .mincho-sub::before{
  content:""; position:absolute; top:0; left:0; width:48px; height:2px; background:#111;
}
.hd-overline .mincho-title{ margin:0; }

/* [052] Underline */
.hd-underline .mincho-title{
  margin:0 0 8px; padding-bottom:8px; border-bottom:2px solid #111; display:inline-block;
}
.hd-underline .mincho-sub{ margin:0; color:#555; }

/* [053] Index number */
.hd-index{ display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:center; }
.hd-index .hd-num{
  font-family:"Shippori Mincho","Noto Serif JP",serif; font-weight:700;
  font-size: clamp(32px,6vw,64px); line-height:1; color:#111; opacity:.12;
}
.hd-index .mincho-title{ margin:0; }
.hd-index .mincho-sub{ margin:.25em 0 0; color:#666; }

/* [054] Side label */
.hd-side{ display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:center; }
.hd-side .hd-label{
  padding:6px 10px; border-left:3px solid #111; color:#111; font-weight:700; letter-spacing:.08em;
}
.hd-side .mincho-title{ margin:0; }

/* [055] Breadcrumb-style */
.hd-breadcrumb .mincho-sub{ margin:0 0 6px; color:#666; letter-spacing:.06em; }
.hd-breadcrumb .mincho-sub span{ opacity:.9; }
.hd-breadcrumb .mincho-title{ margin:0; }

/* [056] Split H2 / H3 list */
.hd-split{ display:grid; grid-template-columns:1.2fr .8fr; gap:24px; align-items:start; }
.hd-split .mincho-title{ margin:0; }
.hd-split-right{ display:grid; gap:6px; }
.hd-split-right .mincho-sub{ margin:0; color:#444; }

/* [057] Center with lines */
.hd-centerline{ display:grid; }
.hd-centerline .mincho-title{
  margin:0; text-align:center; position:relative; padding:0 16px;
}
.hd-centerline .mincho-title::before,
.hd-centerline .mincho-title::after{
  content:""; position:absolute; top:50%; width:24%; height:1px; background:#111; opacity:.25;
}
.hd-centerline .mincho-title::before{ left:0; }
.hd-centerline .mincho-title::after{ right:0; }

/* [058] Anchor link */
.hd-anchor .mincho-title{ margin:0; display:flex; align-items:center; gap:10px; }
.hd-anchor-link{
  display:inline-grid; place-items:center; width:28px; height:28px;
  border:1px solid #111; text-decoration:none; color:#111; font-weight:700;
}
.hd-anchor .mincho-sub{ margin:.25em 0 0; color:#666; }

/* [059] Gradient underline */
.hd-graduline .mincho-title{
  margin:0 0 6px; position:relative; padding-bottom:10px;
}
.hd-graduline .mincho-title::after{
  content:""; position:absolute; left:0; bottom:0; width:160px; height:3px;
  background: linear-gradient(90deg,#111, rgba(17,17,17,0));
}
.hd-graduline .mincho-sub{ margin:0; color:#555; }

/* [060] Sticky H2 + H3 list */
.hd-sticky{
  display:grid; grid-template-columns:280px 1fr; gap:24px; align-items:start;
}
.hd-sticky-aside{ position:sticky; top:80px; }
.hd-sticky-aside .mincho-title{ margin:0; }
.hd-sticky-body .mincho-sub{ margin:0 0 10px; }

/* ===== Responsive ===== */
@media (max-width: 900px){
  .hd-split{ grid-template-columns:1fr; }
  .hd-sticky{ grid-template-columns:1fr; }
  .hd-sticky-aside{ position:static; }
}
@media (max-width: 600px){
  .sec-hd{ padding-top:48px; padding-bottom:48px; }
  .hd-centerline .mincho-title::before,
  .hd-centerline .mincho-title::after{ width:18%; }
}
/* ===== [061] Chapter number ===== */
.hd-chapter{ display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:end; }
.chap-num{
  font-family:"Shippori Mincho","Noto Serif JP",serif; font-weight:700;
  font-size: clamp(40px,7vw,84px); line-height:1; color:#111; opacity:.12;
}
.hd-chapter .mincho-title{ margin:0; }

/* ===== [062] Bilingual overline ===== */
.hd-bilingual{ display:grid; grid-template-columns:.9fr 1.1fr; gap:22px; align-items:end; }
.hd-bilingual .en-over .mincho-sub{
  margin:0; letter-spacing:.18em; font-size:12px; color:#666; position:relative; padding-top:10px;
}
.hd-bilingual .en-over .mincho-sub::before{
  content:""; position:absolute; top:0; left:0; width:52px; height:2px; background:#111;
}
.hd-bilingual .mincho-title{ margin:0; }

/* ===== [063] Back decoration word ===== */
.hd-deco{ position:relative; padding-top:28px; }
.hd-deco::before{
  content:attr(data-deco); position:absolute; right:0; top:-10px;
  font-family:"Shippori Mincho","Noto Serif JP",serif; font-weight:700;
  font-size: clamp(48px,12vw,140px); line-height:1; color:#111; opacity:.06; pointer-events:none;
}
.hd-deco .mincho-title{ margin:0; position:relative; }
.hd-deco .mincho-sub{ margin:.35em 0 0; color:#666; }

/* ===== [064] [ Title ] ===== */
.hd-brackets .mincho-title{
  margin:0; text-align:center; position:relative; display:inline-block;
  padding:0 .6em;
}
.hd-brackets .mincho-title::before,
.hd-brackets .mincho-title::after{
  content:""; position:absolute; top:50%; width:18px; height:18px; transform:translateY(-50%);
  border:2px solid #111;
}
.hd-brackets .mincho-title::before{ left:-28px; border-right:none; }
.hd-brackets .mincho-title::after { right:-28px; border-left:none; }

/* ===== [065] Kagi corners ===== */
.hd-kagi .mincho-title{
  margin:0; position:relative; display:inline-block; padding:.1em .4em;
}
.hd-kagi .mincho-title::before,
.hd-kagi .mincho-title::after{
  content:""; position:absolute; width:16px; height:16px; border:2px solid #111;
}
.hd-kagi .mincho-title::before{ left:-8px; top:-8px; border-right:none; border-bottom:none; }
.hd-kagi .mincho-title::after { right:-8px; bottom:-8px; border-left:none; border-top:none; }
.hd-kagi .mincho-sub{ margin:.4em 0 0; color:#666; }

/* ===== [066] H3 dot leaders ===== */
.hd-dotleaders .mincho-title{ margin:0 0 12px; }
.dotlist{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.dotlist li{ display:grid; grid-template-columns:1fr auto; align-items:center; }
.dotlist li h3{ margin:0; }
.dotlist li span{
  font-variant-numeric: tabular-nums; color:#666; margin-left:12px; position:relative;
}
.dotlist li::before{
  content:""; grid-column:1 / -1; order:0; display:block; height:1px; background:
  radial-gradient(currentColor, currentColor) 0/3px 1px repeat-x;
  color:#ddd; transform:translateY(1.1em);
}
.dotlist li h3, .dotlist li span{ position:relative; z-index:1; background:#fff; }

/* ===== [067] Pill + H2 + sub ===== */
.hd-meta .pill{
  display:inline-block; padding:.3em .8em; border:1px solid #111; background:#111; color:#fff;
  letter-spacing:.1em; font-size:12px; margin-bottom:8px;
}
.hd-meta .mincho-title{ margin:0; }
.hd-meta .mincho-sub{ margin:.3em 0 0; color:#666; }

/* ===== [068] Inline bar ===== */
.hd-inlinebar{ display:grid; grid-template-columns:1fr auto; align-items:end; gap:12px; }
.hd-inlinebar .mincho-title{
  margin:0; position:relative; padding-bottom:8px;
}
.hd-inlinebar .mincho-title::after{
  content:""; position:absolute; left:0; bottom:0; width:120px; height:3px; background:#111;
}
.hd-inlinebar .mincho-sub{ margin:0 0 4px; color:#666; }

/* ===== [069] Full-width dark band ===== */
.sec-hd-band{ background:#0f1115; color:#e9edf2; padding:64px 7vw; }
.sec-hd-band .mincho-title{ margin:0 0 6px; text-align:center; }
.sec-hd-band .mincho-sub{ margin:0; text-align:center; color:#b9c6d3; }

/* ===== [070] Notch underline ===== */
.hd-notch .mincho-title{
  margin:0; position:relative; padding-bottom:14px; text-align:center;
}
.hd-notch .mincho-title::after{
  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:220px; height:2px; background:#111;
  box-shadow: -110px 0 0 #111, 110px 0 0 #111; /* 両端へ延長 */
}
.hd-notch .mincho-title::before{
  content:""; position:absolute; left:50%; bottom:-6px; transform:translateX(-50%) rotate(45deg);
  width:10px; height:10px; background:#fff; border-left:2px solid #111; border-top:2px solid #111;
}
.hd-notch .mincho-sub{ margin:.35em 0 0; text-align:center; color:#666; }

/* ===== Responsive (headings add-ons) ===== */
@media (max-width: 900px){
  .hd-bilingual{ grid-template-columns:1fr; }
  .hd-inlinebar{ grid-template-columns:1fr; }
}
@media (max-width: 600px){
  .hd-brackets .mincho-title::before,
  .hd-brackets .mincho-title::after{ display:none; }
  .hd-bilingual .en-over .mincho-sub::before{ width:38px; }
}
/* sample.html の HERO（#top）を“短め”にする：HTML変更不要 */
.hero.hero--static#top{
  min-height: 56svh;           /* デスクトップ〜タブレット */
}
@supports (min-height: 1dvh){
  .hero.hero--static#top{ min-height: 56dvh; }
}
@media (max-width: 768px){
  .hero.hero--static#top{ min-height: 48svh; }  /* スマホはさらに短め */
}

/* タイトルブロックも上寄せで詰める */
.hero.hero--static#top .hero-static__inner{
  padding: clamp(28px, 7vh, 60px) 7vw 32px;
}

/* スクロールインジケーターの位置微調整（任意） */
.hero.hero--static#top .hero__scroll{
  bottom: 10px;
}
/* ===== Rules: base spacing ===== */
.sec-rules { background:#fff; }
.rule-block { margin:72px 0; }

/* 1px solid */
.rule-plain { height:1px; background:#111; }

/* Hairline（高解像度向け・より細く見せる） */
.rule-hairline {
  height:1px;
  background: linear-gradient(#111, #111) center / 100% 1px no-repeat;
  opacity:.75;
  transform: translateZ(0);
}

/* 太罫 */
.rule-thick { height:4px; background:#111; }

/* ダッシュ／ドット／ダブル */
.rule-dashed { border-top:2px dashed #111; height:0; }
.rule-dotted { border-top:2px dotted #111; height:0; }
.rule-double { border-top:6px double #111; height:0; }

/* 左→右フェードのグラデ線 */
.rule-gradient {
  height:2px;
  background: linear-gradient(90deg, #111 0%, rgba(17,17,17,0) 100%);
}

/* センタードット（左右ライン＋中心丸） */
.rule-center-dot { position:relative; height:14px; }
.rule-center-dot::before,
.rule-center-dot::after {
  content:""; position:absolute; top:50%; width:44%; height:1px; background:#111;
}
.rule-center-dot::before { left:0; transform: translateY(-50%); }
.rule-center-dot::after  { right:0; transform: translateY(-50%); }
.rule-center-dot > span {
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:10px; height:10px; border:1px solid #111; background:#fff; border-radius:50%;
}

/* センターバッジ（小カプセル＋左右ライン） */
.rule-center-badge { position:relative; height:22px; }
.rule-center-badge::before,
.rule-center-badge::after {
  content:""; position:absolute; top:50%; width:42%; height:1px; background:#111;
}
.rule-center-badge::before { left:0; transform: translateY(-50%); }
.rule-center-badge::after  { right:0; transform: translateY(-50%); }
.rule-center-badge > span {
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  padding:.1em .6em; border:1px solid #111; background:#fff; font-weight:700; letter-spacing:.1em;
}

/* エンボス（浮き出し） */
.rule-emboss {
  height:0; border:0; position:relative; padding:1px 0;
}
.rule-emboss::before,
.rule-emboss::after{
  content:""; position:absolute; left:0; right:0; height:1px;
}
.rule-emboss::before{ top:0; background: rgba(0,0,0,.15); }     /* 影 */
.rule-emboss::after { bottom:0; background: rgba(255,255,255,.8); } /* ハイライト */

/* Responsive spacing */
@media (max-width: 768px){
  .rule-block { margin:48px 0; }
}
/* access */
  #access {
    padding: 60px 20px;
    background: #faf9f7;
  }

  .access-wrapper {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    gap: 32px;
    align-items: stretch;
  }

  .access-map {
    flex: 1 1 45%;
    min-height: 320px;
  }

  .map-placeholder {
    width: 100%;
    height: 100%;
    min-height: 320px;
    border: 1px solid #ddd;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    line-height: 1.8;
    color: #777;
    background: #fff;
  }

  .access-info {
    flex: 1 1 55%;
  }

  .access-title {
    font-size: 1.6rem;
    letter-spacing: 0.08em;
    margin: 0 0 24px;
    line-height: 1.4;
  }

  .access-title span {
    display: block;
    font-size: 0.8rem;
    color: #999;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-top: 4px;
  }

  .access-block + .access-block {
    border-top: 1px solid #e5e5e5;
    padding-top: 16px;
    margin-top: 16px;
  }

  .access-block h3 {
    font-size: 1rem;
    margin: 0 0 8px;
  }

  .access-block dl {
    margin: 0;
    font-size: 0.9rem;
  }

  .access-block dt {
    font-weight: 600;
    margin-top: 6px;
  }

  .access-block dd {
    margin: 2px 0 4px 0;
    line-height: 1.7;
  }

  /* SPレイアウト */
  @media (max-width: 768px) {
    #access {
      padding: 40px 16px;
    }

    .access-wrapper {
      flex-direction: column;
    }

    .access-map {
      order: 1;
      min-height: 240px;
    }

    .access-info {
      order: 2;
    }

    .access-title {
      font-size: 1.4rem;
    }
  }
.line-down {
  width: 1px;          /* 線の太さ */
  height: 80px;        /* 線の長さ（下方向） */
  background: #333;    /* 線の色 */
  margin: 0 auto;      /* 中央寄せしたい場合 */
}
/* page.html：予約ボタンの文字色を白に固定（擬似クラス込み） */
.btn--primary,
.btn--primary:link,
.btn--primary:visited,
.btn--primary:hover,
.btn--primary:active,
.btn--primary:focus{
  color: #fff !important;
  -webkit-text-fill-color: #fff; /* iOS/Safari */
  background: #000;
  border-color: #000;
}
/* 客室設備一覧テーブル調整 */
.sec-table-alt .table-striped {
  width: 100%;
  border-collapse: collapse;
}

.sec-table-alt .table-striped th,
.sec-table-alt .table-striped td {
  padding: 16px 20px;          /* ゆったりめの余白 */
  vertical-align: top;
  border-bottom: 1px solid #e5e5e5;
  font-family: "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN",
    "游明朝", YuMincho, "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif; /* 明朝指定 */
}

/* 見出しセル：幅を確保＆ゴシック化防止 */
.sec-table-alt .table-striped th {
  width: 22%;                  /* th が細くなりすぎないように */
  white-space: nowrap;         /* 折り返しを抑制 */
  font-weight: 600;
}

/* 内容セル：少し小さめの文字サイズ */
.sec-table-alt .table-striped td {
  font-size: 0.9rem;           /* 本文より少し小さめ */
  line-height: 1.9;
}
