@charset "UTF-8";
/* =========================================================
   片付け買取の幸華堂 / style.css
   ========================================================= */

/* ---------- 変数 ---------- */
:root{
  --navy:#12315c;
  --navy-deep:#0d2444;
  --navy-soft:#2a4b7c;
  --blue:#2f7fc4;
  --blue-pale:#eaf3fb;
  --blue-pale2:#f4f9fd;
  --pink:#e07fa8;
  --pink-pale:#fdeef4;
  --orange:#e06c00;
  --orange-dark:#b85400;
  --orange-pale:#fff3e6;
  --line-green:#06c755;
  --line-green-dark:#05a847;
  --ink:#1e2a37;
  --muted:#55677a;
  --line-color:#dde5ee;
  --white:#fff;
  --radius:14px;
  --radius-lg:20px;
  --shadow:0 4px 18px rgba(18,49,92,.08);
  --shadow-md:0 10px 30px rgba(18,49,92,.12);
  --header-h:124px;
  --container:1200px;
}

/* ---------- リセット ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{
  -webkit-text-size-adjust:100%;
  overflow-x:hidden;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h) + 12px);
}
body{
  margin:0;
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic Medium","YuGothic","Meiryo",system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--ink);
  background:var(--white);
  font-size:17px;
  line-height:1.9;
  letter-spacing:.02em;
  font-feature-settings:"palt" 1;
  overflow-x:hidden;
  word-break:normal;
  overflow-wrap:break-word;
  line-break:strict;
}
img{max-width:100%;height:auto;display:block;}
[hidden]{display:none !important;}
a{color:var(--blue);text-decoration:none;}
a:hover{text-decoration:underline;}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0;padding:0;}
ul,ol{list-style:none;}
button{font:inherit;color:inherit;}
table{border-collapse:collapse;width:100%;}

:focus-visible{
  outline:3px solid var(--orange);
  outline-offset:2px;
  border-radius:4px;
}

.skip-link{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.skip-link:focus{
  position:fixed;top:0;left:0;z-index:9999;
  width:auto;height:auto;margin:0;clip:auto;overflow:visible;
  background:var(--navy);color:#fff;padding:12px 20px;border-radius:0 0 8px 0;
}

/* 数字・英字は改行させない */
.num{white-space:nowrap;font-feature-settings:normal;}
.nw{white-space:nowrap;display:inline-block;}
.ln{display:block;}

.container{
  width:min(100% - 40px, var(--container));
  margin-inline:auto;
}
.container--narrow{width:min(100% - 40px, 880px);}

.pc-only{display:inline;}
.sp-only{display:none;}
.sp-br{display:none;}


/* picture要素でもレイアウトが崩れないように */
picture{display:contents;}
.value-visual picture{display:block;}
.staff__photo picture{display:block;}

/* =========================================================
   ヘッダー
   ========================================================= */
.site-header{
  position:sticky;top:0;z-index:900;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid var(--line-color);
  backdrop-filter:saturate(140%) blur(6px);
}
.header-inner{
  width:min(100% - 32px, 1480px);
  margin-inline:auto;
  min-height:var(--header-h);
  display:flex;align-items:center;gap:20px;
}

.brand{
  display:flex;align-items:center;gap:12px;
  color:var(--ink);text-decoration:none;flex:0 0 auto;
  min-height:48px;padding:3px 0;
}
.brand:hover{text-decoration:none;opacity:.85;}
.brand__logo{width:auto;height:52px;}
.brand__text{display:flex;flex-direction:column;line-height:1.35;}
.brand__name{
  font-size:20px;font-weight:800;color:var(--navy);white-space:nowrap;letter-spacing:.01em;
}
.brand__sub{
  font-size:12.5px;color:var(--muted);white-space:nowrap;letter-spacing:.08em;
}

.gnav{margin-left:auto;display:flex;align-items:center;gap:22px;}
.gnav__list{display:flex;align-items:center;gap:clamp(10px,1.1vw,20px);}
.gnav__list a{
  display:block;
  color:var(--navy);
  font-weight:700;
  font-size:15px;
  white-space:nowrap;
  padding:8px 2px;
  border-bottom:2px solid transparent;
  text-decoration:none;
  letter-spacing:0;
}
.gnav__list a:hover{border-bottom-color:var(--blue);text-decoration:none;}
.gnav__cta{display:flex;align-items:center;gap:8px;}

