@charset "utf-8";
/* =========================================================
   Rider’s Body Clinic ／ 乗馬のためのマシンピラティスLP
   色：2026-09-13 佐々木さんの指示で「ペライチ版の水色ベース＋所々ピンク、淡く女性向け」。
       共通_デザインルール.md の色表（RE:POST行）と「有彩色は1色」に対する、このLPだけの例外。
       ペライチの実測値（地 #F2FAFF／罫線 #76B0CC／ボタン #CC0E64）を起点に淡くした。
   コントラスト実測：白文字 on ピンク#C2457A＝4.74／白文字 on 水色濃#356E8A＝5.60／ピンク文字#B03D6E on 淡ピンク＝5.07
                     本文#5E5656 on 白＝7.14・on #F2FAFF＝6.76／見出し#356E8A on #F2FAFF＝5.31・on #E3F1F8＝4.85
   書体：見出し Zen Kaku Gothic New ／ 本文 游ゴシック（丸ゴシック・明朝は使わない）
   質感：角丸14px・影は1段階だけ
   ========================================================= */

:root{
  --sky:#76B0CC;        /* 罫線・飾り（文字には使わない） */
  --sky-deep:#356E8A;   /* 見出し・白文字の面（#3A7592はフォーム面で4.40と不足したため濃くした） */
  --sky-pale:#F2FAFF;   /* 地（ペライチ版と同じ） */
  --sky-soft:#E3F1F8;   /* 情報ブロックの面 */
  --line:#D3E7F1;
  --pink:#C2457A;       /* 予約ボタンの面（白文字4.74）。文字には使わない */
  --pink-text:#B03D6E;  /* ピンクの文字（淡ピンク面5.07・淡水色面4.87） */
  --pink-pale:#FDF0F5;
  --pink-line:#F3CFDF;
  --ink:#5E5656;        /* 本文（ペライチ版 #696060 を少し濃く） */
  --white:#fff;
  --radius:14px;
  --shadow:0 6px 22px rgba(58,117,146,.10);
  --font-head:'Zen Kaku Gothic New','Yu Gothic Medium','游ゴシック Medium','Yu Gothic',sans-serif;
  --font-body:'Yu Gothic Medium','游ゴシック Medium','Yu Gothic','游ゴシック体','Hiragino Sans','Noto Sans JP',sans-serif;
  --maxw:1080px;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:64px;}
body{
  margin:0;font-family:var(--font-body);color:var(--ink);background:var(--white);
  font-size:16px;line-height:1.95;letter-spacing:.03em;
  padding-bottom:72px;overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--sky-deep);}
h1,h2,h3{font-family:var(--font-head);font-weight:500;color:var(--sky-deep);letter-spacing:.05em;}
h2{font-size:clamp(24px,3.2vw,32px);line-height:1.55;margin:0 0 20px;}
h3{font-size:18px;line-height:1.6;margin:0 0 8px;}
p{margin:0 0 16px;}
figure{margin:0;}
figcaption{font-size:14px;line-height:1.8;margin-top:10px;color:var(--ink);}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px;}
section{padding:72px 0;}
.pale{background:var(--sky-pale);}
.sec-en{
  font-family:var(--font-head);font-size:13px;letter-spacing:.2em;
  color:var(--pink-text);margin:0 0 8px;display:flex;align-items:center;gap:10px;
}
.sec-en::before{content:"";width:22px;height:1px;background:var(--pink);}

