/*
Theme Name: BuzzProduce (Twenty Twenty Child)
Theme URI: https://buzzproduce.site/
Description: 歯科医院専門TikTok運用代行「BuzzProduce」の専用子テーマ。親テーマは Twenty Twenty。静的HTML版と同一のデザインを再現します。お問い合わせは Contact Form 7 を使用します。
Author: BuzzProduce
Version: 1.0.0
Template: twentytwenty
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: buzzproduce-child
*/

@charset "UTF-8";

/* =========================================================
   BuzzProduce — 歯科医院専門TikTok運用代行
   ========================================================= */

:root{
  --green:#009B83;
  --green-dark:#087268;
  --green-deep:#0C3630;
  --blue:#20A9D4;
  --mint:#EAF7F4;
  --mint-pale:#F5FAF9;
  --text:#222827;
  --sub:#66706E;
  --border:#DCEAE7;
  --white:#FFFFFF;
  --footer:#172321;

  --wrap:1180px;
  --pad:24px;
  --header-h:78px;
  --r:12px;

  --logo-grad:linear-gradient(96deg,#05A598 0%,#0696CB 20%,#016380 38%,#02817C 52%,#026787 68%,#0590C4 84%,#06A699 100%);
  --label-grad:linear-gradient(92deg,#06A699 0%,#0696CB 52%,#05A598 100%);

  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box;}

html{
  overflow-x:hidden;
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:88px;
}

body{
  margin:0;
  font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  font-weight:500;
  color:var(--text);
  background:var(--white);
  line-height:1.9;
  letter-spacing:.02em;
  font-feature-settings:"palt" 1;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0;}
ul,ol{list-style:none;padding:0;}
svg{display:block;}

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

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad);}
.wrap-narrow{max-width:900px;}

/* ---------- セクション共通 ---------- */
.section{padding:clamp(88px,11vw,168px) 0;}
.section--mint{background:var(--mint);}
.section--pale{background:var(--mint-pale);}
.section--tight{padding:clamp(56px,7vw,92px) 0;}

