/* ============================================================
   法人会員募集ページ（page-membership.php 専用）
   チラシのトーン（ネイビー×えんじ×空色）を継承したビジネスサイト構成
   ============================================================ */
.rec-page{
  --navy:#0f2137; --navy-2:#1b3352; --navy-text:#0a2238;
  --maroon:#7a1d2c;
  --gray-bg:#f3f5f7; --gray-line:#d8dde3;
  --ink:#1d1f22; --ink-mid:#41464d; --ink-light:#6b7078;
  --white:#fff;
  --sky-1:#cedfef; --sky-2:#e7eff7; --sky-3:#f5f8fb;
  --serif:'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho',serif;
  --sans:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;
  padding-top:64px;font-family:var(--sans);color:var(--ink);background:var(--white);line-height:1.9;letter-spacing:.04em;
}
.rec-page a{color:inherit}
.rec-page ul,.rec-page ol{list-style:none}
.rec-page .sp{display:none}
.rec-arrow{width:20px;height:10px;flex-shrink:0;transition:transform .25s}

/* ---------- 共通レイアウト ---------- */
.rec-container{max-width:1120px;margin:0 auto;padding:0 40px}
.rec-narrow{max-width:800px}
.rec-sec{padding:112px 0}
.rec-sec.is-gray{background:var(--gray-bg)}
.rec-sec-head{text-align:center;margin-bottom:56px}
.rec-sec-head .en,.rec-en{display:block;font-family:'Cormorant Garamond',serif;font-size:15px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--maroon)}
.rec-sec-head h2{font-family:var(--serif);font-size:32px;font-weight:700;line-height:1.6;color:var(--navy-text);letter-spacing:.08em;margin-top:10px}
.rec-sec-head h2::after{content:'';display:block;width:40px;height:2px;background:var(--maroon);margin:22px auto 0}
.rec-sec-text{max-width:820px;margin:48px auto 0;text-align:center;font-size:16px;color:var(--ink-mid);line-height:2.1}
.rec-note{font-size:13px;color:var(--ink-light);margin-top:24px}
.rec-center{text-align:center}

/* ---------- ボタン ---------- */
.rec-btn-primary,.rec-btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:18px;font-size:15px;font-weight:500;letter-spacing:.12em;text-decoration:none;transition:background .25s,color .25s,border-color .25s}
.rec-btn-primary{background:var(--navy);color:var(--white)!important;padding:20px 40px;min-width:340px}
.rec-btn-primary:hover{background:var(--maroon)}
.rec-btn-primary:hover .rec-arrow,.rec-btn-outline:hover .rec-arrow{transform:translateX(4px)}
.rec-btn-primary.is-light{background:var(--white);color:var(--navy)!important}
.rec-btn-primary.is-light:hover{background:var(--maroon);color:var(--white)!important}
.rec-btn-outline{border:1px solid var(--navy);color:var(--navy)!important;padding:16px 30px}
.rec-btn-outline:hover{background:var(--navy);color:var(--white)!important}
.rec-btn-text{font-size:14px;color:var(--navy-text);text-decoration:underline;text-underline-offset:5px}
.rec-btn-text:hover{color:var(--maroon)}

