/* blocks-v2.css — トップと下層ページ共通の組み立てブロック（2026-09-15）。
   トークン・ヘッダー・フッター・ボタン・水色帯は site-v2.css。ページ固有の色は持たない。 */

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
:root{--max:1160px}
body{margin:0;background:var(--page);color:var(--body);font-family:var(--font-jp);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3{color:var(--ink);margin:0;line-height:1.3;font-weight:700;word-break:auto-phrase;text-wrap:pretty}
p{margin:0 0 1em}
.en{font-family:var(--font-en);letter-spacing:.12em;text-transform:uppercase}
.wrap{width:min(var(--max),calc(100% - 40px));margin-inline:auto}
.section{padding:72px 0}
.section--band{background:var(--band)}
.section--sky{background:var(--sky-soft)}
.section--sky .eyebrow{color:#0081B8}.section--sky .eyebrow::before{background:#0081B8}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:700 12px/1 var(--font-en);letter-spacing:.16em;text-transform:uppercase;color:var(--main-deep);margin-bottom:14px}
.eyebrow::before{content:'';width:22px;height:2px;background:var(--main)}
.h2{font-size:clamp(26px,3.6vw,40px);font-weight:700;letter-spacing:-.01em;margin-bottom:14px}
.lead{font-size:16px;color:var(--body);max-width:640px}
.section-head{margin-bottom:32px}
.section-head--center{text-align:center}
.section-head--center .lead{margin-inline:auto;text-align:left}
.section-head--center .eyebrow{justify-content:center}

/* ヒーロー */
.hero{position:relative;padding:36px 0 56px;overflow:hidden}
.hero__ridge{position:absolute;left:-4%;right:-4%;bottom:-10px;height:160px;pointer-events:none;opacity:.14}
.hero__ridge svg{width:100%;height:100%}
.hero__grid{display:grid;gap:28px;position:relative}
.hero__kicker{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:var(--ink);background:var(--main-tint);border:1px solid var(--line);padding:6px 14px;border-radius:999px;margin-bottom:22px}
.hero__kicker i{width:8px;height:8px;border-radius:50%;background:var(--main)}
.hero__title{font-size:clamp(40px,7.2vw,72px);font-weight:900;line-height:1.18;letter-spacing:-.02em;color:var(--ink)}
.hero__title .dot{color:var(--main);display:inline-block;margin-left:.12em;transform:translateY(-.04em)}
.hero__sub{font:700 13px/1.5 var(--font-en);letter-spacing:.18em;color:var(--main-deep);margin:14px 0 18px}
.hero__lead{font-size:17px;color:var(--body);max-width:560px}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero__facts{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:26px;padding:0;list-style:none;font-size:13px;font-weight:700;color:var(--ink)}
.hero__facts li{display:flex;align-items:center;gap:6px}
.hero__facts li::before{content:'';width:16px;height:16px;border-radius:50%;background:var(--green);flex:none;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-4.9' stroke='%23fff' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-4.9' stroke='%23fff' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.hero__visual{position:relative}
.hero__photo{border-radius:28px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 24px 60px -30px rgba(0,0,0,.3)}
.hero__photo img{width:100%;height:100%;object-fit:cover}
.hero__photo-sub{position:absolute;left:-8px;bottom:-22px;width:38%;border-radius:18px;overflow:hidden;border:5px solid var(--page);aspect-ratio:4/3;box-shadow:0 16px 40px -24px rgba(0,0,0,.35)}
.hero__photo-sub img{width:100%;height:100%;object-fit:cover}
.hero__tag{position:absolute;right:14px;top:14px;background:#fff;color:var(--ink);font:700 12px/1 var(--font-jp);padding:8px 12px;border-radius:999px;box-shadow:0 6px 18px -8px rgba(0,0,0,.3)}

/* キャラ配置（トップ専用） */
.hero__bottom,.p-hero__bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 18px;margin-top:22px}
.hero__bottom>*:first-child,.p-hero__bottom>*:first-child{flex:1 1 auto;margin-top:0}
.hero__bottom .chara--hero,.p-hero__bottom .chara--hero{position:static;flex:none;width:auto;height:120px;margin:0 0 -34px;transform:none;z-index:1}
.chara--step{position:absolute;right:10px;top:-26px;width:auto;height:84px}
.chara--faq{width:72px;margin:6px auto 0}
.hero__facts{position:relative;z-index:1}

/* 7つの入口 */
.entrances{display:grid;gap:14px}
.entrance{position:relative;display:grid;grid-template-columns:38% 1fr;gap:14px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .18s,box-shadow .18s}
.entrance:hover{transform:translateY(-3px);box-shadow:0 18px 40px -28px rgba(0,0,0,.35)}
.entrance__photo{aspect-ratio:4/3;overflow:hidden}
.entrance__photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.entrance:hover .entrance__photo img{transform:scale(1.04)}
.entrance__body{padding:14px 48px 14px 0;display:flex;flex-direction:column;justify-content:center;gap:4px}
.entrance__meta{display:flex;align-items:center;gap:10px;font:700 11px/1 var(--font-en);letter-spacing:.14em;color:var(--main-deep)}
.entrance__meta .num{color:var(--ink)}
.entrance__title{font-size:17px;font-weight:700;color:var(--ink);line-height:1.4}
.entrance__sub{font-size:12.5px;color:var(--muted);margin:0}
.entrance__arrow{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;background:var(--main-tint);color:var(--main-deep);display:grid;place-items:center;font:700 14px/1 var(--font-en)}
.entrances__note{text-align:center;margin-top:26px;font-size:14px;color:var(--muted)}

/* 分割セクション */
.split{display:grid;gap:30px;align-items:center}
/* 1列のとき（スマホ・タブレット）は文章を先に、写真を後に。ヒーローの写真と写真が連ならないように */
.split__photo{order:2;border-radius:var(--radius);overflow:hidden;aspect-ratio:16/10}
.split__photo img{width:100%;height:100%;object-fit:cover}
/* 人物の顔が入る写真：横長枠だと頭が切れるので丸い枠にする */
.split__photo--round{aspect-ratio:1;border-radius:50%;max-width:340px;margin-inline:auto;overflow:hidden}
.split__photo--round img{object-position:center 22%}
.points{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:12px}
.point{display:flex;gap:14px;align-items:flex-start;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-s);padding:14px 16px}
.point__icon{width:40px;height:40px;border-radius:12px;background:var(--main-tint);display:grid;place-items:center;flex:none;color:var(--main-deep)}
.point__icon svg{width:22px;height:22px}
.point strong{display:block;color:var(--ink);font-size:15px}
.point span{font-size:13.5px;color:var(--muted)}

/* 雰囲気ギャラリー */
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gallery__item{border-radius:16px;overflow:hidden;aspect-ratio:4/3}
.gallery__item img{width:100%;height:100%;object-fit:cover}
.gallery__item--big{grid-column:1/-1;aspect-ratio:16/10}
.quote{text-align:center;margin:36px auto 0;max-width:760px}
.quote h3{font-size:clamp(22px,3vw,32px);font-weight:700;line-height:1.5}
.quote p{margin-top:12px;color:var(--muted)}

/* 初めての日 */
.steps{display:grid;gap:14px;list-style:none;margin:0;padding:0}
.step{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px 20px 20px;position:relative;margin-top:14px}
.step:has(.chara){padding-right:96px}
.step p+p{margin-top:.9em}
.step__num{font:700 12px/1 var(--font-en);letter-spacing:.16em;color:var(--main-deep)}
.step h3{font-size:19px;margin:8px 0 6px}
.step p{font-size:14px;color:var(--muted);margin:0}
.step .chara{width:54px;position:absolute;right:14px;top:14px;font-size:9px}
.steps__note{font-size:13px;color:var(--muted);margin-top:18px}
/* 強調：ブラウザ既定の蛍光黄色をやめ、下線状のオレンジにする（記事と同じ見え方） */
mark,.marker{background:linear-gradient(transparent 62%,var(--main-soft) 62%);color:inherit;padding:0 1px}

/* 文章量の多いカード：キャラ用の右余白をなくし、段落間を空け、読みやすい字送りにする */
.steps--prose{grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr))}
.steps--prose .step{padding:26px 24px 24px}
.steps--prose .step h3{font-size:20px;margin-bottom:10px}
.steps--prose .step p{font-size:15px;line-height:1.9;color:var(--body)}
.steps--prose .step p+p{margin-top:.9em}
@media (max-width:640px){.steps--prose .step{padding:22px 18px}}

