/* ==========================================================================
   共通スタイル - 岩淵工務店リニューアル
   ========================================================================== */
:root{
  --brand:#00c4c4; --brand-2:#174b3f; --accent:#aaeeee;
  --bg:#f7f7f5; --ink:#111827; --muted:#6b7280;
  --radius:16px; --shadow:0 10px 30px rgba(0,0,0,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:"Noto Sans JP",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";color:var(--ink);background:var(--bg);line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}

.container{width:min(1100px,92vw);margin-inline:auto}
.grid{display:grid;gap:clamp(14px,2.6vw,28px)}
.section{
  padding:clamp(26px,4vw,55px) 0;
  margin-bottom:clamp(14px,2.6vw,26px);
}
.section:last-of-type{margin-bottom:0}
.surface{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}
.title{font-family:"Noto Serif JP",serif;line-height:1.25;}
.muted{color:var(--muted)}
.center{display:grid;place-items:center}
.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}
.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}
.mb-0{margin-bottom:0}

.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.2rem;border-radius:999px;font-weight:700;letter-spacing:.02em;border:1px solid transparent;box-shadow:var(--shadow);transition:.2s ease}
.btn--primary{background:var(--brand);color:#fff}
.btn--primary:hover{background:var(--brand-2)}
.btn--ghost{background:transparent;border-color:#cbd5e1;color:var(--brand)}
.tag{display:inline-block;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;background:#e8efe9;color:var(--brand);padding:.35rem .7rem;border-radius:999px}

body > header{position:sticky;top:0;z-index:50;backdrop-filter:saturate(180%) blur(8px);background:linear-gradient(to bottom,rgba(247,247,245,.85),rgba(247,247,245,.55));border-bottom:1px solid rgba(0,0,0,.05)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:.65rem 0;gap:8px}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:2px;font-weight:800;flex-shrink:0;min-width:0;text-decoration:none;padding-left:5px}
.brand-top{display:flex;align-items:center;gap:.55rem;min-width:0}
.brand-logo{width:28px;height:28px;flex-shrink:0;border-radius:0;background:transparent;display:grid;place-items:center;box-shadow:none}
.brand-logo svg{width:100%;height:100%;display:block;color:var(--brand)}
.brand-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:"Noto Serif JP",serif;font-size:1.12rem;line-height:1}
.brand-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.66rem;font-weight:500;letter-spacing:.02em;color:color-mix(in srgb,var(--muted) 82%,#fff)}
@media (max-width:420px){
  .brand-logo{width:26px;height:26px}
  .brand-name{font-size:1.05rem}
  .brand-sub{font-size:.62rem}
}
.lp-nav{display:flex;align-items:center;gap:.5rem;flex-shrink:0}
.nav-links-main{display:none;gap:.5rem;align-items:center}
@media(min-width:640px){.nav-links-main{display:flex}}
.nav-links-main a{padding:.4rem .55rem;border-radius:8px;font-size:.88rem;white-space:nowrap}
.nav-links-main a:hover{background:#e8efe9}
.hamburger-btn{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;width:40px;height:40px;gap:5px;background:transparent;border:1px solid #cbd5e1;border-radius:10px;cursor:pointer;padding:0;flex-shrink:0;transition:background .15s}
.hamburger-btn .hamburger-label{display:none}
.hamburger-btn:hover{background:#e8efe9}
.bar{display:block;width:18px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s ease,opacity .2s ease}
.hamburger-btn[aria-expanded="true"] .bar:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger-btn[aria-expanded="true"] .bar:nth-child(2){opacity:0;transform:scaleX(0)}
.hamburger-btn[aria-expanded="true"] .bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-links{display:none;position:fixed;z-index:60;flex-direction:column;gap:2px;padding:8px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:var(--shadow);max-height:min(70vh,480px);overflow-y:auto;top:60px;right:12px;left:auto;bottom:auto;width:min(260px,calc(100vw - 24px))}
.nav-links.show{display:flex}
.nav-links a{padding:.55rem .8rem;border-radius:8px;text-align:left;font-size:.9rem;display:block;position:relative}
.nav-links a:hover{background:#e8efe9}
.nav-links a[href^="#"]{color:var(--brand);padding-left:1.6rem}
.nav-links a[href^="#"]::before{content:"↓";position:absolute;left:.55rem;top:50%;transform:translateY(-50%);font-size:.72rem;opacity:.75}
.nav-links a:not([href^="#"]){color:var(--ink)}
.nav-label{display:block;font-size:.7rem;font-weight:700;color:var(--muted);letter-spacing:.1em;padding:.5rem .8rem .15rem;text-transform:uppercase}
.nav-sep{border:none;border-top:1px solid #f1f5f9;margin:4px 0}
@media(min-width:1100px){
  .nav-links{top:66px;right:max(12px,calc((100vw - 1100px)/2 + 12px))}
}

.hero{position:relative;isolation:isolate;overflow:clip;background:#fff}
.hero::before{
  content:"";position:absolute;inset:0;z-index:-2;
  background:var(--hero, url('../img/hero/top_image.jpg')) 64% center/cover no-repeat;
  filter:saturate(1.08) brightness(1.03) contrast(1.02);
}
.hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,.18) 100%);
}
@media (max-width: 780px) {
  .hero::before{ background-position: 58% center; }
  .hero::after{
    background:
      linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.34) 42%, rgba(255,255,255,.72) 76%, rgba(255,255,255,.82) 100%);
  }
}
.hero-inner{padding:clamp(64px,9vw,140px) 0;color:var(--ink)}
.hero h1{font-size:clamp(1.8rem,3.8vw,3.1rem);margin:0 0 10px;color:var(--ink)}
.hero p{max-width:64ch;color:#1f2937;opacity:1}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.trust{margin-top:22px;display:flex;gap:16px;flex-wrap:wrap}
.trust .chip{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);color:#fff;padding:.4rem .7rem;border-radius:999px;font-size:.9rem}

.services-grid{grid-template-columns:repeat(12,1fr)}
.service-card{grid-column:span 4;background:#fff;border-radius:0;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:stretch}
.service-card img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center}
.service-card .content{padding:16px 16px 18px;flex:0 0 auto}
.service-card > a:first-child{display:block;flex-shrink:0}
.service-card h3{margin:0 0 6px}
.service-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.service-tags span{font-size:.8rem;background:#f1f5f9;color:#334155;padding:.25rem .5rem;border-radius:999px}
@media (max-width:980px){.service-card{grid-column:span 6}}
@media (max-width:640px){
  .service-card{grid-column:span 12}
  .service-card img{aspect-ratio:16/9}
}

.works-grid{grid-template-columns:repeat(12,1fr)}
.work{grid-column:span 4;border-radius:0;overflow:hidden;box-shadow:var(--shadow);background:#fff}
.work figure{margin:0}
.work img{aspect-ratio:4/3;object-fit:cover}
.work a.gallery{display:block;color:inherit}
.work a.gallery:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.work figcaption{padding:12px 14px;font-size:.95rem}
.work figcaption .work-title{margin:0 0 4px;font-size:1.05rem;line-height:1.35;font-weight:700}
.work figcaption .work-desc{margin:0;font-size:.92rem;color:var(--muted)}
@media (max-width:980px){.work{grid-column:span 6}}
@media (max-width:640px){.work{grid-column:span 12}}

.value{grid-template-columns:1.1fr 1fr}
.check{display:flex;align-items:flex-start;gap:12px}
.check i{width:26px;height:26px;border-radius:999px;background:#e8efe9;color:var(--brand);display:grid;place-items:center;font-weight:900}
@media (max-width:880px){.value{grid-template-columns:1fr}}

.steps{grid-template-columns:repeat(6,1fr)}
.step{grid-column:span 2;background:#fff;border-radius:16px;padding:16px;box-shadow:var(--shadow)}
.step small{display:block;color:var(--muted)}
@media (max-width:1000px){.step{grid-column:span 3}}
@media (max-width:600px){.step{grid-column:span 6}}

details{background:#fff;border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}
details+details{margin-top:14px}
summary{cursor:pointer;font-weight:700}

.grid-2col{grid-template-columns:1.2fr 1fr}
@media (max-width:768px){.grid-2col{grid-template-columns:1fr}}

form{display:grid;gap:14px}
.field{display:grid;gap:8px}
.field label{font-weight:600}
.field input,.field select,.field textarea{padding:12px 12px;border-radius:12px;border:1px solid #e5e7eb;background:#fff;font:inherit}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #bfd5ca;border-color:#bfd5ca}
.field input::placeholder,.field textarea::placeholder{color:#b0b8c1}
#contact form,#estimate-form form{width:100%}
#contact form .field,#estimate-form form .field{min-width:0}
#contact form input,#contact form select,#contact form textarea,
#estimate-form form input,#estimate-form form select,#estimate-form form textarea{width:100%;max-width:100%}
#contact form input[type="checkbox"],#contact form input[type="radio"],
#estimate-form form input[type="checkbox"],#estimate-form form input[type="radio"]{width:auto}
@media (max-width:768px){
  #contact form .grid,#estimate-form form .grid{grid-template-columns:1fr !important;gap:12px}
  #contact form input,#contact form select,#contact form textarea,
  #estimate-form form input,#estimate-form form select,#estimate-form form textarea{font-size:16px}
}
#contact form .consent-row,#estimate-form form .consent-row{display:flex;align-items:flex-start;gap:.5rem;grid-column:1/-1;min-width:0;flex-wrap:wrap}
#contact form .consent-row input,#estimate-form form .consent-row input{flex:0 0 auto;margin-top:.2rem}
#contact form .consent-row span,#estimate-form form .consent-row span{flex:1 1 0;min-width:0;white-space:normal;word-break:break-word}
#contact form .btn--primary,#estimate-form form .btn--primary{font-size:1.1rem;padding:1rem 1.4rem}

/* ============================================================
   お見積り依頼ページ（地域密着工務店らしい、親しみやすいLP構成）
   Hero / Reasons / Flow / Form / FAQ
   ============================================================ */

/* Hero */
.page-estimate .estimate-hero,
.page-contact .estimate-hero{
  position:relative;
  padding:clamp(26px,4.5vw,52px) 0 clamp(28px,4.5vw,56px);
  background:
    radial-gradient(60% 45% at 85% -10%,rgba(0,196,196,.16),transparent 60%),
    radial-gradient(70% 60% at -10% 110%,rgba(170,238,238,.28),transparent 55%),
    linear-gradient(180deg,#eef7f4 0%,#f6faf8 60%,var(--bg) 100%);
  overflow:hidden;
}
.page-estimate .estimate-hero::after,
.page-contact .estimate-hero::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-1px;height:28px;
  background:radial-gradient(120% 100% at 50% 0%,var(--bg) 55%,transparent 60%);
  pointer-events:none;
}
.page-estimate .estimate-hero__inner,
.page-contact .estimate-hero__inner{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(18px,3vw,28px);
  align-items:center;
  position:relative;
}
@media (min-width:820px){
  .page-estimate .estimate-hero__inner,
  .page-contact .estimate-hero__inner{grid-template-columns:1.35fr .9fr}
}
.page-estimate .estimate-hero__main .tag,
.page-contact .estimate-hero__main .tag{margin-bottom:.55rem}
.page-estimate .estimate-hero__title,
.page-contact .estimate-hero__title{
  margin:.3rem 0 .65rem;
  font-family:"Noto Sans JP",system-ui,sans-serif;
  font-size:clamp(1.55rem,3.6vw,2.15rem);
  font-weight:800;
  line-height:1.28;
  letter-spacing:.02em;
  color:var(--ink);
}
.page-estimate .estimate-hero__title::after,
.page-contact .estimate-hero__title::after{
  content:"";
  display:block;
  width:52px;
  height:4px;
  margin-top:.55rem;
  border-radius:999px;
  background:linear-gradient(90deg,var(--brand),#7fdcdc);
}
.page-estimate .estimate-hero__lead,
.page-contact .estimate-hero__lead{
  margin:0 0 1rem;
  max-width:42ch;
  font-size:clamp(.95rem,1.6vw,1.02rem);
  line-height:1.7;
  color:#334155;
}
.page-estimate .estimate-hero__lead strong,
.page-contact .estimate-hero__lead strong{color:var(--brand-2);font-weight:700}

/* 担当者カード（フォーム冒頭に配置） */
.page-estimate .estimate-card__profile,
.page-contact .estimate-card__profile{
  display:flex;
  gap:.9rem;
  align-items:center;
  padding:.8rem .9rem;
  margin:0 0 1rem;
  background:#f6faf8;
  border:1px solid #dde8e2;
  border-radius:14px;
}
.page-estimate .estimate-card__avatar,
.page-contact .estimate-card__avatar{
  width:104px;
  height:104px;
  border-radius:999px;
  object-fit:cover;
  object-position:50% 28%;
  border:4px solid #fff;
  box-shadow:0 10px 24px rgba(23,75,63,.14);
  flex:0 0 auto;
}
.page-estimate .estimate-card__profile-body,
.page-contact .estimate-card__profile-body{min-width:0}
.page-estimate .estimate-card__profile-kicker,
.page-contact .estimate-card__profile-kicker{
  margin:0;
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.page-estimate .estimate-card__profile-name,
.page-contact .estimate-card__profile-name{
  margin:.05rem 0 .2rem;
  font-size:1.02rem;
  font-weight:800;
  letter-spacing:.02em;
  color:var(--ink);
}
.page-estimate .estimate-card__profile-text,
.page-contact .estimate-card__profile-text{
  margin:0;
  font-size:.86rem;
  line-height:1.6;
  color:#334155;
}
@media (max-width:420px){
  .page-estimate .estimate-card__profile,
  .page-contact .estimate-card__profile{padding:.75rem .8rem;gap:.8rem}
  .page-estimate .estimate-card__avatar,
  .page-contact .estimate-card__avatar{width:72px;height:72px}
  .page-estimate .estimate-card__profile-text,
  .page-contact .estimate-card__profile-text{font-size:.82rem}
}

/* contact: 電話アイコンのアバター表示 */
.page-contact .estimate-card__avatar{
  width:84px;
  height:84px;
  display:grid;
  place-items:center;
  background:#fff;
  color:var(--brand);
  font-size:34px;
  line-height:1;
}

/* contact: 電話番号をアイコンと釣り合わせる */
.page-contact .estimate-card__profile-name{font-size:1.15rem}
.page-contact .estimate-card__tel{
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  font-weight:900;
  color:var(--brand-2);
  text-decoration:none;
  font-size:1.25rem;
  letter-spacing:.02em;
}
.page-contact .estimate-card__tel:hover{color:var(--brand)}
.page-estimate .estimate-hero__points,
.page-contact .estimate-hero__points{
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
  margin:0 0 1.1rem;
  padding:0;
  list-style:none;
}
.page-estimate .estimate-hero__points li,
.page-contact .estimate-hero__points li{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  padding:.38rem .75rem .38rem .55rem;
  background:#fff;
  border:1px solid #cfe4da;
  border-radius:999px;
  font-size:.82rem;
  font-weight:700;
  color:var(--brand-2);
  box-shadow:0 2px 8px rgba(23,75,63,.05);
}
.page-estimate .estimate-hero__points .material-icons-round,
.page-contact .estimate-hero__points .material-icons-round{
  font-size:1.05rem;
  color:var(--brand);
}
.page-estimate .estimate-hero__actions,
.page-contact .estimate-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px 12px;
  align-items:center;
  margin:.2rem 0 .5rem;
}
.page-estimate .estimate-hero__cta,
.page-contact .estimate-hero__cta{
  padding:.95rem 1.35rem;
  font-size:1.02rem;
}
.page-estimate .estimate-hero__cta .btn__icon,
.page-contact .estimate-hero__cta .btn__icon{
  font-size:1.2rem;
}
.page-estimate .estimate-hero__cta.btn--ghost,
.page-contact .estimate-hero__cta.btn--ghost{
  background:#fff;
  border-color:#b8dcc8;
  color:var(--brand-2);
}
.page-estimate .estimate-hero__cta.btn--ghost:hover,
.page-contact .estimate-hero__cta.btn--ghost:hover{
  border-color:var(--brand);
  color:var(--brand);
}
.page-estimate .estimate-hero__hours,
.page-contact .estimate-hero__hours{
  margin:0;
  font-size:.8rem;
}
.page-estimate .estimate-hero__aside,
.page-contact .estimate-hero__aside{
  justify-self:center;
  max-width:320px;
  text-align:center;
}
.page-estimate .estimate-hero__photo,
.page-contact .estimate-hero__photo{
  display:inline-block;
  line-height:0;
  border-radius:0;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(23,75,63,.12);
  background:#fff;
  border:6px solid #fff;
  transform:rotate(-1.5deg);
  transition:transform .25s ease, box-shadow .25s ease;
}
.page-estimate .estimate-hero__photo:hover,
.page-contact .estimate-hero__photo:hover{
  transform:rotate(0deg) translateY(-2px);
  box-shadow:0 14px 36px rgba(23,75,63,.16);
}
.page-estimate .estimate-hero__photo img,
.page-contact .estimate-hero__photo img{
  display:block;
  max-width:100%;
  height:auto;
}
.page-estimate .estimate-hero__caption,
.page-contact .estimate-hero__caption{
  margin:.75rem auto 0;
  max-width:32ch;
  font-size:.86rem;
  line-height:1.55;
  color:#445064;
}
.page-estimate .estimate-hero__caption strong,
.page-contact .estimate-hero__caption strong{color:var(--brand-2);font-weight:700}

/* Compact hero：フォームに素早く辿り着けるよう、ヒーローを小さくまとめる */
.page-estimate .estimate-hero--compact,
.page-contact .estimate-hero--compact{
  padding:clamp(16px,2.8vw,28px) 0 clamp(14px,2.4vw,24px);
}
.page-estimate .estimate-hero--compact::after,
.page-contact .estimate-hero--compact::after{content:none}
.page-estimate .estimate-hero--compact .estimate-hero__inner,
.page-contact .estimate-hero--compact .estimate-hero__inner{
  grid-template-columns:1fr;
  gap:.4rem;
}
@media (min-width:860px){
  .page-estimate .estimate-hero--compact .estimate-hero__inner,
  .page-contact .estimate-hero--compact .estimate-hero__inner{grid-template-columns:1fr}
}
.page-estimate .estimate-hero--compact .estimate-hero__title,
.page-contact .estimate-hero--compact .estimate-hero__title{
  margin:.1rem 0 .45rem;
  font-size:clamp(1.45rem,3.2vw,1.95rem);
}
.page-estimate .estimate-hero--compact .estimate-hero__title::after,
.page-contact .estimate-hero--compact .estimate-hero__title::after{content:none}
.page-estimate .estimate-hero--compact .estimate-hero__lead,
.page-contact .estimate-hero--compact .estimate-hero__lead{
  margin:.15rem 0 .6rem;
  font-size:.98rem;
  line-height:1.65;
}
.page-estimate .estimate-hero--compact .estimate-hero__points,
.page-contact .estimate-hero--compact .estimate-hero__points{
  margin:.1rem 0 .6rem;
  gap:6px 12px;
}
.page-estimate .estimate-hero--compact .estimate-hero__points li,
.page-contact .estimate-hero--compact .estimate-hero__points li{
  padding:.3rem .7rem;
  font-size:.82rem;
}
.page-estimate .estimate-hero--compact .estimate-hero__actions,
.page-contact .estimate-hero--compact .estimate-hero__actions{
  margin:.15rem 0 .35rem;
}
.page-estimate .estimate-hero--compact .estimate-hero__cta,
.page-contact .estimate-hero--compact .estimate-hero__cta{
  padding:.78rem 1.15rem;
  font-size:.96rem;
}
.page-estimate .estimate-hero--compact .estimate-hero__hours,
.page-contact .estimate-hero--compact .estimate-hero__hours{font-size:.78rem}
.page-estimate .estimate-hero--compact + .estimate-section,
.page-contact .estimate-hero--compact + .estimate-section{padding-top:clamp(10px,2vw,22px)}

/* Reasons */
.page-estimate .estimate-reasons__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
@media (min-width:720px){
  .page-estimate .estimate-reasons__grid{grid-template-columns:repeat(3,1fr)}
}
.page-estimate .estimate-reason{
  position:relative;
  padding:1.25rem 1.1rem 1.35rem;
  background:#fff;
  border:1px solid #e6ece9;
  border-radius:18px;
  box-shadow:0 2px 12px rgba(23,75,63,.04);
  text-align:left;
}
.page-estimate .estimate-reason__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border-radius:14px;
  background:linear-gradient(135deg,#e6f7f3 0%,#d5efe7 100%);
  color:var(--brand-2);
  margin-bottom:.6rem;
}
.page-estimate .estimate-reason__icon .material-icons-round{font-size:1.45rem}
.page-estimate .estimate-reason__title{
  margin:0 0 .3rem;
  font-size:1.02rem;
  font-weight:800;
  color:var(--brand-2);
  line-height:1.35;
}
.page-estimate .estimate-reason__text{margin:0;font-size:.88rem;line-height:1.6}

/* Flow */
.page-estimate .estimate-flow__head{text-align:center;margin-bottom:1.1rem}
.page-estimate .estimate-flow__heading{
  margin:0;
  font-family:"Noto Sans JP",system-ui,sans-serif;
  font-size:clamp(1.15rem,2.4vw,1.45rem);
  font-weight:800;
  color:var(--ink);
}
.page-estimate .estimate-flow__sub{margin:.4rem auto 0;font-size:.9rem;max-width:40ch}
.page-estimate .estimate-flow__list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
@media (min-width:720px){
  .page-estimate .estimate-flow__list{grid-template-columns:repeat(4,1fr);gap:14px}
}
.page-estimate .estimate-flow__step{
  position:relative;
  padding:1.1rem 1rem 1.2rem;
  background:#fff;
  border:1px solid #e6ece9;
  border-radius:16px;
  box-shadow:0 2px 10px rgba(23,75,63,.04);
}
.page-estimate .estimate-flow__step::before{
  content:"";
  position:absolute;
  inset:-1px -1px auto -1px;
  height:4px;
  border-radius:16px 16px 0 0;
  background:linear-gradient(90deg,var(--brand),#7fdcdc);
  opacity:.85;
}
.page-estimate .estimate-flow__num{
  position:absolute;
  top:-12px;
  left:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:999px;
  background:var(--brand-2);
  color:#fff;
  font-weight:800;
  font-size:.88rem;
  box-shadow:0 4px 12px rgba(23,75,63,.15);
}
.page-estimate .estimate-flow__ico{
  font-size:1.85rem;
  color:var(--brand);
  margin:.25rem 0 .4rem;
  display:block;
}
.page-estimate .estimate-flow__title{
  margin:0 0 .25rem;
  font-size:.98rem;
  font-weight:800;
  color:var(--brand-2);
  line-height:1.35;
}
.page-estimate .estimate-flow__text{margin:0;font-size:.84rem;line-height:1.55}

/* Form card */
.page-estimate .estimate-section,
.page-contact .estimate-section{scroll-margin-top:80px}
.page-estimate .estimate-card,
.page-contact .estimate-card{
  position:relative;
  max-width:min(44rem,100%);
  margin-inline:auto;
  padding:clamp(22px,3.5vw,34px) clamp(18px,3vw,30px);
  background:#fff;
  border-radius:22px;
  border:1px solid #e3e9e7;
  border-top:4px solid var(--brand);
  box-shadow:0 16px 42px rgba(23,75,63,.08),0 2px 10px rgba(23,75,63,.04);
}
.page-estimate .estimate-card__head{
  text-align:left;
  margin-bottom:1rem;
  padding-bottom:0;
  border-bottom:0;
}
.page-estimate .estimate-card__heading{
  margin:0 0 .35rem;
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  font-family:"Noto Sans JP",system-ui,sans-serif;
  font-size:clamp(1.15rem,2.4vw,1.4rem);
  font-weight:800;
  color:var(--brand-2);
}
.page-estimate .estimate-card__sub{margin:0;font-size:.88rem;line-height:1.55}
.page-estimate .estimate-card__sub strong{color:#cc0000;font-weight:700}
/* ご連絡方法 2-up（お電話 / フォーム） */
.page-estimate .estimate-methods{margin:.4rem 0 1.4rem}
.page-estimate .estimate-methods__lead{
  margin:0 0 .7rem;
  text-align:center;
  color:#475569;
  font-size:.92rem;
  line-height:1.7;
}
.page-estimate .estimate-methods__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
.page-estimate .estimate-method{
  display:grid;
  grid-template-columns:auto 1fr auto;
  grid-template-areas:
    "ico label  action"
    "ico desc   action"
    "ico meta   action";
  align-items:center;
  column-gap:.95rem;
  row-gap:.1rem;
  padding:.95rem 1rem;
  border:1px solid #e3e9e7;
  border-radius:14px;
  background:#fafcfb;
  text-decoration:none;
  color:inherit;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
.page-estimate .estimate-method__ico{
  grid-area:ico;
  width:44px;height:44px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;
  background:#fff;
  color:var(--brand);
  border:1px solid #d8eeee;
  font-size:1.45rem;
}
.page-estimate .estimate-method__label{
  grid-area:label;
  align-self:end;
  font-weight:800;
  font-size:1rem;
  color:var(--brand-2);
  letter-spacing:.02em;
}
.page-estimate .estimate-method__desc{
  grid-area:desc;
  align-self:center;
  font-size:.82rem;
  color:#64748b;
}
.page-estimate .estimate-method__meta{
  grid-area:meta;
  align-self:start;
  font-size:.78rem;
  color:#64748b;
  line-height:1.55;
}
.page-estimate .estimate-method__action{
  grid-area:action;
  display:inline-flex;align-items:center;gap:.3rem;
  font-weight:800;
  font-size:1.18rem;
  color:var(--brand-2);
  letter-spacing:.02em;
  white-space:nowrap;
}
.page-estimate .estimate-method__action-ico{font-size:1.1rem;color:var(--brand)}
.page-estimate a.estimate-method--tel:hover{
  border-color:#bfe2e2;
  background:#f3fbfb;
  box-shadow:0 6px 18px rgba(0,196,196,.10);
  transform:translateY(-1px);
}
.page-estimate a.estimate-method--tel:hover .estimate-method__action{color:var(--brand)}
.page-estimate .estimate-method--form .estimate-method__action{color:#334155;font-size:1rem}
.page-estimate .estimate-method--form{cursor:default}
@media (max-width:560px){
  .page-estimate .estimate-method{
    grid-template-columns:auto 1fr;
    grid-template-areas:
      "ico label"
      "ico desc"
      "action action"
      "meta meta";
    row-gap:.2rem;
  }
  .page-estimate .estimate-method__action{
    justify-content:center;
    margin-top:.35rem;
    padding-top:.5rem;
    border-top:1px dashed #e3e9e7;
  }
  .page-estimate .estimate-method__meta{text-align:center}
}
.page-estimate .estimate-form{display:grid;gap:14px}
.page-estimate .estimate-form .field label{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-weight:700;
  font-size:.92rem;
}
.page-estimate .estimate-form .field .req,
.page-contact .estimate-form .field .req,
.page-estimate .req--inline,
.page-contact .req--inline{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.12em .5em;
  border-radius:4px;
  background:#ffeaea;
  color:#cc0000;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.06em;
  line-height:1;
  vertical-align:1px;
}
.page-estimate .estimate-card__sub .req--inline,
.page-contact .estimate-card__sub .req--inline{margin-right:.35em}
.page-estimate .estimate-form .field input,
.page-estimate .estimate-form .field select,
.page-estimate .estimate-form .field textarea{
  padding:.85rem .9rem;
  border-radius:12px;
  border:1px solid #dbe1de;
  background:#fafcfb;
}
.page-estimate .estimate-form .field input:focus,
.page-estimate .estimate-form .field select:focus,
.page-estimate .estimate-form .field textarea:focus{
  background:#fff;
}
.page-estimate .field-hint{
  display:block;
  margin-top:4px;
  font-size:.78rem;
  line-height:1.5;
}
.page-estimate .estimate-submit{
  justify-self:center;
  margin-top:.25rem;
  padding:1rem 2rem;
  font-size:1.05rem;
  min-width:min(20rem,100%);
  box-shadow:0 10px 24px rgba(0,196,196,.25);
}
.page-estimate .estimate-submit .btn__icon{font-size:1.15rem}
.page-estimate .estimate-card__alt{
  margin:1rem 0 0;
  padding-top:.9rem;
  border-top:1px dashed #dbe6e1;
  text-align:center;
  font-size:.88rem;
  color:#475569;
}

/* 送信完了（contact-thanks）— 単一パネル */
.page-contact-thanks .thanks-section{
  padding-top:clamp(8px,1.6vw,18px);
  padding-bottom:clamp(36px,5vw,64px);
}
.page-contact-thanks .thanks-panel{
  max-width:min(40rem,100%);
  margin-inline:auto;
  padding:clamp(28px,4vw,40px) clamp(20px,3.5vw,32px);
  background:#fff;
  border-radius:22px;
  border:1px solid #e3e9e7;
  border-top:4px solid var(--brand);
  box-shadow:0 16px 42px rgba(23,75,63,.08),0 2px 10px rgba(23,75,63,.04);
  text-align:center;
}
.page-contact-thanks .thanks-panel .tag{margin-bottom:.45rem}
.page-contact-thanks .thanks-panel__title{
  margin:.1rem 0 .55rem;
  font-family:"Noto Sans JP",system-ui,sans-serif;
  font-size:clamp(1.5rem,3.2vw,2rem);
  font-weight:800;
  line-height:1.3;
  color:var(--brand-2);
}
.page-contact-thanks .thanks-panel__lead{
  margin:0 0 .85rem;
  font-size:.95rem;
  line-height:1.7;
  color:#475569;
}
.page-contact-thanks .thanks-panel__body{
  margin:0;
  font-size:.92rem;
  line-height:1.85;
  color:var(--ink);
}
.page-contact-thanks .thanks-card__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px 12px;
  justify-content:center;
  margin-top:1.25rem;
}
.page-contact-thanks .thanks-card__actions .btn{
  padding:.9rem 1.35rem;
  font-size:.95rem;
}
.page-contact-thanks .thanks-card__actions .btn--primary{
  min-width:min(14rem,100%);
}
.page-contact-thanks .thanks-card__actions .btn--ghost{
  background:#fff;
  border-color:#b8dcc8;
  color:var(--brand-2);
  box-shadow:0 4px 14px rgba(23,75,63,.06);
}
.page-contact-thanks .thanks-card__actions .btn--ghost:hover{
  border-color:var(--brand);
  color:var(--brand);
  background:#eef6f2;
}
.page-contact-thanks .thanks-card__subnav{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem 1.25rem;
  justify-content:center;
  margin-top:.75rem;
}
.page-contact-thanks .thanks-card__subnav a{
  font-size:.84rem;
  font-weight:700;
  color:var(--brand-2);
  text-decoration:underline;
  text-underline-offset:.15em;
}
.page-contact-thanks .thanks-card__subnav a:hover{color:var(--brand)}
.page-contact-thanks .thanks-panel__phone{
  margin:1.15rem 0 0;
  padding-top:.85rem;
  border-top:1px solid #e8eeeb;
  font-size:.88rem;
  color:#475569;
}
.page-contact-thanks .thanks-panel__tel{
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  margin:0 .3rem;
  font-weight:800;
  color:var(--brand-2);
  text-decoration:none;
  font-size:1.08rem;
  letter-spacing:.02em;
}
.page-contact-thanks .thanks-panel__tel .material-icons-round{font-size:1.05rem;color:var(--brand)}
.page-contact-thanks .thanks-panel__tel:hover{color:var(--brand)}
.page-estimate .estimate-card__tel{
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  margin:0 .3rem;
  font-weight:800;
  color:var(--brand-2);
  text-decoration:none;
  font-size:1.08rem;
  letter-spacing:.02em;
}
.page-estimate .estimate-card__tel .material-icons-round{font-size:1.05rem;color:var(--brand)}
.page-estimate .estimate-card__tel:hover{color:var(--brand)}

/* FAQ */
.page-estimate .estimate-faq__inner{max-width:min(44rem,100%);margin-inline:auto}
.page-estimate .estimate-faq__heading{
  margin:0 0 1rem;
  text-align:center;
  font-family:"Noto Sans JP",system-ui,sans-serif;
  font-size:clamp(1.1rem,2.2vw,1.3rem);
  font-weight:800;
  color:var(--ink);
}
.page-estimate .estimate-faq__item{
  padding:.2rem 0;
  border-bottom:1px solid #e6ece9;
}
.page-estimate .estimate-faq__item summary{
  position:relative;
  list-style:none;
  padding:.9rem 2rem .9rem 2rem;
  font-size:.95rem;
  font-weight:700;
  color:var(--brand-2);
  cursor:pointer;
}
.page-estimate .estimate-faq__item summary::-webkit-details-marker{display:none}
.page-estimate .estimate-faq__item summary::before{
  content:"Q";
  position:absolute;
  left:.2rem;top:.85rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.4rem;height:1.4rem;
  border-radius:999px;
  background:var(--brand);
  color:#fff;
  font-family:"Noto Sans JP",system-ui,sans-serif;
  font-size:.78rem;
  font-weight:800;
}
.page-estimate .estimate-faq__item summary::after{
  content:"add";
  font-family:"Material Icons Round";
  position:absolute;
  right:.1rem;top:.85rem;
  font-size:1.3rem;
  color:var(--brand-2);
  transition:transform .2s ease;
}
.page-estimate .estimate-faq__item[open] summary::after{content:"remove"}
.page-estimate .estimate-faq__item p{
  margin:0 0 .85rem 2rem;
  font-size:.88rem;
  line-height:1.65;
}
.page-estimate .estimate-faq__item p strong{color:var(--brand-2);font-weight:700}

footer{padding:28px 0;border-top:1px solid #e5e7eb;color:#475569}

/* Lightbox */
.lb-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:none;align-items:center;justify-content:center;z-index:9999}
.lb-overlay.show{display:flex}
.lb-stage{position:relative;max-width:92vw;max-height:92vh;display:grid;place-items:center}
.lb-img{max-width:92vw;max-height:82vh;border-radius:0;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb-controls{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.lb-btn{pointer-events:auto;user-select:none;display:grid;place-items:center;width:44px;height:44px;border-radius:999px;background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(6px);cursor:pointer}
.lb-btn:focus{outline:2px solid #a7f3d0}
.lb-prev{position:absolute;left:-56px}
.lb-next{position:absolute;right:-56px}
.lb-close{position:absolute;top:-56px;right:0}
@media (max-width:640px){
  .lb-prev{left:8px}.lb-next{right:8px}.lb-close{top:8px;right:8px}
}

/* フォームアラート */
#formAlert{margin-top:14px;padding:16px 18px;border-radius:12px;font-weight:700;font-size:1.05rem}
.form-alert{padding:14px 16px;border-radius:12px;font-size:.92rem;line-height:1.75;margin-top:.75rem}
.form-alert:first-child,.form-alert.mt-0{margin-top:0}
.form-alert--info{background:#f1f5f9;color:#0f172a;border:1px solid #e2e8f0}
.form-alert--success{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}
.form-alert--error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}

.kpis{
  display:flex;
  gap:24px;
  flex-wrap:wrap;
  margin:12px 0 0;
}
.kpi{
  flex:1 1 140px;
  background:#fff;
  border-radius:14px;
  padding:18px 16px;
  text-align:center;
  box-shadow:0 10px 30px rgba(0,0,0,.08);
  border:1px solid rgba(0,0,0,.04);
}
.kpi strong{
  display:block;
  font-size:1.6rem;
  line-height:1.2;
  margin-bottom:4px;
}
.kpi .muted{
  color:#6b7280;
  font-size:.95rem;
}

@media (max-width:768px){
  .kpis{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
  }
  .kpi{flex:initial;width:auto;padding:16px 14px}
  .kpi strong{font-size:1.4rem}
}

.plans{ display:grid; grid-template-columns:repeat(12, 1fr); gap:clamp(14px,2.6vw,28px); }
.plan{ grid-column:span 4; background:#fff; border-radius:0; overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column; }
.plan img{ aspect-ratio:4/3; object-fit:cover; }
.plan .content{ padding:16px 16px 18px; }
.plan h3{ margin:0 0 6px; }
.price{ font-weight:800; }
@media (max-width:980px){ .plan{ grid-column:span 6; } }
@media (max-width:640px){ .plan{ grid-column:span 12; } }

.voices{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(14px,2.6vw,28px); }
.voice{ grid-column:span 6; background:#fff; border-radius:16px; padding:16px; box-shadow:var(--shadow); }
@media (max-width:800px){ .voice{ grid-column:span 12; } }

.banner{
  position:relative; overflow:hidden; border-radius:18px;
  background:linear-gradient(135deg, var(--brand-2), var(--brand));
  color:#fff; padding:22px 18px; box-shadow:var(--shadow);
}

.scroll-fade-in{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .6s ease-out, transform .6s ease-out;
}
.scroll-fade-in.is-visible{
  opacity:1;
  transform:translateY(0);
}
.scroll-fade-in .service-card,
.scroll-fade-in .work,
.scroll-fade-in .kpi,
.scroll-fade-in .step{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .5s ease-out, transform .5s ease-out;
}
.scroll-fade-in.is-visible .service-card,
.scroll-fade-in.is-visible .work,
.scroll-fade-in.is-visible .kpi,
.scroll-fade-in.is-visible .step{
  opacity:1;
  transform:translateY(0);
}
.scroll-fade-in .service-card:nth-child(1){ transition-delay:.05s }
.scroll-fade-in .service-card:nth-child(2){ transition-delay:.1s }
.scroll-fade-in .service-card:nth-child(3){ transition-delay:.15s }
.scroll-fade-in .service-card:nth-child(4){ transition-delay:.2s }
.scroll-fade-in .service-card:nth-child(5){ transition-delay:.25s }
.scroll-fade-in .service-card:nth-child(6){ transition-delay:.3s }
.scroll-fade-in .work:nth-child(1){ transition-delay:.05s }
.scroll-fade-in .work:nth-child(2){ transition-delay:.1s }
.scroll-fade-in .work:nth-child(3){ transition-delay:.15s }
.scroll-fade-in .kpi:nth-child(1){ transition-delay:.05s }
.scroll-fade-in .kpi:nth-child(2){ transition-delay:.1s }
.scroll-fade-in .kpi:nth-child(3){ transition-delay:.15s }
.scroll-fade-in .kpi:nth-child(4){ transition-delay:.2s }
.scroll-fade-in .step:nth-child(1){ transition-delay:.05s }
.scroll-fade-in .step:nth-child(2){ transition-delay:.1s }
.scroll-fade-in .step:nth-child(3){ transition-delay:.15s }
.scroll-fade-in .step:nth-child(4){ transition-delay:.2s }
.scroll-fade-in .step:nth-child(5){ transition-delay:.25s }
.scroll-fade-in .step:nth-child(6){ transition-delay:.3s }

@media (prefers-reduced-motion: reduce){
  .scroll-fade-in,.scroll-fade-in .service-card,.scroll-fade-in .work,.scroll-fade-in .kpi,.scroll-fade-in .step{
    opacity:1; transform:none; transition:none;
  }
}
@media (scripting:none){
  .scroll-fade-in,.scroll-fade-in .service-card,.scroll-fade-in .work,.scroll-fade-in .kpi,.scroll-fade-in .step{
    opacity:1; transform:none; transition:none;
  }
}

/* ----- トップ LP ----- */
.mobile-bottom-nav{display:none}
@media (max-width:768px){
  .mobile-bottom-nav{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:60;
    background:rgba(255,255,255,.96);
    -webkit-backdrop-filter:saturate(1.2) blur(10px);
    backdrop-filter:saturate(1.2) blur(10px);
    border-top:1px solid #e5e7eb;
    box-shadow:0 -6px 20px rgba(0,0,0,.06);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom));
  }
  .mobile-bottom-nav a{
    display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
    gap:2px;padding:6px 2px;
    font-size:.68rem;font-weight:600;line-height:1.2;
    color:var(--ink);text-decoration:none;text-align:center;
    border-radius:10px;
  }
  .mobile-bottom-nav a:active{background:#f1f5f4}
  .mobile-bottom-nav a .material-icons-round{
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
    width:1.5rem;
    height:1.5rem;
    font-size:1.35rem;
    line-height:1;
    color:var(--brand);
  }
  /* ラベルが2行になりやすい（電話導線）ため、本文末尾が隠れないよう少し多めに確保 */
  body{padding-bottom:calc(74px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:380px){
  .mobile-bottom-nav a{font-size:.58rem;padding:5px 1px}
}
.cat-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}
.cat-list>li>a{font-weight:700;display:inline-flex;align-items:center;gap:.4rem;padding:.4rem 0}
.cat-list>li>a::before{content:"›";color:var(--brand)}
.cat-list .sub-list{list-style:none;padding:0 0 0 1.2rem;margin:0;display:flex;flex-direction:column;gap:2px}
.cat-list .sub-list li a{font-size:.88rem;color:var(--muted)}
.news-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}
.news-list li{display:flex;gap:.8rem;padding:.5rem 0;border-bottom:1px solid #f1f5f9;font-size:.9rem;align-items:baseline}
.news-list time{color:var(--muted);white-space:nowrap;font-size:.82rem}
.news-list a{color:var(--ink)}
.news-list a:hover{color:var(--brand)}
.news-list li>span{color:var(--ink)}
.yt-wrap{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:var(--radius)}
.yt-wrap iframe{position:absolute;top:0;left:0;width:100%;height:100%}
.pickup-nav{display:flex;flex-direction:column;gap:6px}
.pickup-nav-item{display:flex;align-items:center;gap:.65rem;padding:.55rem .7rem;border-radius:10px;text-decoration:none;color:var(--ink);border:1px solid #ececec;background:#fff;transition:background .15s,border-color .15s,box-shadow .15s}
.pickup-nav-item:hover{background:#e8efe9;border-color:var(--brand);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.pickup-img-box{flex-shrink:0;width:88px;height:34px;display:flex;align-items:center;justify-content:center;background:#f5f5f4;border-radius:0;overflow:hidden}
.pickup-img-box img{max-width:100%;max-height:100%;width:auto;height:auto;display:block;object-fit:contain}
.pickup-nav-label{flex:1;font-size:.82rem;font-weight:600;line-height:1.3;color:var(--ink)}
.pickup-nav-arrow{flex-shrink:0;font-size:.8rem;color:var(--muted)}
.pickup-nav-item:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.news-pickup-grid{display:grid;grid-template-columns:3fr 2fr;gap:clamp(20px,4vw,48px);align-items:start}
@media (max-width:768px){
  .news-pickup-grid{grid-template-columns:1fr;gap:clamp(18px,3vw,32px)}
}
#company .container.grid.grid-2col{align-items:stretch}
#company .company-map-aside{display:flex;flex-direction:column;min-width:0;padding:12px;min-height:360px}
#company .company-map-aside iframe{flex:1 1 auto;width:100%;min-height:340px;border:0;border-radius:10px}
@media (min-width:769px){
  #company .company-map-aside{min-height:420px}
  #company .company-map-aside iframe{min-height:400px}
}
.top-banners{margin-top:12px}
.top-banners-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.top-banner{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;border-radius:14px;background:#fff;
  border:1px solid #e5e7eb;box-shadow:0 10px 30px rgba(0,0,0,.08);
  text-decoration:none;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.top-banner:hover{
  transform:translateY(-2px);
  border-color:color-mix(in srgb,var(--brand) 60%,#e5e7eb);
  box-shadow:0 14px 38px rgba(0,0,0,.10);
}
.top-banner .mark{
  width:44px;height:44px;flex:0 0 auto;border-radius:14px;
  background:conic-gradient(from 30deg,#aaeeee,var(--brand),#aaeeee);
  display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.08);
}
.top-banner .mark svg{width:22px;height:22px;color:#1b2b25}
.top-banner .mark--photo{
  width:96px;height:64px;border-radius:0;background:#fff;overflow:hidden;padding:0;
  box-shadow:0 10px 30px rgba(0,0,0,.08);
}
.top-banner .mark--photo img{width:100%;height:100%;object-fit:cover;object-position:right center;display:block}
.top-banner .mark--pair{
  width:auto;height:56px;display:inline-flex;gap:4px;background:transparent;padding:0;
  box-shadow:none;border-radius:0;
}
.top-banner .mark--pair img{
  width:44px;height:56px;object-fit:cover;border-radius:0;background:#fff;
  box-shadow:0 6px 18px rgba(0,0,0,.10);display:block;
}
.top-banner .txt{min-width:0}
.top-banner .txt strong{display:block;font-size:.98rem;letter-spacing:.02em}
.top-banner .txt span{display:block;font-size:.82rem;color:var(--muted);margin-top:2px}
.top-banner .arrow{margin-left:auto;color:var(--muted);font-weight:800}
@media (max-width:700px){.top-banners-grid{grid-template-columns:1fr}}
.tel-link{font-size:1.4rem;font-weight:800;color:#fff;letter-spacing:.04em}
.tel-link:hover{opacity:.85}

.hero--split{position:relative;min-height:clamp(520px,68vh,700px);overflow:hidden;background:#fff}
.hero--split::before,.hero--split::after{display:none}
.hero--split .hero-media{
  position:absolute;inset:0;
  background:url('../img/hero/top_image.jpg') 62% 34%/cover no-repeat;
  filter:saturate(1.06) brightness(1.03);
}
.hero--split .hero-media::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(50% 38% at 25% calc(52%),rgba(0,0,0,.64) 0%,rgba(0,0,0,.32) 40%,rgba(0,0,0,0) 78%);
}
.hero--split .hero-inner{
  position:absolute;inset:0;z-index:2;display:flex;align-items:flex-end;
  padding:0;color:inherit;pointer-events:none;
}
.hero--split .hero-inner--simple{
  max-width:560px;margin:0;text-align:left;
  padding:0 20px clamp(18px,3.6vw,44px);pointer-events:auto;
}
.hero--split .hero-inner--simple .title{
  font-size:clamp(1.9rem,3.5vw,2.7rem);line-height:1.36;letter-spacing:.01em;
  margin:0 0 18px;font-weight:900;color:#fff;text-wrap:balance;
  text-shadow:
    -1px 0 1px rgba(0,0,0,.32),1px 0 1px rgba(0,0,0,.32),
    0 -1px 1px rgba(0,0,0,.32),0 1px 1px rgba(0,0,0,.32),
    -1px -1px 1px rgba(0,0,0,.26),1px -1px 1px rgba(0,0,0,.26),
    -1px 1px 1px rgba(0,0,0,.26),1px 1px 1px rgba(0,0,0,.26),
    0 0 22px rgba(0,0,0,.16);
}
.hero--split .hero-inner--simple .lead{
  margin:0 0 6px;max-width:52ch;
  font-size:clamp(.92rem,1.85vw,1.05rem);line-height:1.55;font-weight:600;
  color:#fff;letter-spacing:.02em;text-wrap:balance;
  text-shadow:
    -1px 0 1px rgba(0,0,0,.28),1px 0 1px rgba(0,0,0,.28),
    0 -1px 1px rgba(0,0,0,.28),0 1px 1px rgba(0,0,0,.28),
    -1px -1px 1px rgba(0,0,0,.22),1px -1px 1px rgba(0,0,0,.22),
    -1px 1px 1px rgba(0,0,0,.22),1px 1px 1px rgba(0,0,0,.22),
    0 0 14px rgba(0,0,0,.14);
}
.hero--split .hero-inner--simple .hero-eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;margin:0 0 12px;
  padding:.32rem .8rem;border-radius:999px;background:rgba(255,255,255,.78);
  border:1px solid color-mix(in srgb,var(--brand) 35%,#d1d5db);color:var(--brand-2);
  font-weight:800;font-size:.82rem;letter-spacing:.08em;
  -webkit-backdrop-filter:saturate(1.1) blur(4px);backdrop-filter:saturate(1.1) blur(4px);
}
.hero--split .hero-inner--simple .hero-cta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:flex-start}
@media (max-width:780px){
  .hero--split{min-height:0}
  .hero--split .hero-media{
    position:relative;inset:auto;aspect-ratio:16/10;min-height:320px;
    background-position:58% 36%;
  }
  .hero--split .hero-media::after{
    background:radial-gradient(88% 58% at 30% calc(60%),rgba(0,0,0,.26) 0%,rgba(0,0,0,.11) 46%,rgba(0,0,0,0) 80%);
  }
  .hero--split .hero-inner{position:absolute;inset:0;display:flex;align-items:flex-end;pointer-events:none}
  .hero--split .hero-inner--simple{
    max-width:none;width:100%;padding:14px 16px 18px;
    background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;
    pointer-events:auto;transform:translateY(-14px);
  }
  .hero--split .hero-inner--simple .title{
    font-size:clamp(1.55rem,6.6vw,2.05rem);line-height:1.32;letter-spacing:0;
    line-break:strict;word-break:keep-all;
  }
  .hero--split .hero-inner--simple .title .only-desktop{display:none}
  .hero--split .hero-inner--simple .lead{max-width:none;font-size:clamp(.86rem,3.5vw,.98rem);line-height:1.5;margin:0 0 4px}
  .hero--split .hero-inner--simple .hero-eyebrow{font-size:.78rem;padding:.3rem .75rem}
  .hero--split .hero-inner--simple .hero-cta{gap:10px}
}
.section--banners{padding-top:0;margin-top:-84px;position:relative;z-index:6}
.section--banners .top-banners{margin-top:0}
.section--trouble-banner{padding-top:clamp(12px,2vw,24px);padding-bottom:clamp(10px,1.8vw,20px)}
@media (max-width:780px){
  .section--banners{margin-top:0}
  .section--trouble-banner{padding-top:clamp(4px,1.2vw,10px);padding-bottom:clamp(6px,1.6vw,14px)}
}
@media (min-width:781px){
  .hero--split .hero-inner{padding-bottom:clamp(72px,7vw,104px)}
  .hero--split .hero-inner--simple{transform:translateY(-42px);max-width:640px}
}

.trouble-cta{
  display:flex;align-items:center;gap:.75rem;padding:.85rem 1.25rem;border-radius:12px;
  background:linear-gradient(135deg,#ff8c00,#ffb347);color:#fff;font-weight:800;font-size:1.05rem;
  text-decoration:none;box-shadow:0 4px 14px rgba(255,140,0,.35);
  transition:filter .18s ease,transform .18s ease;
}
.trouble-cta:hover{filter:brightness(1.08);transform:translateY(-2px)}
.trouble-cta__ico{font-size:1.5rem;flex-shrink:0}
.trouble-cta__kicker{display:block;font-size:.75rem;font-weight:600;opacity:.88;letter-spacing:.05em}
.trouble-cta__arrow{margin-left:auto;font-size:1.1rem;opacity:.9}
.work-thumbs{display:flex;gap:8px;flex-wrap:wrap}
.work-thumbs a.gallery img{width:96px;height:72px;object-fit:cover;border-radius:0}
.btn--sm{font-size:.9rem}
.grid--stack{grid-template-columns:1fr;gap:14px}
.grid--2{grid-template-columns:1fr 1fr;gap:14px}
.grid--zip{grid-template-columns:1fr 2fr;gap:14px}
.grid--areas{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}

/* WebToLead フォーム（見積/問い合わせ）：モバイルでは確実に1カラム */
@media (max-width: 768px){
  .page-estimate .estimate-form .grid--2,
  .page-contact .estimate-form .grid--2,
  .page-estimate .estimate-form .grid--zip,
  .page-contact .estimate-form .grid--zip{
    grid-template-columns: 1fr;
  }
  .page-estimate .estimate-card,
  .page-contact .estimate-card{
    overflow-x: hidden;
  }
}

/* モバイルでの可読性（フォーム中心） */
@media (max-width: 520px){
  .page-estimate .estimate-card__sub,
  .page-contact .estimate-card__sub{
    font-size:.92rem;
    line-height:1.75;
  }

  .page-estimate .estimate-form,
  .page-contact .estimate-form{
    gap:12px;
  }

  .page-estimate .estimate-form .field label,
  .page-contact .estimate-form .field label{
    font-size:.96rem;
    line-height:1.4;
  }

  .page-estimate .estimate-form .field input,
  .page-estimate .estimate-form .field select,
  .page-estimate .estimate-form .field textarea,
  .page-contact .estimate-form .field input,
  .page-contact .estimate-form .field select,
  .page-contact .estimate-form .field textarea{
    font-size:16px; /* iOSの自動ズーム回避 */
    line-height:1.5;
    padding:1rem .95rem;
  }

  .page-estimate .estimate-form textarea,
  .page-contact .estimate-form textarea{
    min-height:10.5em;
  }

  .page-estimate .consent-row,
  .page-contact .consent-row{
    line-height:1.65;
    font-size:.95rem;
  }

  .page-estimate .estimate-submit,
  .page-contact .estimate-submit{
    justify-self:stretch;
    width:100%;
    min-width:0;
    padding:1.05rem 1.2rem;
    font-size:1.05rem;
  }
}
.surface--pad{padding:18px}
.link-brand{color:var(--brand)}
.link-brand-strong{color:var(--brand);font-weight:700}
.company-table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden}
.company-table td{padding:12px 14px}
.company-table tr:first-child td:first-child{width:28%}
.company-table tr:nth-child(even){background:#fafafa}
@media (max-width:700px){
  .page-top2 .grid--2{grid-template-columns:1fr}

  .company-table{
    border:1px solid var(--line);
    border-radius:14px;
  }
  .company-table tr{display:block;border-top:1px solid #eef2ef}
  .company-table tr:first-child{border-top:0}
  .company-table td{display:block;width:100%;padding:.55rem .9rem}
  .company-table td:first-child{
    width:auto;
    background:#f4f8f6;
    color:var(--brand-2);
    font-weight:700;
  }
  .company-table td:nth-child(2){
    padding-top:.45rem;
    word-break:break-word;
    overflow-wrap:anywhere;
  }
}
.area-map-tint{background-color:#eeffff}
.img-center{display:block;margin:auto}
.img-bnr{border-radius:0}
.poster-link{display:block;text-decoration:none;border-radius:0;overflow:hidden}
.poster-link:hover{opacity:.94}
.yt-embed{width:100%;height:auto;aspect-ratio:16/10;border:0}
/* 共通フッター（NAP・サイトマップ・CTA・JSON-LDは footer-main.html） */
.site-footer{
  margin-top:clamp(20px,4vw,40px);
  padding:clamp(1.35rem,3vw,2.1rem) 0 calc(1rem + env(safe-area-inset-bottom,0px));
  background:linear-gradient(180deg,#eef1ec 0%,#e6eae4 100%);
  border-top:1px solid #d9e0d8;
  color:var(--ink);
}
.site-footer__inner{max-width:min(1100px,92vw);margin-inline:auto}
.site-footer__top{
  display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;
  gap:clamp(1rem,3vw,1.75rem);
  padding-bottom:clamp(1rem,2.5vw,1.35rem);
  border-bottom:1px solid #cfd8d2;
}
.site-footer__name{
  margin:0 0 .35rem;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(1.05rem,2vw,1.2rem);
  font-weight:700;
  color:var(--brand-2);
}
.site-footer__tagline{
  margin:0 0 .65rem;
  font-size:.86rem;
  line-height:1.55;
  color:#3d4a44;
  max-width:46ch;
}
.site-footer__address{
  margin:0;
  font-size:.84rem;
  line-height:1.65;
  font-style:normal;
  color:#374151;
}
.site-footer__address a{color:var(--brand-2);font-weight:600;text-decoration:underline;text-underline-offset:.12em}
.site-footer__address a:hover{color:var(--brand)}
.site-footer__cta{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  flex-shrink:0;
}
.site-footer__cta-btn{min-height:44px;padding:.75rem 1.15rem;font-size:.9rem}
.site-footer__cta-ico{font-size:1.15rem!important;margin:0!important}
.site-footer__grid{
  display:block;
  padding:clamp(.5rem,1.5vw,.85rem) 0;
  border-bottom:1px solid #dfe5e1;
}
.site-footer__group{
  border-bottom:1px solid #e8ece9;
}
.site-footer__group:last-child{border-bottom:none}
.site-footer__summary{
  cursor:pointer;
  list-style:none;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#8b9a94;
  padding:.75rem 0;
  min-height:44px;
  display:flex;
  align-items:center;
}
.site-footer__summary::-webkit-details-marker{display:none}
.site-footer__summary::marker{content:""}
.site-footer__links{
  list-style:none;margin:0;padding:0 0 .85rem;
  display:flex;flex-direction:column;gap:0;
}
.site-footer__links li{margin:0}
.site-footer__links a{
  display:block;
  padding:.4rem 0;
  min-height:44px;
  line-height:1.45;
  font-size:.8rem;
  font-weight:400;
  color:#7a8790;
  text-decoration:none;
  border-radius:6px;
}
.site-footer__links a:hover{color:var(--brand-2);text-decoration:underline;text-underline-offset:.12em}
@media (min-width:769px){
  .site-footer__grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:.75rem 1.25rem;
    padding:.85rem 0;
    border-bottom:1px solid #dfe5e1;
  }
  .site-footer__group{border:none}
  .site-footer__summary{
    cursor:default;
    pointer-events:none;
    padding:.25rem 0 .4rem;
    min-height:0;
    border-bottom:none;
  }
  .site-footer__links{padding:0 0 .35rem}
  .site-footer__links a{min-height:0;padding:.28rem 0;font-size:.78rem}
}
.site-footer__bottom{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:.75rem 1.25rem;
  padding-top:clamp(.85rem,2vw,1.1rem);
  font-size:.8rem;
  color:var(--muted);
}
.site-footer__copy{margin:0}
.site-footer__legal a{
  color:var(--brand-2);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:.12em;
  min-height:44px;
  display:inline-flex;
  align-items:center;
}
.site-footer__legal a:hover{color:var(--brand)}

/* Footer: SNS（アイコンリンク） */
.site-footer__social{
  width:20px;height:20px;
  display:inline-block;
  flex:0 0 auto;
}
.site-footer__legal a.site-footer__social-link{
  text-decoration:none;
  gap:.35rem;
}
.site-footer__legal a.site-footer__social-link:hover .site-footer__social{
  transform:translateY(-1px);
}
.site-footer__legal a.site-footer__social-link .site-footer__social{
  transition:transform .18s ease;
}
.site-footer__legal a.site-footer__social-link .site-footer__social{
  color:currentColor;
}
.site-footer__legal a.site-footer__social-link .sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;border:0;
}
#sfdc-form-error{display:none;color:#c00;margin:.5rem 0;font-size:.9rem}
#sfdc-form-error.is-visible{display:block}

/* パンくず（サブページ・LP） */
.page-crumb{padding:10px 0 0}
@media (min-width:781px){.page-crumb{padding-top:14px}}
.breadcrumb{font-size:.86rem;color:var(--muted)}
.breadcrumb ol{
  display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;
  list-style:none;margin:0;padding:0;
}
.breadcrumb li{display:inline-flex;align-items:center;gap:.5rem}
.breadcrumb li:not(:last-child)::after{
  content:"/";color:#cbd5e1;font-weight:500;margin-left:.5rem;
}
.breadcrumb a{color:var(--brand);font-weight:600;text-decoration:underline;text-underline-offset:.15em}
.breadcrumb a:hover{color:var(--brand-2)}
.breadcrumb [aria-current="page"]{color:var(--ink);font-weight:600}

/* ヒーロー上のセカンダリボタン（暗い背景用） */
.hero--split .btn--ghost{
  border-color:rgba(255,255,255,.55);
  color:#fff;
  background:rgba(255,255,255,.12);
  box-shadow:none;
}
.hero--split .btn--ghost:hover{
  background:rgba(255,255,255,.22);
  border-color:rgba(255,255,255,.8);
  color:#fff;
}

/* 外壁・屋根LP系：劣化イメージのヒーロー */
.hero--split.hero--roof-lp .hero-media{
  background-image:url('../img/hero/exterior_dameged.jpg');
  background-position:48% 44%;
}
.hero--split.hero--roof-lp .hero-media::after{
  background:
    linear-gradient(120deg,rgba(14,58,47,.9) 0%,rgba(14,58,47,.45) 48%,rgba(14,58,47,.12) 100%),
    radial-gradient(ellipse 75% 65% at 18% 45%,rgba(0,0,0,.45) 0%,transparent 62%);
}
@media (max-width:780px){
  .hero--split.hero--roof-lp .hero-media{background-position:52% 42%}
  .hero--split.hero--roof-lp .hero-media::after{
    background:linear-gradient(to top,rgba(14,58,47,.94) 0%,rgba(14,58,47,.4) 50%,transparent 100%);
  }
}

/* サービス下層：split ヒーローを全幅より低めに保ちつつ、縦に余裕を確保 */
.hero--split.hero--service-compact{min-height:0}
@media (min-width:781px){
  .hero--split.hero--service-compact{min-height:clamp(320px,46vh,520px)}
  .hero--split.hero--service-compact .hero-inner{padding-bottom:clamp(48px,8vw,100px)}
  .hero--split.hero--service-compact .hero-inner--simple{
    transform:translateY(-4px);
    max-width:min(580px,52vw);
    padding:0 20px clamp(22px,3.5vw,40px);
  }
  .hero--split.hero--service-compact .hero-inner--simple .title{
    font-size:clamp(1.5rem,2.5vw,2.05rem);
    line-height:1.32;
    margin:0 0 14px;
  }
  .hero--split.hero--service-compact .hero-inner--simple .lead{
    font-size:.95rem;
    line-height:1.58;
    margin:0 0 16px;
    max-width:46ch;
  }
  .hero--split.hero--service-compact .hero-inner--simple .hero-eyebrow{
    margin-bottom:12px;
    font-size:.8rem;
    padding:.34rem .75rem;
  }
  .hero--split.hero--service-compact .hero-inner--simple .hero-cta{margin-top:14px}
  .hero--split.hero--service-compact .hero-cta .btn--primary{
    font-size:.875rem;
    padding:.62rem .95rem;
    box-shadow:0 6px 18px rgba(0,0,0,.07);
  }
}
@media (max-width:780px){
  .hero--split.hero--service-compact .hero-media{
    aspect-ratio:16/10;
    min-height:200px;
    max-height:46vh;
  }
  .hero--split.hero--service-compact .hero-inner--simple{
    transform:translateY(-4px);
    padding:14px 16px 22px;
  }
  .hero--split.hero--service-compact .hero-inner--simple .title{
    font-size:clamp(1.32rem,4.8vw,1.72rem);
    line-height:1.34;
    margin:0 0 10px;
  }
  .hero--split.hero--service-compact .hero-inner--simple .lead{
    font-size:.88rem;
    line-height:1.52;
    margin:0 0 10px;
  }
  .hero--split.hero--service-compact .hero-inner--simple .hero-eyebrow{margin-bottom:10px}
  .hero--split.hero--service-compact .hero-inner--simple .hero-cta{margin-top:12px;gap:10px}
  .hero--split.hero--service-compact .hero-cta .btn--primary{
    font-size:.84rem;
    padding:.58rem .88rem;
  }
}
.hero--split .hero-note{
  margin:14px 0 0;
  font-size:.82rem;
  color:rgba(255,255,255,.88);
}
.hero--split .hero-note a{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:.15em;
  font-weight:600;
}
.hero--split .hero-note a:hover{opacity:.9}

.section--service-tight{padding-top:clamp(14px,2.2vw,28px)}
.section--service-tight .container > section[data-reveal]{
  margin-bottom:clamp(.75rem,2.2vw,1.25rem);
}
.service-page .plans{gap:14px 16px}
.service-page .plan .content{padding:12px 14px 14px}
.service-page .plan .content .title{font-size:1.02rem;margin:0 0 4px}
.service-page .plan .muted{font-size:.875rem;line-height:1.45;margin:0}

.aside-title{font-size:1.05rem;margin-top:0}
.aside-lead{font-size:.9rem;margin-top:.75rem;line-height:1.55}
.aside-links{font-size:.9rem;line-height:1.55}

.service-cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* サービス下層：CTA（明るく親しみやすいトーン）
   セクション縦余白は .section と同一（style.css の共通 .section = ガイドライン） */
.section--cta-panel{
  background:linear-gradient(185deg,#ecf6f3 0%,#f4f7f6 38%,var(--bg) 58%);
}
.cta-panel{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border-radius:24px;
  background:#fff;
  color:var(--ink);
  border:1px solid #e3e9e7;
  border-top:4px solid var(--brand);
  box-shadow:0 16px 48px rgba(23,75,63,.07),0 2px 12px rgba(23,75,63,.04);
  /* カード内周の余白は .section の clamp と同系（ページ内の他カードと揃える） */
  padding:clamp(24px,4vw,36px) clamp(20px,3.8vw,32px);
  max-width:min(920px,94vw);
  margin-inline:auto;
}
.cta-panel::before{
  content:"";
  pointer-events:none;
  position:absolute;
  inset:0;
  background:radial-gradient(90% 55% at 10% 0%,rgba(0,196,196,.08),transparent 50%);
  z-index:0;
}
.cta-panel__head,
.cta-panel__body,
.cta-panel__sub{position:relative;z-index:1}
.cta-panel__head{margin-bottom:clamp(12px,2vw,18px)}
.cta-panel__head .tag{margin-bottom:0}
.cta-panel__head .cta-panel__title.mt-3{margin-top:.35rem}
.cta-panel__kicker{
  margin:0 0 6px;
  font-size:.9rem;
  font-weight:700;
  letter-spacing:.02em;
  color:var(--brand-2);
}
.cta-panel__title{
  margin:0 0 6px;
  font-family:"Noto Sans JP",system-ui,sans-serif;
  font-size:clamp(1.22rem,2.4vw,1.62rem);
  font-weight:800;
  line-height:1.35;
  text-wrap:balance;
  color:var(--ink);
}
.cta-panel__lead{
  margin:0;
  font-size:.9rem;
  line-height:1.55;
  color:var(--muted);
}
/* 幅が足りるときは1行に（狭い画面では通常どおり折り返し） */
@media (min-width:768px){
  .cta-panel__lead{white-space:nowrap}
}
/* CTA本体：縦1本（顔＋一言 → 主ボタン → 電話帯）。横2列グリッドは使わない */
.cta-panel__body{
  margin:0 0 4px;
  padding-top:clamp(16px,2.5vw,22px);
  border-top:1px solid #ecefec;
}
.cta-panel__intro{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:clamp(14px,2.5vw,24px);
  margin:0 0 clamp(18px,3vw,26px);
}
.cta-panel__intro-photo{
  display:block;
  flex:0 0 auto;
  line-height:0;
  text-decoration:none;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 4px 18px rgba(23,75,63,.08);
  width:min(100%,220px);
}
.cta-panel__intro-photo img{
  display:block;
  width:307px;
  max-width:100%;
  height:auto;
}
.cta-panel__intro-photo:hover{opacity:.94;box-shadow:0 6px 22px rgba(23,75,63,.1)}
.cta-panel__intro-text{
  flex:0 1 min(100%,42ch);
  min-width:0;
  margin:0;
  font-size:.9rem;
  line-height:1.55;
  font-weight:500;
  color:#374151;
  text-wrap:balance;
  text-align:left;
}
.cta-panel__intro-text strong{color:var(--brand-2);font-weight:700}
.cta-panel__primary{
  text-align:center;
  max-width:28rem;
  margin-inline:auto;
  padding:0 0 clamp(18px,3vw,24px);
}
.btn.btn--primary.btn--cta-hero{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:22rem;
  margin-inline:auto;
  padding:.95rem 1.35rem;
  font-size:1.02rem;
  font-weight:700;
  min-height:48px;
  box-shadow:0 8px 26px rgba(0,196,196,.3),0 1px 0 rgba(255,255,255,.22) inset;
  transition:transform .15s ease,box-shadow .2s ease,background .2s ease;
}
.btn.btn--primary.btn--cta-hero:hover{
  transform:translateY(-1px);
  box-shadow:0 11px 30px rgba(0,196,196,.34),0 1px 0 rgba(255,255,255,.25) inset;
}
@media (prefers-reduced-motion:reduce){
  .btn.btn--primary.btn--cta-hero:hover{transform:none}
}
.btn--cta-hero .btn__icon{
  font-size:1.32rem;
  margin-right:.15rem;
  opacity:.95;
}
.cta-panel__primary-note{
  margin:10px 0 0;
  font-size:.82rem;
  line-height:1.5;
  color:#64748b;
}
.cta-panel__primary-alt{
  margin:14px 0 0;
  font-size:.86rem;
  line-height:1.45;
}
.cta-panel__primary-alt a{
  color:var(--brand);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:.14em;
}
.cta-panel__primary-alt a:hover{color:var(--brand-2)}
.cta-panel__phone-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:8px 16px;
  padding:14px clamp(14px,3vw,22px);
  border-radius:14px;
  background:linear-gradient(180deg,#eef7f4 0%,#e8f2ee 100%);
  border:1px solid #d4e5df;
  text-align:center;
}
.cta-panel__phone-bar-label{
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
  color:var(--brand-2);
}
.cta-panel__phone-bar-tel{
  font-size:clamp(1.14rem,3.2vw,1.42rem);
  font-weight:800;
  letter-spacing:.03em;
  color:var(--brand-2);
  text-decoration:none;
  line-height:1.15;
}
.cta-panel__phone-bar-tel:hover{color:var(--brand)}
.cta-panel__phone-bar-hours{
  flex-basis:100%;
  font-size:.78rem;
  line-height:1.4;
  color:#5c6d66;
}
@media (min-width:520px){
  .cta-panel__phone-bar-hours{flex-basis:auto}
}
@media (max-width:720px){
  .cta-panel__phone-bar-tel{font-size:clamp(1.22rem,4.5vw,1.48rem)}
}
/* 折り返しでキャプションが単独行になったときもブロック全体の中央感を保つ */
@media (max-width:520px){
  .cta-panel__intro-text{
    flex-basis:100%;
    text-align:center;
    max-width:36ch;
    margin-inline:auto;
  }
}
.cta-panel__sub{
  display:flex;
  flex-wrap:wrap;
  gap:8px 8px;
  font-size:.8rem;
  padding-top:12px;
  margin-top:0;
  border-top:1px solid #ecefec;
  justify-content:center;
}
.cta-panel__sub a{
  color:var(--brand-2);
  font-weight:600;
  text-decoration:none;
  padding:.4rem .85rem;
  border-radius:999px;
  background:#f0f5f3;
  border:1px solid #dfe9e5;
  transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;
}
.cta-panel__sub a:hover{
  color:var(--brand-2);
  background:#fff;
  border-color:var(--brand);
  box-shadow:0 2px 10px rgba(0,196,196,.12);
}
/* 3列カード（理由・特徴など） */
.grid--cards-3{
  margin-top:1.5rem;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));
  gap:20px;
}
.grid--cards-3 .surface{padding:1.1rem 1.15rem 1.2rem}
.grid--cards-3 .title{font-size:1.08rem;margin:0 0 .35rem}
.reason-list{list-style:none;margin:0;padding:0}
.reason-list > li{margin:0}
.reason-card{display:flex;flex-direction:column}
.reason-card__icon{
  display:block;
  font-size:2.125rem;
  line-height:1;
  color:var(--brand);
  margin:0 0 .45rem;
  user-select:none;
}
.grid--cards-3 .reason-card .title{margin-top:0}

/* ======================================================================
   top2 標準スタイル（先行版 index2 相当。ここを編集する）
   ====================================================================== */

/* index.html（top2）用 追加スタイル */

:root{--paper:#f8f6f1;--line:#e5ddd0;--ink-soft:#334155}

/* Scroll reveal（JS 無効・DOM ツール等は scripting:none で常に表示） */
[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .7s ease, transform .7s ease}
[data-reveal].is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1;transform:none;transition:none}
}
@media (scripting:none){
  [data-reveal]{opacity:1;transform:none;transition:none}
}

/* Canvas等のiframe編集プレビュー対策: script が無効化される環境では常に表示 */
@supports selector(html:has(script[data-cms-disabled])) {
  html:has(script[data-cms-disabled]) [data-reveal]{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  html:has(script[data-cms-disabled]) .scroll-fade-in,
  html:has(script[data-cms-disabled]) .scroll-fade-in .service-card,
  html:has(script[data-cms-disabled]) .scroll-fade-in .work,
  html:has(script[data-cms-disabled]) .scroll-fade-in .kpi,
  html:has(script[data-cms-disabled]) .scroll-fade-in .step{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

/* inline style の外出し */
.top2-center-actions{text-align:center;margin-top:1.5rem}
.top2-sec-head--left{text-align:left;margin-bottom:1rem}
.page-privacy .top2-sec-head--left{margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.page-privacy .policy-article dt{margin-top:1.15rem}
.page-privacy .policy-article dt:first-child{margin-top:0}
.page-privacy .policy-article dd{margin:0.6rem 0 0}
.page-site-policy .top2-sec-head--left{margin-bottom:clamp(1.4rem,2.8vw,2.1rem)}
.page-site-policy .policy-prose{max-width:78ch}
.page-site-policy .policy-lead{margin:0 0 1.25rem;line-height:1.95}
.page-site-policy .policy-article dt{margin-top:1.2rem;line-height:1.7}
.page-site-policy .policy-article dt:first-child{margin-top:0}
.page-site-policy .policy-article dd{margin:.62rem 0 0}
.page-site-policy .policy-article dd p{line-height:1.95}
.page-site-policy .policy-article dd ol{
  margin:.1rem 0 0;
  padding-left:1.35em;
}
.page-site-policy .policy-article dd ol li{
  line-height:1.82;
  letter-spacing:0;
}
.page-site-policy .policy-article dd ol li + li{margin-top:.22rem}
.top2-sec-title--left{text-align:left}
.top2-news-more{margin-top:.8rem}
.icon--end{margin-left:auto;font-size:1rem}

/* HERO */
/* page-top2: ヘッダー白＋右側（メインリンク・見積・ハンバーガー）のみタイル。ブランド列は高さ固定にしない。 */
body.page-top2 > header{
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(10px);
  padding:0;
  margin:0;
}
body.page-top2 > header .container.nav{width:min(1100px,96vw)}
.page-top2 .nav{
  align-items:stretch;
  padding-top:0;
  padding-bottom:0;
}
.page-top2 .brand{align-self:center;padding-top:.65rem;padding-bottom:.65rem}
.page-top2 .lp-nav{
  display:flex;
  align-items:stretch;
  align-self:stretch;
  min-height:0;
}
.page-top2 .nav-links-main{height:100%;align-items:stretch}
.page-top2 .nav-links-main a{font-size:.82rem;padding:.25rem .45rem}
.page-top2 .nav-links-main a:not(.btn--primary){align-self:center}
.page-top2 .nav-links-main a.btn--primary{
  width:92px;
  min-height:56px;
  height:100%;
  align-self:stretch;
  margin:0;
  padding:8px 10px;
  border-radius:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  box-shadow:none;
  font-size:.72rem;
  letter-spacing:.02em;
  line-height:1.05;
  transition:background .15s ease,color .15s ease,filter .15s ease;
}
.page-top2 .nav-links-main a.btn--primary::before{
  content:"description";
  font-family:"Material Icons Round";
  font-size:1.2rem;
  line-height:1;
  display:block;
}
.page-top2 .nav-links-main a.btn--primary:hover{
  transform:none;
  background:var(--brand-2);
  color:#fff;
}
.page-top2 .nav-links-main a.btn--primary:hover::before{color:currentColor}

.page-top2 .lp-nav .hamburger-btn{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:92px;
  height:100%;
  min-height:56px;
  align-self:stretch;
  margin:0;
  border:0;
  border-radius:0;
  background:#fff;
  box-shadow:none;
  gap:5px;
  padding:8px 10px;
  color:var(--brand);
  font-size:.72rem;
  letter-spacing:.02em;
  line-height:1.05;
  transition:background .15s ease,color .15s ease;
}
.page-top2 .lp-nav .hamburger-btn::before{
  content:"menu";
  font-family:"Material Icons Round";
  font-size:1.2rem;
  line-height:1;
  display:block;
}
.page-top2 .lp-nav .hamburger-btn .bar{display:none}
.page-top2 .lp-nav .hamburger-btn .hamburger-label{
  display:block;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.02em;
  line-height:1;
  color:var(--brand);
}
.page-top2 .lp-nav .hamburger-btn:hover{
  background:color-mix(in srgb,var(--brand) 10%,#fff);
  color:var(--brand-2);
}
.page-top2 .lp-nav .hamburger-btn:hover::before{color:currentColor}
.page-top2 .lp-nav .hamburger-btn:hover .hamburger-label{color:currentColor}
.page-top2 .lp-nav .hamburger-btn[aria-expanded="true"]{background:#fff}

.page-top2 .nav-links-main a.btn--primary{border-left:0;border-right:0}
.page-top2 .lp-nav .hamburger-btn{border-left:0;border-right:0}

@media (max-width:520px){
  .page-top2 .nav-links-main a.btn--primary{width:84px;min-height:50px}
}

.top2-hero{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(80% 80% at 18% 30%,rgba(0,196,196,.16),transparent 62%),
    linear-gradient(135deg,#f7f4ee 0%,#ffffff 52%,#f1f7f6 100%);
  color:var(--brand-2);
}
.top2-hero__layout{
  position:relative;
  /* 施工事例一覧など：縦間延びを抑える */
  min-height:clamp(300px,42vh,400px);
  display:grid;
  grid-template-columns:minmax(320px,520px) 1fr;
}
/* 超ワイド画面では、ナビ（container 幅）に合わせてヒーロー文字の左端を止める */
@media (min-width: 1200px){
  .top2-hero__layout{
    padding-inline: max(0px, calc((100vw - 1100px) / 2));
  }
}
.top2-hero__layout::before{
  content:"";
  position:absolute;
  inset:0;
  width:56%;
  background:linear-gradient(90deg,rgba(247,244,238,.98) 0%,rgba(247,244,238,.9) 55%,rgba(247,244,238,0) 100%);
  z-index:0;
  pointer-events:none;
}
.top2-hero__inner{
  grid-column:1;
  position:relative;
  z-index:2;
  padding:clamp(38px,6vw,70px) 0 clamp(38px,6vw,70px);
  padding-left:clamp(10px,2.6vw,28px);
  display:grid;
  align-content:center;
  gap:clamp(10px,1.6vw,18px);
}
.top2-hero__media{
  position:absolute;
  right:0;
  top:0;
  bottom:0;
  width:min(68vw,980px);
  background:url("../img/hero/top_image.jpg") 70% 42%/cover no-repeat;
  z-index:1;
}
.top2-hero--service-exterior .top2-hero__media{
  background-image:url("../img/hero/exterior_dameged.jpg");
  background-position:62% 46%;
}
.top2-hero--service-exterior .top2-hero__title{
  font-size:clamp(1.7rem,3.6vw,2.6rem);
}
.top2-hero--service-exterior .top2-hero__em{
  color:var(--brand);
  font-weight:inherit;
}

/* サービス下層（内装・水廻り等）：標準ヒーローはややコンパクト */
.top2-hero--service-standard .top2-hero__layout{
  min-height:clamp(300px,42vh,460px);
}
.top2-hero--service-standard .top2-hero__title{
  font-size:clamp(1.55rem,3.2vw,2.25rem);
}
@media (max-width:640px){
  .top2-hero--service-standard{min-height:clamp(360px,88vw,520px)}
  .top2-hero--service-standard .top2-hero__layout{min-height:clamp(360px,88vw,520px)}
}

/* 施工事例（一覧）: タイトルのみで間延びしやすいので少しコンパクトに */
.top2-hero--works .top2-hero__layout{
  min-height:clamp(260px,36vh,340px);
}
@media (max-width:640px){
  .top2-hero--works{min-height:clamp(300px,62vw,380px)}
  .top2-hero--works .top2-hero__layout{min-height:clamp(300px,62vw,380px)}
  .top2-hero--works .top2-hero__inner{padding-bottom:120px}
}

/* サービス本文：旧テーブル相当の特徴カード */
.service-feature-grid{
  display:grid;
  gap:clamp(14px,2vw,20px);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));
}
.service-feature-card{
  display:flex;flex-direction:column;
  background:#fff;border:1px solid var(--line);border-radius:16px;
  overflow:hidden;box-shadow:0 10px 28px rgba(15,23,42,.06);
  height:100%;
}
.service-feature-card__media{
  aspect-ratio:4/3;overflow:hidden;background:#eef3f1;
}
.service-feature-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.service-feature-card--textonly .service-feature-card__body{padding-top:1.15rem}
.service-feature-card__body{
  padding:1rem 1.1rem 1.15rem;
  display:flex;flex-direction:column;gap:.55rem;flex:1;
}
.service-feature-card__title{
  font-family:"Noto Serif JP",serif;
  font-size:1.06rem;margin:0;line-height:1.3;color:var(--brand-2);
}
.service-feature-card__text{
  font-size:.9rem;line-height:1.75;color:var(--ink);margin:0;
  flex:1;
}
.service-feature-card__foot{margin-top:.5rem}
.service-feature-card__foot .btn{font-size:.84rem;padding:.45rem .95rem;border-radius:999px}

.service-cta-strip{
  border-radius:18px;border:1px solid var(--line);
  box-shadow:0 10px 28px rgba(15,23,42,.05);
  padding:clamp(1.1rem,2.8vw,1.45rem) clamp(1rem,3vw,1.5rem);
  background:linear-gradient(180deg,#fff 0%,#faf9f6 100%);
}
.service-cta-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:.85rem}
.service-cta-strip .muted{max-width:46ch;margin-inline:auto;text-align:center}

/* お困りごと相談 */
.page-top2 .problem-flow.mt-8,
.page-top2 .problem-examples.mt-8{
  margin-top:clamp(2.6rem,5vw,3.4rem);
}
.problem-intro{
  display:grid;grid-template-columns:minmax(0,1fr);
  gap:clamp(1rem,3vw,1.6rem);align-items:stretch;
  padding:clamp(1.2rem,3vw,1.8rem);border:1px solid var(--line);
  min-width:0;
}
.problem-intro__body{min-width:0}
.problem-intro__body h2{
  font-family:"Noto Serif JP",serif;
  color:var(--brand-2);line-height:1.35;
  font-size:clamp(1.25rem,2.8vw,1.8rem);
  margin:.65rem 0 .7rem;
}
.problem-intro__body p{
  margin:.45rem 0;font-size:.96rem;line-height:1.85;color:var(--ink);
}
.problem-intro__catch{
  margin:clamp(.85rem,2vw,1.1rem) 0 0;padding:.75rem 1rem;border-radius:14px;
  font-family:"Noto Serif JP",serif;font-weight:700;font-size:1.02rem;line-height:1.55;
  color:var(--brand-2);text-align:center;
  background:linear-gradient(135deg,#e8f7f3 0%,#f0fdfc 100%);
  border:1px solid #cce4dc;
  max-width:100%;min-width:0;overflow-wrap:break-word;
}
.section--problem-notice{
  padding:clamp(1rem,2.6vw,1.6rem) 0;
  background:var(--bg);
}
.problem-notice-cta{
  max-width:52rem;margin-inline:auto;
  padding:1.1rem 1.25rem;border-radius:18px;border:1px solid #cce4dc;
  background:linear-gradient(135deg,#e8f7f3 0%,#fff 100%);
  box-shadow:0 10px 28px rgba(15,23,42,.05);
}
.problem-notice-cta__note{
  margin:0;color:#475569;font-size:.88rem;line-height:1.7;
}
.problem-notice-cta--busy{
  border:1px solid #fcd34d;
  border-left:4px solid #f59e0b;
  background:linear-gradient(135deg,#fffbeb 0%,#fff 58%);
  box-shadow:0 8px 26px rgba(180,83,9,.1);
}
.problem-notice-cta--busy .problem-notice-cta__note{
  display:flex;align-items:flex-start;gap:.65rem;justify-content:center;
  max-width:44rem;margin-inline:auto;
  color:#92400e;font-size:.93rem;font-weight:600;line-height:1.65;
  text-align:left;
}
.problem-notice-cta__warn-ico{
  flex-shrink:0;font-size:1.45rem;line-height:1;color:#d97706;
  filter:drop-shadow(0 1px 1px rgba(180,83,9,.2));
}
.problem-notice-cta__note-text{display:block}
@media (max-width:520px){
  .problem-notice-cta--busy .problem-notice-cta__note{font-size:.88rem}
}
.problem-flow__list{
  list-style:none;margin:1rem 0 0;padding:0;
  display:flex;flex-direction:column;gap:.85rem;
}
.problem-flow__item{
  display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:.9rem;align-items:flex-start;background:#fff;
  border:1px solid var(--line);border-radius:18px;
  padding:1rem 1.1rem;box-shadow:0 10px 24px rgba(15,23,42,.045);
}
.problem-flow__item--center{align-items:center}
.problem-flow__num{
  width:84px;height:84px;border-radius:18px;
  overflow:hidden;flex:0 0 auto;background:#e8efe9;
  box-shadow:0 6px 16px rgba(0,196,196,.18);
}
.problem-flow__num img{width:100%;height:100%;object-fit:cover;display:block}
.problem-flow__num--icon{
  display:grid;place-items:center;
}
.problem-flow__num--icon .material-icons-round{
  font-size:2.4rem;line-height:1;color:var(--brand-2);
}
.problem-flow__item h3,
.problem-case-card h3{
  margin:0 0 .25rem;font-family:"Noto Serif JP",serif;
  color:var(--brand-2);font-size:1.02rem;line-height:1.35;
}
.problem-flow__item p,
.problem-case-card p{
  margin:0;color:#334155;font-size:.92rem;line-height:1.75;
}
.problem-case-grid{
  display:flex;flex-direction:column;
  gap:clamp(.85rem,2vw,1.1rem);
}
.problem-case-card{
  display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:.85rem;align-items:flex-start;background:#fff;
  border:1px solid var(--line);border-radius:18px;
  padding:1rem;box-shadow:0 8px 22px rgba(15,23,42,.045);
}
.problem-case-card__icon{
  width:2.45rem;height:2.45rem;border-radius:14px;
  display:grid;place-items:center;background:#e8efe9;
  color:var(--brand-2);font-size:1.35rem;flex:0 0 auto;
}
.problem-intro__diagram{
  grid-column:1/-1;
  margin-top:clamp(.85rem,2.2vw,1.25rem);
  padding-top:clamp(.85rem,2.2vw,1.25rem);
  border-top:1px solid #e7edea;
  min-width:0;
}
.problem-overview-rail{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:.25rem .35rem;
  max-width:100%;
}
.problem-overview-rail__step{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  min-width:4.75rem;max-width:9rem;padding:.5rem .4rem .55rem;
  border-radius:14px;background:#fafafa;border:1px solid #e5e7eb;
}
.problem-overview-rail__step--accent{
  border-color:var(--brand);
  background:linear-gradient(180deg,#f0fdfc 0%,#fff 100%);
  box-shadow:0 6px 16px rgba(0,196,196,.12);
}
.problem-overview-rail__ico{
  font-size:1.5rem;color:var(--brand-2);line-height:1;margin-bottom:.2rem;
}
.problem-overview-rail__step--accent .problem-overview-rail__ico{color:var(--brand);}
.problem-overview-rail__ttl{
  font-weight:800;font-size:.76rem;letter-spacing:.02em;color:var(--brand-2);line-height:1.25;
}
.problem-overview-rail__sub{font-size:.68rem;color:#64748b;line-height:1.35;margin-top:.2rem}
.problem-overview-rail__arrow{
  color:var(--brand);display:flex;align-items:center;opacity:.72;padding:0 .05rem;
}
.problem-overview-rail__arrow .material-icons-round{font-size:1.15rem}

.problem-equipment__diagram{
  margin:1rem 0 0;border-radius:14px;padding:.9rem 1rem;
  background:linear-gradient(135deg,#f8fafc 0%,#eef8f5 100%);
  border:1px solid #dce8e3;
}
.problem-equipment__summary{
  margin:.65rem 0 0;
  font-weight:700;font-size:.92rem;color:var(--brand-2);line-height:1.65;
  text-align:center;
}
.problem-split-viz{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.65rem 1rem;
}
.problem-split-viz__lane{
  display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .9rem;border-radius:999px;
  background:#fff;border:1px solid var(--line);
  font-weight:700;font-size:.84rem;color:var(--brand-2);
}
.problem-split-viz__ico{font-size:1.3rem;color:var(--brand);}
.problem-split-viz__plus{font-weight:800;color:#94a3b8;font-size:1.05rem;line-height:1}
.problem-split-viz__foot{
  margin:.7rem 0 0;display:flex;align-items:flex-start;gap:.45rem;justify-content:center;
  font-size:.82rem;color:#475569;line-height:1.55;text-align:left;max-width:40rem;margin-inline:auto;
}
.problem-split-viz__foot-ico{flex-shrink:0;margin-top:.12rem;font-size:1.15rem;color:var(--brand-2);}
.problem-flow__bullets{
  margin:.5rem 0 0;padding-left:1.1rem;font-size:.9rem;line-height:1.75;color:#334155;
}
.problem-flow__bullets li{margin:.32rem 0}

.problem-flow-sketch{
  margin:1rem 0 0;padding:.75rem 1rem;border-radius:16px;background:#fff;border:1px solid var(--line);
  box-shadow:0 8px 20px rgba(15,23,42,.04);
}
.problem-flow-sketch__rail{
  display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap;
}
.problem-flow-sketch__node{
  display:flex;flex-direction:column;align-items:center;gap:.15rem;
  min-width:4rem;font-size:.72rem;font-weight:800;letter-spacing:.04em;color:var(--brand-2);
  text-transform:uppercase;
}
.problem-flow-sketch__node .material-icons-round{font-size:1.55rem;color:var(--brand);}
.problem-flow-sketch__line{
  width:clamp(1.25rem,8vw,3rem);height:3px;border-radius:2px;
  background:linear-gradient(90deg,var(--brand),#cbd5e1);margin:0 .2rem;
}
.problem-flow__lead{margin:0 0 .45rem;font-weight:600;font-size:.9rem;color:#334155;line-height:1.55}
@media (max-width:760px){
  .problem-intro__diagram{
    overflow-x:auto;-webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
  }
  .problem-overview-rail{justify-content:flex-start;flex-wrap:nowrap;padding-bottom:.2rem;gap:.2rem;max-width:none}
  .problem-overview-rail__step{flex:0 0 auto}
  .problem-overview-rail__arrow{flex:0 0 auto}
}
.problem-case-card--media{
  grid-template-columns:220px minmax(0,1fr);
  padding:0;overflow:hidden;align-items:stretch;
  min-height:180px;
}
.problem-case-card__media{
  margin:0;background:#eef3f1;overflow:hidden;
  width:220px;align-self:stretch;
  position:relative;
}
.problem-case-card__media img{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;display:block;
}
.problem-case-card__body{
  display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:.85rem;align-items:flex-start;padding:1.1rem 1.2rem;
}
@media (max-width:760px){
  .problem-intro{padding:clamp(1rem,3vw,1.35rem)}
  .problem-case-card--media{grid-template-columns:1fr;min-height:0}
  .problem-case-card__media{width:100%;aspect-ratio:16/9;position:relative;height:auto}
}

/* 住まいのチェック：目次 */
.page-maintenance .top2-hero{
  background:
    radial-gradient(80% 80% at 18% 30%,rgba(0,196,196,.12),transparent 62%),
    linear-gradient(135deg,#f7f4ee 0%,#ffffff 52%,#f1f7f6 100%);
}
.page-maintenance .top2-hero__layout{
  min-height:clamp(320px,46vh,420px);
}
.page-maintenance .top2-hero__layout::before{
  width:62%;
  background:linear-gradient(90deg,rgba(247,244,238,.985) 0%,rgba(247,244,238,.9) 58%,rgba(247,244,238,0) 100%);
}
.page-maintenance .top2-hero__inner{
  max-width:56ch;
}
.page-maintenance .top2-hero__eyebrow{
  background:rgba(255,255,255,.78);
  border-color:rgba(14,58,47,.14);
}
.page-maintenance .top2-hero__cta .btn{
  min-height:44px;
}
.page-maintenance .top2-hero__cta .btn--primary{
  box-shadow:0 14px 34px rgba(0,196,196,.22);
}
.page-maintenance .top2-hero__lead{
  max-width:46ch;
}

@media (max-width:640px){
  .page-maintenance .top2-hero__inner{
    max-width:none;
  }
  .page-maintenance .top2-hero__cta{
    gap:10px;
  }
  .page-maintenance .top2-hero__cta .btn{
    width:100%;
    justify-content:center;
  }
  .page-maintenance .top2-hero__inner{
    padding:34px 18px 150px;
  }
  .page-maintenance .top2-hero__lead{
    max-width:none;
  }
}

.page-maintenance .maintenance-intro{
  padding:clamp(1.05rem,2.6vw,1.5rem);
}
.page-maintenance .maintenance-intro .top2-sec-head{
  margin-top:0;
  margin-bottom:1rem;
}
.page-maintenance .maintenance-intro p{
  max-width:78ch;
}
.page-maintenance .maintenance-intro__hint{
  font-size:.9rem;
}
.maintenance-toc{
  display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start;
  margin:0 0 1.25rem;padding:0;list-style:none;
}
.maintenance-toc li{margin:0}
.maintenance-toc a{
  display:inline-flex;align-items:center;
  padding:.5rem .9rem;border-radius:999px;
  background:#fff;border:1px solid #d7e2dd;font-size:.82rem;font-weight:700;
  color:var(--brand-2);text-decoration:none;
}
.maintenance-toc a:hover{background:#e8efe9;border-color:var(--brand)}
.maintenance-toc a:focus-visible{
  outline:2px solid color-mix(in srgb,var(--brand) 55%,#fff);
  outline-offset:2px;
}
@media (max-width:640px){
  .maintenance-toc{gap:10px}
  .maintenance-toc a{
    padding:.62rem 1rem;
    font-size:.9rem;
    min-height:44px;
  }
}
.service-check-section{margin-top:clamp(1.5rem,3vw,2.25rem)}
.service-check-section:first-of-type{margin-top:0}

/* 岩淵工務店の考え：本文ブロック */
.policy-stack{display:flex;flex-direction:column;gap:clamp(1rem,2.4vw,1.5rem)}
.policy-article{
  padding:clamp(.2rem,1vw,.4rem) 0;
  border-bottom:1px solid #eef2f0;
}
.policy-article:last-child{border-bottom:0;padding-bottom:0}
.policy-article h3{
  font-family:"Noto Serif JP",serif;
  font-size:clamp(1.05rem,2.2vw,1.2rem);
  margin:0 0 .55rem;color:var(--brand-2);
}
.policy-article p{margin:.35rem 0;font-size:.95rem;line-height:1.82;color:var(--ink-soft,#334155)}

/* Policy: 読みやすさ（行長・余白・目次） */
.policy-surface{background:#fff}
.policy-prose{
  max-width:76ch;
  margin-inline:auto;
}
.policy-lead{
  margin:0 0 1rem;
  font-size:1rem;
  line-height:1.9;
}
.policy-toc{
  margin:1rem 0 1.25rem;
  padding:.9rem 1rem;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fafc;
}
.policy-toc__title{
  margin:0 0 .5rem;
  font-size:.8rem;
  font-weight:900;
  letter-spacing:.14em;
  color:#64748b;
}
.policy-toc__list{
  margin:0;
  padding-left:1.2rem;
  display:grid;
  gap:.35rem;
}
.policy-toc__list a{
  color:var(--brand-2);
  text-decoration:none;
  font-weight:800;
}
.policy-toc__list a:hover{text-decoration:underline}
.policy-article{
  padding:clamp(.6rem,1.6vw,1rem) 0;
}
.policy-article p{
  font-size:1rem;
  line-height:1.95;
  letter-spacing:.01em;
}
.policy-article p strong{
  color:#0f172a;
}

/* =========================
   Policy / Staff（旧コンテンツの体裁調整）
   ========================= */
/* Policy: 旧見出し（重複テキスト）を抑制して本文に集中 */
.page-top2 #policy #kangae1 .sub_ttl{display:none}
.page-top2 #policy #kangae1 .kangaeText{display:none}

/* Staff: legacyのタイトル画像・パンくずを非表示にして新UIと統一 */
.page-top2 #content .legacy-content .crumb{display:none}
.page-top2 #content .legacy-content > h3{display:none}

/* Staff: プロフィールブロックの余白と読みやすさを改善 */
.page-top2 #content .legacy-content .waku{
  margin-top:clamp(14px,2.6vw,22px);
}
.page-top2 #content .legacy-content .waku,
.page-top2 #content .legacy-content .sp_no .waku{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:clamp(14px,2.6vw,20px);
}
.page-top2 #content .legacy-content h4.sub_ttl{
  margin:clamp(16px,3.2vw,26px) 0 10px;
}
.page-top2 #content .legacy-content h4.sub_ttl span{
  display:inline-block;
  font-weight:800;
  color:var(--brand-2);
}
.page-top2 #content .legacy-content h5{
  margin:0 0 10px;
  font-size:1.05rem;
  color:var(--brand-2);
}
.page-top2 #content .legacy-content dl{margin:0 0 10px}
.page-top2 #content .legacy-content dt{
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.14em;
  color:#64748b;
  text-transform:uppercase;
}
.page-top2 #content .legacy-content dd{margin:6px 0 0}
.page-top2 #content .legacy-content .catch p u{
  text-decoration:none;
  font-weight:900;
  color:var(--brand-2);
}

/* Staff: テーブルベースのレイアウトを破綻しにくく */
.page-top2 #content .legacy-content table{width:100%}
.page-top2 #content .legacy-content td p{margin:0;line-height:1.85}

/* Staff: 新UI */
.staff-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(14px,3vw,22px);
}
@media(min-width:900px){.staff-grid{grid-template-columns:repeat(2,1fr)}}
.staff-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 14px 34px rgba(15,23,42,.06);
  display:flex;
  flex-direction:column;
}
.staff-card__media{
  aspect-ratio:16/10;
  background:#f8fafc;
  overflow:hidden;
}
.staff-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.staff-card__body{padding:clamp(14px,2.6vw,20px)}
.staff-card__kicker{
  margin:0 0 .35rem;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.14em;
  color:#64748b;
  text-transform:uppercase;
}
.staff-card__name{
  margin:0 0 .65rem;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(1.15rem,2.2vw,1.35rem);
  color:var(--brand-2);
}
.staff-card__meta{
  list-style:none;
  padding:0;
  margin:0 0 .9rem;
  display:grid;
  gap:.3rem;
  color:#334155;
  font-size:.9rem;
  line-height:1.6;
}
.staff-card__meta strong{color:#0f172a}
.staff-card__catch{
  margin:0 0 .55rem;
  font-weight:900;
  color:var(--brand-2);
}
.staff-card__text{margin:.35rem 0;font-size:.95rem;line-height:1.85;color:var(--ink-soft,#334155)}

/* Legacy migrated content from old static pages */
.legacy-content{
  padding:clamp(1rem,2.5vw,1.5rem);
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 14px 34px rgba(15,23,42,.06);
  overflow:hidden;
}
.legacy-content img{
  max-width:100%;
  height:auto;
}
.legacy-content table{
  width:100%;
  border-collapse:collapse;
}
.legacy-content td,
.legacy-content th{
  vertical-align:top;
  padding:.6rem;
}
.legacy-content p{
  line-height:1.85;
}
.legacy-content .crumb,
.legacy-content h3:has(img[alt]){
  display:none;
}
@media (max-width:700px){
  .legacy-content table,
  .legacy-content tbody,
  .legacy-content tr,
  .legacy-content td,
  .legacy-content th{
    display:block;
    width:100%;
  }
  .legacy-content td,
  .legacy-content th{
    padding:.7rem .85rem;
  }
}
.top2-hero__media::before{
  content:"";
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(247,244,238,.995) 0%,rgba(247,244,238,.92) 14%,rgba(247,244,238,.55) 26%,rgba(247,244,238,.18) 38%,rgba(247,244,238,0) 54%),
    radial-gradient(34% 46% at 60% 50%,rgba(247,244,238,.22),transparent 62%),
    radial-gradient(40% 45% at 82% 36%,rgba(0,196,196,.10),transparent 60%);
  pointer-events:none;
}
.top2-hero__eyebrow{
  display:inline-flex;align-items:center;gap:.45rem;
  margin:0;
  width:fit-content;
  padding:.35rem .8rem;
  border-radius:999px;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(14,58,47,.12);
  color:var(--brand-2);
  font-size:.82rem;letter-spacing:.04em;font-weight:700;
}
.top2-hero__eyebrow .material-icons-round{font-size:1rem;color:var(--brand)}
.top2-hero__title{
  margin:0;
  font-family:"Zen Maru Gothic","Noto Sans JP",system-ui,sans-serif;
  font-size:clamp(1.85rem,4.2vw,3.05rem);
  font-weight:500;
  line-height:1.22;
  letter-spacing:.06em;
  color:#334155;
}
.top2-hero__title em{font-style:normal;color:var(--brand)}
.top2-hero__lead{
  margin:.15rem 0 0;
  max-width:34ch;
  font-size:clamp(.98rem,1.35vw,1.08rem);
  line-height:1.85;
  color:#475569;
}
.top2-hero__cta{
  display:flex;flex-wrap:wrap;gap:12px;
  margin-top:.5rem;
}
.top2-hero__cta .btn{padding:.8rem 1.15rem;font-size:.92rem}
.top2-hero__cta .btn--primary{
  background:var(--brand);
  color:#fff;
  box-shadow:0 12px 30px rgba(0,196,196,.22);
}
.top2-hero__cta .btn--primary:hover{background:var(--brand-2)}
.top2-hero__cta .btn--ghost{
  background:transparent;
  color:var(--brand-2);
  border-color:#cbd5e1;
  box-shadow:none;
}
.top2-hero__cta .btn--ghost:hover{background:#eef6f2;border-color:#b8dcc8}

.top2-hero__badge{
  position:absolute;
  right:clamp(14px,2.2vw,22px);
  bottom:clamp(14px,2.2vw,22px);
  width:156px;height:156px;
  border-radius:0;
  background:transparent;
  border:0;
  color:var(--brand);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  text-align:center;
  padding:12px 12px;
  box-shadow:none;
}
.top2-hero__badge::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20d%3D%27M%2042.91%204.45%20Q%2046.18%203.09%2048.36%203.09%20Q%2050.55%203.09%2053.27%204.18%20Q%2056.00%205.27%2059.82%205.00%20Q%2063.64%204.73%2065.82%205.82%20Q%2068.00%206.91%2069.64%208.55%20Q%2071.27%2010.18%2075.64%2011.82%20Q%2080.00%2013.45%2081.09%2014.55%20Q%2082.18%2015.64%2083.27%2018.36%20Q%2084.36%2021.09%2087.64%2023.82%20Q%2090.91%2026.55%2091.73%2028.18%20Q%2092.55%2029.82%2092.55%2032.55%20Q%2092.55%2035.27%2094.45%2039.09%20Q%2096.36%2042.91%2095.82%2046.18%20Q%2095.27%2049.45%2095.82%2053.82%20Q%2096.36%2058.18%2094.18%2062.55%20Q%2092.00%2066.91%2091.73%2069.09%20Q%2091.45%2071.27%2090.64%2072.91%20Q%2089.82%2074.55%2086.55%2077.27%20Q%2083.27%2080.00%2081.09%2083.27%20Q%2078.91%2086.55%2075.64%2087.36%20Q%2072.36%2088.18%2069.09%2090.91%20Q%2065.82%2093.64%2061.45%2093.64%20Q%2057.09%2093.64%2053.82%2095.00%20Q%2050.55%2096.36%2046.73%2095.00%20Q%2042.91%2093.64%2038.55%2093.64%20Q%2034.18%2093.64%2030.91%2090.91%20Q%2027.64%2088.18%2024.36%2087.36%20Q%2021.09%2086.55%2018.91%2083.27%20Q%2016.73%2080.00%2013.45%2077.55%20Q%2010.18%2075.09%209.09%2070.73%20Q%208.00%2066.36%206.36%2064.18%20Q%204.73%2062.00%204.18%2060.36%20Q%203.64%2058.73%204.18%2054.91%20Q%204.73%2051.09%203.91%2047.27%20Q%203.09%2043.45%205.00%2039.64%20Q%206.91%2035.82%207.18%2032.00%20Q%207.45%2028.18%2010.73%2025.18%20Q%2014.00%2022.18%2016.18%2018.36%20Q%2018.36%2014.55%2022.73%2012.64%20Q%2027.09%2010.73%2030.09%208.27%20Q%2033.09%205.82%2036.36%205.82%20Q%2039.64%205.82%2042.91%204.45%20Z%27%20fill%3D%27%23ffffff%27%20stroke%3D%27%23d7e2dd%27%20stroke-width%3D%271.2%27%2F%3E%3C%2Fsvg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  filter:drop-shadow(0 14px 26px rgba(23,75,63,.18));
}
.top2-hero__badge > *{position:relative;z-index:1}
.top2-hero__badge span{
  display:block;
  font-family:"Zen Maru Gothic","Noto Sans JP",system-ui,sans-serif;
  font-weight:500;
  letter-spacing:.08em;
  font-size:.95rem;
  line-height:1.35;
  color:var(--brand);
}
.top2-hero__badge strong{
  display:block;
  font-family:"Zen Maru Gothic","Noto Sans JP",system-ui,sans-serif;
  font-weight:400;
  font-size:1.12rem;
  color:var(--brand);
  line-height:1.15;
  white-space:nowrap;
}
.top2-hero__badge .badge-line{
  display:inline-flex;
  align-items:baseline;
  white-space:nowrap;
  letter-spacing:.02em;
}
.top2-hero__badge .badge-num{
  font-size:1.26em;
  letter-spacing:0;
}

@media (max-width:640px){
  /* モバイル: 画像を背景に、コピーは画像の上に重ねる */
  .top2-hero{min-height:clamp(340px,72vw,440px)}
  .top2-hero__layout{
    grid-template-columns:1fr;
    min-height:clamp(340px,72vw,440px);
  }
  /* 左カラム用の白グラデは無効化（画像全面に敷き直す） */
  .top2-hero__layout::before{display:none}
  /* 画像はヒーロー全面に広げる */
  .top2-hero__media{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
  }
  /* 白グラデを文字位置（左やや上寄り）に集中させる・濃度UP */
  .top2-hero__media::before{
    background:
      radial-gradient(88% 72% at 22% 58%,
        rgba(255,255,255,.98) 0%,
        rgba(255,255,255,.78) 30%,
        rgba(255,255,255,.38) 58%,
        rgba(255,255,255,0) 88%);
  }
  /* コピーは画像の上に重ねる（上寄せでグラデに揃える） */
  .top2-hero__inner{
    position:relative;
    z-index:2;
    padding:36px 20px 140px;
    align-content:start;
    gap:12px;
  }
  /* 文字の視認性UP：白いハロー（縁）を付与 */
  .top2-hero__title,
  .top2-hero__lead{
    text-shadow:
      0 0 6px rgba(255,255,255,.98),
      0 0 14px rgba(255,255,255,.85),
      0 1px 2px rgba(255,255,255,.98);
  }
  /* バッジは小さく、文字と重ならないよう右下に寄せる */
  .top2-hero__badge{
    width:104px;height:104px;
    right:12px;
    bottom:12px;
    padding:10px;
  }
  .top2-hero__badge span{font-size:.74rem;line-height:1.2}
  .top2-hero__badge strong{font-size:.9rem}
}
/* スクロールダウンのヒント */
.top2-hero__scroll{
  position:absolute;left:50%;bottom:10px;transform:translateX(-50%);
  font-size:.72rem;letter-spacing:.18em;color:#d9e8e2;
  display:flex;flex-direction:column;align-items:center;gap:4px;
  opacity:.75;
}
.top2-hero__scroll::after{
  content:"";
  width:1px;height:28px;background:linear-gradient(#aaeeee,transparent);
  animation:top2-scrollhint 1.6s ease-in-out infinite;
}
@keyframes top2-scrollhint{
  0%,100%{opacity:.2;transform:translateY(0)}
  50%{opacity:1;transform:translateY(4px)}
}

/* =========================
   2. Sticky 連絡バー (mobile)
   ========================= */
.top2-sticky-cta{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:60;
  display:grid;
  grid-template-columns:1fr 1fr;
  background:#fff;
  border-top:1px solid #e5e7eb;
  box-shadow:0 -6px 20px rgba(0,0,0,.08);
  transform:translateY(100%);
  transition:transform .25s ease;
}
.top2-sticky-cta.is-visible{transform:translateY(0)}
.top2-sticky-cta a{
  display:flex;align-items:center;justify-content:center;gap:.45rem;
  padding:.8rem .5rem;
  font-weight:700;font-size:.95rem;text-decoration:none;
}
.top2-sticky-cta__tel{color:var(--brand-2);border-right:1px solid #e5e7eb}
.top2-sticky-cta__form{color:#fff;background:var(--brand)}
.top2-sticky-cta__form:hover{background:var(--brand-2)}
.top2-sticky-cta .material-icons-round{font-size:1.1rem}
@media(min-width:900px){
  .top2-sticky-cta{display:none}
}

/* =========================
   3. 代表あいさつ
   ========================= */
.top2-greeting{background:linear-gradient(180deg,var(--paper) 0%,#fff 100%)}
.top2-greeting__inner{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(18px,3vw,30px);
  align-items:center;
}
@media(min-width:820px){
  .top2-greeting__inner{grid-template-columns:260px 1fr}
}
.top2-greeting__photo{
  justify-self:center;
  width:clamp(180px,35vw,260px);
  border-radius:50% 50% 46% 54% / 48% 52% 48% 52%;
  overflow:hidden;
  box-shadow:0 22px 44px rgba(23,75,63,.15);
  border:6px solid #fff;
  aspect-ratio:1/1;
  object-fit:cover;
  background:#eef3f1;
}
.top2-greeting__body h2{
  margin:0 0 .3rem;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(1.35rem,2.8vw,1.8rem);
  font-weight:700;color:var(--brand-2);line-height:1.35;
}
.top2-greeting__kicker{
  display:inline-block;margin:0 0 .5rem;
  font-size:.8rem;font-weight:700;letter-spacing:.12em;color:var(--brand)
}
.top2-greeting__body p{font-size:1rem;line-height:1.85;color:var(--ink-soft);margin:.2rem 0}
.top2-greeting__sign{
  margin-top:.8rem;font-family:"Noto Serif JP",serif;font-size:1.05rem;
  color:var(--brand-2);font-weight:700;
}
.top2-greeting__links{display:flex;flex-wrap:wrap;gap:10px;margin-top:1rem}

/* =========================
   4. 困りごとチップ
   ========================= */
.top2-trouble{background:#fff}
.top2-trouble__head{text-align:center;margin-bottom:clamp(14px,2vw,22px)}
.top2-trouble__grid{
  display:flex;flex-wrap:wrap;gap:10px;justify-content:center;
}
.top2-trouble-chip{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.65rem 1rem;
  border-radius:999px;
  border:1.5px solid #d7e2dd;
  background:#fff;
  color:var(--brand-2);
  font-weight:700;font-size:.92rem;
  text-decoration:none;
  transition:.2s ease;
}
.top2-trouble-chip:hover{
  background:var(--brand-2);color:#fff;border-color:var(--brand-2);
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(23,75,63,.18);
}
.top2-trouble-chip .material-icons-round{font-size:1.1rem;color:var(--brand)}
.top2-trouble-chip:hover .material-icons-round{color:var(--accent,#aaeeee)}

/* =========================
   5. サービス（カード・ホバー演出）
   ========================= */
.top2-services{
  background:
    linear-gradient(180deg,#fff 0%,var(--paper) 100%);
}
.top2-services-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}
@media(min-width:640px){.top2-services-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.top2-services-grid{grid-template-columns:repeat(3,1fr)}}
.top2-svc-card{
  position:relative;overflow:hidden;
  border-radius:0;
  aspect-ratio:4/3;
  background:#000;
  /* index.html では <a class="top2-svc-card"> を使用するため互換維持 */
  color:#fff;
  text-decoration:none;
  box-shadow:0 10px 26px rgba(23,75,63,.1);
  transition:transform .25s ease, box-shadow .25s ease;
}
.top2-svc-card:hover{transform:translateY(-4px);box-shadow:0 18px 34px rgba(23,75,63,.18)}
.top2-svc-card__link{
  position:absolute;inset:0;
  display:block;
  text-decoration:none;
  color:#fff;
}
.top2-svc-card__link:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:3px;
}
.top2-svc-card__link > img,
.top2-svc-card > img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .5s ease;
  filter:saturate(1.02);
  z-index:0;
}
.top2-svc-card:hover .top2-svc-card__link > img,
.top2-svc-card:hover > img{transform:scale(1.06)}
.top2-svc-card::after{
  content:"";
  position:absolute;inset:0;
  /* 画像が明るくても文字が負けないよう、下部を少し濃くする */
  background:
    linear-gradient(180deg,
      rgba(0,0,0,0) 28%,
      rgba(0,0,0,.30) 52%,
      rgba(0,0,0,.78) 100%);
  z-index:1;
  pointer-events:none;
}
.top2-svc-card__body{
  position:absolute;left:0;right:0;bottom:0;
  padding:16px 18px 18px;
  text-shadow:
    0 2px 12px rgba(0,0,0,.65),
    0 0 2px rgba(0,0,0,.55);
  z-index:2;
}
.top2-svc-card__title{
  margin:0 0 .2rem;
  font-family:"Noto Serif JP",serif;
  font-size:1.18rem;font-weight:700;letter-spacing:.02em;
}
.top2-svc-card__tagline{margin:0;font-size:.85rem;opacity:.95}
.top2-svc-card__works{
  position:absolute;
  right:12px;
  top:12px;
  z-index:3;
  padding:.35rem .6rem;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:var(--brand-2);
  font-weight:900;
  font-size:.78rem;
  text-decoration:none;
  box-shadow:0 10px 22px rgba(15,23,42,.14);
}
.top2-svc-card__works:hover{background:#fff}
.top2-svc-card__works:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}
.top2-svc-card__tags{
  display:flex;flex-wrap:wrap;gap:6px;margin-top:.55rem;
}
.top2-svc-card__tags span{
  display:inline-block;padding:.2rem .55rem;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);
  border-radius:999px;font-size:.72rem;backdrop-filter:blur(6px);
}

/* =========================
   6. Before / After スライダー
   ========================= */
.top2-works{background:var(--paper)}
.top2-ba{
  position:relative;
  max-width:820px;margin:0 auto;
  border-radius:20px;overflow:hidden;
  box-shadow:0 22px 48px rgba(23,75,63,.15);
  aspect-ratio:256/225;
  background:#000;
  user-select:none;
}
.top2-ba img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  pointer-events:none;
}
.top2-ba{
  /* before/after の微調整（必要なら数px動かす） */
  --ba-before-x: 0px;
  --ba-before-y: 0px;
  --ba-after-x: 0px;
  --ba-after-y: 0px;
}
.top2-ba__before{transform:translate(var(--ba-before-x), var(--ba-before-y))}
.top2-ba__after{transform:translate(var(--ba-after-x), var(--ba-after-y))}
.top2-ba__after-wrap{
  position:absolute;inset:0;overflow:hidden;
  clip-path:inset(0 0 0 50%);
  transition:clip-path .1s linear;
}
.top2-ba__range{
  position:absolute;inset:0;width:100%;margin:0;
  appearance:none;-webkit-appearance:none;
  background:transparent;cursor:ew-resize;
}
.top2-ba__range::-webkit-slider-runnable-track{background:transparent;height:100%}
.top2-ba__range::-moz-range-track{background:transparent;height:100%}
.top2-ba__range::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;
  width:44px;height:44px;border-radius:999px;
  background:#fff;border:3px solid var(--brand);
  box-shadow:0 6px 14px rgba(0,0,0,.3);
  cursor:ew-resize;
}
.top2-ba__range::-moz-range-thumb{
  width:44px;height:44px;border-radius:999px;
  background:#fff;border:3px solid var(--brand);
  box-shadow:0 6px 14px rgba(0,0,0,.3);
  cursor:ew-resize;
}
.top2-ba__handle{
  position:absolute;top:0;bottom:0;left:50%;
  width:3px;background:#fff;
  transform:translateX(-50%);
  pointer-events:none;
  box-shadow:0 0 0 1px rgba(0,0,0,.2);
}
.top2-ba__handle::before,.top2-ba__handle::after{
  content:"";
  position:absolute;top:50%;width:0;height:0;
  border-top:8px solid transparent;border-bottom:8px solid transparent;
  transform:translateY(-50%);
}
.top2-ba__handle::before{left:-13px;border-right:10px solid #fff}
.top2-ba__handle::after{right:-13px;border-left:10px solid #fff}
.top2-ba__label{
  position:absolute;top:14px;
  padding:.28rem .72rem;border-radius:999px;
  background:rgba(10,35,28,.72);color:#fff;
  font-size:.76rem;font-weight:800;letter-spacing:.14em;
  backdrop-filter:blur(8px);
}
.top2-ba__label--before{left:14px}
.top2-ba__label--after{right:14px}
.top2-ba__caption{
  text-align:center;
  margin:.75rem 0 0;
  font-size:.86rem;color:#64748b;
}
.top2-ba__caption strong{color:var(--brand-2)}
.top2-ba__hint{
  position:absolute;left:50%;bottom:14px;transform:translateX(-50%);
  padding:.25rem .7rem;border-radius:999px;background:rgba(0,0,0,.5);
  color:#fff;font-size:.7rem;letter-spacing:.1em;
  pointer-events:none;
  display:flex;align-items:center;gap:.3rem;
}
.top2-ba__hint .material-icons-round{font-size:.9rem}

/* 施工実績グリッド */
.works-filter-chips{
  margin-top:clamp(18px,3.2vw,28px);
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.works-filter-chips .chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.45rem .8rem;
  border-radius:999px;
  border:1px solid #e2e8f0;
  background:#fff;
  color:#0f172a;
  font-weight:700;
  font-size:.88rem;
  line-height:1;
  text-decoration:none;
  box-shadow:0 6px 18px rgba(23,75,63,.06);
}
.works-filter-chips .chip:hover{
  background:#f8fafc;
  border-color:#cbd5e1;
}
.works-filter-chips .chip.is-active{
  background:rgba(23,75,63,.10);
  border-color:rgba(23,75,63,.32);
  color:var(--brand);
}
.works-filter-chips .chip:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}
.top2-works-thumbs{
  margin-top:clamp(24px,4vw,40px);
  display:grid;grid-template-columns:repeat(2,1fr);gap:10px;
}
@media(min-width:720px){.top2-works-thumbs{grid-template-columns:repeat(4,1fr)}}

/* トップページの施工事例：横3枚に最適化 */
@media(min-width:900px){
  .top2-works-thumbs.top2-works-thumbs--3col{
    grid-template-columns:repeat(3,1fr);
  }
}
.top2-works-item{
  display:grid;
  grid-template-rows:auto auto;
  align-content:start;
  gap:8px;
}
.top2-works-thumb{
  aspect-ratio:1/1;overflow:hidden;border-radius:0;display:block;position:relative;
  box-shadow:0 6px 18px rgba(23,75,63,.08);
  width:100%;
}
.top2-works-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.top2-works-thumb:hover img{transform:scale(1.08)}
.top2-works-thumb__tag{
  position:absolute;left:8px;bottom:8px;
  padding:.2rem .55rem;border-radius:999px;background:rgba(10,35,28,.75);color:#fff;
  font-size:.68rem;letter-spacing:.1em;font-weight:700;backdrop-filter:blur(4px);
}
.top2-works-item__title{
  margin:0;
  font-size:.86rem;font-weight:700;color:#475569;line-height:1.35;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  min-height:calc(.86rem * 1.35);
}

/* 施工事例：ポップアップ（写真アプリ風） */
.works-modal{position:fixed;inset:0;z-index:100;display:none}
.works-modal.is-open{display:block}
.works-modal__backdrop{position:absolute;inset:0;background:rgba(2,6,23,.82)}
.works-modal__panel{
  position:absolute;inset:0;
  color:#fff;
}
.works-modal__close{
  position:absolute;top:12px;right:12px;z-index:3;
  width:44px;height:44px;border-radius:999px;
  border:1px solid rgba(255,255,255,.42);
  background:rgba(2,6,23,.58);color:#fff;
  font-size:28px;line-height:1;cursor:pointer;
  backdrop-filter:blur(10px);
  box-shadow:0 10px 24px rgba(0,0,0,.35),0 0 0 2px rgba(2,6,23,.2);
  text-shadow:0 2px 10px rgba(0,0,0,.6);
}
.works-modal__media{position:absolute;inset:0}
.works-modal__rail{
  height:100%;
  display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}
.works-modal__slide{
  flex:0 0 100%;scroll-snap-align:center;
  display:grid;place-items:center;
  height:100%;
}
.works-modal__slide img{
  width:100%;height:100%;
  object-fit:contain;
}
.works-modal__overlay{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  display:flex;flex-direction:column;gap:6px;
  padding:2.5rem 14px max(10px, env(safe-area-inset-bottom));
  background:linear-gradient(180deg,rgba(2,6,23,0) 0%,rgba(2,6,23,.22) 50%,rgba(2,6,23,.68) 100%);
  pointer-events:none;
}
.works-modal__overlay > *{pointer-events:auto}
.works-modal__thumbs{
  position:static;
  display:flex;gap:8px;overflow-x:auto;padding:0 2px;
  -webkit-overflow-scrolling:touch;
}
.works-modal__thumb{
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.08);
  border-radius:10px;overflow:hidden;
  width:48px;height:48px;flex:0 0 auto;
  padding:0;cursor:pointer;
}
.works-modal__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.works-modal__meta{
  padding:0;
  background:none;
}
.works-modal__mark{
  position:absolute;top:12px;left:12px;z-index:2;
  display:flex;align-items:center;gap:8px;
  padding:.32rem .55rem;border-radius:999px;
  background:rgba(2,6,23,.48);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.16);
  pointer-events:none;
}
.works-modal__mark-name{
  font-family:"Noto Serif JP",serif;
  font-size:.72rem;font-weight:700;letter-spacing:.04em;line-height:1;
}
.works-modal__mark-sub{
  font-size:.62rem;letter-spacing:.1em;color:rgba(255,255,255,.78);
  padding-left:8px;border-left:1px solid rgba(255,255,255,.22);
}
.works-modal__kicker{margin:0 0 .15rem;font-size:.72rem;letter-spacing:.08em;color:rgba(255,255,255,.78)}
.works-modal__title{margin:0 0 .2rem;font-family:"Noto Serif JP",serif;font-size:1.05rem;line-height:1.35}
.works-modal__desc{
  margin:0 0 .25rem;color:rgba(255,255,255,.82);font-size:.82rem;line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.works-modal__links{
  display:flex;flex-wrap:wrap;align-items:center;
  gap:0;margin-top:.1rem;
  font-size:.7rem;line-height:1.5;
}
.works-modal__links a{
  color:rgba(255,255,255,.62);
  text-decoration:none;
  font-weight:500;
}
.works-modal__links a:hover{color:rgba(255,255,255,.88);text-decoration:underline}
.works-modal__links a + a::before{
  content:"·";
  margin:0 .4rem;
  color:rgba(255,255,255,.28);
}
.works-direct-bar{
  background:linear-gradient(180deg,#f4f8f6 0%, #fff 100%);
  border-bottom:1px solid rgba(14,58,47,.08);
}
.works-direct-bar__inner{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:16px 24px;
  padding:1rem 0 1.15rem;
}
.works-direct-bar__eyebrow{
  margin:0 0 .2rem;
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--brand,#0e3a2f);font-weight:700;
}
.works-direct-bar__title{
  margin:0 0 .25rem;
  font-family:"Noto Serif JP",serif;
  font-size:1.05rem;line-height:1.4;color:#0f172a;
}
.works-direct-bar__lead{
  margin:0;
  font-size:.88rem;line-height:1.65;color:#64748b;
}
.works-direct-bar__actions{
  display:flex;flex-wrap:wrap;gap:10px;
}
.works-direct-bar__actions .btn{
  padding:.72rem 1.15rem;font-size:.9rem;border-radius:999px;
}
.works-direct-bar__actions .btn--ghost{
  background:#fff;border:1px solid rgba(14,58,47,.18);color:var(--brand,#0e3a2f);
}
.works-direct-bar__actions .btn--ghost:hover{background:#f8faf9}
@media (min-width:768px){
  .works-modal__title{font-size:1.28rem}
  .works-direct-bar__title{font-size:1.15rem}
}
.works-modal-open body{overflow:hidden}

/* =========================
   7. 数字で見る
   ========================= */
.top2-numbers{
  background:linear-gradient(180deg,var(--paper) 0%,#fff 100%);
}
.top2-numbers__grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:14px;
}
@media(min-width:720px){.top2-numbers__grid{grid-template-columns:repeat(4,1fr)}}
.top2-num-card{
  text-align:center;
  padding:1.25rem 1rem 1.35rem;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 2px 12px rgba(23,75,63,.05);
}
.top2-num-card .material-icons-round{
  font-size:1.8rem;color:var(--brand);
}
.top2-num-card__value{
  display:block;
  margin:.2rem 0;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(1.8rem,4vw,2.4rem);font-weight:700;color:var(--brand-2);
  line-height:1;
}
.top2-num-card__value small{font-size:.55em;font-weight:500;margin-left:.15em}
.top2-num-card__label{font-size:.85rem;color:#64748b}

/* =========================
   8. 声（カルーセル）
   ========================= */
.top2-voices{background:#fff}
.top2-voices__scroller{
  display:grid;grid-auto-flow:column;grid-auto-columns:min(85vw,360px);
  gap:16px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:4px 4px 24px;
  scrollbar-width:thin;
}
.top2-voices__scroller::-webkit-scrollbar{height:6px}
.top2-voices__scroller::-webkit-scrollbar-thumb{background:#cfd6d2;border-radius:999px}
.top2-voice{
  scroll-snap-align:start;
  padding:1.2rem 1.25rem 1.3rem;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 2px 12px rgba(23,75,63,.05);
  display:grid;gap:.5rem;
}
.top2-voice__quote{
  font-family:"Noto Serif JP",serif;
  font-size:1rem;line-height:1.8;color:var(--brand-2);
  position:relative;padding-left:1.15rem;
  margin:0;
}
.top2-voice__quote::before{
  content:"\201C";position:absolute;left:-2px;top:-8px;
  font-size:2.5rem;color:var(--brand);line-height:1;
  font-family:"Noto Serif JP",serif;
}
.top2-voice__meta{font-size:.82rem;color:#64748b}
.top2-voice__meta strong{color:#334155}
.top2-voice__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:.15rem}
.top2-voice__tags span{
  background:#eef6f2;color:var(--brand-2);
  font-size:.7rem;padding:.18rem .55rem;border-radius:999px;font-weight:700;
}

/* =========================
   9. 選ばれる理由 + 比較表
   ========================= */
.top2-reasons{background:var(--paper)}
.top2-reasons__grid{
  display:grid;grid-template-columns:1fr;gap:14px;
}
@media(min-width:720px){.top2-reasons__grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.top2-reasons__grid{grid-template-columns:repeat(4,1fr)}}
.top2-reason{
  padding:1.2rem 1.1rem 1.3rem;background:#fff;border:1px solid var(--line);border-radius:18px;
  box-shadow:0 2px 12px rgba(23,75,63,.05);
  display:grid;gap:.5rem;
}
.top2-reason__ico{
  width:46px;height:46px;border-radius:14px;
  background:linear-gradient(135deg,#e8f5ef 0%,#cfe8df 100%);
  display:inline-grid;place-items:center;color:var(--brand-2);
}
.top2-reason__ico .material-icons-round{font-size:1.5rem}
.top2-reason__title{margin:0;font-size:1.02rem;font-weight:800;color:var(--brand-2)}
.top2-reason__text{margin:0;font-size:.88rem;line-height:1.65;color:#4b5563}

.top2-compare{
  margin-top:clamp(24px,4vw,40px);
  overflow:hidden;border-radius:18px;border:1px solid var(--line);background:#fff;
  box-shadow:0 10px 28px rgba(23,75,63,.08);
}
.top2-compare__head{
  display:grid;grid-template-columns:1.2fr 1fr 1fr;
  background:linear-gradient(90deg,#0e2e27 0%,#174b3f 100%);color:#fff;
  font-weight:800;font-size:.88rem;
}
.top2-compare__head div{padding:.85rem 1rem;text-align:center}
.top2-compare__head div:first-child{text-align:left}
.top2-compare__row{display:grid;grid-template-columns:1.2fr 1fr 1fr;border-top:1px solid #eef2ef}
.top2-compare__row:first-of-type{border-top:0}
.top2-compare__row > div{padding:.85rem 1rem;font-size:.9rem;text-align:center;line-height:1.5;min-height:58px;display:flex;align-items:center;justify-content:center}
.top2-compare__row > div:first-child{justify-content:flex-start;text-align:left;font-weight:700;color:var(--brand-2)}
.top2-compare__row .yes{color:var(--brand-2);font-weight:800}
.top2-compare__row .no{color:#94a3b8}
.top2-compare__row .yes .material-icons-round{color:var(--brand)}
.top2-compare__row .no .material-icons-round{color:#cbd5e1}
.top2-compare__row--us{background:#f5fbf8}
.top2-compare__note{font-size:.78rem;color:#64748b;margin:.6rem 0 0;text-align:right}

/* =========================
   10. フロー（タイムライン）
   ========================= */
.top2-flow{background:#fff}
.top2-flow__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(18px,3.2vw,28px);
  align-items:start;
}
@media(min-width:980px){
  .top2-flow__grid{grid-template-columns:1.2fr .8fr}
}
.top2-flow__side{
  position:relative;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:0 2px 14px rgba(23,75,63,.06);
  background:#fff;
}
.top2-flow__side img{
  width:100%;
  height:auto;
  display:block;
}
.top2-timeline{
  position:relative;
  display:grid;grid-template-columns:1fr;gap:18px;
  padding:10px 0 4px;
}
.top2-timeline::before{
  content:"";
  position:absolute;left:22px;top:0;bottom:0;width:2px;
  background:linear-gradient(180deg,var(--brand) 0%,#bfe1d6 100%);
}
.top2-tl{
  position:relative;padding:.2rem 0 .2rem 60px;
}
.top2-tl__num{
  position:absolute;left:0;top:0;
  width:46px;height:46px;border-radius:50%;
  background:#fff;border:2px solid var(--brand);color:var(--brand-2);
  display:inline-grid;place-items:center;font-weight:800;font-size:1.05rem;
  box-shadow:0 4px 12px rgba(0,196,196,.25);
  font-family:"Noto Serif JP",serif;
}
.top2-tl__title{margin:0 0 .2rem;font-family:"Noto Serif JP",serif;font-size:1.1rem;font-weight:700;color:var(--brand-2)}
.top2-tl__text{margin:0;font-size:.9rem;line-height:1.7;color:#4b5563}
.top2-tl__eta{
  display:inline-block;margin-top:.25rem;font-size:.72rem;font-weight:800;letter-spacing:.1em;
  padding:.15rem .55rem;border-radius:999px;background:#eef6f2;color:var(--brand-2);
}

/* =========================
   11. 価格目安
   ========================= */
.top2-price{background:var(--paper)}
.top2-price__grid{
  display:grid;grid-template-columns:1fr;gap:12px;
}
@media(min-width:720px){.top2-price__grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.top2-price__grid{grid-template-columns:repeat(4,1fr)}}
.top2-price-card{
  padding:1.1rem 1.15rem 1.2rem;
  background:#fff;border:1px solid var(--line);border-radius:16px;
  box-shadow:0 2px 12px rgba(23,75,63,.05);
}
.top2-price-card h3{margin:0 0 .3rem;font-size:1rem;font-weight:800;color:var(--brand-2)}
.top2-price-card__value{
  font-family:"Noto Serif JP",serif;font-size:1.3rem;font-weight:700;color:#0e2e27;
}
.top2-price-card__value small{font-size:.7em;font-weight:500;color:#64748b;margin-left:.25em}
.top2-price-card__note{margin:.25rem 0 0;font-size:.78rem;color:#64748b;line-height:1.55}

/* =========================
   12. FAQ
   ========================= */
.top2-faq{background:#fff}
.top2-faq__list{max-width:800px;margin:0 auto}
.top2-faq__list details{
  border-bottom:1px solid var(--line);
  padding:.2rem 0;
}
.top2-faq__list summary{
  position:relative;
  list-style:none;padding:1rem 2.2rem 1rem 2.4rem;
  font-weight:700;color:var(--brand-2);cursor:pointer;font-size:.98rem;
}
.top2-faq__list summary::-webkit-details-marker{display:none}
.top2-faq__list summary::before{
  content:"Q";
  position:absolute;left:.3rem;top:.9rem;
  width:1.55rem;height:1.55rem;border-radius:50%;
  background:var(--brand);color:#fff;
  display:inline-grid;place-items:center;
  font-size:.78rem;font-weight:800;
  font-family:"Noto Sans JP",system-ui,sans-serif;
}
.top2-faq__list summary::after{
  content:"add";font-family:"Material Icons Round";
  position:absolute;right:.3rem;top:.9rem;font-size:1.3rem;color:var(--brand-2);
  transition:transform .2s ease;
}
.top2-faq__list details[open] summary::after{content:"remove"}
.top2-faq__list details > p{
  margin:0 0 1rem 2.4rem;padding-right:2rem;
  font-size:.9rem;line-height:1.75;color:#4b5563;
}

/* =========================
   13. ニュース + ブログ + SNS
   ========================= */
.top2-news{background:var(--paper)}
.top2-news__grid{
  display:grid;grid-template-columns:1fr;gap:18px;
}
@media(min-width:900px){.top2-news__grid{grid-template-columns:1.2fr .8fr}}
.top2-news-list{list-style:none;margin:0;padding:0}
.top2-news-list li{
  display:grid;grid-template-columns:110px 1fr;gap:.6rem;
  padding:.85rem 0;border-bottom:1px dashed #d8d4c8;
  font-size:.9rem;
}
.top2-news-list time{font-size:.78rem;font-weight:700;color:var(--brand-2);letter-spacing:.04em}
.top2-news-list a{color:#1f2937;text-decoration:none;border-bottom:1px dotted transparent}
.top2-news-list a:hover{color:var(--brand-2);border-bottom-color:var(--brand-2)}

.top2-side-card{
  padding:1rem 1rem 1.1rem;
  background:#fff;border:1px solid var(--line);border-radius:16px;
  box-shadow:0 2px 12px rgba(23,75,63,.05);
}
.top2-side-card + .top2-side-card{margin-top:12px}
.top2-side-card h3{margin:0 0 .5rem;font-size:.92rem;font-weight:800;color:var(--brand-2)}
.top2-side-card__link{
  display:flex;align-items:center;gap:.5rem;
  color:#334155;font-size:.88rem;text-decoration:none;
  padding:.4rem 0;
}
.top2-side-card__link:hover{color:var(--brand-2)}
.top2-side-card__link .material-icons-round{color:var(--brand);font-size:1.15rem}

/* =========================
   14. 会社情報
   ========================= */
.top2-company{background:#fff}
.top2-company__grid{
  display:grid;grid-template-columns:1fr;gap:16px;
}
@media(min-width:900px){.top2-company__grid{grid-template-columns:1.05fr 1fr}}
.top2-company__table{
  width:100%;border-collapse:collapse;background:#fff;
  border:1px solid var(--line);border-radius:16px;overflow:hidden;
}
.top2-company__table td{padding:.75rem 1rem;border-top:1px solid #eef2ef;font-size:.92rem;vertical-align:top}
.top2-company__table tr:first-child td{border-top:0}
.top2-company__table td:first-child{
  width:7em;background:#f4f8f6;color:var(--brand-2);font-weight:700;font-size:.85rem;
}
.top2-company__map{
  border-radius:16px;overflow:hidden;border:1px solid var(--line);
  box-shadow:0 10px 24px rgba(23,75,63,.08);
  aspect-ratio:4/3;min-height:320px;
}
.top2-company__map iframe{width:100%;height:100%;border:0;display:block}

/* =========================
   15. 最終 CTA (大きく)
   ========================= */
.top2-final{
  background:
    radial-gradient(80% 60% at 80% 10%,rgba(0,196,196,.18),transparent 60%),
    linear-gradient(180deg,#0e2e27 0%,#174b3f 100%);
  color:#fff;
}
.top2-final__inner{text-align:center;max-width:780px;margin:0 auto}
.top2-final__eyebrow{
  display:inline-block;margin:0 0 .35rem;
  font-size:.82rem;letter-spacing:.18em;color:var(--accent,#aaeeee);font-weight:800;
}
.top2-final__title{
  margin:.1rem 0 .5rem;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(1.6rem,4vw,2.4rem);font-weight:700;line-height:1.3;
}
.top2-final__lead{margin:0 0 1.4rem;font-size:1rem;line-height:1.8;color:#e1ece8}
.top2-final .top2-final__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.top2-final .top2-final__actions .btn{padding:1rem 1.6rem;font-size:1.02rem}
.top2-final .top2-final__actions .btn--primary{background:var(--brand);color:#0e2e27}
.top2-final .top2-final__actions .btn--primary:hover{background:#fff}
.top2-final .top2-final__actions .btn--ghost{background:transparent;border-color:#fff;color:#fff}
.top2-final .top2-final__actions .btn--ghost:hover{background:rgba(255,255,255,.1)}
.top2-final__tel{
  margin-top:1rem;font-family:"Noto Serif JP",serif;
  font-size:clamp(1.3rem,3vw,1.7rem);color:#fff;letter-spacing:.04em;
  display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;
}
.top2-final__tel .material-icons-round{color:var(--accent,#aaeeee)}
.top2-final__tel-hours{display:block;font-size:.78rem;color:#bbd2ca;font-family:"Noto Sans JP",sans-serif;letter-spacing:.05em;margin-top:.15rem}

/* Section ヘッダー（共通） */
.top2-sec-head{text-align:center;margin-bottom:clamp(22px,3.5vw,38px)}
.top2-sec-head .tag{margin-bottom:.4rem}
.top2-sec-head h2{
  margin:.25rem 0 .35rem;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(1.4rem,3vw,2rem);font-weight:700;line-height:1.3;
  color:var(--brand-2);
}
.top2-sec-head p{margin:.2rem auto 0;max-width:44ch;font-size:.95rem;line-height:1.75;color:#4b5563}

/* ボディ下部スペース（sticky CTAと重ならないように） */
@media(max-width:899px){
  body:has(.top2-sticky-cta){padding-bottom:60px}
}

/* ==========================================================================
   404 Not Found
   ========================================================================== */
.page-404 .notfound-hero{
  position:relative;
  overflow:hidden;
  padding:clamp(48px,10vw,96px) 0 clamp(56px,12vw,100px);
  background:
    radial-gradient(ellipse 80% 60% at 50% -10%, rgba(0,196,196,.14), transparent 55%),
    linear-gradient(180deg, #eef6f3 0%, var(--bg) 100%);
}
.page-404 .notfound-hero__inner{
  position:relative;
  text-align:center;
}
.page-404 .notfound-hero__code{
  margin:0 0 .5rem;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:clamp(4.5rem,18vw,8.5rem);
  font-weight:700;
  line-height:1;
  letter-spacing:-.04em;
  color:rgba(23,75,63,.1);
  user-select:none;
  pointer-events:none;
}
.page-404 .notfound-hero__content{
  position:relative;
  max-width:520px;
  margin-inline:auto;
}
.page-404 .notfound-hero__title{
  margin:0 0 .85rem;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(1.45rem,3.5vw,1.85rem);
  font-weight:700;
  line-height:1.4;
  color:var(--brand-2);
}
.page-404 .notfound-hero__lead{
  margin:0 0 1.35rem;
  font-size:clamp(.92rem,2.2vw,1rem);
  line-height:1.85;
  color:#374151;
}
.page-404 .notfound-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  justify-content:center;
}
.page-404 .notfound-hero__sub{
  margin:1.1rem 0 0;
  font-size:.88rem;
}
.page-404 .notfound-hero__sub a{
  color:var(--brand);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:.15em;
}
.page-404 .notfound-hero__sub a:hover{color:var(--brand-2)}
