@charset "UTF-8";
/* =========================================================
   おそうじハウス札幌【法人様専用】 main.css
   1. base / 2. layout / 3. header / 4. buttons / 5. hero
   6. sections / 7. cards / 8. price / 9. faq / 10. cta
   11. footer / 12. lower-page parts / 13. responsive
   ========================================================= */

/* ---------- 1. base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--ff);color:var(--text);background:var(--bg);
  font-size:16px;line-height:1.9;letter-spacing:.02em;
  font-feature-settings:"palt";overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--brand-deep);text-decoration:none;transition:color .2s,opacity .2s}
a:hover{color:var(--brand)}
h1,h2,h3,h4{line-height:1.45;margin:0;color:var(--ink);font-weight:900;letter-spacing:.01em}
p{margin:0 0 1.2em}
p:last-child{margin-bottom:0}
ul,ol{margin:0;padding:0}
li{list-style:none}
table{border-collapse:collapse;width:100%}
svg.ico{width:1em;height:1em;flex:none}
::selection{background:var(--brand-light);color:#fff}

/* ---------- 1b. スクロールリビール ----------
   ★この節はコンポーネントより前に置くこと。
     後ろに置くと .reveal.in{transform:none} が各カードの :hover の transform を打ち消す。
   ★.reveal クラスは JS が付与する（＝JS無効時は何も消えない）。 */
.reveal{
  opacity:0;transform:translateY(20px);
  transition:opacity .75s cubic-bezier(.22,.7,.28,1),transform .75s cubic-bezier(.22,.7,.28,1);
  will-change:opacity,transform;
}
.reveal.in{opacity:1;transform:none;will-change:auto}

/* ---------- 2. layout ---------- */
.wrap{width:min(100% - 36px,var(--container));margin-inline:auto}
.wrap--narrow{width:min(100% - 36px,860px);margin-inline:auto}
.sec{padding:78px 0}
.sec--alt{background:var(--bg-alt)}

/* セクション背景写真：写真を敷いた上に濃いベールを重ねて、うっすら質感だけ残す。
   ★ベールを薄くすると本文が読めなくなるので、この不透明度より下げないこと。 */