/* ---------- HERO ---------- */
.rec-hero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--sky-1) 0%,var(--sky-2) 34%,var(--sky-3) 62%,#eef2f4 100%)}
.rec-hero-photo{position:absolute;top:0;bottom:0;right:0;width:min(62%,1080px);
  background:var(--rec-bg) 62% 28%/cover no-repeat;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 34%);mask-image:linear-gradient(to right,transparent 0,#000 34%)}
.rec-hero-inner{position:relative;z-index:2;max-width:1440px;margin:0 auto;padding:96px 0 96px max(40px,calc((100% - 1120px)/2 + 40px));min-height:720px}
.rec-hero-copy,.rec-hero-body{max-width:620px}
.rec-kicker{font-family:var(--serif);font-weight:700;font-size:26px;line-height:1.7;color:var(--navy-text);letter-spacing:.06em}
.rec-h1{margin:0;font-weight:inherit}
.rec-title{display:block;font-family:var(--serif);font-weight:900;font-size:88px;line-height:1.15;color:var(--navy-text);letter-spacing:.06em;margin-top:20px}
.rec-sub{display:block;font-family:var(--serif);font-weight:700;font-size:36px;line-height:1.4;color:var(--navy-text);letter-spacing:.06em;margin-top:12px}
.rec-lead{font-family:var(--serif);font-weight:600;font-size:19px;line-height:1.95;color:var(--navy-text);margin-top:36px}
.rec-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.rec-chips li{font-size:13px;font-weight:500;letter-spacing:.06em;color:var(--navy);background:rgba(255,255,255,.82);border:1px solid rgba(15,33,55,.18);padding:6px 14px}
.rec-hero-cta{display:flex;align-items:center;flex-wrap:wrap;gap:16px 32px;margin-top:36px}

/* ---------- 導入 ---------- */
.rec-intro{background:var(--navy);color:var(--white);padding:88px 0}
.rec-intro-grid{display:grid;grid-template-columns:auto 1fr;gap:40px 72px;align-items:center}
.rec-intro-q{font-family:var(--serif);font-size:30px;font-weight:700;line-height:1.7;letter-spacing:.08em;padding-right:72px;border-right:1px solid rgba(255,255,255,.25)}
.rec-intro-body p{font-size:16px;line-height:2.1;color:rgba(255,255,255,.88)}
.rec-intro-body p + p{margin-top:14px}

/* ---------- こんな方に ---------- */
.rec-targets{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.rec-targets li{position:relative;background:var(--white);border:1px solid var(--gray-line);border-top:3px solid var(--navy);padding:36px 24px 32px;text-align:center;font-size:17px;font-weight:500;line-height:1.8;color:var(--navy-text)}
.rec-targets .ic{display:block;width:30px;height:30px;margin:0 auto 14px;border-radius:50%;background:var(--maroon);position:relative}
.rec-targets .ic::after{content:'';position:absolute;left:10px;top:7px;width:8px;height:13px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}

/* ---------- 特長 ---------- */
.rec-features{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.rec-feature{background:var(--white);padding:44px 44px 40px;position:relative}
.rec-feature .no{font-family:'Cormorant Garamond',serif;font-size:56px;font-weight:500;line-height:1;color:var(--maroon);letter-spacing:0}
.rec-feature h3{font-family:var(--serif);font-size:22px;font-weight:700;line-height:1.6;color:var(--navy-text);margin:18px 0 16px;letter-spacing:.06em}
.rec-feature p{font-size:15px;color:var(--ink-mid);line-height:2}

/* ---------- テーマ ---------- */
.rec-themes{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--gray-line);border-bottom:1px solid var(--gray-line)}
.rec-theme{padding:36px 28px 40px}
.rec-theme + .rec-theme{border-left:1px solid var(--gray-line)}
.rec-theme .no{font-family:'Cormorant Garamond',serif;font-size:15px;font-weight:600;letter-spacing:.16em;color:var(--maroon);text-transform:uppercase}
.rec-theme h3{font-family:var(--serif);font-size:19px;font-weight:700;line-height:1.6;color:var(--navy-text);margin:10px 0 14px}
.rec-theme p{font-size:14px;color:var(--ink-mid);line-height:2}

/* ---------- 講師 ---------- */
.rec-lecturer{display:grid;grid-template-columns:380px 1fr;gap:64px;align-items:center}
.rec-lecturer-photo{aspect-ratio:4/5;background:var(--lecturer-img) 50% center/cover no-repeat,var(--gray-line)}
.rec-lecturer-name{font-family:var(--serif);font-size:40px;font-weight:700;color:var(--navy-text);letter-spacing:.14em;line-height:1.4;margin-top:10px;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 20px}
.rec-lecturer-name small{font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:.1em;color:var(--white);background:var(--maroon);padding:2px 12px;align-self:center}
.rec-lecturer-name span{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:600;letter-spacing:.16em;color:var(--ink-light)}
.rec-lecturer-pos{font-size:16px;font-weight:500;color:var(--ink);margin-top:16px;padding-bottom:22px;border-bottom:1px solid var(--gray-line);line-height:1.9}
.rec-lecturer-bio{font-size:15px;color:var(--ink-mid);line-height:2.05;margin-top:20px}
.rec-lecturer-bio a{color:var(--navy);text-decoration:underline;text-underline-offset:4px}

/* ---------- スケジュール ---------- */
.rec-schedule{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.rec-schedule li{border:1px solid var(--gray-line);text-align:center;padding:30px 12px 28px;background:var(--white)}
.rec-schedule .no{display:inline-block;font-size:13px;font-weight:500;letter-spacing:.14em;color:var(--white);background:var(--navy);padding:3px 16px}
.rec-schedule .date{display:block;margin-top:14px;font-size:16px;color:var(--ink-mid)}
.rec-schedule .date b{font-family:var(--sans);font-size:44px;font-weight:500;line-height:1.1;color:var(--navy-text);letter-spacing:.02em;margin-right:2px}
.rec-outline{max-width:880px;margin:48px auto 0;border-top:1px solid var(--gray-line)}
.rec-outline > div{display:grid;grid-template-columns:200px 1fr;border-bottom:1px solid var(--gray-line)}
.rec-outline dt{font-weight:500;color:var(--navy-text);padding:24px 0 24px 8px;font-size:15px}
.rec-outline dd{padding:24px 8px;font-size:15px;color:var(--ink-mid);line-height:1.95}
.rec-outline .t{display:inline-block;min-width:120px;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}

/* ---------- 会費 ---------- */
.rec-price{max-width:880px;margin:0 auto;background:var(--white);border-top:4px solid var(--navy)}
.rec-price-main{padding:48px 48px 40px;text-align:center}
.rec-price .lbl{font-size:15px;font-weight:500;color:var(--navy-text);letter-spacing:.12em}
.rec-price-main .val{font-size:20px;color:var(--navy-text);margin-top:4px}
.rec-price-main .val b{font-family:var(--sans);font-size:58px;font-weight:600;line-height:1.1;letter-spacing:.01em;margin-right:4px}
.rec-price .val small{font-size:14px;color:var(--ink-mid);margin-left:6px}
.rec-price-main .inc{display:inline-block;margin-top:18px;font-size:15px;font-weight:500;color:var(--maroon);border-top:1px solid rgba(122,29,44,.3);border-bottom:1px solid rgba(122,29,44,.3);padding:8px 20px}
.rec-price .sub{font-size:14px;color:var(--ink-mid);margin-top:14px}
.rec-price-add{background:#e9edf1;padding:28px 48px 30px;text-align:center}
.rec-price-add .val{font-size:16px;color:var(--navy-text);margin-top:4px}
.rec-price-add .val b{font-family:var(--sans);font-size:32px;font-weight:600;letter-spacing:.01em}

/* ---------- CTA帯 ---------- */
.rec-cta-band{position:relative;padding:104px 0;text-align:center;color:var(--white);background:linear-gradient(rgba(10,26,46,.86),rgba(10,26,46,.9)),var(--rec-bg) center 30%/cover no-repeat}
.rec-cta-title{font-family:var(--serif);font-size:34px;font-weight:700;letter-spacing:.1em;line-height:1.6}
.rec-cta-text{font-size:16px;line-height:2.1;color:rgba(255,255,255,.85);margin:20px 0 40px}

/* ---------- 単発・お問い合わせ ---------- */
.rec-two{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.rec-box{border:1px solid var(--gray-line);padding:44px 44px 44px;scroll-margin-top:80px}
.rec-box-h{font-family:var(--serif);font-size:24px;font-weight:700;color:var(--navy-text);letter-spacing:.08em;margin:8px 0 18px;line-height:1.5}
.rec-box > p{font-size:15px;color:var(--ink-mid);line-height:2}
.rec-box-price{margin:14px 0 28px;padding:14px 0;border-top:1px solid var(--gray-line);border-bottom:1px solid var(--gray-line);color:var(--navy-text)!important}
.rec-box-price b{font-family:var(--sans);font-size:28px;font-weight:600}
.rec-box-price small{font-size:13px;color:var(--ink-mid)}
.rec-contact{margin-top:18px}
.rec-contact > div{display:grid;grid-template-columns:80px 1fr;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--gray-line)}
.rec-contact > div:first-child{border-top:1px solid var(--gray-line)}
.rec-contact dt{font-size:14px;color:var(--ink-light)}
.rec-contact dd{font-size:20px;color:var(--navy-text);font-variant-numeric:tabular-nums;word-break:break-all}
.rec-contact dd a{text-decoration:none}
.rec-contact dd a:hover{color:var(--maroon)}

/* ---------- お申し込みフォーム ---------- */
.rec-apply{scroll-margin-top:64px}
.rec-apply-lead{font-size:15px;color:var(--ink-mid);line-height:2.05}
.rec-apply-summary{background:var(--white);border-left:4px solid var(--navy);padding:22px 28px;margin:28px 0 40px;font-size:15px;color:var(--ink)}
.rec-apply.is-gray .rec-apply-summary{background:var(--white)}
.rec-apply:not(.is-gray) .rec-apply-summary{background:var(--gray-bg)}
.rec-apply-summary .t{font-weight:700;color:var(--navy-text);margin-bottom:4px}
.rec-apply-summary b{font-size:17px;color:var(--navy-text)}
.rec-apply-summary .s{font-size:13px;color:var(--ink-light);margin-top:4px}
.rec-form{background:var(--white);padding:48px 52px}
.rec-apply:not(.is-gray) .rec-form{border:1px solid var(--gray-line)}
.rec-form .cf7-form-wrap{display:flex;flex-direction:column;gap:28px}
.rec-form .cf7-field-group{display:flex;flex-direction:column;gap:8px}
.rec-form .cf7-label{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500;color:var(--ink)}
.rec-form .cf7-required,.rec-form .cf7-optional{font-size:11px;font-weight:500;letter-spacing:.08em;padding:1px 8px;line-height:1.7}
.rec-form .cf7-required{color:var(--white);background:var(--maroon)}
.rec-form .cf7-optional{color:var(--ink-light);background:#e6e9ed}
.rec-form .cf7-help{font-size:12px;color:var(--ink-light)}
.rec-form .wpcf7-list-item{display:block;margin:0 0 10px}
.rec-form .wpcf7-list-item label{display:flex;align-items:flex-start;gap:10px;font-size:15px;color:var(--ink);cursor:pointer;line-height:1.7}
.rec-form input[type="radio"],.rec-form input[type="checkbox"]{width:18px;height:18px;accent-color:var(--navy);flex-shrink:0;margin:4px 0 0}
.rec-form input[type="text"],.rec-form input[type="email"],.rec-form input[type="tel"],.rec-form input[type="number"],.rec-form textarea{
  width:100%;background:#fafbfc;border:1px solid #c9cfd6;border-radius:2px;color:var(--ink);padding:13px 16px;font-size:16px;font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}
.rec-form input[type="number"]{max-width:140px}
.rec-form textarea{min-height:130px;resize:vertical}
.rec-form input:focus,.rec-form textarea:focus{background:#fff;border-color:var(--navy);box-shadow:0 0 0 3px rgba(15,33,55,.12)}
.rec-form .cf7-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.rec-form .cf7-confirm{background:var(--gray-bg);padding:24px 28px}
.rec-form .cf7-confirm .wpcf7-list-item{margin:0}
.rec-form .cf7-confirm .wpcf7-form-control-wrap{display:block;margin-bottom:10px}
.rec-form .cf7-privacy-body{font-size:12px;color:var(--ink-light);line-height:1.9;margin-top:6px}
.rec-form .cf7-submit-wrap{text-align:center}
.rec-form .wpcf7-submit,.rec-form input[type="submit"]{background:var(--navy);color:var(--white);border:none;border-radius:0;padding:20px 72px;min-width:320px;font-size:16px;font-weight:500;letter-spacing:.16em;font-family:inherit;cursor:pointer;transition:background .25s}
.rec-form .wpcf7-submit:hover{background:var(--maroon)}
.rec-form .wpcf7-spinner{display:block;margin:12px auto 0}
.rec-form .wpcf7-not-valid-tip{color:#b3261e;font-size:13px;margin-top:4px}
.rec-form .wpcf7-not-valid{border-color:#b3261e!important}
.rec-form .wpcf7-response-output{margin:24px 0 0!important;padding:14px 18px!important;font-size:14px}

/* ---------- レスポンシブ ---------- */
@media (max-width:1100px){
  .rec-title{font-size:72px}.rec-sub{font-size:30px}.rec-kicker{font-size:22px}
  .rec-hero-copy,.rec-hero-body{max-width:520px}
  .rec-themes{grid-template-columns:repeat(2,1fr)}
  .rec-theme:nth-child(3){border-left:none}
  .rec-theme:nth-child(n+3){border-top:1px solid var(--gray-line)}
  .rec-lecturer{grid-template-columns:300px 1fr;gap:44px}
}
@media (max-width:760px){
  .rec-page .sp{display:inline}.rec-page .pc{display:none}
  .rec-container{padding:0 20px}
  .rec-sec{padding:72px 0}
  .rec-sec-head{margin-bottom:36px}
  .rec-sec-head h2{font-size:23px}
  .rec-sec-text{text-align:left;font-size:15px;margin-top:32px}
  .rec-note{text-align:left}

  /* HERO：チラシと同じ縦長ビジュアル＋下に本文 */
  /* HERO：文字 → 写真 → 本文 の縦積み（文字と顔を重ねない） */
  .rec-hero{display:flex;flex-direction:column}
  .rec-hero-inner{display:contents}
  .rec-hero-copy{order:1;max-width:none;padding:40px 20px 24px}
  .rec-hero-photo{order:2;position:relative;width:100%;aspect-ratio:1/1;background-size:170% auto;background-position:66% 18%;
    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 14%);mask-image:linear-gradient(to bottom,transparent 0,#000 14%)}
  .rec-hero-body{order:3}
  .rec-kicker{font-size:17px}
  .rec-title{font-size:15vw;margin-top:10px}
  .rec-sub{font-size:6.4vw;margin-top:4px}
  .rec-hero-body{max-width:none;padding:32px 20px 48px;background:var(--sky-3)}
  .rec-lead{font-size:16px;margin-top:0}
  .rec-lead br{display:none}
  .rec-chips li{font-size:12px;padding:5px 10px}
  .rec-hero-cta{flex-direction:column;align-items:stretch;gap:16px;text-align:center}
  .rec-btn-primary{min-width:0;width:100%;padding:18px 20px;font-size:15px}
  .rec-btn-outline{width:100%}

  .rec-intro{padding:56px 0}
  .rec-intro-grid{grid-template-columns:1fr;gap:20px}
  .rec-intro-q{font-size:22px;padding:0 0 20px;border-right:none;border-bottom:1px solid rgba(255,255,255,.25)}
  .rec-intro-body p{font-size:15px}

  .rec-targets{grid-template-columns:1fr;gap:12px}
  .rec-targets li{display:flex;align-items:center;gap:16px;text-align:left;padding:18px 20px;font-size:15px;border-top-width:1px;border-left:3px solid var(--navy)}
  .rec-targets li br{display:none}
  .rec-targets .ic{margin:0;flex-shrink:0;width:26px;height:26px}
  .rec-targets .ic::after{left:9px;top:6px;width:7px;height:11px}

  .rec-features{grid-template-columns:1fr;gap:16px}
  .rec-feature{padding:32px 24px}
  .rec-feature .no{font-size:44px}
  .rec-feature h3{font-size:19px}

  .rec-themes{grid-template-columns:1fr;border-bottom:none}
  .rec-theme{padding:28px 4px;border-bottom:1px solid var(--gray-line)}
  .rec-theme + .rec-theme{border-left:none}
  .rec-theme:nth-child(n+3){border-top:none}

  .rec-lecturer{grid-template-columns:1fr;gap:28px}
  .rec-lecturer-photo{max-width:320px;width:100%;margin:0 auto}
  .rec-lecturer-name{font-size:32px}

  .rec-schedule{grid-template-columns:repeat(2,1fr);gap:12px}
  .rec-schedule .date b{font-size:40px}
  .rec-outline > div{grid-template-columns:1fr}
  .rec-outline dt{padding:18px 0 0}
  .rec-outline dd{padding:4px 0 18px;font-size:14px}

  .rec-price-main{padding:36px 20px 32px}
  .rec-price-main .val b{font-size:44px}
  .rec-price-main .inc{font-size:14px;padding:8px 6px}
  .rec-price-add{padding:24px 20px}
  .rec-price .val small{display:block;margin:0}

  .rec-cta-band{padding:72px 0}
  .rec-cta-title{font-size:24px}
  .rec-cta-text{font-size:14px;text-align:left}

  .rec-two{grid-template-columns:1fr;gap:16px}
  .rec-box{padding:32px 22px}
  .rec-box-h{font-size:20px}
  .rec-contact dd{font-size:17px}

  .rec-apply-summary{padding:18px 18px;margin:24px 0 28px}
  .rec-form{padding:28px 18px}
  .rec-form .cf7-row{grid-template-columns:1fr}
  .rec-form .cf7-confirm{padding:20px 16px}
  .rec-form .wpcf7-submit,.rec-form input[type="submit"]{width:100%;min-width:0;padding:18px}
}

/* 微調整 */
.rec-form .cf7-submit-wrap .wpcf7-submit{display:block;margin:0 auto}
@media (max-width:760px){
  .rec-schedule .date{white-space:nowrap;font-size:13px}
  .rec-schedule .date b{font-size:30px}
  .rec-btn-outline{padding:16px 18px;letter-spacing:.06em;font-size:14px}
}
