﻿  /* ===== 長谷川税理士事務所 コーポレート（固定FV＋せりあがり版） ===== */
  :root{
    --green:#28b485; --green-deep:#1c9b71; --green-pale:#e4f4ec; --green-soft:#9fd6c0;
    --green-cta:#167a5a; --green-cta-deep:#0f6146; /* CTAベタ塗り専用＝白文字で4.5:1以上(WCAG AA)。装飾の緑は--greenのまま */
    --bg:#f4f1ea; --bg-soft:#efece3; --white:#ffffff;
    --ink:#23282c; --sub:#6c7278; --line:rgba(35,40,44,.1); --line-soft:rgba(35,40,44,.07);
    --foot:#33383a;
    --en:"Poppins",sans-serif; --jp:"Noto Sans JP",system-ui,sans-serif; --mincho:"Shippori Mincho B1",serif;
    --gutter:clamp(20px,5vw,72px); --maxw:1200px; --sec:clamp(82px,11vw,150px);
    --ease:cubic-bezier(.22,1,.36,1);
    --r-btn:4px;     /* ボタン・CTA・タグ 共通形状（トップ「お問い合わせ」に統一） */
    --r-card:12px;   /* カード・パネル 共通形状 */
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
  body{background:#1f2a26;color:var(--ink);font-family:var(--jp);line-height:1.85;
    -webkit-font-smoothing:antialiased;overflow-x:hidden;font-feature-settings:"palt";}
  img{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  ::selection{background:var(--green);color:#fff;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);}

  /* === CTAコンポーネント（緑＝押せる場所。サイト内で緑のベタはCTAだけに限定） === */
  .cta{display:inline-flex;align-items:center;justify-content:center;gap:11px;
    font-family:var(--jp);font-weight:700;font-size:15px;letter-spacing:.02em;
    color:#fff;background:var(--green-cta);padding:15px 28px;border-radius:var(--r-btn);
    box-shadow:0 12px 26px -12px rgba(22,122,90,.7);
    transition:background .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease);}
  .cta::after{content:"";width:16px;height:9px;flex:none;
    background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9'%3E%3Cpath d='M11.5.5 15 4.5l-3.5 4M15 4.5H0' stroke='%23000' fill='none' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9'%3E%3Cpath d='M11.5.5 15 4.5l-3.5 4M15 4.5H0' stroke='%23000' fill='none' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat;
    transition:transform .3s var(--ease);}
  .cta:hover{background:var(--green-cta-deep);transform:translateY(-2px);box-shadow:0 18px 34px -14px rgba(15,97,70,.75);}
  .cta:hover::after{transform:translateX(4px);}
  .cta--lg{font-size:16.5px;padding:19px 38px;box-shadow:0 16px 34px -12px rgba(22,122,90,.8);}

  /* タグ（チップ）— CTAと同じ角丸に統一・無彩で控えめ（視線を奪わない） */
  .tag{display:inline-flex;align-items:center;font-size:12.5px;color:#41474d;background:var(--bg-soft);
    border:1px solid var(--line);border-radius:var(--r-btn);padding:8px 15px;}

  /* セクション見出し（大英字＋日本語サブ）— 全セクション統一 */
  .sec-title{display:flex;flex-direction:column;line-height:1;}
  .sec-title .en{font-family:var(--en);font-weight:600;font-size:clamp(40px,6vw,72px);letter-spacing:.01em;color:var(--ink);}
  .sec-title .jp{font-size:13px;letter-spacing:.1em;color:var(--sub);margin-top:12px;font-weight:500;}
  .sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;}
  .arrow-link{display:inline-flex;align-items:center;gap:14px;font-size:13px;letter-spacing:.06em;color:var(--ink);flex:none;}
  .arrow-link .circ{width:46px;height:46px;border-radius:50%;border:1px solid var(--green);display:flex;align-items:center;justify-content:center;color:var(--green);transition:background .3s var(--ease),color .3s var(--ease);}
  .arrow-link:hover .circ{background:var(--green);color:#fff;}
  .arrow-link .circ::after{content:"→";font-family:var(--en);font-size:15px;}

  /* === header === */
  /* 既定=読みやすい安全側（rgba背景+濃色文字）。JS未動作でもこの見た目のまま固定される（fail-open、Codexレビュー指摘） */
  header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .4s var(--ease),box-shadow .4s var(--ease);
    background:rgba(244,241,234,.94);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line);}
  header.solid{background:rgba(244,241,234,.94);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line);}
  .head{display:flex;align-items:center;height:74px;gap:20px;}/* 右寄せはauto-margin方式（モバイルメニュー導入のため） */
  .brand{display:flex;align-items:center;}
  .brand__name{font-family:"HGP創英角ﾎﾟｯﾌﾟ体","HGS創英角ﾎﾟｯﾌﾟ体","HG創英角ﾎﾟｯﾌﾟ体","Mochiy Pop One",sans-serif;font-size:19px;font-weight:400;letter-spacing:.02em;color:var(--ink);}
  /* 透明×白文字のヒーロー演出はJS稼働確認済み(.ws-hasegawa-js)の時だけ有効化。JS無効時は上の既定(濃色文字)のまま */
  .ws-hasegawa-js header.hero-top{background:none;backdrop-filter:none;box-shadow:none;}
  .ws-hasegawa-js header.hero-top .brand__name{color:#fff;}
  .nav{display:flex;align-items:center;gap:28px;margin-left:auto;}
  .nav a{font-size:13.5px;letter-spacing:.03em;color:var(--ink);transition:color .3s,opacity .3s;}
  .ws-hasegawa-js header.hero-top .nav a{color:#fff;}
  /* ヒーロー画像の明度に依存せず白文字を読みやすく（右上が明るい場合の保険） */
  .ws-hasegawa-js header.hero-top .brand__name,.ws-hasegawa-js header.hero-top .nav a{text-shadow:0 1px 6px rgba(0,0,0,.45);}
  .nav a:hover{color:var(--green);}
  .ws-hasegawa-js header.hero-top .nav a:hover{opacity:.7;color:#fff;}
  /* ヘッダーCTA（nav外の直接子。モバイル全画面パネルと分離するため） */
  a.nav__cta{font-weight:700;font-size:13.5px;color:#fff;background:var(--green-cta);padding:12px 24px;border-radius:var(--r-btn);transition:background .3s,transform .3s;flex:none;}
  a.nav__cta:hover{background:var(--green-cta-deep);transform:translateY(-1px);}

  /* === hero（固定。コンテンツが下からせり上がって覆う） === */
  .hero{position:fixed;top:0;left:0;width:100%;height:100vh;z-index:0;overflow:hidden;display:flex;align-items:flex-end;}
  .hero__img{position:absolute;inset:0;z-index:0;background:linear-gradient(135deg,#3a4a44,#1f2a26);}
  /* 顔なし専用アセット（hero-wide/hero-mobile）へ差替済み。旧scale(1.85)ズームは顔回避ハックだったため廃止（ボケ解消・全ビューポートで顔非表示を保証） */
  .hero__img picture{display:block;width:100%;height:100%;}
  .hero__img img{width:100%;height:100%;object-fit:cover;object-position:center;}
  .hero__img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,8,7,.94) 0%,rgba(6,8,7,.66) 26%,rgba(6,8,7,.18) 52%,transparent 72%),linear-gradient(0deg,rgba(6,8,7,.5),transparent 46%);}
  .hero__inner{position:relative;z-index:2;width:100%;max-width:none;margin:0;padding:0 var(--gutter) clamp(82px,13vh,150px);}
  .hero__eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:24px;font-size:14px;font-weight:500;letter-spacing:.04em;color:rgba(255,255,255,.96);text-shadow:0 1px 8px rgba(0,0,0,.4);}
  .hero__eyebrow::before{content:"";width:26px;height:2px;background:var(--green);flex:none;}
  .hero__title{display:block;}
  .hero__title .en{display:block;font-family:var(--en);font-weight:700;font-size:clamp(60px,13.5vw,204px);line-height:.98;letter-spacing:-.02em;color:#fff;}
  .hero__title .jp{display:block;margin-top:22px;font-size:clamp(15px,1.7vw,18px);font-weight:500;letter-spacing:.04em;color:rgba(255,255,255,.94);}
  .hero__cta{margin-top:38px;display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
  .hero__note{font-size:12.5px;color:rgba(255,255,255,.78);}
  .hero__news{position:absolute;right:var(--gutter);bottom:clamp(26px,5vh,48px);z-index:2;max-width:min(46vw,440px);
    display:flex;align-items:center;gap:16px;background:rgba(255,255,255,.96);border-radius:var(--r-btn);padding:14px 20px;box-shadow:0 18px 50px -24px rgba(0,0,0,.5);}
  .hero__news b{font-family:var(--en);font-size:12px;letter-spacing:.14em;color:var(--green-deep);flex:none;}
  .hero__news time{font-size:12px;color:var(--sub);flex:none;}
  .hero__news span{font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .hero__news[hidden]{display:none;}/* データ未設定/空なら非表示（お知らせを駆動しない既定状態） */
  .hero__scroll{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:2;font-family:var(--en);font-size:11px;letter-spacing:.2em;color:rgba(255,255,255,.7);display:flex;flex-direction:column;align-items:center;gap:8px;}
  .hero__scroll::after{content:"";width:1px;height:34px;background:linear-gradient(rgba(255,255,255,.8),transparent);}

  /* === コンテンツ（固定FVの上にせり上がるパネル・縁はまっすぐ） === */
  .content{position:relative;z-index:2;margin-top:100vh;background:var(--bg);
    box-shadow:0 -16px 44px -22px rgba(0,0,0,.32);}

  /* === SERVICE === */
  .service{padding:clamp(64px,8vw,110px) 0 var(--sec);background:var(--bg);}
  .service__lead{margin:46px 0 8px;font-size:15px;line-height:2.05;color:var(--ink);}
  .srow{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(28px,5vw,64px);align-items:center;padding:clamp(36px,5vw,56px) 0;border-top:1px solid var(--line);}
  .srow__pic{aspect-ratio:4/3;border-radius:var(--r-card);overflow:hidden;background:linear-gradient(150deg,#cfe6da,#9cc4b0);}
  .srow__pic img{width:100%;height:100%;object-fit:cover;}
  .srow__top{display:flex;align-items:center;justify-content:space-between;gap:20px;}
  .srow__top h3{font-size:clamp(22px,2.6vw,28px);font-weight:700;letter-spacing:.02em;}
  .srow__no{font-family:var(--en);font-size:13px;letter-spacing:.14em;color:var(--green-soft);}
  .srow p{margin-top:18px;font-size:14px;line-height:2.05;color:#4b5158;max-width:38em;}
  .srow__tags{margin-top:24px;display:flex;flex-wrap:wrap;gap:10px;}

  /* === STRENGTH（白地＋罫線インデックス型：番号主役のエディトリアル。背景画像は可読性優先で廃止） === */
  .strength{padding:var(--sec) 0;background:var(--white);}
  .strength__head{text-align:center;margin-bottom:52px;display:flex;flex-direction:column;align-items:center;}
  .ws-hasegawa-sindex__row{display:grid;grid-template-columns:76px 250px 1fr;gap:0 clamp(18px,3vw,44px);align-items:start;padding:clamp(22px,3vw,30px) 2px;border-top:1px solid rgba(35,40,44,.16);}
  .ws-hasegawa-sindex__row:last-child{border-bottom:1px solid rgba(35,40,44,.16);}
  .ws-hasegawa-sindex__no{font-family:var(--en);font-weight:500;font-size:28px;line-height:1.4;letter-spacing:.05em;color:var(--green-soft);transition:color .7s var(--ease) .25s;}/* line-height:1.4は本文の文字天(要素上端+8.16px)に番号天を合わせる実測値。font-size固定で全幅で揃える */
  .rv.in .ws-hasegawa-sindex__no{color:var(--green-deep);}/* リビールと同時に番号が「灯る」 */
  .ws-hasegawa-sindex__h{font-size:17px;font-weight:700;letter-spacing:.02em;line-height:1.7;}
  .ws-hasegawa-sindex__p{font-size:13.5px;line-height:1.95;color:#454b51;}

  /* === COMPANY === */
  .company{padding:var(--sec) 0;background:var(--bg-soft);}
  .company__statement{margin-top:48px;font-family:var(--mincho);font-weight:500;font-size:clamp(24px,3.4vw,40px);line-height:1.7;letter-spacing:.03em;}
  .company__grid{margin-top:clamp(48px,6vw,72px);display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,5vw,72px);align-items:center;}
  .company__portrait{aspect-ratio:4/5;border-radius:var(--r-card);overflow:hidden;background:linear-gradient(150deg,#cfe6da,#9cc4b0);}
  .company__portrait img{width:100%;height:100%;object-fit:cover;}
  .company__eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:12.5px;font-weight:700;letter-spacing:.06em;color:var(--green-deep);}
  .company__eyebrow::before{content:"";width:24px;height:1px;background:var(--green-soft);}
  .company__name{font-size:clamp(22px,2.8vw,30px);font-weight:700;letter-spacing:.04em;display:flex;flex-wrap:wrap;align-items:baseline;gap:14px;}
  .company__name small{font-size:12.5px;font-weight:400;color:var(--sub);letter-spacing:.03em;}
  .company__quote{margin-top:22px;font-family:var(--mincho);font-weight:500;font-size:clamp(19px,2.2vw,26px);line-height:1.7;letter-spacing:.02em;}
  .company__quote .ac{color:var(--green-deep);}
  .company__lead{margin-top:22px;font-size:14px;line-height:2.1;color:#4b5158;max-width:34em;}
  .company__more{margin-top:28px;}

  /* === ABOUT / PROFILE（Company要約からつながる代表者詳細ページ） === */
  .about-page{background:var(--bg);}
  .about-page .sp-hero{--sp-watermark:"人";}
  .about-profile{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(34px,6vw,84px);align-items:start;}
  .about-profile__pic{aspect-ratio:4/5;overflow:hidden;border-radius:var(--r-card);background:linear-gradient(150deg,#cfe6da,#9cc4b0);}
  .about-profile__pic img{width:100%;height:100%;object-fit:cover;}
  .about-profile__role{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;letter-spacing:.07em;color:var(--green-deep);}
  .about-profile__role::before{content:"";width:24px;height:1px;background:var(--green-soft);}
  .about-profile__name{margin-top:16px;font-size:clamp(30px,4vw,48px);font-weight:700;line-height:1.3;letter-spacing:.04em;}
  .about-profile__name small{display:block;margin-top:10px;font-size:12.5px;font-weight:400;letter-spacing:.04em;color:var(--sub);}
  .about-profile__catch{margin-top:30px;font-family:var(--mincho);font-size:clamp(20px,2.6vw,30px);font-weight:500;line-height:1.75;letter-spacing:.025em;text-wrap:balance;}
  .about-profile__lead{margin-top:22px;max-width:42em;font-size:14.5px;line-height:2.1;color:#4b5158;text-wrap:pretty;}

  .about-expertise{margin-top:48px;border-bottom:1px solid var(--line);}
  .about-expertise__row{display:grid;grid-template-columns:80px minmax(190px,.7fr) 1.3fr;gap:clamp(20px,4vw,54px);align-items:start;padding:28px 0;border-top:1px solid var(--line);}
  .about-expertise__no{font-family:var(--en);font-size:22px;font-weight:500;line-height:1.5;letter-spacing:.08em;color:var(--green-deep);}
  .about-expertise__row h3{font-size:clamp(17px,2vw,21px);font-weight:700;line-height:1.7;letter-spacing:.02em;}
  .about-expertise__row p{max-width:43em;font-size:14px;line-height:2;color:#4b5158;}

  .about-career{margin-top:48px;border-top:1px solid var(--line);}
  .about-career__item{display:grid;grid-template-columns:minmax(110px,.28fr) 1fr;gap:clamp(24px,5vw,72px);padding:30px 0;border-bottom:1px solid var(--line);}
  .about-career__year{font-family:var(--en);font-size:14px;font-weight:600;letter-spacing:.08em;color:var(--green-deep);font-variant-numeric:tabular-nums;}
  .about-career__body h3{font-size:17px;font-weight:700;line-height:1.7;letter-spacing:.02em;}
  .about-career__body p{margin-top:9px;max-width:48em;font-size:13.5px;line-height:2;color:#4b5158;}

  .about-credentials{display:grid;grid-template-columns:1fr 1fr;margin-top:48px;border-top:1px solid var(--line);}
  .about-credentials li{display:flex;align-items:baseline;gap:14px;padding:22px 0;border-bottom:1px solid var(--line);font-size:15px;font-weight:600;line-height:1.7;}
  .about-credentials li:nth-child(odd){padding-right:28px;}
  .about-credentials li:nth-child(even){padding-left:28px;border-left:1px solid var(--line);}
  .about-credentials li::before{content:"";width:7px;height:7px;flex:none;border-radius:50%;background:var(--green-soft);}

  .about-approach{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,80px);align-items:start;}
  .about-approach__quote{font-family:var(--mincho);font-size:clamp(25px,3.8vw,42px);font-weight:500;line-height:1.65;letter-spacing:.025em;text-wrap:balance;}
  .about-approach__quote .ac{color:var(--green-deep);}
  .about-approach__text p{font-size:14.5px;line-height:2.1;color:#4b5158;}
  .about-approach__text p+p{margin-top:17px;}

  .about-cta{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end;padding-top:38px;border-top:1px solid var(--line);}
  .about-cta__title{font-family:var(--mincho);font-size:clamp(23px,3.2vw,36px);font-weight:500;line-height:1.65;letter-spacing:.025em;}
  .about-cta__note{margin-top:11px;font-size:13.5px;line-height:1.9;color:var(--sub);}

  /* === PRICE（画像＋カード・無料は強調しすぎない白基調） === */
  .price{padding:var(--sec) 0;background:var(--bg);}
  .price__body{margin-top:54px;display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(28px,5vw,60px);align-items:center;}
  .price__pic{aspect-ratio:5/4;border-radius:var(--r-card);overflow:hidden;background:linear-gradient(150deg,#cfe6da,#9cc4b0);}
  .price__pic img{width:100%;height:100%;object-fit:cover;}
  .price__cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,20px);}
  .pcard{background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);padding:32px 28px;box-shadow:0 18px 40px -34px rgba(20,40,32,.26);}
  .pcard__label{font-size:13px;color:var(--sub);display:flex;align-items:center;gap:8px;}
  .pcard__label::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green-soft);flex:none;}
  .pcard__amt{font-family:var(--en);font-weight:700;font-size:clamp(32px,3.8vw,42px);line-height:1.05;margin-top:14px;color:var(--ink);}
  .pcard__amt small{font-family:var(--jp);font-size:16px;margin-left:3px;color:var(--sub);font-weight:500;}
  .pcard__note{font-size:12px;color:var(--sub);line-height:1.8;margin-top:14px;}

  /* === FLOW（縦タイムライン型：接続線が順序をつなぐ。線はリビールに同期して伸びる） === */
  .flow{padding:var(--sec) 0;background:var(--bg-soft);}
  .ws-hasegawa-tline{margin:54px auto 0;max-width:760px;list-style:none;padding:0;}
  .ws-hasegawa-tline__step{position:relative;display:grid;grid-template-columns:48px 1fr;gap:0 24px;padding-bottom:clamp(28px,4vw,40px);}
  .ws-hasegawa-tline__step:last-child{padding-bottom:0;}
  .ws-hasegawa-tline__step::before{content:"";position:absolute;left:23px;top:52px;bottom:4px;width:2px;background:var(--green-soft);transform:scaleY(0);transform-origin:top;transition:transform .9s var(--ease) .35s;}
  .ws-hasegawa-tline__step:last-child::before{display:none;}
  .ws-hasegawa-tline__step.rv.in::before{transform:scaleY(1);}
  .ws-hasegawa-tline__no{width:48px;height:48px;border-radius:50%;background:var(--green-pale);border:1px solid var(--green-soft);color:var(--green-deep);font-family:var(--en);font-weight:600;font-size:18px;display:flex;align-items:center;justify-content:center;}
  .ws-hasegawa-tline__body h3{font-size:16.5px;font-weight:700;letter-spacing:.02em;padding-top:11px;}
  .ws-hasegawa-tline__body p{margin-top:8px;font-size:13.5px;line-height:1.95;color:#525860;}

  /* === FAQ（faq.html と同一デザインシステムを本体に移植） === */
  .faq{padding:var(--sec) 0;background:var(--bg-soft);interpolate-size:allow-keywords;}
  .faq__list{max-width:860px;margin:54px auto 0;display:flex;flex-direction:column;gap:14px;}
  .faq__item{background:var(--white);border-radius:var(--r-card);overflow:hidden;box-shadow:0 16px 36px -32px rgba(20,40,32,.28);}
  .faq__q{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:24px 28px;font-size:16px;font-weight:700;line-height:1.55;color:var(--ink);}
  .faq__q::-webkit-details-marker{display:none;}
  .faq__q::before{content:"Q";font-family:var(--en);font-weight:600;font-size:15px;color:#fff;background:var(--green-cta);width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;}
  .faq__sign{margin-left:auto;position:relative;width:16px;height:16px;flex:none;}
  .faq__sign::before,.faq__sign::after{content:"";position:absolute;background:var(--green);border-radius:1px;}
  .faq__sign::before{left:7.2px;top:0;width:1.6px;height:16px;transition:transform .3s var(--ease);}
  .faq__sign::after{left:0;top:7.2px;width:16px;height:1.6px;}
  .faq__item[open] .faq__sign::before{transform:scaleY(0);}
  .faq__a{padding:0 28px 26px 74px;font-size:14px;line-height:2.05;color:#4b5158;}
  .faq__item::details-content{block-size:0;overflow:hidden;transition:block-size .34s var(--ease),content-visibility .34s var(--ease) allow-discrete;}
  .faq__item[open]::details-content{block-size:auto;}

  /* === MESSAGE（画像バンド・締め前の視線の見せ場） === */
  .message{position:relative;padding:clamp(96px,14vw,170px) 0;isolation:isolate;color:#fff;}
  .message__bg{position:absolute;inset:0;z-index:0;background:#202a25;}
  .message__bg img{width:100%;height:100%;object-fit:cover;opacity:.46;}
  .message__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(18,28,24,.78),rgba(18,28,24,.5));}
  .message__inner{position:relative;z-index:2;text-align:center;max-width:780px;margin:0 auto;padding-inline:var(--gutter);}
  .message__lead{font-family:var(--mincho);font-weight:500;font-size:clamp(25px,3.6vw,42px);line-height:1.6;letter-spacing:.04em;}
  .message__lead .ac{color:var(--green-soft);}
  .message p{margin-top:22px;font-size:14.5px;color:rgba(255,255,255,.88);line-height:2;}
  .message .cta{margin-top:34px;}

  /* === CONTACT（角丸カード・中央：意図的な締めの演出） === */
  .contact{padding:var(--sec) 0;background:linear-gradient(160deg,var(--green-pale),var(--bg) 55%,#eef2ea);}
  .contact__card{position:relative;background:var(--white);border-radius:24px;padding:clamp(52px,7vw,88px) var(--gutter);text-align:center;
    box-shadow:0 50px 90px -50px rgba(20,80,56,.5);max-width:1060px;margin:0 auto;display:flex;flex-direction:column;align-items:center;}
  .contact__lead{margin-top:24px;font-size:15px;color:#4b5158;}
  .contact__actions{margin-top:34px;display:flex;flex-wrap:wrap;gap:16px;justify-content:center;align-items:stretch;}

  /* === CONTACT FORM（全ページ共通） === */
  .ws-hasegawa-form-toggle{border:1px solid var(--green-cta);background:transparent;color:var(--green-deep);font:inherit;cursor:pointer;}
  .ws-hasegawa-form-toggle:hover{background:var(--green-pale);color:var(--green-deep);box-shadow:none;}
  .ws-hasegawa-form-panel{width:100%;max-width:780px;margin:34px auto 0;text-align:left;}
  .ws-hasegawa-form-panel[hidden]{display:none;}
  .ws-hasegawa-form{background:var(--bg);border:1px solid rgba(23,83,64,.14);border-radius:18px;padding:clamp(24px,4vw,40px);}
  .ws-hasegawa-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
  .ws-hasegawa-form label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:700;color:var(--ink);}
  .ws-hasegawa-form label>span b{display:inline-block;margin-left:6px;color:#9d3d35;font-size:11px;letter-spacing:.04em;}
  .ws-hasegawa-form input,.ws-hasegawa-form textarea{width:100%;border:1px solid rgba(23,83,64,.25);border-radius:10px;background:var(--white);color:var(--ink);font:inherit;font-size:16px;line-height:1.6;padding:13px 14px;outline:none;transition:border-color .2s,box-shadow .2s;}
  .ws-hasegawa-form textarea{resize:vertical;min-height:150px;}
  .ws-hasegawa-form input:focus,.ws-hasegawa-form textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(45,159,119,.14);}
  .ws-hasegawa-form__wide{grid-column:1/-1;}
  .ws-hasegawa-form__consent{flex-direction:row!important;align-items:flex-start;margin-top:20px;font-weight:500!important;line-height:1.7;}
  .ws-hasegawa-form__consent input{width:18px;height:18px;margin-top:3px;flex:none;accent-color:var(--green-deep);}
  .ws-hasegawa-form__trap[hidden]{display:none!important;}
  .ws-hasegawa-form__submit{margin:24px auto 0;border:0;font:inherit;cursor:pointer;}
  .ws-hasegawa-form__submit[disabled]{opacity:.65;cursor:wait;transform:none;}
  .ws-hasegawa-form__status{min-height:1.7em;margin-top:16px;text-align:center;font-size:14px;font-weight:700;color:var(--green-deep);}
  .ws-hasegawa-form__status.is-error{color:#9d3d35;}

  /* === CONTACT 追加: メール導線・対応地域（依頼追加・スコープ隔離） === */
  .ws-hasegawa-mail{display:inline-flex;align-items:center;gap:9px;margin-top:24px;font-size:14px;font-weight:500;color:var(--green-deep);border-bottom:1px solid var(--green-soft);padding-bottom:3px;transition:color .3s var(--ease),border-color .3s var(--ease);}
  .ws-hasegawa-mail:hover{color:var(--green);border-color:var(--green);}
  .ws-hasegawa-mail::before{content:"";width:18px;height:14px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Crect x='1' y='1' width='16' height='12' rx='1' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3Cpath d='M1.5 2 9 8l7.5-6' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Crect x='1' y='1' width='16' height='12' rx='1' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3Cpath d='M1.5 2 9 8l7.5-6' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3C/svg%3E") center/contain no-repeat;}
  .ws-hasegawa-area{max-width:760px;margin:32px auto 0;padding-top:28px;border-top:1px solid var(--line);text-align:center;}
  .ws-hasegawa-area__label{display:inline-flex;align-items:center;gap:9px;font-family:var(--en);font-size:12px;letter-spacing:.14em;color:var(--green-deep);font-weight:600;}
  .ws-hasegawa-area__label::before{content:"";width:22px;height:1px;background:var(--green-soft);}
  .ws-hasegawa-area p{margin-top:12px;font-size:13.5px;line-height:2;color:#4b5158;}

  /* === footer === */
  footer{background:var(--foot);color:rgba(255,255,255,.62);padding:clamp(56px,7vw,84px) 0 34px;font-size:13px;}
  .foot__grid{display:grid;grid-template-columns:1.1fr 1.9fr;gap:clamp(32px,5vw,64px);}
  .foot__brand{display:flex;align-items:center;}
  .foot__brand .brand__name{color:#fff;font-size:18px;}
  .foot__addr{margin-top:22px;line-height:1.9;color:rgba(255,255,255,.6);font-size:12.5px;}
  .foot__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
  .foot__cols h2{font-size:13.5px;font-weight:700;color:#fff;margin-bottom:14px;}
  .foot__cols a{display:block;font-size:12.5px;color:rgba(255,255,255,.6);padding:5px 0;transition:color .3s;}
  .foot__cols a:hover{color:#fff;}
  .foot__bottom{margin-top:clamp(40px,5vw,60px);padding-top:22px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:flex-end;gap:16px;flex-wrap:wrap;font-size:12px;color:rgba(255,255,255,.45);}

  /* === reveal（下からせり上がり・全セクション統一） === */
  /* JS無効・読込失敗時は素で表示(fail-open)。.ws-hasegawa-js はJS先頭でhtmlに付与(Codexレビュー反映) */
  .rv{opacity:1;transform:none;transition:opacity .85s var(--ease),transform .85s var(--ease);}
  .ws-hasegawa-js .rv{opacity:0;transform:translateY(40px);}
  .ws-hasegawa-js .rv.in{opacity:1;transform:none;}
  html:not(.ws-hasegawa-js) .ws-hasegawa-tline__step::before{transform:scaleY(1);}/* JS無しでも接続線を表示 */
  .stagger > .rv:nth-child(2){transition-delay:.08s;}
  .stagger > .rv:nth-child(3){transition-delay:.16s;}
  .stagger > .rv:nth-child(4){transition-delay:.24s;}
  .stagger > .rv:nth-child(5){transition-delay:.32s;}
  .stagger > .rv:nth-child(6){transition-delay:.40s;}

  /* === ws-hasegawa-mnav: モバイルメニュー（ハンバーガー＋全画面パネル。981px以上は非表示） === */
  .ws-hasegawa-menubtn{display:none;align-items:center;justify-content:center;width:44px;height:44px;flex:none;background:none;border:0;padding:0;cursor:pointer;color:var(--ink);}
  header.hero-top .ws-hasegawa-menubtn{color:#fff;}
  header.ws-hasegawa-menu-open .ws-hasegawa-menubtn{color:var(--ink);}
  .ws-hasegawa-menubtn__lines{position:relative;width:22px;height:14px;display:block;}
  .ws-hasegawa-menubtn__lines::before,.ws-hasegawa-menubtn__lines::after{content:"";position:absolute;left:0;width:22px;height:2px;background:currentColor;border-radius:1px;transition:transform .3s var(--ease),top .3s var(--ease),bottom .3s var(--ease);}
  .ws-hasegawa-menubtn__lines::before{top:0;}
  .ws-hasegawa-menubtn__lines::after{bottom:0;}
  header.ws-hasegawa-menu-open .ws-hasegawa-menubtn__lines::before{top:6px;transform:rotate(45deg);}
  header.ws-hasegawa-menu-open .ws-hasegawa-menubtn__lines::after{bottom:6px;transform:rotate(-45deg);}
  /* ヒーロー画像の明部でも白線が見えるよう線にだけ影（展開中=ink色なので不要） */
  header.hero-top .ws-hasegawa-menubtn__lines{filter:drop-shadow(0 1px 4px rgba(0,0,0,.5));}
  header.ws-hasegawa-menu-open .ws-hasegawa-menubtn__lines{filter:none;}
  .ws-hasegawa-mnav-cta{display:none;}/* パネル内LINE CTA（デスクトップ非表示・開いた時だけ出す） */
  .ws-hasegawa-noscroll,.ws-hasegawa-noscroll body{overflow:hidden;overscroll-behavior:contain;}/* パネル展開中の背面スクロールロック（iOSのバウンス対策にbody併用） */
  /* スキップリンク（キーボード操作時のみ出現） */
  .ws-hasegawa-skip{position:fixed;top:12px;left:12px;z-index:300;background:var(--white);color:var(--ink);font-size:13px;font-weight:700;padding:12px 20px;border-radius:var(--r-btn);box-shadow:0 14px 34px -14px rgba(0,0,0,.45);transform:translateY(-240%);transition:transform .25s var(--ease);}
  .ws-hasegawa-skip:focus,.ws-hasegawa-skip:focus-visible{transform:none;}
  #main:focus{outline:none;}/* スキップ着地点（非操作要素）には巨大アウトラインを出さない */

  /* === sp-*: スポークページ共通（souzoku/iryou/houjin。ページFV・リード・カード・読み物） === */
  /* ページFV：本命ヒーローの「濃色＋Poppins大英字」入口を写真なしで踏襲。透かし文字は各ページで --sp-watermark を設定 */
  .sp-hero{position:relative;background:#20282b;color:#fff;overflow:hidden;
    padding:calc(74px + clamp(52px,8vw,96px)) 0 clamp(52px,8vw,92px);}
  .sp-hero::before{content:var(--sp-watermark,"");position:absolute;right:-2%;bottom:-18%;font-family:var(--mincho);
    font-size:clamp(180px,34vw,420px);line-height:1;color:rgba(255,255,255,.035);pointer-events:none;user-select:none;}
  .sp-hero__inner{position:relative;z-index:1;}
  .sp-hero__crumb{font-size:12px;letter-spacing:.04em;color:rgba(255,255,255,.5);margin-bottom:26px;}
  .sp-hero__crumb a{color:rgba(255,255,255,.7);}
  .sp-hero__crumb a:hover{color:#fff;}
  .sp-hero__crumb span{margin:0 9px;color:rgba(255,255,255,.28);}
  .sp-hero__eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:500;letter-spacing:.04em;color:rgba(255,255,255,.9);}
  .sp-hero__eyebrow::before{content:"";width:26px;height:2px;background:var(--green);}
  .sp-hero__title{display:block;margin-top:22px;}
  .sp-hero__title .en{display:block;font-family:var(--en);font-weight:600;font-size:clamp(46px,9vw,102px);line-height:1;letter-spacing:.01em;color:#fff;}
  .sp-hero__title .jp{display:block;margin-top:16px;font-size:clamp(17px,2.1vw,23px);font-weight:500;letter-spacing:.02em;color:rgba(255,255,255,.95);}
  .sp-hero__lead{margin-top:24px;font-size:15px;line-height:2.05;color:rgba(255,255,255,.8);max-width:38em;}
  .sp-hero__cta{margin-top:34px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
  .sp-hero__note{font-size:12.5px;color:rgba(255,255,255,.62);}

  /* 本文セクション（背景を交互に：白／soft） */
  .sp-sec{padding:var(--sec) 0;}
  .sp-sec--soft{background:var(--bg-soft);}
  .sp-sec--white{background:var(--white);}
  .sp-lead{margin:44px 0 0;font-size:14.5px;line-height:2.05;color:#4b5158;max-width:40em;}

  /* sp-lede：ページ冒頭の「このページでできること」＝写真＋要約＋ページ内ジャンプ（迷子防止） */
  .sp-lede{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,64px);align-items:center;}
  .sp-lede__pic{aspect-ratio:4/3;border-radius:var(--r-card);overflow:hidden;background:linear-gradient(150deg,#cfe6da,#9cc4b0);}
  .sp-lede__pic img{width:100%;height:100%;object-fit:cover;}
  .sp-lede__catch{font-size:clamp(20px,2.4vw,26px);font-weight:700;letter-spacing:.02em;line-height:1.7;}
  .sp-lede__txt p{margin-top:18px;font-size:14px;line-height:2.05;color:#4b5158;max-width:36em;}
  .sp-lede__jump{margin-top:26px;display:flex;flex-wrap:wrap;gap:10px;}
  .sp-lede__jump a{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--ink);
    background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r-btn);padding:12px 18px;
    transition:border-color .3s var(--ease),color .3s var(--ease);}
  .sp-lede__jump a::after{content:"↓";font-family:var(--en);font-size:12px;color:var(--green-deep);}
  .sp-lede__jump a:hover{border-color:var(--green);color:var(--green-deep);}

  /* お悩み・対応：Poppins番号を主役にした罫線カラム */
  .sp-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,40px);margin-top:48px;}
  .sp-card{border-top:1px solid var(--line);padding-top:22px;}
  .sp-card__no{font-family:var(--en);font-weight:500;font-size:22px;line-height:1;letter-spacing:.04em;color:var(--green-soft);}
  .sp-card h3{margin-top:13px;font-size:16.5px;font-weight:700;letter-spacing:.02em;line-height:1.6;}
  .sp-card p{margin-top:11px;font-size:13.5px;line-height:1.95;color:#4b5158;}

  /* 期限・注意バッジ */
  .sp-deadline{display:inline-flex;align-items:center;gap:12px;font-size:13px;letter-spacing:.02em;color:var(--ink);border:1px solid var(--line);border-radius:var(--r-btn);padding:10px 18px;margin:20px 0 8px;}
  .sp-deadline b{font-family:var(--en);font-weight:600;color:var(--green-deep);letter-spacing:.02em;}

  /* 読み物ブロック */
  .sp-prose{max-width:720px;margin-top:44px;}
  .sp-prose p{margin-top:16px;font-size:14.5px;line-height:2.05;color:#4b5158;}
  .sp-prose a{color:var(--green-deep);border-bottom:1px solid var(--green-soft);}
  .sp-prose a:hover{color:var(--green);}

  @media(max-width:880px){.sp-cards{grid-template-columns:1fr;gap:20px;}}
  @media(max-width:980px){.sp-lede{grid-template-columns:1fr;gap:26px;}.sp-lede__pic{max-width:520px;}}
  @media(max-width:560px){.sp-hero::before{font-size:clamp(140px,52vw,220px);bottom:-8%;}}
  /* タッチ端末ではパンくずリンクのタップ領域を44px級に（レイアウト不変のpadding+負margin方式） */
  @media (pointer:coarse){
    .sp-hero__crumb a{display:inline-block;padding-block:14px;margin-block:-14px;}
  }

  /* === ws-hasegawa: 下層ページ共通（現在地ハイライト・ハブ→スポーク導線） === */
  /* 現在地は--green-cta＝明色ヘッダー上で4.69:1(AA)。green-deepは3.12:1で不足(Codexレビュー指摘) */
  .nav a[aria-current="page"]{color:var(--green-cta);font-weight:700;}
  .ws-hasegawa-splink{margin-top:26px;font-size:12.5px;}
  .ws-hasegawa-faqmore{margin-top:36px;display:flex;justify-content:center;}

  /* === fx-hasegawa-hero: ヒーロー登場＋スクロールキュー（純CSS＝rAF凍結の影響なし。reduced-motionで停止） === */
  /* 各要素を下から、ゆっくり・順にずらして立ち上げる（印象重視の4段階：eyebrow→大英字→和文→CTA） */
  @keyframes fxHasegawaRise{from{opacity:0;transform:translateY(44px);}to{opacity:1;transform:none;}}
  .hero__title .en__l{display:block;}/* Beside / Your Money を各行ブロック化して個別に動かす */
  .hero__eyebrow,
  .hero__title .en__l,
  .hero__title .jp,
  .hero__cta{animation:fxHasegawaRise 1.25s var(--ease) both;}
  .hero__eyebrow{animation-delay:.25s;}
  .hero__title .en__l:nth-child(1){animation-delay:.7s;}/* Beside */
  .hero__title .en__l:nth-child(2){animation-delay:1.15s;}/* Your Money */
  .hero__title .jp{animation-delay:1.6s;}
  .hero__cta{animation-delay:2.05s;}
  @keyframes fxHasegawaCue{0%,100%{opacity:.55;}50%{opacity:1;}}
  /* スクロールキューは文字の立ち上がりが済んでから、ふわっと現れる */
  .hero__scroll{animation:fxHasegawaCueIn .9s var(--ease) 2.6s both,fxHasegawaCue 2.6s ease-in-out 3.5s infinite;}
  @keyframes fxHasegawaCueIn{from{opacity:0;}to{opacity:.55;}}

  /* === responsive === */
  @media (max-width:980px){
    /* --- モバイルメニュー：バーガー表示＋navを全画面パネル化 --- */
    .ws-hasegawa-menubtn{display:flex;}
    .brand,a.nav__cta,.ws-hasegawa-menubtn{position:relative;z-index:2;}/* パネルより上に出す */
    a.nav__cta{margin-left:auto;}
    /* 閉状態は遷移なし（ブレイクポイント跨ぎリサイズ時のフラッシュ防止）。開く時だけアニメ */
    .nav{position:fixed;inset:0;z-index:1;margin-left:0;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;background:var(--bg);padding:104px var(--gutter) 44px;overflow-y:auto;counter-reset:wsmnav;visibility:hidden;opacity:0;transform:translateY(-12px);pointer-events:none;}
    .nav.ws-hasegawa-open{visibility:visible;opacity:1;transform:none;pointer-events:auto;transition:opacity .35s var(--ease),transform .35s var(--ease);}
    /* backdrop-filterはfixed子要素の基準を自要素の枠に変える(containing block化)ため、
       solid状態でパネルを開くと全画面のはずのパネルがヘッダー枠(74px)に閉じ込められる。展開中だけ無効化 */
    header.ws-hasegawa-menu-open{backdrop-filter:none;}
    header.ws-hasegawa-menu-open .brand__name{color:var(--ink);text-shadow:none;}
    .nav a:not(.ws-hasegawa-mnav-cta){display:flex;align-items:center;gap:16px;counter-increment:wsmnav;font-size:20px;font-weight:700;letter-spacing:.02em;color:var(--ink);padding:19px 2px;border-bottom:1px solid var(--line);}
    .nav a:not(.ws-hasegawa-mnav-cta)::before{content:"0" counter(wsmnav);font-family:var(--en);font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--green-deep);}
    header.hero-top .nav a{color:var(--ink);text-shadow:none;}
    header.hero-top .nav a:hover{opacity:1;color:var(--green-deep);}
    .nav a:hover{color:var(--green-deep);}
    .nav a[aria-current="page"]:not(.ws-hasegawa-mnav-cta){color:var(--green-cta);}/* パネル内でも現在地を点灯(AA配色) */
    .nav .ws-hasegawa-mnav-cta{display:inline-flex;margin-top:30px;width:100%;}
    .hero__title .en{white-space:normal;font-size:clamp(46px,12.5vw,92px);line-height:1.02;}
    .srow{grid-template-columns:1fr;gap:22px;}
    .ws-hasegawa-sindex__row{grid-template-columns:56px 1fr;row-gap:6px;}
    .ws-hasegawa-sindex__p{grid-column:2;}
    .company__grid{grid-template-columns:1fr;}
    .company__portrait{max-width:320px;}
    .about-profile{grid-template-columns:1fr;}
    .about-profile__pic{max-width:420px;}
    .about-approach{grid-template-columns:1fr;}
    .price__body{grid-template-columns:1fr;gap:30px;}
    .price__pic{max-width:520px;}
    .foot__grid{grid-template-columns:1fr;gap:36px;}
    .hero__news{max-width:min(70vw,360px);}
    .hero__scroll{display:none;}
  }
  @media (max-width:560px){
    .ws-hasegawa-sindex__row{grid-template-columns:44px 1fr;padding:20px 0;}
    .ws-hasegawa-sindex__no{font-size:22px;line-height:1.56;}/* 22px時に番号天を本文天へ合わせる実測lh */
    .ws-hasegawa-tline__step{grid-template-columns:40px 1fr;gap:0 16px;}
    .ws-hasegawa-tline__no{width:40px;height:40px;font-size:15px;}
    .ws-hasegawa-tline__step::before{left:19px;top:44px;}
    .ws-hasegawa-tline__body h3{padding-top:8px;font-size:15.5px;}
    .price__cards{grid-template-columns:1fr;}
    .about-expertise__row{grid-template-columns:42px 1fr;gap:8px 16px;padding:24px 0;}
    .about-expertise__row p{grid-column:2;}
    .about-career__item{grid-template-columns:1fr;gap:8px;}
    .about-credentials{grid-template-columns:1fr;}
    .about-credentials li:nth-child(odd),.about-credentials li:nth-child(even){padding:18px 0;border-left:0;}
    .about-cta{grid-template-columns:1fr;align-items:start;}
    .foot__cols{grid-template-columns:1fr 1fr;}
    .foot__cols a{padding:10px 0;}/* モバイルのタップ領域を44px級に */
    .contact__actions{flex-direction:column;align-items:stretch;}
    .ws-hasegawa-form__grid{grid-template-columns:1fr;}
    .ws-hasegawa-form__wide{grid-column:auto;}
    .sec-head{flex-direction:column;align-items:flex-start;gap:18px;}
    /* スマホでブランド名が2行に折り返す不具合を修正（1行固定＋間隔・文字サイズ調整） */
    .head{gap:12px;}
    .brand__name{font-size:18px;white-space:nowrap;}
    /* 最小幅ではヘッダーCTAをメニュー内へ集約（バー＝ブランド＋バーガーのみ。FVのLINE CTAは常時可視） */
    a.nav__cta{display:none;}
    .ws-hasegawa-menubtn{margin-left:auto;}
  }
  /* 大画面（1600px以上）：--maxw 1200px 固定だと 1920/2560px で左右余白が肥大化するため、画面幅に緩やかに追従させる。1600px未満は不変。 */
  @media (min-width:1600px){
    :root{ --maxw: clamp(1200px, 78vw, 1560px); }
  }
  @media (prefers-reduced-motion:reduce){
    .rv{opacity:1;transform:none;transition:none;}
    html{scroll-behavior:auto;}
    /* reveal以外の hover/ヘッダー transition も停止する */
    .cta,header,.arrow-link .circ{transition:none;}
    .faq__item::details-content,.faq__sign::before{transition:none;}
    /* reduce時に残る疑似要素transition・hover transformも停止 */
    .cta::after,a.nav__cta,.ws-hasegawa-mail{transition:none;}
    .cta:hover,.cta:hover::after,a.nav__cta:hover{transform:none;}
    /* Strength番号の点灯・Flow接続線の伸長も停止（終着状態で即表示） */
    .ws-hasegawa-sindex__no,.ws-hasegawa-tline__step::before{transition:none;}
    /* モバイルメニュー・ヒーロー登場アニメも停止（即時表示） */
    .nav,.nav.ws-hasegawa-open,.ws-hasegawa-menubtn__lines::before,.ws-hasegawa-menubtn__lines::after,.ws-hasegawa-skip{transition:none;}
    .hero__inner>*,.hero__title .en__l,.hero__title .jp,.hero__scroll{animation:none;}
  }

  /* === a11y改善（Codexレビュー反映：配色・文言・レイアウトの見た目は変えない範囲） === */
  /* 固定ヘッダー分アンカー着地位置を補正（#faq/#contact 等の見出しがヘッダー裏に隠れるのを防止） */
  #service,#company,#price,#flow,#faq,#contact,#main,#strength,#souzoku,#iryou,#houjin,#cost,#profile,#career,#qualifications,#approach{scroll-margin-top:90px;}
  /* キーボード操作時のみフォーカスリングを明示（マウス操作時は非表示・見た目不変） */
  a:focus-visible,summary:focus-visible{outline:3px solid var(--green-deep);outline-offset:3px;}
  /* メール導線のタップ領域を44px級に確保 */
  .ws-hasegawa-mail{padding-top:8px;padding-bottom:8px;}
  /* iOS Safari 等のアドレスバー変動対策（対応ブラウザのみ svh を使用・非対応は従来の 100vh） */
  @supports (height:100svh){
    .hero{height:100svh;}
    .content{margin-top:100svh;}
  }
  /* タッチ端末ではフッターリンクのタップ領域を拡大 */
  @media (pointer:coarse){
    .foot__cols a{padding:10px 0;}
  }