/* ---------- ボタン ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:10px 18px;
  border-radius:999px;
  font-weight:800;font-size:15px;line-height:1.3;
  text-decoration:none;white-space:nowrap;
  border:2px solid transparent;
  transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.btn:hover{text-decoration:none;transform:translateY(-1px);box-shadow:var(--shadow);}
.btn__ico{display:inline-flex;align-items:center;}
.btn__tel{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;}
.btn__tel-label{font-size:11.5px;font-weight:700;opacity:.9;letter-spacing:.04em;}
.btn__tel-num{font-size:18px;font-weight:800;letter-spacing:.01em;white-space:nowrap;}

.btn--line{background:var(--line-green);color:#fff;border-color:var(--line-green-dark);}
.btn--line:hover{background:var(--line-green-dark);color:#fff;}
.btn--tel{background:var(--navy-deep);color:#fff;border-color:var(--navy-deep);}
.btn--tel:hover{background:#08192f;color:#fff;}
.btn--quote{background:var(--orange);color:#fff;border-color:var(--orange-dark);}
.btn--quote:hover{background:var(--orange-dark);color:#fff;}
.btn--ghost{background:#fff;color:var(--navy);border-color:var(--navy);}
.btn--ghost:hover{background:var(--navy);color:#fff;}

.btn--lg{min-height:62px;padding:12px 28px;font-size:18px;border-radius:999px;}
.btn--lg .btn__tel-num{font-size:21px;}

.cta-group{display:flex;flex-wrap:wrap;gap:12px;}
.cta-group--center{justify-content:center;}

/* ---------- ハンバーガー ---------- */
.hamburger{
  display:none;
  position:relative;z-index:890; /* ドロワーより手前に出して閉じられるようにする */
  margin-left:auto;
  width:56px;height:56px;
  background:var(--navy);border:none;border-radius:12px;
  position:relative;cursor:pointer;
  flex-direction:column;align-items:center;justify-content:center;gap:5px;
}
.hamburger span{display:block;width:24px;height:2px;background:#fff;border-radius:2px;transition:.25s;}
.hamburger em{font-size:9px;font-style:normal;color:#fff;letter-spacing:.06em;margin-top:2px;}
.hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.nav-overlay{
  position:fixed;inset:0;background:rgba(13,36,68,.5);z-index:850;
}

/* =========================================================
   ファーストビュー
   ========================================================= */
.hero{
  position:relative;
  background:
    radial-gradient(1000px 500px at 12% -10%, rgba(224,127,168,.16), transparent 60%),
    radial-gradient(900px 520px at 90% 0%, rgba(47,127,196,.16), transparent 62%),
    linear-gradient(180deg,#f7fbff 0%, #eef5fc 100%);
  padding:clamp(36px,4.5vw,64px) 0 clamp(44px,5vw,72px);
  overflow:hidden;
}
.hero__inner{
  width:min(100% - 40px, var(--container));
  margin-inline:auto;
  display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(24px,3vw,48px);
  align-items:center;
}
.hero__eyebrow{
  display:inline-block;
  background:var(--navy);color:#fff;
  font-size:14px;font-weight:700;letter-spacing:.04em;
  padding:6px 16px;border-radius:999px;margin-bottom:18px;
}
.hero__title{
  font-size:clamp(26px,3.5vw,46px);
  line-height:1.32;
  font-weight:900;
  color:var(--navy);
  letter-spacing:.005em;
  margin-bottom:14px;
}
.hero__title .ln{white-space:nowrap;}
.hero__title--accent{
  color:var(--orange-dark);
  position:relative;
  display:inline-block;
}
/* 「まだ早い」を蛍光マーカー風に強調 */
.hero__title--accent em{
  font-style:normal;
  position:relative;
  z-index:1;
}
.hero__title--accent em::after{
  content:"";
  position:absolute;left:-.06em;right:-.06em;bottom:.02em;height:.34em;
  background:rgba(255,190,60,.55);
  border-radius:3px;
  z-index:-1;
}
.hero__sub{
  font-size:clamp(18px,2.05vw,27px);
  font-weight:800;
  color:var(--navy);
  line-height:1.55;
  margin-bottom:16px;
}
.hero__sub strong{
  color:var(--orange-dark);
  font-size:1.12em;
}
.hero__lead{
  font-size:clamp(15.5px,1.3vw,18px);
  color:#2c3d50;
  margin-bottom:20px;
  line-height:1.8;
}
.hero__lead strong{color:var(--navy);font-weight:800;}
.hero__lead-tags{
  display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;
  margin-bottom:8px;
}
.hero__lead-tags .nw{
  background:var(--navy);color:#fff;font-weight:800;
  font-size:clamp(14px,1.15vw,16px);
  padding:4px 14px;border-radius:999px;
}
.hero__plus{
  color:var(--orange-dark);font-weight:900;
  font-size:clamp(15px,1.2vw,17px);
}
.hero__badges{
  display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;
}
.hero__badges li{
  background:#fff;border:1.5px solid var(--blue);
  color:var(--navy);font-size:13.5px;font-weight:700;
  padding:5px 13px;border-radius:999px;white-space:nowrap;
}
.hero__note{
  margin-top:16px;font-size:14.5px;color:var(--muted);
}

.hero__visual{margin:0;}
.hero__visual figcaption{
  margin-top:10px;font-size:13.5px;color:var(--muted);text-align:center;
}

/* Before/After ペア */
.ba-pair{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;
}
.ba-pair__item{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md);background:#000;}
.ba-pair__item img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.ba-pair__arrow{
  color:var(--orange);display:flex;align-items:center;justify-content:center;
}
.ba-tag{
  position:absolute;top:0;left:0;z-index:2;
  font-size:12.5px;font-weight:800;letter-spacing:.08em;
  color:#fff;padding:5px 12px;border-radius:0 0 10px 0;
}
.ba-tag--before{background:rgba(13,36,68,.9);}
.ba-tag--after{background:var(--orange);}
/* ファーストビューのBefore / After（大きめ表示） */
.ba-hero{
  display:grid;grid-template-columns:1fr;gap:12px;
}
.ba-hero__arrow{transform:rotate(90deg);}
.ba-hero__item{
  position:relative;border-radius:16px;overflow:hidden;
  box-shadow:0 14px 36px rgba(18,49,92,.22);background:#0d2444;
}
.ba-hero__item img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
.hero__visual{max-width:640px;margin-inline:auto;}
.ba-hero__arrow{
  color:var(--orange);display:flex;align-items:center;justify-content:center;
}
.ba-hero .ba-tag{font-size:13px;padding:6px 14px;}

/* =========================================================
   安心・信頼
   ========================================================= */
.trust{background:var(--navy);padding:clamp(28px,3vw,40px) 0;}
.trust__list{
  display:grid;grid-template-columns:repeat(6,1fr);gap:14px;
}
.trust__item{
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.18);
  border-radius:var(--radius);
  padding:18px 14px;text-align:center;color:#fff;
  display:flex;flex-direction:column;align-items:center;gap:6px;
}
.trust__ico{color:#8dc8f0;line-height:0;}
.trust__ttl{font-weight:800;font-size:16px;letter-spacing:.02em;}
.trust__txt{font-size:13.5px;line-height:1.65;color:#d6e5f5;}

/* =========================================================
   セクション共通
   ========================================================= */
.section{padding:clamp(56px,6vw,96px) 0;}
.section--tint{background:var(--blue-pale2);}
.section--navy{background:var(--navy);color:#fff;}
.sec-head{text-align:center;margin-bottom:clamp(32px,3.5vw,52px);}
.sec-head__en{
  font-size:13px;font-weight:800;letter-spacing:.18em;color:var(--blue);
  margin-bottom:6px;
}
.sec-head__ttl{
  font-size:clamp(26px,3.2vw,42px);
  font-weight:900;color:var(--navy);line-height:1.4;
  letter-spacing:.01em;
}
.sec-head__ttl::after{
  content:"";display:block;width:56px;height:4px;border-radius:2px;
  background:linear-gradient(90deg,var(--pink),var(--blue));
  margin:16px auto 0;
}
.sec-head__lead{
  margin-top:16px;font-size:clamp(15.5px,1.2vw,18px);color:var(--muted);line-height:1.85;
}
.sec-head--light .sec-head__ttl{color:#fff;}
.sec-head--light .sec-head__en{color:#8dc8f0;}
.sec-head--light .sec-head__lead{color:#d6e5f5;}
.section__note{
  margin-top:22px;font-size:14px;color:var(--muted);text-align:center;
}

/* =========================================================
   サービスカード
   ========================================================= */
.cards{display:grid;gap:20px;}
.cards--3{grid-template-columns:repeat(3,1fr);}
.card{
  background:#fff;border:1px solid var(--line-color);border-radius:var(--radius-lg);
  padding:26px 24px;box-shadow:var(--shadow);
}
.card--accent{
  border:2px solid var(--orange);
  background:var(--orange-pale);
}
.card__ttl{
  font-size:21px;font-weight:800;color:var(--navy);margin-bottom:10px;
  padding-left:14px;position:relative;line-height:1.5;
}
.card__ttl::before{
  content:"";position:absolute;left:0;top:.35em;width:5px;height:1.1em;
  background:var(--blue);border-radius:3px;
}
.card--accent .card__ttl::before{background:var(--orange);}
.card__txt{font-size:16px;color:#3a4a5c;line-height:1.85;}

/* =========================================================
   選ばれる理由
   ========================================================= */
.reasons{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.reason{
  background:#fff;border-radius:var(--radius-lg);padding:26px 26px;
  box-shadow:var(--shadow);display:flex;gap:18px;align-items:flex-start;
}
.reason__no{
  flex:0 0 auto;font-size:26px;font-weight:900;color:var(--pink);
  line-height:1;letter-spacing:.02em;padding-top:4px;
}
.reason__ttl{font-size:19px;font-weight:800;color:var(--navy);margin-bottom:8px;line-height:1.55;}
.reason p{font-size:15.5px;color:#3a4a5c;line-height:1.85;}

/* =========================================================
   フロー
   ========================================================= */
.flow{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:flow;
}
.flow__step{
  background:#fff;border:1px solid var(--line-color);border-radius:var(--radius-lg);
  padding:24px 22px;box-shadow:var(--shadow);position:relative;
}
.flow__step--accent{border:2px solid var(--orange);background:var(--orange-pale);}
.flow__no{
  display:inline-block;background:var(--navy);color:#fff;
  font-size:12.5px;font-weight:800;letter-spacing:.1em;
  padding:4px 12px;border-radius:999px;margin-bottom:12px;
}
.flow__step--accent .flow__no{background:var(--orange);}
.flow__ttl{font-size:19px;font-weight:800;color:var(--navy);margin-bottom:8px;line-height:1.55;}
.flow__step p{font-size:15.5px;color:#3a4a5c;line-height:1.85;}

.value-visual{
  margin-top:36px;display:grid;grid-template-columns:130px 1fr 130px;
  gap:20px;align-items:center;
  background:var(--blue-pale);border-radius:var(--radius-lg);padding:26px 28px;
}
.value-visual img{width:100%;height:auto;}
.value-visual__txt{font-size:17px;line-height:1.9;color:var(--navy);text-align:center;}
.value-visual__txt strong{font-size:20px;}
.value-visual__txt .small{font-size:13.5px;color:var(--muted);display:inline-block;margin-top:8px;}

/* =========================================================
   料金
   ========================================================= */
.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.price-card{
  background:#fff;border:1px solid var(--line-color);border-radius:var(--radius-lg);
  overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;
}
.price-card__fig{background:#fff;padding:8px;}
.price-card__fig img{width:100%;aspect-ratio:16/9;object-fit:contain;}
.price-card__body{padding:6px 20px 24px;text-align:center;}
.price-card__ttl{
  font-size:21px;font-weight:800;color:var(--navy);margin-bottom:6px;
  padding-bottom:10px;border-bottom:2px dotted var(--line-color);
}
.price-card__price{
  font-size:20px;font-weight:800;color:var(--orange-dark);margin:12px 0 10px;line-height:1.2;
}
.price-card__price .num{font-size:34px;letter-spacing:-.01em;}
.price-card__tilde{font-size:18px;margin-left:2px;}
.price-card__txt{font-size:14.5px;color:#3a4a5c;line-height:1.8;text-align:left;}

.price-note{
  margin-top:32px;background:#fff;border:1px solid var(--line-color);
  border-radius:var(--radius-lg);padding:28px 30px;box-shadow:var(--shadow);
}
.price-note__ttl{font-size:19px;font-weight:800;color:var(--navy);margin-bottom:14px;}
.price-note__list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.price-note__list li{
  background:var(--blue-pale);color:var(--navy);font-size:14.5px;font-weight:700;
  padding:5px 14px;border-radius:999px;white-space:nowrap;
}
.price-note__txt{font-size:15.5px;color:#3a4a5c;line-height:1.9;}

/* CTA帯 */
.cta-inline{
  margin-top:36px;background:var(--navy);border-radius:var(--radius-lg);
  padding:clamp(26px,3vw,38px);text-align:center;color:#fff;
}
.cta-inline__txt{
  font-size:clamp(18px,1.7vw,23px);font-weight:800;margin-bottom:20px;line-height:1.6;
}

/* =========================================================
   買取事例
   ========================================================= */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.case{
  background:#fff;border:1px solid var(--line-color);border-radius:var(--radius-lg);
  padding:26px 24px;box-shadow:var(--shadow);
}
.case__ttl{font-size:18px;font-weight:800;color:var(--navy);margin-bottom:16px;line-height:1.55;}
.calc{background:var(--blue-pale2);border-radius:var(--radius);padding:16px;}
.calc__row{
  display:flex;flex-direction:column;align-items:stretch;gap:2px;
  background:#fff;border:1px solid var(--line-color);border-radius:10px;padding:12px 14px;
}
.calc__label{font-size:14.5px;font-weight:700;color:var(--muted);line-height:1.6;}
.calc__val{font-size:24px;font-weight:900;color:var(--navy);text-align:right;line-height:1.3;}
.calc__arrow{text-align:center;color:var(--blue);font-size:16px;line-height:1.6;padding:4px 0;}
.calc__row--minus{border-color:var(--pink);background:var(--pink-pale);}
.calc__row--minus .calc__val{color:#c2456f;}
.calc__row--result{border:2px solid var(--orange);background:var(--orange-pale);}
.calc__row--result .calc__val{color:var(--orange-dark);font-size:26px;}
.calc__row--plus .calc__val{color:#0b7a45;}
.calc__row--plus{border-color:#0b7a45;background:#eefaf3;}
.case__txt{margin-top:14px;font-size:15px;color:#3a4a5c;line-height:1.85;}

.disclaimer{
  margin-top:24px;background:#fffaf2;border:2px solid #f0c9a0;border-radius:var(--radius);
  padding:20px 24px;font-size:15px;color:#5c4326;line-height:1.9;
}
.disclaimer strong{color:#a35a09;}

.case-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px;max-width:900px;margin-inline:auto;}
.case-photo{margin:0;}
.case-photo img{
  width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow);
  cursor:zoom-in;
}
.case-photo figcaption{margin-top:8px;font-size:13.5px;color:var(--muted);text-align:center;}

/* =========================================================
   Before / After グリッド
   ========================================================= */
.ba-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
.ba-card{
  background:#fff;border:1px solid var(--line-color);border-radius:var(--radius-lg);
  padding:24px;box-shadow:var(--shadow);
}
.ba-card__ttl{font-size:19px;font-weight:800;color:var(--navy);margin-bottom:16px;}
.ba-card__txt{margin-top:14px;font-size:15px;color:#3a4a5c;line-height:1.85;}
.ba-card img{cursor:zoom-in;}
.ba-card--placeholder{background:#f7f9fc;border-style:dashed;border-width:2px;}
.ba-placeholder{
  display:flex;align-items:center;justify-content:center;text-align:center;
  aspect-ratio:16/6;border:2px dashed var(--line-color);border-radius:var(--radius);
  color:var(--muted);font-size:15px;line-height:1.9;padding:16px;background:#fff;
}

/* =========================================================
   現場写真 / 品目
   ========================================================= */
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.photo{margin:0;}
.photo img{
  width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);
  box-shadow:var(--shadow);cursor:zoom-in;
}
.photo figcaption{margin-top:10px;font-size:14.5px;color:var(--muted);text-align:center;}

.reuse-flow{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:40px;
}
.reuse-flow li{
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.3);
  color:#fff;font-weight:800;font-size:16px;padding:10px 22px;border-radius:999px;
  position:relative;white-space:nowrap;
}
.reuse-flow li:not(:last-child)::after{
  content:"→";margin-left:14px;color:#8dc8f0;position:absolute;right:-24px;top:50%;
  transform:translateY(-50%);font-size:16px;
}
.reuse-subttl{
  text-align:center;font-size:21px;font-weight:800;color:#fff;margin-bottom:22px;
}
.items{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;}
.item{margin:0;}
.item img{
  width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;background:#fff;cursor:zoom-in;
}
.item figcaption{margin-top:8px;font-size:13.5px;color:#d6e5f5;text-align:center;line-height:1.5;}
.reuse-note{
  margin-top:28px;font-size:16px;line-height:1.95;color:#e3edf8;
  background:rgba(255,255,255,.07);border-radius:var(--radius);padding:22px 26px;
}
.reuse-note--small{font-size:14px;color:#c3d5e8;margin-top:12px;background:none;padding:0 4px;}

/* =========================================================
   資格・保険
   ========================================================= */
.license-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:start;}
.license{
  margin:0;background:#fff;border:1px solid var(--line-color);border-radius:var(--radius);
  padding:14px;box-shadow:var(--shadow);
}
.license img{
  width:100%;aspect-ratio:3/4;object-fit:contain;background:#fbfcfe;border-radius:8px;cursor:zoom-in;
}
.license figcaption{margin-top:10px;font-size:14px;color:var(--navy);font-weight:700;text-align:center;line-height:1.6;}
.license-txt{
  margin-top:26px;text-align:center;font-size:16.5px;line-height:2;color:#3a4a5c;
}
.license-staff{
  margin:28px auto 0;max-width:420px;
}
.license-staff img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow);cursor:zoom-in;}
.license-staff figcaption{margin-top:10px;font-size:14px;color:var(--muted);text-align:center;}

.insurance{
  display:grid;grid-template-columns:240px 1fr;gap:32px;align-items:center;
  background:#fff;border:1px solid var(--line-color);border-radius:var(--radius-lg);
  padding:32px;box-shadow:var(--shadow);
}
.insurance__logo{display:flex;justify-content:center;}
.insurance__logo img{width:200px;height:auto;}
.insurance__name{font-size:22px;font-weight:800;color:var(--navy);}
.insurance__plan{
  font-size:clamp(20px,2vw,26px);font-weight:900;color:var(--orange-dark);margin:6px 0 14px;
}
.insurance__txt{font-size:16px;color:#3a4a5c;line-height:1.9;}

/* =========================================================
   スタッフ
   ========================================================= */
.staff{
  display:grid;grid-template-columns:320px 1fr;gap:36px;align-items:center;
  background:var(--pink-pale);border-radius:var(--radius-lg);padding:32px 36px;
}
.staff__photo{margin:0;}
.staff__photo img{
  width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 30%;
  border-radius:var(--radius-lg);box-shadow:var(--shadow-md);
}
.staff__ttl{font-size:24px;font-weight:800;color:var(--navy);margin-bottom:14px;line-height:1.5;}
.staff__body p{font-size:16.5px;color:#3a4a5c;line-height:1.95;margin-bottom:14px;}
.staff__body p:last-child{margin-bottom:0;}
.staff__note{margin-top:12px;font-size:14px;color:var(--muted);}

/* =========================================================
   店舗
   ========================================================= */
.store{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:center;}
.store__fig{margin:0;}
.store__fig img{width:100%;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);cursor:zoom-in;}
.store__fig figcaption{margin-top:10px;font-size:14px;color:var(--muted);text-align:center;}
.store__ttl{font-size:26px;font-weight:800;color:var(--navy);margin-bottom:16px;}
.store__dl{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;margin-bottom:18px;}
.store__dl dt{font-weight:800;color:var(--navy);font-size:15.5px;white-space:nowrap;}
.store__dl dd{margin:0;font-size:16px;color:#3a4a5c;}
.store__txt{font-size:16px;color:#3a4a5c;line-height:1.9;margin-bottom:20px;}
.store__links{display:flex;flex-wrap:wrap;gap:12px;}
.store__note{margin-top:14px;font-size:14px;color:var(--muted);}

/* 店舗のご案内ポイント */
.store__points{margin:0 0 18px;display:grid;gap:8px;}
.store__points li{
  position:relative;padding-left:28px;font-size:15.5px;line-height:1.8;color:#3a4a5c;
}
.store__points li::before{
  content:"";position:absolute;left:0;top:.45em;
  width:18px;height:18px;border-radius:50%;
  background:var(--line-green);
}
.store__points li::after{
  content:"";position:absolute;left:5px;top:.75em;
  width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;
  transform:rotate(-45deg);
}
.store__points strong{color:var(--navy);}

/* 店内写真ギャラリー（Before/Afterより小さめ） */
.store-gallery{margin-top:44px;}
.store-gallery__ttl{
  font-size:21px;font-weight:800;color:var(--navy);text-align:center;
}
.store-gallery__lead{
  text-align:center;font-size:15.5px;color:var(--muted);margin:8px 0 20px;line-height:1.8;
}
.store-gallery__grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  max-width:960px;margin-inline:auto;
}
.store-gallery__grid figure{margin:0;}
.store-gallery__grid img{
  width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;
  box-shadow:var(--shadow);cursor:zoom-in;
}
.store-gallery__grid figcaption{
  margin-top:8px;font-size:13.5px;color:var(--muted);text-align:center;line-height:1.5;
}
.store-gallery__note{
  margin-top:20px;text-align:center;font-size:15px;color:#3a4a5c;line-height:1.85;
}
.cform__help{
  margin-top:6px;font-size:13.5px;color:var(--muted);line-height:1.7;
}

.reviews{margin-top:48px;}
.reviews__ttl{font-size:22px;font-weight:800;color:var(--navy);text-align:center;}
.reviews__lead{
  text-align:center;font-size:14.5px;color:var(--muted);margin:8px 0 20px;
}
.reviews__grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
}
.reviews__grid img{
  width:100%;border-radius:var(--radius);border:1px solid var(--line-color);
  background:#fff;box-shadow:var(--shadow);cursor:zoom-in;
}

/* =========================================================
   理念・幸華堂の想い（ページ内で最も伝えたいセクション）
   ========================================================= */
.creed{
  position:relative;
  background:
    linear-gradient(180deg,#0a1524 0%, #0d2035 45%, #0a1524 100%);
  color:#e8eef6;
  padding:clamp(64px,7vw,120px) 0;
  overflow:hidden;
  font-family:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP","MS PMincho",serif;
}
/* 灯りのようなやわらかい光 */
.creed__glow{
  position:absolute;left:50%;top:8%;
  width:min(900px,120vw);aspect-ratio:1/1;
  transform:translateX(-50%);
  background:radial-gradient(circle,
    rgba(255,176,74,.20) 0%,
    rgba(255,140,60,.10) 32%,
    rgba(255,140,60,0) 68%);
  pointer-events:none;
}
.creed .container{position:relative;z-index:1;}

.creed__block{text-align:center;}

/* 社章 */
.creed__emblem{margin:0 0 26px;}
.creed__emblem img{
  width:clamp(88px,9vw,116px);height:auto;margin-inline:auto;
  filter:drop-shadow(0 0 22px rgba(255,168,74,.35));
}
.creed__emblem figcaption{
  margin-top:12px;
  font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  font-size:12.5px;letter-spacing:.22em;color:#9fb6cf;
}

.creed__label{
  display:inline-block;
  margin-top:0;
  font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  font-size:12.5px;font-weight:800;letter-spacing:.3em;
  color:#ffb04a;
  padding-bottom:8px;margin-bottom:20px;
  border-bottom:1px solid rgba(255,176,74,.4);
}
.creed__label--brand{color:#f0a7c2;border-bottom-color:rgba(240,167,194,.4);}

.creed__title{
  font-size:clamp(38px,6vw,76px);
  font-weight:700;
  letter-spacing:.16em;
  line-height:1.3;
  color:#fff;
  text-indent:.16em;
  margin-bottom:6px;
}
.creed__yomi{
  display:block;
  font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  font-size:clamp(12px,1.1vw,14px);
  font-weight:600;letter-spacing:.34em;text-indent:.34em;
  color:#9fb6cf;margin-top:14px;
}
.creed__sub{
  font-size:clamp(16px,1.6vw,21px);
  color:#ffcf9a;letter-spacing:.06em;
  margin:18px 0 34px;
}

.creed__body{
  max-width:720px;margin-inline:auto;text-align:left;
}
.creed__body p{
  font-size:clamp(16px,1.35vw,18.5px);
  line-height:2.15;
  color:#d3dded;
  margin-bottom:22px;
  letter-spacing:.02em;
}
.creed__body p:last-child{margin-bottom:0;}
.creed__body strong{color:#ffb04a;font-weight:700;}

/* 区切り */
.creed__divider{
  display:flex;align-items:center;justify-content:center;gap:18px;
  margin:clamp(48px,6vw,84px) auto;
  max-width:520px;
}
.creed__divider span{
  flex:1;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,176,74,.45),transparent);
}
.creed__divider em{
  font-style:normal;color:#ffb04a;font-size:11px;opacity:.85;
}

/* 中心メッセージ */
.creed__quote{margin:0 0 40px;}
.creed__quote p{
  font-size:clamp(24px,3.6vw,46px);
  font-weight:700;
  line-height:1.75;
  letter-spacing:.07em;
  color:#fff;
}
.creed__quote .ln{display:block;}
.creed__quote--accent{
  color:#ffd08a;
}

.creed__pair{
  text-align:center;
  font-size:clamp(17px,1.7vw,22px) !important;
  line-height:2 !important;
  color:#fff !important;
  padding:24px 20px;
  border-top:1px solid rgba(255,255,255,.16);
  border-bottom:1px solid rgba(255,255,255,.16);
}
.creed__pair .ln{display:block;}

.creed__closing{
  margin-top:clamp(40px,5vw,64px);
  font-size:clamp(20px,2.6vw,32px);
  font-weight:700;
  line-height:1.9;
  letter-spacing:.06em;
  color:#fff;
}
.creed__closing .ln{display:block;}
.creed__closing--accent{
  color:#ffb04a;
  text-shadow:0 0 26px rgba(255,176,74,.4);
}

.creed__sign{
  margin-top:34px;
  font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  font-size:clamp(15px,1.2vw,16.5px);
  line-height:1.95;color:#9fb6cf;
}

/* =========================================================
   FAQ
   ========================================================= */
.faq{display:grid;gap:12px;}
.faq__item{
  background:#fff;border:1px solid var(--line-color);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden;
}
.faq__q{
  list-style:none;cursor:pointer;
  display:flex;align-items:flex-start;gap:12px;
  padding:18px 52px 18px 20px;
  font-size:17px;font-weight:800;color:var(--navy);line-height:1.65;
  position:relative;
}
.faq__q::-webkit-details-marker{display:none;}
.faq__q::before{
  content:"Q";flex:0 0 auto;
  width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;
  margin-top:1px;
}
.faq__q::after{
  content:"";position:absolute;right:22px;top:50%;
  width:12px;height:12px;margin-top:-8px;
  border-right:3px solid var(--blue);border-bottom:3px solid var(--blue);
  transform:rotate(45deg);transition:transform .2s;
}
.faq__item[open] .faq__q::after{transform:rotate(-135deg);margin-top:-2px;}
.faq__q:hover{background:var(--blue-pale2);}
.faq__a{
  padding:0 20px 20px 60px;
}
.faq__a p{font-size:16px;color:#3a4a5c;line-height:1.95;}

/* =========================================================
   会社概要
   ========================================================= */
.company-table{
  background:#fff;border:1px solid var(--line-color);border-radius:var(--radius-lg);
  overflow:hidden;box-shadow:var(--shadow);
}
.company-table th,.company-table td{
  padding:16px 20px;border-bottom:1px solid var(--line-color);
  text-align:left;vertical-align:top;font-size:16px;line-height:1.8;
}
.company-table th{
  width:190px;background:var(--blue-pale);color:var(--navy);font-weight:800;white-space:nowrap;
}
.company-table tr:last-child th,.company-table tr:last-child td{border-bottom:none;}


/* =========================================================
   対応エリア
   ========================================================= */
.area{
  display:grid;grid-template-columns:1fr 1.4fr;gap:24px;
  background:#fff;border:1px solid var(--line-color);border-radius:var(--radius-lg);
  padding:30px;box-shadow:var(--shadow);
}
.area__label{
  display:inline-block;background:var(--navy);color:#fff;
  font-size:13px;font-weight:800;letter-spacing:.06em;
  padding:4px 14px;border-radius:999px;margin-bottom:12px;
}
.area__sub .area__label{background:var(--blue);}
.area__city{font-size:clamp(24px,2.4vw,30px);font-weight:900;color:var(--navy);margin-bottom:10px;}
.area__txt{font-size:15.5px;color:#3a4a5c;line-height:1.9;}
.area__list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.area__list li{
  background:var(--blue-pale);color:var(--navy);font-size:15px;font-weight:700;
  padding:6px 15px;border-radius:999px;white-space:nowrap;
}

.area__pref{
  font-size:15px;font-weight:800;color:var(--navy);margin:0 0 8px;
  padding-left:12px;border-left:5px solid var(--blue);line-height:1.5;
}
.area__pref--saitama{border-left-color:var(--pink);margin-top:18px;}
.area__list--saitama li{background:var(--pink-pale);color:#a4436c;}
.area__note{font-size:15px;color:#3a4a5c;line-height:1.9;margin-top:14px;}

/* =========================================================
   下層ページ（プライバシーポリシー）
   ========================================================= */
.page-head{
  background:linear-gradient(180deg,#f7fbff 0%, #eef5fc 100%);
  padding:clamp(36px,4vw,56px) 0;text-align:center;
}
.page-head h1{font-size:clamp(26px,3vw,38px);font-weight:900;color:var(--navy);}
.legal h2{
  font-size:20px;font-weight:800;color:var(--navy);margin:32px 0 10px;
  padding-left:12px;border-left:5px solid var(--blue);line-height:1.5;
}
.legal h2:first-child{margin-top:0;}
.legal p,.legal li{font-size:16px;line-height:1.95;color:#3a4a5c;}
.legal ul{list-style:disc;padding-left:1.4em;margin:8px 0;}
.legal ul li{margin-bottom:4px;}
.legal .updated{margin-top:36px;font-size:14.5px;color:var(--muted);text-align:right;}


/* 外部サイトへのリンク */
.ext-btn{
  display:inline-flex;align-items:center;gap:6px;
  margin-top:8px;padding:8px 16px;min-height:40px;
  border:2px solid var(--blue);border-radius:999px;
  background:#fff;color:var(--blue);
  font-size:14.5px;font-weight:800;line-height:1.3;
  text-decoration:none;white-space:nowrap;
  transition:background-color .15s ease,color .15s ease;
}
.ext-btn:hover{background:var(--blue);color:#fff;text-decoration:none;}
.ext-btn__ico{flex:0 0 auto;}
.ext-btn--dark{
  background:transparent;border-color:rgba(255,255,255,.5);color:#fff;
}
.ext-btn--dark:hover{background:#fff;color:var(--navy-deep);}
.copyright a{color:#9fb6cf;}
.copyright a:hover{color:#fff;}

/* =========================================================
   最終CTA
   ========================================================= */
.contact{
  background:
    radial-gradient(700px 380px at 10% 0%, rgba(224,127,168,.22), transparent 60%),
    linear-gradient(160deg,var(--navy) 0%, var(--navy-deep) 100%);
  color:#fff;padding:clamp(56px,6vw,90px) 0;
}
.contact__ttl{
  text-align:center;font-size:clamp(24px,3vw,40px);font-weight:900;line-height:1.5;
}
.contact__lead{
  text-align:center;font-size:clamp(16px,1.3vw,18.5px);color:#d6e5f5;
  margin:18px 0 36px;line-height:1.9;
}
.contact__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.contact-card{
  display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;
  border-radius:var(--radius-lg);padding:28px 22px;text-decoration:none;
  min-height:200px;justify-content:center;
  border:2px solid transparent;transition:transform .15s ease, box-shadow .15s ease;
}
.contact-card:hover{text-decoration:none;transform:translateY(-3px);box-shadow:var(--shadow-md);}
.contact-card__ico{line-height:0;margin-bottom:4px;}
.contact-card__ttl{font-size:22px;font-weight:900;}
.contact-card__num{font-size:30px;font-weight:900;letter-spacing:.01em;white-space:nowrap;line-height:1.3;}
.contact-card__txt{font-size:14.5px;line-height:1.7;opacity:.95;}
.contact-card--line{background:var(--line-green);color:#fff;border-color:var(--line-green-dark);}
.contact-card--tel{background:#fff;color:var(--navy-deep);}
.contact-card--mail{background:var(--orange);color:#fff;border-color:var(--orange-dark);}

.contact-card__mail{
  font-size:16px;font-weight:800;word-break:break-all;line-height:1.4;
}
.contact__hours{
  display:inline-block;margin-top:10px;font-size:15px;color:#bcd2e9;line-height:1.8;
}
.tel-link{font-weight:700;}
.contact__note{
  margin-top:30px;text-align:center;font-size:15px;color:#cfe0f2;line-height:1.9;
}


/* =========================================================
   お問い合わせフォーム
   ========================================================= */
.form-wrap{
  margin-top:40px;background:#fff;border-radius:var(--radius-lg);
  padding:clamp(24px,3vw,40px);box-shadow:var(--shadow-md);
  max-width:760px;margin-inline:auto;
}
.form-wrap__ttl{
  font-size:clamp(21px,2.2vw,26px);font-weight:900;color:var(--navy);text-align:center;
}
.form-wrap__lead{
  text-align:center;font-size:15.5px;color:var(--muted);line-height:1.85;margin:10px 0 24px;
}
.cform__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.cform__row{margin-bottom:18px;}
.cform__label{
  display:flex;align-items:center;gap:8px;
  font-size:16px;font-weight:800;color:var(--navy);margin-bottom:6px;
}
.cform__req,.cform__any{
  font-size:12px;font-weight:800;padding:2px 8px;border-radius:4px;letter-spacing:.04em;
}
.cform__req{background:#fdecec;color:#c0392b;}
.cform__any{background:var(--blue-pale);color:var(--navy-soft);}
.cform__input{
  width:100%;font:inherit;font-size:16px;color:var(--ink);
  padding:14px 14px;border:2px solid var(--line-color);border-radius:10px;
  background:#fdfefe;min-height:54px;
}
.cform__input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px rgba(47,127,196,.18);}
.cform__input--area{min-height:120px;line-height:1.8;resize:vertical;}
select.cform__input{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--navy) 50%),linear-gradient(135deg,var(--navy) 50%,transparent 50%);background-position:calc(100% - 20px) 24px,calc(100% - 14px) 24px;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:44px;}
.cform__agree{
  display:flex;align-items:center;gap:10px;justify-content:center;
  font-size:15.5px;color:#3a4a5c;margin:6px 0 20px;
}
.cform__agree input{width:22px;height:22px;accent-color:var(--orange);flex:0 0 auto;}
.cform__submit{width:100%;}
.cform__error{
  margin-top:14px;background:#fdecec;border:2px solid #e8a7a7;border-radius:10px;
  padding:14px 16px;font-size:15px;line-height:1.8;color:#a3282b;text-align:center;
}
.cform__error a{color:#a3282b;font-weight:800;text-decoration:underline;}
.cform__submit:disabled{opacity:.65;cursor:progress;}

.cform__note{
  margin-top:14px;font-size:13.5px;color:var(--muted);line-height:1.8;text-align:center;
}


/* =========================================================
   送信完了ページ
   ========================================================= */
.thanks{
  background:linear-gradient(180deg,#f7fbff 0%, #eef5fc 100%);
  min-height:60vh;display:flex;align-items:center;
}
.thanks__box{
  background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);
  padding:clamp(30px,4vw,54px);text-align:center;
}
.thanks__ico{color:var(--line-green);line-height:0;margin-bottom:14px;}
.thanks__ttl{font-size:clamp(24px,3vw,36px);font-weight:900;color:var(--navy);line-height:1.5;}
.thanks__txt{margin-top:18px;font-size:clamp(16px,1.4vw,18.5px);color:#3a4a5c;line-height:1.95;}
.thanks__note{
  margin-top:20px;font-size:15px;color:var(--muted);line-height:1.9;
  background:var(--blue-pale2);border-radius:var(--radius);padding:18px;
}
.thanks__cta{margin-top:26px;}
.thanks__back{margin-top:22px;font-size:15.5px;}

/* =========================================================
   フッター
   ========================================================= */
.site-footer{background:var(--navy-deep);color:#cfdcec;padding:56px 0 30px;}
.footer-top{
  display:grid;grid-template-columns:1.1fr 1.2fr .9fr;gap:40px;
  padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.15);
}
.footer-brand__logo-box{
  display:inline-block;background:#fff;border-radius:12px;
  padding:14px 18px;margin-bottom:14px;
}
.footer-brand__logo{width:210px;height:auto;display:block;}
.footer-brand__name{font-size:20px;font-weight:800;color:#fff;}
.footer-brand__sub{font-size:13px;letter-spacing:.08em;color:#9fb6cf;margin-bottom:14px;}
.footer-brand__msg{font-size:16px;color:#fff;font-weight:700;}
.footer-info dl{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:15px;}
.footer-info dt{font-weight:800;color:#9fb6cf;white-space:nowrap;}
.footer-info dd{margin:0;line-height:1.7;}
.footer-info a{color:#fff;font-weight:700;}
.footer-nav__ttl{font-size:15px;font-weight:800;color:#9fb6cf;margin-bottom:12px;}
.footer-nav ul{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 14px;}
.footer-nav li{line-height:1.5;}
.footer-nav a{white-space:nowrap;}
.footer-nav a{color:#cfdcec;font-size:14.5px;}
.footer-nav a:hover{color:#fff;}
.copyright{margin-top:24px;text-align:center;font-size:13.5px;color:#9fb6cf;}

/* =========================================================
   スマホ固定CTA
   ========================================================= */
.fixed-cta{
  display:none;
  position:fixed;left:0;right:0;bottom:0;z-index:800;
  background:rgba(255,255,255,.96);
  border-top:1px solid var(--line-color);
  padding:8px 10px calc(8px + env(safe-area-inset-bottom));
  gap:8px;
  box-shadow:0 -4px 16px rgba(18,49,92,.12);
}
.fixed-cta__btn{
  flex:1 1 0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  min-height:56px;border-radius:12px;
  font-size:13px;font-weight:800;text-decoration:none;color:#fff;
  padding:6px 4px;line-height:1.25;text-align:center;
}
.fixed-cta__btn:hover{text-decoration:none;color:#fff;}
.fixed-cta__btn--line{background:var(--line-green);}
.fixed-cta__btn--tel{background:var(--navy-deep);}
.fixed-cta__btn--quote{background:var(--orange);flex:1.6 1 0;font-size:14.5px;}

/* =========================================================
   モーダル
   ========================================================= */
.modal{
  position:fixed;inset:0;z-index:1000;background:rgba(8,20,38,.92);
  display:flex;align-items:center;justify-content:center;padding:24px;
}
.modal__img{max-width:100%;max-height:90vh;object-fit:contain;border-radius:8px;}
.modal__close{
  position:absolute;top:14px;right:18px;width:48px;height:48px;
  background:rgba(255,255,255,.15);border:none;border-radius:50%;
  color:#fff;font-size:32px;line-height:1;cursor:pointer;
}
.modal__close:hover{background:rgba(255,255,255,.3);}

/* PCは2段ヘッダー（1段目：ロゴ＋CTA／2段目：ナビ）にして
   ナビが折り返したり画面からはみ出したりしないようにする */
@media (min-width:1025px){
  .header-inner{
    display:grid;
    grid-template-columns:auto 1fr;
    grid-template-areas:"brand cta" "nav nav";
    align-items:center;
    column-gap:20px;row-gap:4px;
    padding:8px 0 4px;
  }
  .brand{grid-area:brand;}
  .gnav{display:contents;}
  .gnav__cta{grid-area:cta;justify-self:end;}
  .gnav__list{
    grid-area:nav;
    justify-content:flex-start;
    gap:clamp(16px,2vw,34px);
    border-top:1px solid var(--line-color);
    padding-top:2px;
    flex-wrap:nowrap;
  }
}

/* =========================================================
   レスポンシブ
   ========================================================= */
@media (max-width:1280px){
  .gnav__list a{font-size:14px;}
  .btn{font-size:14px;padding:10px 14px;}
  .brand__logo{height:46px;}
  .brand__name{font-size:18px;}
}

@media (max-width:1180px){
  .trust__list{grid-template-columns:repeat(3,1fr);}
  .items{grid-template-columns:repeat(4,1fr);}
  .price-grid{grid-template-columns:repeat(2,1fr);}
  .license-grid{grid-template-columns:repeat(2,1fr);}
  .reviews__grid{grid-template-columns:repeat(3,1fr);}
}

@media (max-width:1024px){
  :root{--header-h:78px;}
  .hamburger{display:flex;}
  .header-inner{gap:12px;}
  .brand__logo{height:44px;}
  .brand__name{font-size:17px;}
  .brand__sub{font-size:11.5px;}

  /* ハンバーガー展開時のドロワー */
  .gnav{
    position:fixed;top:0;right:0;z-index:880;
    width:min(86vw,360px);height:100dvh;
    background:#fff;
    flex-direction:column;align-items:stretch;justify-content:flex-start;
    gap:0;padding:88px 22px calc(28px + env(safe-area-inset-bottom));
    overflow-y:auto;
    transform:translateX(100%);
    box-shadow:-8px 0 30px rgba(13,36,68,.2);
    margin-left:0;
  }
  /* 閉じているときは要素ごと消して、画面幅に影響させない */
  .gnav:not(.is-open){display:none;}
  .gnav.is-open{transform:translateX(0);animation:navIn .28s ease;}
  .gnav__list{flex-direction:column;align-items:stretch;gap:0;}
  .gnav__list li{border-bottom:1px solid var(--line-color);}
  .gnav__list a{
    font-size:17px;padding:16px 6px;border-bottom:none;
  }
  .gnav__cta{flex-direction:column;align-items:stretch;gap:10px;margin-top:22px;}
  .gnav__cta .btn{width:100%;min-height:56px;font-size:16px;}
  .gnav__cta .btn--quote{display:inline-flex;}
  .btn__tel{align-items:center;}

  .hero__inner{grid-template-columns:1fr;gap:26px;}
  .hero__visual{order:2;}
  .hero__visual{max-width:600px;}
  .cards--3{grid-template-columns:repeat(2,1fr);}
  .reasons{grid-template-columns:1fr;}
  .flow{grid-template-columns:repeat(2,1fr);}
  .cases{grid-template-columns:1fr;}
  .case-photos{grid-template-columns:repeat(3,1fr);}
  .ba-grid{grid-template-columns:1fr;}
  .photo-grid{grid-template-columns:repeat(2,1fr);}
  .insurance{grid-template-columns:1fr;gap:20px;text-align:center;}
  .staff{grid-template-columns:220px 1fr;gap:24px;padding:26px 24px;}
  .store{grid-template-columns:1fr;gap:24px;}
  .footer-top{grid-template-columns:1fr 1fr;gap:28px;}
  .value-visual{grid-template-columns:90px 1fr 90px;padding:22px;}
  .contact__cards{grid-template-columns:1fr;}
  .contact-card{min-height:0;padding:22px;}
  body{padding-bottom:76px;}
  .fixed-cta{display:flex;}
}

@media (max-width:768px){
  body{font-size:16px;line-height:1.85;}
  .container{width:min(100% - 32px, var(--container));}
  .container--narrow{width:min(100% - 32px, 880px);}
  .pc-only{display:none;}
  .sp-only{display:inline;}
  .sp-br{display:inline;}

  .hero{padding:28px 0 40px;}
  .hero__inner{width:min(100% - 32px, var(--container));}
  .hero__title{font-size:clamp(26px,7.3vw,38px);line-height:1.34;}
  .hero__sub{font-size:clamp(17px,4.9vw,24px);}
  .hero__lead{font-size:15.5px;}
  .hero__lead-tags{gap:5px;}
  .hero__lead-tags .nw{font-size:13.5px;padding:4px 12px;}
  .ba-hero{gap:10px;}
  .ba-hero__item img{aspect-ratio:5/4;}
  .hero__badges li{font-size:12.5px;padding:5px 11px;}
  .hero__cta{flex-direction:column;}
  .hero__cta .btn{width:100%;}
  .btn--lg{min-height:60px;font-size:17px;}
  .btn__tel{align-items:center;}

  .trust__list{grid-template-columns:repeat(2,1fr);gap:10px;}
  .trust__item{padding:14px 10px;}
  .trust__ttl{font-size:15px;}
  .trust__txt{font-size:12.5px;}

  .section{padding:48px 0;}
  .sec-head__ttl{font-size:clamp(24px,6.6vw,34px);}
  .sec-head__lead{font-size:15.5px;}

  .cards--3{grid-template-columns:1fr;gap:14px;}
  .card{padding:22px 20px;}
  .card__ttl{font-size:19px;}
  .card__txt{font-size:15.5px;}

  .reason{padding:22px 20px;gap:14px;}
  .reason__no{font-size:22px;}
  .reason__ttl{font-size:17.5px;}

  .flow{grid-template-columns:1fr;gap:14px;}
  .flow__step{padding:20px 18px;}
  .value-visual{grid-template-columns:1fr;text-align:center;gap:12px;}
  .value-visual img{max-width:120px;margin:0 auto;}
  /* スマホではキャラクターは1体だけ表示する */
  .value-visual picture:last-of-type{display:none;}

  .price-grid{grid-template-columns:1fr;gap:16px;}
  .price-card{display:grid;grid-template-columns:42% 1fr;align-items:center;}
  .price-card__fig{padding:10px;}
  .price-card__fig img{aspect-ratio:4/3;}
  .price-card__body{padding:14px 16px 14px 4px;text-align:left;}
  .price-card__ttl{font-size:18px;border-bottom:none;padding-bottom:0;}
  .price-card__price{margin:4px 0 6px;font-size:17px;}
  .price-card__price .num{font-size:28px;}
  .price-card__txt{font-size:13.5px;}
  .price-note{padding:22px 20px;}
  .price-note__list li{font-size:13.5px;padding:4px 12px;}

  .calc__val{font-size:20px;}
  .calc__row--result .calc__val{font-size:23px;}
  .case-photos{grid-template-columns:repeat(3,1fr);gap:8px;}
  .case-photo figcaption{font-size:12px;}

  .ba-pair{grid-template-columns:1fr;gap:8px;}
  .ba-pair__arrow{transform:rotate(90deg);}
  .ba-card{padding:18px 16px;}
  .ba-placeholder{aspect-ratio:16/10;}

  .photo-grid{grid-template-columns:1fr;gap:16px;}

  .reuse-flow{gap:8px 26px;}
  .reuse-flow li{font-size:14.5px;padding:8px 16px;}
  .reuse-flow li:not(:last-child)::after{right:-20px;}
  .items{grid-template-columns:repeat(3,1fr);gap:10px;}
  .item figcaption{font-size:12px;}
  .reuse-note{font-size:15px;padding:18px 18px;}

  .license-grid{grid-template-columns:1fr;gap:16px;}
  .license img{aspect-ratio:auto;max-height:60vh;}
  .license-txt{font-size:15.5px;}

  .insurance{padding:24px 20px;}
  .insurance__name{font-size:19px;}
  .insurance__txt{font-size:15.5px;text-align:left;}

  .staff{grid-template-columns:1fr;text-align:center;padding:24px 20px;}
  .staff__photo img{max-width:300px;margin:0 auto;aspect-ratio:4/5;}
  .staff__ttl{font-size:21px;}
  .staff__body p{font-size:15.5px;text-align:left;}

  .store__ttl{font-size:22px;}
  .store__dl{grid-template-columns:1fr;gap:2px;}
  .store__dl dt{font-size:14px;color:var(--muted);margin-top:8px;}
  .store__links .btn{width:100%;}
  .reviews__grid{grid-template-columns:1fr;}
  .store-gallery__grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .store-gallery__ttl{font-size:19px;}

  .creed{padding:56px 0;}
  .creed__title{font-size:clamp(34px,10.5vw,48px);letter-spacing:.12em;text-indent:.12em;}
  .creed__quote p{font-size:clamp(21px,5.9vw,28px);line-height:1.8;}
  .creed__body p{font-size:15.5px;line-height:2.05;}
  .creed__pair{font-size:16.5px !important;padding:20px 4px;}
  .creed__closing{font-size:clamp(18px,5.4vw,24px);}
  .creed__divider{margin:44px auto;}

  .faq__q{font-size:16px;padding:16px 46px 16px 16px;}
  .faq__a{padding:0 16px 18px 16px;}
  .faq__a p{font-size:15.5px;}

  .company-table th,.company-table td{display:block;width:auto;}
  .company-table th{border-bottom:none;padding:12px 16px 6px;}
  .company-table td{padding:0 16px 14px;}

  .contact__ttl{font-size:clamp(22px,6vw,30px);}
  .contact-card__num{font-size:26px;}


  .area{grid-template-columns:1fr;gap:20px;padding:22px 20px;}
  .footer-top{grid-template-columns:1fr;gap:26px;}
  .footer-nav ul{grid-template-columns:1fr 1fr;}
}

@media (max-width:430px){
  .brand__logo{height:38px;}
  .brand__name{font-size:15.5px;}
  .brand__sub{font-size:10.5px;letter-spacing:.04em;}
  .hamburger{width:50px;height:50px;}
  .hero__eyebrow{font-size:12.5px;padding:5px 12px;}
  .hero__title{font-size:29px;}
  .trust__list{grid-template-columns:1fr 1fr;}
  .price-card{grid-template-columns:38% 1fr;}
  .price-card__price .num{font-size:25px;}
  .items{grid-template-columns:repeat(2,1fr);}
  .fixed-cta__btn{font-size:12px;}
  .fixed-cta__btn--quote{font-size:13.5px;}
  .calc__val{font-size:22px;}
}

@media (max-width:375px){
  .brand__sub{display:none;}
  .hero__title{font-size:26px;}
  .hero__sub{font-size:17.5px;}
  .sec-head__ttl{font-size:23px;}
  .fixed-cta__btn--quote{font-size:12.5px;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important;}
}

@media print{
  .site-header,.fixed-cta,.modal{display:none !important;}
  body{padding-bottom:0;}
}

@keyframes navIn{
  from{transform:translateX(100%);}
  to{transform:translateX(0);}
}
