@charset "UTF-8";
/* =========================================================================
   テンプレ01｜モーション標準
   shu design 社内標準LPテンプレート（業種非依存）

   数値・配色の根拠：参考サイトの解剖結果（同梱の README.md §7／解剖元のDNA仕様書の場所もREADMEに記載）
   ※ 構造・数値・動き・配色の設計だけを取り込んでいる。文章・画像・ロゴ・SVGは1点も流用していない。

   守る数値（案件ごとに変えない）
   - html{font-size:16px} 素の16px基準（vw連動remは使わない）
   - 可変は min(X vw, Y px) を直書き ／ カンプ基準幅 1280px
   - ブレークポイントは 960px 1本（mobile-first）
   - 角丸 4 / 8 / 12 / 20 / 50% の5段階のみ ／ box-shadow は使わない
   - transition は .3s・イージング指定なし
   - line-height 1.8 ／ 見出しは font-weight 700 + letter-spacing .1em + palt

   案件ごとに変えるのは :root のカスタムプロパティだけ（下記）
   ========================================================================= */

/* =========================================================================
   ★ ここだけ差し替える（案件カラー・写真の濃度）
   ========================================================================= */
:root{
  /* --- 配色 ---
     ★既定値は参考サイトの実測hex（解剖結果 §3）。このテンプレは「元サイトと見分けがつかない」
       状態を既定にしている。案件に当てるときは、この :root だけを差し替える。 */
  /* ★ shu design ブランド色（ブルーグリーン #2da8b5）に差し替え済み。既定値は各行のコメント参照 */
  --c-brand:        #2da8b5;  /* 主色（テンプレ既定 #10ad5e） */
  --c-brand-dark:   #1e7d88;  /* 主色の濃い側（既定 #0b7842） */
  --c-accent:       #e8813c;  /* 第二CTA・見出しのem・金額（既定 #eb5c38） */
  --c-base:         #ffffff;  /* 背景の白（色面に乗る文字にも使う） */
  --c-surface:      #f4f7f7;  /* セクション面（既定はクリーム #faf7e6。自社色に合わせて淡グレーグリーンへ） */
  --c-text:         #000000;  /* 本文。★真っ黒を使う。墨色に「改善」しない */
  --c-text-sub:     #999999;  /* 注記・補助テキスト */
  --c-line:         color-mix(in srgb, var(--c-brand) 22%, transparent); /* 罫線（主色の20〜40%アルファ相当） */

  /* --- 派生色（主色に合わせて調整済み。カッコ内はテンプレ既定） --- */
  --c-brand-light:   #7fcbd2;  /* ドット・番号・スプラッシュの円（既定 #97d825） */
  --c-surface-2:     #e3f2f3;  /* 第2のセクション面（既定 #d3f0ef） */
  --c-surface-2-lite:#eef8f9;  /* 第2面の上に置く巨大円（既定 #dff7f6） */
  --c-figure:        #f0a020;  /* 巨大数字・バッジの数字（既定 #f09813） */
  --c-on-brand-em:   #ffe14a;  /* 色面上の強調文字（既定 #ffde1a） */

  /* --- 写真の上に乗せるオーバーレイ（★ 写真に合わせて必ず調整する） --- */
  --fv-overlay-color:   var(--c-brand);
  --fv-overlay-opacity: .88;  /* 既定は参考サイト相当（屋外・明るい写真前提）
                                 屋外・明るい写真 = .80〜.90 ／ 室内・暗い写真 = .35〜.50 */
  --photo-overlay-opacity: .45; /* パララックス面（02 ABOUT）の黒オーバーレイ */
  --about-bg-image: url(../images/photo-wide.svg);

  /* --- フォント（和文／欧文のペア指定。OS任せにしない） --- */
  --font-jp: "Noto Sans JP", ヒラギノ角ゴ ProN, "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, sans-serif;
  --font-en: Inter, "Helvetica Neue", Arial, sans-serif;

  /* --- ボタン右端の矢印（マスク用。色は --c-text / --c-base 側で決まる） --- */
  --icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2.5 1.2 6.6 5 2.5 8.8' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html,body,div,span,h1,h2,h3,h4,h5,h6,p,a,em,img,dl,dt,dd,ol,ul,li,figure,figcaption,footer,header,main,nav,section,table,tbody,thead,tr,th,td{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}
footer,header,main,nav,section,figure,figcaption{display:block}
html{line-height:1}
ol,ul{list-style:none}
li,dd{list-style-type:none}
img{border:none;vertical-align:bottom}
a{cursor:pointer;text-decoration:none;transition:opacity .8s ease .1s}
button{cursor:pointer;background:none;border:none;font:inherit;color:inherit}
table{border-collapse:collapse;border-spacing:0}

/* ---------- base ---------- */
html{font-size:16px;overflow-x:hidden}
body{
  color:var(--c-text);
  font-family:var(--font-jp);
  line-height:1.8;
  -webkit-text-size-adjust:100%;
  overflow-x:hidden;
  animation:body-fade-in .8s ease-in both;
  opacity:0;
}
@keyframes body-fade-in{0%{opacity:0}to{opacity:1}}
body.disable-scroll{overflow:hidden}
img,svg{width:100%;height:auto}
@media(min-width:960px){a:hover{opacity:.6;cursor:pointer}}
strong{font-weight:900}
b{font-weight:700}

.u-pc-only{display:none}
@media(min-width:960px){.u-pc-only{display:block}}
.u-sp-only{display:block}
@media(min-width:960px){.u-sp-only{display:none}}
.u-pc-inline{display:none}
@media(min-width:960px){.u-pc-inline{display:inline}}
.u-en{font-family:var(--font-en)}

/* .header は absolute。その基準になるラッパ
   （上に注記バー等を足したい案件では、このラッパの中に入れれば位置が追従する） */
.site{position:relative}

/* ---------- container ---------- */
.inner{width:100%;max-width:540px;padding:0 20px;margin:auto}
@media(min-width:960px){
  .inner{max-width:1254px;padding-left:min(5.3125vw,68px);padding-right:min(5.3125vw,68px)}
}
.inner--narrow{width:100%;max-width:540px;padding:0 20px;margin:auto}
@media(min-width:960px){
  .inner--narrow{max-width:min(70.3125vw,900px);padding-left:0;padding-right:0}
}

/* =========================================================================
   heading1（セクション見出し：ラベルピル＋大見出し）
   ========================================================================= */
.heading1{text-align:center}
.heading1__label{
  display:block;width:fit-content;margin-inline:auto;
  padding:4px 16px;border:1px solid var(--c-brand);border-radius:20px;background-color:var(--c-base);
  font-size:14px;font-weight:700;color:var(--c-brand);line-height:1.5;letter-spacing:.1em;
  margin-bottom:12px;
}
@media(min-width:960px){
  .heading1__label{padding:min(.46875vw,6px) min(1.5625vw,20px);border-radius:min(1.5625vw,20px);font-size:min(1.25vw,16px);margin-bottom:min(1.25vw,16px)}
}
.heading1__title{
  font-size:28px;font-weight:700;color:var(--c-text);text-align:center;line-height:1.5;
  font-feature-settings:"palt";letter-spacing:.05em;
}
@media(min-width:960px){.heading1__title{font-size:min(3.75vw,48px)}}
.heading1__title em{font-style:normal;color:var(--c-accent)}
.heading1--white .heading1__label{color:var(--c-brand);border-color:var(--c-base);background-color:var(--c-base)}
.heading1--white .heading1__title{color:var(--c-base)}
.heading1--white .heading1__title em{color:var(--c-on-brand-em)}
.heading1__lead{
  font-size:14px;font-weight:400;line-height:1.8;text-align:center;margin-top:16px;
  font-feature-settings:"palt";
}
@media(min-width:960px){.heading1__lead{font-size:min(1.25vw,16px);margin-top:min(1.875vw,24px)}}

/* セクション間のカーブ（面と面の境目を弧で抜く区切り） */
.curve{position:absolute;left:0;width:100%;height:80px;z-index:0}
@media(min-width:960px){.curve{height:min(19.53125vw,250px)}}

/* =========================================================================
   btn
   ========================================================================= */
.btn{
  display:inline-flex;justify-content:center;align-items:center;position:relative;
  font-weight:700;color:var(--c-base);overflow:hidden;text-align:center;
  font-feature-settings:"palt";
  transition:background-color .3s,color .3s,border-color .3s;
  padding-right:24px;
}
@media(min-width:960px){.btn{padding-right:min(1.875vw,24px)}}
.btn span{position:relative;z-index:2}
/* 右端の丸（::after＝丸／::before＝矢印）。矢印はマスクなので色が変数で効く */
.btn::after{
  content:"";position:absolute;top:50%;transform:translateY(-50%);right:14px;
  width:20px;height:20px;border-radius:50%;
  background-color:var(--btn-dot-bg,var(--c-base));
  transition:background-color .3s;
}
.btn::before{
  content:"";position:absolute;top:50%;transform:translateY(-50%);right:14px;
  width:20px;height:20px;z-index:3;
  background-color:var(--btn-dot-arrow,var(--c-text));
  -webkit-mask:var(--icon-chevron) center/9px 9px no-repeat;
          mask:var(--icon-chevron) center/9px 9px no-repeat;
  transition:background-color .3s;
}
@media(min-width:960px){
  .btn::after,.btn::before{right:min(1.5625vw,20px);width:min(1.875vw,24px);height:min(1.875vw,24px)}
}

.btn--cta-primary,.btn--cta-accent{
  height:70px;border-radius:8px;border:2px solid transparent;
  font-size:14px;font-weight:700;color:var(--c-base);line-height:1.6;letter-spacing:0;
  min-width:0;width:100%;
}
@media(min-width:960px){
  .btn--cta-primary,.btn--cta-accent{min-width:min(23.4375vw,300px);height:min(7.03125vw,90px);font-size:min(1.40625vw,18px);line-height:1.5;letter-spacing:.04em}
}
.btn__tel{font-style:italic;font-size:1.15em;letter-spacing:.02em;line-height:1.2}
.btn--cta-primary{background-color:var(--c-brand)}
.btn--cta-accent{background-color:var(--c-accent)}
@media(min-width:960px){
  .btn--cta-primary:hover{opacity:1;background-color:var(--c-base);color:var(--c-brand);border-color:var(--c-brand);--btn-dot-bg:var(--c-brand);--btn-dot-arrow:var(--c-base)}
  .btn--cta-accent:hover{opacity:1;background-color:var(--c-base);color:var(--c-accent);border-color:var(--c-accent);--btn-dot-bg:var(--c-accent);--btn-dot-arrow:var(--c-base)}
}

.btn--primary{
  height:70px;border-radius:8px;border:1px solid var(--c-base);padding:0 52px 0 24px;
  background-color:var(--c-brand);font-size:16px;font-weight:700;color:var(--c-base);line-height:1.5;
}
@media(min-width:960px){
  .btn--primary{height:min(7.03125vw,90px);border-radius:min(.78125vw,10px);padding:0 min(5vw,64px) 0 min(2.5vw,32px);font-size:min(1.40625vw,18px)}
  .btn--primary:hover{opacity:1;background-color:var(--c-base);color:var(--c-brand);border:1px solid var(--c-brand);--btn-dot-bg:var(--c-brand);--btn-dot-arrow:var(--c-base)}
}
.btn--white{
  height:70px;border-radius:8px;border:1px solid var(--c-brand);padding:0 52px 0 24px;
  background-color:var(--c-base);font-size:16px;font-weight:700;color:var(--c-brand);line-height:1.5;width:100%;
  --btn-dot-bg:var(--c-brand);--btn-dot-arrow:var(--c-base);
}
@media(min-width:960px){
  .btn--white{height:min(6.25vw,80px);border-radius:min(.78125vw,10px);padding:0 min(5vw,64px) 0 min(2.5vw,32px);font-size:min(1.25vw,16px)}
  .btn--white:hover{opacity:1;background-color:var(--c-brand);color:var(--c-base);border-color:var(--c-base);--btn-dot-bg:var(--c-base);--btn-dot-arrow:var(--c-brand)}
}

/* 吹き出しラベル（ボタンの上に乗る白いラベル。画像ではなくCSSで作っている） */
.btn-cta-wrap{display:flex;flex-direction:column;align-items:center;gap:14px}
@media(min-width:960px){.btn-cta-wrap{gap:min(1.09375vw,14px)}}
.btn__balloon{
  position:relative;display:inline-block;background-color:var(--c-base);border-radius:20px;
  padding:5px 14px;font-size:11px;font-weight:700;color:var(--c-text);line-height:1.4;
  letter-spacing:.02em;font-feature-settings:"palt";white-space:nowrap;
}
@media(min-width:960px){
  .btn__balloon{border-radius:min(1.5625vw,20px);padding:min(.46875vw,6px) min(1.5625vw,20px);font-size:min(1.09375vw,14px)}
}
.btn__balloon::after{
  content:"";position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);
  border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid var(--c-base);
}