/* 料金 */
.price{display:grid;gap:22px;background:var(--white);border:1px solid var(--line);border-radius:28px;padding:28px 22px;overflow:hidden}
.price__big{display:flex;align-items:baseline;gap:8px;margin:6px 0 4px}
.price__big strong{font:900 56px/1 var(--font-en);color:var(--ink);letter-spacing:-.02em}
.price__big span{font-weight:700;color:var(--ink)}
.price__rows{list-style:none;margin:16px 0 0;padding:0;border-top:1px solid var(--line)}
.price__rows li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.price__rows li strong{color:var(--ink)}
.price__note{font-size:12.5px;color:var(--muted);margin-top:12px}
.price__side{display:grid;gap:14px}
.price__wear{background:var(--band);border-radius:var(--radius);padding:20px}
.price__wear h3{font-size:18px;margin-bottom:6px}
.price__wear p{font-size:14px;color:var(--muted);margin:0}
.price__photo{border-radius:var(--radius);overflow:hidden;aspect-ratio:16/10}
.price__photo img{width:100%;height:100%;object-fit:cover}

/* こんな日に */
.days{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.day{display:flex;align-items:center;gap:12px;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:14px 14px;font-weight:700;color:var(--ink);font-size:14px;transition:border-color .18s,transform .18s}
.day:hover{border-color:var(--main);transform:translateY(-2px)}
.day__icon{width:36px;height:36px;border-radius:10px;background:var(--main-tint);color:var(--main-deep);display:grid;place-items:center;flex:none}
.day__icon svg{width:20px;height:20px}
.day small{display:block;font-weight:400;color:var(--muted);font-size:12px}

/* リッジラインについて */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}
.stat{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-s);padding:14px 10px;text-align:center}
.stat strong{display:block;font:900 30px/1.1 var(--font-en);color:var(--ink)}
.stat small{font-size:12px;color:var(--muted)}
.values{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:6px;font-size:14px;color:var(--ink)}
.values li{display:flex;gap:10px;align-items:center}
.values li::before{content:'';width:10px;height:2px;background:var(--main)}