/* ===== ボタン ===== */
.btn{
  display:inline-block;background:var(--pink);color:var(--white);text-decoration:none;
  font-family:var(--font-head);font-weight:500;font-size:16px;letter-spacing:.06em;line-height:1.5;
  padding:14px 30px;border-radius:999px;border:0;cursor:pointer;text-align:center;
  box-shadow:var(--shadow);transition:background-color .15s ease, transform .15s ease;
}
.btn:hover{background:#AE3C6C;transform:translateY(-1px);}
.btn:focus-visible,.text-link:focus-visible,summary:focus-visible{outline:3px solid var(--sky);outline-offset:3px;}
.btn-sm{font-size:14px;padding:8px 18px;box-shadow:none;white-space:nowrap;flex-shrink:0;}
.text-link{
  color:var(--sky-deep);font-size:15px;text-decoration:underline;text-decoration-color:var(--sky);
  text-underline-offset:5px;text-decoration-thickness:1px;transition:color .15s ease;
}
.text-link:hover{color:var(--pink-text);text-decoration-color:var(--pink-text);}

/* ===== ヘッダー ===== */
.site-header{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.93);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line);
}
.header-in{
  max-width:var(--maxw);margin:0 auto;padding:10px 22px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.brand{
  font-family:var(--font-head);font-weight:500;font-size:18px;letter-spacing:.06em;
  line-height:1.3;color:var(--sky-deep);text-decoration:none;margin:0;
}
.brand span{display:block;font-family:var(--font-body);font-size:11px;letter-spacing:.04em;color:var(--ink);}
@media (max-width:420px){ .site-header .brand{font-size:16px;} .site-header .brand span{font-size:10px;letter-spacing:0;} }

/* ===== TOP ===== */
.hero{padding:0;display:grid;grid-template-columns:1fr;background:var(--sky-pale);}
.hero-media{order:-1;}
/* 告知動画は文字入りなので切り抜かない（4:5のまま全体を見せる） */
.video-frame{position:relative;width:100%;aspect-ratio:4/5;background:var(--sky-soft);}
.hero-video{display:block;width:100%;height:100%;object-fit:contain;}
/* 再生・一時停止ボタン：動画の文字に重ならない右上の角に置く（下端は「徒歩約7分」の文字と重なった） */
.video-toggle{
  position:absolute;right:8px;top:8px;width:40px;height:40px;padding:0;border:0;border-radius:50%;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  color:var(--sky-deep);background:rgba(255,255,255,.88);box-shadow:var(--shadow);
}
.video-toggle[hidden]{display:none;}
.video-toggle svg{width:16px;height:16px;fill:currentColor;}
.video-toggle[data-state="playing"] .i-play,.video-toggle[data-state="paused"] .i-pause{display:none;}
.video-toggle:focus-visible{outline:3px solid var(--sky);outline-offset:2px;}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.hero-text{padding:36px 22px 56px;max-width:560px;}
.hero-kicker{
  display:inline-block;font-size:13px;color:var(--pink-text);letter-spacing:.06em;margin-bottom:14px;
  background:var(--pink-pale);border:1px solid var(--pink-line);border-radius:999px;padding:2px 14px;
}
h1{font-size:clamp(32px,6.6vw,50px);line-height:1.45;margin:0 0 22px;font-weight:700;} /* 700はこの1か所だけ */
.hero-lead{font-size:16px;}
.hero-facts{list-style:none;margin:28px 0;padding:0;border-top:1px solid var(--line);}
.hero-facts li{
  display:grid;grid-template-columns:4.4em 1fr;gap:12px;align-items:baseline;
  padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.7;
}
.hero-facts b{font-family:var(--font-head);font-weight:500;font-size:20px;color:var(--sky-deep);white-space:nowrap;}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin:0;}

@media (min-width:900px){
  .hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:calc(100vh - 62px);max-height:900px;}
  .hero-media{order:0;padding:28px 28px 28px 0;display:flex;align-items:center;}
  .video-frame{width:min(100%, calc((100vh - 118px) * .8), 640px);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
  .hero-text{align-self:center;justify-self:end;padding:48px 56px 48px 22px;}
}

/* ===== 悩み ===== */
.worries-grid{display:grid;gap:36px;}
.worries-quote h2{font-size:clamp(28px,4.4vw,40px);line-height:1.5;}
.worries-list{list-style:none;margin:0;padding:0;}
.worries-list li{position:relative;padding:22px 0 8px 26px;border-top:1px dashed var(--line);}
.worries-list li::before{
  content:"";position:absolute;left:2px;top:33px;width:10px;height:10px;border-radius:50%;
  background:var(--pink-line);border:2px solid var(--pink);
}
.worries-list li:first-child{border-top:0;padding-top:0;}
.worries-list li:first-child::before{top:11px;}
.worries-list li:nth-child(2) p{max-width:36em;}
@media (min-width:900px){
  .worries-grid{grid-template-columns:5fr 7fr;gap:64px;align-items:start;}
  .worries-quote{position:sticky;top:100px;background:var(--pink-pale);border-radius:var(--radius);padding:32px;}
}