/* =========================================================================
   splash（開幕演出）
   ========================================================================= */
.splash{position:absolute;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:center;justify-content:center;pointer-events:none}
.splash__bg{
  position:absolute;top:0;right:0;bottom:0;left:0;
  --inner:0px;--outer:0px;
  background:radial-gradient(circle at 50% 100%,transparent var(--inner),var(--c-brand-light) var(--inner),var(--c-brand-light) var(--outer),var(--c-brand) var(--outer));
}
.splash__circle{
  position:absolute;top:50%;left:50%;translate:-50% -50%;z-index:3;
  width:191px;height:191px;border-radius:50%;background-color:var(--c-brand-light);
  display:flex;align-items:center;justify-content:center;scale:0;will-change:transform;
}
@media(min-width:960px){.splash__circle{width:min(26.25vw,336px);height:min(26.25vw,336px)}}
.splash__circle-inner{
  width:calc(100% - 22px);height:calc(100% - 22px);border-radius:50%;background-color:var(--c-base);
  display:flex;align-items:center;justify-content:center;overflow:hidden;scale:0;will-change:transform;
}
@media(min-width:960px){.splash__circle-inner{width:calc(100% - min(3.125vw,40px));height:calc(100% - min(3.125vw,40px))}}
.splash__logo{width:95px;height:auto;translate:0 200%}
@media(min-width:960px){.splash__logo{width:min(13.203125vw,169px)}}

/* =========================================================================
   header（白い角丸ピル型フローティング）
   ========================================================================= */
.header{
  position:absolute;top:22px;left:0;z-index:99;background-color:var(--c-base);border-radius:25px;
  width:calc(100% - 40px);height:50px;margin-left:20px;
}
@media(min-width:960px){
  .header{top:min(3.125vw,40px);border-radius:min(3.90625vw,50px);width:calc(100% - min(4.6875vw,60px));height:min(6.25vw,80px);margin-left:min(2.34375vw,30px)}
}
.header__inner{
  position:relative;z-index:10001;display:flex;align-items:center;
  padding:0 5px 0 16px;height:100%;background-color:var(--c-base);border-radius:25px;
}
@media(min-width:960px){
  .header__inner{border-radius:min(3.90625vw,50px);padding:0 min(2.8125vw,36px) 0 min(1.875vw,24px)}
}
.header__brand{flex-shrink:0;display:flex;align-items:center;gap:8px}
@media(min-width:960px){.header__brand{gap:clamp(min(1.25vw,16px),1.25vw,24px);margin-right:min(.78125vw,10px)}}
.header__logo{flex-shrink:0;display:flex;align-items:center;gap:7px;color:var(--c-text)}
.header__logo img{width:30px;height:auto}
@media(min-width:960px){
  .header__logo{gap:min(.78125vw,10px)}
  .header__logo img{width:clamp(min(3.4375vw,44px),3.4375vw,50px)}
}
.header__logo-name{font-size:14px;font-weight:700;line-height:1.2;letter-spacing:.02em;white-space:nowrap;font-feature-settings:"palt"}
@media(min-width:960px){.header__logo-name{font-size:min(1.40625vw,18px)}}
.header__catchcopy-pc{display:none}
@media(min-width:960px){
  .header__catchcopy-pc{display:block;font-size:min(.859375vw,11px);font-weight:700;color:var(--c-text-sub);text-align:left;line-height:1.4;letter-spacing:0;white-space:nowrap}
}
.header__nav{display:none}
@media(min-width:960px){.header__nav{display:flex;align-items:center;margin-left:auto}}
.header__menu{display:flex;align-items:center;gap:clamp(min(.9375vw,12px),.9375vw,18px);padding-right:min(1.25vw,16px)}
@media(min-width:960px){.header__menu{gap:clamp(min(1.25vw,16px),1.25vw,24px)}}
.header__menu-item{display:flex;align-items:center;gap:min(.3125vw,4px)}
.header__menu-item::before{
  content:"";width:min(.625vw,8px);height:min(.625vw,8px);border-radius:50%;
  background-color:var(--c-brand-light);flex-shrink:0;transition:background-color .3s;margin-top:1px;
}
.header__menu-link{
  white-space:nowrap;font-size:clamp(min(.9375vw,12px),.9375vw,13px);font-weight:700;color:var(--c-text);
  line-height:1.5;letter-spacing:-.02em;transition:color .3s;padding:min(.78125vw,10px) 0;
}
@media(min-width:960px){
  .header__menu-link{font-size:clamp(min(1.015625vw,13px),1.015625vw,14px);letter-spacing:0}
  .header__menu-item:hover::before{background-color:var(--c-brand)}
  .header__menu-item:hover .header__menu-link{opacity:1;color:var(--c-brand)}
}
.header__tel{display:flex;align-items:center;gap:8px;margin-left:auto;margin-right:12px;white-space:nowrap}
@media(min-width:960px){
  .header__tel{
    position:absolute;right:min(3.4375vw,44px);top:0;transform:translateY(-50%);
    gap:min(.390625vw,5px);border-radius:min(.46875vw,6px);
    padding:min(.46875vw,6px) min(1.25vw,16px) min(.46875vw,6px) min(.390625vw,5px);
    background-color:var(--c-brand);margin:0;
  }
}
.header__tel-icon{width:20px;height:20px;flex-shrink:0;color:var(--c-brand)}
@media(min-width:960px){.header__tel-icon{width:min(1.5625vw,20px);height:min(1.5625vw,20px);color:var(--c-base)}}
.header__tel-body{display:flex;flex-direction:column;gap:2px;margin-top:1px}
@media(min-width:960px){.header__tel-body{flex-direction:row;align-items:center;gap:min(2.8125vw,36px);margin-top:0}}
.header__tel-number{font-family:var(--font-en);font-style:italic;font-size:13px;font-weight:700;color:var(--c-brand);line-height:1}
@media(min-width:960px){.header__tel-number{color:var(--c-base);font-size:min(1.25vw,16px);line-height:1.2;margin-top:1px}}
.header__tel-hours{font-size:12px;font-weight:700;color:var(--c-brand);line-height:1.2}
@media(min-width:960px){.header__tel-hours{color:var(--c-base);font-size:min(.9375vw,12px)}}
/* SP：ヘッダー幅が足りないので電話はアイコンのみ（番号・営業時間はドロワーとフッターに） */
@media(max-width:959px){
  .header__logo img{width:26px}
  .header__logo-name{font-size:13px;letter-spacing:0}
  .header__tel{width:36px;height:36px;border-radius:50%;background-color:var(--c-brand);justify-content:center;gap:0;margin-right:8px;flex-shrink:0}
  .header__tel-icon{width:18px;height:18px;color:var(--c-base)}
  .header__tel-body{display:none}
}
.header__hamburger{
  flex-shrink:0;display:flex;justify-content:center;align-items:center;
  width:40px;height:40px;background-color:var(--c-brand);border-radius:50%;padding:0;
  -webkit-tap-highlight-color:transparent;z-index:100;
}
@media(min-width:960px){.header__hamburger{display:none}}
.hamburger__line{position:relative;width:18px;height:12px}
.hamburger__line span{position:absolute;left:0;width:100%;height:2px;background-color:var(--c-base);border-radius:2px}
.hamburger__line span:nth-child(1){top:0}
.hamburger__line span:nth-child(2){top:5px}
.hamburger__line span:nth-child(3){top:10px}