/* FAQ */
.faq{max-width:820px;margin-inline:auto}
.faq details{background:var(--white);border:1px solid var(--line);border-radius:14px;margin-bottom:10px;padding:0 18px}
.faq summary{cursor:pointer;list-style:none;display:flex;gap:14px;align-items:center;padding:16px 0;font-weight:700;color:var(--ink);font-size:15.5px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:'Q';font:900 14px/1 var(--font-en);color:var(--main-deep);width:28px;height:28px;border-radius:50%;background:var(--main-tint);display:grid;place-items:center;flex:none}
.faq summary::after{content:'+';margin-left:auto;font:700 20px/1 var(--font-en);color:var(--muted)}
.faq details[open] summary::after{content:'−'}
.faq details p{padding:0 0 16px 42px;margin:0;font-size:14.5px;color:var(--body)}
.faq__more{text-align:center;margin-top:20px}

/* アクセス */
.access{display:grid;gap:18px}
.access__map{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;background:var(--band)}
.access__map iframe{width:100%;height:100%;border:0;display:block}
.access__info{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.access__info h3{font-size:18px;margin-bottom:12px}
.access__info dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:14.5px}
.access__info dt{font-weight:700;color:var(--ink);white-space:nowrap}
.access__info dd{margin:0}
.access__links{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}


/* ---------- 下層ページ用ブロック ---------- */
.p-hero{background:var(--band);padding:40px 0 56px;position:relative;overflow:hidden}
.p-hero__grid{display:grid;gap:26px;align-items:center}
.p-hero__title{font-size:clamp(30px,5vw,52px);font-weight:900;line-height:1.25;letter-spacing:-.01em;margin:12px 0 16px}
.p-hero__lead{font-size:16px;color:var(--body);max-width:560px}
.p-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.p-hero__visual{position:relative}
.p-hero__photo{border-radius:24px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 24px 60px -30px rgba(0,0,0,.3)}
.p-hero__photo img{width:100%;height:100%;object-fit:cover}

.jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;padding:0;list-style:none}
.jump li a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:700;color:var(--ink)}
.jump li a::before{content:'↓';font-family:var(--font-en);color:var(--main-deep)}
.jump li a:hover{border-color:var(--main)}
.prose p{font-size:16px}
.prose p+p{margin-top:.2em}
.prose h3{font-size:19px;margin:22px 0 8px}
/* A：キャラの吹き出し（人の声・安心させる一言） */
.say{display:grid;grid-template-columns:76px 1fr;gap:14px;align-items:end;margin-top:22px}
.say__chara{width:76px;height:auto;filter:drop-shadow(0 8px 14px rgba(0,0,0,.14));pointer-events:none}
.say__bubble{position:relative;background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px 20px;box-shadow:0 14px 34px -28px rgba(0,0,0,.3)}
.say__bubble::before{content:'';position:absolute;left:-11px;bottom:24px;border:11px solid transparent;border-right-color:#fff;border-left:0}
.say__bubble strong{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}
.say__bubble p{margin:0;font-size:14.5px;color:var(--body)}
.section--band .say__bubble,.section--sky .say__bubble{border-color:transparent}
.section--sky .say__bubble{box-shadow:0 14px 34px -26px rgba(0,80,120,.35)}
/* B：マーカー見出し（本文の補足・注意。箱に入れない） */
.aside{margin-top:22px;max-width:720px}
.aside::before{content:'';display:block;width:34px;height:3px;background:var(--main);border-radius:2px;margin-bottom:12px}
.aside strong{display:inline;color:var(--ink);font-size:17px;line-height:1.75;background:linear-gradient(transparent 58%,var(--main-soft) 58%);padding:0 2px}
.aside p{margin:10px 0 0;font-size:14.5px;color:var(--body)}
.section--sky .aside::before{background:#0081B8}
.section--sky .aside strong{background:linear-gradient(transparent 58%,#fff 58%)}
.cards{display:grid;gap:14px;list-style:none;margin:0;padding:0}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:22px 20px}
.card__num{font:700 12px/1 var(--font-en);letter-spacing:.16em;color:var(--main-deep)}
.card h3{font-size:18px;margin:8px 0 8px}
.card p{font-size:14.5px;color:var(--body);margin:0}
.duo{display:grid;gap:14px}
/* 2026-09-21：写真を主役にしない。カードの中で写真は左の小さな窓、文章が主 */
.duo__item{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.duo__item::after{content:'';display:block;clear:both}
.duo__photo{float:left;width:104px;aspect-ratio:1;border-radius:14px;overflow:hidden;margin:4px 14px 6px 0}
.duo__photo img{width:100%;height:100%;object-fit:cover}
.duo__body{padding:0;min-width:0}
.duo__body h3{font-size:19px;margin:0 0 8px}
.duo__body p{font-size:14.5px;color:var(--body);margin:0 0 .6em}
.duo__body p:last-child{margin:0}
.duo__body .en{display:block;font:700 11px/1 var(--font-en);letter-spacing:.16em;color:var(--main-deep);margin-bottom:10px}
.links{display:grid;gap:10px}
.links a{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:14px 16px;font-weight:700;color:var(--ink);font-size:14.5px}
.links a::after{content:'→';font-family:var(--font-en);color:var(--main-deep)}
.links a:hover{border-color:var(--main)}
.bridge{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
@media (min-width:768px){
  .p-hero{padding:56px 0 72px}
  .p-hero__grid{grid-template-columns:1fr 1fr;gap:40px}
  .cards{grid-template-columns:repeat(3,1fr)}
  .say{grid-template-columns:96px 1fr;gap:18px}
  .say__chara{width:96px}
  .duo{grid-template-columns:1fr 1fr;gap:18px}
  .duo__item{display:grid;grid-template-columns:180px 1fr;gap:22px;align-items:start;padding:22px}
  .duo__item::after{display:none}
  .duo__photo{float:none;width:auto;aspect-ratio:3/4;margin:0}
  .links{grid-template-columns:1fr 1fr}
}
@media (min-width:1024px){
  .p-hero__grid{grid-template-columns:48fr 52fr;gap:56px}
}


/* ---------- ヒーローのバリエーション（ページごとの表情） ---------- */
.p-hero--circle .p-hero__photo{aspect-ratio:1;border-radius:50%;max-width:460px;margin-inline:auto;position:relative}
.p-hero--circle .p-hero__visual::before{content:'';position:absolute;inset:-14px 10% auto auto;width:120px;height:120px;border-radius:50%;border:6px solid var(--main);opacity:.35;z-index:0}
.p-hero--circle .p-hero__visual::after{content:'';position:absolute;left:6%;bottom:-8px;width:64px;height:64px;border-radius:50%;background:var(--sky-soft);z-index:0}
.p-hero--circle .p-hero__photo{z-index:1}
.p-hero--diagonal{clip-path:polygon(0 0,100% 0,100% calc(100% - 48px),0 100%);padding-bottom:88px}
.p-hero--diagonal .p-hero__photo{border-radius:24px 24px 24px 90px}
.chara-row{position:absolute;left:0;right:0;bottom:-6px;display:flex;justify-content:center;align-items:flex-end;gap:2%;pointer-events:none}
.chara-row .chara{height:auto;width:auto}
.chara-row .chara:nth-child(1){height:110px}.chara-row .chara:nth-child(2){height:96px}.chara-row .chara:nth-child(3){height:78px}.chara-row .chara:nth-child(4){height:70px}
.p-hero--diagonal .p-hero__visual{padding-bottom:150px}
.p-hero--tall .p-hero__photo{aspect-ratio:4/5;border-radius:140px 24px 24px 24px;max-width:460px;margin-inline:auto}
.p-hero--tall .p-hero__grid{align-items:center}
.p-hero--frame .p-hero__photo{border-radius:18px;box-shadow:none}
.p-hero--frame .p-hero__visual::before{content:'';position:absolute;inset:18px -18px -18px 18px;border:4px solid var(--main);border-radius:18px;z-index:0}
.p-hero--frame .p-hero__photo{position:relative;z-index:1}
.p-hero--duo .p-hero__photo-sub{position:absolute;left:-8px;bottom:-22px;width:40%;border-radius:18px;overflow:hidden;border:5px solid var(--band);aspect-ratio:4/3;box-shadow:0 16px 40px -24px rgba(0,0,0,.35)}
.p-hero--duo .p-hero__photo-sub img{width:100%;height:100%;object-fit:cover}

.p-hero--wide .p-hero__grid{grid-template-columns:1fr;text-align:center}
.p-hero--wide .p-hero__lead,.p-hero--wide .p-hero__actions,.p-hero--wide .jump{margin-inline:auto;justify-content:center}
.p-hero--wide .p-hero__lead{text-align:left}
.p-hero--wide .p-hero__visual{margin-top:36px}
.p-hero--wide .p-hero__photo{aspect-ratio:16/8;border-radius:28px}
.p-hero--wide .p-hero__bottom{justify-content:center;gap:24px}
@media (min-width:1024px){
  .hero__bottom .chara--hero,.p-hero__bottom .chara--hero{height:150px;margin-bottom:-44px}
  .p-hero--diagonal .p-hero__visual{padding-bottom:170px}
  .p-hero--wide .p-hero__grid{grid-template-columns:1fr}
  .chara-row .chara:nth-child(1){height:150px}.chara-row .chara:nth-child(2){height:130px}.chara-row .chara:nth-child(3){height:104px}.chara-row .chara:nth-child(4){height:92px}
}

.p-hero--text .p-hero__grid{grid-template-columns:1fr}
.p-hero--text .p-hero__lead{max-width:640px}
.faq-group{margin-top:34px}
.faq-group:first-child{margin-top:0}
.faq-group h3{font-size:15px;letter-spacing:.02em;color:var(--main-text);margin:0 0 12px;display:flex;align-items:center;gap:10px}
.faq-group h3::before{content:'';width:18px;height:3px;background:var(--main);border-radius:2px}
.contact-cards{display:grid;gap:14px}
.contact-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px 22px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:6px;transition:border-color .18s,transform .18s}
.contact-card:hover{border-color:var(--main);transform:translateY(-2px)}
.contact-card .en{font:700 11px/1 var(--font-en);letter-spacing:.16em;color:var(--main-text)}
.contact-card strong{font-size:22px;font-family:var(--font-en);letter-spacing:.02em;word-break:break-all}
.contact-card span{font-size:13.5px;color:var(--muted)}
.info-list{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 18px;font-size:15px}
.info-list dt{font-weight:700;color:var(--ink);white-space:nowrap}
.info-list dd{margin:0}
.prose--narrow{max-width:760px;margin-inline:auto}
.prose--narrow h2{font-size:20px;margin:34px 0 8px;padding-left:14px;border-left:4px solid var(--main)}
.prose--narrow h2:first-child{margin-top:0}
@media (min-width:768px){
  .p-hero--text .p-hero__grid{grid-template-columns:1fr}
  .contact-cards{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:1024px){.p-hero--text .p-hero__grid{grid-template-columns:1fr}}

/* 運営者の小さな丸写真（顔は控えめに） */
.owner{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:center;margin-top:26px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 20px}
.owner__photo{width:96px;height:96px;border-radius:50%;object-fit:cover;object-position:center 30%;border:3px solid #fff;box-shadow:0 6px 18px -10px rgba(0,0,0,.35)}
.owner__photo--lg{width:180px;height:180px}
.owner__body .en{display:block;font:700 11px/1 var(--font-en);letter-spacing:.16em;color:var(--main-text);margin-bottom:6px}
.owner__body strong{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}
.owner__body p{margin:0;font-size:14.5px;color:var(--body)}

/* 表示アニメーション（控えめ） */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.btn,.entrance,.day{transition:none}}

/* ≥ 768px */
@media (min-width:768px){
  .section{padding:96px 0}
  .hero{padding:56px 0 80px}
  .hero__grid{grid-template-columns:1fr 1fr;align-items:center;gap:40px}
  .entrances{grid-template-columns:1fr 1fr}
  .entrance{grid-template-columns:1fr;gap:0}
  .entrance__body{padding:16px 18px 40px}
  .entrance__arrow{top:auto;bottom:12px;transform:none;right:14px}
  .entrance--big{grid-column:1/-1;grid-template-columns:1.2fr 1fr}
  .entrance--big .entrance__photo{aspect-ratio:auto;min-height:300px}
  .entrance--big .entrance__body{padding:28px 28px 44px;justify-content:center}
  .entrance--big .entrance__title{font-size:26px}
  .entrance--big .entrance__sub{font-size:14px}
  .split{grid-template-columns:1fr 1fr;gap:48px}
  .split__photo{order:0;aspect-ratio:4/3}
  .split__photo--round{aspect-ratio:1}
  .split--rev .split__photo{order:2}
  .gallery{grid-template-columns:1.4fr 1fr 1fr;grid-auto-rows:220px}
  .gallery__item{aspect-ratio:auto}
  .gallery__item--big{grid-column:1;grid-row:1/3;aspect-ratio:auto}
  .steps:not(.steps--prose){grid-template-columns:repeat(2,1fr)}
  .price{grid-template-columns:1.1fr .9fr;padding:36px 34px;align-items:start}
  .days{grid-template-columns:repeat(3,1fr)}
  .access{grid-template-columns:1.1fr .9fr}
}
/* ≥ 1024px */
@media (min-width:1024px){
  .hero__grid{grid-template-columns:45fr 55fr;gap:56px}
  .hero__photo{aspect-ratio:5/4}
  .entrances{grid-template-columns:repeat(12,1fr)}
  .entrance{grid-column:span 3}
  .entrance--big{grid-column:span 6;grid-row:span 1}
  .entrance--wide{grid-column:span 3}
  .steps:not(.steps--prose){grid-template-columns:repeat(4,1fr)}
  .steps--prose{grid-template-columns:repeat(2,1fr)}
  .steps--prose:has(>:last-child:nth-child(3)){grid-template-columns:repeat(3,1fr)}
  .step:has(.chara){padding-right:20px;padding-top:70px}
  .chara--step{right:16px;top:-30px;height:96px}
}

/* ===== 2026-09-17 追加：段落以外の見せ方（connect から導入） ===== */
/* 気になること → 実際は */
.qa{display:grid;gap:14px;margin-top:26px}
.qa__row{display:grid;gap:12px 26px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:22px 20px}
.qa__q,.qa__a{margin:0}
.qa__q::before,.qa__a::before{display:block;font:700 11px/1 var(--font-en);letter-spacing:.14em;margin-bottom:8px}
.qa__q::before{content:'気になること';color:var(--main-text)}
.qa__a::before{content:'実際は';color:#0081B8}
.qa__q{font-weight:700;font-size:17px;line-height:1.6;color:var(--ink)}
.qa__a{font-size:14.5px;color:var(--body)}
.qa__a p{margin:0 0 8px}.qa__a p:last-child{margin-bottom:0}
/* 引用の帯 */
.quote-band{background:var(--sky-soft);padding:64px 0;text-align:center}
.quote-band .wrap{max-width:860px}
.quote-band .chara{height:110px;width:auto;margin:0 auto 16px;display:block}
.quote-band blockquote{margin:0;font-size:clamp(22px,3.4vw,36px);font-weight:900;line-height:1.5;color:var(--ink);letter-spacing:.01em}
.quote-band__who{display:inline-flex;align-items:center;gap:10px;margin-top:16px;font:700 12px/1 var(--font-en);letter-spacing:.16em;color:#0081B8}
.quote-band__who::before{content:'';width:22px;height:2px;background:#0081B8}
.quote-band p{margin:18px auto 0;max-width:640px;font-size:14.5px;line-height:1.9;color:var(--body)}
/* 対比2列（一人で登る日／少し話す日） */
.compare{display:grid;gap:14px;margin-top:26px}
.compare__col{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:22px 20px}
.compare__col h3{display:flex;align-items:center;gap:12px;font-size:19px;margin:0 0 14px}
.compare__col h3 .chara{height:52px;width:auto}
.compare__col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.compare__col li{position:relative;padding-left:28px;font-size:14.5px;line-height:1.8;color:var(--body)}
.compare__col li::before{content:'';position:absolute;left:0;top:8px;width:14px;height:14px;border-radius:50%;background:var(--main-tint);border:2px solid var(--main)}
.compare__col--sky li::before{background:var(--sky-tint);border-color:#0081B8}
/* 数字タイル */
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:26px}
.fact{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:20px 14px;text-align:center}
.fact b{display:block;font:800 clamp(24px,3vw,32px)/1.15 var(--font-en);color:var(--main-deep)}
.fact b small{font-size:.55em;font-family:var(--font-jp);font-weight:700;margin-left:2px}
.fact span{display:block;margin-top:8px;font-size:13px;color:var(--muted)}
@media(min-width:768px){
  .qa__row{grid-template-columns:1fr 1.5fr}
  .compare{grid-template-columns:1fr 1fr}
  .facts{grid-template-columns:repeat(4,1fr)}
}
/* qa の見出し違い：不安ではなく「こんな日もある → リッジラインの考え」 */
.qa--think .qa__q::before{content:'こんな日もある'}
.qa--think .qa__a::before{content:'リッジラインの考え'}
/* 声を3つ並べる（吹き出しの複数配置） */
.voices{display:grid;gap:18px;margin-top:26px}
.voices .say{margin-top:0;align-items:start}
.voices .say__chara{width:64px;margin-top:6px}
@media(min-width:900px){.voices{grid-template-columns:repeat(3,1fr)}.voices .say{grid-template-columns:1fr;gap:10px}.voices .say__chara{width:70px;margin:0 0 0 14px}.voices .say__bubble::before{left:34px;bottom:auto;top:-11px;border:11px solid transparent;border-bottom-color:#fff;border-top:0}}
/* 全幅ヒーロー：写真の下に目次チップ（スマホで写真が連続しないように） */
.p-hero--wide .p-hero__grid>.p-hero__bottom{grid-column:1;position:relative;justify-content:center;align-items:center;margin-top:0;padding-right:0}
.p-hero--wide .p-hero__grid>.p-hero__bottom .jump{margin-top:0;justify-content:center}
.p-hero--wide .p-hero__grid>.p-hero__bottom .chara--hero{position:absolute;right:0;bottom:-58px;margin:0}
@media(max-width:767px){.p-hero--wide .p-hero__grid>.p-hero__bottom{justify-content:flex-start;padding-right:80px}.p-hero--wide .p-hero__grid>.p-hero__bottom .jump{justify-content:flex-start}.p-hero--wide .p-hero__grid>.p-hero__bottom .chara--hero{bottom:-46px}}

/* 料金ページ（2026-09-21 price/）：料金一覧の表・注記 */
.price__tag{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;background:var(--main-tint);color:var(--main-text);font-size:11px;font-weight:700;vertical-align:middle}
.price__note a{color:var(--main-text);border-bottom:1px solid currentColor}
.ptables{display:grid;gap:18px}
.ptable{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.ptable h3{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;font-size:17px;margin:0;padding:16px 20px;border-bottom:1px solid var(--line)}
.ptable h3 small{font-size:12.5px;color:var(--muted);font-weight:400}
.ptable__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ptable table{width:100%;border-collapse:collapse;font-size:14.5px;min-width:520px}
.ptable th,.ptable td{padding:12px 16px;text-align:center;border-bottom:1px solid var(--line);white-space:nowrap}
.ptable tbody tr:last-child td{border-bottom:0}
.ptable thead th{font-size:12.5px;color:var(--muted);font-weight:700;background:var(--band)}
.ptable th:first-child,.ptable td:first-child{text-align:left;color:var(--ink);font-weight:700;position:sticky;left:0;background:var(--white);box-shadow:1px 0 0 var(--line)}
.ptable thead th:first-child{background:var(--band)}
.ptable td{font-family:var(--font-en);font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.01em}
.ptable td:first-child{font-family:var(--font-jp)}
.ptable td:nth-child(2){color:var(--main-deep)}
.ptable__hint{display:block;margin-top:6px;font-size:12.5px;color:var(--muted)}
.ptable__hint::before{content:'↔';font-family:var(--font-en);margin-right:6px;color:var(--main-deep)}
@media(min-width:768px){.ptable__hint{display:none}}
@media(min-width:1024px){.ptables{grid-template-columns:1fr 1fr}.ptable:first-child{grid-column:1/-1}}
.ptable__official{display:grid;gap:14px;align-items:center;margin-top:26px;padding:20px 22px;background:var(--sky-tint);border:1px solid var(--line);border-radius:var(--radius)}
.ptable__official p{margin:0;font-size:13.5px;color:var(--muted)}
.ptable__official .sv2-btn{justify-self:start}
@media(min-width:768px){
  .ptable__official{grid-template-columns:1fr auto}
  .ptable__official .sv2-btn{justify-self:end}
}
.faq details p a{color:var(--main-text);border-bottom:1px solid currentColor}
/* 料金一覧：区分タブ→プラン3枚（2026-09-21） */
.pt__ask{font-weight:700;color:var(--ink);margin:0 0 10px;font-size:15px}
.pt__tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.pt__tabs [role=tab]{appearance:none;border:1px solid var(--line);background:var(--white);color:var(--ink);font:700 14px/1 var(--font-jp);padding:12px 18px;border-radius:999px;cursor:pointer;transition:background .18s,border-color .18s,color .18s}
.pt__tabs [role=tab]:hover{border-color:var(--main)}
.pt__tabs [role=tab][aria-selected=true]{background:var(--main);border-color:var(--main);color:#fff}
.pt__panel[hidden]{display:none}
.pt__grid{display:grid;gap:14px}
.pt__plan{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:20px 20px 8px;display:flex;flex-direction:column}
.pt__plan--first{border-color:var(--main);box-shadow:0 12px 30px -24px rgba(247,127,0,.6)}
.pt__plan-head{margin-bottom:6px}
.pt__plan-head h3{font-size:19px;margin:6px 0 2px}
.pt__plan-head small{display:block;font-size:12.5px;color:var(--muted)}
.pt__plan-tag{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--main-tint);color:var(--main-text);font-size:11px;font-weight:700}
.pt__plan-tag--sky{background:var(--sky-soft);color:#00618C}
.pt__rows{list-style:none;margin:8px 0 0;padding:0}
.pt__rows li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.pt__rows li span{font-size:14.5px;font-weight:700;color:var(--ink)}
.pt__rows li b{font:800 22px/1.1 var(--font-en);color:var(--ink);letter-spacing:-.01em;text-align:right;font-variant-numeric:tabular-nums}
.pt__rows li b small{display:block;font:400 11.5px/1.4 var(--font-jp);color:var(--muted);letter-spacing:0;margin-top:3px}
.pt__plan--first .pt__rows li b{color:var(--main-deep);font-size:26px}
.pt__note{font-size:12.5px;color:var(--muted);margin:16px 0 0}
.pt__all{margin-top:22px}
.pt__all summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);font-size:14.5px;padding:10px 16px;border:1px solid var(--line);border-radius:999px;background:var(--white)}
.pt__all summary::-webkit-details-marker{display:none}
.pt__all summary::after{content:'+';font:700 18px/1 var(--font-en);color:var(--main-deep)}
.pt__all[open] summary::after{content:'−'}
.pt__all summary:hover{border-color:var(--main)}
.pt__all .ptables{margin-top:16px}
@media(min-width:768px){.pt__grid{grid-template-columns:repeat(3,1fr)}.pt__plan{padding:24px 22px 10px}}
/* 料金ページ：カードの中の小さな表（親子プラン） */
.ptable--in-card{border-radius:var(--radius-s)}
.ptable--in-card table{min-width:0}
.ptable--in-card th,.ptable--in-card td{padding:11px 12px;white-space:normal}
.ptable--in-card td:nth-child(2){color:var(--ink)}
.ptable--in-card td{font-size:17px}
.price .ptable+.price__rows{margin-top:14px;border-top:0}
.ptable--in-card th:first-child,.ptable--in-card td:first-child{white-space:nowrap;font-size:14px;padding-right:6px}
.ptable--in-card th,.ptable--in-card td{padding-left:10px;padding-right:10px}
.price__rows li strong{white-space:nowrap}
@media(max-width:399px){.ptable--in-card td{font-size:15.5px}}
/* 料金ページ：初回登録料の行（大きすぎず、見落とさない） */
.price__reg{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:14px 16px;background:var(--main-tint);border:1px solid #FFD9B0;border-radius:var(--radius-s)}
.price__reg-label{font-weight:700;color:var(--ink);font-size:15px;line-height:1.4}
.price__reg-label small{display:block;font-weight:400;font-size:12px;color:var(--muted);margin-top:2px}
.price__reg strong{font:800 26px/1 var(--font-en);color:var(--main-deep);white-space:nowrap;letter-spacing:-.01em}
.price__reg strong span{font:700 13px var(--font-jp);margin-left:2px}
@media(max-width:767px){.duo__body h3 br{display:none}.duo__body h3{font-size:17px}}
/* 2026-09-22：スマホでは囲みの中の文字を本文と同じ大きさに（囲みで字が小さく見える問題） */
@media(max-width:767px){
  .qa__a,.qa__a p,.card p,.duo__body p,.compare__col li,.say__bubble p,.faq details p,.step p,.point span,.price__note,.steps__note,.pt__note,.price__wear p,.qa__row .qa__a{font-size:15.5px;line-height:1.85}
  .qa__q{font-size:17px}
  .qa__row,.card,.compare__col,.duo__item,.pt__plan{padding-left:16px;padding-right:16px}
  .faq details{padding:0 14px}
  .faq details p{padding-left:36px}
  .say__bubble{padding:16px 16px}
}