/* ===== コンセプト ===== */
.concept-head{max-width:40em;margin-bottom:32px;}
.concept-fig{background:var(--white);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);}
.concept-fig img{border-radius:8px;}
.concept-fig figcaption{font-family:var(--font-head);font-size:16px;color:var(--sky-deep);padding:6px 6px 2px;}
@media (min-width:900px){
  .concept .wrap{display:grid;grid-template-columns:4fr 7fr;gap:56px;align-items:center;}
  .concept-head{margin:0;}
}

/* ===== Rider's Body Map ===== */
.bodymap-grid{display:grid;gap:36px;}
.five{margin:24px 0 0;}
.five div{display:grid;grid-template-columns:7.5em 1fr;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line);}
.five dt{font-family:var(--font-head);color:var(--sky-deep);font-size:15px;}
.five dd{margin:0;font-size:15px;line-height:1.75;}
.bodymap-fig{background:var(--sky-soft);border-radius:var(--radius);padding:14px;}
.bodymap-fig img{border-radius:8px;background:var(--white);}
@media (min-width:900px){
  .bodymap-grid{grid-template-columns:5fr 6fr;gap:56px;align-items:center;}
}

/* ===== 120分の流れ ===== */
.flow-head{max-width:40em;margin-bottom:40px;}
.timeline{list-style:none;margin:0;padding:0;}
.timeline > li{position:relative;display:grid;gap:18px;padding:0 0 44px;}
.step-photo img,.ph-box{border-radius:var(--radius);}
.step-time{
  display:inline-block;font-family:var(--font-head);font-size:14px;color:var(--white);
  background:var(--sky-deep);border-radius:999px;padding:2px 14px;margin-bottom:10px;
}
.step-body h3{font-size:20px;}
.step-last{background:var(--white);border-radius:var(--radius);padding:24px 22px !important;box-shadow:var(--shadow);}
.step-last p:last-child{margin:0;}
.step-last .step-time{background:var(--pink);}
@media (min-width:900px){
  .step-wide{grid-template-columns:5fr 6fr;gap:44px !important;align-items:center;}
  .step-reverse .step-photo{order:2;}
  .step-last{max-width:760px;margin-left:auto;}
}

/* ===== 5回修了プログラム（第1回・第5回＝測定の回だけ面を付けて、2〜4回は線で区切るだけにする） ===== */
.program-head{max-width:42em;margin-bottom:36px;}
.program-steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--sky);}
.program-steps > li{display:grid;gap:4px 28px;padding:22px 4px;border-bottom:1px solid var(--line);}
.program-steps h3{font-size:20px;margin:0;}
.program-steps p{margin:0;}
.program-no{font-family:var(--font-head);font-size:15px;color:var(--pink-text);letter-spacing:.1em;}
.program-focus{font-size:14px;color:var(--sky-deep);margin:2px 0 8px !important;}
.program-measure{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px 22px !important;margin:12px 0;border-bottom:0 !important;}
.program-measure .program-focus{display:inline-block;color:var(--white);background:var(--sky-deep);border-radius:999px;padding:0 12px;}
.program-note{margin:22px 0 44px;max-width:42em;}
.program-cert{display:grid;gap:18px;margin:22px 0 44px;}
.program-cert .program-note{margin:0;}
.program-cert-fig{max-width:460px;}
.program-cert-fig img{border-radius:8px;box-shadow:var(--shadow);}
.club-seminar{margin:22px 0;}
.club-seminar img{border-radius:var(--radius);}
.program-detail{display:grid;gap:22px;}
.program-include{background:var(--white);border-radius:var(--radius);padding:26px 24px 22px;}
.program-include ul{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:4px 26px;}
.program-include li{position:relative;padding-left:14px;font-size:15px;line-height:1.85;}
.program-include li::before{content:"";position:absolute;left:0;top:.8em;width:6px;height:6px;border-radius:50%;background:var(--pink);}
.program-small{font-size:14px;line-height:1.85;}
.program-price{background:var(--pink-pale);border:1px solid var(--pink-line);border-radius:var(--radius);padding:26px 24px 22px;}
.program-price .price-yen{margin-bottom:0;}
.program-price dl{margin:14px 0 18px;}
.program-price dl div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--pink-line);font-size:15px;}
.program-price dt{font-family:var(--font-head);color:var(--sky-deep);}
.program-price dd{margin:0;}
.program-switch{font-size:14px;line-height:1.8;margin:0;}
.program-switch b{display:block;font-family:var(--font-head);font-weight:500;color:var(--pink-text);font-size:16px;margin-bottom:2px;}
@media (min-width:900px){
  .program-steps > li{grid-template-columns:7em 1fr;padding:24px 32px;}
  .program-steps > li > .program-no{padding-top:2px;}
  .program-measure{padding:28px 32px !important;}
  .program-detail{grid-template-columns:7fr 4fr;align-items:start;}
  .program-cert{grid-template-columns:6fr 5fr;gap:44px;align-items:center;}
  .program-include{padding:32px 34px 26px;}
}