/* drawer（SP） */
.drawer{position:fixed;inset:0;z-index:98;visibility:hidden;opacity:0;transition:opacity .3s,visibility .3s}
.drawer.is-open{visibility:visible;opacity:1}
.drawer__overlay{position:absolute;inset:0;background-color:#00000073}
.drawer__content{position:absolute;top:0;right:0;width:80%;max-width:320px;height:100%;background-color:var(--c-base);overflow-y:auto;padding:80px 24px 40px}
.drawer__menu{display:grid;gap:4px}
.drawer__link{display:flex;align-items:center;gap:8px;padding:12px 0;font-size:15px;font-weight:700;color:var(--c-text);border-bottom:1px solid var(--c-line)}
.drawer__link::before{content:"";width:8px;height:8px;border-radius:50%;background-color:var(--c-brand-light);flex-shrink:0}
.drawer__cta{display:grid;gap:10px;margin-top:24px}

/* sticky header（スクロール後に出る細いヘッダー） */
.sticky-header{
  position:fixed;top:10px;left:0;right:0;z-index:97;margin:0 20px;height:56px;
  background-color:var(--c-base);border-radius:50px;
  opacity:0;visibility:hidden;transform:translateY(-20px);
  transition:opacity .3s,visibility .3s,transform .3s;
}
@media(min-width:960px){.sticky-header{top:min(1.171875vw,15px);margin:0 min(2.34375vw,30px);height:min(4.6875vw,60px)}}
.sticky-header.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.sticky-header__inner{display:flex;align-items:center;height:100%;padding:0 5px 0 16px}
@media(min-width:960px){.sticky-header__inner{padding:0 min(.390625vw,5px) 0 min(1.5625vw,20px)}}
.sticky-header__brand{display:flex;align-items:center;gap:8px;flex-shrink:0}
.sticky-header__brand img{width:26px}
@media(min-width:960px){.sticky-header__brand img{width:min(2.65625vw,34px)}}
.sticky-header__name{font-size:13px;font-weight:700;white-space:nowrap;letter-spacing:.02em}
@media(min-width:960px){.sticky-header__name{font-size:min(1.171875vw,15px)}}
.sticky-header__nav{display:none}
@media(min-width:960px){.sticky-header__nav{display:flex;align-items:center;margin-left:auto;gap:min(1.5625vw,20px)}}
.sticky-header__cta{display:flex;align-items:center;gap:8px;margin-left:auto}
@media(min-width:960px){.sticky-header__cta{margin-left:min(1.875vw,24px)}}
.sticky-header__tel{
  display:flex;align-items:center;gap:8px;background-color:var(--c-brand);border-radius:6px;
  padding:6px 12px;white-space:nowrap;flex-shrink:0;
}
.sticky-header__tel-number{font-family:var(--font-en);font-style:italic;font-size:14px;font-weight:700;color:var(--c-base);line-height:1}
@media(min-width:960px){.sticky-header__tel-number{font-size:min(1.25vw,16px)}}
.sticky-header__line{
  display:flex;align-items:center;background-color:var(--c-accent);color:var(--c-base);border-radius:6px;
  padding:6px 14px;font-size:13px;font-weight:700;white-space:nowrap;
}
@media(min-width:960px){.sticky-header__line{font-size:min(1.09375vw,14px);padding:min(.625vw,8px) min(1.25vw,16px)}}

/* =========================================================================
   FV
   ========================================================================= */
.top-fv{position:relative;width:100%;height:100svh;overflow:hidden;display:flex;flex-direction:column;min-height:700px}
@media(min-width:960px){.top-fv{max-height:min(218.6666666667vw,820px);min-height:670px}}
.top-fv__slider{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}
.top-fv__slider .swiper-wrapper,.top-fv__slider .swiper-slide{height:100%}
.top-fv__slider:not(.swiper-initialized) .swiper-slide{width:100%}
.top-fv__slider:not(.swiper-initialized) .swiper-slide~.swiper-slide{display:none}
.top-fv__slide-img{width:100%;height:100%;object-fit:cover;display:block;animation:fv-zoom 20s linear both paused}
@media(min-width:960px){.top-fv__slide-img{animation:fv-zoom 30s linear both paused}}
@keyframes fv-zoom{0%{scale:1}to{scale:1.15}}
.is-zooming .top-fv__slide-img,
.top-fv__slider:not(.swiper-initialized) .swiper-slide:first-child .top-fv__slide-img{animation-play-state:running}
/* FV写真の上のオーバーレイ。濃度は --fv-overlay-opacity 1本で決まる
   （屋外・明るい写真＝濃く .80〜.90 ／ 室内・暗い写真＝薄く .35〜.50） */
.top-fv__overlay{
  position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;
  opacity:var(--fv-overlay-opacity);
  background:
    linear-gradient(180deg,rgba(0,0,0,.28) 0%,rgba(0,0,0,0) 32%),
    linear-gradient(100deg,
      var(--fv-overlay-color) 0%,
      color-mix(in srgb,var(--fv-overlay-color) 72%,transparent) 34%,
      color-mix(in srgb,var(--fv-overlay-color) 26%,transparent) 56%,
      color-mix(in srgb,var(--fv-overlay-color) 36%,transparent) 74%,
      color-mix(in srgb,var(--fv-overlay-color) 72%,transparent) 100%);
}

/* FV上部の波形デコレーション（任意。要素ごと消せば消える） */
.top-fv__wave{
  position:absolute;top:0;left:0;width:100%;height:70px;z-index:2;pointer-events:none;
  color:var(--c-base);opacity:.14;
}
@media(min-width:960px){.top-fv__wave{height:min(9.375vw,120px)}}
.top-fv__wave svg{display:block;width:100%;height:100%}
.top-fv__inner{display:flex;flex-direction:column;justify-content:flex-end;position:relative;z-index:4;flex:1;min-height:0}
@media(min-width:960px){.top-fv__inner{justify-content:center}}
.top-fv__body{position:relative;z-index:4;padding-bottom:35px}
@media(min-width:960px){.top-fv__body{margin-top:20vh;padding-left:min(3.125vw,40px);padding-bottom:0}}
.top-fv__tagline{
  display:inline-block;padding:6px 12px;border:1px solid var(--c-brand);border-radius:20px;background-color:var(--c-base);
  font-size:13px;font-weight:700;color:var(--c-text);line-height:1.5;letter-spacing:.04em;font-feature-settings:"palt";
}
@media(min-width:960px){
  .top-fv__tagline{padding:min(.390625vw,5px) min(2.03125vw,26px);border-radius:min(3.125vw,40px);font-size:min(1.5625vw,20px);letter-spacing:.02em}
}
.top-fv__catch{
  font-size:36px;font-weight:700;color:var(--c-base);text-align:left;line-height:1.35;letter-spacing:.02em;
  margin-top:10px;font-feature-settings:"palt";
}
@media(min-width:960px){
  .top-fv__catch{font-size:min(4.375vw,56px);line-height:1.4;letter-spacing:0;margin-top:min(1.875vw,24px)}
}
.top-fv__catch em{font-style:normal;color:var(--c-on-brand-em)}
.top-fv__catch-line{display:block;overflow:hidden}
.top-fv__catch-line>span{display:inline-block;transform:translateY(100%)}
.top-fv__sub{
  margin-top:14px;font-size:13px;font-weight:500;color:var(--c-base);line-height:1.9;letter-spacing:.02em;
  font-feature-settings:"palt";
}
@media(min-width:960px){.top-fv__sub{margin-top:min(1.875vw,24px);font-size:min(1.25vw,16px)}}

.top-fv__bottom-content{display:flex;flex-direction:column-reverse;gap:23px;width:100%;margin-top:20px}
@media(min-width:960px){
  .top-fv__bottom-content{display:grid;grid-template-columns:620fr 320fr;gap:min(10.9375vw,140px);width:auto;margin-top:min(5vw,64px);align-items:end}
}
.top-fv__cta{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}
@media(min-width:960px){.top-fv__cta{gap:min(1.25vw,16px);width:auto}}

/* 実績バッジ3点 */
.top-fv__badges-wrap{display:grid;gap:6px;margin-top:15px}
@media(min-width:960px){.top-fv__badges-wrap{gap:min(1.171875vw,15px);margin-top:0;transform:translateY(max(-1.5625vw,-20px))}}
.top-fv__badges{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
@media(min-width:960px){.top-fv__badges{gap:min(.9375vw,12px)}}
.badge{
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  background-color:var(--c-base);border-radius:12px;padding:8px 4px 10px;text-align:center;
}
@media(min-width:960px){.badge{border-radius:min(.9375vw,12px);padding:min(.78125vw,10px) min(.3125vw,4px) min(.9375vw,12px)}}
.badge__icon{
  width:26px;height:26px;border-radius:50%;background-color:var(--c-brand);color:var(--c-base);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
@media(min-width:960px){.badge__icon{width:min(2.5vw,32px);height:min(2.5vw,32px)}}
.badge__icon svg{width:60%;height:60%}
.badge__label{
  margin-top:3px;font-size:10px;font-weight:700;color:var(--c-brand);line-height:1.3;letter-spacing:.02em;
  font-feature-settings:"palt";white-space:nowrap;
}
@media(min-width:960px){.badge__label{font-size:min(.9375vw,12px);margin-top:min(.3125vw,4px)}}
.badge__figure{display:flex;align-items:baseline;justify-content:center;gap:2px;line-height:1}
.badge__num{
  font-family:var(--font-en);font-weight:700;font-style:italic;
  font-size:26px;color:var(--c-figure);line-height:1;letter-spacing:-.02em;
}
@media(min-width:960px){.badge__num{font-size:min(3.125vw,40px)}}
.badge__unit{font-size:11px;font-weight:700;color:var(--c-text);line-height:1}
@media(min-width:960px){.badge__unit{font-size:min(1.09375vw,14px)}}
.top-fv__badges-note{font-size:10px;font-weight:400;color:var(--c-base);text-align:right;line-height:1.4}
@media(min-width:960px){.top-fv__badges-note{font-size:min(.859375vw,11px);text-align:center}}

/* SP：FVは内容量が多いので高さを伸ばす（ヘッダーとの重なり防止） */
@media(max-width:959px){
  .top-fv{height:auto;min-height:100svh}
  .top-fv__inner{padding-top:92px}
  .top-fv__catch{font-size:32px}
  .top-fv__sub{font-size:12.5px;line-height:1.85}
  .top-fv__badges-note{text-align:left}
  .top-fv__overlay{
    background:
      linear-gradient(180deg,
        var(--fv-overlay-color) 0%,
        color-mix(in srgb,var(--fv-overlay-color) 66%,transparent) 34%,
        color-mix(in srgb,var(--fv-overlay-color) 40%,transparent) 60%,
        color-mix(in srgb,var(--fv-overlay-color) 82%,transparent) 100%);
  }
  .btn--cta-primary,.btn--cta-accent{padding-right:34px}
  .btn__tel{font-size:1.02em}
}

/* 導線バー4分割 */
.top-fv__nav{position:relative;z-index:91;background-color:transparent;margin-top:auto}
.top-fv__nav-list{display:grid;grid-template-columns:1fr 1fr}
@media(min-width:960px){.top-fv__nav-list{grid-template-columns:repeat(4,1fr)}}
.top-fv__nav-item{border-top:1px solid rgba(255,255,255,.4);border-right:1px solid rgba(255,255,255,.4);border-bottom:1px solid rgba(255,255,255,.4)}
.top-fv__nav-item:last-child{border-right:none}
.top-fv__nav-link{
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;
  padding:14px 8px;font-size:11px;font-weight:700;color:var(--c-base);text-align:center;line-height:1.4;
  background-color:color-mix(in srgb, var(--c-brand) 40%, transparent);transition:background-color .3s;font-feature-settings:"palt";height:100%;
}
@media(min-width:960px){
  .top-fv__nav-link{flex-direction:row;gap:min(.9375vw,12px);padding:0 min(1.25vw,16px);font-size:min(1.171875vw,15px);text-align:left;height:min(6.015625vw,77px)}
  .top-fv__nav-link:hover{opacity:1;background-color:var(--c-brand-dark)}
}
.top-fv__nav-icon{width:28px;height:28px;flex-shrink:0}
@media(min-width:960px){.top-fv__nav-icon{width:min(1.5625vw,20px);height:min(1.5625vw,20px)}}

/* scroll（右端の縦組み） */
.top-fv__scroll{display:none}
@media(min-width:960px){
  .top-fv__scroll{display:flex;position:absolute;top:46%;transform:translateY(-50%);right:min(3.90625vw,50px);z-index:91}
}
.scroll-down{display:flex;flex-direction:column;align-items:center;gap:8px}
.scroll-down__label{color:var(--c-base);font-size:12px;font-weight:500;letter-spacing:0;writing-mode:vertical-lr;font-family:var(--font-en)}
.scroll-down__track{position:relative;width:2px;height:110px;background-color:rgba(255,255,255,.3);overflow:hidden}
@media(min-width:960px){.scroll-down__track{height:min(9.375vw,120px)}}
.scroll-down__bar{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--c-base);animation:scroll-down-bar 2s ease-in-out infinite}
@keyframes scroll-down-bar{
  0%{transform:scaleY(0);transform-origin:0 0}
  25%{transform:scaleY(1);transform-origin:0 0}
  25.1%{transform:scaleY(1);transform-origin:0 100%}
  50%{transform:scaleY(0);transform-origin:0 100%}
  50.1%,to{transform:scaleY(0);transform-origin:0 0}
}

/* =========================================================================
   01 お悩み（チェックリスト＋タグ行）
   ========================================================================= */
.sec-problem{background-color:var(--c-base);padding:60px 0 50px}
@media(min-width:960px){.sec-problem{padding:min(7.8125vw,100px) 0 min(6.25vw,80px)}}
.sec-problem__list{display:grid;gap:10px;margin-top:32px}
@media(min-width:960px){.sec-problem__list{grid-template-columns:repeat(2,1fr);gap:min(1.25vw,16px);margin-top:min(4.6875vw,60px)}}
.sec-problem__item{
  display:flex;align-items:flex-start;gap:10px;background-color:var(--c-surface);border-radius:12px;
  padding:14px 16px;font-size:14px;font-weight:700;line-height:1.6;font-feature-settings:"palt";
}
@media(min-width:960px){
  .sec-problem__item{border-radius:min(.9375vw,12px);padding:min(1.5625vw,20px) min(1.875vw,24px);font-size:min(1.25vw,16px);gap:min(.9375vw,12px)}
}
.sec-problem__check{width:20px;height:20px;flex-shrink:0;margin-top:3px;color:var(--c-brand)}
@media(min-width:960px){.sec-problem__check{width:min(1.5625vw,20px);height:min(1.5625vw,20px)}}
.sec-problem__note{margin-top:24px;font-size:14px;line-height:1.9;text-align:center;font-feature-settings:"palt"}
@media(min-width:960px){.sec-problem__note{margin-top:min(3.125vw,40px);font-size:min(1.25vw,16px)}}

.sec-problem__tags{margin-top:32px;display:grid;gap:12px}
@media(min-width:960px){.sec-problem__tags{margin-top:min(4.6875vw,60px);gap:min(1.25vw,16px)}}
.tagrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;background-color:var(--c-base);border:1px solid var(--c-line);border-radius:12px;padding:12px 14px}
@media(min-width:960px){.tagrow{border-radius:min(.9375vw,12px);padding:min(1.25vw,16px) min(1.5625vw,20px);gap:min(.625vw,8px)}}
.tagrow__head{
  background-color:var(--c-brand);color:var(--c-base);border-radius:4px;padding:3px 10px;
  font-size:12px;font-weight:700;letter-spacing:.1em;white-space:nowrap;
}
@media(min-width:960px){.tagrow__head{font-size:min(1.09375vw,14px);padding:min(.3125vw,4px) min(.9375vw,12px)}}
.tagrow__item{font-size:13px;font-weight:700;color:var(--c-text);letter-spacing:.02em;font-feature-settings:"palt"}
@media(min-width:960px){.tagrow__item{font-size:min(1.171875vw,15px)}}
.tagrow__item::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background-color:var(--c-brand-light);margin-right:6px;vertical-align:middle}

