/* ===== 基本設定・共通部品（Mobile First） ===== */
:root{--ink:#15191d;--gray:#555b5e;--gray-dark:#454a4d;--gray-light:#eef0f0;--blue:#185cff;--sky:#a9d6ff;--lime:#d8ff38;--white:#fff;--line:#cfd7dc;--content:72rem}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font-family:Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;line-height:1.75;overflow-wrap:anywhere}
img{display:block;width:100%;height:auto}a{color:inherit;text-decoration:none}h1,h2,h3,p,figure{margin-block-start:0}em{color:var(--blue);font-style:normal}
.sp-only{display:inline}.pc-only{display:none}.section{padding:5rem max(1.25rem,5vw)}.section-label{margin-bottom:1rem;color:var(--blue);font-size:.72rem;font-weight:800;letter-spacing:.2em}.section-label--light{color:#dfe4e5}
.button{display:inline-flex;min-height:3.25rem;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.35rem;border-radius:999px;font-weight:800;transition:transform .2s ease,filter .2s ease}.button:hover{transform:translateY(-2px);filter:brightness(1.05)}.button:active{transform:translateY(1px)}.button:focus-visible,a:focus-visible{outline:3px solid var(--lime);outline-offset:3px}.button--blue{background:var(--blue);color:#fff}.button--light{background:#fff;color:var(--gray-dark)}

/* ===== ヘッダー ===== */
.site-header{display:flex;min-height:4.5rem;align-items:center;gap:1rem;padding:.75rem 1.25rem;border-bottom:1px solid #e5e8ea;background:#fff}.brand{display:flex;min-height:2.75rem;align-items:center;gap:.6rem;font-size:.72rem;line-height:1.15}.brand__mark{display:grid;width:2.2rem;aspect-ratio:1;place-items:center;border-radius:50%;background:var(--blue);color:#fff;font:700 1.2rem Georgia}.brand strong{display:block}.global-nav{display:none}.header-cta{display:flex;min-height:2.75rem;align-items:center;gap:.7rem;margin-left:auto;padding:.6rem 1rem;border-radius:999px;background:var(--gray-dark);color:#fff;font-size:.78rem;font-weight:700}

/* ===== メインビジュアル ===== */
.hero{position:relative;background:var(--sky)}.hero__grid{position:absolute;inset:0;background-image:linear-gradient(#15191d12 1px,transparent 1px),linear-gradient(90deg,#15191d12 1px,transparent 1px);background-size:5rem 5rem;pointer-events:none}.hero__copy{position:relative;z-index:2;padding:4rem 1.25rem 2.5rem}.eyebrow{display:flex;align-items:center;gap:.65rem;font-size:.7rem;font-weight:800;letter-spacing:.18em}.eyebrow::before{width:1.75rem;height:.18rem;background:var(--blue);content:""}.hero h1{margin:1.5rem 0;font-size:clamp(3.2rem,15vw,6.5rem);line-height:1;letter-spacing:-.07em}.lead{font-weight:700}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:2rem}.text-link{display:inline-flex;min-height:2.75rem;align-items:center;border-bottom:1px solid;font-size:.8rem;font-weight:700}.hero__visual{position:relative;z-index:1;margin:0}.hero__accent{position:absolute;z-index:-1;top:-2rem;left:-2rem;width:10rem;aspect-ratio:1;border-radius:50%;background:var(--lime)}.hero__visual img{height:22rem;object-fit:cover}.hero__visual figcaption{position:absolute;left:1.25rem;bottom:1rem;display:grid;padding:1rem 1.25rem;background:#fff;box-shadow:0 1rem 2rem #26343f33}.hero__visual strong{color:var(--blue);font-size:2.2rem;line-height:1.2}.hero__visual sup{font-size:.8rem}.hero__scroll{display:none}

/* ===== 各コンテンツ ===== */
.intro{text-align:center}.intro h2,.partner h2,.reasons h2,.contact h2{font-size:clamp(2rem,8vw,4.3rem);line-height:1.25;letter-spacing:-.045em}.section--gray{background:var(--gray);color:#fff}.section-heading{max-width:var(--content);margin:auto}.section-heading>p:last-child{color:#e0e4e5}.card-grid{display:grid;gap:1px;max-width:var(--content);margin:2.5rem auto 0;background:#747a7d}.service-card{min-height:14rem;padding:1.5rem;background:var(--gray-dark);transition:background .2s,transform .2s}.service-card:hover{background:#646a6d;transform:translateY(-.2rem)}.service-card small,.free-grid small,.reason-list small{color:var(--lime);font-weight:800}.service-card h3{margin-top:2.5rem}.service-card p{color:#e2e5e6;font-size:.88rem}
.partner{display:grid}.partner figure{margin:0}.partner figure img{height:24rem;object-fit:cover}.partner>article{padding:5rem 1.25rem}.partner ul{padding:0;list-style:none;border-top:1px solid var(--line)}.partner li{padding:1rem 0;border-bottom:1px solid var(--line);font-weight:700}
.free-band{padding:4rem 1.25rem;background:var(--blue);color:#fff;text-align:center}.free-band h2{font-size:clamp(1.6rem,7vw,3.3rem)}.free-band h2 em{color:var(--lime)}.free-grid{display:grid;max-width:56rem;margin:2.5rem auto 0;border-top:1px solid #ffffff66}.free-grid article{padding:1.5rem;border-bottom:1px solid #ffffff66}.free-grid h3,.free-grid p{margin-bottom:.2rem}
.reasons{display:grid;gap:2rem;background:#eef7ff}.reason-list article{padding:1.5rem 0;border-top:1px solid #b9cce0}.reason-list article:last-child{border-bottom:1px solid #b9cce0}.reason-list small{color:var(--blue)}.reason-list h3{font-size:1.35rem}.contact{text-align:center}.contact>p:not(.section-label){color:#e1e5e6}.contact .button{max-width:36rem;margin:1.5rem auto .8rem}.contact>small{display:block;color:#dfe3e4}.site-footer{display:grid;gap:1rem;justify-items:center;padding:3rem 1.25rem;text-align:center}.site-footer p{color:#687176}

/* ===== タブレット・横向き ===== */
@media (min-width:40rem),(orientation:landscape) and (min-width:48rem){.sp-only{display:none}.pc-only{display:inline}.card-grid{grid-template-columns:repeat(2,1fr)}.free-grid{grid-template-columns:repeat(3,1fr)}.free-grid article{border-right:1px solid #ffffff66}.partner{grid-template-columns:1fr 1fr}.partner figure img{height:100%}.reasons{grid-template-columns:minmax(15rem,2fr) 3fr}}

/* ===== PC ===== */
@media (min-width:64rem){
  .site-header{padding-inline:5vw}
  .global-nav{display:flex;gap:1.75rem;margin-left:auto}
  .global-nav a{display:flex;min-height:2.75rem;align-items:center;font-size:.82rem;font-weight:700}
  .header-cta{margin-left:1rem}

  /* 元デザインのファーストビュー */
  .hero{
    display:grid;
    min-height:48rem;
    grid-template-columns:50% 50%;
    overflow:hidden;
  }
  .hero__copy{
    z-index:1;
    align-self:center;
    padding:4rem 4.8vw 7rem;
  }
  .hero h1{
    max-width:43rem;
    margin:1.7rem 0 1.8rem;
    font-size:clamp(5rem,6vw,7rem);
    line-height:.92;
  }
  .hero .lead{
    font-size:1rem;
    letter-spacing:.03em;
  }
  .hero .actions{
    margin-top:2rem;
    gap:1.2rem;
  }
  .hero__visual{
    align-self:stretch;
    min-height:48rem;
    overflow:visible;
  }
  .hero__visual img{
    position:absolute;
    inset:3.5rem 0 3.5rem .5rem;
    width:calc(100% - .5rem);
    height:calc(100% - 7rem);
    min-height:0;
    border-radius:15rem 0 0 15rem;
    object-fit:cover;
    object-position:center;
  }
  .hero__visual figcaption{
    z-index:3;
    left:-2.4rem;
    bottom:5.8rem;
    min-width:12rem;
    padding:1.25rem;
  }
  .hero__visual strong{font-size:2.4rem}
  .hero__accent{
    top:2.4rem;
    left:-3.5rem;
    width:11.5rem;
  }
  .hero__scroll{
    position:absolute;
    z-index:3;
    bottom:2rem;
    left:4.8vw;
    display:block;
    font-size:.63rem;
    font-weight:800;
    letter-spacing:.2em;
  }

  .section-heading{display:grid;grid-template-columns:1fr auto;align-items:end}
  .section-heading .section-label{grid-column:1/-1}
  .section-heading h2{font-size:3.5rem}
  .card-grid{grid-template-columns:repeat(4,1fr)}
  .partner>article{padding:7rem 6vw}
  .free-grid article{border-bottom:0}
  .reasons{padding-block:7rem}
  .site-footer{grid-template-columns:1fr 1fr 1fr;justify-items:stretch;text-align:left}
  .site-footer small{text-align:right}
}

/* ===== 追加コンポーネント・表示制御 ===== */
.portrait-only{display:inline}
.hero h1 em{display:inline-block;white-space:nowrap}
.professional-message{margin:1.25rem 0;padding-left:1rem;border-left:.25rem solid var(--blue);font-weight:800}
.partner li{position:relative;padding-left:1.75rem}
.partner li::before{position:absolute;top:1.62rem;left:.25rem;width:.48rem;aspect-ratio:1;border-radius:50%;background:var(--blue);box-shadow:0 0 0 .28rem #185cff18;content:""}
.consultant-card{display:grid;gap:.2rem;margin-top:1.5rem;padding:1.25rem;border:1px solid var(--line);border-left:.3rem solid var(--blue);background:#f7fafc;font-style:normal}
.consultant-card strong{margin-bottom:.35rem}.consultant-card a{display:flex;min-height:2.75rem;align-items:center;width:max-content;max-width:100%;font-weight:700;transition:color .2s}.consultant-card a:hover{color:var(--blue)}
.contact-button{width:min(100%,39rem);padding:1rem 1.6rem;font-size:clamp(.85rem,2.7vw,1rem);text-align:left}
.contact-button__prefix{display:block;margin-bottom:.1rem;color:var(--blue);font-size:.75em;letter-spacing:.16em}
.button--light:hover,.button--light:focus-visible{background:var(--lime);color:var(--ink);filter:none;box-shadow:0 0 0 .35rem #d8ff3830,0 1rem 2.5rem #1115}
.button--light:hover .contact-button__prefix,.button--light:focus-visible .contact-button__prefix{color:var(--ink)}
@media (orientation:landscape),(min-width:64rem){.portrait-only{display:none}}

/* ===== 今回のレイアウト調整 ===== */
.hero__second-line{display:inline-block;white-space:nowrap}
.hero__promise{position:relative;z-index:2;margin:0;padding:1rem 1.15rem;border-left:.25rem solid var(--blue);background:#fff;font-size:.82rem;font-weight:800;box-shadow:0 .8rem 2rem #26343f20}
.contact-details{position:relative;z-index:3;padding:0 1.25rem 3rem;background:#fff}
.contact-details .consultant-card{width:min(100%,36rem);margin:-1.5rem auto 0;box-shadow:0 1rem 2.5rem #1112}
.contact-button{width:min(100%,39rem);text-align:center}
.contact-button>span:first-child{display:grid;flex:1;gap:.25rem;font-size:clamp(1rem,2.8vw,1.16rem);font-weight:900;line-height:1.45;letter-spacing:.02em}
.contact-button__prefix{position:relative;display:inline-block;width:max-content;margin:0 auto;padding:0 .7rem .15rem;color:var(--blue);font-size:1em;font-weight:900;letter-spacing:.14em}
.contact-button__prefix::after{position:absolute;right:0;bottom:0;left:0;height:.16rem;border-radius:999px;background:var(--blue);content:""}
.contact-button>span[aria-hidden="true"]{font-size:1.35rem;font-weight:900}
.header-cta{transition:background .2s,color .2s,transform .2s}
.header-cta:hover{background:var(--lime);color:var(--ink);transform:translateY(-2px)}
.button--blue:hover{background:var(--lime);color:var(--ink);filter:none}
.text-link,.global-nav a{transition:color .2s,transform .2s}
.text-link:hover,.global-nav a:hover{color:var(--blue);transform:translateY(-1px)}
@media (max-width:63.99rem) and (orientation:portrait){
  .hero h1{font-size:clamp(2.65rem,12.5vw,5.1rem)}
  .intro h2{font-size:clamp(1.75rem,7.5vw,3.3rem)}
  .intro h2 span,.intro h2 em{white-space:nowrap}
}
@media (min-width:64rem){
  .hero__promise{position:absolute;right:2.5rem;top:5rem;max-width:22rem}
}

/* ===== ロゴ・ヒーロー情報カードの再設計 ===== */
.brand__logo{width:2.75rem;height:2.75rem;flex:0 0 auto;object-fit:contain}
.hero__cards{position:relative;z-index:4;display:grid;gap:.75rem;padding:1rem 1.25rem 2rem;background:var(--sky)}
.hero__stats,.hero__promise{display:grid;margin:0;padding:1rem 1.15rem;border:0;border-top:.22rem solid var(--blue);background:#fff;box-shadow:0 .75rem 1.8rem #26343f1c}
.hero__stats small{color:#4b555d}.hero__stats strong{color:var(--blue);font-size:2rem;line-height:1.2}.hero__stats sup{font-size:.7rem}.hero__stats span,.hero__promise{font-size:.78rem}.hero__promise{font-weight:800}
@media (max-width:63.99rem) and (orientation:portrait){
  .hero__cards{grid-template-columns:1fr 1fr}
  .hero__visual figcaption{display:none}
  .reasons .pc-only{display:none}
  .reasons h2{white-space:nowrap;font-size:clamp(1.8rem,7.4vw,3.25rem)}
}
@media (max-width:34rem) and (orientation:portrait){
  .hero__cards{grid-template-columns:1fr}
}
@media (min-width:64rem){
  .hero__cards{position:absolute;right:4vw;bottom:1.8rem;grid-template-columns:minmax(11rem,13rem) minmax(18rem,22rem);align-items:stretch;padding:0;background:transparent}
  .hero__promise{position:static;max-width:none}
}

/* ===== 担当コンサルタントカードの再設計 ===== */
.contact-details{padding:3.5rem 1.25rem 4rem;background:linear-gradient(180deg,#fff 0,#eef2f3 100%)}
.contact-details .consultant-card{position:relative;width:min(100%,48rem);margin:0 auto;padding:1.75rem;border:0;border-radius:1rem;background:var(--gray-dark);color:#fff;box-shadow:0 1.2rem 2.8rem #1113;overflow:hidden}
.contact-details .consultant-card::after{position:absolute;top:-2.5rem;right:-2rem;width:8rem;aspect-ratio:1;border-radius:50%;background:var(--lime);content:"";opacity:.9}
.contact-details .consultant-card strong{position:relative;z-index:1;color:#fff;font-size:clamp(1rem,3vw,1.2rem)}
.contact-details .consultant-card a{position:relative;z-index:1;width:100%;border-bottom:1px solid #ffffff35;color:#fff}
.contact-details .consultant-card a:hover{color:var(--lime)}

/* フッターの可読性 */
.site-footer p{color:#3f484f;font-weight:600}

/* ===== 画面方向別の最終サイズ調整 ===== */
/* 横向き・PC：サービス説明を見出し直下へ */
@media (orientation:landscape) and (min-width:40rem),(min-width:64rem){
  .section-heading{
    display:grid;
    grid-template-columns:1fr;
    justify-items:start;
    align-items:start;
  }
  .section-heading .section-label{grid-column:1}
  .section-heading>p:last-child{
    margin:.35rem 0 0;
    white-space:nowrap;
    color:#f1f3f3;
  }
}

/* ファーストビューのメイン相談ボタン */
.hero .button--blue{
  min-width:min(100%,17.5rem);
  min-height:3.8rem;
  padding:1rem 1.55rem;
  font-size:1rem;
  box-shadow:0 .8rem 1.8rem #185cff2b;
}

/* 実績・メッセージカードの角丸 */
.hero__stats,.hero__promise{
  border-radius:.85rem;
  overflow:hidden;
}

/* 縦向き：ライム円を写真の右上へ */
@media (max-width:63.99rem) and (orientation:portrait){
  .hero__accent{
    right:-1.75rem;
    left:auto;
    width:10rem;
  }
}

/* ヘッダー・フッターロゴをサイズアップ */
.brand__logo{
  width:3.5rem;
  height:3.5rem;
}
.brand{
  gap:.75rem;
  font-size:.8rem;
}
.site-footer{
  min-height:9rem;
  align-items:center;
  padding:3.5rem max(1.5rem,5vw);
}
.site-footer .brand__logo{
  width:4.25rem;
  height:4.25rem;
}
.site-footer .brand{
  font-size:.88rem;
}
.site-footer p{
  justify-self:center;
  margin:0;
  color:#27313a;
  font-size:clamp(1rem,1.6vw,1.2rem);
  font-weight:800;
  text-align:center;
  letter-spacing:.03em;
}

/* ===== 動きを減らす設定 ===== */
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* ===== 問い合わせフォーム ===== */
[hidden]{display:none!important}
.service-card__note{display:inline-block;margin-left:.35rem;padding:.1rem .45rem;border:1px solid var(--lime);border-radius:999px;color:var(--lime);font-size:.68rem;vertical-align:middle}
.inquiry{background:linear-gradient(180deg,#f5fbff 0%,#fff 100%)}
.inquiry__heading{max-width:52rem;margin:0 auto 2rem;text-align:center}
.inquiry__heading h2{margin-bottom:.75rem;font-size:clamp(2rem,7vw,3.8rem);line-height:1.2;letter-spacing:-.04em}
.inquiry__heading>p:last-child{color:#56636d}
.inquiry-form{display:grid;gap:1.25rem;max-width:58rem;margin:auto}
.inquiry-form fieldset{display:grid;gap:1rem;margin:0;padding:1.35rem;border:1px solid #d6e0e6;border-radius:1rem;background:#fff;box-shadow:0 .7rem 2rem #1b3b5510}
.inquiry-form legend{padding:0 .5rem;color:var(--ink);font-size:1.05rem;font-weight:900}
.form-grid{display:grid;gap:1rem}.choice-grid{display:grid;gap:.65rem}.form-grid--three{margin-top:.5rem}
.field{display:grid;gap:.45rem}.field>span:first-child{font-size:.85rem;font-weight:800}
.field input,.field select,.field textarea{width:100%;min-height:3rem;padding:.75rem .85rem;border:1px solid #bfcbd3;border-radius:.55rem;background:#fff;color:var(--ink);font:inherit;transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:7rem;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);outline:0;box-shadow:0 0 0 .23rem #185cff18}
.choice{display:flex;min-height:2.75rem;align-items:center;gap:.65rem;padding:.6rem .75rem;border:1px solid #d4dde3;border-radius:.6rem;background:#f9fbfc;font-weight:700;cursor:pointer;transition:border-color .2s,background .2s}
.choice:hover{border-color:var(--blue);background:#eef5ff}.choice input{width:1.15rem;height:1.15rem;accent-color:var(--blue)}
.unit-input{display:flex;align-items:center;gap:.55rem}.unit-input input{min-width:0}.unit-input b{flex:0 0 auto;font-size:.88rem}
.field--conditional{padding:1rem;border-left:.25rem solid var(--blue);border-radius:.5rem;background:#f4f8ff}
.form-note{margin:0;color:#68757e;font-size:.8rem;text-align:center}
.form-submit{width:min(100%,28rem);margin:.5rem auto 0;border:0;background:var(--blue);color:#fff;font-size:1rem;cursor:pointer;box-shadow:0 .8rem 2rem #185cff30}
.form-submit:hover,.form-submit:focus-visible{background:var(--lime);color:var(--ink);filter:none}
@media (max-width:63.99rem) and (orientation:portrait){.intro h2 em{white-space:normal}}
@media (max-width:63.99rem) and (orientation:portrait){.intro h2 span:last-child{white-space:normal}}
@media (min-width:40rem){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.inquiry-form fieldset{padding:1.75rem}}

/* ===== 爽やかな水色テーマ・文字サイズ調整 ===== */
:root{--gray:#dceff8;--gray-dark:#eaf6fc;--gray-light:#f5fbfe;--line:#c7dce7}
.section--gray{background:linear-gradient(135deg,#d9eef8 0%,#eef9fd 100%);color:var(--ink)}
.section-label--light{color:var(--blue)}
.section-heading>p:last-child,.contact>p:not(.section-label){color:#405867}
.service-card{background:#f7fcff;color:var(--ink);box-shadow:inset 0 0 0 1px #c7dde8}
.service-card:hover{background:#e6f5fc}.service-card p{color:#3d5361;font-size:.96rem}.service-card small{color:var(--blue)}
.card-grid{gap:.7rem;background:transparent}
.contact .button--light{background:#fff;color:var(--ink);box-shadow:0 .8rem 2rem #3962781a}
.contact-details{background:linear-gradient(180deg,#f3fbff 0,#dff1f9 100%)}
.contact-details .consultant-card{background:#e6f4fb;color:var(--ink);box-shadow:0 1.2rem 2.8rem #39627820}
.contact-details .consultant-card strong,.contact-details .consultant-card a{color:var(--ink)}
.contact-details .consultant-card a{border-bottom-color:#8eb7cb55}.contact-details .consultant-card a:hover{color:var(--blue)}
.intro h2,.services h2,.partner h2,.free-band h2,.reasons h2,.contact h2,.inquiry h2{font-size:clamp(2rem,4.2vw,3.35rem);line-height:1.25}
.intro>p:last-child,.section-heading>p:last-child,.partner>article>p,.reason-list p,.free-grid p{font-size:1rem;line-height:1.9}
@media (max-width:63.99rem) and (orientation:portrait){.hero h1{font-size:clamp(2.65rem,11vw,4.4rem)}}
@media (min-width:64rem){.hero h1{font-size:clamp(4.2rem,5.3vw,6.1rem)}}

/* ===== フォーム確認画面 ===== */
.field--wide{margin:.5rem 0 1rem}.field--half{width:100%}
.form-grid--two{grid-template-columns:1fr}
.confirmation{max-width:58rem;margin:auto;padding:clamp(1.25rem,4vw,2.5rem);border:1px solid #bdd7e4;border-radius:1.2rem;background:#fff;box-shadow:0 1rem 3rem #27536c18}
.confirmation__heading{text-align:center}.confirmation__heading h3{margin-bottom:.6rem;font-size:clamp(1.5rem,4vw,2.2rem)}
.confirmation__list{display:grid;margin:2rem 0;border-top:1px solid #cbdde6}
.confirmation__list div{display:grid;gap:.35rem;padding:1rem 0;border-bottom:1px solid #cbdde6}
.confirmation__list dt{color:#486171;font-size:.82rem;font-weight:800}.confirmation__list dd{margin:0;font-weight:700;white-space:pre-wrap}
.confirmation__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;margin:1.5rem 0 0}.confirmation__back{border:1px solid #8aabba;background:#fff;color:var(--ink);cursor:pointer}.confirmation__send{border:0;background:var(--blue);color:#fff;cursor:pointer}.confirmation__back:hover{background:#e8f5fb}.confirmation__send:hover{background:var(--lime);color:var(--ink)}
.confirmation__message{min-height:1.75rem;margin:1rem 0;text-align:center;font-weight:800}.confirmation__message.is-error{color:#b42318}.confirmation__message.is-success{color:#087443}
@media (min-width:40rem){.form-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.field--half{width:50%}.confirmation__list div{grid-template-columns:minmax(11rem,14rem) 1fr;gap:1rem}}

/* ===== 透明感のあるパウダーブルー配色 ===== */
:root{
  --ink:#152b3b;
  --blue:#2468f2;
  --sky:#ccecff;
  --powder:#e7f6ff;
  --powder-strong:#b9e3fb;
  --lime:#d5ff35;
  --gray:#dff2fc;
  --gray-dark:#d7eef9;
  --gray-light:#f7fcff;
  --line:#b8d9e9;
}
body{color:var(--ink);font-size:1rem;line-height:1.75;background:#fff}
.hero{background:var(--sky)}
.section--gray{background:linear-gradient(135deg,#dff3fd 0%,#f5fcff 100%)}
.free-band{background:linear-gradient(135deg,#2177ec 0%,#55b6ed 100%)}
.contact-details{background:linear-gradient(180deg,#f8fdff 0%,#e2f4fc 100%)}

/* ===== 全クリックボタンの共通デザイン ===== */
.button,.header-cta,.form-submit,.confirmation__send,.confirmation__back{
  min-height:3.25rem;
  border:1px solid var(--blue);
  border-radius:999px;
  background:var(--blue);
  color:#fff;
  font-weight:800;
  box-shadow:0 .65rem 1.5rem rgba(36,104,242,.2);
  transition:background-color .22s,color .22s,border-color .22s,transform .22s,box-shadow .22s;
}
.button:hover,.button:focus-visible,.header-cta:hover,.header-cta:focus-visible,.form-submit:hover,.form-submit:focus-visible,.confirmation__send:hover,.confirmation__send:focus-visible,.confirmation__back:hover,.confirmation__back:focus-visible{
  border-color:var(--lime);
  background:var(--lime);
  color:var(--ink);
  filter:none;
  transform:translateY(-2px);
  box-shadow:0 .85rem 1.8rem rgba(46,111,181,.24);
}
.contact .button--light{background:var(--blue);color:#fff}
.hero .button--blue{font-size:1rem}

/* ===== 読みやすい文字サイズと改行 ===== */
.hero h1{font-size:clamp(3.15rem,5.1vw,5.25rem);line-height:1.03}
.intro h2,.services h2,.partner h2,.free-band h2,.reasons h2,.contact h2{font-size:clamp(2rem,3.2vw,3rem);line-height:1.3}
.intro h2{max-width:68rem;margin-right:auto;margin-left:auto}
.intro-line{display:block}
.intro h2 em{color:var(--blue)}
.intro>p:last-child,.section-heading>p:last-child,.partner>article>p,.reason-list p,.free-grid p{font-size:1rem;line-height:1.85}
.section-heading>p:last-child{color:#dff5ff}
.contact__notice{width:min(100%,52rem);margin:1.6rem auto;padding:1rem 1.25rem;border:1px solid #9dcfe7;border-radius:.8rem;background:rgba(255,255,255,.75);color:#274a5d!important;font-size:.95rem!important;font-weight:700;line-height:1.8}

/* 地域密着ラベルの視認性 */
.service-card__note{border-color:#3d83c8;background:#e5f5ff;color:#155a96;font-size:.76rem;font-weight:900}

/* ===== 相談フォーム専用ページ ===== */
.form-page{background:linear-gradient(180deg,#eef9ff 0%,#fff 42%)}
.form-page__header{border-bottom:1px solid #c8e3f0;background:rgba(255,255,255,.94)}
.form-page__back{display:inline-flex;min-height:2.75rem;align-items:center;color:#245272;font-size:.9rem;font-weight:800}
.form-page .inquiry{min-height:calc(100vh - 8rem);padding-top:clamp(3rem,7vw,5rem)}
.inquiry__heading h1{margin-bottom:.75rem;font-size:clamp(2rem,4.5vw,3.25rem);line-height:1.25}
.inquiry-form fieldset{border-color:#c5e0ec;background:rgba(255,255,255,.94)}
.choice{border-color:#c5dce7;background:#f7fcff}.choice:hover{background:#e5f5ff}
.field input,.field select,.field textarea{border-color:#a9c8d8;background:#fbfeff}
.field--message{width:100%}
.field--message textarea{min-height:4rem;max-height:8rem}
.field--email{width:100%;max-width:42rem}
.form-privacy{margin:0;color:#4b6878;font-size:.9rem;text-align:center}
.form-page__footer{padding:2rem;text-align:center;color:#526f80}

@media (max-width:63.99rem) and (orientation:portrait){
  .hero h1{font-size:clamp(2.7rem,11vw,4rem)}
  .intro h2{font-size:clamp(1.75rem,6.5vw,2.4rem)}
  .intro-line{white-space:normal}
  .contact__notice br.sp-only{display:block}
}
@media (min-width:64rem){
  .intro-line:first-child{white-space:nowrap}
  .intro-line:nth-child(2),.intro-line:nth-child(3){display:inline}
  .intro-line:nth-child(2)::after{content:""}
}

/* ===== 2026-08 透明感・クロスブラウザ・レスポンシブ最終調整 ===== */
html{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  color-scheme:light;
}
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 88% 7%,rgba(255,255,255,.95) 0 5rem,transparent 16rem),
    linear-gradient(180deg,#f8fdff 0%,#ffffff 36%,#f2fbff 100%);
  color:#123047;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
  font-feature-settings:"palt" 1;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
main,header,footer,section,article,aside,nav,figure,.hero__copy,.hero__visual,.partner>*{min-width:0;max-width:100%}
img,video,iframe,svg{max-width:100%}
.section{width:100%;padding-inline:clamp(1rem,5vw,5rem)}

/* 水と光を感じる明るい面 */
.site-header{background:rgba(255,255,255,.92);border-bottom-color:#cae7f5;box-shadow:0 .4rem 1.8rem rgba(29,112,158,.08);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.hero{background:linear-gradient(135deg,#c7eaff 0%,#a9ddfb 52%,#e7f8ff 100%)}
.hero::after{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.42),transparent 32%,rgba(255,255,255,.18) 58%,transparent 72%);content:""}
.hero__copy,.hero__visual,.hero__cards,.hero__scroll{z-index:2}
.section--gray{background:linear-gradient(140deg,#d9f1fc 0%,#f5fcff 52%,#e6f7ff 100%)}
.contact{background:linear-gradient(140deg,#d7f1fc 0%,#f4fbff 56%,#e0f4ff 100%)}

/* ボタンは全て「青 → ライムグリーン」に統一 */
.site-header .header-cta,
.hero .button--blue,
.contact .contact-button,
.inquiry .form-submit,
.confirmation .confirmation__send,
.confirmation .confirmation__back{
  border:1px solid #1764ee;
  background:#1764ee;
  color:#fff;
  box-shadow:0 .7rem 1.5rem rgba(23,100,238,.22);
}
.contact .contact-button .contact-button__prefix{color:#fff}
.contact .contact-button .contact-button__prefix::after{background:rgba(255,255,255,.82)}
@media (hover:hover) and (pointer:fine){
  .site-header .header-cta:hover,
  .hero .button--blue:hover,
  .contact .contact-button:hover,
  .inquiry .form-submit:hover,
  .confirmation .confirmation__send:hover,
  .confirmation .confirmation__back:hover{
    border-color:#cfff32;
    background:#cfff32;
    color:#123047;
    transform:translateY(-2px);
    box-shadow:0 .9rem 2rem rgba(49,114,153,.23);
  }
  .contact .contact-button:hover .contact-button__prefix{color:#123047}
  .contact .contact-button:hover .contact-button__prefix::after{background:#123047}
}

/* 地域密着ラベルを淡色面でも明瞭に */
.service-card__note{
  border:1px solid #1764b8;
  background:#d8f1ff;
  color:#0d4e84;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.8);
  font-size:.78rem;
  font-weight:900;
}

/* 個人情報不要の案内を重要情報として強調 */
.contact__notice{
  position:relative;
  width:min(100%,54rem);
  padding:1.15rem clamp(1rem,3vw,1.7rem) 1.15rem clamp(3rem,6vw,4.25rem);
  border:1px solid #68b7df;
  border-radius:1rem;
  background:rgba(255,255,255,.9);
  color:#123f5d!important;
  box-shadow:0 .9rem 2.2rem rgba(45,128,169,.13);
  font-size:clamp(.9rem,1.5vw,1.02rem)!important;
  font-weight:800;
  line-height:1.8;
  text-align:left;
}
.contact__notice::before{position:absolute;top:50%;left:clamp(1rem,3vw,1.55rem);display:grid;width:1.75rem;aspect-ratio:1;place-items:center;border-radius:50%;background:#1764ee;color:#fff;content:"i";font-family:Georgia,serif;font-weight:900;transform:translateY(-50%)}

/* スマホを基準にした収まり */
@media (max-width:39.99rem){
  .site-header{gap:.4rem;padding:.55rem .75rem}
  .brand{gap:.35rem;font-size:.66rem}.brand__logo{width:2.65rem;height:2.65rem}
  .header-cta{flex:0 0 auto;max-width:8.5rem;padding:.55rem .75rem;white-space:nowrap}
  .hero__copy{padding-inline:1rem}
  .hero h1{font-size:clamp(2.55rem,12vw,3.65rem);overflow-wrap:normal;word-break:keep-all}
  .actions{align-items:stretch}.actions .button{width:100%;min-width:0}.text-link{align-self:center}
  .hero__cards{padding-inline:1rem}
  .intro h2{font-size:clamp(1.65rem,7vw,2.15rem);word-break:auto;overflow-wrap:break-word}
  .intro-line{white-space:normal}
  .contact-button{width:100%;max-width:100%;padding-inline:1rem}
  .contact-button>span:first-child{font-size:.92rem;overflow-wrap:anywhere}
  .contact__notice{padding-left:3rem}
  .inquiry-form fieldset{min-width:0;padding:1rem}.unit-input{flex-wrap:wrap}.unit-input input{flex:1 1 8rem}
  .site-footer{grid-template-columns:1fr;justify-items:center;text-align:center}
}

/* タブレット縦向き：横方向のはみ出しを抑えつつ写真を活かす */
@media (min-width:40rem) and (max-width:63.99rem) and (orientation:portrait){
  .section{padding-inline:clamp(1.5rem,5vw,3rem)}
  .hero h1{font-size:clamp(3.6rem,9vw,5rem)}
  .hero__cards{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)}
  .partner{grid-template-columns:1fr}.partner figure,.partner article{width:100%}
}

/* 横向きタブレットとPC */
@media (min-width:64rem){
  .hero__visual img{object-position:center 55%}
  .partner figure img{object-position:center 52%}
  .intro h2{font-size:clamp(2.3rem,3vw,3rem)}
}

@supports (overflow:clip){html,body{overflow-x:clip}}

/* ===== 2026-08 prism refresh final ===== */
:root{
  --ink:#123047;
  --text:#28475a;
  --blue:#2a93d5;
  --blue-deep:#135589;
  --aqua:#3ddad7;
  --mint:#aed9da;
  --glass:#edfafc;
  --lime:#d7ff4f;
  --line:#b8dfe8;
  --content:72rem;
}

body{
  background:
    linear-gradient(115deg,rgba(61,218,215,.16),transparent 28%),
    linear-gradient(245deg,rgba(42,147,213,.12),transparent 34%),
    linear-gradient(180deg,#fbffff 0%,#ffffff 42%,#effbfe 100%);
  color:var(--ink);
  font-family:"Yu Gothic","Yu Gothic UI","游ゴシック体","YuGothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  letter-spacing:0;
}

h1,h2{
  font-family:"Yu Gothic","Yu Gothic UI","游ゴシック体","YuGothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  font-weight:800;
  letter-spacing:0;
}

h3,.brand,.button,.header-cta,.section-label{
  font-family:"Yu Gothic","Yu Gothic UI","游ゴシック体","YuGothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  letter-spacing:0;
}

.site-header{
  min-height:5.25rem;
  border-bottom-color:rgba(174,217,218,.55);
  background:rgba(255,255,255,.9);
}

.brand{
  gap:.85rem;
  font-size:clamp(.95rem,1.45vw,1.25rem);
  font-weight:800;
  line-height:1.08;
  color:var(--blue-deep);
}

.brand__logo{
  width:clamp(3.4rem,5vw,4.5rem);
  height:clamp(3.4rem,5vw,4.5rem);
}

.brand span{
  display:block;
  min-width:max-content;
  text-transform:uppercase;
}

.brand strong{
  color:var(--ink);
  font-size:1.12em;
  letter-spacing:.02em;
}

.global-nav a,.header-cta,.text-link{
  font-size:.9rem;
}

.hero{
  background:
    linear-gradient(130deg,rgba(237,250,252,.92) 0%,rgba(174,217,218,.72) 42%,rgba(61,218,215,.4) 100%);
}

.hero::after{
  background:
    linear-gradient(112deg,rgba(255,255,255,.62),transparent 28%,rgba(61,218,215,.18) 46%,rgba(255,255,255,.38) 62%,transparent 78%);
}

.hero h1{
  max-width:38rem;
  margin:1.45rem 0 1.55rem;
  font-size:clamp(2.7rem,5.2vw,5.35rem);
  line-height:1.14;
  letter-spacing:0;
  word-break:keep-all;
}

.hero__second-line,.hero h1 em{
  white-space:normal;
}

.lead{
  max-width:34rem;
  color:var(--text);
  font-size:clamp(1rem,1.4vw,1.15rem);
  line-height:1.9;
  font-weight:700;
}

.section-label{
  color:var(--blue);
  font-size:.78rem;
  letter-spacing:.22em;
}

.section--gray,.contact{
  background:
    linear-gradient(118deg,rgba(237,250,252,.96),rgba(174,217,218,.38) 50%,rgba(61,218,215,.16)),
    linear-gradient(180deg,#ffffff 0%,#f2fcff 100%);
  color:var(--ink);
}

.free-band{
  background:
    linear-gradient(120deg,#135589 0%,#2a93d5 46%,#3ddad7 100%);
}

.service-card{
  border:1px solid rgba(174,217,218,.8);
  border-radius:1rem;
  background:rgba(255,255,255,.86);
  box-shadow:0 1rem 2.4rem rgba(19,85,137,.08);
}

.card-grid{
  gap:1rem;
}

.partner{
  align-items:center;
  background:#fff;
}

.partner figure{
  display:flex;
  align-items:center;
  margin:0;
  padding:clamp(1.25rem,5vw,5rem);
}

.partner figure img{
  width:100%;
  height:auto;
  max-height:36rem;
  aspect-ratio:4/3;
  border-radius:1.25rem;
  object-fit:cover;
  box-shadow:0 1.4rem 3rem rgba(19,85,137,.14);
}

.partner>article{
  padding:clamp(2.25rem,6vw,5rem);
}

.partner h2,.intro h2,.services h2,.free-band h2,.reasons h2,.contact h2,.inquiry__heading h1{
  font-size:clamp(2rem,3.4vw,3.4rem);
  line-height:1.38;
  letter-spacing:0;
}

.intro-line{
  line-height:1.45;
}

.contact__notice{
  border-color:rgba(61,218,215,.65);
  background:rgba(255,255,255,.88);
}

.site-footer .brand{
  font-size:clamp(1rem,1.6vw,1.35rem);
}

.site-footer .brand__logo{
  width:clamp(4rem,6vw,5rem);
  height:clamp(4rem,6vw,5rem);
}

@media (min-width:64rem){
  .hero{
    grid-template-columns:minmax(0,45%) minmax(0,55%);
  }

  .hero__copy{
    padding:5rem 4.8vw 7rem;
  }

  .hero__visual img{
    inset:4rem 0 4rem .5rem;
    height:calc(100% - 8rem);
    border-radius:9rem 0 0 9rem;
  }

  .partner{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
}

/* ===== 2026-08-23 contact card copy placement ===== */
.contact .contact-details__support{
  width:min(100%,52rem);
  margin:clamp(1rem,2vw,1.35rem) auto 0;
  color:#173b52;
  font-size:clamp(.95rem,1.55vw,1.12rem);
  font-weight:800;
  line-height:1.75;
  text-align:center;
}

@media (max-width:39.99rem){
  .site-header{
    min-height:4.75rem;
  }

  .brand{
    font-size:.82rem;
  }

  .brand__logo{
    width:3.1rem;
    height:3.1rem;
  }

  .header-cta{
    max-width:none;
    font-size:.78rem;
  }

  .hero h1{
    font-size:clamp(2.25rem,10.5vw,3.25rem);
    line-height:1.18;
  }

  .partner figure{
    padding:1.25rem 1rem 0;
  }
}

/* ===== 2026-08 requested layout refinements ===== */
.form-page__header{
  justify-content:flex-start;
}

.form-page__back{
  margin-left:auto;
  padding:.75rem 1.15rem;
  border:1px solid rgba(42,147,213,.36);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(237,250,252,.94));
  box-shadow:0 .6rem 1.5rem rgba(19,85,137,.1);
  color:var(--blue-deep);
  font-size:clamp(.85rem,1.4vw,1rem);
  font-weight:900;
  white-space:nowrap;
}

.form-page__back::before{
  display:inline-grid;
  width:1.35rem;
  aspect-ratio:1;
  place-items:center;
  margin-right:.45rem;
  border-radius:50%;
  background:var(--blue);
  color:#fff;
  content:"⌂";
  font-size:.76rem;
  line-height:1;
}

.header-cta{
  justify-content:center;
  min-width:7.5rem;
  padding-inline:1.35rem;
  text-align:center;
}

.hero .button--blue{
  justify-content:center;
  min-width:min(100%,22rem);
  padding-inline:2rem;
  text-align:center;
}

.hero__stats,.hero__promise{
  place-items:center;
  text-align:center;
}

.hero__stats{
  min-height:8.5rem;
}

.hero__promise{
  min-height:8.5rem;
  line-height:1.85;
}

@media (min-width:64rem){
  .hero h1{
    max-width:none;
    font-size:clamp(3.15rem,4.15vw,4.55rem);
    line-height:1.18;
    white-space:nowrap;
  }

  .hero h1 br{
    display:none;
  }

  .hero__second-line{
    display:inline;
    white-space:nowrap;
  }

  .hero h1 em{
    white-space:nowrap;
  }
}

@media (max-width:39.99rem){
  .form-page__header{
    gap:.55rem;
  }

  .form-page__back{
    padding:.6rem .75rem;
    font-size:.78rem;
  }

  .form-page__back::before{
    width:1.15rem;
    margin-right:.3rem;
  }

  .header-cta{
    min-width:5.8rem;
    padding-inline:.85rem;
  }
}

/* ===== 2026-08 additional requested refinements ===== */
.intro>p:last-child{
  font-size:clamp(1.15rem,1.7vw,1.35rem);
  font-weight:500;
  line-height:2;
}

.field--email{
  max-width:none;
  padding:1.15rem;
  border:1px solid rgba(42,147,213,.34);
  border-radius:1rem;
  background:linear-gradient(135deg,rgba(237,250,252,.9),rgba(255,255,255,.98));
  box-shadow:0 .9rem 2rem rgba(19,85,137,.1);
}

.field--email>span:first-child{
  color:var(--blue-deep);
  font-size:1rem;
  font-weight:900;
}

.field--email input{
  min-height:4.15rem;
  border-width:2px;
  border-color:rgba(42,147,213,.38);
  background:#fff;
  font-size:1.1rem;
}

.field--email input:focus{
  border-color:var(--blue);
  box-shadow:0 0 0 .28rem rgba(61,218,215,.22),0 .65rem 1.5rem rgba(19,85,137,.1);
}

@media (min-width:64rem){
  .hero h1{
    max-width:42rem;
    white-space:normal;
  }

  .hero h1 br{
    display:block;
  }

  .hero__second-line{
    display:inline-block;
    white-space:nowrap;
  }

  .intro h2{
    width:min(100%,76rem);
    max-width:none;
    margin-right:auto;
    margin-left:auto;
    font-size:clamp(2rem,2.65vw,2.75rem);
    white-space:nowrap;
  }

  .intro-line{
    display:inline;
  }

  .intro-line:first-child,
  .intro-line:nth-child(2),
  .intro-line:nth-child(3){
    white-space:nowrap;
  }

  .reasons>header{
    padding-left:clamp(2rem,4vw,4.5rem);
  }
}

/* ===== 2026-08 font and consultant section redesign ===== */
body,h1,h2,h3,p,a,button,input,select,textarea,small,strong,legend,label,.brand,.section-label{
  font-family:"Yu Gothic","Yu Gothic UI","游ゴシック体","YuGothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}

h1,h2{
  font-weight:900;
}

.intro-wide-break{
  display:none;
}

.contact-details{
  padding:clamp(3rem,7vw,6rem) clamp(1rem,5vw,5rem);
  background:
    linear-gradient(120deg,rgba(237,250,252,.98),rgba(174,217,218,.45) 52%,rgba(61,218,215,.22)),
    radial-gradient(circle at 88% 18%,rgba(215,255,79,.55),transparent 9rem);
}

.contact-details .consultant-card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(8.5rem,13rem) minmax(0,1fr);
  gap:clamp(1.25rem,4vw,2.25rem);
  align-items:center;
  width:min(100%,62rem);
  margin:0 auto;
  padding:clamp(1.25rem,4vw,2.25rem);
  border:1px solid rgba(174,217,218,.85);
  border-radius:1.6rem;
  background:rgba(255,255,255,.78);
  color:var(--ink);
  box-shadow:0 1.4rem 3.4rem rgba(19,85,137,.14);
  overflow:hidden;
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
}

.contact-details .consultant-card::after{
  display:none;
}

.consultant-card__photo{
  position:relative;
  z-index:1;
  display:grid;
  width:100%;
  aspect-ratio:1;
  place-items:center;
  margin:0;
  border:2px dashed rgba(42,147,213,.42);
  border-radius:1.25rem;
  background:
    linear-gradient(145deg,rgba(237,250,252,.95),rgba(255,255,255,.82)),
    radial-gradient(circle at 30% 20%,rgba(61,218,215,.24),transparent 55%);
  color:rgba(19,85,137,.72);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.18em;
}

.consultant-card__photo::before{
  width:44%;
  aspect-ratio:1;
  border-radius:50%;
  background:linear-gradient(135deg,#2a93d5,#3ddad7);
  content:"";
  opacity:.18;
}

.consultant-card__photo span{
  position:absolute;
}

.consultant-card__body{
  position:relative;
  z-index:1;
  display:grid;
  gap:.75rem;
}

.consultant-card__label{
  margin:0;
  color:var(--blue);
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.22em;
}

.contact-details .consultant-card strong{
  color:var(--ink);
  font-size:clamp(1.25rem,2.3vw,1.7rem);
  line-height:1.45;
}

.consultant-card__body p:not(.consultant-card__label){
  margin:0;
  color:var(--text);
  font-weight:700;
  line-height:1.8;
}

.consultant-card__links{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:.4rem;
}

.contact-details .consultant-card .consultant-card__links a{
  display:inline-flex;
  width:auto;
  min-height:2.9rem;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:.65rem 1rem;
  border:1px solid rgba(42,147,213,.34);
  border-radius:999px;
  background:#fff;
  color:var(--blue-deep);
  font-weight:900;
  box-shadow:0 .55rem 1.2rem rgba(19,85,137,.08);
}

.contact-details .consultant-card .line-link{
  border-color:#06c755;
  background:#06c755;
  color:#fff;
}

.line-icon{
  display:inline-grid;
  min-width:2.65rem;
  height:1.55rem;
  place-items:center;
  border-radius:.5rem;
  background:#fff;
  color:#06c755;
  font-size:.72rem;
  font-weight:900;
  line-height:1;
}

.consultant-card__shine{
  position:absolute;
  inset:-35% auto auto -8%;
  width:18rem;
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(61,218,215,.22),transparent 68%);
}

.consultant-card__leaf{
  position:absolute;
  right:-1.5rem;
  top:-1.5rem;
  width:8.5rem;
  aspect-ratio:1;
  border-radius:0 0 0 100%;
  background:var(--lime);
}

@media (min-width:64rem),(orientation:landscape) and (min-width:48rem){
  .intro h2{
    white-space:normal;
  }

  .intro-line{
    display:inline;
  }

  .intro-wide-break{
    display:block;
  }

  .partner>article>p{
    white-space:nowrap;
  }
}

@media (max-width:39.99rem){
  .contact-details .consultant-card{
    grid-template-columns:1fr;
    text-align:center;
  }

  .consultant-card__photo{
    width:min(100%,13rem);
    margin-inline:auto;
  }

  .consultant-card__links{
    justify-content:center;
  }
}

/* ===== 2026-08 brand, form and hero refinements ===== */
.brand__name{
  display:inline-flex!important;
  align-items:baseline;
  gap:0;
  min-width:max-content;
  color:#135589;
  font-size:clamp(1.05rem,1.7vw,1.45rem);
  font-weight:900;
  line-height:1;
  white-space:nowrap;
  text-transform:none!important;
}

.brand__name b{
  color:#1764ee;
  font-size:1em;
  font-weight:900;
}

.brand__name strong{
  color:#152b3b;
  font-size:1em;
  letter-spacing:.02em;
}

.partner__more{
  display:flex;
  width:fit-content;
  align-items:center;
  gap:.9rem;
  margin:1.4rem 0 0;
  padding:.75rem 1.1rem .75rem .8rem;
  border:1px solid rgba(42,147,213,.32);
  border-radius:999px;
  background:linear-gradient(110deg,#135589 0 5.7rem,#fff 5.75rem 100%);
  box-shadow:0 .65rem 1.5rem rgba(19,85,137,.1);
}

.partner__more span{
  min-width:4.1rem;
  color:#fff;
  font-weight:900;
  text-align:center;
  white-space:nowrap;
}

.partner__more small{
  color:#31566e;
  font-size:.78rem;
  font-weight:800;
}

.field__hint{
  color:#587283;
  font-size:.75rem;
  font-weight:700;
}

.confirmation-title__small{
  display:inline-block;
  margin-right:.12em;
  font-size:1em;
  vertical-align:baseline;
}

.confirmation__heading h2{
  font-size:clamp(1.45rem,3.2vw,2.25rem);
}

.form-submit{
  position:relative;
  justify-content:center;
  text-align:center;
}

.form-submit [aria-hidden="true"]{
  position:absolute;
  right:1.4rem;
}

.hero__stats small,.hero__stats span{
  color:#152b3b;
  font-weight:800;
  opacity:1;
}

.hero__stats strong{
  color:#1764ee;
}

.hero__promise{
  padding-inline:clamp(1.5rem,3vw,2.5rem);
  font-size:clamp(.95rem,1.25vw,1.1rem);
  font-weight:900;
  line-height:1.9;
}

.hero__promise span{
  display:block;
  white-space:nowrap;
}

.contact__english{
  display:grid;
  gap:.12rem;
  justify-content:center;
  line-height:1.55;
  text-align:center;
}

.contact__english span{
  display:block;
}

/* 白を基調に、斜めのフレームとライムの角形アクセントで再構成 */
.hero{
  background:#fff;
}

.hero::after{
  background:linear-gradient(125deg,rgba(237,250,252,.95),rgba(174,217,218,.42) 38%,transparent 62%);
}

.hero__grid{
  opacity:.46;
}

.hero__accent{
  top:3%;
  bottom:2%;
  left:-4.5rem;
  width:13.5rem;
  height:auto;
  aspect-ratio:auto;
  border-radius:3rem;
  background:#d7ff4f;
  clip-path:polygon(38% 0,100% 7%,82% 100%,0 91%);
  transform:rotate(3deg);
}

@media (min-width:64rem){
  .hero__visual{
    margin:2.4rem 2.4rem 3.5rem 0;
    filter:drop-shadow(0 1.5rem 2.2rem rgba(19,85,137,.18));
  }

  .hero__visual::after{
    position:absolute;
    right:-1.15rem;
    bottom:-1.15rem;
    width:42%;
    height:34%;
    border-right:.6rem solid #2a93d5;
    border-bottom:.6rem solid #3ddad7;
    content:"";
  }

  .hero__visual img{
    position:relative;
    inset:auto;
    height:100%;
    min-height:34rem;
    border-radius:1.5rem;
    clip-path:polygon(0 0,92% 0,100% 13%,100% 100%,8% 100%,0 87%);
    object-position:center 55%;
  }
}

@media (max-width:39.99rem){
  .brand__name{gap:0;font-size:.92rem}
  .hero__visual{position:relative;padding:1rem 1rem 1.5rem}
  .hero__visual img{position:relative;height:auto;min-height:0;border-radius:1.1rem;clip-path:polygon(0 0,92% 0,100% 11%,100% 100%,8% 100%,0 89%)}
  .hero__accent{top:-.5rem;bottom:-.25rem;left:-1rem;width:8rem;border-radius:1.5rem;clip-path:polygon(35% 0,100% 8%,78% 100%,0 90%);transform:rotate(2deg)}
  .partner__more{display:flex;width:100%;gap:.65rem;border-radius:999px;background:linear-gradient(110deg,#135589 0 5.7rem,#fff 5.75rem 100%)}
  .partner__more small{padding-left:0;font-size:.68rem}
  .hero__promise{font-size:clamp(.72rem,3.05vw,.9rem)}
}

/* ===== 2026-08 soft visual and navigation refinements ===== */
main .section-label{
  font-size:.78rem;
  line-height:1.55;
  letter-spacing:.22em;
}

.contact>p:not(.section-label),
.contact>p:not(.section-label) span{
  color:#234b63;
}

.partner__more span{
  padding-left:.4rem;
}

.contact__notice span{
  display:inline-block;
}

.consultant-card__links{
  display:grid;
  grid-template-columns:1fr;
  justify-items:start;
}

.contact-details .consultant-card .consultant-card__links a{
  width:fit-content;
}

/* 柔らかな楕円アクセントと非対称の丸角フレーム */
.hero__accent{
  top:6%;
  bottom:4%;
  left:-5.75rem;
  width:17rem;
  height:auto;
  border-radius:50%;
  background:#d7ff4f;
  clip-path:none;
  transform:rotate(-7deg);
  opacity:.96;
}

@media (min-width:64rem){
  .hero__visual{
    padding:1.2rem 1rem 1.8rem 0;
  }

  .hero__visual::after{
    right:-.2rem;
    bottom:.35rem;
    width:32%;
    height:23%;
    border-right:.45rem solid #2a93d5;
    border-bottom:.45rem solid #3ddad7;
    border-radius:0 0 3.5rem 0;
  }

  .hero__visual img{
    min-height:34rem;
    border-radius:5.5rem 1.75rem 5.5rem 1.75rem;
    clip-path:none;
  }
}

@media (max-width:63.99rem){
  .hero__visual{
    position:relative;
    margin:0;
    padding:2rem 1rem 2.4rem;
  }

  .hero__visual::after{
    position:absolute;
    right:.45rem;
    bottom:1.55rem;
    width:34%;
    height:22%;
    border-right:.35rem solid #2a93d5;
    border-bottom:.35rem solid #3ddad7;
    border-radius:0 0 2.5rem 0;
    content:"";
  }

  .hero__visual img{
    position:relative;
    inset:auto;
    width:100%;
    height:auto;
    min-height:0;
    border-radius:3rem 1rem 3rem 1rem;
    clip-path:none;
    object-fit:cover;
  }

  .hero__accent{
    top:.4rem;
    bottom:.5rem;
    left:-3rem;
    width:10rem;
    border-radius:50%;
    clip-path:none;
    transform:rotate(-8deg);
  }
}

@media (max-width:39.99rem){
  .hero__visual{padding:1.6rem .85rem 2rem}
  .hero__visual img{border-radius:2.4rem .85rem 2.4rem .85rem}
  .hero__accent{top:.25rem;bottom:.35rem;left:-2.6rem;width:8.5rem}
  .partner__more span{padding-left:.3rem}
  .contact__notice{padding-left:3.25rem}
  .contact__notice span{font-size:.88rem}
  .consultant-card__links{width:100%;justify-items:center}
}

/* ===== 2026-08 offset rounded-rectangle photo accents ===== */
.hero__visual{
  overflow:visible;
}

.hero__visual img{
  position:relative;
  z-index:2;
}

@media (min-width:64rem){
  .hero__accent{
    z-index:1;
    inset:2.35rem -1.35rem 1.05rem 1.85rem;
    width:auto;
    height:auto;
    border-radius:5.5rem 1.75rem 5.5rem 1.75rem;
    background:linear-gradient(145deg,#d7ff4f,#c9fa39);
    clip-path:none;
    transform:none;
    opacity:1;
  }

  .hero__visual::before{
    content:none;
  }
}

@media (max-width:63.99rem){
  .hero__accent{
    z-index:1;
    inset:2.8rem -.1rem 1.1rem 1.9rem;
    width:auto;
    height:auto;
    border-radius:3rem 1rem 3rem 1rem;
    background:#d7ff4f;
    clip-path:none;
    transform:none;
    opacity:1;
  }

  .hero__visual::before{
    content:none;
  }
}

.partner figure{
  position:relative;
  overflow:visible;
}

.partner figure::before{
  position:absolute;
  z-index:0;
  inset:clamp(2.25rem,6vw,6rem) clamp(.25rem,4vw,4rem) clamp(.25rem,4vw,4rem) clamp(2.25rem,6vw,6rem);
  border-radius:1.25rem;
  background:linear-gradient(145deg,#d7ff4f,#c9fa39);
  content:"";
}

.partner figure img{
  position:relative;
  z-index:1;
}

.hero__visual::after{
  display:none;
  content:none;
}

@media (max-width:63.99rem){
  .partner figure::before{
    inset:2.05rem .25rem -.75rem 1.75rem;
    border-radius:1.25rem;
  }
}

/* ===== 2026-08 responsive text and spacing refinements ===== */
.hero__promise{
  align-content:center;
  justify-items:center;
  padding-inline:1rem;
  text-align:center;
}

.partner-title__line{
  display:block;
}

.partner__more{
  gap:1.45rem;
  background:linear-gradient(110deg,#135589 0 6.35rem,#fff 6.4rem 100%);
}

.partner__more span{
  min-width:4.65rem;
  padding-left:.55rem;
}

.form-privacy{
  width:min(100%,46rem);
  margin:.5rem auto 0;
  padding:1rem 1.25rem;
  border:1px solid rgba(42,147,213,.34);
  border-radius:1rem;
  background:linear-gradient(135deg,rgba(237,250,252,.98),#fff);
  box-shadow:0 .65rem 1.5rem rgba(19,85,137,.08);
  color:#31566e;
  line-height:1.85;
}

/* ===== 2026-08-19 second annotated revisions ===== */
html,body{background:#fff}

/* 2026-08-29 requested homepage revisions */
.intro__actions{
  justify-content:center;
  margin:clamp(1.5rem,3vw,2.25rem) auto 0;
}
.intro__actions .button{
  width:min(100%,27.5rem);
}
.partner h2{
  font-size:clamp(2rem,2.65vw,2.75rem);
}
@media (max-width:63.99rem) and (orientation:portrait){
  .partner h2{font-size:clamp(1.65rem,7vw,2.15rem)}
}

/* Final field-label alignment override. */
.inquiry-form .field > .field__label-row{
  display:flex;
  flex-wrap:nowrap;
  align-items:baseline;
  gap:.4rem;
  white-space:nowrap;
}
.inquiry-form .field > .field__label-row > small{
  display:inline;
  flex:0 1 auto;
  font-size:clamp(.68rem,1.8vw,.8rem);
  white-space:nowrap;
}

/* Balance the nickname and age controls with a consistent gutter. */
.inquiry-form .form-grid--customer{
  column-gap:clamp(1rem,2vw,1.5rem);
}
.inquiry-form .field--age .unit-input{
  width:min(100%,12rem);
}
@media (min-width:64rem){
  .inquiry-form .form-grid--customer{
    grid-template-columns:repeat(12,minmax(0,1fr));
  }
  .inquiry-form .form-grid--customer > .field{
    grid-column:span 4;
  }
  .inquiry-form .form-grid--customer > .field--nickname{
    grid-column:span 6;
  }
  .inquiry-form .form-grid--customer > .field--age{
    grid-column:span 2;
  }
  .inquiry-form .form-grid--customer > .field--family{
    grid-column:span 4;
  }
}

/* 2026-08-29 requested CTA and partner alignment revisions. */
.intro__actions .button{
  justify-content:center;
  text-align:center;
}
@media (min-width:64rem){
  .partner{align-items:stretch}
  .partner>figure,
  .partner>article{padding:clamp(2.5rem,4vw,4rem)}
  .partner>figure{align-items:stretch}
  .partner>figure img{
    height:100%;
    max-height:none;
    aspect-ratio:auto;
  }
  .partner>figure::before{
    inset:calc(clamp(2.5rem,4vw,4rem) + 1.15rem) calc(clamp(2.5rem,4vw,4rem) - 1rem) calc(clamp(2.5rem,4vw,4rem) - 1rem) calc(clamp(2.5rem,4vw,4rem) + 1rem);
  }
}

/* Separate the first-time-buyer introduction from the white partner section. */
.intro{
  background:#eef8fd;
  border-bottom:1px solid #d4ebf6;
}

/* 2026-09-02 form and completion revisions. */
.field__label-row{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:.35rem .75rem;
}
.field__label-row small{
  color:#547082;
  font-size:.8rem;
  font-weight:500;
}
.completion__home{
  justify-content:center;
  text-align:center;
}

/* Keep field annotations directly beside their labels. */
.field > .field__label-row{
  display:flex;
  flex-wrap:nowrap;
  align-items:baseline;
  gap:.4rem;
  white-space:nowrap;
}
.field > .field__label-row > small{
  display:inline;
  flex:0 1 auto;
  color:#547082;
  font-size:clamp(.68rem,1.8vw,.8rem);
  font-weight:500;
  white-space:nowrap;
}

/* ヒーロー説明：縦向きは従来位置、PC・横向きはCTA直下 */
.hero__promise--wide{display:none}
.hero__promise--portrait{display:grid}
@media (min-width:64rem),(orientation:landscape) and (min-width:40rem){
  .hero__promise--wide{
    position:static;
    display:grid;
    width:min(100%,34rem);
    max-width:none;
    margin:1.35rem 0 0;
    padding:1.15rem 1.4rem;
    border:1px solid rgba(42,147,213,.25);
    border-radius:1rem;
    box-shadow:0 .8rem 1.8rem rgba(19,85,137,.1);
  }
  .hero__cards{display:none}
}

/* 「などなど」と説明文の文字サイズを統一 */
.partner__more span,
.partner__more small{
  font-size:clamp(.9rem,1.55vw,1.05rem);
  line-height:1.45;
}
.partner__more small{white-space:normal}

/* オンラインボタン：立体感を維持し、ホバー時にライムグリーンへ */
@media (hover:hover) and (pointer:fine){
  .contact .contact-button:hover{
    border-color:rgba(255,255,255,.9);
    background:linear-gradient(180deg,#e7ff75 0%,#d7ff3f 52%,#bde71d 100%);
    color:#123047;
    text-shadow:0 1px 0 rgba(255,255,255,.72);
    filter:saturate(1.04);
    box-shadow:inset 0 2px 0 rgba(255,255,255,.75),inset 0 -4px 0 rgba(111,151,0,.28),0 1.25rem 2.4rem rgba(112,158,0,.28);
  }
  .contact .contact-button:hover .contact-button__prefix{color:#123047}
  .contact .contact-button:hover .contact-button__prefix::after{background:#123047}
}

/* 写真枠をなくした、情報中心の連絡先カード */
.contact .contact-details .consultant-card{
  display:block;
  width:min(100%,52rem);
  margin-inline:auto;
  padding:clamp(1.4rem,3vw,2.4rem);
  text-align:center;
}
.contact .consultant-card__body{text-align:center}
.contact .consultant-card__support{margin-bottom:1.25rem}
.contact .consultant-card__links{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.8rem;
}
.contact .consultant-card__links a{width:auto;min-width:min(100%,16rem);justify-content:center}

/* PC・横向きフォームの見出し・入力枠・単位の段落位置を揃える */
@media (min-width:64rem),(orientation:landscape) and (min-width:40rem){
  .form-grid--customer>.field>span:first-child,
  .form-grid--two>.field>span:first-child{
    display:flex;
    min-height:1.55rem;
    align-items:flex-end;
    line-height:1.35;
  }
  .form-grid--customer>.field>input,
  .form-grid--customer>.field>.unit-input,
  .form-grid--two>.field>.unit-input{min-height:3.5rem}
  .form-grid--two .unit-input{align-items:center}
  .form-grid--two .unit-input input{height:3.5rem}
}

@media (max-width:39.99rem) and (orientation:portrait){
  .contact .consultant-card__links{display:grid;justify-items:center}
  .contact .consultant-card__links a{width:min(100%,25rem)}
}

.form-privacy strong{
  display:inline-block;
  margin-bottom:.15rem;
  color:#135589;
  font-size:1rem;
  font-weight:900;
}

@media (orientation:landscape),(min-width:64rem){
  .contact__notice .portrait-only + span::before{
    content:" ";
  }

  .consultant-card__body>p:not(.consultant-card__label){
    white-space:nowrap;
  }
}

/* ===== 2026-08-19 hero support copy relocation ===== */
.hero__support{
  max-width:34rem;
  margin:1.85rem 0 0;
  color:#29485c;
  font-size:clamp(.82rem,1.7vw,.98rem);
  font-weight:750;
  line-height:1.8;
  letter-spacing:.015em;
}
.hero__support+.actions{margin-top:1.35rem}
@media (min-width:64rem),(orientation:landscape) and (min-width:40rem){
  .hero__support{max-width:31rem;margin-top:1.75rem}
}

/* ===== 2026-08-19 shared alignment and secondary typography ===== */
main h3{
  font-size:clamp(1.25rem,1.8vw,1.55rem);
  line-height:1.5;
}
.service-card p,
.free-grid p,
.reason-list p,
.partner li{
  font-size:clamp(.98rem,1.18vw,1.08rem);
  line-height:1.85;
}
.service-card p{letter-spacing:.01em}

@media (min-width:40rem){
  .contact .contact__notice{
    width:min(100%,39rem);
    padding-right:0;
    padding-left:0;
  }
  .contact .contact__notice::before{left:-3.25rem}
  .contact .contact__notice::after{left:0}
}

/* ===== 2026-08-19 brush highlight and service number emphasis ===== */
.hero .lead{
  position:relative;
  z-index:1;
  width:max-content;
  max-width:100%;
  margin:0;
  padding:.45rem .75rem;
  isolation:isolate;
}
.hero .lead::before{
  position:absolute;
  z-index:-1;
  top:36%;
  right:-.8rem;
  bottom:auto;
  left:-.8rem;
  height:68%;
  border-radius:.18rem;
  background:
    repeating-linear-gradient(92deg,rgba(255,255,255,.94) 0 13%,rgba(255,255,255,.78) 15%,rgba(255,255,255,.96) 19% 34%),
    rgba(255,255,255,.9);
  clip-path:polygon(0 17%,1.5% 7%,18% 11%,37% 5%,58% 10%,78% 4%,98.5% 12%,100% 24%,99% 82%,96% 91%,73% 87%,51% 95%,28% 89%,2% 96%,0 82%);
  filter:drop-shadow(0 .2rem .4rem rgba(19,85,137,.05));
  content:"";
  transform:rotate(-.25deg);
}
.hero .lead span{position:relative;z-index:1}

.service-card>small{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  color:var(--blue);
  font-size:clamp(2.15rem,3.5vw,3.6rem);
  font-weight:900;
  line-height:1;
  letter-spacing:-.055em;
}
.service-card>small::after{
  width:clamp(1.8rem,3vw,3rem);
  height:.24rem;
  border-radius:999px;
  background:var(--lime);
  content:"";
}
.service-card h3{margin-top:1.5rem}

@media (max-width:39.99rem) and (orientation:portrait){
  .hero .lead{padding:.4rem .55rem}
  .hero .lead::before{top:36%;right:-.5rem;left:-.5rem;height:68%}
}

@media (min-width:64rem){
  .hero{
    grid-template-columns:minmax(0,42%) minmax(0,58%);
  }

  .hero__copy{
    padding-right:1rem;
  }

  .hero__visual{
    width:calc(100% + 2.5rem);
    margin-left:-2.5rem;
  }
}

@media (max-width:63.99rem) and (orientation:portrait){
  .partner h2{
    font-size:clamp(1.55rem,6.5vw,2.15rem);
    line-height:1.5;
  }

  .partner-title__line{
    white-space:nowrap;
  }

  .inquiry__heading>p:last-child{
    text-align:center;
  }
}

@media (max-width:39.99rem){
  .brand__name{font-size:.84rem}
  .partner__more{gap:1rem;background:linear-gradient(110deg,#135589 0 6.1rem,#fff 6.15rem 100%)}
  .partner__more span{min-width:4.55rem;padding-left:.45rem}
  .partner__more small{font-size:.66rem}
}

/* ===== 2026-08 interaction, validation and completion states ===== */
.contact-details .consultant-card .line-link,
.contact-details .consultant-card .consultant-card__links a[href^="mailto:"]{
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
}

.contact-details .consultant-card .line-link:hover,
.contact-details .consultant-card .line-link:focus-visible{
  transform:translateY(-3px);
  box-shadow:0 .8rem 1.5rem rgba(6,199,85,.22);
  filter:brightness(1.03);
}

.contact-details .consultant-card .line-link:active{
  transform:translateY(1px) scale(.96);
  box-shadow:0 .25rem .6rem rgba(6,199,85,.2);
}

.contact-details .consultant-card .consultant-card__links a[href^="mailto:"]:hover,
.contact-details .consultant-card .consultant-card__links a[href^="mailto:"]:focus-visible{
  transform:translateY(-3px);
  box-shadow:0 .8rem 1.5rem rgba(42,147,213,.22);
  filter:brightness(1.03);
}

.contact-details .consultant-card .consultant-card__links a[href^="mailto:"]:active{
  transform:translateY(1px) scale(.96);
  box-shadow:0 .25rem .6rem rgba(42,147,213,.2);
}

.partner__more{
  text-decoration:none;
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;
}

.partner__more:hover,
.partner__more:focus-visible{
  transform:translateY(-3px);
  box-shadow:0 .9rem 1.8rem rgba(19,85,137,.16);
  filter:brightness(1.02);
}

.partner__more:active{
  transform:translateY(1px) scale(.98);
}

/* ===== 2026-08-19 annotated revisions / responsive safeguards ===== */
/* 「などなど」案内を、文字量や画面方向に左右されない2カラム構造に固定 */
.partner__more{
  display:grid;
  grid-template-columns:clamp(6.2rem,28%,8.4rem) minmax(0,1fr);
  align-items:stretch;
  width:min(100%,48rem);
  min-height:4.75rem;
  gap:0;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(42,147,213,.48);
  border-radius:999px;
  background:#fff;
  box-shadow:0 .65rem 1.5rem rgba(19,85,137,.10);
}
.partner__more span{
  display:grid;
  min-width:0;
  height:100%;
  padding:.85rem .75rem;
  place-items:center;
  background:linear-gradient(135deg,#135589,#1976b6);
  color:#fff;
  font-size:clamp(1.15rem,3vw,1.65rem);
  font-weight:900;
  line-height:1.15;
  white-space:nowrap;
  clip-path:polygon(0 0,100% 0,84% 100%,0 100%);
}
.partner__more small{
  display:grid;
  min-width:0;
  padding:.8rem clamp(.8rem,3vw,1.5rem) .8rem .55rem;
  place-items:center;
  color:#29485c;
  font-size:clamp(.72rem,1.65vw,.94rem);
  font-weight:800;
  line-height:1.5;
  text-align:center;
  overflow-wrap:anywhere;
}

/* オンライン申込ボタン：青を保ちつつ立体感と押下感を追加 */
.contact .contact-button{
  position:relative;
  isolation:isolate;
  border:1px solid rgba(255,255,255,.72);
  background:linear-gradient(180deg,#3d83ff 0%,#1762e9 55%,#0f4fc8 100%);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.48),
    inset 0 -4px 0 rgba(5,55,159,.38),
    0 1rem 2.1rem rgba(17,81,190,.34),
    0 .18rem .28rem rgba(10,61,155,.3);
  color:#fff;
  text-shadow:0 1px 1px rgba(0,37,112,.45);
  transform:translateY(0);
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.contact .contact-button::before{
  position:absolute;
  z-index:-1;
  inset:.18rem .55rem auto;
  height:42%;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.2),transparent);
  content:"";
  pointer-events:none;
}
.contact .contact-button:hover,.contact .contact-button:focus-visible{
  background:linear-gradient(180deg,#4a91ff,#1b6df2 58%,#1255cf);
  color:#fff;
  filter:saturate(1.08);
  transform:translateY(-3px);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.52),inset 0 -4px 0 rgba(5,55,159,.4),0 1.25rem 2.4rem rgba(17,81,190,.4);
}
.contact .contact-button:active{
  transform:translateY(2px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -2px 0 rgba(5,55,159,.35),0 .4rem .8rem rgba(17,81,190,.24);
}

/* 連絡先カードを青いボタン直下へ配置 */
.contact .contact-details{
  width:min(100%,64rem);
  margin:clamp(1.5rem,4vw,2.5rem) auto 0;
  padding:0;
  background:transparent;
}
.contact .contact-details .consultant-card{
  grid-template-columns:minmax(8rem,16rem) minmax(0,1fr);
  align-items:center;
  width:100%;
  margin:0;
  padding:clamp(1.25rem,3vw,2.25rem);
  border:1px solid rgba(42,147,213,.32);
  border-radius:clamp(1.25rem,3vw,2rem);
  background:rgba(255,255,255,.76);
  box-shadow:0 1rem 2.4rem rgba(19,85,137,.14);
  color:var(--ink);
  backdrop-filter:blur(.7rem);
  -webkit-backdrop-filter:blur(.7rem);
}
.contact .consultant-card__body{align-content:center;min-width:0;text-align:left}
.contact .consultant-card__support{
  position:relative;
  z-index:1;
  margin:0 0 1rem;
  color:#24465d;
  font-size:clamp(.95rem,2vw,1.2rem);
  font-weight:800;
  line-height:1.8;
  overflow-wrap:anywhere;
}
.contact .consultant-card__links{grid-template-columns:1fr;justify-items:start;width:100%}
.contact .consultant-card__links a{width:min(100%,25rem);white-space:normal;overflow-wrap:anywhere}

/* フォーム：PCは3列、タブレットは2列、スマホは1列 */
.form-grid--customer{grid-template-columns:1fr}
.field__hint{display:block;color:#607987;font-size:.72rem;line-height:1.55}
.field--message{gap:.35rem}
.field--message>span:first-child{font-size:.92rem}
.field--message textarea{min-height:7rem}
@media (min-width:40rem){
  .form-grid--customer{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:64rem){
  .form-grid--customer{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (max-width:39.99rem){
  .partner__more{grid-template-columns:6.15rem minmax(0,1fr);min-height:4.5rem}
  .partner__more span{padding:.75rem .4rem;font-size:1.15rem}
  .partner__more small{padding:.7rem .7rem .7rem .25rem;font-size:clamp(.66rem,3vw,.78rem)}
  .contact .contact-button{padding:.9rem 1rem}
  .contact .contact-button>span:first-child{font-size:clamp(.86rem,4vw,1rem)}
  .contact .contact-details .consultant-card{grid-template-columns:1fr;padding:1.25rem;text-align:center}
  .contact .consultant-card__body{text-align:center}
  .contact .consultant-card__photo{width:min(100%,12rem);margin-inline:auto}
  .contact .consultant-card__links{justify-items:center}
  .contact .consultant-card__support{font-size:.94rem}
}

@media (orientation:landscape) and (max-height:35rem){
  .partner__more{min-height:4rem}
  .contact .contact-details{margin-top:1.25rem}
  .contact .contact-details .consultant-card{padding:1.15rem 1.4rem}
}

.form-privacy{
  width:auto;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.field-error{
  width:100%;
  margin:.2rem 0 0;
  color:#c62828;
  font-size:.86rem;
  font-weight:900;
  line-height:1.6;
}

.field-error::before{
  margin-right:.3rem;
  content:"※";
}

.field input[aria-invalid="true"],
.field select[aria-invalid="true"],
.field textarea[aria-invalid="true"]{
  border-color:#d93025;
  background:#fff8f7;
  box-shadow:0 0 0 .2rem rgba(217,48,37,.1);
}

.completion{
  display:grid;
  justify-items:center;
  width:min(100%,58rem);
  margin:auto;
  padding:clamp(2rem,6vw,4.5rem) clamp(1.25rem,5vw,3.5rem);
  border:1px solid rgba(61,218,215,.62);
  border-radius:1.5rem;
  background:linear-gradient(145deg,#fff,rgba(237,250,252,.96));
  box-shadow:0 1.2rem 3rem rgba(19,85,137,.12);
  text-align:center;
}

.completion__mark{
  display:grid;
  width:4.5rem;
  aspect-ratio:1;
  place-items:center;
  margin:1rem 0 1.25rem;
  border-radius:50%;
  background:#d7ff4f;
  color:#135589;
  font-size:2rem;
  font-weight:900;
  box-shadow:0 .8rem 1.8rem rgba(19,85,137,.14);
}

.completion h2{
  margin:0 0 1rem;
  color:#152b3b;
  font-size:clamp(1.65rem,4vw,2.6rem);
  line-height:1.45;
}

.completion>p:not(.section-label){
  margin:.25rem 0;
  color:#31566e;
  font-weight:700;
}

.completion .completion__demo{
  margin-top:1.25rem;
  color:#687d89;
  font-size:.82rem;
}

.completion__home{
  width:min(100%,24rem);
  margin-top:1.5rem;
}

/* ===== Privacy policy ===== */
.policy-page{
  background:linear-gradient(180deg,#f4fcff 0%,#fff 42%,#edfafd 100%);
}

.policy{
  max-width:58rem;
  margin:0 auto;
}

.policy h1{
  margin-bottom:1.25rem;
  font-size:clamp(2rem,4vw,3.25rem);
  line-height:1.35;
}

.policy__lead{
  margin-bottom:2rem;
  color:var(--text);
  font-size:1.05rem;
  font-weight:700;
  line-height:1.95;
}

.policy section{
  padding:1.5rem 0;
  border-top:1px solid rgba(42,147,213,.22);
}

.policy h2{
  margin-bottom:.65rem;
  color:var(--blue-deep);
  font-size:1.2rem;
  line-height:1.55;
}

.policy p{
  margin-bottom:0;
  color:var(--text);
}

.policy__date{
  margin-top:2rem;
  font-weight:800;
  text-align:right;
}

.form-privacy a,
.site-footer small a,
.form-page__footer a{
  color:var(--blue-deep);
  font-weight:900;
  text-decoration:underline;
  text-underline-offset:.22em;
}

.form-page__footer{
  display:grid;
  gap:.45rem;
  justify-items:center;
}

/* ===== 2026-08 header address and static service cards ===== */
.site-header .brand{
  display:grid;
  grid-template-columns:auto auto;
  grid-template-rows:auto auto;
  column-gap:.85rem;
  row-gap:.22rem;
  align-items:center;
}

.site-header .brand__logo{
  grid-column:1;
  grid-row:1 / 3;
}

.site-header .brand__name{
  grid-column:2;
  grid-row:1;
  align-self:end;
}

.brand__address{
  grid-column:2;
  grid-row:2;
  align-self:start;
  color:#536d7c;
  font-size:clamp(.66rem,1vw,.78rem);
  font-style:normal;
  font-weight:700;
  line-height:1.35;
  letter-spacing:.02em;
  white-space:nowrap;
}

.service-card{
  transition:none;
}

.service-card:hover{
  border-color:rgba(174,217,218,.8)!important;
  background:rgba(255,255,255,.86)!important;
  box-shadow:0 1rem 2.4rem rgba(19,85,137,.08)!important;
  transform:none!important;
  filter:none!important;
}

.service-card,
.service-card:hover,
.service-card:focus,
.service-card:focus-within{
  transition:none!important;
}

.site-footer .brand{
  display:grid;
  grid-template-columns:auto auto;
  grid-template-rows:auto auto;
  column-gap:.85rem;
  row-gap:.25rem;
  align-items:center;
}

.site-footer .brand__logo{
  grid-column:1;
  grid-row:1 / 3;
}

.site-footer .brand__name{
  grid-column:2;
  grid-row:1;
  align-self:end;
}

.site-footer .brand__address{
  grid-column:2;
  grid-row:2;
  align-self:start;
}

.inquiry-form .form-privacy{
  margin:.35rem auto 0;
}

.inquiry-form .form-submit{
  margin:.15rem auto 0;
}

@media (max-width:39.99rem){
  .site-header .brand{
    column-gap:.45rem;
  }

  .brand__address{
    font-size:.58rem;
  }
}

/* ===== 2026-08-27 local SEO and portrait hero ===== */
html,body{background:#fff}
.hero__area{display:flex;align-items:center;gap:.65rem;margin-bottom:.75rem;color:var(--blue);font-size:clamp(.82rem,2.8vw,1rem);font-weight:900;letter-spacing:.08em}
.hero__area::before{flex:0 0 1.75rem;width:1.75rem;height:.18rem;background:var(--blue);content:""}
.intro__local-copy{max-width:58rem;margin:1.25rem auto 0;color:#405462;font-size:clamp(.92rem,1.25vw,1.05rem);line-height:2}

/* 縦型・スマホでは住宅画像を先に見せ、その直後にエリアとCTAを配置 */
@media (max-width:63.99rem) and (orientation:portrait){
  .hero{display:flex;flex-direction:column}
  .hero__visual{order:1}
  .hero__copy{order:2}
  .hero__visual img{height:clamp(15.5rem,62vw,24rem)}
}

/* ===== 2026-08-27 hero copy spacing ===== */
.hero .lead{margin-bottom:clamp(1.65rem,3vw,2.15rem)}
.hero__support{margin-bottom:0}
.hero .actions{margin-top:clamp(2rem,3.5vw,2.6rem)}

/* 地域コピー：左右に外向きの斜線カッコ */
.hero__area{gap:clamp(.7rem,1.7vw,1.15rem);width:max-content;max-width:100%}
.hero__area::before,
.hero__area::after{display:block;flex:0 0 clamp(1.3rem,2.6vw,2rem);width:clamp(1.3rem,2.6vw,2rem);height:.15rem;border:0;background:currentColor;content:""}
.hero__area::before{transform:rotate(35deg)}
.hero__area::after{transform:rotate(-35deg)}
@media (max-width:39.99rem){
  .hero__area{gap:.65rem;font-size:clamp(.92rem,4.2vw,1.08rem);letter-spacing:.04em}
  .hero__area::before,
  .hero__area::after{flex-basis:1.15rem;width:1.15rem}
}

/* 地域コピーを英字ラベルより強く見せる */
.hero__area{margin-top:.95rem;font-size:clamp(1.05rem,1.75vw,1.35rem)}
@media (max-width:39.99rem){
  .hero__area{font-size:clamp(.92rem,4.2vw,1.08rem)}
}

/* Final alignment and readable secondary text */
main h3{font-size:clamp(1.25rem,1.8vw,1.55rem);line-height:1.5}
.service-card p,.free-grid p,.reason-list p,.partner li{font-size:clamp(.98rem,1.18vw,1.08rem);line-height:1.85}
.service-card p{letter-spacing:.01em}
@media (min-width:40rem){
  .contact .contact__notice{width:min(100%,39rem);padding-right:0;padding-left:0}
  .contact .contact__notice::before{left:-3.25rem}
  .contact .contact__notice::after{left:0}
}

/* ===== Final cascade: 2026-08-19 layout corrections ===== */
html,body{background:#fff}
.hero__promise--wide{display:none}
.hero__promise--portrait{display:grid}
.partner__more span,.partner__more small{font-size:clamp(.9rem,1.55vw,1.05rem);line-height:1.45}
.partner__more small{white-space:normal}

.contact .contact-details .consultant-card{
  display:block;
  width:min(100%,52rem);
  margin-inline:auto;
  padding:clamp(1.4rem,3vw,2.4rem);
  text-align:center;
}
.contact .consultant-card__body{text-align:center}
.contact .consultant-card__support{margin-bottom:1.25rem}
.contact .consultant-card__links{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem}
.contact .consultant-card__links a{width:auto;min-width:min(100%,16rem);justify-content:center}

@media (hover:hover) and (pointer:fine){
  .contact .contact-button:hover{
    border-color:rgba(255,255,255,.9);
    background:linear-gradient(180deg,#e7ff75 0%,#d7ff3f 52%,#bde71d 100%);
    color:#123047;
    text-shadow:0 1px 0 rgba(255,255,255,.72);
    filter:saturate(1.04);
    transform:translateY(-3px);
    box-shadow:inset 0 2px 0 rgba(255,255,255,.75),inset 0 -4px 0 rgba(111,151,0,.28),0 1.25rem 2.4rem rgba(112,158,0,.28);
  }
  .contact .contact-button:hover .contact-button__prefix{color:#123047}
  .contact .contact-button:hover .contact-button__prefix::after{background:#123047}
}

@media (min-width:64rem),(orientation:landscape) and (min-width:40rem){
  .hero__promise--wide{
    position:static;
    display:grid;
    width:min(100%,34rem);
    max-width:none;
    margin:1.35rem 0 0;
    padding:1.15rem 1.4rem;
    border:1px solid rgba(42,147,213,.25);
    border-radius:1rem;
    box-shadow:0 .8rem 1.8rem rgba(19,85,137,.1);
  }
  .hero__cards{display:none}
  .form-grid--customer>.field>span:first-child,
  .form-grid--two>.field>span:first-child{display:flex;min-height:1.55rem;align-items:flex-end;line-height:1.35}
  .form-grid--customer>.field>input,
  .form-grid--customer>.field>.unit-input,
  .form-grid--two>.field>.unit-input{min-height:3.5rem}
  .form-grid--two .unit-input{align-items:center}
  .form-grid--two .unit-input input{height:3.5rem}
}

@media (max-width:39.99rem) and (orientation:portrait){
  .partner__more span,.partner__more small{font-size:.84rem}
  .contact .consultant-card__links{display:grid;justify-items:center}
  .contact .consultant-card__links a{width:min(100%,25rem)}
}

/* ===== 2026-08-19 visual direction refinement ===== */
/* 情報案内はカード形状を外し、連絡先カードとの競合を解消 */
.contact .contact__notice{
  position:relative;
  width:min(100%,50rem);
  margin:clamp(1.65rem,4vw,2.4rem) auto 0;
  padding:.25rem 1rem .25rem clamp(3rem,6vw,4rem);
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:#24465d!important;
  text-align:left;
}
.contact .contact__notice::before{
  top:50%;
  left:clamp(.35rem,2vw,1rem);
  width:2rem;
  border:1px solid rgba(255,255,255,.8);
  background:linear-gradient(145deg,#3b82f6,#1458d4);
  box-shadow:0 .45rem 1rem rgba(20,88,212,.22),inset 0 1px 0 rgba(255,255,255,.45);
}
.contact .contact__notice::after{
  position:absolute;
  bottom:-.75rem;
  left:clamp(3rem,6vw,4rem);
  width:min(8rem,28%);
  height:.18rem;
  border-radius:999px;
  background:linear-gradient(90deg,var(--blue),var(--aqua),transparent);
  content:"";
}

/* 連絡先：ヒーロー画像と共通するライムのオフセットフレーム */
.contact .contact-details{padding:0 clamp(.7rem,2vw,1rem) clamp(.8rem,2vw,1rem)}
.contact .contact-details .consultant-card{
  position:relative;
  isolation:isolate;
  overflow:visible;
  border:1px solid rgba(42,147,213,.36);
  border-radius:clamp(1.15rem,2.6vw,1.8rem);
  background:rgba(255,255,255,.94);
  box-shadow:.75rem .75rem 0 var(--lime),0 1.1rem 2.5rem rgba(19,85,137,.14);
}
.contact .consultant-card__body{position:relative;z-index:1}
.contact .consultant-card__support{
  color:#173b52;
  font-size:clamp(1rem,1.8vw,1.2rem);
  letter-spacing:.015em;
}
.contact .consultant-card__links a{
  min-height:3.4rem;
  padding:.8rem 1.25rem;
  border:1px solid rgba(42,147,213,.48);
  background:linear-gradient(180deg,#fff,#f3fbff);
  box-shadow:inset 0 1px 0 #fff,inset 0 -3px 0 rgba(42,147,213,.13),0 .55rem 1.1rem rgba(19,85,137,.1);
  transform:translateY(0);
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;
}
.contact .consultant-card__links a:hover,
.contact .consultant-card__links a:focus-visible{
  border-color:rgba(42,147,213,.78);
  background:linear-gradient(180deg,#fff,#e8f8ff);
  box-shadow:inset 0 1px 0 #fff,inset 0 -3px 0 rgba(42,147,213,.18),0 .8rem 1.5rem rgba(19,85,137,.16);
  transform:translateY(-2px);
}
.contact .consultant-card__links a:active{
  box-shadow:inset 0 2px 4px rgba(19,85,137,.12),0 .25rem .6rem rgba(19,85,137,.1);
  transform:translateY(1px);
}
.contact .consultant-card__links .line-link:hover,
.contact .consultant-card__links .line-link:focus-visible{
  border-color:#55c96b;
  background:linear-gradient(180deg,#fafffb,#ebfff0);
}

/* PC・横向きのヒーロー説明は箱にせず、CTAに沿う軽いアクセントへ */
@media (min-width:64rem),(orientation:landscape) and (min-width:40rem){
  .hero__promise--wide{
    width:min(100%,32rem);
    margin-top:1.5rem;
    padding:.3rem 0 .3rem 1.15rem;
    border:0;
    border-left:.32rem solid var(--lime);
    border-radius:0;
    background:transparent;
    box-shadow:none;
    color:#173b52;
    font-size:clamp(.82rem,1.2vw,.98rem);
    line-height:1.75;
    text-align:left;
  }
  .hero__promise--wide span{display:inline}
  .hero__promise--wide span+span::before{content:" ";}
}

/* Final alignment and readable secondary text — keep last in cascade */
main h3{font-size:clamp(1.25rem,1.8vw,1.55rem);line-height:1.5}
.service-card p,.free-grid p,.reason-list p,.partner li{font-size:clamp(.98rem,1.18vw,1.08rem);line-height:1.85}
.service-card p{letter-spacing:.01em}
@media (min-width:40rem){
  .contact .contact__notice{width:min(100%,39rem);padding-right:0;padding-left:0}
  .contact .contact__notice::before{left:-3.25rem}
  .contact .contact__notice::after{left:0}
}

@media (max-width:39.99rem) and (orientation:portrait){
  .contact .contact__notice{padding-left:3rem}
  .contact .contact__notice::before{left:.25rem}
  .contact .contact-details{padding-right:.65rem}
  .contact .contact-details .consultant-card{box-shadow:.45rem .45rem 0 var(--lime),0 .8rem 1.8rem rgba(19,85,137,.13)}
  .contact .consultant-card__links a{min-height:3.2rem}
}

/* ===== 2026-08-19 portrait copy and hero note alignment ===== */
@media (min-width:64rem),(orientation:landscape) and (min-width:40rem){
  .hero__promise--wide{
    position:relative;
    display:block;
    align-self:auto;
    justify-items:normal;
    width:min(100%,27.5rem);
    margin:1.35rem 0 0;
    padding:1.05rem 0 0;
    border:0;
    background:transparent;
    box-shadow:none;
    color:#173b52;
    line-height:1.7;
    text-align:left;
  }
  .hero__promise--wide::before{
    position:absolute;
    top:0;
    left:0;
    width:4.5rem;
    height:.24rem;
    border-radius:999px;
    background:linear-gradient(90deg,var(--lime) 0 62%,var(--blue) 62% 100%);
    content:"";
  }
  .hero__promise--wide span{display:inline}
  .hero__promise--wide span+span::before{content:" ";}
}

/* ===== 2026-08-19 unified h3 and body copy sizing ===== */
main h3{
  font-size:clamp(1.2rem,1.45vw,1.35rem);
  line-height:1.5;
  letter-spacing:-.025em;
}
.service-card p,
.free-grid p,
.reason-list p,
.partner li{
  font-size:clamp(1.02rem,1.25vw,1.16rem);
  line-height:1.85;
}
@media (min-width:64rem){
  .service-card h3{white-space:nowrap}
}

/* ===== 2026-08-19 final visual alignment refinements ===== */
@media (min-width:40rem){
  .free-grid p span{white-space:nowrap}
}

.reason-list h3{
  position:relative;
  display:inline-block;
  padding-bottom:.48rem;
}
.reason-list h3::after{
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:.22rem;
  border-radius:999px;
  background:linear-gradient(90deg,var(--lime),#bfe928 78%,transparent);
  content:"";
}

.hero .lead::before{
  filter:drop-shadow(0 .34rem 0 rgba(205,255,48,.96)) drop-shadow(0 .18rem .35rem rgba(19,85,137,.05));
}

@media (max-width:63.99rem) and (orientation:portrait){
  .hero .lead::before{display:none}
  .hero .lead span{
    padding:.12rem .28rem;
    background:linear-gradient(180deg,transparent 0 32%,rgba(255,255,255,.95) 32% 82%,rgba(205,255,48,.96) 82% 94%,transparent 94% 100%);
    -webkit-box-decoration-break:clone;
    box-decoration-break:clone;
  }
  .services .card-grid{margin-top:1.25rem}
  .services .section-heading>p:last-child{margin-bottom:0}
}

@media (min-width:40rem){
  .contact .contact__notice{
    width:min(100%,36rem);
    padding-left:3.65rem;
  }
  .contact .contact__notice::before{left:.35rem}
  .contact .contact__notice::after{left:3.65rem}
}

/* ===== 2026-08-19 marker, labels and contact icons ===== */
.hero .lead::before{display:none}
.hero .lead span{
  padding:.12rem .28rem;
  background:linear-gradient(180deg,transparent 0 32%,rgba(255,255,255,.96) 32% 81%,rgba(205,255,48,.98) 81% 94%,transparent 94% 100%);
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
.services h2{color:var(--blue)}
.reason-list small{display:inline-block;margin-right:1em;vertical-align:baseline}

.contact-icon{
  display:inline-grid;
  flex:0 0 auto;
  width:1.65rem;
  aspect-ratio:1;
  place-items:center;
  border-radius:50%;
}
.contact-icon svg{display:block;width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.contact-icon--mail{background:#e4f4ff;color:#1764c8}
.contact-icon--line{background:#06c755;color:#fff}
.contact-icon--line svg{width:1.18rem;height:1.18rem;stroke-width:1.45}
.contact .consultant-card__links a{gap:.65rem}

@media (min-width:40rem),(orientation:landscape){
  .contact__notice span:nth-of-type(2),
  .contact__notice span:nth-of-type(3){white-space:nowrap}
}

/* ===== 2026-08-19 restored marker width and split service title ===== */
.services h2{color:var(--ink)}
.services h2 .service-title__accent{color:var(--blue)}

@media (min-width:40rem),(orientation:landscape){
  .hero .lead span{padding:0;background:none}
  .hero .lead::before{
    display:block;
    top:18%;
    right:-.85rem;
    left:-.85rem;
    height:86%;
    border-radius:.18rem;
    background:repeating-linear-gradient(92deg,rgba(255,255,255,.98) 0 18%,rgba(255,255,255,.9) 20%,rgba(255,255,255,.98) 25% 45%);
    clip-path:polygon(0 17%,1.5% 7%,18% 11%,37% 5%,58% 10%,78% 4%,98.5% 12%,100% 24%,99% 82%,96% 91%,73% 87%,51% 95%,28% 89%,2% 96%,0 82%);
    filter:drop-shadow(0 .34rem 0 rgba(205,255,48,.98)) drop-shadow(0 .18rem .35rem rgba(19,85,137,.05));
  }
  .contact .contact__notice{
    width:min(52rem,calc(50% + 18rem));
    margin-right:0;
    margin-left:calc(50% - 18rem);
  }
  .contact__email-guide{white-space:nowrap}
}

/* ===== 2026-08-19 explicit lime marker shadow ===== */
.hero .lead::after{display:none}
@media (min-width:40rem),(orientation:landscape){
  .hero .lead::before{
    z-index:-1;
    filter:drop-shadow(0 .16rem .3rem rgba(19,85,137,.05));
  }
  .hero .lead::after{
    position:absolute;
    z-index:-2;
    top:calc(18% + .38rem);
    right:-.85rem;
    left:-.85rem;
    display:block;
    height:86%;
    border-radius:.18rem;
    background:var(--lime);
    clip-path:polygon(0 17%,1.5% 7%,18% 11%,37% 5%,58% 10%,78% 4%,98.5% 12%,100% 24%,99% 82%,96% 91%,73% 87%,51% 95%,28% 89%,2% 96%,0 82%);
    content:"";
    transform:rotate(-.25deg);
  }
}

/* ===== 2026-08-23 contact CTA spacing ===== */
.contact .contact-button{
  margin-bottom:0;
}
.contact .contact-button + .contact__notice{
  margin-top:clamp(.45rem,1.2vw,.75rem);
}

/* ===== 2026-08-23 footer brand balance ===== */
.site-footer .brand{
  display:grid;
  grid-template-columns:auto auto;
  grid-template-rows:auto auto;
  column-gap:clamp(.7rem,1.4vw,1rem);
  row-gap:.35rem;
  align-items:center;
  justify-content:start;
  width:max-content;
  max-width:100%;
  font-size:clamp(1rem,1.45vw,1.3rem);
}
.site-footer .brand__logo{
  grid-column:1;
  grid-row:1;
  width:clamp(4.75rem,6.5vw,5.75rem);
  height:clamp(4.75rem,6.5vw,5.75rem);
}
.site-footer .brand__name{
  grid-column:2;
  grid-row:1;
  align-self:center;
  white-space:nowrap;
}
.site-footer .brand__address{
  grid-column:1 / -1;
  grid-row:2;
  justify-self:center;
  margin:0;
  color:#35546a;
  font-size:clamp(.72rem,1vw,.86rem);
  font-weight:700;
  line-height:1.5;
  white-space:nowrap;
}
@media (max-width:39.99rem){
  .site-footer .brand{
    column-gap:.6rem;
    font-size:clamp(.9rem,4.6vw,1.08rem);
  }
  .site-footer .brand__logo{
    width:4.25rem;
    height:4.25rem;
  }
  .site-footer .brand__address{
    font-size:clamp(.68rem,3vw,.78rem);
  }
}

/* ===== 2026-08-23 header brand and contact section spacing ===== */
.site-header .brand{
  display:inline-flex;
  grid-template-columns:none;
  grid-template-rows:none;
  gap:clamp(.75rem,1.5vw,1rem);
  align-items:center;
}
.site-header .brand__logo{
  grid-column:auto;
  grid-row:auto;
  width:clamp(4rem,5.5vw,4.75rem);
  height:clamp(4rem,5.5vw,4.75rem);
}
.site-header .brand__name{
  grid-column:auto;
  grid-row:auto;
  align-self:center;
  font-size:clamp(1rem,1.6vw,1.3rem);
}
.contact .contact__notice + .contact-details{
  margin-top:clamp(2.25rem,5vw,3.25rem);
}
@media (max-width:39.99rem){
  .site-header .brand{
    gap:.55rem;
  }
  .site-header .brand__logo{
    width:3.4rem;
    height:3.4rem;
  }
  .site-header .brand__name{
    font-size:.88rem;
  }
}

/* ===== 2026-08-27 final SEO layout overrides (keep last) ===== */
html,body{background:#fff}
.hero__area{display:flex;align-items:center;gap:.65rem;margin-bottom:.75rem;color:var(--blue);font-size:clamp(.82rem,2.8vw,1rem);font-weight:900;letter-spacing:.08em}
.hero__area::before{flex:0 0 1.75rem;width:1.75rem;height:.18rem;background:var(--blue);content:""}
.intro__local-copy{max-width:58rem;margin:1.25rem auto 0;color:#405462;font-size:clamp(.92rem,1.25vw,1.05rem);line-height:2}
@media (max-width:63.99rem) and (orientation:portrait){
  .hero{display:flex;flex-direction:column}
  .hero__visual{order:1}
  .hero__copy{order:2}
  .hero__visual img{height:clamp(15.5rem,62vw,24rem)}
}

/* ファーストビュー本文とCTAの最終余白調整 */
.hero .lead{margin-bottom:clamp(1.65rem,3vw,2.15rem)}
.hero__support{margin-bottom:0}
.hero .actions{margin-top:clamp(2rem,3.5vw,2.6rem)}

/* 地域コピー：斜線カッコを外して文字を拡大 */
.hero__area{display:block;width:max-content;max-width:100%;font-size:clamp(1.25rem,2vw,1.55rem);letter-spacing:.06em}
.hero__area::before,
.hero__area::after{display:none!important;content:none!important}
@media (max-width:39.99rem){
  .hero__area{font-size:clamp(1.05rem,4.8vw,1.22rem)}
}

/* Final requested alignment: partner heading matches the intro heading scale. */
.partner h2{font-size:clamp(2rem,2.65vw,2.75rem)}
@media (max-width:63.99rem) and (orientation:portrait){
  .partner h2{font-size:clamp(1.65rem,7vw,2.15rem)}
}


/* 2026-09-10: unified flat blue buttons and centered labels */
:root body :is(.button,.header-cta) {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0;
  padding-inline:1.5rem;
  border:0;
  border-radius:999px;
  background:#1b64f4;
  color:#fff;
  box-shadow:0 .6rem 1.5rem rgba(27,100,244,.16);
  text-shadow:none;
  text-align:center;
  font-family:inherit;
  filter:none;
  transform:none;
  transition:background .18s ease,box-shadow .18s ease;
}
:root body :is(.button,.header-cta)::before,
:root body :is(.button,.header-cta)::after {
  display:none;
  content:none;
}
:root body :is(.button,.header-cta) > [aria-hidden="true"] { display:none; }
:root body .contact-button > span:first-child {
  display:block;
  flex:0 1 auto;
  width:auto;
  margin:0;
  text-align:center;
}
:root body :is(.button,.header-cta):hover,
:root body :is(.button,.header-cta):focus-visible {
  background:#1257dc;
  color:#fff;
  box-shadow:0 .6rem 1.5rem rgba(27,100,244,.2);
  text-shadow:none;
  filter:none;
  transform:none;
}
:root body :is(.button,.header-cta):active {
  background:#104dc4;
  box-shadow:0 .3rem .8rem rgba(27,100,244,.15);
  transform:none;
}
:root body :is(.button,.header-cta):focus-visible { outline:3px solid #173b52; outline-offset:3px; }
:root body :is(.button,.header-cta):disabled { opacity:.55; cursor:not-allowed; }