/* 画像の仮置き（共通_デザインルール.md §2-B） */
.ph-box{
  aspect-ratio:var(--ratio,3/2);background:var(--white);border:1px dashed var(--sky);
  display:flex;align-items:center;justify-content:center;
  font-size:14px;letter-spacing:.08em;color:var(--sky-deep);
}
.ph-note{font-size:13px;}

/* ===== 料金 ===== */
.price-head{max-width:40em;margin-bottom:32px;}
.price-main{
  background:var(--pink-pale);border:1px solid var(--pink-line);border-radius:var(--radius);
  padding:28px 24px;margin-bottom:44px;display:grid;gap:18px;align-items:end;
}
.price-label{
  display:inline-block;font-size:13px;color:var(--white);background:var(--pink);
  border-radius:999px;padding:0 12px;margin-bottom:10px;
}
.price-main h3{font-size:24px;margin-bottom:0;}
.price-yen{font-family:var(--font-head);font-size:44px;color:var(--sky-deep);line-height:1.3;margin:2px 0 8px;letter-spacing:.02em;}
.price-yen span{font-size:18px;margin-left:4px;}
.price-plus{font-size:15px;color:var(--pink-text);margin:0;}
@media (min-width:900px){
  .price-main{grid-template-columns:1fr auto;padding:36px 44px;}
}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.price-table{width:100%;min-width:640px;border-collapse:collapse;font-size:15px;line-height:1.75;}
.price-table caption{text-align:left;font-family:var(--font-head);font-size:18px;color:var(--sky-deep);padding-bottom:10px;}
.price-table th,.price-table td{padding:16px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
.price-table thead th{font-size:13px;font-weight:400;color:var(--ink);border-bottom:1px solid var(--sky);padding-top:0;padding-bottom:8px;}
.price-table tbody th{font-family:var(--font-head);font-weight:500;color:var(--sky-deep);width:13em;}
.price-table small{display:block;font-size:13px;font-family:var(--font-body);color:var(--ink);}
.price-table .yen{font-family:var(--font-head);font-size:20px;color:var(--sky-deep);white-space:nowrap;}
.price-table .plus{color:var(--pink-text);}
.price-table .note{font-size:13px;}
.price-table .featured{background:var(--sky-pale);}
.price-table thead th{white-space:nowrap;}
/* スマホは表を縦積みにする（横スクロールさせない） */
@media (max-width:639px){
  .price-table{min-width:0;}
  .price-table thead{display:none;}
  .price-table tbody tr{display:block;padding:16px 14px;border-bottom:1px solid var(--line);}
  .price-table tbody th,.price-table tbody td{display:block;width:auto;border:0;padding:0;}
  .price-table tbody th{font-size:17px;margin-bottom:6px;}
  .price-table tbody th small{display:inline;margin-left:8px;}
  .price-table td[data-label]{position:relative;padding:4px 0 4px 84px;}  /* gridにすると<br>や<span>が別のマスに割れるので、見出しは絶対配置で左に置く */
  .price-table td[data-label]::before{content:attr(data-label);position:absolute;left:0;top:6px;font-size:13px;line-height:1.75;color:var(--sky-deep);}
  .price-table td.yen{font-size:20px;}
}

/* ===== メンバーシップ ===== */
.stable-grid{display:grid;gap:28px;}
.stable-price{font-family:var(--font-head);font-size:28px;color:var(--sky-deep);margin:0;}
.stable-price span{font-size:14px;}
.stable-list{list-style:none;margin:0;padding:0;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);}
.stable-list li{padding:14px 20px;border-bottom:1px dashed var(--line);font-size:15px;line-height:1.75;}
.stable-list li:last-child{border-bottom:0;}
.stable-list b{display:block;font-family:var(--font-head);font-weight:500;color:var(--pink-text);}
.stable-desc{display:block;}  /* 説明は1つのまとまりにする（中に .nw があるとグリッドのマスが割れた） */
@media (min-width:900px){
  .stable-grid{grid-template-columns:5fr 7fr;gap:56px;align-items:center;}
  .stable-list li{display:grid;grid-template-columns:12em 1fr;gap:12px;}
}