/* =========================================================================
   02 わたしたちについて（パララックス面。角丸240pxの窓で写真を抜く）
   ========================================================================= */
.sec-about{position:relative;padding:70px 0 90px;background:linear-gradient(to bottom,var(--c-base) 50%,var(--c-surface-2) 50%)}
@media(min-width:960px){.sec-about{padding:min(13.671875vw,175px) 0}}
.sec-about__bg-image{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border-radius:120px;z-index:0}
@media(min-width:960px){.sec-about__bg-image{border-radius:min(18.75vw,240px)}}
.sec-about__bg-inner{
  position:absolute;top:-20%;right:0;bottom:-20%;left:0;
  background:var(--about-bg-image) center/cover no-repeat;will-change:transform;
}
.sec-about__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgb(0 0 0 / var(--photo-overlay-opacity));z-index:1}
.sec-about__body{position:relative;z-index:2}
.sec-about__lead{
  margin-top:24px;font-size:14px;font-weight:500;color:var(--c-base);line-height:2;text-align:center;
  font-feature-settings:"palt";
}
@media(min-width:960px){.sec-about__lead{margin-top:min(2.5vw,32px);font-size:min(1.25vw,16px)}}
.sec-about__cards{display:grid;gap:12px;margin-top:32px}
@media(min-width:960px){.sec-about__cards{grid-template-columns:repeat(3,1fr);gap:min(1.875vw,24px);margin-top:min(4.6875vw,60px)}}
.pillar{background-color:var(--c-base);border-radius:20px;padding:24px 20px}
@media(min-width:960px){.pillar{border-radius:min(1.5625vw,20px);padding:min(2.5vw,32px) min(2.1875vw,28px)}}
.pillar__icon{width:48px;height:48px;border-radius:50%;background-color:var(--c-brand-light);color:var(--c-base);display:flex;align-items:center;justify-content:center;margin:0 auto}
@media(min-width:960px){.pillar__icon{width:min(4.375vw,56px);height:min(4.375vw,56px)}}
.pillar__icon svg{width:55%;height:55%}
.pillar__title{
  margin-top:14px;font-size:18px;font-weight:700;color:var(--c-brand);text-align:center;line-height:1.5;
  letter-spacing:.1em;font-feature-settings:"palt";
}
@media(min-width:960px){.pillar__title{margin-top:min(1.25vw,16px);font-size:min(1.71875vw,22px)}}
.pillar__text{margin-top:10px;font-size:14px;line-height:1.9;font-feature-settings:"palt"}
@media(min-width:960px){.pillar__text{margin-top:min(.9375vw,12px);font-size:min(1.25vw,16px)}}

/* =========================================================================
   03 選ばれる理由（第2面＋背後の巨大円）
   ========================================================================= */
.sec-reason{position:relative;overflow:hidden;background-color:var(--c-surface-2);padding:90px 0 83px}
@media(min-width:960px){.sec-reason{padding:min(7.8125vw,100px) 0 min(9.375vw,120px)}}
.sec-reason__circle{position:absolute;width:935px;height:935px;border-radius:50%;background-color:var(--c-surface-2-lite);top:30px;left:50%;transform:translate(-50%);z-index:0}
@media(min-width:960px){.sec-reason__circle{top:min(3.125vw,40px);width:min(78.125vw,1000px);height:min(78.125vw,1000px)}}
.sec-reason .heading1__title{color:var(--c-brand)}
.sec-reason__inner{position:relative;z-index:1}
.sec-reason__list{display:grid;gap:12px;margin-top:32px}
@media(min-width:960px){.sec-reason__list{grid-template-columns:repeat(3,1fr);gap:min(1.5625vw,20px);margin-top:min(4.6875vw,60px)}}
.reason{background-color:var(--c-base);border-radius:20px;padding:22px 20px;position:relative}
@media(min-width:960px){.reason{border-radius:min(1.5625vw,20px);padding:min(2.34375vw,30px) min(2.1875vw,28px)}}
.reason__num{
  font-family:var(--font-en);font-style:italic;font-weight:700;
  font-size:30px;color:var(--c-brand-light);line-height:1;
}
@media(min-width:960px){.reason__num{font-size:min(2.8125vw,36px)}}
.reason__title{margin-top:6px;font-size:17px;font-weight:700;color:var(--c-text);line-height:1.6;letter-spacing:.05em;font-feature-settings:"palt"}
@media(min-width:960px){.reason__title{font-size:min(1.5625vw,20px);margin-top:min(.625vw,8px)}}
.reason__text{margin-top:8px;font-size:13px;line-height:1.9;color:var(--c-text);font-feature-settings:"palt"}
@media(min-width:960px){.reason__text{font-size:min(1.09375vw,14px);margin-top:min(.78125vw,10px)}}
.sec-reason__note{
  position:relative;z-index:1;margin-top:24px;background-color:var(--c-base);border-radius:12px;
  padding:18px 20px;font-size:14px;line-height:1.9;text-align:center;font-weight:700;font-feature-settings:"palt";
}
@media(min-width:960px){.sec-reason__note{margin-top:min(3.125vw,40px);border-radius:min(.9375vw,12px);padding:min(1.875vw,24px);font-size:min(1.25vw,16px)}}

/* =========================================================================
   CTA帯
   ========================================================================= */
.cta{background-color:var(--c-brand);padding:50px 0}
@media(min-width:960px){.cta{padding:min(5.46875vw,70px) 0}}
.cta__title{font-size:22px;font-weight:700;color:var(--c-base);text-align:center;line-height:1.6;letter-spacing:.05em;font-feature-settings:"palt"}
@media(min-width:960px){.cta__title{font-size:min(2.8125vw,36px)}}
.cta__text{margin-top:14px;font-size:14px;color:var(--c-base);text-align:center;line-height:1.9;font-feature-settings:"palt"}
@media(min-width:960px){.cta__text{margin-top:min(1.5625vw,20px);font-size:min(1.25vw,16px)}}
.cta__buttons{display:grid;gap:12px;margin-top:26px}
@media(min-width:960px){.cta__buttons{grid-template-columns:repeat(3,1fr);gap:min(1.25vw,16px);margin-top:min(3.125vw,40px)}}
.cta__info{margin-top:20px;font-size:12px;color:var(--c-base);text-align:center;line-height:1.8}
@media(min-width:960px){.cta__info{margin-top:min(1.875vw,24px);font-size:min(1.09375vw,14px)}}

/* =========================================================================
   04 サービス（カード3枚）
   ========================================================================= */
.sec-service{background-color:var(--c-surface);padding:60px 0 70px}
@media(min-width:960px){.sec-service{padding:min(7.8125vw,100px) 0 min(7.8125vw,100px)}}
.sec-service .heading1__title{color:var(--c-brand)}
.sec-service__cards{display:grid;gap:20px;margin-top:32px}
@media(min-width:960px){.sec-service__cards{grid-template-columns:repeat(3,1fr);gap:min(1.875vw,24px);margin-top:min(4.6875vw,60px)}}
.card-service{background-color:var(--c-base);border-radius:20px;overflow:hidden;display:flex;flex-direction:column}
@media(min-width:960px){.card-service{border-radius:min(1.5625vw,20px)}}
.card-service__image{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.card-service__body{padding:20px;flex:1;display:flex;flex-direction:column}
@media(min-width:960px){.card-service__body{padding:min(2.1875vw,28px) min(1.875vw,24px)}}
.card-service__title{font-size:19px;font-weight:700;color:var(--c-brand);line-height:1.5;letter-spacing:.05em;font-feature-settings:"palt"}
@media(min-width:960px){.card-service__title{font-size:min(1.71875vw,22px)}}
.card-service__time{
  display:inline-block;margin-top:8px;background-color:var(--c-brand-light);color:var(--c-base);border-radius:4px;
  padding:2px 10px;font-size:12px;font-weight:700;letter-spacing:.1em;width:fit-content;
}
@media(min-width:960px){.card-service__time{font-size:min(1.09375vw,14px)}}
.card-service__text{margin-top:12px;font-size:14px;line-height:1.9;font-feature-settings:"palt"}
@media(min-width:960px){.card-service__text{font-size:min(1.25vw,16px);margin-top:min(1.25vw,16px)}}
.card-service__note{margin-top:auto;padding-top:12px;font-size:12px;color:var(--c-text-sub);line-height:1.7}
@media(min-width:960px){.card-service__note{font-size:min(1.09375vw,14px)}}

/* =========================================================================
   05 ご利用の流れ（主色ベタ面＋カード6枚）
   ========================================================================= */
.sec-flow{position:relative;background-color:var(--c-brand);padding:60px 0 70px}
@media(min-width:960px){.sec-flow{padding:min(7.8125vw,100px) 0 min(7.8125vw,100px)}}
.sec-flow__list{display:grid;gap:12px;margin-top:32px}
@media(min-width:960px){.sec-flow__list{grid-template-columns:repeat(3,1fr);gap:min(1.5625vw,20px);margin-top:min(4.6875vw,60px)}}
.flow{background-color:var(--c-base);border-radius:12px;padding:20px}
@media(min-width:960px){.flow{border-radius:min(.9375vw,12px);padding:min(1.875vw,24px)}}
.flow__head{display:flex;align-items:center;gap:10px}
.flow__num{
  width:38px;height:38px;border-radius:50%;background-color:var(--c-brand);color:var(--c-base);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-en);font-style:italic;font-weight:700;font-size:16px;
}
@media(min-width:960px){.flow__num{width:min(3.4375vw,44px);height:min(3.4375vw,44px);font-size:min(1.40625vw,18px)}}
.flow__title{font-size:17px;font-weight:700;line-height:1.5;letter-spacing:.05em;font-feature-settings:"palt"}
@media(min-width:960px){.flow__title{font-size:min(1.5625vw,20px)}}
.flow__text{margin-top:10px;font-size:13px;line-height:1.9;font-feature-settings:"palt"}
@media(min-width:960px){.flow__text{margin-top:min(.9375vw,12px);font-size:min(1.09375vw,14px)}}
.sec-flow__note{
  margin-top:24px;text-align:center;font-size:12px;color:var(--c-base);line-height:1.8;
}
@media(min-width:960px){.sec-flow__note{margin-top:min(3.125vw,40px);font-size:min(1.09375vw,14px)}}

/* =========================================================================
   06 お客様の声（カード送りSwiper＋カーブ区切り）
   ========================================================================= */
