/* four dentals — 会社サイト
   色と文字は案内ページ（Smile-Guard app/assets/stylesheets/program.css）と同じ。金は認定の箇所だけ。 */
:root{
  color-scheme: light;
  --bg:#FAFAF8; --bg-2:#F2F1EC; --paper:#FFFFFF;
  --sand:#EDE7DE; --sand-2:#E2D9CC;
  --ink:#1D2523; --ink-2:#48524F; --ink-3:#69726E;
  --sage:#6E8A7D; --sage-deep:#2E4740; --sage-soft:#E6EDE9; --night:#1F2B28;
  --gold:#A8813A; --gold-soft:#F7F1E3; --gold-line:#E4D5B2;
  --rule:#E3E5E1; --rule-dark:rgba(255,255,255,.14);
  --sans:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","YuGothic","Meiryo",sans-serif;
  --mincho:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
  --latin:"Avenir Next","Avenir","Helvetica Neue","Hiragino Sans",sans-serif;
  --gut:clamp(20px,5.2vw,88px);
  --max:1360px;
  --hd:76px;
  --ease:cubic-bezier(.22,.8,.24,1);
}
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--hd)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:400;line-height:2;letter-spacing:.06em;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-break:strict;word-break:keep-all;overflow-wrap:break-word;text-wrap:pretty;font-feature-settings:"palt" 1}
img{display:block;max-width:100%;height:auto}
html,body{overflow-x:clip}
a{color:inherit}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3{font-weight:400;text-wrap:balance}
:focus-visible{outline:2px solid var(--sage);outline-offset:4px;border-radius:2px}
::selection{background:var(--sage-soft)}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:8px 14px}
.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.en{font-family:var(--latin);letter-spacing:.24em;text-transform:uppercase;font-weight:500}
br.sp{display:none}
@media (max-width:640px){br.pc{display:none} br.sp{display:inline}}