/* ===== プロフィール ===== */
.profile-grid{display:grid;gap:28px;}
.profile-photo{max-width:420px;position:relative;}
.profile-photo img{border-radius:var(--radius);position:relative;}
.profile-photo::before{
  content:"";position:absolute;inset:18px -14px -14px 18px;border-radius:var(--radius);background:var(--pink-pale);
}
.profile-text h2 span{display:block;font-family:var(--font-body);font-size:13px;letter-spacing:.14em;color:var(--ink);}
.profile-catch{font-family:var(--font-head);font-size:19px;color:var(--pink-text);line-height:1.7;}
.tags{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;}
.tags li{font-size:13px;background:var(--sky-soft);color:var(--sky-deep);border-radius:999px;padding:3px 14px;}
@media (min-width:900px){
  .profile-grid{grid-template-columns:4fr 7fr;gap:72px;align-items:center;}
}

/* ===== アクセス・Q&A ===== */
.access-grid{display:grid;gap:40px;}
.access-list{margin:0 0 18px;}
.access-list div{display:grid;grid-template-columns:4.5em 1fr;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line);}
.access-list dt{font-family:var(--font-head);color:var(--sky-deep);font-size:15px;}
.access-list dd{margin:0;font-size:15px;line-height:1.8;}
.faq-title{font-size:20px;margin-bottom:14px;}
.faq details{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;}
.faq summary{
  cursor:pointer;list-style:none;padding:16px 44px 16px 18px;position:relative;
  font-family:var(--font-head);color:var(--sky-deep);line-height:1.6;
}
.faq summary::before{content:"Q.";color:var(--pink-text);margin-right:8px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:"";position:absolute;right:20px;top:50%;width:8px;height:8px;margin-top:-6px;
  border-right:1.5px solid var(--sky-deep);border-bottom:1.5px solid var(--sky-deep);
  transform:rotate(45deg);transition:transform .2s ease;
}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-2px;}
.faq details p{padding:0 18px 16px;margin:0;font-size:15px;}
@media (min-width:900px){
  .access-grid{grid-template-columns:5fr 6fr;gap:56px;}
}

/* ===== お問い合わせ ===== */
.contact-grid{display:grid;gap:36px;}
.form{background:var(--sky-soft);border-radius:var(--radius);padding:26px 22px;}
.field{margin-bottom:16px;}
.field label{display:block;font-family:var(--font-head);color:var(--sky-deep);font-size:15px;margin-bottom:4px;}
.req{font-size:11px;color:var(--white);background:var(--pink);border-radius:4px;padding:1px 6px;margin-left:8px;vertical-align:2px;}
.field input,.field textarea,.field select{
  width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--white);
  border:1px solid var(--line);border-radius:8px;padding:10px 12px;
}
.field input:focus,.field textarea:focus{outline:2px solid var(--sky);outline-offset:0;border-color:var(--sky);}
.agree{font-size:15px;}
.agree input{width:18px;height:18px;vertical-align:-3px;margin-right:4px;accent-color:var(--pink-text);}
.hp{position:absolute;left:-9999px;}
.form .btn{width:100%;}
@media (min-width:900px){
  .contact-grid{grid-template-columns:5fr 6fr;gap:56px;align-items:start;}
  .form{padding:32px;}
}

