@charset "utf-8";
/* =====================================================================
   ケアプランセンター タオ 専用スタイル  ── prefix: cp-
   既存サイト（モノクロ基調 / M PLUS 1p 英字見出し / 角ばったカード）の
   骨格・フォント・余白ルールは踏襲し、
   アクセントカラー（温かみのあるオレンジ＋若草）と写真で
   「訪問看護」側と役割を切り替えています。
   ※html:62.5% のため 1rem = 10px
   ===================================================================== */

.cp{
    --cp-accent:#e0873a;      /* メインアクセント：温かみのあるオレンジ */
    --cp-accent-d:#bd6b22;
    --cp-accent-l:#f7ead9;
    --cp-leaf:#7fa84a;        /* サブアクセント：若草 */
    --cp-cream:#fbf7f1;
    --cp-ink:#222;
    --cp-sub:#6b6259;
    --cp-line:#e6ded3;
    font-family:"Noto Sans JP", sans-serif;
    color:var(--cp-ink);
    line-height:1.9;
    -webkit-font-smoothing:antialiased;
}
.cp *{ box-sizing:border-box; }
.cp img{ max-width:100%; height:auto; }

/* ---------------------------------------------------------------------
   共通レイアウト
   --------------------------------------------------------------------- */
.cp-sec{ padding:100px 20px; }
.cp-sec.cp-cream{ background:var(--cp-cream); }
.cp-sec.cp-white{ background:#fff; }
.cp-sec.cp-dark{ background:#222; color:#fff; }
.cp-inr{ max-width:1100px; margin:0 auto; }
.cp-inr-nr{ max-width:880px; margin:0 auto; }

/* 見出し（既存 .top-ttl02 のロジックを踏襲しつつアクセント色を付与） */
.cp-head{ text-align:center; margin-bottom:56px; }
.cp-head.cp-left{ text-align:left; }
.cp-head-en{
    font-family:'M PLUS 1p', sans-serif;
    font-weight:800;
    font-size:1.4rem;
    letter-spacing:0.22em;
    color:var(--cp-accent);
    margin:0;
}
.cp-head-en:before{
    content:"";
    display:inline-block;
    width:22px; height:1px;
    background:var(--cp-accent);
    vertical-align:middle;
    margin-right:12px;
}
.cp-head.cp-left .cp-head-en:before{ display:none; }
.cp-head-ja{
    font-family:'M PLUS 1p', sans-serif;
    font-weight:700;
    font-size:3.2rem;
    line-height:1.55;
    letter-spacing:0.06em;
    margin:14px 0 0;
}
.cp-dark .cp-head-ja{ color:#fff; }
.cp-dark .cp-head-en{ color:#f0b477; }
.cp-head-lead{
    margin:22px auto 0;
    max-width:760px;
    font-size:1.6rem;
    color:var(--cp-sub);
    line-height:2.0;
}
.cp-dark .cp-head-lead{ color:#c9c2ba; }
.cp-head.cp-left .cp-head-lead{ margin-left:0; }
.cp-mark{
    background:linear-gradient(transparent 62%, var(--cp-accent-l) 62%);
    font-weight:700;
}

/* ---------------------------------------------------------------------
   下層ヘッダー（ケアプラン版）
   --------------------------------------------------------------------- */
.cp-subhd{ position:relative; overflow:hidden; }
.cp-subhd-img{ height:320px; }
.cp-subhd-img img{ width:100%; height:100%; object-fit:cover; }
.cp-subhd:before{
    content:"";
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(90deg, rgba(60,40,20,.72) 0%, rgba(60,40,20,.35) 100%);
}
.cp-subhd-ttl{
    position:absolute; inset:0; z-index:2;
    display:flex; flex-direction:column; justify-content:center;
    max-width:1100px; margin:0 auto; padding:0 20px;
    left:0; right:0;
    color:#fff;
}
.cp-subhd-badge{
    display:inline-block;
    align-self:flex-start;
    background:var(--cp-accent);
    color:#fff;
    font-size:1.2rem;
    font-weight:700;
    letter-spacing:0.12em;
    padding:6px 16px;
    margin-bottom:18px;
}
.cp-subhd-en{
    font-family:'M PLUS 1p', sans-serif;
    font-weight:800;
    font-size:4.4rem;
    letter-spacing:0.1em;
    line-height:1.2;
    margin:0;
}
.cp-subhd-ja{
    font-size:1.7rem;
    letter-spacing:0.1em;
    margin:12px 0 0;
}

/* パンくず */
.cp-bread{
    background:#f4efe8;
    font-size:1.2rem;
    color:var(--cp-sub);
}
.cp-bread ol{
    max-width:1100px; margin:0 auto; padding:14px 20px;
    list-style:none; display:flex; flex-wrap:wrap; gap:8px;
}
.cp-bread li:not(:last-child):after{ content:"›"; margin-left:8px; color:#b7ab9c; }
.cp-bread a{ color:var(--cp-sub); text-decoration:none; }
.cp-bread a:hover{ color:var(--cp-accent); text-decoration:underline; }

/* ---------------------------------------------------------------------
   ボタン
   --------------------------------------------------------------------- */
.cp-btn{
    display:inline-flex; align-items:center; justify-content:center;
    min-width:300px; padding:20px 40px;
    background:var(--cp-accent); color:#fff;
    font-size:1.6rem; font-weight:700; letter-spacing:0.08em;
    text-decoration:none;
    border:1px solid var(--cp-accent);
    transition:background .3s, color .3s;
}
.cp-btn:hover{ background:var(--cp-accent-d); border-color:var(--cp-accent-d); color:#fff; text-decoration:none; }
.cp-btn.cp-btn-line{ background:transparent; color:var(--cp-accent); }
.cp-btn.cp-btn-line:hover{ background:var(--cp-accent); color:#fff; }
.cp-btn.cp-btn-dark{ background:#222; border-color:#222; }
.cp-btn.cp-btn-dark:hover{ background:#000; border-color:#000; }
.cp-btn-wrap{ text-align:center; margin-top:48px; }
.cp-btn-wrap .cp-btn + .cp-btn{ margin-left:16px; }

/* ---------------------------------------------------------------------
   リード文＋写真（2カラム）
   --------------------------------------------------------------------- */
.cp-two{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.cp-two.cp-rev .cp-two-txt{ order:2; }
.cp-two-ttl{
    font-family:'M PLUS 1p', sans-serif;
    font-weight:700; font-size:2.6rem; line-height:1.7;
    margin:0 0 24px;
}
.cp-two-txt p{ font-size:1.5rem; color:#444; margin:0 0 18px; }
.cp-two-img img{ width:100%; }

/* ---------------------------------------------------------------------
   特徴カード（3列）
   --------------------------------------------------------------------- */
.cp-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.cp-card{
    background:#fff;
    border:1px solid var(--cp-line);
    border-top:3px solid var(--cp-accent);
    padding:38px 30px 34px;
    transition:transform .35s ease, box-shadow .35s ease;
}
.cp-card:hover{ transform:translateY(-5px); box-shadow:0 14px 34px rgba(90,70,45,.10); }
.cp-card-no{
    font-family:'M PLUS 1p', sans-serif;
    font-weight:800; font-size:1.3rem; letter-spacing:0.16em;
    color:var(--cp-accent);
}
.cp-card-ttl{
    font-family:'M PLUS 1p', sans-serif;
    font-weight:700; font-size:2.1rem; line-height:1.6;
    margin:14px 0 16px;
}
.cp-card p{ font-size:1.4rem; color:var(--cp-sub); margin:0; }
.cp-card-img{ margin:-38px -30px 26px; }
.cp-card-img img{ width:100%; height:200px; object-fit:cover; display:block; }

/* ---------------------------------------------------------------------
   数字
   --------------------------------------------------------------------- */
.cp-nums{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.cp-num{
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.14);
    padding:34px 18px 30px;
    text-align:center;
}
.cp-num-label{
    font-family:'M PLUS 1p', sans-serif;
    font-size:1.2rem; font-weight:800; letter-spacing:0.14em;
    color:#f0b477;
}
.cp-num-val{
    font-family:'M PLUS 1p', sans-serif;
    font-weight:800; font-size:5.4rem; line-height:1;
    margin:16px 0 12px; color:#fff;
}
.cp-num-val .u{ font-size:2.0rem; padding-left:2px; color:#e7dfd6; }
.cp-num-name{ font-size:1.4rem; color:#cfc7bf; margin:0; }
.cp-note{ text-align:center; margin-top:34px; font-size:1.2rem; color:#948b82; }

/* ---------------------------------------------------------------------
   ご利用の流れ / 選考フロー（縦タイムライン）
   --------------------------------------------------------------------- */
.cp-steps{ position:relative; padding-left:78px; }
.cp-steps:before{
    content:""; position:absolute; left:27px; top:14px; bottom:14px;
    width:1px; background:var(--cp-line);
}
.cp-step{ position:relative; padding-bottom:44px; }
.cp-step:last-child{ padding-bottom:0; }
.cp-step-no{
    position:absolute; left:-78px; top:0;
    width:56px; height:56px; border-radius:50%;
    background:var(--cp-accent); color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-family:'M PLUS 1p', sans-serif; font-weight:800; font-size:1.9rem;
}
.cp-step-ttl{
    font-family:'M PLUS 1p', sans-serif;
    font-weight:700; font-size:2.0rem; margin:10px 0 10px;
}
.cp-step p{ font-size:1.4rem; color:var(--cp-sub); margin:0; }

/* ---------------------------------------------------------------------
   1日の流れ（時刻付きタイムライン）
   --------------------------------------------------------------------- */
.cp-time{ position:relative; }
.cp-time-row{
    display:grid; grid-template-columns:120px 1fr;
    gap:30px; align-items:flex-start;
    padding:0 0 40px;
    position:relative;
}
.cp-time-row:before{
    content:""; position:absolute; left:132px; top:12px; bottom:-6px;
    width:1px; background:var(--cp-line);
}
.cp-time-row:last-child{ padding-bottom:0; }
.cp-time-row:last-child:before{ display:none; }
.cp-time-hh{
    font-family:'M PLUS 1p', sans-serif;
    font-weight:800; font-size:2.4rem; color:var(--cp-accent);
    text-align:right; letter-spacing:0.04em;
    position:relative;
}
.cp-time-hh:after{
    content:""; position:absolute; right:-24px; top:11px;
    width:13px; height:13px; border-radius:50%;
    background:#fff; border:3px solid var(--cp-accent);
    z-index:1;
}
.cp-time-body{ padding-left:14px; }
.cp-time-ttl{
    font-family:'M PLUS 1p', sans-serif;
    font-weight:700; font-size:1.9rem; margin:4px 0 10px;
}
.cp-time-body p{ font-size:1.4rem; color:var(--cp-sub); margin:0 0 14px; }
.cp-time-img{ max-width:420px; }
.cp-time-img img{ width:100%; display:block; }

/* ---------------------------------------------------------------------
   スタッフ / インタビュー
   --------------------------------------------------------------------- */
.cp-msg{ display:grid; grid-template-columns:340px 1fr; gap:56px; align-items:start; }
.cp-msg-img img{ width:100%; display:block; }
.cp-msg-cap{ font-size:1.3rem; color:var(--cp-sub); margin:12px 0 0; }
.cp-msg-cap strong{ display:block; font-size:1.8rem; color:var(--cp-ink); font-weight:700; margin-bottom:4px; }
.cp-msg-body p{ font-size:1.5rem; margin:0 0 22px; line-height:2.1; }
.cp-msg-body p:last-child{ margin-bottom:0; }
.cp-msg-lead{
    font-family:'M PLUS 1p', sans-serif;
    font-weight:700; font-size:2.4rem; line-height:1.8;
    margin:0 0 26px !important;
}

.cp-itv{
    background:#fff;
    border:1px solid var(--cp-line);
    padding:0;
    margin-bottom:38px;
    display:grid; grid-template-columns:300px 1fr;
}
.cp-itv-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.cp-itv-body{ padding:38px 40px; }
.cp-itv-meta{
    display:inline-block; background:var(--cp-accent-l); color:var(--cp-accent-d);
    font-size:1.2rem; font-weight:700; letter-spacing:0.08em;
    padding:5px 14px; margin-bottom:16px;
}
.cp-itv-name{
    font-family:'M PLUS 1p', sans-serif;
    font-weight:700; font-size:2.0rem; margin:0 0 22px;
}
.cp-itv-name span{ font-size:1.3rem; color:var(--cp-sub); font-weight:400; margin-left:12px; }
.cp-qa{ margin:0 0 20px; }
.cp-qa:last-child{ margin-bottom:0; }
.cp-qa dt{
    font-weight:700; font-size:1.5rem; color:var(--cp-accent-d);
    margin-bottom:8px;
}
.cp-qa dt:before{ content:"Q. "; font-family:'M PLUS 1p', sans-serif; }
.cp-qa dd{ margin:0; font-size:1.4rem; color:#444; }

/* 職場スナップ */
.cp-gallery{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:180px; gap:14px; }
.cp-gallery figure{ margin:0; overflow:hidden; }
.cp-gallery img{ width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.cp-gallery figure:hover img{ transform:scale(1.06); }
.cp-gallery .cp-g-wide{ grid-column:span 2; }
.cp-gallery .cp-g-tall{ grid-row:span 2; }

/* ---------------------------------------------------------------------
   テーブル（募集要項・事業所概要）
   ※既存 .company-table のトンマナに合わせつつアクセントを追加
   --------------------------------------------------------------------- */
.cp-table{ border-top:1px solid var(--cp-line); }
.cp-table dl{ display:grid; grid-template-columns:220px 1fr; margin:0; border-bottom:1px solid var(--cp-line); }
.cp-table dt{
    background:var(--cp-cream);
    padding:22px 24px;
    font-size:1.4rem; font-weight:700; letter-spacing:0.04em;
}
.cp-table dd{ margin:0; padding:22px 26px; font-size:1.4rem; color:#444; }
.cp-table dd ul{ margin:0; padding-left:1.2em; }

.cp-tabs{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-bottom:40px; }
.cp-tab-btn{
    border:1px solid var(--cp-line); background:#fff;
    padding:14px 30px; font-size:1.4rem; font-weight:700; cursor:pointer;
    font-family:'M PLUS 1p', sans-serif;
    transition:all .25s;
}
.cp-tab-btn.is-active{ background:var(--cp-accent); border-color:var(--cp-accent); color:#fff; }
.cp-tab-panel{ display:none; }
.cp-tab-panel.is-active{ display:block; }
.cp-tab-h{
    font-family:'M PLUS 1p', sans-serif;
    font-weight:700; font-size:2.2rem; text-align:center; margin:0 0 28px;
}

/* ---------------------------------------------------------------------
   コンテンツ導線カード
   --------------------------------------------------------------------- */
.cp-links{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.cp-link{
    display:block; text-decoration:none; color:inherit;
    background:#fff; border:1px solid var(--cp-line);
    transition:box-shadow .35s, transform .35s;
}
.cp-link:hover{ transform:translateY(-5px); box-shadow:0 14px 34px rgba(90,70,45,.12); text-decoration:none; color:inherit; }
.cp-link-img img{ width:100%; height:150px; object-fit:cover; display:block; }
.cp-link-body{ padding:22px 20px 26px; }
.cp-link-en{
    font-family:'M PLUS 1p', sans-serif; font-weight:800;
    font-size:1.1rem; letter-spacing:0.16em; color:var(--cp-accent);
}
.cp-link-ttl{ font-size:1.7rem; font-weight:700; margin:8px 0 0; }
.cp-link-ttl:after{ content:" →"; color:var(--cp-accent); }

/* ---------------------------------------------------------------------
   FAQ
   --------------------------------------------------------------------- */
.cp-faq details{
    background:#fff; border:1px solid var(--cp-line);
    margin-bottom:14px;
}
.cp-faq summary{
    list-style:none; cursor:pointer; position:relative;
    padding:22px 62px 22px 26px;
    font-size:1.5rem; font-weight:700;
}
.cp-faq summary::-webkit-details-marker{ display:none; }
.cp-faq summary:before{ content:"Q."; color:var(--cp-accent); font-family:'M PLUS 1p',sans-serif; margin-right:10px; }
.cp-faq summary:after{
    content:""; position:absolute; right:26px; top:50%;
    width:13px; height:1px; background:var(--cp-accent);
    box-shadow:0 0 0 0 transparent;
}
.cp-faq summary .cp-plus{
    position:absolute; right:32px; top:50%; transform:translateY(-50%);
    width:1px; height:13px; background:var(--cp-accent);
    transition:transform .3s;
}
.cp-faq details[open] summary .cp-plus{ transform:translateY(-50%) rotate(90deg); opacity:0; }
.cp-faq details > div{ padding:0 26px 26px; font-size:1.4rem; color:var(--cp-sub); }

/* ---------------------------------------------------------------------
   CTA バンド
   --------------------------------------------------------------------- */
.cp-cta{
    background:linear-gradient(100deg, #e0873a 0%, #c9822f 55%, #8fa945 100%);
    color:#fff; text-align:center; padding:80px 20px;
}
.cp-cta-ttl{
    font-family:'M PLUS 1p', sans-serif;
    font-weight:800; font-size:3.0rem; line-height:1.6; margin:0 0 16px;
}
.cp-cta p{ font-size:1.5rem; margin:0 0 34px; }
.cp-cta .cp-btn{ background:#fff; color:var(--cp-accent-d); border-color:#fff; }
.cp-cta .cp-btn:hover{ background:#222; color:#fff; border-color:#222; }

/* 既存ページに置く誘導バナー（トップ・採用ページ用） */
.cp-bnr{ max-width:1100px; margin:0 auto 0; padding:0 20px; }
.cp-bnr a{
    display:flex; align-items:center; gap:30px;
    background:linear-gradient(100deg,#fbf3e8 0%, #f4efe2 100%);
    border:1px solid #ecdcc6; border-left:5px solid #e0873a;
    padding:28px 34px; text-decoration:none; color:#222;
    transition:box-shadow .3s, transform .3s;
}
.cp-bnr a:hover{ transform:translateY(-3px); box-shadow:0 12px 30px rgba(120,90,50,.14); text-decoration:none; color:#222; }
.cp-bnr-img{ flex:0 0 170px; }
.cp-bnr-img img{ width:100%; height:110px; object-fit:cover; display:block; }
.cp-bnr-txt{ flex:1; }
.cp-bnr-en{ font-family:'M PLUS 1p',sans-serif; font-weight:800; font-size:1.2rem; letter-spacing:0.16em; color:#e0873a; }
.cp-bnr-ttl{ font-family:'M PLUS 1p',sans-serif; font-weight:700; font-size:2.2rem; margin:8px 0 6px; }
.cp-bnr-p{ font-size:1.4rem; color:#6b6259; margin:0; }
.cp-bnr-arrow{ flex:0 0 auto; font-size:2.2rem; color:#e0873a; }

/* ---------------------------------------------------------------------
   スクロールリビール（ケアプラン配下のページで自前実行）
   --------------------------------------------------------------------- */
.cp-rv{ opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s cubic-bezier(.16,1,.3,1); }
.cp-rv.cp-in{ opacity:1; transform:none; }
.cp-stg > *{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s cubic-bezier(.16,1,.3,1); }
.cp-stg.cp-in > *{ opacity:1; transform:none; }
.cp-stg.cp-in > *:nth-child(2){ transition-delay:.08s; }
.cp-stg.cp-in > *:nth-child(3){ transition-delay:.16s; }
.cp-stg.cp-in > *:nth-child(4){ transition-delay:.24s; }
.cp-stg.cp-in > *:nth-child(5){ transition-delay:.32s; }
.cp-stg.cp-in > *:nth-child(6){ transition-delay:.40s; }
@media (prefers-reduced-motion: reduce){
    .cp-rv, .cp-stg > *{ opacity:1 !important; transform:none !important; }
}

/* =====================================================================
   共通ヘッダーのドロップダウン（訪問看護 / ケアプランセンター 切替）
   ※careplan.css は全ページ共通で読み込むため、既存ヘッダーにも効きます
   ===================================================================== */
.hd-nav .li.cp-has-child{ position:relative; }
.hd-nav .li.cp-has-child > a > p:after{
    content:"";
    display:inline-block;
    width:5px; height:5px;
    border-right:1px solid currentColor;
    border-bottom:1px solid currentColor;
    transform:rotate(45deg) translateY(-2px);
    margin-left:8px;
    vertical-align:middle;
}
.cp-sub-nav{
    position:absolute; top:100%; left:50%; transform:translateX(-50%);
    min-width:230px;
    background:#fff;
    border:1px solid #e6ded3;
    border-top:3px solid var(--cp-accent, #e0873a);
    box-shadow:0 12px 30px rgba(0,0,0,.10);
    opacity:0; visibility:hidden;
    transition:opacity .25s ease, visibility .25s ease;
    z-index:120;
    padding:6px 0;
}
.hd-nav .li.cp-has-child:hover .cp-sub-nav,
.hd-nav .li.cp-has-child:focus-within .cp-sub-nav{ opacity:1; visibility:visible; }
.cp-sub-nav a{
    display:block; padding:13px 20px;
    font-size:1.3rem; line-height:1.5; color:#333; text-decoration:none;
    border-bottom:1px solid #f2ece4;
    transition:background .2s, color .2s;
}
.cp-sub-nav a:last-child{ border-bottom:none; }
.cp-sub-nav a:hover{ background:#fbf7f1; color:#e0873a; text-decoration:none; }
.cp-sub-nav a small{ display:block; font-size:1.1rem; color:#8d857c; margin-top:2px; }
/* SPメニュー内の入れ子リンク */
.navbar-nav .cp-nav-child{ padding-left:24px !important; }
.navbar-nav .cp-nav-child p{ font-size:1.3rem !important; opacity:.85; }
.navbar-nav .cp-nav-child p:before{ content:"− "; }

/* =====================================================================
   レスポンシブ
   ===================================================================== */
@media screen and (max-width:1024px){
    .cp-links{ grid-template-columns:repeat(2,1fr); }
    .cp-nums{ grid-template-columns:repeat(2,1fr); }
}
@media screen and (max-width:767px){
    .cp-sec{ padding:64px 20px; }
    .cp-head{ margin-bottom:36px; }
    .cp-head-ja{ font-size:2.3rem; }
    .cp-head-lead{ font-size:1.4rem; }
    .cp-subhd-img{ height:220px; }
    .cp-subhd-en{ font-size:2.8rem; }
    .cp-subhd-ja{ font-size:1.4rem; }
    .cp-bread{ font-size:1.1rem; }
    .cp-two{ grid-template-columns:1fr; gap:28px; }
    .cp-two.cp-rev .cp-two-txt{ order:0; }
    .cp-two-ttl{ font-size:2.0rem; }
    .cp-cards{ grid-template-columns:1fr; gap:20px; }
    .cp-nums{ grid-template-columns:repeat(2,1fr); gap:12px; }
    .cp-num-val{ font-size:4.0rem; }
    .cp-steps{ padding-left:56px; }
    .cp-steps:before{ left:20px; }
    .cp-step-no{ left:-56px; width:42px; height:42px; font-size:1.6rem; }
    .cp-time-row{ grid-template-columns:66px 1fr; gap:16px; }
    .cp-time-row:before{ left:74px; }
    .cp-time-hh{ font-size:1.7rem; }
    .cp-time-hh:after{ right:-14px; width:10px; height:10px; border-width:2px; }
    .cp-time-body{ padding-left:6px; }
    .cp-msg{ grid-template-columns:1fr; gap:26px; }
    .cp-msg-lead{ font-size:1.9rem; }
    .cp-itv{ grid-template-columns:1fr; }
    .cp-itv-img img{ height:240px; }
    .cp-itv-body{ padding:26px 22px; }
    .cp-gallery{ grid-template-columns:repeat(2,1fr); grid-auto-rows:130px; }
    .cp-table dl{ grid-template-columns:1fr; }
    .cp-table dt{ padding:14px 18px; }
    .cp-table dd{ padding:16px 18px; }
    .cp-links{ grid-template-columns:1fr; }
    .cp-btn{ min-width:0; width:100%; padding:18px 20px; font-size:1.4rem; }
    .cp-btn-wrap .cp-btn + .cp-btn{ margin-left:0; margin-top:14px; }
    .cp-cta-ttl{ font-size:2.2rem; }
    .cp-bnr a{ flex-direction:column; align-items:flex-start; gap:18px; padding:22px; }
    .cp-bnr-img{ flex:none; width:100%; }
    .cp-bnr-ttl{ font-size:1.9rem; }
    .cp-sub-nav{ position:static; transform:none; opacity:1; visibility:visible; box-shadow:none; border:none; }
}