.has-bg{position:relative;isolation:isolate;overflow:hidden}
.sec-bg{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  z-index:-2;opacity:.38;
  /* ★ぼかしを入れて「写真」ではなく「質感」に落とす。
     入れないと人物の顔が背景に浮き出て本文の邪魔になる（実際に発生した）。
     scale は blur でできる周囲の透明にじみを隠すため。 */
  filter:blur(4px) saturate(.72);transform:scale(1.06);
}
.has-bg::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(255,255,255,.90)}
.sec--alt.has-bg::after{background:rgba(242,249,252,.92)}
.sec--dark.has-bg::after{background:rgba(6,43,58,.92)}
.sec--dark .sec-bg{opacity:.45}
.sec--dark{background:var(--navy);color:#dbeef5}
.sec--dark h2,.sec--dark h3{color:#fff}
.sec--tight{padding:56px 0}

.sechead{text-align:center;margin-bottom:44px;position:relative}
/* 背景に大きな英字を薄く敷く（輪郭線だけ）。セクションの表情を作る主役。 */
.sechead__ghost{
  position:absolute;left:50%;top:-.46em;transform:translateX(-50%);
  font-family:var(--ff-disp);font-weight:900;font-size:clamp(58px,9.4vw,124px);
  line-height:1;letter-spacing:.08em;white-space:nowrap;pointer-events:none;user-select:none;
  color:transparent;-webkit-text-stroke:1.5px rgba(15,169,206,.13);z-index:0;
}
.sec--dark .sechead__ghost{-webkit-text-stroke-color:rgba(140,226,244,.13)}
.sechead__en,.sechead__ja,.sechead__lead{position:relative;z-index:1}
.sechead__en{
  display:block;font-family:var(--ff-disp);font-weight:800;font-size:13px;
  letter-spacing:.22em;color:var(--brand);margin-bottom:10px;text-transform:uppercase;
}
.sec--dark .sechead__en{color:var(--brand-light)}
.sechead__ja{font-size:clamp(22px,4.4vw,33px);position:relative;display:inline-block;padding-bottom:18px}
.sechead__ja::after{
  content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:64px;height:4px;border-radius:4px;background:var(--grad-line);
}
.sechead__ja::before{
  content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:118px;height:4px;border-radius:4px;background:currentColor;opacity:.1;
}
.sechead__lead{margin:20px auto 0;max-width:760px;color:var(--muted);font-size:15px}
.sec--dark .sechead__lead{color:#a9cfdd}
b.mark{
  font-weight:900;background:linear-gradient(transparent 62%,rgba(79,209,233,.55) 62%);
  -webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .1em;
}
.sec--dark b.mark{background:linear-gradient(transparent 62%,rgba(15,169,206,.6) 62%)}

/* ---------- 3. header ---------- */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:900;height:var(--header-h);
  background:rgba(255,255,255,.94);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
/* ★ヘッダーだけ本文より広い枠を使う。ナビ7本＋電話＋CTA＋個人宅導線を1140pxに収めると
     はみ出すため（2026-08-20に実測 1254px 必要）。 */
.site-header .wrap{width:min(100% - 32px,1400px)}
.hdr{display:flex;align-items:center;gap:14px;height:var(--header-h)}
.hdr__logo{display:flex;align-items:center;gap:10px;flex:none;line-height:1.25}
/* ★ロゴは本体サイトと同じワードマーク（350x90）。高さで指定して幅は auto に任せる。 */
.hdr__mark{width:auto;height:30px;flex:none;display:block}
.hdr__sub{
  font-size:10px;font-weight:700;color:var(--brand-deep);letter-spacing:.06em;line-height:1.35;
  padding-left:10px;border-left:1px solid var(--line);white-space:nowrap;
}
.hdr__spacer{flex:1}
/* 個人宅のお客様導線（本体サイトへ）。PCはヘッダー右上、スマホはバーガーの中に出す。 */
.hdr__btoc{
  display:inline-flex;align-items:center;gap:5px;flex:none;
  padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:var(--bg-alt);
  font-size:12px;font-weight:700;color:var(--brand-deep);white-space:nowrap;transition:background .2s,border-color .2s;
}
.hdr__btoc:hover{background:var(--brand-pale);border-color:var(--brand);color:var(--brand-dark)}
.hdr__btoc svg{width:12px;height:12px;flex:none}
/* ★`.nav a{display:block}` があとに来るので、セレクタを .nav a.nav__btoc にしないと勝てない。 */
.nav a.nav__btoc{display:none}
.nav{display:flex;align-items:center}
.nav a{
  position:relative;display:block;padding:10px 10px;font-size:13.5px;font-weight:700;
  color:var(--ink);white-space:nowrap;
}
.nav a::after{
  content:"";position:absolute;left:10px;right:10px;bottom:4px;height:2px;
  background:var(--grad-line);transform:scaleX(0);transform-origin:left;transition:transform .25s;
}
.nav a:hover::after{transform:scaleX(1)}
.hdr__cta{display:flex;align-items:center;gap:8px;flex:none}
.hdr__tel{
  display:flex;flex-direction:column;line-height:1.15;color:var(--ink);
  font-family:var(--ff-disp);font-weight:900;font-size:19px;letter-spacing:.01em;
}
.hdr__tel small{font-family:var(--ff);font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.04em}
.burger{display:none;width:44px;height:44px;border:0;background:transparent;padding:0;cursor:pointer}
.burger span{display:block;height:2px;margin:6px auto;width:24px;background:var(--ink);transition:.3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
body{padding-top:var(--header-h)}

/* ---------- 4. buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 26px;border-radius:999px;font-weight:900;font-size:15px;
  text-align:center;border:2px solid transparent;transition:transform .2s,box-shadow .2s,background .2s;
}
.btn:hover{transform:translateY(-2px)}
.btn--accent{background:var(--grad-accent);color:#fff;box-shadow:var(--shadow-accent)}
.btn--accent:hover{color:#fff}
.btn--brand{background:var(--grad-brand);color:#fff;box-shadow:var(--shadow-brand)}
.btn--brand:hover{color:#fff}
.btn--ghost{background:rgba(255,255,255,.10);color:#fff;border-color:rgba(255,255,255,.6)}
.btn--ghost:hover{background:rgba(255,255,255,.2);color:#fff}
.btn--line{background:#fff;color:var(--brand-deep);border-color:var(--brand)}
.btn--lg{padding:18px 34px;font-size:16.5px}
.btn--tel{
  flex-direction:column;gap:0;background:#fff;color:var(--ink);
  border-color:var(--brand);padding:10px 28px;box-shadow:var(--shadow-soft);
}
.btn--tel:hover{color:var(--ink)}
.btn__tel{font-family:var(--ff-disp);font-weight:900;font-size:24px;line-height:1.15;color:var(--brand-deep)}
.btn__sub{font-size:11px;font-weight:700;color:var(--muted);line-height:1.5}

/* ---------- 5. hero（メイン画像・支給／文字焼き込み済み） ---------- */
/* ★トリミングしない。どの画面幅でも画像を全部見せる。 */
.hero{display:block;background:#eaf4fd;line-height:0}
.hero picture{display:block}
.hero__img{width:100%;height:auto;display:block;aspect-ratio:1672/941}
@media (max-width:767px){
  .hero__img{aspect-ratio:1086/1448}
}

/* ---------- 5b. H1 + CTA（メイン画像・料金帯の下） ---------- */
.intro{
  position:relative;overflow:hidden;background:#fff;padding:62px 0 66px;isolation:isolate;
  border-top:3px solid transparent;border-image:var(--grad-line) 1;
}
.intro::before{
  content:"";position:absolute;inset:-46% auto auto -14%;width:min(66vw,720px);aspect-ratio:1;
  background:radial-gradient(circle,rgba(79,209,233,.30),transparent 66%);z-index:-1;
}
.intro::after{
  content:"";position:absolute;inset:auto -16% -52% auto;width:min(70vw,780px);aspect-ratio:1;
  background:radial-gradient(circle,rgba(1,96,188,.16),transparent 66%);z-index:-1;
}
.intro__inner{text-align:center;position:relative}
.intro__label{
  display:inline-flex;align-items:center;gap:10px;font-size:12.5px;font-weight:800;
  letter-spacing:.1em;color:var(--brand-deep);margin-bottom:20px;
}
.intro__label::before,.intro__label::after{
  content:"";width:34px;height:2px;border-radius:2px;background:var(--grad-line);
}
.intro__h1{
  font-size:clamp(23px,3.9vw,40px);line-height:1.5;letter-spacing:.005em;margin-bottom:24px;
}
.intro__h1 b{
  position:relative;font-weight:900;
  background:linear-gradient(120deg,#0a7c99,#0fa9ce 42%,#0160bc);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.intro__h1 b::after{
  content:"";position:absolute;left:0;right:0;bottom:.06em;height:.16em;border-radius:.1em;
  background:linear-gradient(90deg,rgba(79,209,233,.42),rgba(1,96,188,.24));z-index:-1;
}
.intro__lead{
  font-size:clamp(14.5px,1.75vw,16.5px);color:var(--muted);max-width:780px;margin:0 auto 34px;text-align:left;
}
/* ★3つのボタンは高さを揃える。揃えないと電話ボタンだけ背が高くて不格好になる。 */
.intro__btns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;align-items:stretch}
.intro__btns .btn{min-height:80px}
.intro__btns .btn--tel{min-width:248px}
.intro__btns .btn--accent{min-width:300px;font-size:17px}
.intro__btns .btn--line{min-width:184px;font-size:16px}
.intro__points{display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:center;margin-top:30px}
.intro__points li{
  display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:800;color:var(--ink);
}
.intro__points .ico{color:var(--brand);font-size:16px}
.intro__note{margin-top:26px;font-size:12.5px;color:var(--muted)}
.intro__note a{text-decoration:underline}

/* ヒーロー下のスペック帯 */
.spec{background:#fff;border-bottom:1px solid var(--line)}
.spec__list{display:grid;grid-template-columns:repeat(4,1fr)}
.spec__list li{
  padding:20px 12px;text-align:center;border-left:1px solid var(--line);
}
.spec__list li:first-child{border-left:0}
.spec__k{display:block;font-size:11.5px;font-weight:800;color:var(--brand-deep);letter-spacing:.08em;margin-bottom:4px}
.spec__v{display:block;font-family:var(--ff-disp);font-weight:900;font-size:clamp(17px,2.6vw,23px);color:var(--ink);line-height:1.3}
.spec__v small{font-family:var(--ff);font-size:12px;font-weight:700;color:var(--muted);margin-left:2px}
.spec__note{
  border-top:1px solid var(--line);padding:12px 4px 16px;margin:0;
  font-size:12.5px;color:var(--muted);text-align:center;line-height:1.7;
}

/* ---------- 5c. どさんこワイド出演 ---------- */
.tv__photos{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:44px}
.tv__photo{
  margin:0;border-radius:var(--radius-lg);overflow:hidden;background:#fff;
  box-shadow:var(--shadow);border:5px solid #fff;transition:transform .3s;
}
.tv__photo:nth-child(2){transform:translateY(-14px)}
.tv__photo:hover{transform:translateY(-18px)}
.tv__photo:nth-child(2):hover{transform:translateY(-28px)}
.tv__photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/9;display:block}

.tv__movie{max-width:900px;margin:0 auto;text-align:center}
/* ★バッジは枠の上に重ねない。重ねるとYouTube側のタイトル帯とぶつかる。 */
.tv__badge{
  display:inline-block;margin-bottom:14px;
  font-family:var(--ff-disp);font-weight:900;font-size:12px;letter-spacing:.18em;
  color:#fff;background:var(--grad-accent);padding:7px 22px;border-radius:999px;
  box-shadow:var(--shadow-accent);
}
.tv__frame{
  position:relative;aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;
  background:#04212d;padding:0;box-shadow:var(--shadow);
  border:6px solid #fff;outline:1px solid var(--line);
}
.tv__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.tv__cap{margin-top:16px;text-align:center;font-size:13.5px;color:var(--muted)}

/* ---------- 5d. 個人のお客様バナー ---------- */
.btocb__link{
  display:block;max-width:760px;margin:0 auto;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-soft);transition:transform .25s,box-shadow .25s;
}
.btocb__link:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.btocb__link img{width:100%;height:auto;display:block}

/* ---------- 6. sections ---------- */
/* 悩み */
.trouble{position:relative}
.trouble__list{display:grid;gap:18px;grid-template-columns:repeat(2,1fr)}
.trouble__item{
  background:#fff;border-radius:var(--radius-lg);padding:26px 26px 26px 24px;border:1px solid var(--line);
  box-shadow:var(--shadow-soft);position:relative;display:flex;gap:20px;align-items:flex-start;
}
.trouble__ph{
  margin:0;width:108px;height:108px;flex:none;border-radius:50%;overflow:hidden;position:relative;
  border:4px solid #fff;box-shadow:0 10px 24px -8px rgba(7,41,58,.35);
}
.trouble__ph::after{
  content:"";position:absolute;inset:0;border-radius:50%;
  box-shadow:inset 0 0 0 2px rgba(15,169,206,.35);
}
.trouble__ph img{width:100%;height:100%;object-fit:cover;display:block}
.trouble__body{flex:1;min-width:0}
.trouble__q{font-size:16.5px;margin-bottom:10px;position:relative;padding-left:26px}
.trouble__q::before{
  content:"？";position:absolute;left:0;top:.1em;width:20px;height:20px;border-radius:50%;
  display:grid;place-items:center;font-family:var(--ff-disp);font-weight:900;font-size:12px;
  color:#fff;background:var(--grad-brand);
}
.trouble__a{font-size:14.5px;color:var(--muted);margin:0}
.trouble__bridge{
  margin-top:44px;text-align:center;font-size:clamp(17px,3vw,24px);font-weight:900;color:var(--ink);
}
.trouble__bridge span{display:inline-block;padding-top:26px;position:relative}
.trouble__bridge span::before{
  content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);
  border-left:16px solid transparent;border-right:16px solid transparent;border-top:14px solid var(--brand-light);
}

/* サービス */
.svc__grid{display:grid;gap:22px;grid-template-columns:repeat(3,1fr)}
.svc__card{
  display:flex;flex-direction:column;background:#fff;border-radius:var(--radius-lg);
  border:1px solid var(--line);box-shadow:var(--shadow-soft);
  position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s;color:var(--text);
}
.svc__card:hover{transform:translateY(-6px);box-shadow:var(--shadow);color:var(--text)}
.svc__ph{display:block;position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--brand-pale)}
.svc__ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.svc__card:hover .svc__ph img{transform:scale(1.05)}
/* ★アイコンバッジは .svc__body を基準に置く（.svc__ph は overflow:hidden のため、
   その中に入れると画像からはみ出す部分が切り落とされてアイコンが欠けて見える） */
.svc__ico{
  position:absolute;left:16px;top:-26px;width:52px;height:52px;border-radius:16px;
  display:grid;place-items:center;font-size:25px;color:#fff;background:var(--grad-brand);
  box-shadow:var(--shadow-brand);border:3px solid #fff;z-index:2;
}
.svc__body{display:block;padding:36px 24px 26px;flex:1;display:flex;flex-direction:column;position:relative}
.svc__title{font-size:18px;margin-bottom:10px}
.svc__lead{display:block;font-size:14.5px;color:var(--muted);margin-bottom:18px;flex:1}
.svc__more{font-size:13.5px;font-weight:800;color:var(--brand-deep);display:inline-flex;align-items:center;gap:6px}
.svc__more::after{content:"→";transition:transform .2s}
.svc__card:hover .svc__more::after{transform:translateX(4px)}
.svc__new{
  position:absolute;top:16px;right:-32px;transform:rotate(38deg);width:124px;text-align:center;z-index:2;
  background:var(--grad-accent);color:#fff;font-size:11px;font-weight:900;letter-spacing:.08em;padding:5px 0;
  box-shadow:0 6px 16px -6px rgba(0,0,0,.45);
}

/* 選ばれる理由 */
.reason__grid{display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}
.reason__card{
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);
  border-radius:var(--radius-lg);padding:28px 26px;position:relative;
}
.reason__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.reason__ico{
  width:54px;height:54px;border-radius:17px;display:grid;place-items:center;font-size:27px;
  color:#062b3a;background:linear-gradient(135deg,#8ff0ff,#4fd1e9 60%,#2ad0c0);
  box-shadow:0 12px 26px -10px rgba(79,209,233,.7);
}
.reason__no{
  font-family:var(--ff-disp);font-weight:900;font-size:38px;line-height:1;
  color:rgba(255,255,255,.16);letter-spacing:.02em;
}
.reason__title{font-size:18px;color:#fff;margin-bottom:12px}
.reason__body{font-size:14px;color:#b9dae6;margin:0}

/* ご依頼元の業種 */
.client__grid{display:grid;gap:18px;grid-template-columns:repeat(3,1fr)}
.client__item{
  background:#fff;border-radius:var(--radius-lg);padding:26px 24px 24px;
  border:1px solid var(--line);box-shadow:var(--shadow-soft);
  position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s;
}
.client__item::before{
  content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--grad-line);
}
.client__item::after{
  content:"";position:absolute;right:-40px;top:-40px;width:120px;height:120px;border-radius:50%;
  background:radial-gradient(circle,rgba(79,209,233,.16),transparent 70%);
}
.client__item:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.client__no{
  position:absolute;right:18px;top:14px;font-family:var(--ff-disp);font-weight:900;
  font-size:34px;line-height:1;color:var(--brand-pale);z-index:1;
}
.client__ico{
  width:50px;height:50px;border-radius:15px;display:grid;place-items:center;font-size:25px;
  color:var(--brand-deep);background:var(--brand-pale);margin-bottom:14px;position:relative;z-index:1;
}
.client__title{font-size:16.5px;margin-bottom:10px;position:relative;z-index:1}
.client__body{font-size:14px;color:var(--muted);margin:0;position:relative;z-index:1}
.client__note{margin-top:30px;text-align:center}
.client__note span{
  display:inline-block;font-size:15px;font-weight:800;color:var(--ink);
  background:#fff;border:2px dashed var(--brand);border-radius:999px;padding:12px 30px;
}

/* 流れ */
.flow__list{counter-reset:flow;display:grid;gap:16px}
.flow__item{
  counter-increment:flow;background:#fff;border-radius:var(--radius-lg);
  padding:24px 24px 24px 92px;position:relative;border:1px solid var(--line);box-shadow:var(--shadow-soft);
  display:flex;align-items:center;gap:24px;
}
.flow__text{flex:1;min-width:0}
.flow__ph{
  margin:0;flex:none;width:210px;aspect-ratio:4/3;border-radius:14px;overflow:hidden;
  background:var(--brand-pale);box-shadow:0 10px 24px -12px rgba(7,41,58,.4);
}
.flow__ph img{width:100%;height:100%;object-fit:cover;display:block}
.flow__item::before{
  content:counter(flow,decimal-leading-zero);position:absolute;left:26px;top:24px;
  width:44px;height:44px;border-radius:14px;display:grid;place-items:center;
  font-family:var(--ff-disp);font-weight:900;font-size:16px;color:#fff;
  background:var(--grad-brand);box-shadow:var(--shadow-brand);
}
.flow__title{font-size:17px;margin-bottom:8px}
.flow__body{font-size:14.5px;color:var(--muted);margin:0}

/* エリア */
.area__box{
  background:#fff;border-radius:var(--radius-lg);padding:34px 32px;border:1px solid var(--line);
  box-shadow:var(--shadow-soft);text-align:center;
}
.area__map{
  margin:0 auto 26px;max-width:320px;border-radius:20px;overflow:hidden;
  border:5px solid #fff;box-shadow:var(--shadow-soft);outline:1px solid var(--line);
}
.area__map img{width:100%;height:auto;display:block}
.area__label{font-size:13px;font-weight:800;letter-spacing:.1em;color:var(--brand-deep);margin-bottom:14px}
.area__wards{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:26px}
.area__wards li{
  font-size:14.5px;font-weight:800;color:var(--ink);background:var(--brand-pale);
  padding:8px 18px;border-radius:999px;
}
.area__near{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.area__near li{font-size:13px;font-weight:700;color:var(--muted);border:1px solid var(--line);padding:5px 14px;border-radius:999px}
.area__note{margin-top:22px;font-size:13.5px;color:var(--muted)}

/* ---------- 7. cards（実績・声） ---------- */
.pcards{display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}
.pcard{
  display:flex;flex-direction:column;background:#fff;border-radius:var(--radius-lg);overflow:hidden;
  border:1px solid var(--line);box-shadow:var(--shadow-soft);transition:transform .25s,box-shadow .25s;color:var(--text);
}
.pcard:hover{transform:translateY(-4px);box-shadow:var(--shadow);color:var(--text)}
.pcard__img{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--brand-pale)}
.pcard__img img{width:100%;height:100%;object-fit:cover}
.pcard__noimg{display:grid;place-items:center;height:100%;font-size:13px;font-weight:800;color:var(--brand-deep)}
.pcard__body{display:block;padding:20px 22px 22px}
.pcard__tag{
  display:inline-block;font-size:11.5px;font-weight:800;color:#fff;background:var(--grad-brand);
  padding:3px 12px;border-radius:999px;margin-bottom:10px;
}
.pcard__title{display:block;font-size:16px;font-weight:900;color:var(--ink);line-height:1.5}
.pcard__meta{display:block;margin-top:8px;font-size:13px;color:var(--muted)}
.prep{
  background:#fff;border:1px dashed var(--brand);border-radius:var(--radius-lg);
  padding:34px 28px;text-align:center;
}
.prep__title{font-size:17px;font-weight:900;color:var(--ink);margin-bottom:8px}
.prep__body{font-size:14px;color:var(--muted);margin:0}
.sec__more{text-align:center;margin-top:32px}

/* ---------- 8. price ---------- */
.ptable{margin-bottom:38px}
.ptable:last-child{margin-bottom:0}
.ptable__title{
  font-size:19px;margin-bottom:10px;padding-left:14px;border-left:5px solid var(--brand);line-height:1.3;
}
.ptable__note{font-size:13.5px;color:var(--muted);margin-bottom:14px}
.ptable__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius);border:1px solid var(--line);background:#fff}
.ptable table{min-width:420px;font-size:14.5px}
.ptable thead th{
  background:var(--grad-brand);color:#fff;font-weight:800;font-size:13.5px;
  padding:13px 16px;text-align:center;white-space:nowrap;
}
.ptable tbody th{
  text-align:left;font-weight:800;color:var(--ink);background:var(--bg-alt);
  padding:13px 16px;white-space:nowrap;border-top:1px solid var(--line);
}
.ptable tbody td{
  padding:13px 16px;text-align:center;border-top:1px solid var(--line);
  font-family:var(--ff-disp);font-weight:800;color:var(--brand-dark);white-space:nowrap;
}
.ptable__foot{margin-top:12px;font-size:13px;color:var(--muted)}
/* ★会社概要のような「項目｜内容」の2列表は横スクロールさせない（2026-08-20 クライアント指摘）。
   料金表と違って中身が長い文章なので、td の white-space:nowrap が横幅を押し広げていた。 */
.ptable--stack table{min-width:0;width:100%}
.ptable--stack .ptable__scroll{overflow-x:visible}
.ptable--stack tbody th{width:1%}
.ptable--stack tbody td{
  text-align:left;white-space:normal;font-family:var(--ff);font-weight:600;
  color:var(--text);line-height:1.9;
}
@media (max-width:767px){
  .ptable--stack table,.ptable--stack tbody,.ptable--stack tr,.ptable--stack th,.ptable--stack td{
    display:block;width:auto;
  }
  /* ★width/min-width/background を明示的に戻さないと、上の .ptable--stack tbody th と
       .ptable tbody th{min-width:120px} が残って「見出しだけ色付きの箱」になる。 */
  .ptable--stack tbody th{
    width:auto;min-width:0;background:transparent;
    padding:14px 16px 4px;border-top:1px solid var(--line);font-size:13px;color:var(--brand-deep);
  }
  .ptable--stack tbody td{padding:0 16px 14px;border-top:0}
  .ptable--stack tbody tr:first-child th{border-top:0}
}
/* 全サービス共通のキャンセル規定。料金表とは別の約束事なので、線で区切って置く。 */
.cancelbox{margin-top:34px;padding-top:30px;border-top:1px dashed var(--line)}
.price__tax{
  display:inline-block;font-size:12.5px;font-weight:800;color:var(--brand-deep);
  background:var(--brand-pale);padding:5px 16px;border-radius:999px;margin-bottom:26px;
}

/* ---------- 9. faq ---------- */
.faq__list{display:grid;gap:12px}
.faq__item{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft)}
.faq__q{
  width:100%;display:flex;align-items:flex-start;gap:12px;text-align:left;cursor:pointer;
  background:transparent;border:0;padding:20px 54px 20px 22px;font:inherit;font-weight:900;
  color:var(--ink);font-size:15.5px;position:relative;line-height:1.6;
}
.faq__q::before{
  content:"Q";font-family:var(--ff-disp);color:var(--brand);font-size:17px;flex:none;line-height:1.5;
}
.faq__q::after{
  content:"";position:absolute;right:24px;top:26px;width:11px;height:11px;
  border-right:2.5px solid var(--brand);border-bottom:2.5px solid var(--brand);
  transform:rotate(45deg);transition:transform .25s;
}
.faq__item.is-open .faq__q::after{transform:rotate(-135deg)}
.faq__a{
  display:none;padding:0 22px 22px 52px;font-size:14.5px;color:var(--muted);
  border-top:1px solid var(--line);padding-top:18px;margin-top:-1px;
}
.faq__item.is-open .faq__a{display:block}