/* ===== ご予約・お問い合わせの案内（フォームはRE:POSTサイトの /contact/ を使う） ===== */
.contact-box{display:grid;gap:16px;}
.contact-item{background:var(--sky-soft);border-radius:var(--radius);padding:24px 22px;}
.contact-item:first-child{background:var(--pink-pale);border:1px solid var(--pink-line);}
.contact-item h3{font-size:19px;margin-bottom:6px;}
.contact-item p{font-size:15px;}
.contact-item .btn{display:block;width:100%;}
.footer-links a{display:inline-block;margin-right:1.2em;}  /* スマホで「プラ／イバシーポリシー」と途中で折れたため */
@media (min-width:900px){ .contact-item{padding:28px 32px;} }

/* ===== 受講した方の声（実際の感想。1つを大きく、残り2つは幅を変えて並べる） ===== */
.voices-head{max-width:40em;margin-bottom:32px;}
.voices-grid{display:grid;gap:18px;}
.voice{margin:0;position:relative;background:var(--white);border-radius:var(--radius);padding:26px 22px 22px;box-shadow:var(--shadow);}
.voice::before{content:"“";position:absolute;left:16px;top:4px;font-family:Georgia,'Times New Roman',serif;font-size:54px;line-height:1;color:var(--pink-line);}
.voice blockquote{margin:0;padding-top:14px;}
.voice p{font-size:15px;line-height:1.9;margin:0 0 10px;}
.voice p:last-child{margin-bottom:0;}
.voice-main{background:var(--pink-pale);border:1px solid var(--pink-line);box-shadow:none;}
.voice-main p{font-family:var(--font-head);font-size:clamp(17px,2vw,21px);line-height:1.85;color:var(--sky-deep);}
@media (min-width:900px){
  .voices-grid{grid-template-columns:6fr 5fr;gap:24px;align-items:start;}
  .voice-main{grid-column:1 / -1;padding:40px 48px 36px;}
  .voice-main::before{left:26px;top:10px;}
}

/* ===== セミナー参加者の声（乗馬クラブ・団体向けの欄の下） ===== */
.club-voices{margin-top:56px;}
.club-voices h3{font-size:20px;border-top:1px dashed var(--line);padding-top:36px;}
.club-voices-note{font-size:14px;}
.club-voices ul{list-style:none;margin:18px 0 0;padding:0;}
.club-voices li{break-inside:avoid;margin:0 0 18px;padding:2px 0 2px 16px;border-left:3px solid var(--pink-line);font-size:15px;line-height:1.85;}
@media (min-width:900px){ .club-voices ul{columns:2;column-gap:56px;} }

/* ===== Re:Ride Stableの補足・団体講習の開催実績 ===== */
.stable-note{font-size:14px;margin:4px 0 0;}
.club-record{background:var(--sky-pale);border-radius:var(--radius);padding:16px 20px;margin:22px 0 4px;}
.club-record-label{font-family:var(--font-head);color:var(--sky-deep);font-size:15px;margin:0 0 6px;}
.club-record ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px 22px;}
.club-record li{position:relative;padding-left:14px;font-size:15px;line-height:1.8;}
.club-record li::before{content:"";position:absolute;left:0;top:.8em;width:6px;height:6px;border-radius:50%;background:var(--pink);}

/* ===== CARNAサイトへのリンク（Re:Ride Stable・開催予定のセミナー） ===== */
.stable-link{margin:22px 0 6px;}
.club-voices-more{margin:6px 0 6px;}
.link-note{font-size:13px;line-height:1.8;margin:0;}