.sec-voice{position:relative;background-color:var(--c-surface-2);overflow:hidden}
.sec-voice__curve{top:0;background:radial-gradient(70% 100% at 50% 100%,transparent 99.5%,var(--c-brand) 100%)}
.sec-voice__inner{position:relative;z-index:1;padding-top:60px;padding-bottom:40px}
@media(min-width:960px){.sec-voice__inner{padding-top:min(7.8125vw,100px);padding-bottom:min(6.25vw,80px)}}
.sec-voice .heading1__title{color:var(--c-brand)}
.sec-voice__slider-wrap{position:relative;margin-top:30px}
@media(max-width:959px){.sec-voice__slider-wrap{max-width:340px;margin-left:auto;margin-right:auto}}
@media(min-width:960px){.sec-voice__slider-wrap{margin-top:min(3.125vw,40px)}}
.sec-voice__slider{overflow:visible}
@media(min-width:960px){.sec-voice__slider{overflow:hidden}}
.sec-voice__slide{height:auto}
@media(max-width:959px){.sec-voice__slide{width:280px!important}}
.card-voice{
  display:flex;flex-direction:column;height:100%;min-height:280px;background-color:var(--c-base);
  border-radius:12px;padding:20px;color:inherit;
}
@media(min-width:960px){.card-voice{min-height:min(26.5625vw,340px);border-radius:min(.9375vw,12px);padding:min(2.34375vw,30px)}}
.card-voice__header{display:flex;align-items:center;gap:12px}
.card-voice__avatar{
  width:40px;height:40px;border-radius:50%;background-color:var(--c-surface-2);color:var(--c-brand);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
@media(min-width:960px){.card-voice__avatar{width:min(3.75vw,48px);height:min(3.75vw,48px)}}
.card-voice__avatar svg{width:55%;height:55%}
.card-voice__meta{font-size:13px;font-weight:700;color:var(--c-brand);line-height:1.4}
@media(min-width:960px){.card-voice__meta{font-size:min(1.09375vw,14px)}}
.card-voice__stars{color:var(--c-figure);font-size:12px;letter-spacing:.1em;line-height:1.4}
.card-voice__text{margin-top:14px;font-size:13px;line-height:1.9;font-feature-settings:"palt"}
@media(min-width:960px){.card-voice__text{margin-top:min(1.25vw,16px);font-size:min(1.171875vw,15px)}}
.slider-nav{display:flex;justify-content:center;gap:12px;margin-top:20px}
@media(min-width:960px){.slider-nav{margin-top:min(2.5vw,32px)}}
.slider-arrow{
  width:44px;height:44px;border-radius:50%;background-color:var(--c-brand);color:var(--c-base);
  display:flex;align-items:center;justify-content:center;transition:background-color .3s;
}
@media(min-width:960px){.slider-arrow{width:min(3.90625vw,50px);height:min(3.90625vw,50px)}.slider-arrow:hover{opacity:1;background-color:var(--c-accent)}}
.slider-arrow svg{width:38%;height:38%}
.slider-arrow--prev svg{transform:scaleX(-1)}
.sec-voice__scores{
  display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:28px;
  background-color:var(--c-base);border-radius:12px;padding:18px 16px;
}
@media(min-width:960px){.sec-voice__scores{grid-template-columns:repeat(5,1fr);gap:min(.9375vw,12px);margin-top:min(3.125vw,40px);border-radius:min(.9375vw,12px);padding:min(1.875vw,24px)}}
.score{text-align:center}
.score__label{font-size:11px;font-weight:700;color:var(--c-brand);line-height:1.4;font-feature-settings:"palt"}
@media(min-width:960px){.score__label{font-size:min(1.09375vw,14px)}}
.score__num{
  font-family:var(--font-en);font-style:italic;font-weight:700;
  font-size:22px;color:var(--c-text);line-height:1.2;
}
@media(min-width:960px){.score__num{font-size:min(2.1875vw,28px)}}
.sec-voice__source{margin-top:16px;font-size:11px;color:var(--c-text);text-align:center;line-height:1.7}
@media(min-width:960px){.sec-voice__source{font-size:min(1.09375vw,14px);margin-top:min(1.5625vw,20px)}}

/* =========================================================================
   07 ギャラリー（カード送りSwiper）
   ========================================================================= */
.sec-gallery{position:relative;background-color:var(--c-surface-2);overflow:hidden;padding-bottom:60px}
@media(min-width:960px){.sec-gallery{padding-bottom:min(9.375vw,120px)}}
.sec-gallery .heading1__title{color:var(--c-brand)}
.sec-gallery__slider-wrap{position:relative;margin-top:30px}
@media(max-width:959px){.sec-gallery__slider-wrap{max-width:340px;margin-left:auto;margin-right:auto}}
@media(min-width:960px){.sec-gallery__slider-wrap{margin-top:min(3.125vw,40px)}}
.sec-gallery__slider{overflow:visible}
@media(min-width:960px){.sec-gallery__slider{overflow:hidden}}
.sec-gallery__slide{height:auto}
@media(max-width:959px){.sec-gallery__slide{width:280px!important}}
.card-gallery{background-color:var(--c-base);border-radius:12px;overflow:hidden;height:100%}
@media(min-width:960px){.card-gallery{border-radius:min(.9375vw,12px)}}
.card-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.card-gallery__caption{padding:12px 16px;font-size:13px;font-weight:700;line-height:1.6;font-feature-settings:"palt"}
@media(min-width:960px){.card-gallery__caption{padding:min(1.25vw,16px);font-size:min(1.171875vw,15px)}}
.sec-gallery__list{display:grid;gap:8px;margin-top:24px;max-width:540px;margin-inline:auto}
@media(min-width:960px){.sec-gallery__list{grid-template-columns:repeat(2,1fr);gap:min(.9375vw,12px);margin-top:min(3.125vw,40px);max-width:min(70.3125vw,900px)}}
.sec-gallery__list li{
  display:flex;align-items:center;gap:8px;background-color:var(--c-base);border-radius:8px;padding:10px 14px;
  font-size:13px;font-weight:700;line-height:1.6;font-feature-settings:"palt";
}
@media(min-width:960px){.sec-gallery__list li{border-radius:min(.625vw,8px);padding:min(1.25vw,16px);font-size:min(1.171875vw,15px)}}
.sec-gallery__list li::before{content:"";width:8px;height:8px;border-radius:50%;background-color:var(--c-brand-light);flex-shrink:0}

/* =========================================================================
   08 料金（セクション面）
   ========================================================================= */
.sec-price{position:relative;background-color:var(--c-surface);overflow:hidden;padding-top:50px;padding-bottom:80px}
@media(min-width:960px){.sec-price{padding-top:min(6.71875vw,86px);padding-bottom:min(7.8125vw,100px)}}
.sec-price .heading1__title{color:var(--c-brand)}
.sec-price__block{margin-top:36px}
@media(min-width:960px){.sec-price__block{margin-top:min(5.859375vw,75px)}}
.sec-price__block-title{
  font-size:19px;font-weight:700;color:var(--c-brand);text-align:center;line-height:1.5;
  text-decoration:underline;text-underline-offset:14px;letter-spacing:.1em;
}
@media(min-width:960px){.sec-price__block-title{font-size:min(2.1875vw,28px);padding-bottom:min(.9375vw,12px)}}
.price-table{width:100%;margin-top:24px;background-color:var(--c-base);border-radius:12px;overflow:hidden}
@media(min-width:960px){.price-table{margin-top:min(2.5vw,32px);border-radius:min(.9375vw,12px)}}
.price-table tr+tr{border-top:1px solid var(--c-line)}
.price-table th,.price-table td{padding:16px;text-align:left;vertical-align:middle}
@media(min-width:960px){.price-table th,.price-table td{padding:min(1.875vw,24px) min(2.5vw,32px)}}
.price-table th{font-size:15px;font-weight:700;line-height:1.6;font-feature-settings:"palt"}
@media(min-width:960px){.price-table th{font-size:min(1.40625vw,18px);width:56%}}
.price-table th small{display:block;font-size:12px;font-weight:400;color:var(--c-text-sub);line-height:1.6;margin-top:2px}
@media(min-width:960px){.price-table th small{font-size:min(1.09375vw,14px)}}
.price-table td{
  text-align:right;font-family:var(--font-en);font-weight:700;
  font-size:20px;color:var(--c-accent);white-space:nowrap;
}
@media(min-width:960px){.price-table td{font-size:min(2.1875vw,28px)}}
.price-table td span{font-family:var(--font-jp);font-size:13px;color:var(--c-text);font-weight:700}
@media(min-width:960px){.price-table td span{font-size:min(1.171875vw,15px)}}
.price-table td del{display:block;font-size:13px;color:var(--c-text-sub);font-weight:400}
@media(min-width:960px){.price-table td del{font-size:min(1.171875vw,15px)}}
.price-table--sub td{color:var(--c-brand)}
.sec-price__pay{margin-top:28px;background-color:var(--c-base);border-radius:12px;padding:20px}
@media(min-width:960px){.sec-price__pay{margin-top:min(3.125vw,40px);border-radius:min(.9375vw,12px);padding:min(2.34375vw,30px)}}
.sec-price__pay-title{font-size:15px;font-weight:700;color:var(--c-brand);letter-spacing:.1em}
@media(min-width:960px){.sec-price__pay-title{font-size:min(1.40625vw,18px)}}
.sec-price__pay-text{margin-top:8px;font-size:13px;line-height:1.9;font-feature-settings:"palt"}
@media(min-width:960px){.sec-price__pay-text{font-size:min(1.171875vw,15px);margin-top:min(.9375vw,12px)}}
.sec-price__notes{margin-top:20px;display:grid;gap:4px}
.sec-price__notes li{font-size:12px;color:var(--c-text);line-height:1.8;font-feature-settings:"palt"}
@media(min-width:960px){.sec-price__notes li{font-size:min(1.09375vw,14px)}}

/* =========================================================================
   09 代表紹介（主色ベタ面＋カーブ区切り）
   ========================================================================= */
.sec-profile{position:relative;background-color:var(--c-brand)}
.sec-profile__curve{top:0;background:radial-gradient(70% 100% at 50% 100%,transparent 99.5%,var(--c-surface) 100%)}
.sec-profile__inner{position:relative;z-index:1;padding-top:62px;padding-bottom:48px}
@media(min-width:960px){.sec-profile__inner{padding-top:min(7.8125vw,100px);padding-bottom:min(7.03125vw,90px)}}
.sec-profile__content{display:grid;gap:28px;margin-top:32px}
@media(min-width:960px){.sec-profile__content{grid-template-columns:min(30.46875vw,390px) 1fr;gap:min(4.6875vw,60px);align-items:start;margin-top:min(4.6875vw,60px)}}
.sec-profile__photo{border-radius:20px;overflow:hidden}
@media(min-width:960px){.sec-profile__photo{border-radius:min(1.5625vw,20px)}}
.sec-profile__photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 28%;display:block}
.sec-profile__name-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.sec-profile__role{font-size:13px;font-weight:700;color:var(--c-on-brand-em);letter-spacing:.1em}
@media(min-width:960px){.sec-profile__role{font-size:min(1.25vw,16px)}}
.sec-profile__name{font-size:26px;font-weight:700;color:var(--c-base);letter-spacing:.1em;line-height:1.4}
@media(min-width:960px){.sec-profile__name{font-size:min(3.125vw,40px)}}
.sec-profile__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.sec-profile__tags li{background-color:var(--c-base);color:var(--c-brand);border-radius:4px;padding:3px 12px;font-size:12px;font-weight:700;letter-spacing:.05em}
@media(min-width:960px){.sec-profile__tags li{font-size:min(1.09375vw,14px)}}
.sec-profile__text{margin-top:20px;font-size:14px;color:var(--c-base);line-height:2;font-feature-settings:"palt"}
@media(min-width:960px){.sec-profile__text{margin-top:min(2.34375vw,30px);font-size:min(1.25vw,16px)}}
.sec-profile__text p+p{margin-top:1.2em}
.sec-profile__career{margin-top:24px;background-color:var(--c-base);border-radius:12px;padding:18px 20px}
@media(min-width:960px){.sec-profile__career{margin-top:min(2.5vw,32px);border-radius:min(.9375vw,12px);padding:min(1.875vw,24px)}}
.sec-profile__career-title{font-size:14px;font-weight:700;color:var(--c-brand);letter-spacing:.1em}
@media(min-width:960px){.sec-profile__career-title{font-size:min(1.25vw,16px)}}
.sec-profile__career ul{margin-top:8px;display:grid;gap:4px}
.sec-profile__career li{display:flex;gap:8px;font-size:13px;line-height:1.8;font-feature-settings:"palt"}
@media(min-width:960px){.sec-profile__career li{font-size:min(1.171875vw,15px)}}
.sec-profile__career li::before{content:"";width:7px;height:7px;border-radius:50%;background-color:var(--c-brand-light);flex-shrink:0;margin-top:.55em}

