:root{
    --orange:#FA6601;          /* primary */
    --orange-light:#ED8B2E;    /* accent / arrows / active nav */
    --green:#6BA03C;           /* しくみ力 / eyebrow / steps */
    --green-dark:#4F7C2E;      /* tags */
    --ink:#26384D;             /* section headings (navy) */
    --ink-hero:#403A33;        /* hero heading */
    --body:#5A544D;            /* body text */
    --muted:#8C857B;           /* light captions */
    --cream1:#FFFDF8;
    --cream2:#FBF6EE;
    --cream3:#FEF9F1;
    --line:#ECE1D2;
    /* 左右の共通余白（ガター）。ウィンドウ幅に応じて 20px〜64px で伸縮し、
       1420px 以下でも左右に必ず余白が残るようにする。全セクション共通で使用。 */
    --gutter:clamp(10px,2.5vw,32px);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;scrollbar-gutter:stable;scroll-padding-top:clamp(68px,7vw,100px);}
  body{font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
       -webkit-font-smoothing:antialiased;color:var(--body);background:#fff;line-height:1.6;overflow-x:hidden;}
  img{max-width:100%;height:auto;}
  a{text-decoration:none;color:inherit;}
  .container{width:100%;max-width:1400px;margin:0 auto;padding:0 var(--gutter);}

  /* ---------- placeholder ---------- */
  .ph{position:relative;overflow:hidden;border-radius:14px;
      display:flex;align-items:center;justify-content:center;}
  .ph>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
  .ph.contain>img{object-fit:contain;}
  .ph.plain{background:transparent;border:none;}

  /* ---------- buttons ---------- */
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;
       font-weight:700;cursor:pointer;white-space:nowrap;transition:opacity .2s;}
  .btn:hover{opacity:.9;}
  .btn-primary{background:var(--orange);color:#fff;}
  .btn-outline{background:#fff;border:2px solid var(--orange);color:var(--orange);}
  .arrow{font-size:16px;line-height:1;}

  /* ---------- eyebrow / heading ---------- */
  .eyebrow{display:flex;align-items:center;gap:10px;font-weight:700;font-size:clamp(15px,calc(var(--fvw,1vw)*1.5),18px);}
  .eyebrow svg{width:26px;height:26px;flex:none;}
  .sec-head{color:var(--ink);font-weight:900;line-height:1.45;letter-spacing:.5px;}
  .ico{display:inline-block;vertical-align:middle;}

  /* ====================== HEADER ====================== */
  /* 追従ヘッダー：最上部では背景透明、スクロールすると白背景になる（is-scrolled をJSで付与） */
  .site-header{position:fixed;top:0;left:0;width:100%;z-index:40;background:transparent;
               transition:background-color .3s ease,box-shadow .3s ease;}
  .site-header.is-scrolled{background:#fff;box-shadow:0 4px 16px rgba(38,56,77,.08);}
  /* SPでメニューを開いている間も白背景（ドロワーと地続きに見せる） */
  .site-header:has(#nav.open){background:#fff;}
  /* 最上部でもナビのリンク／ボタンに0.5秒カーソルを置いたら白背景（JSで is-hovered を付与）。
     一度白くなったらヘッダー領域からカーソルが出るまで維持する */
  .site-header.is-hovered{background:#fff;box-shadow:0 4px 16px rgba(38,56,77,.08);}
  .header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;
                height:clamp(68px,7vw,100px);}
  .logo{display:block;height:clamp(40px,4vw,56px);}
  /* SP: ガターが 9px まで詰まりロゴが画面端に寄りすぎるため、少し左余白を足す */
  @media(max-width:640px){ .logo{margin-left:8px;} }
  .logo img{height:100%;width:auto;max-width:none;object-fit:contain;display:block;}
  .nav{display:flex;align-items:center;gap:clamp(14px,1.6vw,26px);}
  .nav-links{display:flex;align-items:center;gap:clamp(10px,1.3vw,24px);}
  .nav-links a{font-weight:500;font-size:14px;color:#48433d;white-space:nowrap;position:relative;padding-bottom:4px;}
  .nav-links a:hover{color:var(--orange);}
  .nav-links a.active{color:var(--orange-light);}
  .nav-links a.active::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:3px;background:var(--orange-light);border-radius:2px;}
  .nav-cta{height:52px;padding:0 22px;font-size:14px;}
  .nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;
              border:none;background:transparent;cursor:pointer;padding:0;}
  .nav-toggle span{display:block;width:26px;height:2.5px;background:#3a352f;border-radius:2px;transition:transform .25s,opacity .25s;}
  .nav-toggle.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
  .nav-toggle.open span:nth-child(2){opacity:0;}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}

  /* ====================== HERO ====================== */
  .hero{position:relative;background:#f3ead9 url('../img/hero.jpg') center/cover no-repeat;overflow:hidden;min-height:540px;}
  .hero::before{content:"";position:absolute;inset:0;z-index:1;
                background:linear-gradient(100deg,rgba(255,253,248,.88) 0%,rgba(255,253,248,.58) 40%,rgba(255,253,248,0) 68%);}
  /* hero-left.png はヒーロー左側に常に表示する装飾画像 */
  /* img{max-width:100%} が効くとSPでは幅が画面幅に収まるまで縮み、object-fit:contain の
     余白がヒーロー上部にできて装飾の上辺がページ中ほどで切れて見える（ヘッダーとの間に
     余白があるように見える）。max-width:none で本来の縦横比のまま高さ100%に合わせ、
     オレンジの装飾がヒーロー最上部＝ヘッダーの直下まで届くようにする。 */
  .hero-figure{position:absolute;left:0;top:0;bottom:0;width:auto;height:100%;max-width:none;z-index:1;
               object-fit:contain;object-position:left bottom;pointer-events:none;}
  .hero-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;
                padding-top:clamp(124px,13vw,182px);padding-bottom:clamp(110px,11vw,150px);}
  .hero .lead{color:var(--orange);font-weight:700;font-size:clamp(15px,calc(var(--fvw,1vw)*1.6),20px);margin-bottom:16px;}
  .hero h1{color:var(--ink-hero);font-weight:900;font-size:clamp(27px,calc(var(--fvw,1vw)*4.4),52px);line-height:1.42;
           letter-spacing:.5px;text-shadow:0 1px 0 rgba(255,255,255,.5);margin-bottom:22px;}
  .hero .desc{color:var(--body);font-weight:700;font-size:clamp(13px,calc(var(--fvw,1vw)*1.1),15px);line-height:2;max-width:560px;margin-bottom:26px;}
  .hero-actions{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:28px;}
  .hero-actions .btn{height:60px;padding:0 28px;font-size:15px;}
  .hero-actions .btn-primary{box-shadow:0 8px 9px rgba(250,102,1,.16);}
  .hero-points{display:flex;flex-direction:column;gap:6px;list-style:none;margin-bottom:30px;}
  .hero-points li{display:flex;align-items:center;gap:12px;color:var(--body);font-size:13px;}
  .hero-points svg{width:15px;height:15px;flex:none;}
  .hero-card{display:flex;align-items:center;gap:10px;width:100%;max-width:474px;
             background:var(--orange);border-radius:18px;box-shadow:0 12px 28px rgba(250,102,1,.35);
             padding:18px 18px;color:#fff;overflow:hidden;}
  .hc-ico{width:88px;flex:none;display:flex;align-items:center;justify-content:center;}
  .hc-ico svg{width:80px;height:80px;}
  .hc-main{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;}
  .hc-badge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;
            background:rgba(255,255,255,.18);border-radius:999px;padding:4px 14px;letter-spacing:.5px;}
  .hc-badge svg{width:11px;height:11px;flex:none;}
  .hc-title{font-size:clamp(21px,calc(var(--fvw,1vw)*2),25px);font-weight:900;line-height:1;letter-spacing:.5px;}
  .hc-title b{font-size:1.16em;font-weight:900;margin-left:4px;}
  .hc-sub{font-size:12.5px;font-weight:500;letter-spacing:.3px;opacity:.95;}
  .hc-chev{width:44px;height:44px;border-radius:50%;background:#fff;color:var(--orange);flex:none;
           display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;}
  /* diagnosis card pinned to the bottom-right of the hero (matches Figma) */
  .hero-card-wrap{position:absolute;left:0;right:0;bottom:clamp(120px,15vw,196px);z-index:3;
                  display:flex;justify-content:flex-end;pointer-events:none;}
  .hero-card-wrap .hero-card{pointer-events:auto;margin:0;}
  /* 画像版カード：背景/余白は画像側に含まれるため打ち消す。
     大画面ではヒーロー下端（波）付近へ下げて配置する。
     影は PNG の角丸に沿わせたいので box-shadow ではなく filter:drop-shadow で付ける。
     box-shadow:none は .hero-card 由来の矩形オレンジ影を消すためのもので、
     drop-shadow には影響しない（消しても影は出ないので注意）。 */
  .hero-card-img{background:none;padding:0;box-shadow:none;position:relative;
                 top:clamp(72px,10vw,132px);width:100%;max-width:474px;
                 filter:drop-shadow(0 12px 20px rgba(0,0,0,.22));
                 transition:opacity .25s ease;}
  .hero-card-img:hover,
  .hero-card-img:focus-visible{opacity:.82;}
  .hero-card-img>img{width:100%;height:auto;display:block;}
  /* wave.png はヒーロー下端の境目に重ねる波装飾 */
  .hero-wave{position:absolute;left:0;right:0;bottom:0;width:100%;height:auto;z-index:2;
             display:block;pointer-events:none;}

  /* ====================== generic section ====================== */
  .band{width:100%;}
  .bg-cream1{background:var(--cream1);}
  .bg-cream2{background:var(--cream2);}
  .bg-cream3{background:var(--cream3);}

  /* ===== WORRIES (Q1-Q6) ===== */
  .worries{padding-block:clamp(48px,6vw,74px) clamp(24px,3vw,37px);}
  .worries .eyebrow{color:var(--green);}
  .worries h2{margin:14px 0 12px;font-size:clamp(23px,calc(var(--fvw,1vw)*3.2),40px);}
  .worries .sub{color:var(--muted);font-size:16px;margin-bottom:30px;}
  .q-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
  .q-card{background:#fff;border:2px solid transparent;border-radius:18px;padding:26px 28px 0;box-shadow:0 8px 24px rgba(170,140,90,.10);
          position:relative;display:flex;flex-direction:column;min-height:236px;cursor:pointer;
          transition:background .2s,border-color .2s,box-shadow .2s;}
  .q-card.active,.q-card:hover{background:#FDEEDD;border-color:var(--orange);box-shadow:none;}
  .q-top{display:flex;align-items:flex-start;justify-content:space-between;}
  .q-badge{width:54px;height:54px;border-radius:50%;background:#E7CFA6;color:#fff;font-weight:900;font-size:20px;
           display:flex;align-items:center;justify-content:center;}
  .q-card.active .q-badge,.q-card:hover .q-badge{background:var(--orange);}
  .q-arrow{width:42px;height:42px;border-radius:50%;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.12);
           display:flex;align-items:center;justify-content:center;color:var(--orange);font-size:28px;font-weight:700;line-height:1;}
  .q-arrow svg{width:23px;height:23px;display:block;}
  .q-body{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;flex:1;}
  .q-title{color:var(--ink);font-weight:700;font-size:clamp(18px,calc(var(--fvw,1vw)*1.8),21px);line-height:1.5;}
  .q-ico{width:104px;height:74px;flex:none;color:#C98A2E;object-fit:contain;}
  .q-foot{margin:0 -14px 4px;padding:10px 20px;border-top:0;background:transparent;border-radius:0 0 14px 14px;
          display:flex;align-items:center;justify-content:space-between;}
  .q-foot span,.q-foot .circle{opacity:0;visibility:hidden;transition:opacity .2s;}
  .q-card.active .q-foot span,.q-card:hover .q-foot span,
  .q-card.active .q-foot .circle,.q-card:hover .q-foot .circle{opacity:1;visibility:visible;}
  .q-foot span{color:var(--orange);font-size:15px;font-weight:700;}
  .q-foot .circle{width:34px;height:34px;border-radius:50%;background:var(--orange);color:#fff;
                  display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:900;flex:none;}

  /* ===== WORRY MODAL ===== */
  .modal-overlay{position:fixed;inset:0;background:rgba(38,28,12,.55);z-index:300;display:none;
                 align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(4px);}
  .modal-overlay.open{display:flex;}
  .modal-box{background:#fff;border-radius:22px;max-width:620px;width:100%;
             box-shadow:0 24px 70px rgba(60,40,10,.30);overflow:hidden;max-height:90vh;
             display:flex;flex-direction:column;animation:modalIn .22s ease;}
  @keyframes modalIn{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
  .modal-top{background:linear-gradient(135deg,#FDEEDD,#FBE0C6);padding:26px 30px 22px;border-bottom:1px solid var(--line);}
  .modal-lbl{font-size:12px;font-weight:700;color:var(--orange);letter-spacing:.08em;margin-bottom:8px;}
  .modal-q{font-size:clamp(16px,calc(var(--fvw,1vw)*2),19px);font-weight:900;color:var(--ink);line-height:1.55;}
  .modal-body{padding:24px 30px 28px;overflow-y:auto;}
  .modal-stitle{font-size:13px;font-weight:700;color:var(--muted);letter-spacing:.04em;margin-bottom:12px;}
  .modal-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
  .tag-m{background:#FCEBDA;color:var(--orange);border:1.5px solid #F3C089;font-size:13px;font-weight:700;padding:5px 14px;border-radius:14px;}
  .tag-s{background:#EEF4E4;color:var(--green-dark);border:1.5px solid #C2DBA0;font-size:13px;font-weight:700;padding:5px 14px;border-radius:14px;}
  .modal-comment{background:#FBF6EE;border-left:4px solid var(--orange);border-radius:0 12px 12px 0;
                 padding:18px 20px;font-size:14.5px;color:var(--body);line-height:1.9;margin-bottom:22px;}
  .modal-comment strong{color:var(--orange);font-weight:700;}
  .modal-foot{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
  .modal-s3link{font-size:13px;color:var(--green-dark);font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px;background:none;border:none;padding:0;}
  .modal-foot-btns{display:flex;gap:10px;flex-wrap:wrap;}
  .modal-close{background:#fff;border:1.5px solid var(--line);color:var(--body);font-size:14px;font-weight:700;padding:11px 20px;border-radius:999px;cursor:pointer;}
  .modal-close:hover{background:#FBF6EE;}
  .modal-cta{background:var(--orange);color:#fff;font-size:14px;font-weight:700;padding:11px 22px;border-radius:999px;border:none;cursor:pointer;white-space:nowrap;}
  .modal-cta:hover{opacity:.92;}
  @media(max-width:560px){
    .modal-top{padding:22px 20px 18px;}
    .modal-body{padding:20px 20px 24px;}
    .modal-foot{justify-content:stretch;}
    .modal-foot-btns{width:100%;}
    .modal-foot-btns .btn,.modal-close,.modal-cta{flex:1;text-align:center;justify-content:center;}
  }

  /* ===== EMPATHY ===== */
  .empathy{padding-block:clamp(18px,3vw,30px) clamp(48px,6vw,64px);}
  .empathy-card{position:relative;padding:44px 48px;border-radius:22px;overflow:hidden;
                background:linear-gradient(90deg,#FCEFE0 0%,#FFFCF8 44%,#FFFCF8 60%,rgba(255,252,248,0) 72%),
                           url('../img/empathy-farmers.jpg') right center / auto 100% no-repeat,
                           #FFFCF8;
                box-shadow:0 10px 30px rgba(170,140,90,.10);}
  .empathy-deco{position:absolute;left:30px;top:18px;width:80px;height:60px;color:#F0DBBE;z-index:1;}
  .empathy-inner{position:relative;z-index:2;display:flex;align-items:center;gap:30px;max-width:66%;}
  .empathy-icon{flex:none;width:clamp(110px,12vw,150px);height:clamp(110px,12vw,150px);border-radius:50%;
                background:#F7E7D2;display:flex;align-items:center;justify-content:center;color:var(--orange);}
  .empathy-icon svg{width:52%;height:52%;}
  .empathy-body{flex:1;padding:6px 0;}
  .empathy-body h3{color:var(--ink);font-weight:900;font-size:clamp(20px,calc(var(--fvw,1vw)*2.4),30px);line-height:1.5;margin-bottom:16px;}
  .empathy-body h3 .emph{position:relative;}
  .empathy-body h3 .dots{position:absolute;left:50%;bottom:100%;transform:translateX(-50%);color:var(--orange);letter-spacing:2px;font-size:14px;line-height:1;margin-bottom:2px;white-space:nowrap;}
  .empathy-body p{color:var(--body);font-size:clamp(14px,calc(var(--fvw,1vw)*1.1),16px);line-height:2.0;}
  .empathy-body .accent{color:var(--orange);font-weight:700;}

  /* ===== TWO POWERS ===== */
  .powers{padding-block:clamp(48px,7vw,80px);}
  .powers .eyebrow{color:var(--green);}
  .powers h2{margin:14px 0 30px;font-size:clamp(23px,calc(var(--fvw,1vw)*3.2),40px);line-height:1.5;}
  .powers-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;align-items:stretch;}
  .pw-card{background:#fff;border:1px solid #EFE6D6;border-radius:24px;padding:34px 38px;}
  .pw-head{font-weight:900;font-size:clamp(20px,calc(var(--fvw,1vw)*2),24px);margin-bottom:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
  .pw-head .sub{font-weight:700;font-size:16px;}
  .pw-head.orange,.pw-head.orange .sub{color:var(--orange);}
  .pw-head.green,.pw-head.green .sub{color:var(--green);}
  .pw-row{display:flex;align-items:center;gap:18px;padding:18px 0;border-bottom:1px solid #ECE3D3;}
  .pw-row:last-child{border-bottom:none;}
  .pw-ic{width:52px;height:52px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;}
  .pw-ic.o{color:var(--orange);}
  .pw-ic.o svg{width:38px;height:38px;}
  .pw-ic.g{color:var(--green);width:52px;height:52px;}
  .pw-ic.g svg{width:38px;height:38px;}
  .pw-ic svg{width:26px;height:26px;}
  .pw-t{font-weight:700;font-size:18px;color:var(--ink);margin-bottom:3px;}
  .pw-card.o .pw-t{color:var(--orange);}
  .pw-card.g .pw-t{color:var(--green);}
  .pw-d{font-size:14px;color:var(--body);line-height:1.6;}
  /* 左（イラスト＋見出し）と右（本文）を横並びに。区切り線は右ブロックの border-left として
     カラム間の余白の中に置くので、見出しの文字と重なることがない。
     右ブロックは align-self:stretch + justify-content:center で、テキストが常に上下中央になる。
     margin-block:-8px は、線をカードの内側余白(34px)より少し長く見せるための調整（従来の見た目を踏襲）。 */
  .pw-card.alone{background:var(--cream2);border:none;text-align:center;grid-column:1 / -1;
                 display:flex;align-items:center;justify-content:center;
                 padding:34px clamp(24px,5vw,64px);}
  .pw-card.alone .alone-head{flex:0 1 auto;display:flex;flex-direction:column;align-items:center;
                 width:min(320px,34%);}
  .pw-card.alone .alone-body{flex:1 1 0;align-self:stretch;
                 display:flex;flex-direction:column;justify-content:center;text-align:left;
                 border-left:2px dashed #C9BFAE;
                 margin-block:-8px;margin-left:clamp(14px,2.5vw,36px);
                 padding:8px 0 8px clamp(24px,4vw,56px);}
  .pw-card.alone h3{color:var(--ink);font-weight:900;font-size:clamp(22px,calc(var(--fvw,1vw)*2.2),26px);margin-bottom:0;
                    border-bottom:none;padding-bottom:0;}
  .pw-card.alone p{font-size:15px;line-height:1.9;color:var(--body);}
  .pw-card.alone p + p{margin-top:14px;}

  /* ===== ABOUT (基礎体力) ===== */
  .about{position:relative;padding:clamp(48px,7vw,84px) 0;overflow:hidden;}
  .about .container{position:relative;z-index:2;}
  .about-deco-left{position:absolute;left:-40px;top:90px;width:340px;height:auto;z-index:0;display:none;}
  /* 大画面では画像全体が見えるよう右側にインセット、画面が小さくなるにつれ
     右端が少し見切れる（見切れ量は最大48pxまで）。 */
  .about-figure{position:absolute;right:clamp(-48px,calc(50% - 800px),100px);top:5%;height:90%;width:48%;max-width:820px;z-index:3;display:none;}
  .about-figure .about-photo{position:relative;width:100%;height:100%;border:none;border-radius:30px 0 0 30px;display:block;}
  .about-figure .about-photo>img{object-position:left center;}
  .about-callout{position:absolute;left:-36px;bottom:180px;width:min(540px,94%);background:#fff;
                 border-radius:20px;box-shadow:0 18px 44px rgba(120,90,40,.20);padding:24px 30px;
                 display:flex;flex-direction:column;gap:12px;}
  .about-callout .ac-head{display:flex;align-items:flex-start;gap:16px;}
  .about-callout .ac-ico{width:50px;height:50px;border-radius:50%;background:#FBE6D2;color:var(--orange);
                         flex:none;display:flex;align-items:center;justify-content:center;}
  .about-callout .ac-ico svg{width:30px;height:30px;}
  .about-callout h4{color:var(--ink);font-weight:900;font-size:clamp(16px,calc(var(--fvw,1vw)*1.4),20px);line-height:1.55;}
  .about-callout h4 u{text-decoration:underline;text-decoration-color:var(--orange);
                      text-decoration-thickness:2px;text-underline-offset:3px;}
  .about-callout p{color:var(--body);font-size:12.5px;line-height:1.85;}
  .about .eyebrow{color:var(--orange);font-size:clamp(18px,calc(var(--fvw,1vw)*2),22px);letter-spacing:.44px;margin-bottom:18px;}
  .about h2{color:var(--ink);font-weight:900;font-size:clamp(26px,calc(var(--fvw,1vw)*3.6),46px);line-height:1.35;letter-spacing:1px;}
  .about .lead{color:var(--body);font-size:16px;line-height:1.9;margin-top:18px;}
  .about-cards{display:flex;flex-direction:column;gap:0;margin-top:28px;}
  .ab-card{background:transparent;border-radius:0;padding:18px 4px;box-shadow:none;text-align:left;
           display:flex;align-items:center;gap:18px;border-top:1px solid rgba(170,140,90,.25);}
  .ab-card:first-child{border-top:none;}
  .ab-ic{width:48px;height:48px;flex:none;color:var(--orange);margin-bottom:0;}
  .ab-text{display:flex;flex-direction:column;}
  .ab-card h3{color:var(--ink);font-weight:900;font-size:19px;margin-bottom:6px;}
  .ab-card p{color:var(--body);font-size:14px;line-height:1.75;}
  @media(min-width:1101px){
    .about-deco-left,.about-figure{display:block;}
    .about h2,.about .lead{max-width:600px;}
    .about-cards{max-width:620px;margin-bottom:40px;}
  }
  /* about-callout の移動先（about-cards の下）スタイル。
     1600px 未満のとき JS が .moved を付与し、絶対配置を通常フローへ戻す。 */
  .about-callout.moved{position:static;left:auto;bottom:auto;width:auto;
                       margin:32px 0 0;box-shadow:0 14px 36px rgba(120,90,40,.16);}
  @media(min-width:1101px){
    .about-callout.moved{max-width:620px;}   /* about-cards と幅を合わせる */
  }

  /* ===== CURRICULUM (4年) ===== */
  .curri{padding-block:clamp(48px,6vw,64px) 36px;}
  .curri .eyebrow{color:var(--orange);}
  .curri h2{margin:14px 0 30px;font-size:clamp(24px,calc(var(--fvw,1vw)*3.2),42px);}
  .curri-steps{display:flex;align-items:stretch;gap:0;flex-wrap:wrap;background:#fff;border-radius:18px;}
  .step{flex:1;min-width:200px;background:#fff;border:1.6px solid #EEE6D7;border-radius:18px;
        padding:24px 0 0;position:relative;display:flex;flex-direction:column;overflow:hidden;min-height:340px;}
  /* テキストはカード内側に余白、画像は全幅（フルブリード）で下部に */
  .step .head,.step .dotline,.step p{margin-left:24px;margin-right:24px;}
  .step.g{border-color:#C2DBA0;}
  .step.o{border-color:#F3C089;}
  .step-conn{align-self:center;padding:0 8px;flex:none;display:flex;align-items:center;justify-content:center;}
  .step-conn svg{width:24px;height:40px;display:block;}
  .step .head{display:flex;align-items:center;gap:14px;}
  .step .num{width:54px;height:54px;border-radius:50%;color:#fff;font-weight:900;font-size:15px;
             display:flex;align-items:center;justify-content:center;flex:none;line-height:1.1;text-align:center;}
  .step.g .num{background:#5E8B36;}
  .step.o .num{background:var(--orange);}
  .step .ttl{font-weight:900;font-size:20px;line-height:1.35;}
  .step.g .ttl{color:#5E8B36;}
  .step.o .ttl{color:var(--orange);}
  .step .dotline{border-top:2px dotted #E6C79E;margin:16px 24px 12px;}
  .step p{font-size:14px;line-height:1.7;color:var(--body);}
  /* illustration anchored to the bottom of each card */
  .step .step-illust{margin-top:auto;width:100%;height:170px;border-radius:0;}
  .step.s1 .step-illust>img{object-fit:cover;object-position:center bottom;}
  .step.s2 .step-illust>img,.step.s3 .step-illust>img{object-fit:cover;object-position:center bottom;}
  .step.s4 .step-illust>img{object-fit:cover;object-position:center bottom;}
  .curri .note{color:var(--muted);font-size:14px;margin-top:18px;}

  /* ===== DIAGNOSIS ===== */
  .diag{padding-block:24px clamp(48px,7vw,70px);}
  .diag-divider{width:100%;height:1px;background:var(--line);margin:0 auto 50px;}
  .diag-wrap{display:flex;gap:40px;align-items:flex-start;flex-wrap:wrap;}
  .diag-left{flex:1;min-width:300px;}
  .diag-left h2{color:var(--ink);font-weight:900;font-size:clamp(24px,calc(var(--fvw,1vw)*3),40px);line-height:1.4;}
  .diag-left h2 .o{color:var(--orange);}
  .diag-left .sub{clear:both;color:var(--body);font-size:16px;line-height:1.9;margin:18px 0 28px;}
  .diag-steps{display:flex;align-items:stretch;gap:0;clear:both;flex-wrap:nowrap;}
  .dstep{flex:1 1 0;min-width:0;background:#fff;border:1px solid #EFE6D7;border-radius:14px;padding:20px 18px 22px;box-shadow:0 6px 16px rgba(170,140,90,.08);
         display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:14px;}
  .dstep .head{grid-column:1 / -1;display:flex;align-items:center;gap:12px;margin-bottom:14px;}
  .dstep .num{width:34px;height:34px;border-radius:50%;background:#5E8B36;color:#fff;font-weight:900;font-size:15px;
              display:flex;align-items:center;justify-content:center;flex:none;}
  .dstep .ttl{font-weight:900;font-size:19px;color:var(--ink);}
  .dstep .ico{width:54px;height:54px;color:#6BA03C;flex:none;}
  .dstep p{font-size:13.5px;line-height:1.7;color:var(--body);}
  .dconn{align-self:center;color:var(--orange);font-size:22px;font-weight:900;padding:0 10px;flex:none;}
  .diag-right{width:454px;flex:none;background:var(--orange);border-radius:24px;padding:30px 32px 26px;color:#fff;text-align:center;
              display:block;text-decoration:none;
              transition:transform .3s ease,box-shadow .3s ease,background-color .3s ease;}
  a.diag-right:hover{transform:translateY(-6px);background:#ff7a1c;box-shadow:0 18px 34px rgba(250,102,1,.32);}
  a.diag-right:focus-visible{outline:3px solid #fff;outline-offset:3px;}
  a.diag-right:active{transform:translateY(-2px);}
  .diag-right .diag-top{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:12px;}
  .diag-right .diag-top .dline{flex:1;max-width:96px;height:2px;background:rgba(255,255,255,.6);border-radius:2px;}
  .diag-right .wheat{width:56px;height:38px;object-fit:contain;color:#fff;margin:0;display:block;flex:none;}
  .diag-right h3{font-weight:900;font-size:clamp(26px,calc(var(--fvw,1vw)*2.6),34px);line-height:1.18;text-align:center;}
  .diag-right h3 .o{display:inline-block;color:#fff;font-size:clamp(40px,calc(var(--fvw,1vw)*4.6),56px);line-height:1.05;letter-spacing:.01em;vertical-align:middle;}
  .diag-right h3 .chev{width:54px;height:54px;border-radius:50%;background:#fff;color:var(--orange);display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-left:12px;
                       transition:transform .3s ease;}
  a.diag-right:hover h3 .chev{transform:translateX(6px);}
  .diag-right h3 .chev svg{width:26px;height:26px;}
  .diag-right .diag-divline{height:0;border-top:2px dotted rgba(255,255,255,.6);margin:22px 0 20px;}
  .diag-right .rsub{font-size:17px;font-weight:700;line-height:1.7;margin:0 0 22px;border:0;padding:0;}
  .diag-mini{display:flex;background:#fff;border-radius:16px;padding:18px 4px;}
  .dmini{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--body);padding:2px 6px;}
  .dmini + .dmini{border-left:2px dotted #D8E1C9;}
  .dmini .ico{width:42px;height:42px;color:#6BA03C;margin-bottom:10px;}
  .dmini span{font-size:14px;font-weight:700;line-height:1.45;display:block;color:var(--body);}
  .diag-cta{margin-top:44px;text-align:center;}
  .diag-cta .btn{height:60px;padding:0 36px;font-size:16px;}

  /* ===== PROFILE (伴走する人) ===== */
  .profile{padding:clamp(48px,6vw,80px) 0;}
  .profile .eyebrow{color:var(--green);}
  .profile h2{color:var(--ink);font-weight:900;font-size:clamp(24px,calc(var(--fvw,1vw)*3),40px);margin:14px 0 34px;}
  .profile-wrap{display:flex;gap:30px;align-items:stretch;flex-wrap:wrap;}
  .pf-main{flex:1 1 560px;background:#fff;border-radius:22px;box-shadow:0 10px 30px rgba(120,100,70,.12);
           padding:30px;display:flex;gap:30px;flex-wrap:wrap;}
  .pf-farm{width:300px;flex:none;border-radius:16px;overflow:hidden;position:relative;min-height:430px;}
  .pf-farm .name{position:absolute;left:24px;top:22px;color:#fff;font-size:54px;font-weight:900;letter-spacing:8px;
                 text-shadow:0 2px 8px rgba(0,0,0,.4);font-family:"Yu Mincho","Hiragino Mincho ProN",serif;}
  .pf-farm .fbtns{position:absolute;left:24px;top:150px;display:flex;flex-direction:column;gap:12px;}
  .pf-farm .fbtn{background:rgba(86,116,52,.92);color:#fff;font-size:14px;font-weight:700;border-radius:999px;
                 padding:11px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;width:200px;max-width:100%;}
  .pf-farm .fbtn .c{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;font-size:12px;}
  .pf-info{flex:1;min-width:260px;}
  .pf-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px;}
  .pf-stat{text-align:center;min-width:0;}
  .pf-stat .ico{width:40px;height:40px;color:var(--green);margin-bottom:6px;}
  .pf-stat .v{font-weight:900;font-size:clamp(24px,calc(var(--fvw,1vw)*2.4),30px);color:var(--ink);line-height:1;}
  .pf-stat .v small{font-size:15px;}
  .pf-stat .k{font-size:13px;color:var(--body);margin-top:6px;}
  .pf-divider{border-top:1px dashed #DfD6c6;margin:6px 0 18px;}
  .pf-info p.lead{font-size:14.5px;line-height:1.95;color:var(--body);}
  .pf-group{margin-top:18px;background:#F4F6EE;border-radius:10px;padding:12px 16px;display:flex;align-items:center;flex-wrap:wrap;gap:10px;
            font-size:13.5px;color:#5E6B4A;font-weight:700;}
  .pf-group .ico{width:22px;height:22px;color:var(--green);flex:none;}
  .pf-group-txt{min-width:0;flex:1 1 auto;}
  .pf-group-link{flex:none;margin-left:auto;display:inline-flex;align-items:center;gap:5px;
                 color:var(--green);font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;}
  .pf-group-link:hover{opacity:.72;}
  .pf-group-link .ar{font-size:1.1em;line-height:1;}
  .pf-side{flex:1 1 380px;background:#fff;border-radius:22px;box-shadow:0 10px 30px rgba(120,100,70,.12);padding:30px;display:flex;gap:24px;flex-wrap:wrap;}
  .pf-portrait{width:200px;flex:none;border-radius:14px;overflow:hidden;min-height:340px;}
  .pf-bio{flex:1;min-width:200px;}
  .pf-bio .role{color:var(--muted);font-size:14px;font-weight:700;margin-bottom:6px;}
  .pf-bio .pname{color:var(--ink);font-weight:900;font-size:30px;letter-spacing:2px;}
  .pf-bio .pname-en{color:var(--green);font-size:15px;letter-spacing:1.5px;font-weight:700;margin:6px 0 14px;}
  .pf-bio .ruled{border-top:1px solid #E6DECF;width:60px;margin-bottom:14px;}
  .pf-bio p{font-size:13.5px;line-height:1.95;color:var(--body);}

  /* ===== NEWS ===== */
  .news{padding-block:clamp(48px,6vw,66px) 60px;}
  .news-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap;}
  .news-head .eyebrow{color:var(--ink);font-size:clamp(22px,calc(var(--fvw,1vw)*2.6),28px);font-weight:900;}
  .news-head .eyebrow svg{width:34px;height:34px;color:var(--orange);}
  .news-head .viewall{color:var(--green);font-weight:700;font-size:15px;display:flex;align-items:center;gap:10px;}
  .news-list{display:flex;flex-direction:column;gap:18px;}
  .news-item{background:#fff;border-radius:14px;box-shadow:0 6px 18px rgba(170,140,90,.08);
             display:flex;align-items:center;gap:clamp(14px,2vw,30px);padding:clamp(18px,2vw,24px) clamp(18px,3vw,34px);flex-wrap:wrap;}
  .news-item .date{font-weight:900;font-size:clamp(15px,calc(var(--fvw,1vw)*1.4),19px);color:var(--ink);letter-spacing:.5px;}
  .news-tag{display:inline-flex;align-items:center;gap:7px;color:#fff;font-weight:700;font-size:13px;
            border-radius:999px;padding:7px 16px;min-width:104px;justify-content:center;flex:none;}
  .news-tag svg{width:16px;height:16px;}
  .news-tag.green{background:var(--green-dark);}
  .news-tag.orange{background:var(--orange);}
  .news-item .title{flex:1;min-width:200px;color:var(--ink);font-weight:700;font-size:clamp(15px,calc(var(--fvw,1vw)*1.4),18px);}
  .news-item .chev{color:#C9BFAE;font-size:20px;font-weight:700;}

  /* ===== CTA BANNER ===== */
  .ctaband{padding:0;}
  .cta-wrap{width:100%;background:linear-gradient(116deg,#FF8B00 34.5%,#FF7F00 87.8%);}
  .cta-inner{max-width:1504px;margin:0 auto;display:flex;align-items:center;gap:clamp(16px,2.4vw,46px);position:relative;
             padding:clamp(35px,5vw,51px) var(--gutter);flex-wrap:wrap;}
  .cta-illust{width:clamp(200px,15.6vw,300px);height:auto;aspect-ratio:1;flex:none;border-radius:18px;background:transparent;border-color:rgba(255,255,255,.55);margin-right:clamp(0px,.6vw,12px);}
  /* 見出しは Figma どおり必ず2行に保つ。1行分の幅（12文字 × 見出しの font-size = 3.4fvw）を
     最低幅として確保し、収まらない画面幅では flex-wrap でボタンを次の行へ送る。 */
  .cta-body{flex:1 1 0%;min-width:min(100%,clamp(240px,calc(var(--fvw,1vw)*36.6),562px));color:#fff;}
  .cta-badge{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--orange);font-weight:900;
             font-size:16px;border-radius:999px;padding:9px 22px;margin-bottom:16px;}
  .cta-badge svg{width:20px;height:20px;}
  .cta-body h2{font-weight:900;font-size:clamp(26px,calc(var(--fvw,1vw)*3),46px);line-height:1.35;color:#fff;}
  .cta-body p{font-size:clamp(15px,calc(var(--fvw,1vw)*1.3),17px);line-height:1.9;margin-top:16px;color:#fff;}
  /* 本文の改行はブラウザの折り返しに任せる（widthに対して中途半端な位置で切れるのを防ぐ） */
  .cta-body p br{display:none;}
  /* margin-inline:auto は「ボタンが次の行に折り返されたとき」だけ効く（同じ行では
     .cta-body が flex-grow で余白を吸うため無効）＝改行時のみ中央寄せになる。 */
  .cta-btn{flex:none;background:#fff;color:var(--ink);font-weight:900;font-size:clamp(18px,calc(var(--fvw,1vw)*1.8),22px);border-radius:999px;
           padding:22px 36px;display:flex;align-items:center;gap:18px;box-shadow:0 10px 24px rgba(0,0,0,.12);
           margin-inline:auto;}
  .cta-btn .clip{width:34px;height:34px;color:var(--orange);flex:none;}
  .cta-btn .chev{color:#C9BFAE;font-size:22px;}

  /* ===== FOOTER ===== */
  .footer{position:relative;width:100%;background:#fdf9f9;}
  .footer-bg{position:relative;width:100%;aspect-ratio:1920/237;z-index:0;display:block;}
  .footer-inner{position:relative;z-index:2;max-width:1400px;margin:0 auto;padding:clamp(56px,8vw,108px) var(--gutter) clamp(40px,5vw,64px);display:flex;gap:clamp(30px,5vw,60px);flex-wrap:wrap;}
  .footer-brand{flex:1 1 360px;max-width:520px;}
  .footer-logo{width:300px;max-width:80%;height:64px;margin-bottom:24px;}
  .footer-brand .tag{color:var(--orange);font-weight:900;font-size:clamp(20px,calc(var(--fvw,1vw)*2.2),24px);margin-bottom:18px;}
  .footer-brand .lead{color:var(--body);font-size:15px;line-height:1.9;margin-bottom:26px;}
  .footer-brand .btn{background:var(--orange);color:#fff;height:74px;padding:0 40px;font-size:18px;border-radius:999px;}
  .footer-brand .btn .clip{width:30px;height:30px;}
  .footer-col{flex:1 1 180px;min-width:160px;}
  .footer-col h4{color:var(--ink);font-weight:900;font-size:18px;letter-spacing:1px;border-bottom:2px solid var(--orange);
                 padding-bottom:8px;display:inline-block;margin-bottom:14px;}
  .footer-col ul{list-style:none;}
  .footer-col li{padding:11px 0;border-bottom:1px solid #EAE6DF;color:var(--body);font-size:15px;}
  .footer-col li:hover{color:var(--orange);}
  .footer-bottom{position:relative;z-index:2;background:#e0b79b;}
  .footer-bottom .inner{max-width:1400px;margin:0 auto;min-height:64px;display:flex;align-items:center;justify-content:center;gap:clamp(16px,3vw,40px);
                        color:var(--body);font-size:14px;padding:14px var(--gutter);flex-wrap:wrap;}
  .footer-bottom .sep{color:#D8D2C8;}
  .footer-bottom .inner a:hover{color:var(--orange);text-decoration:underline;}

  /* ====================== RESPONSIVE ====================== */
  /* --- nav collapses to hamburger (6 links + CTA don't fit below ~1180px) --- */
  @media(max-width:1180px){
    .nav-toggle{display:flex;}
    .nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;
         background:#fff;padding:0 24px;box-shadow:0 18px 30px rgba(0,0,0,.12);
         max-height:0;overflow:hidden;opacity:0;pointer-events:none;transition:max-height .28s ease,opacity .2s,padding .28s;}
    .nav.open{max-height:640px;opacity:1;pointer-events:auto;padding:8px 24px 20px;}
    .nav-links{flex-direction:column;align-items:stretch;gap:0;width:100%;}
    .nav-links a{padding:15px 4px;border-bottom:1px solid #efe9df;font-size:15px;}
    .nav-links a.active::after{display:none;}
    .nav-cta{width:100%;height:54px;margin-top:16px;}
  }

  /* --- tablet structural collapses --- */
  @media(max-width:980px){
    .q-grid{grid-template-columns:repeat(2,1fr);}
    /* タブレットでは[経営力][しくみ力]を2カラム横並びのまま維持し、
       [あなたはひとりじゃない]（.pw-card.alone）はその下に全幅で配置する。
       （1カラム化はSP=640px以下のブロックで行う） */
    .pw-card.alone{grid-column:1 / -1;}
    .diag-right{width:100%;}
    .pf-stats{grid-template-columns:repeat(2,1fr);row-gap:18px;}
  }
  @media(max-width:1000px){
    .hero::before{background:linear-gradient(170deg,rgba(255,253,248,.9) 0%,rgba(255,253,248,.55) 55%,rgba(255,253,248,.2) 100%);}
  }

  /* --- 4年の学び方: 4枚を1列に並べきれない幅では 2x2 に固定する ---
     flex-wrap のままだと 3枚＋1枚の「奇数改行」になるため、
     カードが窮屈になり始める 1024px 以下は grid 2列にする。 */
  @media(max-width:1024px){
    .curri-steps{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
    .step-conn{display:none;}
    /* カードが横に広がると height:170px + object-fit:cover のため画像の上が欠ける。
       高さ固定をやめ、画像は元の縦横比のまま全体を表示する。 */
    .step{min-height:0;}
    .curri-steps .step-illust{height:auto;}
    .curri-steps .step .step-illust>img{position:static;height:auto;object-fit:contain;}
  }

  /* --- 経営診断: 3枚横並びでは1枚あたりの幅が足りず文字が収まらないため、
     1180px 以下は「アイコン＋番号＋見出し＋説明」を1行にしたコンパクトな縦並びリストにする。 --- */
  @media(max-width:1180px){
    .diag-steps{flex-direction:column;flex-wrap:nowrap;gap:10px;}
    .dconn{display:none;}
    .dstep{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:14px 18px;}
    .dstep .head{flex:none;margin-bottom:0;gap:10px;}
    .dstep .num{width:30px;height:30px;font-size:14px;}
    .dstep .ttl{font-size:17px;white-space:nowrap;}
    .dstep .ico{order:-1;width:40px;height:40px;}
    .dstep p{flex:1 1 190px;min-width:0;}
    .dstep p br{display:none;}   /* 1行レイアウトでは改行指定を無効化 */
  }
  @media(max-width:880px){
    .hero-content{padding-bottom:24px;}
    /* SPでは通常フローに戻すが position:static にすると z-index が効かず
       .hero::before（ヒーロー全面のグラデーション膜）の下に潜ってクリックできなくなる。
       レイアウトは static と同じまま重なり順を保つため position:relative にする。 */
    .hero-card-wrap{position:relative;inset:auto;z-index:3;
                    justify-content:flex-start;padding-bottom:clamp(58px,10vw,90px);}
    .hero-card-img{top:0;max-width:474px;}
    /* SP: 背景 cover では写真が左右に切り取られ、さらに上に重なるグラデーション膜で
       人物の頭〜肩が隠れてしまう。写真はカード下部に全幅・全体表示（切り取りなし）にする。 */
    .empathy-card{padding:40px 28px 0;min-height:0;
                  background:linear-gradient(180deg,#FCEFE0 0%,#FFFCF8 42%,#FFFCF8 100%),
                             #FFFCF8;}
    .empathy-card::after{content:"";display:block;margin:26px -28px 0;aspect-ratio:900/646;
                         background:linear-gradient(180deg,rgba(255,252,248,.92) 0%,rgba(255,252,248,0) 9%),
                                    url('../img/empathy-farmers.jpg') center top / 100% auto no-repeat;}
    .empathy-inner{flex-direction:column;align-items:flex-start;gap:22px;max-width:100%;}
    .cta-inner{flex-direction:column;text-align:center;align-items:center;}
    .cta-body{min-width:0;}
    .cta-illust{width:min(300px,80vw);margin-right:0;}
  }

  /* --- tablet (641〜880px): 共感カードの写真はタブレット用の横長画像に差し替え --- */
  @media(min-width:641px) and (max-width:880px){
    .empathy-card::after{aspect-ratio:1200/554;
                         background:linear-gradient(180deg,rgba(255,252,248,.92) 0%,rgba(255,252,248,0) 9%),
                                    url('../img/empathy-farmers_tablet.jpg') center top / 100% auto no-repeat;}
  }

  /* --- tablet (641〜980px): 主要セクションに左右の余白を追加 ---
     共通ガター(--gutter ≒ 16〜25px)だけでは文字が画面端に近いため、
     +24px の左右余白を足して読みやすくする（SPの +8px と同じ考え方）。 */
  @media(min-width:641px) and (max-width:980px){
    .about{padding-inline:24px;}                                  /* コメプロについて */
    .container.curri{padding-inline:calc(var(--gutter) + 24px);}  /* 4年の学び方 */
    .container.diag{padding-inline:calc(var(--gutter) + 24px);}   /* 経営診断 */
    .profile{padding-inline:24px;}                                /* 伴走する人 */
    .footer-inner{padding-inline:calc(var(--gutter) + 24px);}     /* フッター（全ページ共通） */
  }

  /* --- smartphone (SP) layout --- */
  @media(max-width:640px){
    body{--gutter:9px;}   /* スマホでは余白をやや詰めて本文幅を確保（全コンテナ共通） */
    /* SP: 見出しをひとまわり大きく。3行に折り返すため word-break:auto-phrase で
       「農場を、/続いていく経営に。」のように文節単位で改行させる（非対応ブラウザは通常折り返し） */
    .hero h1{font-size:30px;word-break:auto-phrase;}
    .q-grid{grid-template-columns:1fr;}
    .powers-grid{grid-template-columns:1fr;}
    .pw-card.alone{grid-column:auto;flex-direction:column;align-items:center;justify-content:center;}
    .pw-card.alone .alone-head{width:auto;}
    .pw-card.alone .alone-body{align-self:auto;text-align:center;
                               border-left:none;margin:0;padding:0;}
    .pw-card.alone h3{border-bottom:2px dotted #C9BFAE;padding-bottom:16px;margin-bottom:14px;}
    .hero-actions{width:100%;}
    .hero-actions .btn{width:100%;}
    .hero-card{max-width:none;}
    .curri-steps{grid-template-columns:1fr;}
    .diag-cta .btn{width:100%;height:auto;min-height:54px;padding:14px 20px;font-size:15px;white-space:normal;line-height:1.5;}
    .pf-farm{width:100%;}
    .pf-portrait{width:100%;height:300px;min-height:0;}
    .news-head{flex-direction:column;align-items:flex-start;gap:10px;}
    .news-item{gap:10px 14px;}
    .news-item .chev{display:none;}
    .news-item .title{flex:1 1 100%;}
    /* SPでもラベルを必ず1行に保つ。画面幅に応じて文字・アイコン・余白を詰める。 */
    .cta-btn{width:100%;justify-content:center;white-space:nowrap;
             font-size:clamp(13px,4.1vw,17px);
             gap:clamp(8px,2.5vw,12px);
             padding:18px clamp(12px,4vw,22px);}
    .cta-btn .clip{width:clamp(22px,7vw,28px);height:auto;}
    .cta-btn .chev{font-size:clamp(16px,5vw,20px);}
    .footer-brand .btn{width:100%;justify-content:center;}

    /* SP: ガター9pxだけでは文字が画面端に近すぎるセクション／要素に、
       共通ガターへ +8px の左右余白を足して読みやすくする。 */
    .about{padding-inline:8px;}                                  /* ABOUT セクション全体 */
    .container.curri{padding-inline:calc(var(--gutter) + 8px);}  /* CURRICULUM（4年の学び方） */
    .diag-left h2,
    .diag-left .sub{padding-inline:8px;}                         /* DIAGNOSIS の見出し・リード文 */
    .profile .eyebrow,
    .profile h2{padding-inline:8px;}                             /* PROFILE（伴走する人）の見出し */
  }
  @media(max-width:380px){
    .hc-ico{display:none;}
  }

/* ==== 共通: 中途半端な改行の防止（1〜2文字だけの行送りをなくす） ====
   非対応ブラウザでは無視され従来表示のまま（プログレッシブエンハンスメント） */
h1,h2,h3,h4,h5,h6{
  text-wrap:balance;        /* 行を均等に折り返し、末尾に数文字だけ残さない */
  word-break:auto-phrase;   /* 文節単位で改行（Chrome系） */
}
p,li,dt,dd,figcaption,blockquote,summary{
  text-wrap:pretty;         /* 最終行が極端に短くならないよう調整 */
}
button,.cta-btn,.nav-cta{text-wrap:balance;}