/* ===== キャンセル規定（料金の下） ===== */
.cancel{margin-top:36px;background:var(--sky-pale);border-radius:var(--radius);padding:22px 22px 6px;}
.cancel h3{font-size:18px;margin-bottom:10px;}
.cancel dl{margin:0 0 12px;}
.cancel dl div{display:grid;grid-template-columns:8em 1fr;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);}
.cancel dt{font-family:var(--font-head);color:var(--sky-deep);font-size:15px;}
.cancel dd{margin:0;font-size:15px;line-height:1.75;}
.cancel p{font-size:15px;}
@media (max-width:639px){ .cancel dl div{grid-template-columns:1fr;gap:0;} }
@media (min-width:900px){ .cancel{padding:28px 36px 12px;max-width:760px;} }

/* ===== 乗馬クラブ・団体向け ===== */
.club-grid{display:grid;gap:32px;}
.club h2 span{display:block;font-size:17px;color:var(--pink-text);margin-top:4px;}
.club-example{background:var(--pink-pale);border:1px solid var(--pink-line);border-radius:var(--radius);padding:16px 20px;margin:22px 0;font-size:15px;line-height:1.8;}
.club-example b{display:block;font-family:var(--font-head);font-weight:500;color:var(--pink-text);font-size:16px;margin-bottom:4px;}
.club-photo{max-width:420px;}
.club-photo img{border-radius:var(--radius);}
.btn-outline{background:var(--white);color:var(--pink-text);border:1.5px solid var(--pink);box-shadow:none;}
.btn-outline:hover{background:var(--pink-pale);}
@media (min-width:900px){
  .club-grid{grid-template-columns:7fr 4fr;gap:64px;align-items:start;}
  .club-photo{position:sticky;top:100px;}
}

/* ===== フッター ===== */
.site-footer{background:var(--sky-soft);padding:40px 0;border-top:3px solid var(--pink-line);}
.footer-in{display:grid;gap:10px;}
.footer-links{margin:0;font-size:14px;}
.copy{font-size:13px;margin:0;}

/* ===== 画面下の予約ボタン（スマホ） ===== */
.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.95);border-top:1px solid var(--line);
  transition:transform .25s ease;
}
.sticky-cta .btn{display:block;width:100%;padding:12px 16px;box-shadow:none;}
.sticky-cta.is-hidden{transform:translateY(110%);}
@media (min-width:900px){
  body{padding-bottom:0;}
  .sticky-cta{display:none;}
  section{padding:96px 0;}
}

/* ===== ページ単独（プライバシーポリシー・送信完了・404） ===== */
.page{padding:64px 0 96px;background:var(--sky-pale);min-height:60vh;}
.page .wrap{max-width:760px;}
.page h1{font-size:clamp(26px,4vw,34px);font-weight:500;}
.page h2{font-size:20px;margin:36px 0 10px;}
.page-body{padding-bottom:0;}

/* ===== 改行の調整（2026-09-13 全体スクリーニングで修正） =====
   .nw …この中では改行しない。見出し・Q&A・表の語句に使う（iPhoneのSafariでも効く方法）
   auto-phrase …文節で折り返す（Chrome/Edge）。balance …行の長さをそろえる
   pretty …最後の行が「す。」だけになるのを防ぐ（Chrome/Edge、Safari 26以降）
   本文中のカタカナ語が行をまたぐのは日本語の通常の組み方なので、本文には auto-phrase をかけない（行末がガタガタになるため） */
.nw{display:inline-block;}
/* 1024px前後で「分かる。」だけが3行目に落ちたため、この見出しだけ幅に合わせて少し小さくする */
@media (min-width:900px){ .bodymap-text h2{font-size:clamp(24px,2.6vw,30px);} }
h1,h2,h3,summary,th,dt,caption,figcaption,.btn,.hero-kicker,.profile-catch,.club-example b,.stable-list b,.program-no,.program-switch b,.price-plus{word-break:auto-phrase;text-wrap:balance;}
p,li,dd,td{text-wrap:pretty;}

/* ===== スクロールで出てくる動き ===== */
.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .45s ease, transform .45s ease;}
.js .reveal.is-in{opacity:1;transform:none;}

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