/* =========================================================================
   10 FAQ（アコーディオン）
   ========================================================================= */
.sec-faq{background-color:var(--c-base);padding:60px 0 70px}
@media(min-width:960px){.sec-faq{padding:min(7.8125vw,100px) 0}}
.sec-faq .heading1__title{color:var(--c-brand)}
.sec-faq__list{display:grid;gap:10px;margin-top:32px}
@media(min-width:960px){.sec-faq__list{gap:min(.9375vw,12px);margin-top:min(4.6875vw,60px)}}
.faq{background-color:var(--c-surface);border-radius:12px;overflow:hidden}
@media(min-width:960px){.faq{border-radius:min(.9375vw,12px)}}
.faq__q{
  display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;
  padding:16px 48px 16px 18px;position:relative;
  font-size:15px;font-weight:700;line-height:1.6;font-feature-settings:"palt";
}
@media(min-width:960px){.faq__q{padding:min(1.5625vw,20px) min(4.6875vw,60px) min(1.5625vw,20px) min(1.875vw,24px);font-size:min(1.40625vw,18px)}}
.faq__mark{
  font-family:var(--font-en);font-style:italic;font-weight:700;
  color:var(--c-brand);font-size:18px;line-height:1.5;flex-shrink:0;
}
@media(min-width:960px){.faq__mark{font-size:min(1.71875vw,22px)}}
.faq__icon{position:absolute;right:18px;top:50%;transform:translateY(-50%);width:20px;height:20px;flex-shrink:0}
.faq__icon::before,.faq__icon::after{content:"";position:absolute;top:50%;left:50%;background-color:var(--c-brand);transition:transform .3s}
.faq__icon::before{width:16px;height:2px;transform:translate(-50%,-50%)}
.faq__icon::after{width:2px;height:16px;transform:translate(-50%,-50%)}
.faq__q.is-open .faq__icon::after{transform:translate(-50%,-50%) scaleY(0)}
.faq__a{display:none;padding:0 18px 18px 18px}
@media(min-width:960px){.faq__a{padding:0 min(4.6875vw,60px) min(1.875vw,24px) min(1.875vw,24px)}}
.faq__a-inner{display:flex;gap:12px;font-size:14px;line-height:1.9;font-feature-settings:"palt";border-top:1px solid var(--c-line);padding-top:14px}
@media(min-width:960px){.faq__a-inner{font-size:min(1.25vw,16px);padding-top:min(1.25vw,16px)}}
.faq__a-mark{font-family:var(--font-en);font-style:italic;font-weight:700;color:var(--c-accent);font-size:18px;line-height:1.6;flex-shrink:0}
@media(min-width:960px){.faq__a-mark{font-size:min(1.71875vw,22px)}}

/* =========================================================================
   11 アクセス
   ========================================================================= */
.sec-access{background-color:var(--c-surface);padding:60px 0 70px}
@media(min-width:960px){.sec-access{padding:min(7.8125vw,100px) 0}}
.sec-access .heading1__title{color:var(--c-brand)}
.sec-access__content{display:grid;gap:24px;margin-top:32px}
@media(min-width:960px){.sec-access__content{grid-template-columns:1fr min(35.15625vw,450px);gap:min(4.6875vw,60px);margin-top:min(4.6875vw,60px);align-items:start}}
.sec-access__map{border-radius:20px;overflow:hidden;background-color:var(--c-base)}
@media(min-width:960px){.sec-access__map{border-radius:min(1.5625vw,20px)}}
.sec-access__map img{width:100%;display:block}
.access-table{width:100%;background-color:var(--c-base);border-radius:12px;overflow:hidden}
@media(min-width:960px){.access-table{border-radius:min(.9375vw,12px)}}
.access-table tr+tr{border-top:1px solid var(--c-line)}
.access-table th,.access-table td{padding:12px 16px;text-align:left;vertical-align:top;font-size:13px;line-height:1.8}
@media(min-width:960px){.access-table th,.access-table td{padding:min(1.25vw,16px) min(1.875vw,24px);font-size:min(1.171875vw,15px)}}
.access-table th{font-weight:700;color:var(--c-brand);white-space:nowrap;width:5.5em}
.access-table__tel{color:var(--c-accent);font-weight:700}
.sec-access__route{margin-top:20px;background-color:var(--c-base);border-radius:12px;padding:20px}
@media(min-width:960px){.sec-access__route{margin-top:min(2.5vw,32px);border-radius:min(.9375vw,12px);padding:min(2.34375vw,30px)}}
.sec-access__route-title{font-size:15px;font-weight:700;color:var(--c-brand);letter-spacing:.1em}
@media(min-width:960px){.sec-access__route-title{font-size:min(1.40625vw,18px)}}
.sec-access__route p{margin-top:8px;font-size:13px;line-height:1.9;font-feature-settings:"palt"}
@media(min-width:960px){.sec-access__route p{font-size:min(1.171875vw,15px);margin-top:min(.9375vw,12px)}}
.sec-access__route p+.sec-access__route-title{margin-top:20px}

/* =========================================================================
   footer
   ========================================================================= */
.footer{position:relative;background-color:var(--c-base);padding-top:36px}
@media(min-width:960px){.footer{padding-top:min(2.8125vw,36px)}}
.footer__inner{padding:0 20px 30px;max-width:540px;margin:auto}
@media(min-width:960px){
  .footer__inner{display:grid;grid-template-columns:auto 1fr;align-items:flex-start;gap:0 min(7.03125vw,90px);max-width:min(100vw,1280px);margin:0 auto;padding:min(2.8125vw,36px) min(6.25vw,80px) min(3.125vw,40px)}
}
.footer__brand{display:flex;align-items:center;gap:12px}
.footer__brand img{width:52px}
@media(min-width:960px){.footer__brand img{width:min(5.46875vw,70px)}}
.footer__brand-name{font-size:17px;font-weight:700;letter-spacing:.05em;line-height:1.4}
@media(min-width:960px){.footer__brand-name{font-size:min(1.5625vw,20px)}}
.footer__address{margin-top:14px;font-size:12px;line-height:1.9;color:var(--c-text);font-feature-settings:"palt"}
@media(min-width:960px){.footer__address{font-size:min(1.09375vw,14px);margin-top:min(1.25vw,16px)}}
.footer__tel{color:var(--c-brand);font-weight:700}
.footer__nav{margin-top:24px;position:relative;padding:16px 0}
@media(min-width:960px){.footer__nav{grid-column:2;grid-row:1;margin-top:min(2.734375vw,35px);padding:min(1.5625vw,20px) 0}}
.footer__nav::before{content:"";position:absolute;inset:0;border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line);pointer-events:none}
.footer__menu{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 16px}
@media(min-width:960px){.footer__menu{grid-template-columns:repeat(4,1fr);gap:min(.9375vw,12px) min(1.875vw,24px)}}
.footer__menu a{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--c-text);line-height:1.5}
@media(min-width:960px){.footer__menu a{font-size:min(1.09375vw,14px)}}
.footer__menu a::before{content:"";width:8px;height:8px;border-radius:50%;background-color:var(--c-brand-light);flex-shrink:0;transition:background-color .3s}
@media(min-width:960px){.footer__menu a:hover{opacity:1;color:var(--c-brand)}.footer__menu a:hover::before{background-color:var(--c-brand)}}
.footer__copyright{background-color:var(--c-brand);color:var(--c-base);text-align:center;font-size:11px;padding:12px 20px;line-height:1.6}
@media(min-width:960px){.footer__copyright{font-size:min(1.09375vw,14px);padding:min(1.25vw,16px)}}
.footer__note{
  background-color:var(--c-surface);color:var(--c-text);text-align:center;font-size:11px;line-height:1.8;
  padding:14px 20px;font-feature-settings:"palt";
}
@media(min-width:960px){.footer__note{font-size:min(1.09375vw,14px);padding:min(1.5625vw,20px)}}

/* =========================================================================
   CTAポップアップ（右下固定）
   ========================================================================= */
.cta-popup{
  position:fixed;right:0;bottom:15px;z-index:92;width:100%;
  opacity:0;visibility:hidden;transform:translateY(50px);
  transition:opacity .3s ease,visibility .3s ease,transform .3s ease;
}
@media(min-width:960px){.cta-popup{bottom:30px;right:30px;width:auto}}
.cta-popup.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.cta-popup__container{display:flex;gap:10px;justify-content:center}
@media(min-width:960px){.cta-popup__container{justify-content:flex-end}}
.cta-popup__item{
  display:flex;align-items:center;justify-content:center;gap:8px;
  border-radius:6px;width:150px;height:56px;color:var(--c-base);font-size:13px;font-weight:700;
  letter-spacing:.02em;font-feature-settings:"palt";transition:background-color .3s;
}
@media(min-width:960px){.cta-popup__item{width:min(14.0625vw,180px);height:min(4.6875vw,60px);font-size:min(1.171875vw,15px)}}
.cta-popup__item svg{width:20px;height:20px;flex-shrink:0}
.cta-popup__item--line{background-color:var(--c-brand)}
.cta-popup__item--tel{background-color:var(--c-accent)}

/* =========================================================================
   無限マーキー（任意。セクションごと消せる）
   ========================================================================= */
.marquee{background-color:var(--c-brand);overflow:hidden;padding:14px 0}
@media(min-width:960px){.marquee{padding:min(1.25vw,16px) 0}}
.marquee__track{display:flex;width:max-content;will-change:transform}
.marquee__group{display:flex;align-items:center;flex-shrink:0}
.marquee__item{
  display:flex;align-items:center;gap:14px;padding-right:40px;white-space:nowrap;
  font-size:15px;font-weight:700;color:var(--c-base);letter-spacing:.1em;
  font-feature-settings:"palt";line-height:1.4;
}
@media(min-width:960px){.marquee__item{font-size:min(1.5625vw,20px);gap:min(1.25vw,16px);padding-right:min(3.125vw,40px)}}
.marquee__item::before{
  content:"";width:8px;height:8px;border-radius:50%;background-color:var(--c-on-brand-em);flex-shrink:0;
}
@media(min-width:960px){.marquee__item::before{width:min(.78125vw,10px);height:min(.78125vw,10px)}}

/* =========================================================================
   実績バッジ パターンB（控えめな1点表示）
   ※ パターンAは .badge（FVの節）／パターンCはHTMLごと削除
   ========================================================================= */