/* ── ボタン・リンク ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:58px;padding:0 34px;border-radius:999px;background:var(--sage-deep);color:#fff;
  text-decoration:none;font-size:.9rem;font-weight:600;letter-spacing:.12em;transition:background .3s var(--ease),color .3s,transform .3s var(--ease)}
.btn::after{content:"";width:22px;height:1px;background:currentColor;transition:width .35s var(--ease)}
.btn:hover{background:#243a34}
.btn:hover::after{width:32px}
.btn--light{background:#fff;color:var(--sage-deep)}
.btn--light:hover{background:var(--sage-soft)}
.btn--line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.btn--line:hover{background:var(--ink);color:#fff}
.btn--sm{min-height:44px;padding:0 22px;font-size:.8rem}
.btn--sm::after{display:none}
.gnav .btn--sm[aria-current]{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.link{display:inline-flex;align-items:center;gap:16px;font-size:.88rem;font-weight:600;letter-spacing:.12em;text-decoration:none;color:var(--sage-deep);padding:6px 0}
.link::after{content:"";width:40px;height:1px;background:currentColor;transition:width .35s var(--ease)}
.link:hover::after{width:64px}
.link--light{color:#fff}

/* ── ヘッダー ── */
.hd{position:fixed;inset:0 0 auto;z-index:50;height:var(--hd);color:var(--ink);transition:background .4s var(--ease),color .4s,box-shadow .4s}
.hd__in{height:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gut);display:flex;align-items:center;justify-content:space-between;gap:24px}
.hd.is-solid,.hd.is-open{background:var(--bg);box-shadow:0 1px 0 var(--rule)}
body.on-dark .hd:not(.is-solid):not(.is-open){color:#fff}
.logo{display:inline-flex;flex-direction:column;text-decoration:none;line-height:1.15}
.logo__en{font-family:var(--latin);font-weight:500;font-size:1.22rem;letter-spacing:.14em}
.logo__ja{font-size:.6rem;letter-spacing:.24em;opacity:.62;margin-top:4px}
.gnav{display:flex;align-items:center;gap:32px}
.gnav ul{display:flex;gap:30px}
.gnav ul a{position:relative;text-decoration:none;font-size:.82rem;letter-spacing:.1em;padding:6px 0}
.gnav ul a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.gnav ul a:hover::after,.gnav ul a[aria-current]::after{transform:scaleX(1);transform-origin:left}
.gnav ul.gnav__sub{gap:20px;padding-left:28px;border-left:1px solid currentColor;border-color:rgba(127,127,127,.35)}
.gnav ul.gnav__sub a{font-size:.74rem;opacity:.8}
body.on-dark .hd:not(.is-solid) .gnav .btn{background:#fff;color:var(--sage-deep)}
.menu{display:none;align-items:center;gap:12px;background:none;border:0;color:inherit;font:600 .74rem var(--sans);letter-spacing:.14em;cursor:pointer;padding:10px 0}
.menu__bars{position:relative;width:26px;height:10px}
.menu__bars i{position:absolute;left:0;right:0;height:1px;background:currentColor;transition:transform .4s var(--ease),top .4s var(--ease)}
.menu__bars i:first-child{top:0}.menu__bars i:last-child{top:9px}
.hd.is-open .menu__bars i:first-child{top:5px;transform:rotate(20deg)}
.hd.is-open .menu__bars i:last-child{top:5px;transform:rotate(-20deg)}
.drawer{position:fixed;inset:var(--hd) 0 0;background:var(--bg);overflow:auto;padding:24px var(--gut) 56px}
.drawer ol{counter-reset:d}
.drawer li{border-bottom:1px solid var(--rule)}
.drawer a{display:block;text-decoration:none;padding:18px 0;font-size:1.2rem;letter-spacing:.08em}
.nf__links{display:flex;flex-wrap:wrap;gap:14px 32px;margin-top:40px}
@media (max-width:1100px){.gnav{display:none}.menu{display:inline-flex}}

/* ── 共通の段 ── */
.sec{padding:clamp(64px,8vw,128px) 0}
.sec--tight{padding:clamp(48px,6vw,88px) 0}
.sec--bg2{background:var(--bg-2)}
.sec--dark{background:var(--night);color:#fff}
.h2{font-weight:300;font-size:clamp(1.75rem,3.4vw,2.9rem);line-height:1.6;letter-spacing:.08em}
.h2 b,.h1 b,.display b{font-weight:600}
.lead{font-size:clamp(1rem,1.25vw,1.12rem);line-height:2.2;color:var(--ink-2);max-width:34em}
.sec--dark .lead{color:rgba(255,255,255,.78)}
.note{font-size:.78rem;line-height:1.9;color:var(--ink-3);letter-spacing:.05em}
.head{display:grid;grid-template-columns:5fr 7fr;gap:var(--gut);align-items:end;margin-bottom:clamp(36px,4.5vw,64px)}
.head .lead{justify-self:end}
@media (max-width:900px){.head{grid-template-columns:1fr;gap:28px}.head .lead{justify-self:start}}

/* 写真 */
.ph{position:relative;overflow:hidden;background:var(--sand)}
/* グリッドの子が写真の本来の幅で広がらないように */
.biz>*,.cert>*,.message>*,.about>*,.head>*,.ft__top>*{min-width:0}
.ph img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 2.4s var(--ease)}
.ph.is-in img{transform:scale(1)}
.ph figcaption{position:absolute;right:14px;bottom:10px;font-size:.6rem;letter-spacing:.14em;color:rgba(255,255,255,.75)}

/* 出てくる動き */
.rv{opacity:0;transform:translateY(28px);transition:opacity 1.2s var(--ease),transform 1.2s var(--ease)}
.rv.is-in{opacity:1;transform:none}
.rv-d1{transition-delay:.12s}.rv-d2{transition-delay:.24s}.rv-d3{transition-delay:.36s}.rv-d4{transition-delay:.48s}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv,.ph img{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
}

.acts{display:flex;flex-wrap:wrap;gap:16px}

/* ── トップ: 最初の画面（写真を使わず、文字で見せる） ── */
.ty{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 85% 10%,var(--sage-soft) 0%,rgba(230,237,233,0) 55%),var(--bg);min-height:min(100svh,980px);display:flex;flex-direction:column;justify-content:center;padding:calc(var(--hd) + 48px) 0 0}
.ty__in{position:relative;display:grid;grid-template-columns:auto 1fr;gap:clamp(28px,5vw,88px);align-items:start;width:100%}
.ty__side{writing-mode:vertical-rl;margin:6px 0 0;font-family:var(--mincho);font-size:.8rem;letter-spacing:.5em;color:var(--ink-3);padding-top:64px;position:relative;animation:tyFade 1.2s var(--ease) 1.4s both}
.ty__side::before{content:"";position:absolute;top:0;left:50%;width:1px;height:48px;background:var(--ink-3);transform-origin:top;animation:tyLineV 1s var(--ease) 1.2s both}
.ty__kicker{display:flex;align-items:center;gap:18px;margin:0 0 clamp(28px,4vw,48px);font-family:var(--mincho);font-size:clamp(.92rem,1.2vw,1.05rem);letter-spacing:.24em;color:var(--sage-deep);animation:tyFade 1s var(--ease) .1s both}
.ty__kicker::before{content:"";width:56px;height:1px;background:currentColor;transform-origin:left;animation:tyLineH 1s var(--ease) .1s both}
.ty__h{margin:0;font-family:var(--mincho);font-weight:500;font-size:clamp(2.2rem,4.7vw,4.6rem);line-height:1.5;letter-spacing:.12em;color:var(--ink)}
.ty__h b{font-weight:600}
.ty__row{display:block;overflow:hidden;padding-bottom:.06em}
.ty__h .ch{display:inline-block;transition:color .6s;animation:tyRise 1.1s var(--ease) both;animation-delay:calc(.35s + var(--i) * 45ms)}
.ty__h .ch.is-lit{color:#CC6A0E}
.ty__h .nb{white-space:nowrap}
.ty__lead{margin:clamp(28px,3.4vw,44px) 0 0;max-width:34em;font-size:clamp(.98rem,1.2vw,1.08rem);line-height:2.2;color:var(--ink-2);animation:tyFade 1.2s var(--ease) 1.5s both}
.ty__acts{display:flex;flex-wrap:wrap;gap:16px;margin-top:clamp(32px,4vw,48px);animation:tyFade 1.2s var(--ease) 1.7s both}
.ty__facts{position:relative;display:flex;flex-wrap:wrap;gap:0;list-style:none;margin:clamp(56px,8vw,112px) auto 0;padding-top:0;padding-bottom:0;border-top:1px solid var(--rule);animation:tyFade 1.2s var(--ease) 2s both}
.ty__facts li{display:flex;align-items:center;gap:14px;padding:22px 32px 26px 0;margin-right:32px;font-size:.8rem;letter-spacing:.1em;color:var(--ink-2)}
.ty__facts li+li{padding-left:32px;border-left:1px solid var(--rule)}
.ty__facts img{width:48px;height:auto}
.ty::before{content:"";position:absolute;inset:0;background:radial-gradient(520px circle at var(--mx,80%) var(--my,30%),rgba(110,138,125,.13),rgba(110,138,125,0) 70%);pointer-events:none;transition:background .2s}
.lm{--lm-a:#F2B618;--lm-b:#F09328;--lm-w:#fff;position:absolute;right:max(var(--gut),calc((100vw - var(--max)) / 2 + var(--gut)));top:50%;width:min(28vw,400px);margin:0;transform:translateY(-50%);perspective:1100px;pointer-events:none}
.lm svg{display:block;width:100%;height:auto;overflow:visible;transform-style:preserve-3d;transition:transform .5s var(--ease)}
.lm-p{transform-box:fill-box;transform-origin:50% 50%}.lm-p:last-child{transform-origin:50% 100%}
.lm path{pointer-events:visiblePainted;cursor:pointer}
.lm-acc,.lm-body{transform-box:fill-box;transform-origin:50% 50%;animation:lmIn 1.4s cubic-bezier(.2,1.25,.35,1) both}
.lm-acc{animation-delay:calc(.15s + var(--i) * 150ms)}
.lm-body{--fx:0px;--fy:-700px;--fr:90deg;animation-delay:.75s}
.lm-reveal{transform-box:fill-box;transform-origin:0 100%;animation:lmSmile 1.1s cubic-bezier(.65,0,.35,1) 2.1s both}
.lm-glint{opacity:0;transform-box:fill-box;transform-origin:center;animation:lmGlint 8s ease-in-out 3.1s infinite}
@keyframes lmIn{0%{opacity:0;transform:translate(var(--fx),var(--fy)) rotate(var(--fr)) scale(.3)}60%{opacity:1}100%{opacity:1;transform:none}}
@keyframes lmSmile{from{transform:scaleX(0)}to{transform:none}}
@keyframes lmGlint{0%{transform:translateX(-160px) rotate(-20deg);opacity:0}4%{opacity:.55}11%{transform:translateX(170px) rotate(-20deg);opacity:0}100%{transform:translateX(170px) rotate(-20deg);opacity:0}}
.lm-a{fill:var(--lm-a)}.lm-b{fill:var(--lm-b)}.lm-w{fill:var(--lm-w)}
/* 背景で流れ続ける文字 */
.ty__mq{position:absolute;left:0;right:0;bottom:clamp(90px,12vh,150px);z-index:0;pointer-events:none}
.ty__mq div{display:flex;width:max-content;white-space:nowrap;animation:tyMq 70s linear infinite}
.ty__mq div+div{margin-top:6px;animation-duration:50s;animation-direction:reverse}
.ty__mq span{padding-right:.6em;font-family:var(--mincho);font-size:clamp(2.6rem,6.4vw,6rem);line-height:1.15;letter-spacing:.06em;color:var(--sage);opacity:.09}
.ty__mq div+div span{font-family:var(--latin);font-weight:200;opacity:.07}
@keyframes tyMq{to{transform:translateX(-50%)}}
.ty__in,.ty__facts{z-index:1}
@keyframes tyRise{from{transform:translateY(105%)}to{transform:none}}
@keyframes tyFade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes tyLineH{from{transform:scaleX(0)}to{transform:none}}
@keyframes tyLineV{from{transform:scaleY(0)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.ty *,.ty__h .ch,.lm *{animation:none!important}}
@media (max-width:760px){
  .ty{min-height:0;padding-top:calc(var(--hd) + 16px)}
  .ty__in{grid-template-columns:1fr}
  .ty__side{display:none}
  .ty__kicker{font-size:.84rem;letter-spacing:.12em;gap:12px}
  .ty__kicker::before{width:28px}
  .ty__h{font-size:clamp(1.5rem,8vw,2.4rem);letter-spacing:.06em}
  .ty__mq{display:none}
  .lm{position:relative;right:auto;top:auto;transform:none;align-self:flex-end;width:min(48vw,220px);margin:-12px var(--gut) 4px 0;order:-1}
  .ty__facts{flex-direction:column}
  .ty__facts li,.ty__facts li+li{padding:16px 0;margin:0;border-left:0;border-bottom:1px solid var(--rule)}
}

/* ── トップ: 私たちについて（大きな文） ── */
.about{display:grid;grid-template-columns:1fr 9fr;gap:var(--gut);align-items:start}
.about__tate{writing-mode:vertical-rl;font-size:.86rem;letter-spacing:.46em;color:var(--sage);line-height:2.4;justify-self:center;padding-top:8px}
.about__text{font-weight:300;font-size:clamp(1.3rem,2.3vw,2rem);line-height:2.15;letter-spacing:.08em}
.about__text b{font-weight:600}
.about__text .kp span{display:inline-block}
.about__text p+p{margin-top:.9em}
.about__big{font-weight:500;color:var(--sage-deep);margin-top:1.4em!important}
.lc{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}.lc li{padding:30px 0;border-bottom:1px solid var(--rule)}
.lc b{display:block;font-weight:500;font-size:clamp(1.2rem,2.2vw,1.85rem);line-height:1.7;letter-spacing:.06em}.lc span{display:block;margin-top:8px;color:var(--ink-2);font-size:.95rem;max-width:40em}
@media (max-width:640px){.sec--merit{padding:56px 0}.sec--merit .head{margin-bottom:20px}.sec--merit .lc li{padding:18px 0}.sec--merit .lc b{font-size:1.1rem}.sec--merit .lc span{margin-top:4px;line-height:1.9}}
.mer{list-style:none;margin:40px 0 0;padding:0;border-top:1px solid var(--ink)}.mer li{padding:18px 0;border-bottom:1px solid var(--rule);font-weight:500;font-size:clamp(1.05rem,1.8vw,1.4rem);line-height:1.7;letter-spacing:.06em}
.about__small{font-size:.62em;line-height:2.2;color:var(--ink-2);margin-top:2.2em!important;max-width:30em}
.about--ph{grid-template-columns:1fr 6fr 4fr}
.about__ph{margin:0;aspect-ratio:4/5;align-self:center}
.about__ph img{object-position:72% center}
@media (max-width:900px){.about,.about--ph{grid-template-columns:1fr}.about__ph{aspect-ratio:3/2;margin-top:12px}.about__ph img{object-position:center}.about__tate{writing-mode:horizontal-tb;justify-self:start;letter-spacing:.2em;padding:0}}

/* ── 事業（大きな写真と文） ── */
.biz{display:grid;grid-template-columns:7fr 5fr;gap:0;align-items:stretch;background:var(--paper)}
.biz .ph{min-height:clamp(380px,46vw,680px)}
.biz__body{padding:clamp(40px,6vw,96px);display:flex;flex-direction:column;justify-content:center}
.biz__no{font-family:var(--latin);font-size:.7rem;letter-spacing:.3em;color:var(--ink-3);margin-bottom:22px}
.biz__name{font-family:var(--latin);font-weight:300;font-size:clamp(2rem,3.6vw,3.1rem);letter-spacing:.06em;line-height:1.2;margin-bottom:28px;white-space:nowrap}
.biz__body .lead{margin-bottom:36px}
@media (max-width:900px){.biz{grid-template-columns:1fr}.biz .ph{min-height:0;aspect-ratio:4/3}}

/* ── しくみ（一年の4つの場面） ── */
.year{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}
.year li{position:relative;padding:36px 32px 8px 0;border-right:1px solid var(--rule)}
.year li+li{padding-left:32px}
.year li:last-child{border-right:0}
.year__note{margin-top:36px}
@media (max-width:640px){.year__note{margin-top:16px}}
.year__n{font-family:var(--latin);font-weight:200;font-size:clamp(3rem,5vw,4.6rem);line-height:1;color:var(--sage);letter-spacing:0}
.year__when{display:block;font-size:.72rem;letter-spacing:.22em;color:var(--ink-3);margin:26px 0 10px}
.year h3{font-size:1.16rem;font-weight:600;letter-spacing:.1em;margin-bottom:14px}
.year p{font-size:.9rem;line-height:2.05;color:var(--ink-2)}
.year li::before{content:"";position:absolute;top:-4px;left:0;width:7px;height:7px;border-radius:50%;background:var(--ink);transform:scale(0);transition:transform .8s var(--ease) .3s}
.year li+li::before{left:32px}
.year li.is-in::before{transform:scale(1)}
@media (max-width:900px){
  .year{grid-template-columns:1fr}
  .year li,.year li+li{padding:28px 0 24px;border-right:0}
  .year li+li{border-top:1px solid var(--rule)}
  .year li::before,.year li+li::before{left:0}
  .year li:nth-child(n+3){margin-top:0}
}
@media (max-width:640px){
  .year li,.year li+li{display:grid;grid-template-columns:3.2rem 1fr;column-gap:12px;padding:16px 0 12px}
  .year__n{grid-row:1/4;font-size:2.4rem;padding-top:2px}
  .year__when{margin:0 0 4px}
  .year h3{margin-bottom:6px}
  .year p{line-height:1.9}
  .sec--year .head{margin-bottom:24px}
  .sec--year{padding:56px 0}
}

/* ── 認定 ── */
.cert{display:grid;grid-template-columns:5fr 7fr;gap:var(--gut);align-items:center}
.cert__logo{background:var(--paper);border:1px solid var(--gold-line);padding:clamp(32px,5vw,72px);display:grid;place-items:center}
.cert__logo img{width:min(230px,100%)}
@media (max-width:640px){.cert__logo{padding:28px}.cert__logo img{width:150px}}
.cert__title{font-weight:300;font-size:clamp(1.6rem,3vw,2.5rem);line-height:1.6;letter-spacing:.08em;margin-bottom:28px}
.cert__title b{font-weight:600}
.cert dl{display:grid;grid-template-columns:auto 1fr;gap:12px 28px;margin:34px 0;padding:26px 0;border-top:1px solid var(--gold-line);border-bottom:1px solid var(--gold-line);font-size:.9rem}
.cert dt{color:var(--gold);font-weight:600;letter-spacing:.14em}
.cert blockquote{font-size:.92rem;line-height:2.1;color:var(--ink-2);padding-left:20px;border-left:2px solid var(--gold-line);margin-bottom:28px}
@media (max-width:900px){.cert{grid-template-columns:1fr}}

/* ── 代表のことば（写真の上） ── */
.voice{position:relative;color:var(--ink);overflow:hidden;background:var(--sand)}
.voice .wrap{position:relative}
.voice__q{max-width:22em;font-weight:300;font-size:clamp(1.45rem,2.7vw,2.35rem);line-height:2;letter-spacing:.08em}
.voice__q::before{content:"“";display:block;font-family:Georgia,serif;font-size:4rem;line-height:.6;color:var(--sage);margin-bottom:22px}
.voice__by{margin:34px 0 40px;font-size:.88rem;letter-spacing:.18em;color:var(--ink-2)}
.voice__career{max-width:34em;margin:-22px 0 40px;font-size:.84rem;line-height:2;color:var(--ink-2)}
.voice__by small{display:block;font-size:.7rem;letter-spacing:.2em;color:var(--ink-3)}

/* ── 入口の一覧（行で並べる） ── */
.doors{border-top:1px solid var(--ink)}
.doors a{display:grid;grid-template-columns:1fr auto;gap:var(--gut);align-items:center;padding:34px 0;border-bottom:1px solid var(--rule);text-decoration:none;transition:padding .5s var(--ease),background .5s}
.doors a:hover{padding-left:20px;padding-right:20px;background:var(--paper)}
.doors b{display:block;font-size:clamp(1.1rem,1.6vw,1.36rem);font-weight:500;letter-spacing:.1em}
.doors span{display:block;font-size:.86rem;color:var(--ink-2);margin-top:4px}
.doors i{width:46px;height:46px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--rule);position:relative;transition:background .4s,box-shadow .4s}
.doors i::after{content:"";position:absolute;left:15px;top:22px;width:16px;height:1px;background:var(--ink);transition:background .4s}
.doors i::before{content:"";position:absolute;left:24px;top:18px;width:8px;height:8px;border-top:1px solid var(--ink);border-right:1px solid var(--ink);transform:rotate(45deg);transition:border-color .4s}
.doors a:hover i{background:var(--sage-deep);box-shadow:none}
.doors a:hover i::after{background:#fff}.doors a:hover i::before{border-color:#fff}
@media (max-width:760px){.doors a{gap:16px}}

/* ── 下層ページの見出し ── */
.ph-hero{padding:calc(var(--hd) + clamp(48px,6vw,96px)) 0 clamp(40px,5vw,72px)}
.crumb{display:flex;flex-wrap:wrap;gap:10px;font-size:.72rem;letter-spacing:.12em;color:var(--ink-3);margin-bottom:clamp(32px,4vw,56px)}
.crumb a{text-decoration:none}
.crumb li+li::before{content:"／";margin-right:10px}
.h1{font-weight:300;font-size:clamp(2rem,4.4vw,3.8rem);line-height:1.5;letter-spacing:.1em}
.h1 + .lead{margin-top:28px}

/* ── 共済ページ: 変わること（交互の行） ── */
.row__n{font-family:var(--latin);font-weight:200;font-size:clamp(2.6rem,4vw,3.6rem);line-height:1;color:var(--sage);margin-bottom:20px;letter-spacing:0}
.row h3{font-size:clamp(1.2rem,1.7vw,1.45rem);font-weight:400;line-height:1.75;letter-spacing:.08em;margin-bottom:24px}
.row h3 b{font-weight:600}
.rows--text{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(40px,5vw,80px);border-top:1px solid var(--ink);padding-top:clamp(40px,5vw,64px)}
.rows--text .lead{font-size:.95rem}
@media (max-width:900px){.rows--text{grid-template-columns:1fr}}
/* しくみ図（partials/scheme.html） */
.scheme{background:var(--paper);padding:clamp(28px,4vw,56px);margin-bottom:clamp(32px,4vw,56px)}
.biz--scheme{grid-template-columns:3fr 2fr}
.biz .scheme{margin:0;padding:clamp(24px,3vw,44px) clamp(16px,2vw,28px);background:var(--bg);display:flex;align-items:center}
.biz--scheme .scheme figcaption{display:none}
.biz--scheme .biz__body{padding:clamp(28px,3.6vw,56px)}
.biz--scheme .biz__body .lead{margin-bottom:24px}
.head--one{grid-template-columns:1fr}
@media (max-width:1100px){.biz--scheme{grid-template-columns:1fr}}
@media (max-width:900px){.biz--scheme .scheme{padding:20px}.biz--scheme .biz__body{padding:20px 20px 24px}.biz--scheme .biz__body .lead{line-height:1.95;margin-bottom:16px}}
@media (max-width:640px){.sec--biz{padding:48px 0}.sec--biz .head{margin-bottom:24px}}
.scheme svg{display:block;width:100%;height:auto;overflow:visible}
.scheme__tall{display:none!important;max-width:320px;margin:0 auto}
.scheme__wide{max-width:760px;margin:0 auto}
.scheme__wide .scheme__name{font-size:19px}
.scheme__wide .scheme__name--s{font-size:16px}
.scheme__wide .scheme__name--main{font-size:23px}
.scheme__wide .scheme__sub{font-size:13px}
.scheme__wide .scheme__label{font-size:14px}
@media (max-width:640px){.scheme__wide{display:none!important}.scheme__tall{display:block!important}}
.scheme__box{fill:var(--paper);stroke:var(--ink);stroke-width:1}
.scheme__box--main{fill:var(--sage-deep);stroke:var(--sage-deep)}
.scheme__name{font-size:17px;font-weight:500;letter-spacing:.08em;text-anchor:middle;fill:var(--ink)}
.scheme__name--s{font-size:15px}
.scheme__name--main{font-size:20px;fill:#fff}
.scheme__sub{font-size:12px;letter-spacing:.12em;text-anchor:middle;fill:var(--ink-3)}
.scheme__sub--main{fill:rgba(255,255,255,.8)}
.scheme__line{fill:none;stroke:var(--ink-2);stroke-width:1.2}
.scheme__head{fill:var(--ink-2)}
.scheme__label{font-size:13px;letter-spacing:.06em;fill:var(--ink-2)}
.scheme figcaption{margin-top:clamp(24px,3vw,36px);font-size:.86rem;line-height:2;color:var(--ink-2)}

/* 手順の行 */
.steps{border-top:1px solid var(--ink);counter-reset:s}
.steps li{display:grid;grid-template-columns:120px 260px 1fr;gap:var(--gut);align-items:baseline;padding:32px 0;border-bottom:1px solid var(--rule)}
.steps .n{font-family:var(--latin);font-size:.72rem;letter-spacing:.28em;color:var(--sage)}
.steps b{font-size:1.1rem;font-weight:600;letter-spacing:.1em}
.steps span{font-size:.94rem;color:var(--ink-2);line-height:2.05}
.sec--dark .steps{border-top-color:#fff}
.sec--dark .steps li{border-bottom-color:var(--rule-dark)}
.sec--dark .steps span{color:rgba(255,255,255,.75)}
.sec--dark .steps .n{color:var(--gold-line)}
@media (max-width:760px){.steps li{grid-template-columns:72px 1fr;gap:6px 16px;padding:26px 0}.steps li > span:not(.n){grid-column:2}}

/* 分けて並べる2列 */

/* よくある質問の入口 */

/* 締めの段（写真＋相談） */
.cta{position:relative;color:#fff;overflow:hidden;text-align:center;background:linear-gradient(180deg,var(--sage-deep),var(--night))}
.cta .wrap{position:relative}
.cta .h2{margin-bottom:26px}
.cta .lead{color:rgba(255,255,255,.85);margin:0 auto 44px}

/* ── よくある質問 ── */
.faq-list{max-width:900px;border-top:1px solid var(--ink)}
.faq-list .qa:first-child{border-top:0}
/* 当社がご用意するもの */
.shot{margin:0 0 clamp(36px,4.5vw,64px)}
.shot .ph{aspect-ratio:21/9}
.shot figcaption{margin-top:10px;font-size:.7rem;letter-spacing:.1em;color:var(--ink-3)}
@media (max-width:640px){.shot .ph{aspect-ratio:3/2}}
.kit{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}
.kit li{padding:36px 32px 40px 0;border-bottom:1px solid var(--rule)}
.kit li:not(:nth-child(3n+1)){padding-left:32px;border-left:1px solid var(--rule)}
.kit b{display:block;font-size:1.1rem;font-weight:600;letter-spacing:.08em;margin-bottom:12px}
.kit span{display:block;font-size:.92rem;line-height:2;color:var(--ink-2)}
@media (max-width:900px){.kit{grid-template-columns:1fr}.kit li,.kit li:not(:nth-child(3n+1)){padding:28px 0;border-left:0}}
.qa{border-bottom:1px solid var(--rule)}
.qa:first-child{border-top:1px solid var(--rule)}
.qa summary{list-style:none;display:grid;grid-template-columns:36px 1fr 24px;gap:12px;align-items:baseline;padding:26px 0;cursor:pointer;font-size:1.04rem;font-weight:500;letter-spacing:.08em;line-height:1.8}
.qa summary::-webkit-details-marker{display:none}
.qa summary::before{content:"Q";font-family:var(--latin);font-weight:300;font-size:1.3rem;color:var(--sage)}
.qa summary::after{content:"";justify-self:end;width:12px;height:12px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);transform:translateY(-4px) rotate(45deg);transition:transform .4s var(--ease)}
.qa[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.qa__a{display:grid;grid-template-columns:36px 1fr 24px;gap:12px;padding:0 0 30px;font-size:.95rem;line-height:2.1;color:var(--ink-2)}
.qa__a::before{content:"A";font-family:var(--latin);font-weight:300;font-size:1.3rem;color:var(--gold);line-height:1.5}

/* ── 情報の表 ── */
.table{width:100%;border-collapse:collapse;border-top:1px solid var(--ink)}
.table th,.table td{text-align:left;vertical-align:top;padding:26px 0;border-bottom:1px solid var(--rule);font-weight:400;line-height:2}
.table th{width:220px;font-size:.84rem;letter-spacing:.16em;color:var(--ink-3)}
.table td{font-size:.98rem}
@media (max-width:640px){.table,.table tbody,.table tr,.table th,.table td{display:block;width:auto}.table th{padding:22px 0 0;border-bottom:0}.table td{padding:4px 0 22px}}

/* 年表 */

/* 代表あいさつ（会社概要） */
.message{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,7vw,120px);align-items:start}
.message--solo{grid-template-columns:1fr;max-width:760px}
.message .ph{aspect-ratio:4/5;position:sticky;top:calc(var(--hd) + 32px)}
.message__body p{font-size:1.02rem;line-height:2.3;color:var(--ink-2)}
.message__body p+p{margin-top:1.6em}
.message__body .message__catch{font-weight:300;font-size:clamp(1.5rem,2.7vw,2.3rem);line-height:1.85;letter-spacing:.08em;color:var(--ink)!important;margin-bottom:44px!important}
.message__body .message__sign{margin-top:48px!important;text-align:right;color:var(--ink)!important}
.message__sign small{display:block;font-size:.76rem;color:var(--ink-3)}
.message__sign b{font-size:1.3rem;font-weight:500;letter-spacing:.3em}
.message__body .career{margin-top:56px;padding-top:32px;border-top:1px solid var(--rule);font-size:.9rem!important}
@media (max-width:900px){.message{grid-template-columns:1fr}.message .ph{position:static;max-width:420px}}

/* 案内の箱（加入者・導入医院） */
.guide{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--ink)}
.guide > div{padding:44px 44px 48px 0;border-bottom:1px solid var(--rule)}
.guide > div:nth-child(even){padding-left:44px;padding-right:0;border-left:1px solid var(--rule)}
.guide h2,.guide h3{font-size:1.2rem;font-weight:600;letter-spacing:.1em;margin-bottom:18px}
.guide p{font-size:.95rem;line-height:2.1;color:var(--ink-2)}
.guide .link{margin-top:18px}
.tlink{color:var(--sage-deep);font-weight:600;text-decoration:underline;text-underline-offset:4px}
@media (max-width:860px){.guide{grid-template-columns:1fr}.guide > div,.guide > div:nth-child(even){padding:36px 0;border-left:0}}
.notice{margin-top:56px;padding:28px 32px;background:var(--paper);border-left:2px solid var(--sage);font-size:.9rem;line-height:2;color:var(--ink-2)}

/* 問い合わせの用件 */
.purpose{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}
.purpose li{padding:40px 36px 44px 0;border-bottom:1px solid var(--rule)}
.purpose li+li{padding-left:36px;border-left:1px solid var(--rule)}
.purpose b{display:block;font-size:1.16rem;font-weight:600;letter-spacing:.1em;margin-bottom:14px}
.purpose p{font-size:.9rem;line-height:2;color:var(--ink-2)}
@media (max-width:860px){.purpose{grid-template-columns:1fr}.purpose li,.purpose li+li{padding:32px 0;border-left:0}}
.formbox{margin-top:72px;display:grid;grid-template-columns:7fr 4fr;gap:var(--gut);align-items:center;padding:clamp(36px,5vw,64px);background:var(--sage-deep);color:#fff}
.formbox p{color:rgba(255,255,255,.82);font-size:.94rem;line-height:2.1}
.formbox .h2{color:#fff;margin-bottom:16px;font-size:clamp(1.4rem,2.4vw,2rem)}
.formbox .btn{justify-self:end}
@media (max-width:860px){.formbox{grid-template-columns:1fr}.formbox .btn{justify-self:start}}

/* ── フッター ── */
.ft{background:var(--night);color:rgba(255,255,255,.72);padding:clamp(80px,9vw,128px) 0 40px;font-size:.84rem}
.ft__top{display:grid;grid-template-columns:5fr 7fr;gap:var(--gut)}
.logo--light{color:#fff}
.ft__lead{margin:28px 0 22px;color:#fff;font-size:1rem;letter-spacing:.1em}
.ft address{font-style:normal;line-height:2;color:rgba(255,255,255,.55);font-size:.8rem}
.ft__nav{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.ft__nav li{margin-bottom:14px}
.ft__nav a{text-decoration:none;transition:color .3s}
.ft__nav a:hover{color:#fff}
.ft__legal{font-size:.78rem}
.ft__cert{display:flex;align-items:center;gap:28px;margin-top:72px;padding:28px 0;border-top:1px solid var(--rule-dark);border-bottom:1px solid var(--rule-dark)}
.ft__cert img{width:120px;background:#fff;padding:10px 14px;border-radius:2px}
.ft__cert p{font-size:.78rem;line-height:1.9;color:rgba(255,255,255,.6)}
.ft__bottom{display:flex;justify-content:space-between;align-items:center;margin-top:32px;font-size:.72rem;letter-spacing:.14em;color:rgba(255,255,255,.45)}
.totop{text-decoration:none;white-space:nowrap}
.totop:hover{color:#fff}
@media (max-width:900px){.ft__top{grid-template-columns:1fr;gap:56px}.ft__nav{grid-template-columns:1fr 1fr}.ft__legal{grid-column:1/-1}}
@media (max-width:560px){.ft__cert{flex-direction:column;align-items:flex-start;gap:16px}}

/* ── 法令のページ ── */
.legal{max-width:880px}
.legal h2{font-size:1.18rem;font-weight:600;letter-spacing:.1em;margin:64px 0 18px;padding-top:28px;border-top:1px solid var(--rule)}
.legal h3{font-size:1rem;font-weight:600;letter-spacing:.08em;margin:36px 0 12px}
.legal p,.legal li{font-size:.94rem;line-height:2.1;color:var(--ink-2)}
.legal p+p{margin-top:1em}
.legal ol,.legal ul{padding-left:1.6em;margin:12px 0}
.legal ol{list-style:decimal}.legal ul{list-style:disc}
.legal li+li{margin-top:6px}
.legal .table td{font-size:.94rem;color:var(--ink-2)}

/* 404 */
.nf{min-height:80svh;display:flex;align-items:center}
.nf .wrap{width:100%}

/* メールアドレス */

/* ── スマホの文字（幅 320〜480px で、見出しが文節の途中で割れない大きさに段階的に縮める） ── */
.btn{white-space:nowrap}
@media (max-width:480px){
  body{letter-spacing:.04em}
  .h1{font-size:clamp(1.5rem,7.2vw,2rem);letter-spacing:.06em}
  .h2{font-size:clamp(1.4rem,6.4vw,1.75rem);letter-spacing:.06em}
  .cert__title{font-size:clamp(1.35rem,6vw,1.6rem)}
  .voice__q{font-size:clamp(1.2rem,5.4vw,1.45rem);letter-spacing:.05em}
  .ft__nav{grid-template-columns:1fr}
  .btn{padding:0 26px}
}
@media (max-width:360px){
  .btn{padding:0 20px;gap:12px;letter-spacing:.04em}
}