.head{text-align:center;margin-bottom:clamp(44px,5.4vw,72px);}
.head__label{
  display:inline-block;
  font-size:clamp(15px,4vw,19px);font-weight:700;line-height:1.5;
  letter-spacing:.02em;margin-bottom:clamp(10px,1.4vw,14px);
  color:var(--green);
}
.deep .head__label{color:#5FD3BE;}
.h2{
  font-size:clamp(30px,6.6vw,56px);
  font-weight:700;
  line-height:1.36;
  letter-spacing:-.015em;
}
.h2 .br{display:block;}
.lead{
  margin:clamp(20px,2.6vw,28px) auto 0;
  max-width:36em;
  font-size:clamp(15.5px,4.1vw,18px);
  color:var(--sub);
  line-height:1.95;
}

/* ---------- ボタン ---------- */
.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.6em;
  min-height:60px;
  padding:0 32px;
  border-radius:8px;
  font-size:clamp(16px,4.4vw,17.5px);
  font-weight:700;
  letter-spacing:.02em;
  line-height:1.4;
  text-align:center;
  transition:background-color .3s var(--ease),color .3s var(--ease),
             border-color .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease);
}
.btn--primary{
  background:linear-gradient(96deg,var(--green) 0%,#00A78D 55%,#12A2A8 130%);
  color:#fff;
  box-shadow:0 10px 24px rgba(0,155,131,.22);
}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,155,131,.3);}
.btn--ghost{border:1.5px solid var(--border);background:#fff;color:var(--green-dark);}
.btn--ghost:hover{border-color:var(--green);color:var(--green);transform:translateY(-2px);}
.btn--onfill{background:#fff;color:var(--green-dark);box-shadow:0 10px 26px rgba(0,0,0,.1);}
.btn--onfill:hover{transform:translateY(-2px);}
.btn--outline-white{border:1.5px solid rgba(255,255,255,.7);color:#fff;}
.btn--outline-white:hover{background:rgba(255,255,255,.14);}
.btn--lg{min-height:clamp(68px,9.2vw,78px);padding:0 38px;font-size:clamp(18.5px,5.3vw,22px);letter-spacing:.01em;}
.btn--wide{width:100%;max-width:460px;}

.btn__arrow{
  display:grid;place-items:center;
  width:clamp(32px,8.4vw,38px);height:clamp(32px,8.4vw,38px);
  border-radius:50%;
  flex-shrink:0;
}
.btn__arrow svg{width:clamp(14px,3.8vw,17px);height:clamp(14px,3.8vw,17px);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}
.btn--primary .btn__arrow,.btn--outline-white .btn__arrow{background:rgba(255,255,255,.22);}
.btn--primary .btn__arrow svg,.btn--outline-white .btn__arrow svg{stroke:#fff;}
.btn--onfill .btn__arrow,.btn--ghost .btn__arrow{background:var(--green);}
.btn--onfill .btn__arrow svg,.btn--ghost .btn__arrow svg{stroke:#fff;}

/* =========================================================
   ヘッダー
   ========================================================= */
.header{
  position:fixed;inset:0 0 auto 0;z-index:100;
  height:var(--header-h);
  background:transparent;
  border-bottom:1px solid transparent;
  transition:height .3s var(--ease),background-color .3s var(--ease),
             border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.header.is-scrolled{
  height:66px;
  background:rgba(255,255,255,.95);
  -webkit-backdrop-filter:saturate(1.2) blur(4px);
  backdrop-filter:saturate(1.2) blur(4px);
  border-bottom-color:var(--border);
  box-shadow:0 1px 16px rgba(34,40,39,.05);
}
.header__inner{
  height:100%;max-width:1360px;margin-inline:auto;
  padding-inline:clamp(16px,3vw,34px);
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.header__brand{display:flex;align-items:center;gap:clamp(12px,1.6vw,20px);min-width:0;}
.header__logo{display:flex;align-items:center;flex-shrink:0;}
.header__logo img{width:clamp(140px,14vw,176px);height:auto;}
.header__tag{
  position:relative;padding-left:clamp(12px,1.6vw,20px);
  font-size:12.5px;font-weight:700;line-height:1.5;color:var(--sub);
  letter-spacing:.04em;white-space:nowrap;
}
.header__tag::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:1px;height:18px;background:var(--border);
}
.header__cta{
  position:relative;
  display:flex;align-items:stretch;flex-shrink:0;
  min-height:0;padding:0;border-radius:8px;box-shadow:none;background:none;
  filter:drop-shadow(0 6px 16px rgba(0,155,131,.18));
}
.header__cta-label{
  position:relative;z-index:2;
  display:grid;place-items:center;text-align:center;
  padding:7px 12px;
  background:#fff;border:1.5px solid var(--green);border-right:0;
  border-radius:8px 0 0 8px;
  font-size:11px;font-weight:700;line-height:1.35;color:var(--green-dark);
  letter-spacing:.02em;white-space:nowrap;
}
.header__cta-label::after{
  content:"";position:absolute;right:-10px;top:-1.5px;bottom:-1.5px;width:11px;
  background:#fff;clip-path:polygon(0 0,100% 50%,0 100%);
}
.header__cta-btn{
  display:flex;align-items:center;gap:10px;
  padding:0 20px 0 26px;min-height:46px;
  margin-left:-1px;
  background:linear-gradient(96deg,var(--green) 0%,#00A78D 55%,#12A2A8 130%);
  color:#fff;border-radius:0 8px 8px 0;
  font-size:14.5px;font-weight:700;letter-spacing:.02em;line-height:1.4;white-space:nowrap;
  transition:filter .3s var(--ease);
}
.header__cta:hover .header__cta-btn{filter:brightness(1.07);}
.header__cta-btn svg{width:15px;height:15px;stroke:#fff;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}

.nav{display:flex;align-items:center;gap:clamp(15px,1.9vw,29px);}
.nav__link{
  position:relative;font-size:14.5px;font-weight:700;white-space:nowrap;padding:6px 0;
  transition:color .25s var(--ease);
}
.nav__link::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:1.5px;
  background:var(--green);transform:scaleX(0);transform-origin:left;
  transition:transform .32s var(--ease);
}
.nav__link:hover{color:var(--green-dark);}
.nav__link:hover::after{transform:scaleX(1);}
.nav__cta{min-height:46px;padding:0 22px;font-size:14.5px;border-radius:6px;box-shadow:none;}

.burger{display:none;width:46px;height:46px;margin-right:-8px;position:relative;}
.burger span{
  position:absolute;left:12px;width:22px;height:1.5px;background:var(--text);
  transition:transform .32s var(--ease),opacity .2s var(--ease);
}
.burger span:nth-child(1){top:17px;}
.burger span:nth-child(2){top:23px;}
.burger span:nth-child(3){top:29px;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

.drawer{
  position:fixed;inset:0;z-index:99;background:var(--white);
  padding:calc(var(--header-h) + 20px) 24px 48px;
  opacity:0;visibility:hidden;overflow-y:auto;
  transition:opacity .3s var(--ease),visibility .3s var(--ease);
}
.drawer.is-open{opacity:1;visibility:visible;}
.drawer__list{border-top:1px solid var(--border);}
.drawer__list a{display:block;padding:19px 4px;font-size:16px;font-weight:700;border-bottom:1px solid var(--border);}
.drawer__cta{margin-top:30px;display:grid;gap:12px;}
.drawer__cta .btn{width:100%;}

/* =========================================================
   下部固定CTAバー
   ========================================================= */
.cta-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:90;
  display:flex;justify-content:center;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));
  background:rgba(255,255,255,.93);
  -webkit-backdrop-filter:saturate(1.2) blur(8px);
  backdrop-filter:saturate(1.2) blur(8px);
  border-top:1px solid var(--border);
  transform:translateY(130%);
  transition:transform .45s var(--ease);
}
.cta-bar.is-show{transform:none;}
.cta-bar__inner{
  display:flex;align-items:stretch;gap:0;
  width:100%;max-width:560px;
  border-radius:9px;
  filter:drop-shadow(0 8px 22px rgba(0,155,131,.24));
}
.cta-bar__label{
  position:relative;z-index:2;
  display:grid;place-items:center;text-align:center;
  padding:8px 16px;background:#fff;border:1.5px solid var(--green);border-right:0;
  border-radius:9px 0 0 9px;
  font-size:11.5px;font-weight:700;line-height:1.45;color:var(--green-dark);
  white-space:nowrap;
}
.cta-bar__label::after{
  content:"";position:absolute;right:-11px;top:-1.5px;bottom:-1.5px;width:12px;
  background:#fff;clip-path:polygon(0 0,100% 50%,0 100%);
}
.cta-bar__btn{
  flex:1;display:flex;align-items:center;justify-content:center;gap:10px;
  min-height:58px;padding:0 14px;
  background:linear-gradient(96deg,var(--green) 0%,#00A78D 55%,#12A2A8 130%);
  color:#fff;font-size:clamp(16.5px,4.7vw,18.5px);font-weight:700;letter-spacing:.01em;
  border-radius:0 9px 9px 0;
  transition:filter .3s var(--ease);
}
.cta-bar__btn:hover{filter:brightness(1.06);}
.cta-bar__btn .btn__arrow{background:rgba(255,255,255,.22);}
.cta-bar__btn .btn__arrow svg{stroke:#fff;}

/* =========================================================
   ファーストビュー
   ========================================================= */
.hero{
  position:relative;
  padding-top:calc(var(--header-h) + clamp(44px,8vw,80px));
  padding-bottom:0;
  background:linear-gradient(180deg,#F2FAF8 0%,#F8FCFB 60%,#F4FAF9 100%);
  overflow:hidden;
  text-align:center;
}
.hero__category{
  display:inline-flex;align-items:center;gap:10px;
  font-size:clamp(12.5px,3.4vw,14px);font-weight:700;color:var(--green-dark);
  letter-spacing:.06em;padding:10px 22px;border-radius:100px;
  background:#fff;line-height:1.5;
  box-shadow:0 4px 14px rgba(12,54,48,.06);
}
.hero__category::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green);}
.hero__title{
  margin-top:clamp(26px,3.6vw,38px);
  font-size:clamp(40px,10.6vw,92px);
  font-weight:900;line-height:1.24;letter-spacing:-.04em;
}
.hero__title .line{display:block;}
.hl{
  display:inline-block;
  color:var(--green);
  letter-spacing:-.02em;
}
.hero__quotes{
  margin-top:clamp(34px,4.6vw,54px);
  font-size:clamp(17px,4.7vw,27px);
  font-weight:700;line-height:1.95;letter-spacing:-.01em;
}
.hero__quotes span{display:block;}
.hero__sub{
  margin:clamp(28px,3.6vw,40px) auto 0;
  max-width:24em;
  font-size:clamp(15.5px,4.1vw,20px);
  font-weight:500;line-height:1.95;letter-spacing:-.005em;
}
.hero__actions{
  margin-top:clamp(34px,4.4vw,48px);
  display:flex;flex-wrap:wrap;gap:14px;justify-content:center;
}
.hero__tags{
  margin-top:clamp(26px,3.2vw,38px);
  display:flex;flex-wrap:wrap;gap:10px;justify-content:center;
  font-size:12.5px;font-weight:700;color:var(--green-dark);
}
.hero__tags li{background:#fff;border-radius:100px;padding:8px 18px;line-height:1.5;}

.hero__collage{
  position:relative;
  margin-top:clamp(44px,6vw,76px);
  height:clamp(250px,31vw,380px);
}
.hero__ghost{
  position:absolute;left:50%;top:2%;transform:translateX(-50%);
  font-size:clamp(54px,13.5vw,180px);font-weight:700;line-height:1;
  color:rgba(0,155,131,.09);white-space:nowrap;letter-spacing:-.03em;
  pointer-events:none;
}
.hero__strip{
  position:absolute;left:50%;top:21%;
  transform:translateX(-50%) rotate(-7deg);
  display:flex;gap:clamp(10px,1.6vw,20px);
  width:max-content;min-width:130vw;justify-content:center;
}
.hero__strip img{
  width:clamp(118px,15.5vw,200px);
  border-radius:10px;
  box-shadow:0 16px 36px rgba(12,54,48,.16);
}

/* =========================================================
   数字
   ========================================================= */
.stats{display:grid;grid-template-columns:repeat(3,1fr);}
.stats__item{padding:8px clamp(14px,3vw,42px);text-align:center;}
.stats__item + .stats__item{border-left:1px solid var(--border);}
.stats__cap{
  display:inline-block;font-size:12.5px;font-weight:700;line-height:1.5;
  color:var(--green-dark);background:var(--mint);padding:6px 16px;border-radius:100px;
}
.stats__num{
  display:block;margin:16px 0 10px;
  font-size:clamp(46px,7.6vw,92px);font-weight:700;line-height:1.08;
  letter-spacing:-.015em;
  color:var(--green);
}
.stats__num .u{font-size:.5em;margin-left:.04em;}
.stats__num--text{font-size:clamp(32px,5.2vw,60px);}
.stats__label{font-size:13.5px;font-weight:700;line-height:1.7;}

/* =========================================================
   悩み（色面＋白の2段カード）
   ========================================================= */
.issues{
  display:flex;flex-wrap:wrap;justify-content:center;
  gap:clamp(34px,3.6vw,44px) clamp(16px,1.8vw,22px);
}
.issue{flex:0 1 calc((100% - 2 * clamp(16px,1.8vw,22px)) / 3);min-width:260px;}
.issue{
  position:relative;background:#fff;border-radius:var(--r);
  box-shadow:0 14px 34px rgba(12,54,48,.08);
  display:flex;flex-direction:column;
}
.issue__top{
  position:relative;
  background:linear-gradient(140deg,var(--green) 0%,#0E8E86 78%,#12A2A8 130%);
  color:#fff;border-radius:var(--r) var(--r) 0 0;
  padding:clamp(34px,3.6vw,42px) clamp(24px,3vw,32px) clamp(30px,3.2vw,38px);
  font-size:clamp(15px,4vw,17px);font-weight:700;line-height:1.85;
  flex:1;display:flex;align-items:center;
}
.issue__top::after{
  content:"";position:absolute;left:50%;bottom:-13px;
  width:28px;height:28px;background:#0E8E86;
  transform:translateX(-50%) rotate(45deg);
  border-radius:3px;
}
.issue__icon{
  position:absolute;top:-24px;left:50%;transform:translateX(-50%);
  width:52px;height:52px;border-radius:50%;
  background:#fff;border:1px solid var(--border);
  display:grid;place-items:center;
  box-shadow:0 8px 20px rgba(12,54,48,.1);
}
.issue__icon svg{width:24px;height:24px;stroke:var(--green);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.issue__bottom{
  flex:0 0 auto;
  padding:clamp(26px,3vw,34px) clamp(24px,3vw,32px) clamp(24px,2.8vw,30px);
  text-align:center;
  font-size:clamp(14.5px,3.8vw,16px);font-weight:700;line-height:1.85;
}
.issues__note{
  margin-top:clamp(40px,4.5vw,58px);
  background:#fff;border:1.5px solid var(--green);border-radius:var(--r);
  padding:clamp(22px,3vw,30px) 24px;text-align:center;
  font-size:clamp(15px,2vw,20px);font-weight:700;line-height:1.85;color:var(--green-dark);
}

/* =========================================================
   サービス（写真の上に文字を重ねた全幅カード）
   ========================================================= */
.svcs{display:grid;gap:clamp(18px,2.4vw,28px);}
.svc{
  position:relative;overflow:hidden;
  border-radius:22px;
  min-height:clamp(360px,44vw,480px);
  display:grid;align-content:center;
  padding:clamp(44px,6vw,70px) clamp(26px,6vw,64px);
  text-align:center;color:#fff;
  isolation:isolate;
}
.svc__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;}
.svc::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(9,42,38,.52),rgba(9,42,38,.66));
}
.svc__num{
  position:absolute;top:clamp(18px,2.4vw,28px);left:clamp(22px,3vw,34px);
  font-size:clamp(40px,6vw,72px);font-weight:700;line-height:1;
  color:rgba(255,255,255,.3);letter-spacing:-.03em;
}
.svc__title{
  font-size:clamp(27px,7vw,44px);font-weight:700;line-height:1.35;letter-spacing:-.02em;
  text-shadow:0 2px 20px rgba(0,0,0,.25);
}
.svc__rule{
  width:min(340px,70%);height:2px;background:rgba(255,255,255,.9);
  margin:clamp(20px,2.6vw,30px) auto;
}
.svc__text{
  font-size:clamp(15.5px,4.2vw,19px);line-height:1.95;font-weight:500;
  max-width:24em;margin-inline:auto;
  text-shadow:0 2px 16px rgba(0,0,0,.28);
}

/* =========================================================
   中間CTAバンド
   ========================================================= */
.band{
  position:relative;overflow:hidden;
  background:linear-gradient(102deg,#00A68C 0%,var(--green) 32%,#068376 68%,#0C8394 96%,#1596B4 116%);
  color:#fff;
  padding:clamp(44px,5.5vw,64px) 0;
}
.band__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;}
.band__text{font-size:clamp(23px,6.2vw,32px);font-weight:700;line-height:1.55;letter-spacing:-.015em;}
.band__sub{margin-top:10px;font-size:clamp(14px,3.7vw,15px);line-height:1.8;color:rgba(255,255,255,.86);font-weight:500;}

/* =========================================================
   選ばれる理由（左右交互の画像＋テキスト）
   ========================================================= */
.reasons{display:grid;gap:clamp(48px,7vw,104px);}
.reason{
  display:grid;grid-template-columns:minmax(0,52fr) minmax(0,48fr);
  gap:clamp(28px,4.4vw,68px);align-items:center;
}
.reason--r .reason__media{order:2;}

.reason__media{position:relative;padding:0 0 20px 20px;}
.reason--r .reason__media{padding:0 20px 20px 0;}
.reason__media::before{
  content:"";position:absolute;left:0;bottom:0;width:72%;height:76%;
  border-radius:var(--r);background:#fff;
}
.reason--r .reason__media::before{left:auto;right:0;}
.reason__media figure{
  position:relative;margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;
  background:var(--mint-pale);box-shadow:0 22px 50px rgba(12,54,48,.13);
}
.reason__media img{width:100%;height:100%;object-fit:cover;}

.reason__top{display:flex;align-items:center;gap:14px;}
.reason__label{
  font-size:11.5px;font-weight:700;color:var(--green);letter-spacing:.18em;line-height:1.4;
}
.reason__num{
  font-size:clamp(46px,7vw,76px);font-weight:700;line-height:.92;
  color:var(--green);letter-spacing:-.05em;
}
.reason__icon{
  width:clamp(52px,5.4vw,62px);height:clamp(52px,5.4vw,62px);border-radius:50%;
  background:#fff;display:grid;place-items:center;flex-shrink:0;
  box-shadow:0 8px 20px rgba(12,54,48,.08);
}
.reason__icon svg{
  width:clamp(24px,2.6vw,28px);height:clamp(24px,2.6vw,28px);
  stroke:var(--green);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;
}
.reason__title{
  margin-top:clamp(16px,2vw,22px);
  font-size:clamp(22px,4.4vw,34px);font-weight:700;line-height:1.45;letter-spacing:-.02em;
}
.reason__text{
  margin-top:clamp(14px,1.8vw,20px);max-width:30em;
  font-size:clamp(15px,4vw,16.5px);line-height:1.95;color:var(--sub);
}

/* =========================================================
   運用実績（濃色バンド）
   ========================================================= */
.deep{
  position:relative;overflow:hidden;
  background:linear-gradient(155deg,#0C3630 0%,#0A2B27 52%,#0E3D45 130%);
  color:#fff;
  padding:clamp(80px,10vw,140px) 0;
}
.deep::before{
  content:"";position:absolute;width:min(620px,80vw);aspect-ratio:1;border-radius:50%;
  background:rgba(32,169,212,.13);filter:blur(80px);top:-24%;right:-12%;
}
.deep .wrap{position:relative;}
.deep .h2{color:#fff;}
.deep .head__label{color:#5FD3BE;}
.deep .lead{color:rgba(255,255,255,.72);}

.works{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,24px);}
.work{
  position:relative;
  padding:clamp(28px,3vw,36px) clamp(22px,2.4vw,30px);
  border:1px solid rgba(255,255,255,.16);
  border-radius:var(--r);
  background:rgba(255,255,255,.04);
}
.work__meta{font-size:12.5px;font-weight:700;color:#5FD3BE;line-height:1.6;letter-spacing:.04em;}
.work__num{
  display:block;margin:14px 0 10px;
  font-size:clamp(40px,5.6vw,64px);font-weight:700;line-height:1.14;letter-spacing:-.015em;
}
.work__num .u{font-size:.42em;margin-left:.1em;}
.work__num--text{font-size:clamp(30px,4.2vw,46px);}
.work__label{font-size:14.5px;font-weight:500;line-height:1.85;color:rgba(255,255,255,.68);}

/* =========================================================
   医療領域
   ========================================================= */
.care{
  display:grid;grid-template-columns:minmax(0,50fr) minmax(0,50fr);
  gap:clamp(34px,4.4vw,64px);align-items:center;
  margin-bottom:clamp(44px,5.4vw,72px);
}
.care__media{position:relative;padding:0 22px 22px 0;}
.care__media::before{
  content:"";position:absolute;right:0;bottom:0;width:72%;height:76%;
  border-radius:var(--r);background:var(--mint);
}
.care__media figure{
  position:relative;margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:5/4;
  box-shadow:0 22px 50px rgba(12,54,48,.12);
}
.care__media img{width:100%;height:100%;object-fit:cover;}
.care .h2{font-size:clamp(22px,3.1vw,33px);}

.points__label{
  margin:clamp(30px,3.6vw,44px) 0 clamp(14px,1.8vw,20px);
  font-size:clamp(15px,4vw,18px);font-weight:700;line-height:1.6;letter-spacing:-.01em;
  padding-left:14px;border-left:4px solid var(--green);
}
.points{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,1.8vw,22px);}
.point{
  position:relative;overflow:hidden;
  background:#fff;border:1px solid var(--border);border-radius:var(--r);
  padding:clamp(28px,3vw,36px) clamp(24px,2.8vw,34px);
}
.point__head{display:flex;align-items:center;gap:14px;}
.point__icon{
  flex-shrink:0;width:46px;height:46px;border-radius:12px;
  background:var(--mint-pale);border:1px solid var(--border);
  display:grid;place-items:center;
}
.point__icon svg{width:22px;height:22px;stroke:var(--green);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.point__num{font-size:12.5px;font-weight:700;color:var(--green);letter-spacing:.12em;line-height:1.4;}
.point__title{margin-top:2px;font-size:clamp(16px,1.9vw,18.5px);font-weight:700;line-height:1.6;}
.point__text{margin-top:18px;font-size:15px;line-height:1.95;color:var(--sub);}

.point--accent{
  background:var(--mint);border-color:#BFE3DB;
  padding-left:clamp(26px,2.8vw,34px);
}
.point--accent::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(to bottom,var(--green),#12A2A8);
}
.point--accent .point__icon{background:#fff;border-color:#C6E6DF;}
.point--accent .point__title{font-size:clamp(17px,2.1vw,20px);}

.chain{
  margin-top:clamp(26px,3vw,36px);
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;
  padding:clamp(20px,2.4vw,26px) clamp(20px,2.6vw,28px);
  background:#fff;border:1px solid var(--border);border-radius:var(--r);
}
.chain__step{
  font-size:13px;font-weight:700;line-height:1.5;
  padding:9px 16px;border-radius:100px;background:var(--mint-pale);color:var(--text);
}
.chain__step--on{background:var(--mint);color:var(--green-dark);}
.chain__sep{color:var(--green);font-size:13px;line-height:1;}
.chain__note{width:100%;margin-top:4px;font-size:12px;line-height:1.8;color:var(--sub);}

/* =========================================================
   代表紹介
   ========================================================= */
.ceo__inner{
  display:grid;grid-template-columns:minmax(0,41fr) minmax(0,59fr);
  gap:clamp(32px,4.4vw,60px);align-items:center;
  max-width:1040px;margin-inline:auto;
}
.ceo__portrait{position:relative;padding:0 22px 22px 0;}
.ceo__portrait::before{
  content:"";position:absolute;right:0;bottom:0;width:74%;height:76%;
  border-radius:var(--r);background:var(--mint);
}
.ceo__portrait figure{
  position:relative;margin:0;border-radius:var(--r);overflow:hidden;
  background:var(--mint-pale);box-shadow:0 20px 46px rgba(12,54,48,.1);
}
.ceo__head{max-width:clamp(120px,15vw,148px);margin-bottom:clamp(12px,1.5vw,16px);}
.ceo__name{max-width:clamp(196px,26vw,244px);margin-bottom:clamp(20px,2.6vw,28px);}
.ceo__text{max-width:600px;}

/* =========================================================
   料金
   ========================================================= */
.price{
  position:relative;overflow:hidden;
  border-radius:16px;background:#fff;
  box-shadow:0 20px 54px rgba(12,54,48,.1);
  text-align:center;
  padding:clamp(48px,6vw,76px) clamp(20px,4vw,58px) clamp(40px,5vw,60px);
}
.price::before{
  content:"";position:absolute;inset:0 0 auto 0;height:6px;
  background:linear-gradient(90deg,var(--green) 0%,#0FA09B 62%,var(--blue) 100%);
}
.price__amount{
  font-size:clamp(48px,10.5vw,104px);font-weight:700;line-height:1.06;letter-spacing:-.02em;
  color:var(--green);
}
.price__amount .pre{font-size:.42em;margin-right:.08em;letter-spacing:.02em;}
.price__amount .u{font-size:.4em;margin-left:.06em;}
.price__cap{margin-top:14px;font-size:12.5px;font-weight:700;color:var(--sub);}
.sp-br{display:none;}
@media (max-width:640px){.sp-br{display:block;}}
.price__catch{margin-top:28px;font-size:clamp(19px,2.7vw,28px);font-weight:700;line-height:1.6;}
.price__text{margin-top:16px;font-size:16.5px;line-height:2;color:var(--sub);}
.price__initial{
  display:inline-flex;align-items:center;gap:10px;margin-top:28px;
  padding:13px 24px;border-radius:8px;background:var(--mint);
  font-size:14px;font-weight:700;color:var(--green-dark);
}
.price__notes{max-width:620px;margin:30px auto 0;text-align:left;font-size:12.5px;line-height:1.95;color:var(--sub);}
.price__notes li{padding-left:1.1em;position:relative;}
.price__notes li::before{content:"※";position:absolute;left:0;}
.price__action{
  margin-top:36px;display:flex;flex-wrap:wrap;gap:14px;justify-content:center;
}
.price__action .btn{flex:1 1 320px;max-width:420px;padding:0 22px;font-size:clamp(16px,4.2vw,18px);justify-content:space-between;}

/* =========================================================
   導入の流れ
   ========================================================= */
.flow{max-width:780px;margin-inline:auto;}
.flow__item{position:relative;padding:0 0 clamp(26px,3.4vw,38px) clamp(72px,9vw,96px);}
.flow__item::before{
  content:"";position:absolute;left:clamp(24px,3.1vw,31px);top:58px;bottom:0;width:2px;
  background:linear-gradient(to bottom,var(--green),rgba(0,155,131,.18));
}
.flow__item:last-child{padding-bottom:0;}
.flow__item:last-child::before{display:none;}
.flow__badge{
  position:absolute;left:0;top:0;
  width:clamp(50px,6.4vw,64px);height:clamp(50px,6.4vw,64px);border-radius:50%;
  background:#fff;border:2px solid var(--green);color:var(--green);
  display:grid;place-items:center;
  font-size:clamp(16px,2vw,19px);font-weight:700;line-height:1;letter-spacing:.02em;
}
.flow__card{
  background:#fff;border:1px solid var(--border);border-radius:10px;
  padding:clamp(16px,2vw,21px) clamp(20px,2.4vw,26px);
}
.flow__title{font-size:clamp(17px,2.2vw,21px);font-weight:700;line-height:1.6;}
.flow__note{
  margin-top:clamp(30px,4vw,44px);max-width:780px;margin-inline:auto;
  padding:22px 26px;background:var(--mint);border-radius:10px;
  font-size:14px;line-height:1.95;color:var(--green-dark);font-weight:700;
}

/* =========================================================
   FAQ（広い余白のカード）
   ========================================================= */
.faq{max-width:900px;margin-inline:auto;display:grid;gap:clamp(18px,2.2vw,26px);}
.faq__item{
  background:#fff;border-radius:18px;
  padding:clamp(30px,4.4vw,52px) clamp(24px,4vw,56px);
  box-shadow:0 14px 36px rgba(12,54,48,.06);
}
.faq__row{display:grid;grid-template-columns:auto 1fr;gap:clamp(16px,3vw,32px);align-items:start;}
.faq__mark{
  font-size:clamp(26px,5.4vw,34px);font-weight:700;line-height:1.2;
  letter-spacing:.02em;
}
.faq__mark--q{color:var(--green);}
.faq__mark--a{color:var(--blue);}
.faq__qt{
  font-size:clamp(17px,4.4vw,22px);font-weight:700;line-height:1.7;
  padding-top:clamp(2px,.6vw,6px);
}
.faq__divider{
  height:1px;background:var(--border);
  margin:clamp(22px,3vw,32px) 0;
}
.faq__at{
  font-size:clamp(15px,4vw,17px);line-height:1.95;color:var(--sub);
  padding-top:clamp(4px,.8vw,9px);
}

/* =========================================================
   Contact
   ========================================================= */
.closing{
  background:var(--mint-pale);
  padding:0 clamp(10px,1.6vw,18px) clamp(10px,1.6vw,18px);
}
.contact{
  position:relative;overflow:hidden;
  background:linear-gradient(102deg,#00A68C 0%,var(--green) 30%,#068376 64%,#0C8394 92%,#1596B4 108%);
  color:#fff;
  padding:clamp(76px,9.5vw,128px) 0;
  text-align:center;
  border-radius:clamp(22px,3.2vw,36px);
}
.contact::before{
  content:"";position:absolute;width:min(560px,80vw);aspect-ratio:1;border-radius:50%;
  background:rgba(255,255,255,.1);filter:blur(70px);top:-30%;left:-6%;
}
.contact .wrap{position:relative;}
.contact__label{
  display:inline-block;font-size:13px;font-weight:700;letter-spacing:.09em;
  padding:8px 20px;border-radius:100px;background:rgba(255,255,255,.18);margin-bottom:22px;
}
.contact__title{font-size:clamp(21px,5.4vw,46px);font-weight:700;line-height:1.5;}
.contact__title .br{display:block;}
.contact__text{margin:26px auto 0;max-width:40em;font-size:clamp(14.5px,1.6vw,16px);line-height:2.1;color:rgba(255,255,255,.9);}
.contact__actions{margin-top:44px;display:grid;justify-items:center;gap:14px;}
.contact__actions .btn{justify-content:space-between;}

/* ---------- Contact 内の3ステップ ---------- */
.steps{
  margin:clamp(32px,4vw,46px) auto 0;
  display:flex;flex-wrap:wrap;justify-content:center;
  gap:clamp(10px,1.4vw,16px);
  max-width:820px;
}
.step{
  flex:1 1 220px;
  display:grid;gap:4px;
  padding:20px 18px;
  border-radius:12px;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.22);
  text-align:center;
}
.step__n{font-size:12px;font-weight:700;letter-spacing:.14em;color:rgba(255,255,255,.75);line-height:1.4;}
.step__t{font-size:clamp(15.5px,4vw,17.5px);font-weight:700;line-height:1.5;}
.step__d{font-size:12.5px;line-height:1.6;color:rgba(255,255,255,.8);}
.contact__note{
  margin:clamp(22px,2.6vw,30px) auto 0;max-width:36em;
  font-size:12.5px;line-height:1.85;color:rgba(255,255,255,.8);
}
.price__note2{margin-top:16px;font-size:12.5px;line-height:1.8;color:var(--sub);}

/* =========================================================
   フッター
   ========================================================= */
.footer{
  background:var(--footer);color:rgba(255,255,255,.72);
  padding:clamp(52px,6.4vw,76px) 0 clamp(34px,4vw,42px);
  margin-top:clamp(10px,1.6vw,18px);
  border-radius:clamp(22px,3.2vw,36px);
  font-size:14px;
}
.closing__space{height:96px;background:var(--mint-pale);}
.footer__top{display:flex;flex-wrap:wrap;gap:clamp(32px,6vw,80px);justify-content:space-between;align-items:flex-start;}
.footer__logo img{width:180px;}
.footer__tag{margin-top:18px;font-size:13px;line-height:1.9;color:rgba(255,255,255,.62);}
.footer__nav{display:grid;gap:14px;align-content:start;}
.footer__nav a{font-size:14px;font-weight:500;transition:color .25s var(--ease);}
.footer__nav a:hover{color:#fff;}
.footer__bottom{
  margin-top:clamp(40px,5vw,60px);padding-top:24px;border-top:1px solid rgba(255,255,255,.14);
  display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;
  font-size:12.5px;color:rgba(255,255,255,.55);
}
.footer__about{transition:color .25s var(--ease);}
.footer__about:hover{color:#fff;}

/* =========================================================
   代表紹介ページ
   ========================================================= */
.pf{padding-top:calc(var(--header-h) + clamp(48px,7vw,96px));padding-bottom:clamp(72px,9vw,120px);}
.pf__head{max-width:340px;margin:0 auto clamp(40px,5vw,60px);}
.pf__head img{width:100%;}
.pf__grid{
  display:grid;grid-template-columns:minmax(0,38fr) minmax(0,62fr);
  gap:clamp(32px,5vw,64px);align-items:start;max-width:980px;margin-inline:auto;
}
.pf__portrait{border-radius:var(--r);overflow:hidden;background:var(--mint-pale);}
.pf__portrait img{width:100%;}
.pf__name{max-width:330px;margin-bottom:clamp(24px,3vw,34px);}
.pf__name img{width:100%;}
.pf__body img{width:100%;max-width:600px;}
.pf__back{margin-top:clamp(48px,6vw,72px);text-align:center;}
.pf__navcta{display:none;}
@media (max-width:1040px){.pf__navcta{display:inline-flex;min-height:42px;padding:0 16px;font-size:13.5px;}}

/* ---------- グラデーション文字（非対応環境は単色にフォールバック） ---------- */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .head__label,
  .deep .head__label,
  .stats__num,
  .price__amount,
  .hl{
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
  }
  .head__label{background-image:var(--label-grad);}
  .hl{background-image:var(--logo-grad);background-size:150% 100%;}
  .deep .head__label{background-image:linear-gradient(92deg,#5FD3BE 0%,#6FC9E6 55%,#5FD3BE 100%);}
  .stats__num{background-image:linear-gradient(100deg,var(--green) 10%,#0FA09B 70%,var(--blue) 130%);}
  .price__amount{background-image:linear-gradient(100deg,var(--green) 8%,#0FA09B 66%,var(--blue) 128%);}
}

/* =========================================================
   サンクスページ（資料請求後）
   ========================================================= */
.alert-top{
  margin-top:var(--header-h);
  background:var(--logo-grad);background-size:180% 100%;
  color:#fff;text-align:center;
  padding:clamp(30px,4.2vw,46px) var(--pad) clamp(28px,3.8vw,42px);
}
.alert-top__bang{
  width:clamp(48px,6.4vw,58px);height:clamp(48px,6.4vw,58px);border-radius:50%;
  margin:0 auto clamp(14px,1.8vw,20px);
  background:rgba(255,255,255,.2);border:1.5px solid rgba(255,255,255,.6);
  display:grid;place-items:center;
  font-size:clamp(24px,3.2vw,30px);font-weight:700;line-height:1;
}
.alert-top__title{
  font-size:clamp(23px,6vw,38px);font-weight:700;line-height:1.42;letter-spacing:-.02em;
}
.alert-top__text{
  margin:clamp(12px,1.6vw,18px) auto 0;max-width:32em;
  font-size:clamp(14.5px,3.9vw,17px);line-height:1.85;color:rgba(255,255,255,.93);
}

.thanks{
  padding-top:clamp(44px,6vw,80px);
  padding-bottom:clamp(60px,7vw,90px);
  background:linear-gradient(180deg,#F2FAF8 0%,#FAFDFC 55%,#FFFFFF 100%);
  text-align:center;
}
.thanks__icon{
  width:clamp(84px,12vw,104px);height:clamp(84px,12vw,104px);border-radius:50%;
  margin:0 auto clamp(26px,3.4vw,36px);
  background:var(--logo-grad);background-size:180% 100%;
  display:grid;place-items:center;
  box-shadow:0 18px 40px rgba(5,120,140,.26);
}
.thanks__icon svg{
  width:clamp(38px,5.4vw,46px);height:clamp(38px,5.4vw,46px);
  stroke:#fff;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;
}
.thanks__title{
  font-size:clamp(27px,6.4vw,48px);font-weight:700;line-height:1.38;letter-spacing:-.02em;
}
.thanks__title .br{display:block;}
.thanks__text{
  margin:clamp(24px,3vw,32px) auto 0;max-width:34em;
  font-size:clamp(15.5px,4.1vw,18px);line-height:1.95;
}
.thanks__note{
  margin:clamp(16px,2vw,22px) auto 0;max-width:34em;
  font-size:13px;line-height:1.85;color:var(--sub);
}

.offer{
  margin:clamp(40px,5vw,64px) auto 0;max-width:820px;
  background:#fff;border:1px solid var(--border);border-radius:20px;
  overflow:hidden;text-align:left;
  box-shadow:0 18px 44px rgba(12,54,48,.1);
}
.offer__body{padding:clamp(32px,4.6vw,56px) clamp(24px,4vw,56px);}

.offer__alert{
  background:var(--logo-grad);background-size:180% 100%;
  color:#fff;text-align:center;
  padding:clamp(26px,3.6vw,38px) clamp(20px,3vw,32px) clamp(24px,3.2vw,34px);
}
.offer__bang{
  width:clamp(44px,6vw,54px);height:clamp(44px,6vw,54px);border-radius:50%;
  margin:0 auto clamp(14px,1.8vw,18px);
  background:rgba(255,255,255,.2);border:1.5px solid rgba(255,255,255,.55);
  display:grid;place-items:center;
  font-size:clamp(22px,3vw,27px);font-weight:700;line-height:1;
}
.offer__alertTitle{
  font-size:clamp(21px,5.4vw,32px);font-weight:700;line-height:1.45;letter-spacing:-.02em;
}
.offer__alertText{
  margin:clamp(12px,1.6vw,16px) auto 0;max-width:30em;
  font-size:clamp(14.5px,3.9vw,16px);line-height:1.85;color:rgba(255,255,255,.92);
}
.offer__label{
  display:inline-block;font-size:clamp(14px,3.8vw,17px);font-weight:700;
  background:var(--label-grad);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  margin-bottom:10px;
}
.offer__title{font-size:clamp(20px,5vw,28px);font-weight:700;line-height:1.55;letter-spacing:-.015em;}
.offer__text{margin-top:16px;font-size:clamp(15px,4vw,16.5px);line-height:1.95;color:var(--sub);}

.offer__ways{
  margin-top:clamp(24px,3vw,32px);
  display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(12px,1.6vw,16px);
}
.way{
  border:1px solid var(--border);border-radius:14px;
  padding:clamp(20px,2.6vw,26px);
  background:var(--mint-pale);
}
.way__icon{
  width:44px;height:44px;border-radius:12px;background:#fff;
  display:grid;place-items:center;margin-bottom:14px;
  border:1px solid var(--border);
}
.way__icon svg{width:22px;height:22px;stroke:var(--green);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.way__t{font-size:clamp(16px,4.2vw,18px);font-weight:700;line-height:1.5;}
.way__d{margin-top:8px;font-size:13.5px;line-height:1.8;color:var(--sub);}

.offer__list{margin-top:clamp(26px,3.2vw,34px);display:grid;gap:10px;}
.offer__list li{
  display:flex;align-items:flex-start;gap:12px;
  background:var(--mint);border-radius:10px;padding:16px 20px;
  font-size:clamp(14.5px,3.9vw,16px);font-weight:700;line-height:1.75;
}
.offer__check{
  flex-shrink:0;width:22px;height:22px;margin-top:2px;border-radius:50%;
  background:var(--green);display:grid;place-items:center;
}
.offer__check svg{width:11px;height:11px;stroke:#fff;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;}
.offer__action{margin-top:clamp(28px,3.4vw,38px);text-align:center;}
.offer__action .btn{width:100%;max-width:460px;justify-content:space-between;}
.offer__fine{margin-top:16px;font-size:12.5px;line-height:1.8;color:var(--sub);text-align:center;}

.thanks__back{margin-top:clamp(36px,4.4vw,52px);}

@media (max-width:640px){
  .offer__ways{grid-template-columns:1fr;}
}

/* ---------- 日程調整ウィジェット ---------- */
.booking{
  margin:clamp(40px,5vw,64px) auto 0;max-width:820px;text-align:left;
}
.booking__head{text-align:center;margin-bottom:clamp(22px,2.8vw,30px);}
.booking__label{
  display:inline-block;font-size:clamp(14px,3.8vw,17px);font-weight:700;
  background:var(--label-grad);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  margin-bottom:10px;
}
.booking__title{font-size:clamp(20px,5vw,30px);font-weight:700;line-height:1.5;letter-spacing:-.015em;}
.booking__text{
  margin:clamp(14px,1.8vw,18px) auto 0;max-width:32em;
  font-size:clamp(14.5px,3.9vw,16px);line-height:1.9;color:var(--sub);
}
.booking__frame{
  background:#fff;border:1px solid var(--border);border-radius:16px;
  padding:clamp(8px,1.2vw,14px);
  box-shadow:0 16px 40px rgba(12,54,48,.08);
  overflow:hidden;
}
.booking__frame .jicoo-widget{
  width:100% !important;min-width:0 !important;
  border:0 !important;border-radius:10px;
  box-sizing:border-box !important;
}
.booking__alt{
  margin-top:clamp(18px,2.2vw,24px);
  text-align:center;font-size:13.5px;line-height:1.9;color:var(--sub);
}
.booking__alt a{color:var(--green-dark);font-weight:700;text-decoration:underline;text-underline-offset:3px;}

/* =========================================================
   規約系ページ
   ========================================================= */
.legal{
  padding-top:calc(var(--header-h) + clamp(48px,6vw,84px));
  padding-bottom:clamp(60px,7vw,96px);
}
.legal__eyebrow{
  display:inline-block;font-size:clamp(13px,3.6vw,16px);font-weight:700;
  background:var(--label-grad);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  margin-bottom:10px;
}
.legal__title{
  font-size:clamp(28px,6.4vw,46px);font-weight:700;line-height:1.4;letter-spacing:-.02em;
}
.legal__intro{
  margin-top:clamp(24px,3vw,32px);
  padding:clamp(22px,2.8vw,30px) clamp(20px,2.6vw,30px);
  background:var(--mint-pale);border-radius:14px;
  font-size:clamp(14.5px,3.9vw,16px);line-height:1.95;color:var(--sub);
}
.legal__sec{margin-top:clamp(38px,4.6vw,60px);}
.legal__sec h2{
  font-size:clamp(18px,4.6vw,24px);font-weight:700;line-height:1.6;letter-spacing:-.01em;
  padding-left:16px;border-left:4px solid var(--green);
}
.legal__sec h3{
  margin-top:clamp(22px,2.6vw,30px);
  font-size:clamp(15.5px,4.1vw,17.5px);font-weight:700;line-height:1.6;color:var(--green-dark);
}
.legal__sec p{
  margin-top:clamp(14px,1.8vw,20px);
  font-size:clamp(14.5px,3.9vw,16px);line-height:1.95;color:var(--sub);
}
.legal__sec ul{margin-top:clamp(14px,1.8vw,18px);display:grid;gap:8px;}
.legal__sec li{
  position:relative;padding-left:20px;
  font-size:clamp(14.5px,3.9vw,16px);line-height:1.9;color:var(--sub);
}
.legal__sec li::before{
  content:"";position:absolute;left:2px;top:.82em;
  width:7px;height:7px;border-radius:50%;background:var(--green);opacity:.55;
}
.legal__sec a{color:var(--green-dark);font-weight:700;text-decoration:underline;text-underline-offset:3px;}

.legal__dl{
  margin-top:clamp(16px,2vw,22px);
  border-top:1px solid var(--border);
}
.legal__dl > div{
  display:grid;grid-template-columns:8em 1fr;gap:16px;
  padding:16px 4px;border-bottom:1px solid var(--border);
}
.legal__dl dt{font-size:14px;font-weight:700;line-height:1.7;}
.legal__dl dd{margin:0;font-size:14.5px;line-height:1.85;color:var(--sub);}

.legal__date{
  margin-top:clamp(40px,4.6vw,60px);
  padding-top:clamp(22px,2.6vw,28px);
  border-top:1px solid var(--border);
  font-size:13.5px;line-height:1.9;color:var(--sub);
}
.legal__back{margin-top:clamp(36px,4.2vw,52px);text-align:center;}

@media (max-width:560px){
  .legal__dl > div{grid-template-columns:1fr;gap:4px;}
}

/* =========================================================
   資料請求ページ
   ========================================================= */
.dl-head{
  background:linear-gradient(160deg,#EEF8F5 0%,#F6FBFA 60%,#EFF8F7 100%);
  padding:calc(var(--header-h) + clamp(40px,5.4vw,64px)) 0 clamp(36px,4.8vw,56px);
}
.dl-head__label{
  display:inline-block;
  padding:9px 22px;border-radius:100px;background:#fff;
  font-size:clamp(13px,3.5vw,14.5px);font-weight:700;color:var(--green-dark);
  line-height:1.5;letter-spacing:.04em;margin-bottom:clamp(14px,1.8vw,20px);
  box-shadow:0 4px 14px rgba(12,54,48,.06);
}
.dl-head__title{
  font-size:clamp(26px,6.4vw,46px);font-weight:900;line-height:1.35;letter-spacing:-.025em;
}

.dl{padding:clamp(44px,6vw,80px) 0 clamp(60px,7vw,96px);}
.dl__grid{
  display:grid;grid-template-columns:minmax(0,54fr) minmax(0,46fr);
  gap:clamp(36px,5vw,72px);align-items:start;
}

/* ---------- フォーム ---------- */
.form{
  background:#fff;border:1px solid var(--border);border-radius:18px;
  padding:clamp(26px,3.6vw,44px);
  box-shadow:0 18px 44px rgba(12,54,48,.07);
}
.field + .field{margin-top:clamp(20px,2.4vw,26px);}
.field__label{
  display:flex;align-items:center;gap:10px;
  font-size:14.5px;font-weight:700;line-height:1.6;margin-bottom:10px;
}
.badge-req,.badge-opt{
  font-size:11px;font-weight:700;line-height:1;letter-spacing:.04em;
  padding:5px 8px;border-radius:4px;
}
.badge-req{background:var(--green);color:#fff;}
.badge-opt{background:var(--mint);color:var(--green-dark);}
.field input,
.field select,
.field textarea{
  width:100%;
  font:inherit;font-size:16px;font-weight:500;color:var(--text);
  background:var(--mint-pale);
  border:1px solid var(--border);border-radius:10px;
  padding:15px 16px;
  transition:border-color .25s var(--ease),background-color .25s var(--ease);
}
.field select{appearance:none;background-image:none;padding-right:44px;}
.field__select{position:relative;}
.field__select::after{
  content:"";position:absolute;right:18px;top:50%;
  width:9px;height:9px;margin-top:-6px;
  border-right:2px solid var(--green);border-bottom:2px solid var(--green);
  transform:rotate(45deg);pointer-events:none;
}
.field input::placeholder,.field textarea::placeholder{color:#9AA5A3;font-weight:500;}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;background:#fff;border-color:var(--green);
  box-shadow:0 0 0 3px rgba(0,155,131,.14);
}
.field__note{margin-top:8px;font-size:12.5px;line-height:1.7;color:var(--sub);}
.form__action{margin-top:clamp(26px,3.2vw,34px);}
.form__action .btn{width:100%;justify-content:space-between;}
.form__agree{
  margin-top:18px;text-align:center;
  font-size:12.5px;line-height:1.8;color:var(--sub);
}
.form__agree a{color:var(--green-dark);font-weight:700;text-decoration:underline;text-underline-offset:3px;}

/* ---------- 資料の説明 ---------- */
.dl-about__text{
  font-size:clamp(15px,4vw,16.5px);line-height:1.95;color:var(--sub);
}
.dl-about__title{
  margin-top:clamp(28px,3.4vw,38px);
  font-size:clamp(17px,4.4vw,20px);font-weight:700;line-height:1.6;
  padding-left:14px;border-left:4px solid var(--green);
}
.dl-about__list{margin-top:clamp(16px,2vw,22px);display:grid;gap:10px;}
.dl-about__list li{
  display:flex;align-items:flex-start;gap:12px;
  background:var(--mint);border-radius:10px;padding:15px 18px;
  font-size:clamp(14.5px,3.9vw,15.5px);font-weight:700;line-height:1.75;
}
.dl-about__check{
  flex-shrink:0;width:22px;height:22px;margin-top:2px;border-radius:50%;
  background:var(--green);display:grid;place-items:center;
}
.dl-about__check svg{width:11px;height:11px;stroke:#fff;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;}

.cover{
  margin:clamp(28px,3.4vw,40px) 0 0;
  border-radius:16px;overflow:hidden;
  border:1px solid var(--border);
  box-shadow:0 18px 44px rgba(12,54,48,.1);
  background:var(--mint-pale);
}
.cover img{width:100%;height:auto;display:block;}
.cover__caption{
  margin-top:12px;font-size:12.5px;line-height:1.8;color:var(--sub);text-align:center;
}

@media (max-width:900px){
  .dl__grid{grid-template-columns:1fr;gap:38px;}
}


/* =========================================================
   記事一覧・本文・検索（WordPress用）
   ========================================================= */
.cards{display:grid;gap:clamp(14px,1.8vw,20px);}
.card{
  display:block;background:#fff;border:1px solid var(--border);border-radius:14px;
  padding:clamp(24px,3vw,32px);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.card:hover{transform:translateY(-2px);border-color:var(--green);box-shadow:0 14px 34px rgba(12,54,48,.08);}
.card__date{font-size:12.5px;font-weight:700;color:var(--green);letter-spacing:.06em;line-height:1.5;}
.card__title{margin-top:10px;font-size:clamp(17px,4.4vw,21px);font-weight:700;line-height:1.6;}
.card__excerpt{margin-top:12px;font-size:14.5px;line-height:1.9;color:var(--sub);}

.pager{margin-top:clamp(30px,3.6vw,44px);}
.pager .nav-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;}
.pager .page-numbers{
  display:grid;place-items:center;min-width:44px;height:44px;padding:0 14px;
  border:1px solid var(--border);border-radius:8px;background:#fff;
  font-size:14px;font-weight:700;color:var(--text);
}
.pager .page-numbers.current{background:var(--green);border-color:var(--green);color:#fff;}
.pager .page-numbers:hover{border-color:var(--green);color:var(--green-dark);}

.entry{font-size:clamp(15px,4vw,16.5px);line-height:1.95;color:var(--sub);}
.entry h2{
  margin:clamp(34px,4vw,48px) 0 16px;font-size:clamp(19px,4.8vw,24px);font-weight:700;
  line-height:1.6;color:var(--text);padding-left:16px;border-left:4px solid var(--green);
}
.entry h3{margin:clamp(26px,3vw,34px) 0 12px;font-size:clamp(16.5px,4.3vw,19px);font-weight:700;line-height:1.6;color:var(--green-dark);}
.entry p{margin-top:16px;}
.entry ul,.entry ol{margin-top:16px;display:grid;gap:8px;padding-left:1.4em;}
.entry ul li{list-style:disc;} .entry ol li{list-style:decimal;}
.entry a{color:var(--green-dark);font-weight:700;text-decoration:underline;text-underline-offset:3px;}
.entry img{border-radius:12px;margin:24px 0;}
.entry blockquote{
  margin:24px 0;padding:20px 24px;background:var(--mint-pale);
  border-left:4px solid var(--green);border-radius:0 10px 10px 0;
}
.entry table{width:100%;border-collapse:collapse;margin:24px 0;font-size:14.5px;}
.entry th,.entry td{border:1px solid var(--border);padding:12px 14px;text-align:left;}
.entry th{background:var(--mint-pale);font-weight:700;color:var(--text);}
.entry__thumb{margin:clamp(24px,3vw,34px) 0 0;border-radius:14px;overflow:hidden;}
.entry__thumb img{width:100%;height:auto;display:block;}

.searchform{display:flex;gap:10px;margin-top:20px;}
.searchform input[type="search"]{
  flex:1;font:inherit;font-size:16px;background:var(--mint-pale);
  border:1px solid var(--border);border-radius:10px;padding:14px 16px;
}
.searchform input[type="search"]:focus{outline:none;background:#fff;border-color:var(--green);}
.screen-reader-text{
  position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);
  clip-path:inset(50%);white-space:nowrap;
}

/* お問い合わせページ用（明るい背景のステップ） */
.steps--light{margin:clamp(28px,3.4vw,38px) 0 0;max-width:none;justify-content:flex-start;}
.steps--light .step{
  background:var(--mint-pale);border-color:var(--border);color:var(--text);
}
.steps--light .step__n{color:var(--green);}
.steps--light .step__d{color:var(--sub);}
.dl-about__note{margin-top:clamp(20px,2.4vw,26px);font-size:12.5px;line-height:1.85;color:var(--sub);}
.dl-lead{
  margin:0 auto clamp(30px,3.6vw,42px);max-width:32em;text-align:center;
  font-size:clamp(15px,4vw,16.5px);line-height:1.95;color:var(--sub);
}


/* =========================================================
   SEOランディングページ（/implant-sns/ など）
   ========================================================= */
.crumb{
  padding-top:var(--header-h);
  background:var(--mint-pale);border-bottom:1px solid var(--border);
}
.crumb ol{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  padding:14px 0;font-size:12.5px;line-height:1.6;color:var(--sub);
}
.crumb a{color:var(--green-dark);font-weight:700;}
.crumb a:hover{text-decoration:underline;text-underline-offset:3px;}
.crumb li + li::before{content:"／";margin-right:8px;color:var(--border);}
.crumb li{display:flex;align-items:center;}

.lp-fv{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,#F1FAF7 0%,#F9FDFC 58%,#FFFFFF 100%);
  padding:clamp(44px,6vw,80px) 0 clamp(56px,7vw,92px);
}
.lp-fv__inner{
  display:grid;grid-template-columns:minmax(0,54fr) minmax(0,46fr);
  gap:clamp(34px,5vw,68px);align-items:center;
}
.lp-fv__label{
  display:inline-block;font-size:clamp(12.5px,3.4vw,14px);font-weight:700;
  color:var(--green-dark);background:#fff;padding:9px 20px;border-radius:100px;
  line-height:1.5;box-shadow:0 4px 14px rgba(12,54,48,.06);
}
.lp-fv__title{
  margin-top:clamp(20px,2.6vw,28px);
  font-size:clamp(30px,6.6vw,54px);font-weight:900;line-height:1.34;letter-spacing:-.03em;
}
.lp-fv__title .br{display:block;}
.lp-fv__text{
  margin-top:clamp(22px,2.8vw,30px);
  font-size:clamp(15px,4vw,16.5px);line-height:1.95;color:var(--sub);max-width:34em;
}
.lp-fv__price{
  display:inline-flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  margin-top:clamp(24px,3vw,32px);
  padding:16px 24px;border-radius:12px;background:var(--mint);
}
.lp-fv__amount{font-size:clamp(24px,5.4vw,32px);font-weight:900;line-height:1.2;color:var(--green-dark);letter-spacing:-.02em;}
.lp-fv__cap{font-size:12px;font-weight:700;line-height:1.6;color:var(--sub);}
.lp-fv__actions{margin-top:clamp(26px,3.2vw,36px);display:flex;flex-wrap:wrap;gap:14px;}
.lp-fv__media{position:relative;padding:0 20px 20px 0;}
.lp-fv__media::before{
  content:"";position:absolute;right:0;bottom:0;width:72%;height:76%;
  border-radius:var(--r);background:var(--mint);
}
.lp-fv__media figure{
  position:relative;margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;
  box-shadow:0 22px 50px rgba(12,54,48,.13);
}
.lp-fv__media img{width:100%;height:100%;object-fit:cover;}

/* 2列カード（お悩みなど） */
.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,22px);}
.tile{
  background:#fff;border:1px solid var(--border);border-radius:var(--r);
  padding:clamp(26px,3vw,36px);
}
.section--pale .tile,.section--mint .tile{box-shadow:0 12px 30px rgba(12,54,48,.05);}
.tile__title{
  font-size:clamp(17px,4.4vw,20px);font-weight:700;line-height:1.6;
  padding-left:14px;border-left:4px solid var(--green);
}
.tile__text{margin-top:14px;font-size:clamp(14.5px,3.9vw,15.5px);line-height:1.95;color:var(--sub);}
.tiles__note{
  margin-top:clamp(28px,3.4vw,40px);text-align:center;
  font-size:clamp(15px,4vw,19px);font-weight:700;line-height:1.85;color:var(--green-dark);
}

/* 企画例 */
.ideas{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,24px);}
.idea{
  background:#fff;border:1px solid var(--border);border-radius:var(--r);
  padding:clamp(26px,3vw,34px);
}
.idea__title{font-size:clamp(17px,4.4vw,19.5px);font-weight:700;line-height:1.6;}
.idea__cap{margin-top:14px;font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--green);}
.idea__list{margin-top:10px;display:grid;gap:9px;}
.idea__list li{
  position:relative;padding-left:20px;
  font-size:14.5px;line-height:1.85;color:var(--sub);
}
.idea__list li::before{
  content:"";position:absolute;left:2px;top:.8em;
  width:7px;height:7px;border-radius:50%;background:var(--green);opacity:.55;
}

/* 数字付きステップカード */
.steps4{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,22px);}
.step4{
  background:#fff;border:1px solid var(--border);border-radius:var(--r);
  padding:clamp(26px,3vw,36px);
}
.step4__n{font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--green);line-height:1.4;}
.step4__title{margin-top:6px;font-size:clamp(17px,4.4vw,20px);font-weight:700;line-height:1.6;}
.step4__text{margin-top:14px;font-size:clamp(14.5px,3.9vw,15.5px);line-height:1.95;color:var(--sub);}

.note-small{
  margin-top:clamp(22px,2.6vw,30px);
  font-size:12.5px;line-height:1.9;color:var(--sub);
}
.note-small li{padding-left:1.1em;position:relative;}
.note-small li::before{content:"※";position:absolute;left:0;}

.lp-related{
  margin-top:clamp(40px,5vw,60px);text-align:center;
  font-size:13.5px;line-height:1.9;
}
.lp-related a{color:var(--green-dark);font-weight:700;text-decoration:underline;text-underline-offset:3px;}

@media (max-width:900px){
  .lp-fv__inner{grid-template-columns:1fr;gap:34px;}
  .ideas{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .tiles,.steps4{grid-template-columns:1fr;}
  .lp-fv__actions .btn{width:100%;}
}

/* =========================================================
   モーション
   ========================================================= */
.reveal{opacity:0;transform:translateY(20px);}
.reveal.is-in{
  opacity:1;transform:none;
  transition:opacity .7s var(--ease),transform .7s var(--ease);
  transition-delay:var(--d,0s);
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;}
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important;}
}

/* =========================================================
   レスポンシブ
   ========================================================= */
@media (max-width:900px){
  .ceo__inner{grid-template-columns:1fr;gap:34px;}
  .ceo__portrait{max-width:330px;}
  .ceo__head{margin-inline:auto;max-width:132px;}
  .ceo__name{max-width:210px;margin-inline:auto;}
  .reason{grid-template-columns:1fr;gap:24px;}
  .reason--r .reason__media{order:0;padding:0 0 18px 18px;}
  .reason__media{padding:0 0 18px 18px;}
  .reason--r .reason__media::before{left:0;right:auto;}
  .care{grid-template-columns:1fr;gap:32px;}
  .care__media{order:2;}
  .points{grid-template-columns:1fr;}
  .works{grid-template-columns:1fr;gap:12px;}
  .issue{flex:1 1 100%;min-width:0;}
  .band__inner{flex-direction:column;align-items:flex-start;}
  .band .btn{width:100%;}
}

@media (max-width:760px){
  /* 参考サイト同様、モバイルはロゴ＋タグラインのみ。CTAは下部固定バーが担う */
  .header__cta{display:none;}
  .header__inner{justify-content:flex-start;}
  .header__brand{gap:10px;}
  .header__tag{
    padding-left:10px;font-size:11.5px;letter-spacing:0;
    white-space:normal;
  }
  .header__tag::before{height:16px;}
}

@media (max-width:370px){
  .header__logo img{width:110px;}
  .header__tag{font-size:10px;padding-left:8px;}
  .header__brand{gap:8px;}
}

@media (max-width:640px){
  :root{--pad:20px;--header-h:64px;}
  .cta-bar__label{font-size:11px;padding:8px 12px;}
  .cta-bar__btn{min-height:56px;}
  body{line-height:1.85;}
  .header.is-scrolled{height:58px;}
  .header__logo img{width:126px;}
  .hero__actions .btn{width:100%;}

  .stats{grid-template-columns:1fr;gap:0;}
  .stats__item{
    padding:24px 0;text-align:left;
    display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:16px;
    border-top:1px solid var(--border);
  }
  .stats__item + .stats__item{border-left:0;}
  .stats__item:last-child{border-bottom:1px solid var(--border);}
  .stats__cap{grid-column:1;}
  .stats__num{grid-column:2;grid-row:1 / span 2;margin:0;font-size:clamp(40px,12.5vw,56px);text-align:right;}
  .stats__label{grid-column:1;margin-top:8px;}

  .issue{flex:1 1 100%;min-width:0;}
  .btn--lg{padding:0 22px;}
  .chain{flex-direction:column;align-items:flex-start;gap:8px;}
  .chain__step{width:100%;text-align:center;}
  .chain__sep{margin-left:calc(50% - 6px);transform:rotate(90deg);}
  .ceo__portrait{margin-inline:auto;padding:0 18px 18px 0;}
  .contact__actions .btn{width:100%;}
  .footer__top{flex-direction:column;gap:34px;}
  .footer__nav{width:100%;}
  .pf__grid{grid-template-columns:1fr;}
  .pf__portrait{max-width:320px;margin-inline:auto;}
}

/* =========================================================
   Contact Form 7（生成されるマークアップをサイトの見た目に合わせる）
   ========================================================= */
.form .wpcf7{margin:0;}
.form .wpcf7-form p{margin:0;}
.form .wpcf7-form-control-wrap{display:block;}
.form .wpcf7-form input[type="text"],
.form .wpcf7-form input[type="email"],
.form .wpcf7-form input[type="tel"],
.form .wpcf7-form input[type="url"],
.form .wpcf7-form input[type="number"],
.form .wpcf7-form input[type="date"],
.form .wpcf7-form select,
.form .wpcf7-form textarea{
  width:100%;
  font:inherit;font-size:16px;font-weight:500;color:var(--text);
  background:var(--mint-pale);
  border:1px solid var(--border);border-radius:10px;
  padding:15px 16px;
  transition:border-color .25s var(--ease),background-color .25s var(--ease),box-shadow .25s var(--ease);
}
.form .wpcf7-form select{appearance:none;padding-right:44px;}
.form .wpcf7-form textarea{min-height:150px;resize:vertical;}
.form .wpcf7-form input::placeholder,
.form .wpcf7-form textarea::placeholder{color:#9AA5A3;font-weight:500;}
.form .wpcf7-form input:focus,
.form .wpcf7-form select:focus,
.form .wpcf7-form textarea:focus{
  outline:none;background:#fff;border-color:var(--green);
  box-shadow:0 0 0 3px rgba(0,155,131,.14);
}
.form .wpcf7-not-valid{border-color:#D8564B !important;background:#FDF5F4 !important;}
.form .wpcf7-not-valid-tip{
  display:block;margin-top:8px;font-size:12.5px;font-weight:700;line-height:1.7;color:#C4473D;
}
.form .wpcf7-response-output{
  margin:20px 0 0 !important;padding:16px 18px !important;
  border:1px solid var(--border) !important;border-radius:10px;
  font-size:13.5px;line-height:1.8;background:var(--mint-pale);
}
.form .wpcf7 form.invalid .wpcf7-response-output,
.form .wpcf7 form.unaccepted .wpcf7-response-output,
.form .wpcf7 form.payment-required .wpcf7-response-output{
  border-color:#E7B7B2 !important;background:#FDF5F4;color:#C4473D;
}
.form .wpcf7 form.sent .wpcf7-response-output{
  border-color:#BFE3DB !important;background:var(--mint);color:var(--green-dark);
}
.form .wpcf7-submit{
  width:100%;cursor:pointer;border:0;
  display:inline-flex;align-items:center;justify-content:center;
  min-height:clamp(68px,9.2vw,78px);padding:0 38px;
  border-radius:8px;
  font-size:clamp(18.5px,5.3vw,22px);font-weight:700;letter-spacing:.01em;line-height:1.4;
  background:linear-gradient(96deg,var(--green) 0%,#00A78D 55%,#12A2A8 130%);
  color:#fff;box-shadow:0 10px 24px rgba(0,155,131,.22);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.form .wpcf7-submit:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,155,131,.3);}
.form .wpcf7-spinner{margin:14px auto 0;display:block;}
.form .wpcf7-list-item{margin:0 16px 0 0;}
.form .wpcf7-acceptance .wpcf7-list-item-label{font-size:13px;line-height:1.8;color:var(--sub);}