.badge-solo{
  display:inline-flex;align-items:center;gap:10px;background-color:var(--c-base);
  border-radius:50px;padding:8px 18px 8px 10px;width:fit-content;
}
@media(min-width:960px){.badge-solo{gap:min(.9375vw,12px);padding:min(.625vw,8px) min(1.875vw,24px) min(.625vw,8px) min(.78125vw,10px)}}
.badge-solo__icon{
  width:30px;height:30px;border-radius:50%;background-color:var(--c-brand);color:var(--c-base);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
@media(min-width:960px){.badge-solo__icon{width:min(2.8125vw,36px);height:min(2.8125vw,36px)}}
.badge-solo__icon svg{width:58%;height:58%}
.badge-solo__figure{
  font-family:var(--font-en);font-style:italic;font-weight:700;font-size:22px;
  color:var(--c-figure);line-height:1;letter-spacing:-.02em;
}
@media(min-width:960px){.badge-solo__figure{font-size:min(2.34375vw,30px)}}
.badge-solo__label{font-size:12px;font-weight:700;color:var(--c-text);line-height:1.4;font-feature-settings:"palt"}
@media(min-width:960px){.badge-solo__label{font-size:min(1.171875vw,15px)}}

/* =========================================================================
   prefers-reduced-motion
   ========================================================================= */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
  body{opacity:1!important;animation:none!important}
  .top-fv__slide-img{animation:none!important;scale:1!important}
  .scroll-down__bar{animation:none!important;transform:scaleY(1)}
  .top-fv__catch-line>span{transform:none!important}
  .js-scroll-anime{opacity:1!important;transform:none!important;filter:none!important}
  .marquee__track{transform:none!important}
}

/* =========================================================================
   ★ 案件追加分｜月額ホームページ制作LP（2026-08-11）
   テンプレ01の既存トークン（角丸4/8/12/20・影なし・transition .3s・BP960）に合わせている
   ========================================================================= */

/* ---------- ヘッダーCTA（テンプレの電話枠の代わり） ---------- */
.header__cta-btn{
  display:none;margin-left:auto;margin-right:12px;white-space:nowrap;
  background-color:var(--c-base);color:var(--c-brand);
  border-radius:20px;padding:9px 20px;font-size:13px;font-weight:700;letter-spacing:.05em;
  transition:.3s;
}
@media(min-width:960px){
  .header__cta-btn{display:inline-flex;align-items:center;padding:min(.859375vw,11px) min(2.03125vw,26px);font-size:min(1.09375vw,14px);border-radius:min(1.5625vw,20px)}
  .header__cta-btn:hover{background-color:var(--c-brand-dark);color:var(--c-base)}
}

/* ---------- オファーパネル（FV直下の4項目） ---------- */
.sec-offer{background-color:var(--c-base);padding:32px 0 10px}
@media(min-width:960px){.sec-offer{padding:min(4.6875vw,60px) 0 0}}
.offer-panel{display:grid;gap:10px}
@media(min-width:960px){.offer-panel{grid-template-columns:repeat(4,1fr);gap:min(1.25vw,16px)}}
.offer-panel__item{
  border:1px solid var(--c-line);border-radius:12px;padding:16px 18px;text-align:center;
  background-color:var(--c-base);
}
@media(min-width:960px){.offer-panel__item{border-radius:min(.9375vw,12px);padding:min(1.875vw,24px) min(1.25vw,16px)}}
.offer-panel__label{
  font-size:12px;font-weight:700;color:var(--c-base);background-color:var(--c-brand);
  border-radius:20px;padding:3px 14px;width:fit-content;margin-inline:auto;letter-spacing:.1em;
}
@media(min-width:960px){.offer-panel__label{font-size:min(1.09375vw,14px)}}
.offer-panel__value{
  margin-top:10px;font-size:26px;font-weight:700;color:var(--c-figure);line-height:1.3;
  font-family:var(--font-en);letter-spacing:.02em;
}
@media(min-width:960px){.offer-panel__value{margin-top:min(1.25vw,16px);font-size:min(3.125vw,40px)}}
.offer-panel__lead-note{
  display:block;font-family:var(--font-jp);font-size:13px;color:var(--c-brand);letter-spacing:.1em;margin-bottom:2px;
}
@media(min-width:960px){.offer-panel__lead-note{font-size:min(1.171875vw,15px)}}
.offer-panel__unit{font-size:.55em;margin-left:2px;font-family:var(--font-jp)}
.offer-panel__value--text{
  font-family:var(--font-jp);font-size:16px;color:var(--c-text);line-height:1.7;
  font-feature-settings:"palt";letter-spacing:.02em;
}
@media(min-width:960px){.offer-panel__value--text{font-size:min(1.40625vw,18px)}}
.offer-panel__note{margin-top:6px;font-size:12px;color:var(--c-text-sub);line-height:1.6}
@media(min-width:960px){.offer-panel__note{font-size:min(1.09375vw,13px)}}

/* ---------- 「横にスクロールできます」の案内 ---------- */
.sec-gallery__hint,.sec-compare__hint{
  margin-top:18px;text-align:center;font-size:12px;font-weight:700;color:var(--c-brand);letter-spacing:.1em;
}
.sec-gallery__hint::before,.sec-compare__hint::before{content:"◀ ";font-size:.85em}
.sec-gallery__hint::after,.sec-compare__hint::after{content:" ▶";font-size:.85em}
/* PCではギャラリーに矢印が出て、比較表も収まるので案内は出さない */
@media(min-width:960px){.sec-gallery__hint,.sec-compare__hint{display:none}}
/* ギャラリーを上に移したので上余白を足す（元テンプレは上にカーブ付きセクションがあった） */
.sec-gallery{padding-top:56px}
@media(min-width:960px){.sec-gallery{padding-top:min(7.8125vw,100px)}}

/* ---------- ABOUT 内の追加要素 ---------- */
.sec-about__lead--sub{margin-top:20px}
@media(min-width:960px){.sec-about__lead--sub{margin-top:min(1.875vw,24px)}}
.check-block{
  margin-top:28px;background-color:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.4);
  border-radius:12px;padding:20px;
}
@media(min-width:960px){.check-block{margin-top:min(3.125vw,40px);border-radius:min(.9375vw,12px);padding:min(2.34375vw,30px)}}
.check-block__title{
  font-size:15px;font-weight:700;color:var(--c-on-brand-em);letter-spacing:.1em;text-align:center;
}
@media(min-width:960px){.check-block__title{font-size:min(1.40625vw,18px)}}
.check-block__list{margin-top:14px;display:grid;gap:8px}
@media(min-width:960px){.check-block__list{grid-template-columns:repeat(2,1fr);gap:min(.9375vw,12px);margin-top:min(1.875vw,24px)}}
.check-block__list li{
  display:flex;align-items:center;gap:10px;color:var(--c-base);
  font-size:14px;font-weight:700;line-height:1.7;font-feature-settings:"palt";
}
@media(min-width:960px){.check-block__list li{font-size:min(1.25vw,16px)}}
.check-block__list li::before{
  content:"";width:8px;height:8px;border-radius:50%;background-color:var(--c-on-brand-em);flex-shrink:0;
}
.pull-quote{
  margin-top:28px;text-align:center;color:var(--c-base);
  font-size:15px;font-weight:700;line-height:2;letter-spacing:.05em;font-feature-settings:"palt";
  padding-top:22px;border-top:1px solid rgba(255,255,255,.5);
}
@media(min-width:960px){.pull-quote{margin-top:min(3.125vw,40px);padding-top:min(2.5vw,32px);font-size:min(1.5625vw,20px)}}