/* ---------- 10. cta ---------- */
.cta{background:var(--grad-hero);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.cta::before{
  content:"";position:absolute;inset:auto auto -40% -8%;width:min(70vw,700px);aspect-ratio:1;
  background:radial-gradient(circle,rgba(42,208,192,.4),transparent 62%);z-index:-1;
}
.cta__inner{padding:70px 0;text-align:center}
.cta__en{font-family:var(--ff-disp);font-weight:800;font-size:13px;letter-spacing:.24em;color:var(--brand-light);margin-bottom:10px}
.cta__title{color:#fff;font-size:clamp(22px,4.4vw,34px);margin-bottom:16px}
.cta__title b{
  background:linear-gradient(120deg,#ffd98a,#ffc247);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.cta__lead{color:#cdeaf5;font-size:15px;margin-bottom:30px}
.cta__btns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;align-items:center}
.cta__points{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:center;margin-top:30px}
.cta__points li{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700;color:#bfe6f2}
.cta__points .ico{color:var(--brand-light);font-size:16px}

/* ---------- 10b. スタッフ紹介 ---------- */
.staff__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.staff__card{
  background:#fff;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);
  box-shadow:var(--shadow-soft);transition:transform .25s,box-shadow .25s;
}
.staff__card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.staff__ph{margin:0;position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--brand-pale)}
.staff__ph img{width:100%;height:100%;object-fit:cover;display:block}
.staff__role{
  position:absolute;left:12px;top:12px;font-size:11.5px;font-weight:800;letter-spacing:.04em;
  color:#fff;background:var(--grad-brand);padding:4px 13px;border-radius:999px;
  box-shadow:var(--shadow-brand);
}
.staff__body{padding:18px 20px 22px}
.staff__name{font-size:18px;line-height:1.4;margin-bottom:4px}
.staff__kana{font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:.06em;margin:0 0 14px}
.staff__spec{margin:0 0 14px;font-size:13px}
.staff__spec > div{display:flex;gap:10px;padding:5px 0;border-top:1px dashed var(--line)}
.staff__spec > div:first-child{border-top:0;padding-top:0}
.staff__spec dt{flex:none;width:34px;font-weight:800;color:var(--brand-deep)}
.staff__spec dd{margin:0;color:var(--muted)}
.staff__word{
  margin:0;font-size:13.5px;line-height:1.75;color:var(--ink);font-weight:700;
  background:var(--bg-alt);border-radius:10px;padding:12px 14px;position:relative;
}
.staff__word::before{
  content:"";position:absolute;left:20px;top:-7px;border-left:7px solid transparent;
  border-right:7px solid transparent;border-bottom:7px solid var(--bg-alt);
}

/* ---------- 11. footer ---------- */
.site-footer{background:#04212d;color:#9dc4d2;padding:56px 0 0;font-size:14px}
.foot__top{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:34px;padding-bottom:40px}
.foot__brand{font-size:17px;font-weight:900;color:#fff;margin-bottom:14px}
/* ★ワードマークは横長なので、屋号テキストと横並びにすると2カラム時に折り返す。上下に積む。 */
.foot__mark{width:auto;height:26px;display:block;margin-bottom:12px}
.foot__desc{font-size:13.5px;line-height:1.9;margin-bottom:16px}
.foot__tel{font-family:var(--ff-disp);font-weight:900;font-size:26px;color:#fff;display:block;line-height:1.2}
.foot__tel:hover{color:var(--brand-light)}
.foot__hours{font-size:12px}
/* 法人格を示す運営会社情報（サイト名は屋号のまま・ここで法人名を明記する） */
.foot__corp{margin:18px 0 0;font-size:12.5px;line-height:1.75}
.foot__corp > div{display:flex;gap:10px;padding:4px 0;border-top:1px solid #12384a}
.foot__corp > div:first-child{border-top:0}
.foot__corp dt{flex:none;width:66px;font-weight:800;color:#cfe9f2}
.foot__corp dd{margin:0}
.foot__btoc{
  margin-top:18px;display:block;font-size:13px;color:#cfe9f2;border:1px solid #1c4d61;
  border-radius:10px;padding:12px 14px;line-height:1.7;
}
.foot__btoc:hover{color:#fff;border-color:var(--brand)}
.foot__btoc strong{color:#fff;display:block}
.foot__h{font-size:13px;font-weight:800;color:#fff;letter-spacing:.08em;margin-bottom:14px}
.foot__links li{margin-bottom:9px}
.foot__links a{color:#9dc4d2;font-size:13.5px}
.foot__links a:hover{color:var(--brand-light)}
.foot__bottom{border-top:1px solid #12384a;padding:18px 0 26px;text-align:center;font-size:12px;color:#6f9dae}

/* スマホ追従CTA */
.sticky{display:none}

/* ---------- 12. 下層ページ共通パーツ ---------- */
.crumb{background:var(--bg-alt);border-bottom:1px solid var(--line);font-size:12.5px}
.crumb__list{display:flex;flex-wrap:wrap;gap:6px;padding:11px 0;color:var(--muted)}
.crumb__item+.crumb__item::before{content:"›";margin-right:6px;color:var(--brand)}
.crumb__item a{color:var(--muted)}
.crumb__item a:hover{color:var(--brand)}
.phead{background:var(--grad-hero);color:#fff;padding:52px 0}
.phead h1{color:#fff;font-size:clamp(23px,4.6vw,36px)}
.phead__lead{margin-top:14px;color:#cdeaf5;font-size:15px;max-width:760px}
.page-content{padding:64px 0}
.page-content img{max-width:100%;height:auto;display:block}
.page-content h2{font-size:clamp(20px,3.6vw,27px);margin:44px 0 18px;padding-left:14px;border-left:6px solid var(--brand)}
.page-content h3{font-size:clamp(17px,2.8vw,21px);margin:32px 0 14px;color:var(--brand-dark)}
.page-content ul li{position:relative;padding-left:24px;margin-bottom:8px}
.page-content ul li::before{
  content:"";position:absolute;left:4px;top:.65em;width:8px;height:8px;border-radius:50%;background:var(--grad-aqua);
}

/* スキップリンク（スクリーンリーダー用） */
.screen-reader-text{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.skip-link:focus{
  position:fixed!important;left:12px;top:12px;width:auto;height:auto;clip:auto;z-index:1000;
  background:#fff;color:var(--ink);padding:10px 18px;border-radius:8px;box-shadow:var(--shadow);
}

/* Before / After */
.ba{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 28px}
.ba figure{margin:0}
.ba figcaption{
  font-family:var(--ff-disp);font-weight:900;font-size:13px;letter-spacing:.12em;
  color:#fff;background:var(--grad-brand);padding:6px 12px;border-radius:8px 8px 0 0;text-align:center;
}
.ba img{border-radius:0 0 8px 8px;width:100%}
.single__thumb{margin:0 0 28px}
.single__thumb img{border-radius:var(--radius);width:100%}

/* フォーム */
.cform{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:32px 30px;box-shadow:var(--shadow-soft)}
.cform__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform__row{margin-bottom:20px}
.cform__grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.cform__label{display:block;font-weight:800;font-size:14.5px;color:var(--ink);margin-bottom:7px}
.cform__label .req{
  display:inline-block;margin-left:8px;font-size:11px;font-weight:800;color:#fff;
  background:var(--accent);padding:2px 9px;border-radius:4px;vertical-align:2px;
}
.cform input,.cform select,.cform textarea{
  width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:10px;
  font:inherit;font-size:16px;color:var(--text);background:#fdfeff;outline:none;transition:border-color .2s,box-shadow .2s;
}
.cform input:focus,.cform select:focus,.cform textarea:focus{
  border-color:var(--brand);box-shadow:0 0 0 3px rgba(15,169,206,.16);
}
.cform__note{font-size:13px;color:var(--muted);margin-bottom:20px}
.cform button{width:100%}
.formmsg{border-radius:var(--radius);padding:20px 22px;margin-bottom:24px;font-size:14.5px;line-height:1.9}
.formmsg--ok{background:var(--brand-pale);border:1px solid var(--brand);color:var(--brand-dark)}
.formmsg--ng{background:#fff2ea;border:1px solid var(--accent);color:#a3400a}
.formmsg ul{margin:8px 0 0;padding-left:18px}
.formmsg li{list-style:disc}

/* ---------- 13. responsive ---------- */
/* ★ナビに「コラム」を足したぶん（2026-09-03）、切り替え幅を 1365px → 1450px に上げた。
     1366px での余白が実測8pxしか残っておらず、Webフォントの読み込みに失敗して
     代替フォント（幅が広い）になると横一列に収まらなくなるため。 */
@media (max-width:1450px){
  .nav a{padding:10px 8px;font-size:13px}
  .nav a::after{left:8px;right:8px}
  .hdr__tel{font-size:17px}
  .hdr__btoc{padding:6px 10px;font-size:11px}
  /* ★ロゴ横の「法人・事業者様専用窓口」を落とす。
       ここが残るとナビが横一列に収まらない（下層ページのラベルとフッターで担保している）。 */
  .hdr__sub{display:none}
}
@media (max-width:1023px){
  .svc__grid,.reason__grid,.client__grid,.pcards,.staff__grid{grid-template-columns:repeat(2,1fr)}
  .foot__top{grid-template-columns:1fr 1fr;gap:28px}
  .trouble__ph{width:92px;height:92px}
  .tv__photos{gap:14px}
  .tv__photo:nth-child(2){transform:none}
}
/* ★バーガーに切り替える幅＝900px →1150px（2026-08-20 個人宅導線）→**1230px**（2026-09-03 コラム追加）。
     1151px での余白が実測4pxしか無く、実質ゼロだったため上げた。 */
@media (max-width:1230px){
  .burger{display:block}
  .hdr__spacer{display:none}
  .hdr__sub{display:block}
  /* ★spacer(flex:1) を消し、nav を position:fixed にした結果、
       バーガーを右へ押すものが無くなってロゴの直後に並んでしまう。
       .hdr__cta を右端へ寄せる（2026-09-01 修正）。 */
  .hdr__cta{margin-left:auto}
  .nav{
    position:fixed;inset:var(--header-h) 0 auto 0;display:block;background:#fff;
    border-bottom:1px solid var(--line);box-shadow:var(--shadow);
    max-height:0;overflow:hidden;transition:max-height .3s ease;
  }
  .nav.is-open{max-height:78vh;overflow-y:auto}
  .nav a{padding:15px 20px;border-bottom:1px solid var(--line);font-size:15px}
  .nav a::after{display:none}
  .hdr__cta .btn{display:none}
  .hdr__tel{display:none}
  /* ★PC用のピルは隠し、代わりにバーガーの中の1本だけを出す（同じリンクを二重に置かない） */
  .hdr__btoc{display:none}
  .nav a.nav__btoc{display:block;background:var(--bg-alt);color:var(--brand-deep);font-weight:900}
}
@media (max-width:767px){
  body{font-size:15.5px;line-height:1.85;padding-bottom:66px}
  .sec{padding:56px 0}
  .sec--tight{padding:42px 0}
  .wrap{width:min(100% - 28px,var(--container))}
  .sechead{margin-bottom:32px}
  .pc-br{display:none}
  .intro{padding:42px 0 46px}
  .intro__label{font-size:11.5px;letter-spacing:.06em}
  .intro__label::before,.intro__label::after{width:20px}
  .intro__h1{line-height:1.6;margin-bottom:20px}
  .intro__lead{margin-bottom:26px}
  .intro__btns{flex-direction:column;align-items:stretch}
  .intro__btns .btn{width:100%;min-width:0;min-height:66px}
  .intro__btns .btn--tel{min-height:78px}
  .intro__points{gap:8px 16px}
  .intro__points li{font-size:12.5px}
  .spec__list{grid-template-columns:repeat(2,1fr)}
  .spec__list li{border-left:0;border-top:1px solid var(--line)}
  .spec__list li:nth-child(-n+2){border-top:0}
  .spec__list li:nth-child(2n){border-left:1px solid var(--line)}
  .trouble__list{grid-template-columns:1fr}
  .trouble__item{padding:22px 20px;gap:15px}
  .trouble__ph{width:80px;height:80px;border-width:3px}
  .trouble__q{font-size:15.5px;padding-left:24px}
  .tv__photos{grid-template-columns:1fr;gap:14px;margin-bottom:36px}
  .tv__photo{border-width:4px}
  .tv__photo:nth-child(2){transform:none}
  .tv__frame{border-width:4px;border-radius:var(--radius)}
  .tv__badge{font-size:11px;padding:6px 18px}
  .svc__grid,.reason__grid,.client__grid,.pcards{grid-template-columns:1fr}
  .svc__body{padding:30px 20px 22px}
  .reason__ico{width:48px;height:48px;border-radius:15px;font-size:24px}
  .reason__no{font-size:32px}
  .client__note span{font-size:14px;padding:11px 22px}
  .staff__grid{grid-template-columns:repeat(2,1fr);gap:14px}
  .staff__body{padding:14px 14px 16px}
  .staff__name{font-size:16px}
  .staff__spec{font-size:12px}
  .staff__word{font-size:12.5px;padding:10px 12px}
  .foot__brand{font-size:16px}
  .flow__item{padding:20px 20px 20px 20px;flex-direction:column;align-items:stretch;gap:16px}
  .flow__text{padding-left:56px}
  .flow__item::before{left:20px;top:20px;width:40px;height:40px}
  .flow__ph{width:100%;aspect-ratio:16/9}
  .area__map{max-width:240px;margin-bottom:20px;border-width:4px}
  .foot__top{grid-template-columns:1fr}
  .cta__btns{flex-direction:column;align-items:stretch}
  .cta__btns .btn{width:100%}
  .area__box{padding:26px 20px}
  .faq__q{padding:17px 46px 17px 18px;font-size:15px}
  .faq__a{padding:16px 18px 20px 44px}
  .page-content{padding:44px 0}
  .cform{padding:24px 20px}
  .cform__grid{grid-template-columns:1fr;gap:0}
  .ba{grid-template-columns:1fr}

  /* 追従CTA */
  .sticky{
    display:flex;position:fixed;inset:auto 0 0 0;z-index:800;
    box-shadow:0 -6px 22px rgba(7,41,58,.18);
  }
  .sticky a{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
    padding:9px 4px;font-size:11px;font-weight:800;line-height:1.35;
  }
  .sticky__tel{background:#fff;color:var(--ink)}
  .sticky__tel strong{font-family:var(--ff-disp);font-size:18px;color:var(--brand-deep)}
  .sticky__form{background:var(--grad-accent);color:#fff;font-size:15px}
  .sticky__form:hover{color:#fff}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}

/* =========================================================
   14. 仕上げ（2026-08-07・画像を足さずに質感を上げるための調整）
   ========================================================= */

/* --- ヘッダー：スクロールしたら影を出して浮かせる --- */
.site-header{transition:box-shadow .3s ease,background .3s ease}
.site-header.is-stuck{
  background:rgba(255,255,255,.97);
  box-shadow:0 10px 30px -16px rgba(7,41,58,.45);
}

/* --- CTAボタンに光沢を走らせる --- */
.btn--accent{position:relative;overflow:hidden;z-index:0}
.btn--accent::after{
  content:"";position:absolute;top:-70%;left:-45%;width:38%;height:240%;z-index:-1;
  transform:rotate(20deg);pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);
  animation:ohs-shine 5.5s ease-in-out infinite;
}
@keyframes ohs-shine{
  0%,74%{left:-45%}
  93%,100%{left:135%}
}

/* --- スペック帯：数字をグラデにして区切りを柔らかく --- */
.spec{border-top:1px solid rgba(255,255,255,.6)}
.spec__list li{border-left:0;position:relative}
.spec__list li + li::before{
  content:"";position:absolute;left:0;top:24%;bottom:24%;width:1px;
  background:linear-gradient(180deg,transparent,var(--line) 22%,var(--line) 78%,transparent);
}
.spec__v{
  background:linear-gradient(118deg,var(--brand-deep),var(--brand) 52%,var(--blue));
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
}
.spec__v small{
  -webkit-text-fill-color:var(--muted);color:var(--muted);
  background:none;
}

/* --- カードの縁を光らせる（ホバー） --- */
.svc__card:hover,
.client__item:hover,
.staff__card:hover,
.pcard:hover{box-shadow:var(--shadow),0 0 0 2px rgba(15,169,206,.32)}
.trouble__item{transition:transform .25s,box-shadow .25s}
.trouble__item:hover{transform:translateY(-3px);box-shadow:var(--shadow)}

/* --- お悩みの丸写真：外側にリングを足す --- */
.trouble__ph{box-shadow:0 0 0 3px rgba(79,209,233,.30),0 10px 24px -8px rgba(7,41,58,.35)}
.trouble__q::before{width:22px;height:22px;font-size:13px;box-shadow:var(--shadow-brand)}

/* --- どさんこワイドの3枚を少し傾ける（並べただけに見せない） --- */
.tv__photo:nth-child(1){transform:rotate(-1.5deg)}
.tv__photo:nth-child(3){transform:rotate(1.5deg)}
.tv__photo:nth-child(1):hover{transform:rotate(-1.5deg) translateY(-14px)}
.tv__photo:nth-child(3):hover{transform:rotate(1.5deg) translateY(-14px)}

/* --- 料金テーブル：行ホバー --- */
.ptable tbody tr th,.ptable tbody tr td{transition:background .2s}
.ptable tbody tr:hover th{background:rgba(15,169,206,.12)}
.ptable tbody tr:hover td{background:rgba(15,169,206,.07)}

/* --- FAQ：開いている項目に左のグラデーションバー --- */
.faq__item{position:relative}
.faq__item::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;z-index:1;pointer-events:none;
  background:var(--grad-line);transform:scaleY(0);transform-origin:top;transition:transform .32s;
}
.faq__item:hover::before,
.faq__item.is-open::before{transform:scaleY(1)}
.faq__q{transition:color .2s}
.faq__item.is-open .faq__q{color:var(--brand-dark)}

/* --- 流れ：番号バッジを大きく、縦線でつなぐ --- */
.flow__list{position:relative}
.flow__item::after{
  content:"";position:absolute;left:47px;top:100%;height:16px;width:2px;
  background:linear-gradient(180deg,var(--brand-light),transparent);
}
.flow__item:last-child::after{display:none}

/* --- ページトップへ戻る --- */
.totop{
  position:fixed;right:24px;bottom:24px;z-index:700;width:50px;height:50px;border-radius:50%;
  display:grid;place-items:center;background:var(--grad-brand);color:#fff;
  box-shadow:var(--shadow-brand);border:0;cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .3s,transform .3s,visibility .3s;
}
.totop.is-on{opacity:1;visibility:visible;transform:none}
.totop:hover{transform:translateY(-3px)}
.totop svg{width:20px;height:20px}

@media (max-width:767px){
  .sechead__ghost{top:-.22em;-webkit-text-stroke-width:1.2px}
  .flow__item::after{left:40px}
  /* 追従CTAと重なるので非表示 */
  .totop{display:none}
}

/* リビールは動きを減らす設定では無効化（要素が消えたままにならないように） */
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal.in{opacity:1!important;transform:none!important}
  .btn--accent::after{display:none}
}

/* =========================================================
   15. サービス個別ページ
   ========================================================= */

/* --- ページヘッダー（H1＋サービス画像） --- */
.svchead{background:var(--grad-hero);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.svchead::before{
  content:"";position:absolute;inset:-34% -12% auto auto;width:min(60vw,660px);aspect-ratio:1;
  background:radial-gradient(circle,rgba(79,209,233,.42),transparent 64%);z-index:-1;
}
.svchead__inner{display:grid;grid-template-columns:1.25fr .75fr;gap:44px;align-items:center;padding:54px 0 58px}
.svchead__label{
  display:inline-block;font-size:12px;font-weight:800;letter-spacing:.08em;color:#062b3a;
  background:var(--brand-light);padding:5px 15px;border-radius:6px;margin-bottom:16px;
}
.svchead__h1{color:#fff;font-size:clamp(25px,4.3vw,40px);line-height:1.4;margin-bottom:18px}
.svchead__lead{color:#cdeaf5;font-size:15.5px;margin-bottom:22px}
.svchead__tags{display:flex;flex-wrap:wrap;gap:8px 20px;margin-bottom:26px}
.svchead__tags li{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700;color:#bfe6f2}
.svchead__tags .ico{color:var(--brand-light);font-size:16px}
.svchead__btns{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}
.svchead__btns .btn{min-height:70px}
.svchead__ph{
  margin:0;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:1/1;
  border:6px solid rgba(255,255,255,.85);box-shadow:0 26px 60px -24px rgba(0,0,0,.6);
}
.svchead__ph img{width:100%;height:100%;object-fit:cover;display:block}

/* --- 導入文 --- */
.svc-intro p{font-size:16px;line-height:2.05;margin-bottom:1.4em}
.svc-intro p:last-child{margin-bottom:0}

/* --- 課題 --- */
.prob__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.prob__item{
  background:#fff;border-radius:var(--radius-lg);padding:28px 26px;border:1px solid var(--line);
  box-shadow:var(--shadow-soft);display:grid;grid-template-columns:56px 1fr;gap:6px 18px;align-items:start;
  transition:transform .25s,box-shadow .25s;
}
.prob__item:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.prob__ico{
  grid-row:span 2;width:56px;height:56px;border-radius:17px;display:grid;place-items:center;
  font-size:27px;color:#fff;background:var(--grad-brand);box-shadow:var(--shadow-brand);
}
.prob__title{font-size:17px;margin:0;align-self:center}
.prob__body{grid-column:2;font-size:14.5px;color:var(--muted);margin:0}

/* --- 対応できる施設（定期清掃） --- */
.facil{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.facil__item{
  background:#fff;border-radius:var(--radius-lg);padding:26px 22px 24px;border:1px solid var(--line);
  box-shadow:var(--shadow-soft);transition:transform .25s,box-shadow .25s;
}
.facil__item:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.facil__ico{
  width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:23px;
  color:#fff;background:var(--grad-brand);box-shadow:var(--shadow-brand);margin-bottom:14px;
}
.facil__title{font-size:16px;margin-bottom:8px;line-height:1.45}
.facil__body{font-size:13.5px;color:var(--muted);margin:0;line-height:1.85}
@media (max-width:1023px){.facil{grid-template-columns:repeat(2,1fr)}}
@media (max-width:767px){
  .facil{grid-template-columns:1fr;gap:14px}
  .facil__item{padding:22px 20px 20px}
}

/* --- 作業範囲 --- */
.scope__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.scope__item{
  background:#fff;border-radius:var(--radius-lg);padding:28px 24px 24px;border:1px solid var(--line);
  box-shadow:var(--shadow-soft);position:relative;overflow:hidden;
}
.scope__item::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--grad-line)}
.scope__no{
  display:block;font-family:var(--ff-disp);font-weight:900;font-size:30px;line-height:1;
  background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent;
  margin-bottom:8px;
}
.scope__title{font-size:17px;margin-bottom:10px}
.scope__body{font-size:14.5px;color:var(--muted);margin:0}
/* 会員之章などのバッジ画像。★元データが 300x99 しかないので、それ以上に伸ばさない。 */
.scope__badge{
  display:block;margin:14px 0 0;width:100%;max-width:220px;height:auto;
  border-radius:6px;box-shadow:0 2px 8px rgba(4,33,45,.14);
}
/* 登録先の公式ページへの外部リンク（会社概要の資格・登録・所属団体）。 */
.scope__link{
  display:inline-flex;align-items:center;gap:6px;margin-top:14px;
  font-size:13px;font-weight:800;color:var(--brand-deep);line-height:1.6;
  border-bottom:1px solid var(--brand-pale);padding-bottom:2px;transition:color .2s,border-color .2s;
}
.scope__link:hover{color:var(--brand-dark);border-color:var(--brand)}
.scope__link svg{width:12px;height:12px;flex:none}
.scope__note{
  margin-top:26px;font-size:14px;color:var(--muted);text-align:center;
  background:var(--bg-alt);border-radius:var(--radius);padding:16px 20px;
}

/* --- 建物タイプ別の作業項目（日常清掃） --- */
.worklist{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start}
.worklist__card{
  background:#fff;border-radius:var(--radius-lg);padding:30px 26px 26px;border:1px solid var(--line);
  box-shadow:var(--shadow-soft);position:relative;overflow:hidden;
}
.worklist__card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--grad-line)}
.worklist__ico{
  width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:26px;
  color:#fff;background:var(--grad-brand);box-shadow:var(--shadow-brand);margin-bottom:16px;
}
.worklist__title{font-size:18px;margin-bottom:10px}
.worklist__lead{font-size:14px;color:var(--muted);margin-bottom:18px;line-height:1.85}
.worklist__items{display:grid;gap:11px;border-top:1px dashed var(--line);padding-top:18px}
.worklist__items li{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;line-height:1.8;color:var(--text)}
.worklist__items .ico{color:var(--brand);font-size:16px;margin-top:.3em}
@media (max-width:1023px){.worklist{grid-template-columns:repeat(2,1fr)}}
@media (max-width:767px){
  .worklist{grid-template-columns:1fr;gap:18px}
  .worklist__card{padding:26px 22px 24px}
  .worklist__ico{width:46px;height:46px;border-radius:14px;font-size:23px}
}

/* --- 料金の補足リスト --- */
.pricepoint{margin-top:26px;display:grid;gap:10px}
.pricepoint li{
  display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:var(--text);
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px;
}
.pricepoint .ico{color:var(--brand);font-size:17px;margin-top:.25em}

/* --- 正直な線引き --- */
.limit{
  background:#fff;border:2px solid var(--line);border-radius:var(--radius-lg);
  padding:32px 32px 28px;box-shadow:var(--shadow-soft);position:relative;
}
.limit::before{
  content:"";position:absolute;inset:0 0 auto 0;height:5px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;
  background:var(--grad-accent);
}
.limit__list{display:grid;gap:12px}
.limit__list li{
  position:relative;padding-left:32px;font-size:14.5px;color:var(--text);line-height:1.85;
}
.limit__list li::before{
  content:"";position:absolute;left:4px;top:.55em;width:14px;height:14px;border-radius:50%;
  border:3px solid var(--accent);
}
.limit__foot{
  margin:22px 0 0;padding-top:18px;border-top:1px dashed var(--line);
  font-size:14px;color:var(--muted);
}

/* --- ミニ流れ --- */
.miniflow{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.miniflow__item{
  background:#fff;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
}
.miniflow__ph{margin:0;position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--brand-pale)}
.miniflow__ph img{width:100%;height:100%;object-fit:cover;display:block}
.miniflow__ph figcaption{
  position:absolute;left:12px;top:12px;width:38px;height:38px;border-radius:12px;
  display:grid;place-items:center;font-family:var(--ff-disp);font-weight:900;font-size:15px;
  color:#fff;background:var(--grad-brand);box-shadow:var(--shadow-brand);
}
.miniflow__title{font-size:16px;margin:18px 20px 8px}
.miniflow__body{font-size:14px;color:var(--muted);margin:0 20px 20px}

/* --- 関連サービス --- */
.rel__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.rel__card{
  display:flex;flex-direction:column;background:#fff;border-radius:var(--radius-lg);overflow:hidden;
  border:1px solid var(--line);box-shadow:var(--shadow-soft);color:var(--text);
  transition:transform .25s,box-shadow .25s;
}
.rel__card:hover{transform:translateY(-6px);box-shadow:var(--shadow),0 0 0 2px rgba(15,169,206,.32);color:var(--text)}
.rel__ph{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--brand-pale)}
.rel__ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.rel__card:hover .rel__ph img{transform:scale(1.06)}
.rel__body{display:flex;flex-direction:column;padding:20px 22px 22px;flex:1;position:relative}
.rel__ico{
  position:absolute;right:20px;top:-24px;width:46px;height:46px;border-radius:14px;
  display:grid;place-items:center;font-size:23px;color:#fff;background:var(--grad-brand);
  box-shadow:var(--shadow-brand);border:3px solid #fff;
}
.rel__title{display:block;font-size:17px;font-weight:900;color:var(--ink);margin-bottom:10px;padding-right:40px}
.rel__lead{display:block;font-size:14px;color:var(--muted);flex:1;margin-bottom:14px}
.rel__more{font-size:13.5px;font-weight:800;color:var(--brand-deep);display:inline-flex;align-items:center;gap:6px}
.rel__more::after{content:"→";transition:transform .2s}
.rel__card:hover .rel__more::after{transform:translateX(4px)}

@media (max-width:1023px){
  .svchead__inner{grid-template-columns:1fr;gap:30px}
  .svchead__ph{max-width:380px;margin-inline:auto}
  .scope__grid,.miniflow,.rel__grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:767px){
  .svchead__inner{padding:36px 0 40px}
  .svchead__btns{flex-direction:column;align-items:stretch}
  .svchead__btns .btn{width:100%}
  .svchead__ph{border-width:4px}
  .svc-intro p{font-size:15.5px;line-height:1.95}
  .prob__grid,.scope__grid,.miniflow,.rel__grid{grid-template-columns:1fr}
  .prob__item{grid-template-columns:48px 1fr;gap:6px 14px;padding:22px 20px}
  .prob__ico{width:48px;height:48px;border-radius:15px;font-size:24px}
  .limit{padding:24px 20px 22px}
  .limit__list li{padding-left:28px;font-size:14px}
  .rel__ico{right:16px;width:42px;height:42px}
}

/* 現在地（リンクにしない項目） */
.foot__links .is-current{
  display:inline-block;font-size:13.5px;color:#fff;font-weight:800;position:relative;padding-left:14px;
}
.foot__links .is-current::before{
  content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:50%;
  background:var(--brand-light);
}

/* =========================================================
   16. 情報系ページ（会社概要・プライバシー・問い合わせ ほか）
   ========================================================= */

/* 画像を持たないページヘッダー */
.svchead--noimg .svchead__inner{grid-template-columns:1fr;padding:52px 0 54px}
.svchead--noimg .svchead__text{max-width:860px}
.svchead--noimg .svchead__lead b{color:#fff;background:linear-gradient(transparent 62%,rgba(15,169,206,.7) 62%);
  -webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .1em}

/* 画像素材がまだ無いサービスのプレースホルダー（写真が入り次第、自動で画像に切り替わる） */
.ph-none{
  display:grid;place-items:center;width:100%;height:100%;
  background:linear-gradient(135deg,var(--brand-pale),#eef9fc 60%,#fff);
}
.ph-none .ico{width:34%;height:auto;aspect-ratio:1/1;color:var(--brand);opacity:.45;stroke-width:1.2}
/* スタッフの顔写真待ち（3:4の枠なので少し小さめに） */
.ph-none--staff .ico{width:42%}

/* サービス一覧を3列固定で出すとき */
.rel__grid--3{grid-template-columns:repeat(3,1fr)}

/* 電話ブロック（お問い合わせページ） */
.contact-tel{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:32px 28px;box-shadow:var(--shadow-soft);text-align:center;
}
.contact-tel__note{margin:20px 0 0;font-size:14px;color:var(--muted);line-height:1.9}
.contact-tel__note strong{color:var(--ink)}

/* プライバシーポリシー */
.policy{display:grid;gap:32px}
.policy__item{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:28px 30px;box-shadow:var(--shadow-soft);
}
.policy__title{
  font-size:18px;margin-bottom:14px;display:flex;align-items:center;gap:12px;line-height:1.5;
}
.policy__title span{
  flex:none;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;
  font-family:var(--ff-disp);font-weight:900;font-size:14px;color:#fff;background:var(--grad-brand);
}
.policy__body{font-size:14.5px;color:var(--text);line-height:1.95;margin-bottom:.9em}
.policy__body:last-child{margin-bottom:0}

/* 会社概要などの表（左見出しを広めに） */
.ptable tbody th{min-width:120px}

/* 料金一覧ページ：見出しのリンク */
.scope__title a{color:var(--ink)}
.scope__title a:hover{color:var(--brand-deep);text-decoration:underline}

@media (max-width:1023px){
  .rel__grid--3{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:767px){
  .rel__grid--3{grid-template-columns:1fr}
  .svchead--noimg .svchead__inner{padding:34px 0 38px}
  .policy__item{padding:22px 20px}
  .policy__title{font-size:16.5px;gap:10px}
  .policy__title span{width:30px;height:30px;font-size:13px}
  .contact-tel{padding:24px 18px}
}

/* ヘッダーの現在地（リンクにしない項目） */
.nav__current{
  position:relative;display:block;padding:10px 10px;font-size:13.5px;font-weight:800;
  color:var(--brand-deep);white-space:nowrap;
}
.nav__current::after{
  content:"";position:absolute;left:10px;right:10px;bottom:4px;height:2px;background:var(--grad-line);
}
/* ★`.nav a` の縮小幅（1450px）と必ず揃えること。ズレると現在地表示だけ大きいままになり、
     ヘッダーの実需要が幅ごとに食い違う。 */
@media (max-width:1450px){ .nav__current{padding:10px 8px;font-size:13px} .nav__current::after{left:8px;right:8px} }
/* ★バーガー時の見た目。切り替え幅（1230px）と揃える。 */
@media (max-width:1230px){
  .nav__current{padding:15px 20px;border-bottom:1px solid var(--line);font-size:15px}
  .nav__current::after{display:none}
}

/* =========================================================
   お役立ちコラム（CPT: column）
   ========================================================= */

/* --- カード（アイキャッチが1200×630のOG画像なので枠も同じ比率にする） --- */
/* ★3:2 のままだと左右が切り落とされ、画像内のタイトル文字が欠ける（2026-09-03 実測）。 */
.pcard--column .pcard__img{aspect-ratio:1200/630}

/* --- カテゴリ絞り込み --- */
.catnav{padding:26px 0 0}
.catnav__list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.catnav__list li{list-style:none}
.catnav__list a,.catnav__list .is-current{
  display:block;padding:8px 16px;border-radius:999px;font-size:13.5px;font-weight:700;
  border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;
}
.catnav__list a:hover{border-color:var(--brand);color:var(--brand-dark)}
.catnav__list .is-current{background:var(--grad-brand);border-color:transparent;color:#fff}

/* --- 記事ヘッダー --- */
.phead--column{padding:44px 0 40px}
.phead__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px}
.phead__cat{
  display:inline-block;padding:5px 13px;border-radius:999px;font-size:12.5px;font-weight:800;
  background:rgba(255,255,255,.16);color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.32);
}
.phead__cat:hover{background:rgba(255,255,255,.28)}
.phead__date,.phead__upd{
  font-family:var(--ff-disp);font-size:13px;font-weight:700;letter-spacing:.06em;color:#bfe4f2;
}
.phead--column h1{font-size:clamp(21px,4.2vw,32px);line-height:1.5}

/* --- 目次 --- */
.toc{
  margin:0 0 36px;padding:22px 24px;border-radius:14px;
  background:var(--bg-alt);border:1px solid var(--line);
}
.toc__h{
  font-family:var(--ff-disp);font-weight:900;font-size:14px;letter-spacing:.08em;
  color:var(--brand-dark);margin-bottom:12px;
}
.toc__list{counter-reset:toc;margin:0}
/* ★.page-content ul li::before の丸ポチを打ち消す（目次は番号で並べる） */
.toc__item{list-style:none;padding-left:0;margin-bottom:7px;line-height:1.6}
.toc__item::before{display:none!important}
.toc__item a{
  color:var(--ink);text-decoration:none;font-size:14.5px;
  border-bottom:1px solid transparent;
}
.toc__item a:hover{color:var(--brand-dark);border-bottom-color:currentColor}
.toc__item--h2{counter-increment:toc;font-weight:700}
.toc__item--h2 a::before{
  content:counter(toc) ". ";font-family:var(--ff-disp);font-weight:900;color:var(--brand);
}
.toc__item--h3{padding-left:22px;font-size:13.5px}
.toc__item--h3 a{font-size:13.5px;color:#4a6572}

/* --- 本文 --- */
/* ★見出しは .page-content h2/h3 の指定をそのまま使う。
   ここで `.entry p{}` のような親セレクタ指定を足すと見出しに勝ってしまうので書かない。 */
.entry p{margin:0 0 1.5em;line-height:2}
.entry > *:last-child{margin-bottom:0}
.entry a{color:var(--brand-dark);text-decoration:underline;text-underline-offset:3px}
.entry a:hover{color:var(--brand)}
/* ★出典などで生URLを書くと、SPで横スクロールが出る。折り返しを許可する。 */
.entry a,.entry li,.entry td{word-break:break-word;overflow-wrap:anywhere}
.entry ul,.entry ol{margin:0 0 1.5em}
.entry ol{padding-left:1.4em}
.entry ol li{margin-bottom:8px;line-height:1.9}
.entry img{border-radius:12px;margin:0 auto 1.5em}
.entry figure{margin:0 0 1.5em}
.entry figcaption{font-size:13px;color:var(--muted);text-align:center;margin-top:8px}
.entry blockquote{
  margin:0 0 1.5em;padding:18px 22px;border-left:5px solid var(--brand-light);
  background:var(--bg-alt);border-radius:0 12px 12px 0;
}
.entry blockquote p:last-child{margin-bottom:0}
.entry strong,.entry b{font-weight:800}
.entry hr{border:0;border-top:1px solid var(--line);margin:2.4em 0}
/* ★表は枠の中でだけ横スクロールさせる（ページ全体を横に伸ばさない） */
.entry .wp-block-table,.entry figure.wp-block-table{overflow-x:auto;margin:0 0 1.5em}
.entry table{width:100%;border-collapse:collapse;font-size:14.5px}
.entry th,.entry td{border:1px solid var(--line);padding:11px 13px;text-align:left;vertical-align:top}
/* ★背景は tr ではなく th 自身に書く（tr に書くと th の指定に負けて色が出ない） */
.entry th{background:var(--bg-alt);font-weight:800;white-space:normal}

@media (max-width:767px){
  .catnav{padding:20px 0 0}
  .catnav__list{justify-content:flex-start}
  .catnav__list a,.catnav__list .is-current{padding:7px 13px;font-size:12.5px}
  .phead--column{padding:32px 0 30px}
  .toc{padding:18px 17px;margin-bottom:28px}
  .entry p{line-height:1.95}
  .entry th,.entry td{padding:9px 10px;font-size:13.5px}
}

/* =========================================================
   14. 公式LINE・Instagram（2026-09-10 クライアント指示「目立つように」）
   ★ボタンの緑はLINEのブランド色 #06C755 だと白文字が 2.3:1 しか出ないので、
     一段濃い #06a64a（太字16px以上で 3:1 超）を地に使う。アイコン単体の色は #06C755。
   ★LINEアイコンの抜き文字の色は --sns-knock（既定＝ボタンの緑）。緑の文字の上に置くときだけ白に戻す。
   ========================================================= */
.ico--sns{font-size:1.3em}
.btn--sns-line{background:#06a64a;color:#fff;box-shadow:0 10px 24px -10px rgba(6,166,74,.65)}
.btn--sns-line:hover{color:#fff;background:#05963f}
/* ★background-origin:border-box ＝ .btn の透明な枠線(2px)の下でグラデが繰り返され、端に色の筋が出るのを防ぐ */
.btn--sns-ig{
  background:linear-gradient(60deg,#f58529 0%,#dd2a7b 38%,#8134af 72%,#515bd4 100%) border-box;color:#fff;
  box-shadow:0 10px 24px -10px rgba(221,42,123,.6);
}
.btn--sns-ig:hover{color:#fff;filter:saturate(1.15) brightness(1.04)}

/* 共通CTA（全ページ下部） */
.cta__sns{max-width:760px;margin:30px auto 0;padding-top:26px;border-top:1px solid rgba(255,255,255,.18)}
.cta__sns-label{font-size:13.5px;font-weight:800;color:#cdeaf5;letter-spacing:.06em;margin-bottom:14px}
.snsbtns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.snsbtns .btn{min-width:260px}

/* トップ・お問い合わせのカード */
.sns{background:linear-gradient(135deg,#e8f8ee 0%,#eef7fc 50%,#fbeef6 100%)}
.snscards{display:grid;grid-template-columns:1.25fr 1fr;gap:24px;max-width:1000px;margin:0 auto}
.snscard{
  background:#fff;border-radius:var(--radius-lg);padding:30px 30px 26px;box-shadow:var(--shadow-soft);
  border:1px solid var(--line);border-top:5px solid #06C755;display:flex;gap:26px;align-items:center;
}
.snscard--ig{border-top-color:#dd2a7b}
.snscard__main{flex:1;min-width:0}
.snscard__en{
  display:flex;align-items:center;gap:8px;font-size:13px;font-weight:900;letter-spacing:.06em;
  color:#05963f;margin-bottom:8px;--sns-knock:#fff;
}
.snscard--ig .snscard__en{color:#c1246a}
.snscard__en .ico--sns{font-size:24px}
.snscard__title{font-size:clamp(18px,2.4vw,22px);margin-bottom:10px}
.snscard__body{font-size:14px;color:var(--muted);line-height:1.85;margin-bottom:18px}
.snscard .btn{padding:14px 28px;font-size:16px}
.snscard__id{margin:10px 0 0;font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.03em}
.snscard__qr{margin:0;flex:none;width:150px;text-align:center}
.snscard__qr img{width:150px;height:150px;border:1px solid var(--line);border-radius:12px;padding:6px;background:#fff}
.snscard__qr figcaption{margin-top:8px;font-size:11.5px;font-weight:700;color:var(--muted);line-height:1.5}

/* 会社概要の表 */
.ptable__sns a{display:flex;align-items:center;gap:8px;width:max-content;max-width:100%}
.ptable__sns a + a{margin-top:6px}
.ptable__sns .ico--sns{font-size:20px}
.ptable__sns a:first-child .ico--sns{color:#06C755;--sns-knock:#fff}
.ptable__sns a:last-child .ico--sns{color:#dd2a7b}

/* フッター */
.foot__sns{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.foot__sns a{
  display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:999px;
  font-size:13px;font-weight:800;color:#fff;line-height:1.4;
}
.foot__sns .ico--sns{font-size:19px}
.foot__sns-line{background:#06a64a}
.foot__sns-ig{background:linear-gradient(60deg,#f58529 0%,#dd2a7b 40%,#8134af 75%,#515bd4 100%)}
.foot__sns a:hover{color:#fff;filter:brightness(1.08)}

@media (max-width:1023px){
  .snscards{grid-template-columns:1fr;max-width:640px}
}
@media (max-width:767px){
  .cta__sns{margin-top:26px;padding-top:22px}
  .snsbtns{flex-direction:column;align-items:stretch}
  .snsbtns .btn{width:100%;min-width:0}
  .snscard{padding:24px 20px 22px}
  /* ★スマホではQRを出さない（自分の端末の画面は読み取れない）。ボタンで直接友だち追加する */
  .snscard__qr{display:none}
  .snscard .btn{width:100%}
  /* 追従CTA：電話｜LINE｜見積り の3つ。LINEは細い固定幅にして電話番号の幅を守る */
  .sticky__line{flex:0 0 64px!important;background:#06a64a;color:#fff;gap:1px;font-size:10.5px!important;--sns-knock:#06a64a}
  .sticky__line .ico--sns{font-size:24px}
  .sticky__line:hover{color:#fff}
}

/* ★印刷時はスクロール表示アニメーションを必ず無効化する（中身が白く抜けるのを防ぐ） */
@media print{
  .reveal,.reveal.in{opacity:1!important;transform:none!important;transition:none!important}
  .site-header,.sticky,.totop,.burger{display:none!important}
  body{padding-top:0}
  .sec-bg{display:none}
  .has-bg::after{display:none}
}