/* ---------- AIで作れる時代だからこそ（比較2枚） ---------- */
.sec-ai{background-color:var(--c-surface-2);padding:60px 0 70px}
@media(min-width:960px){.sec-ai{padding:min(7.8125vw,100px) 0}}
.sec-ai .heading1__title{color:var(--c-brand)}
.sec-ai__cards{display:grid;gap:20px;margin-top:32px}
@media(min-width:960px){.sec-ai__cards{grid-template-columns:repeat(2,1fr);gap:min(2.5vw,32px);margin-top:min(4.6875vw,60px)}}
.compare-card{background-color:var(--c-base);border-radius:12px;overflow:hidden;position:relative}
@media(min-width:960px){.compare-card{border-radius:min(.9375vw,12px)}}
.compare-card__tag{
  position:absolute;top:12px;left:12px;z-index:1;
  border-radius:4px;padding:4px 12px;font-size:12px;font-weight:700;letter-spacing:.05em;color:var(--c-base);
}
@media(min-width:960px){.compare-card__tag{top:min(1.25vw,16px);left:min(1.25vw,16px);font-size:min(1.09375vw,14px)}}
.compare-card--bad .compare-card__tag{background-color:var(--c-text-sub)}
.compare-card--good .compare-card__tag{background-color:var(--c-brand)}
.compare-card__image{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.compare-card__caption{padding:14px 16px;font-size:13px;line-height:1.8;font-feature-settings:"palt"}
@media(min-width:960px){.compare-card__caption{padding:min(1.5625vw,20px);font-size:min(1.171875vw,15px)}}
.sec-ai__note{
  margin-top:28px;text-align:center;font-size:14px;line-height:2;font-feature-settings:"palt";
}
@media(min-width:960px){.sec-ai__note{margin-top:min(3.125vw,40px);font-size:min(1.25vw,16px)}}

/* ---------- 比較表（4列・横スクロール） ---------- */
.sec-compare{background-color:var(--c-base);padding:60px 0 70px}
@media(min-width:960px){.sec-compare{padding:min(7.8125vw,100px) 0}}
.compare-table-wrap{margin-top:14px;overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(min-width:960px){.compare-table-wrap{margin-top:min(1.5625vw,20px)}}
.compare-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;background-color:var(--c-base)}
.compare-table th,.compare-table td{
  padding:12px 14px;text-align:left;vertical-align:middle;
  font-size:12.5px;line-height:1.7;font-feature-settings:"palt";
  border-bottom:1px solid var(--c-line);
}
@media(min-width:960px){.compare-table th,.compare-table td{padding:min(1.25vw,16px);font-size:min(1.09375vw,14px)}}
.compare-table thead th{
  background-color:var(--c-surface);font-weight:700;color:var(--c-text);text-align:center;line-height:1.5;
  border-bottom:2px solid var(--c-brand);
}
.compare-table thead th small{display:block;margin-top:4px;font-size:11px;font-weight:400;color:var(--c-text-sub)}
@media(min-width:960px){.compare-table thead th small{font-size:min(1.015625vw,12px)}}
.compare-table thead th.is-ours,.compare-table td.is-ours{background-color:var(--c-surface-2)}
.compare-table thead th.is-ours{color:var(--c-brand)}
.compare-table thead th.is-ours small{color:var(--c-brand)}
.compare-table__corner{background-color:var(--c-base)!important;border-bottom:2px solid var(--c-brand)}
.compare-table tbody th{
  background-color:var(--c-surface);font-weight:700;white-space:nowrap;
}
.compare-table tbody tr:last-child th,.compare-table tbody tr:last-child td{border-bottom:0}
.mark{display:inline-block;margin-right:6px;font-weight:700;font-size:1.15em;line-height:1}
.mark--o{color:var(--c-brand)}
.mark--t{color:var(--c-figure)}
.mark--x{color:var(--c-text-sub)}
.sec-compare__note{
  margin-top:14px;font-size:12px;color:var(--c-text-sub);line-height:1.8;font-feature-settings:"palt";
}
@media(min-width:960px){.sec-compare__note{font-size:min(1.015625vw,13px);margin-top:min(1.5625vw,20px)}}
.checkpoints{
  margin-top:32px;background-color:var(--c-surface-2);border-radius:12px;padding:20px;
}
@media(min-width:960px){.checkpoints{margin-top:min(4.6875vw,60px);border-radius:min(.9375vw,12px);padding:min(2.5vw,32px)}}
.checkpoints__title{
  font-size:15px;font-weight:700;color:var(--c-brand);letter-spacing:.1em;text-align:center;
}
@media(min-width:960px){.checkpoints__title{font-size:min(1.40625vw,18px)}}
.checkpoints__list{margin-top:14px;display:grid;gap:10px}
@media(min-width:960px){.checkpoints__list{grid-template-columns:repeat(3,1fr);gap:min(1.25vw,16px);margin-top:min(1.875vw,24px)}}
.checkpoints__row{background-color:var(--c-base);border-radius:8px;padding:14px 16px}
@media(min-width:960px){.checkpoints__row{border-radius:min(.625vw,8px);padding:min(1.25vw,16px)}}
.checkpoints__row dt{font-size:13px;font-weight:700;line-height:1.6;font-feature-settings:"palt"}
@media(min-width:960px){.checkpoints__row dt{font-size:min(1.171875vw,15px)}}
.checkpoints__row dd{
  margin-top:8px;padding-top:8px;border-top:1px solid var(--c-line);
  font-size:12.5px;color:var(--c-brand);font-weight:700;line-height:1.7;font-feature-settings:"palt";
}
@media(min-width:960px){.checkpoints__row dd{font-size:min(1.09375vw,14px)}}

/* ---------- 料金プランカード ---------- */
.sec-price__intro{
  margin-top:24px;text-align:center;font-size:14px;line-height:2;font-feature-settings:"palt";
}
@media(min-width:960px){.sec-price__intro{margin-top:min(2.5vw,32px);font-size:min(1.25vw,16px)}}
.plan-card{
  margin-top:28px;background-color:var(--c-base);border:2px solid var(--c-brand);border-radius:20px;padding:24px 20px;
}
@media(min-width:960px){.plan-card{margin-top:min(3.125vw,40px);border-radius:min(1.5625vw,20px);padding:min(3.90625vw,50px)}}
.plan-card__name{
  text-align:center;font-size:16px;font-weight:700;color:var(--c-brand);letter-spacing:.1em;
}
@media(min-width:960px){.plan-card__name{font-size:min(1.71875vw,22px)}}
.plan-card__price{
  margin-top:10px;text-align:center;color:var(--c-text);line-height:1.1;
  display:flex;align-items:baseline;justify-content:center;gap:6px;flex-wrap:wrap;
}
@media(min-width:960px){.plan-card__price{margin-top:min(1.25vw,16px)}}
.plan-card__price-pre{font-size:16px;font-weight:700}
@media(min-width:960px){.plan-card__price-pre{font-size:min(1.71875vw,22px)}}
.plan-card__price-num{
  font-family:var(--font-en);font-size:52px;font-weight:700;color:var(--c-accent);letter-spacing:.01em;
}
@media(min-width:960px){.plan-card__price-num{font-size:min(6.25vw,80px)}}
.plan-card__price-unit{font-size:16px;font-weight:700}
@media(min-width:960px){.plan-card__price-unit{font-size:min(1.71875vw,22px)}}
.plan-card__offer{
  margin-top:14px;text-align:center;background-color:var(--c-brand);color:var(--c-base);
  border-radius:8px;padding:10px 14px;font-size:14px;font-weight:700;line-height:1.6;font-feature-settings:"palt";
}
@media(min-width:960px){.plan-card__offer{margin-top:min(1.875vw,24px);border-radius:min(.625vw,8px);padding:min(1.171875vw,15px);font-size:min(1.40625vw,18px)}}
.plan-card__offer del{color:rgba(255,255,255,.75);font-weight:400;margin:0 2px}
.plan-card__offer strong{color:var(--c-on-brand-em);font-size:1.2em;font-weight:700}
.plan-card__offer-note{
  margin-top:8px;text-align:center;font-size:12.5px;color:var(--c-text-sub);line-height:1.7;font-feature-settings:"palt";
}
@media(min-width:960px){.plan-card__offer-note{font-size:min(1.09375vw,13px)}}
.plan-card__block{margin-top:26px}
@media(min-width:960px){.plan-card__block{margin-top:min(3.125vw,40px)}}
.plan-card__block-title{
  font-size:15px;font-weight:700;color:var(--c-brand);letter-spacing:.1em;
  padding-bottom:8px;border-bottom:1px solid var(--c-line);
}
@media(min-width:960px){.plan-card__block-title{font-size:min(1.40625vw,18px);padding-bottom:min(.9375vw,12px)}}
.plan-card__list{margin-top:14px;display:grid;gap:8px}
@media(min-width:960px){.plan-card__list{grid-template-columns:repeat(2,1fr);gap:min(.9375vw,12px);margin-top:min(1.875vw,24px)}}
.plan-card__list li{
  display:flex;align-items:center;gap:8px;font-size:13.5px;line-height:1.7;font-feature-settings:"palt";
}
@media(min-width:960px){.plan-card__list li{font-size:min(1.171875vw,15px)}}
.plan-card__list li::before{
  content:"";width:8px;height:8px;border-radius:50%;background-color:var(--c-brand-light);flex-shrink:0;
}
.plan-card .price-table{margin-top:14px;border:1px solid var(--c-line)}
@media(min-width:960px){.plan-card .price-table{margin-top:min(1.875vw,24px)}}
.sec-price__consult{
  margin-top:28px;text-align:center;font-size:14px;line-height:1.9;font-feature-settings:"palt";
}
@media(min-width:960px){.sec-price__consult{margin-top:min(3.125vw,40px);font-size:min(1.25vw,16px)}}
.sec-price__cta{margin-top:18px;display:flex;justify-content:center}
@media(min-width:960px){.sec-price__cta{margin-top:min(2.34375vw,30px)}}

/* ---------- プロフィール追加分 ---------- */
/* 上のセクション（FLOW）が主色ベタなのでカーブ区切りは使わない */
.sec-profile__curve{display:none}
.sec-profile{border-top:4px solid var(--c-brand-dark)}
.sec-profile__tagline{
  margin-top:12px;font-size:14px;font-weight:700;color:var(--c-on-brand-em);line-height:1.7;font-feature-settings:"palt";
}
@media(min-width:960px){.sec-profile__tagline{font-size:min(1.40625vw,18px);margin-top:min(1.25vw,16px)}}
.sec-profile__reason-text{margin-top:10px;font-size:13px;line-height:1.9;font-feature-settings:"palt"}
@media(min-width:960px){.sec-profile__reason-text{font-size:min(1.171875vw,15px);margin-top:min(1.25vw,16px)}}
.sec-profile__reason-text p+p{margin-top:1em}

/* ---------- お問い合わせフォーム ---------- */
.sec-contact{background-color:var(--c-surface);padding:60px 0 70px}
@media(min-width:960px){.sec-contact{padding:min(7.8125vw,100px) 0}}
.sec-contact .heading1__title{color:var(--c-brand)}
.sec-contact .heading1__lead{text-align:left}
.cform{
  margin-top:32px;background-color:var(--c-base);border-radius:20px;padding:24px 20px;
}
@media(min-width:960px){.cform{margin-top:min(4.6875vw,60px);border-radius:min(1.5625vw,20px);padding:min(3.90625vw,50px)}}
.cform__row+.cform__row{margin-top:20px}
@media(min-width:960px){.cform__row+.cform__row{margin-top:min(2.34375vw,30px)}}
.cform__label{
  display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;letter-spacing:.05em;margin-bottom:8px;
}
@media(min-width:960px){.cform__label{font-size:min(1.25vw,16px);margin-bottom:min(.9375vw,12px)}}
.cform__req,.cform__any{
  border-radius:4px;padding:2px 8px;font-size:11px;font-weight:700;letter-spacing:.05em;
}
@media(min-width:960px){.cform__req,.cform__any{font-size:min(1.015625vw,12px)}}
.cform__req{background-color:var(--c-accent);color:var(--c-base)}
.cform__any{background-color:var(--c-surface);color:var(--c-text-sub)}
.cform__input,.cform__textarea{
  width:100%;border:1px solid var(--c-line);border-radius:8px;padding:12px 14px;
  font-family:var(--font-jp);font-size:15px;line-height:1.7;color:var(--c-text);background-color:var(--c-base);
  transition:.3s;
}
@media(min-width:960px){.cform__input,.cform__textarea{border-radius:min(.625vw,8px);padding:min(1.171875vw,15px);font-size:min(1.25vw,16px)}}
.cform__input:focus,.cform__textarea:focus{outline:0;border-color:var(--c-brand)}
.cform__input::placeholder{color:#c4c4c4}
.cform__textarea{resize:vertical}
.cform__radios{display:grid;gap:8px}
@media(min-width:960px){.cform__radios{grid-template-columns:repeat(2,1fr);gap:min(.9375vw,12px)}}
.cform__radio{
  display:flex;align-items:center;gap:10px;border:1px solid var(--c-line);border-radius:8px;padding:12px 14px;
  font-size:14px;line-height:1.5;cursor:pointer;transition:.3s;
}
@media(min-width:960px){.cform__radio{border-radius:min(.625vw,8px);padding:min(1.171875vw,15px);font-size:min(1.171875vw,15px)}}
.cform__radio:hover{border-color:var(--c-brand)}
.cform__radio input{width:18px;height:18px;accent-color:var(--c-brand);flex-shrink:0}
.cform__privacy{
  margin-top:24px;font-size:12.5px;color:var(--c-text-sub);line-height:1.8;text-align:center;font-feature-settings:"palt";
}
@media(min-width:960px){.cform__privacy{margin-top:min(3.125vw,40px);font-size:min(1.09375vw,13px)}}
.cform__submit{margin-top:18px;display:flex;justify-content:center}
@media(min-width:960px){.cform__submit{margin-top:min(2.34375vw,30px)}}
.cform__submit .btn{border:0;cursor:pointer;font-family:var(--font-jp)}

/* =========================================================================
   ★ 実素材差し替えにともなう調整（2026-08-11）
   shudesign-web.com/hp_s/ の実画像を入れたことで必要になった分だけ
   ========================================================================= */

/* ---------- ロゴ：正方形マーク前提 → 横長ワードマークに ---------- */
.header__logo img{width:120px}
@media(min-width:960px){.header__logo img{width:min(11.71875vw,150px)}}
@media(max-width:959px){.header__logo img{width:104px}}
/* 画像に社名が入っているので、隣のテキストは消す */
.header__logo-name,
.sticky-header__name,
.footer__brand-name{display:none}
.sticky-header__brand img{width:104px}
@media(min-width:960px){.sticky-header__brand img{width:min(10.15625vw,130px)}}
.footer__brand img{width:150px;height:auto}
.splash__logo{width:150px}
@media(min-width:960px){.splash__logo{width:min(17.1875vw,220px)}}

/* ---------- FV：写真がモック画面になったので幕を薄くする ---------- */
:root{
  --fv-overlay-opacity:.62;   /* 既定 .88（屋外写真前提）。画面キャプチャは潰れるので下げる */
  --about-bg-image:url(../images/real/benefit-photo.png);
  --photo-overlay-opacity:.58;
}
/* モック画面は上を切りたくないので、寄せを上端に */
.top-fv__slide-img{object-position:center top}

/* ---------- AI比較：縦長の図版なので cover ではなく contain ---------- */
.compare-card__image{
  aspect-ratio:auto;height:340px;object-fit:contain;background-color:var(--c-surface);padding:10px;
}
@media(max-width:959px){.compare-card__image{height:260px}}

/* ---------- サービスカード：実写が混ざるので高さをそろえる ---------- */
.card-service__image{height:200px;object-fit:cover}
@media(max-width:959px){.card-service__image{height:170px}}

/* ---------- ギャラリー：620×372 の実キャプチャに合わせる ---------- */
.card-gallery img{aspect-ratio:620/372;object-fit:cover;object-position:center top}
