@charset "UTF-8";
:root{
  --blue:#4198c2;
  --blue-d:#2f86b3;
  --navy:#063f63;
  --deep:#4b7697;
  --pale:#eaf8fd;
  --gold:#bea930;
  --txt:#2b2b2b;
  --grad:linear-gradient(180deg,#72b5c7 0%,#3f95c1 100%);
  --grad-h:linear-gradient(180deg,#77b8cb 0%,#4196c1 100%);
  --serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --en:"Cormorant Garamond","Noto Serif JP",serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);color:var(--txt);font-size:15px;line-height:1.8;letter-spacing:.05em;background:#fff;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
p{margin:0}
ul,ol,dl,dd,figure,h1,h2,h3{margin:0;padding:0}
ul,ol{list-style:none}
em{font-style:normal}
button{font:inherit;cursor:pointer}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pc{display:none}
@media (min-width:768px){.pc{display:inline}.sp{display:none}}
.inner{padding:0 20px;max-width:1340px;margin:0 auto}
@media (min-width:768px){.inner{padding:0 50px}}
.sec{padding:64px 0 72px}
@media (min-width:768px){.sec{padding:110px 0 120px}}

/* 見出し */
.ttl{text-align:center;font-weight:400;margin-bottom:28px}
.ttl .en{display:block;font-family:var(--en);font-weight:500;font-size:66px;line-height:1.05;letter-spacing:.02em;background:linear-gradient(90deg,#3f97c2 0%,#6fb3c6 50%,#3f97c2 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.ttl .ja{display:block;font-family:var(--serif);font-size:26px;line-height:1.55;letter-spacing:.1em;margin-top:6px}
.ttl--w .en{background:none;color:#fff}
.ttl--w .ja{color:#fff}
@media (min-width:768px){.ttl .en{font-size:96px}.ttl .ja{font-size:24px}}
.lead{text-align:center;font-family:var(--serif);font-size:16px;line-height:1.9;letter-spacing:.08em}
.lead + .lead{margin-top:14px}
.lead--s{font-size:15px}
@media (min-width:768px){.lead{font-size:18px}.lead--s{font-size:14px}}

.ic-tel{display:inline-block;width:.85em;height:.85em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1z'/%3E%3C/svg%3E") center/contain no-repeat;vertical-align:-.05em;margin-right:.2em}

/* ボタン */
.btn-gold,.btn-tel{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-family:var(--serif);box-shadow:0 6px 14px rgba(0,40,70,.22);transition:transform .2s,box-shadow .2s}
.btn-gold::before,.btn-tel::before{content:"";position:absolute;inset:5px;border:1px solid rgba(255,255,255,.8);pointer-events:none}
.btn-gold::after,.btn-tel::after{content:"";position:absolute;right:6px;bottom:6px;border-style:solid;border-width:0 0 12px 12px;border-color:transparent transparent #fff transparent}
.btn-gold{background:var(--gold);color:#fff;min-height:84px;font-size:20px;letter-spacing:.12em;padding:10px 16px}
.btn-tel{background:#fff;color:var(--blue);min-height:84px;padding:8px 16px}
.btn-tel::before{border-color:var(--blue)}
.btn-tel::after{border-color:transparent transparent var(--blue) transparent}
.btn-tel small{font-size:13px;letter-spacing:.1em}
.btn-tel span{font-size:34px;line-height:1.1;letter-spacing:.04em}
.btn-gold:hover,.btn-tel:hover{transform:translateY(-2px);box-shadow:0 10px 18px rgba(0,40,70,.28)}
@media (max-width:374px){.btn-gold{font-size:17px}.btn-tel span{font-size:29px}}

/* ===== ヘッダー ===== */
.hd{position:fixed;top:0;left:0;right:0;z-index:50;height:56px;background:rgba(255,255,255,.96);box-shadow:0 2px 10px rgba(0,0,0,.08);display:flex;align-items:center;padding-left:14px;transform:translateY(-100%);transition:transform .3s}
.hd.is-show{transform:none}
.hd-logo img{height:34px;width:auto}
.hd-btns{display:none}
.burger{margin-left:auto;width:56px;height:56px;border:0;background:var(--blue);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:0}
.burger span{display:block;width:28px;height:2px;background:#fff;transition:transform .3s,opacity .3s}
.is-open .burger span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.is-open .burger span:nth-child(2){opacity:0}
.is-open .burger span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
.is-open .hd{transform:none}
@media (min-width:768px){
  .hd{height:72px;padding-left:24px}
  .hd-logo img{height:44px}
  .hd-btns{display:flex;margin-left:auto;height:100%}
  .hd-btns + .burger{margin-left:0}
  .hd-tel{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0 22px;color:var(--blue);font-family:var(--serif);border:1px solid #cfe3ee;margin:4px 4px 4px 0;background:#fff}
  .hd-tel small{font-size:11px;letter-spacing:.1em}
  .hd-tel span{font-size:22px;line-height:1.2}
  .hd-web{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0 26px;background:var(--gold);color:#fff;font-family:var(--serif);font-size:20px;line-height:1.2;letter-spacing:.1em}
  .hd-web small{font-size:11px}
  .burger{width:72px;height:72px}
}

/* メニュー */
.nav{position:fixed;inset:0;z-index:45;background:rgba(6,63,99,.96);color:#fff;padding:80px 28px 40px;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.is-open .nav{opacity:1;visibility:visible}
.nav ul{max-width:520px;margin:0 auto}
.nav li a{display:block;padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.25);font-family:var(--serif);font-size:16px;letter-spacing:.1em}
.nav-cta{max-width:520px;margin:28px auto 0;display:grid;gap:12px}
.nav-cta .btn-gold,.nav-cta .btn-tel{min-height:70px}
.nav-cta .btn-gold{font-size:18px}
.nav-cta .btn-tel span{font-size:28px}

/* ===== FV（10/14：元のデザインに戻し、器具の写真の帯を「風」の柄に変更） ===== */
.nw{display:inline-block}
/* FVの上ではヘッダーを透明にして、デザインどおりロゴとボタンを写真の上に重ねる */
.hd{transform:none;background:transparent;box-shadow:none;transition:background .3s,box-shadow .3s}
.hd.is-show,.is-open .hd{background:rgba(255,255,255,.96);box-shadow:0 2px 10px rgba(0,0,0,.08)}
.hd-logo{display:block}
.hd-logo{position:relative}
.hd-logo::after{content:"";position:absolute;inset:0;background:url(img/logo_fv.png) 0 0/100% 100% no-repeat;transition:opacity .3s}
.hd:not(.is-show) .hd-logo img{opacity:0}
@media (max-width:767px){.hd-logo::after{background-image:url(img/logo_fv_w.png)}}
.hd.is-show .hd-logo::after,.is-open .hd-logo::after{opacity:0}
.is-open .hd-logo img{opacity:1}
.fv{position:relative;min-height:780px;overflow:hidden;color:#fff;background:#8a99a6;display:flex;flex-direction:column;justify-content:flex-end;padding:0 16px 36px}
.fv-photo{position:absolute;left:0;right:0;top:0;height:58%}
.fv-photo img{width:100%;height:100%;object-fit:cover;object-position:38% 0;display:block}
/* 器具の写真の代わり：青みグレーのグラデーション＋風の流れの線 */
.fv-deco{position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23fff' stroke-width='1.2' stroke-linecap='round'%3E%3Cpath d='M-20 120 C 120 60, 260 180, 420 110 S 640 60, 660 90' opacity='.35'/%3E%3Cpath d='M-20 160 C 140 100, 280 220, 440 150 S 640 110, 660 130' opacity='.22'/%3E%3Cpath d='M-20 300 C 100 250, 240 360, 400 290 S 620 240, 660 270' opacity='.3'/%3E%3Cpath d='M-20 340 C 120 290, 260 400, 420 330 S 620 290, 660 310' opacity='.18'/%3E%3Cpath d='M-20 470 C 140 420, 300 520, 460 450 S 640 420, 660 440' opacity='.3'/%3E%3Cpath d='M-20 510 C 160 460, 300 560, 470 490 S 640 470, 660 480' opacity='.18'/%3E%3C/g%3E%3C/svg%3E") 0 100%/180% 46% no-repeat,linear-gradient(180deg,rgba(150,166,180,0) 0%,rgba(150,166,180,0) 46%,rgba(132,152,170,.92) 64%,#7f97ab 100%)}
.fv::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(90,100,110,.08) 0%,rgba(70,82,94,.3) 45%,rgba(70,82,94,.2) 100%);pointer-events:none}
.fv-en{position:absolute;z-index:1;left:-6px;top:120px;margin:0;font-family:var(--en);font-size:150px;line-height:1;letter-spacing:.06em;color:rgba(255,255,255,.14);writing-mode:vertical-rl;pointer-events:none}
.fv-body,.fv-price{position:relative;z-index:2}
.fv-body{text-align:center}
.fv-ttl{margin:0;font-family:var(--serif);font-weight:500;line-height:1.3;text-shadow:0 2px 12px rgba(30,40,50,.45)}
.fv-sub{display:block;font-size:22px;letter-spacing:.16em}
.fv-main{display:block;font-size:35px;letter-spacing:.12em;margin-top:6px;white-space:nowrap}
.fv-lead{margin:16px 0 0;padding:10px 0;border-top:1px solid rgba(255,255,255,.75);border-bottom:1px solid rgba(255,255,255,.75);font-family:var(--serif);font-size:15px;line-height:1.8;letter-spacing:.1em;text-shadow:0 1px 8px rgba(30,40,50,.45)}
.fv-badges{list-style:none;margin:18px auto 0;padding:0;display:flex;justify-content:center;gap:8px}
.fv-badges li{position:relative;width:106px;height:106px;border-radius:50%;background:linear-gradient(160deg,#86c4dc 0%,#4f9fc8 55%,#3a8cbc 100%);box-shadow:0 4px 12px rgba(20,40,60,.25);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--serif);flex:none}
.fv-badges li::before{content:"";position:absolute;inset:-3px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23fff' stroke-width='.5' opacity='.6'%3E%3Ccircle cx='50' cy='50' r='47.5'/%3E%3Cpolygon points='50,2.5 97.5,50 50,97.5 2.5,50'/%3E%3Cpolygon points='16.4,16.4 83.6,16.4 83.6,83.6 16.4,83.6'/%3E%3Cpolygon points='68.2,6.1 93.9,31.8 93.9,68.2 68.2,93.9 31.8,93.9 6.1,68.2 6.1,31.8 31.8,6.1' opacity='.75'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat;pointer-events:none}
.fv-badges small{position:relative;font-size:11px;letter-spacing:.06em;line-height:1.3;white-space:nowrap}
.fv-badges b{position:relative;font-weight:500;font-size:34px;line-height:1.1;white-space:nowrap;letter-spacing:0}
.fv-badges i{font-style:normal;font-size:15px;margin:0 1px}
.fv-price{margin:22px auto 0;width:100%;max-width:360px;background:#fff;color:var(--blue);padding:8px 10px 10px;text-align:center;box-shadow:0 6px 14px rgba(20,40,60,.2)}
.fv-price-h{margin:0;background:var(--grad-h);color:#fff;font-family:var(--serif);font-size:17px;letter-spacing:.15em;padding:3px 0}
.fv-price-v{margin:4px 0 0;font-family:var(--serif);font-size:46px;line-height:1.2;white-space:nowrap}
.fv-price-v i{font-style:normal;font-size:18px;margin:0 2px}
.fv-price-n{margin:0;font-size:12px;color:#666;letter-spacing:.02em}
/* 10/14→10/15：スマホは写真を引きにして、先生を右寄りに（10/15夕：先生を少し大きく） */
@media (max-width:767px){
  .fv-photo{background:linear-gradient(180deg,#aab5bf 0%,#8fa1b2 55%,#8a99a6 100%)}
  .fv-photo img{position:absolute;left:calc(70% - min(125%,520px)*.5);top:46px;width:min(125%,520px);max-width:none;height:auto;object-fit:fill;-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 9%,#000 80%,transparent 100%),linear-gradient(90deg,transparent 0%,#000 14%);-webkit-mask-composite:source-in;mask-image:linear-gradient(180deg,transparent 0%,#000 9%,#000 80%,transparent 100%),linear-gradient(90deg,transparent 0%,#000 14%);mask-composite:intersect}
}
@media (max-width:374px){.fv-main{font-size:30px}.fv-lead{font-size:13px}.fv-badges li{width:94px;height:94px}.fv-badges b{font-size:30px}.fv-badges small{font-size:10px}}
@media (min-width:768px){
  .fv{min-height:0;height:clamp(640px,57.1vw,860px);display:block;padding:0}
  .fv-photo{left:25%;right:-8%;width:auto;height:100%}
  .fv-photo img{object-position:75% 12%;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 14%);mask-image:linear-gradient(90deg,transparent 0%,#000 14%)}
  /* 左の斜めの帯（元は器具の写真だったところ） */
  .fv-deco{z-index:1;clip-path:polygon(0 0,28% 0,63% 100%,0 100%);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23fff' stroke-width='1.2' stroke-linecap='round'%3E%3Cpath d='M-20 120 C 120 60, 260 180, 420 110 S 640 60, 660 90' opacity='.35'/%3E%3Cpath d='M-20 160 C 140 100, 280 220, 440 150 S 640 110, 660 130' opacity='.22'/%3E%3Cpath d='M-20 300 C 100 250, 240 360, 400 290 S 620 240, 660 270' opacity='.3'/%3E%3Cpath d='M-20 340 C 120 290, 260 400, 420 330 S 620 290, 660 310' opacity='.18'/%3E%3Cpath d='M-20 470 C 140 420, 300 520, 460 450 S 640 420, 660 440' opacity='.3'/%3E%3Cpath d='M-20 510 C 160 460, 300 560, 470 490 S 640 470, 660 480' opacity='.18'/%3E%3C/g%3E%3C/svg%3E") 0 30%/150% 90% no-repeat,linear-gradient(115deg,#c9d3db 0%,#a9b8c5 30%,#8ea2b3 65%,#7d93a6 100%)}
  .fv-deco::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 96%,rgba(255,255,255,.35) 100%)}
  .fv::after{z-index:1;background:linear-gradient(90deg,rgba(80,90,100,.32) 0%,rgba(80,90,100,.22) 55%,rgba(80,90,100,.1) 100%)}
  .fv-en{left:2%;top:auto;bottom:-.18em;writing-mode:horizontal-tb;font-size:clamp(150px,15vw,220px);color:rgba(255,255,255,.12)}
  .fv-body{position:absolute;left:4%;top:31%;width:56%;text-align:center}
  .fv-sub{font-size:clamp(28px,3vw,44px);letter-spacing:.2em}
  .fv-main{font-size:clamp(46px,5.4vw,78px);letter-spacing:.14em;margin-top:.1em}
  .fv-lead{margin:22px auto 0;width:92%;font-size:clamp(16px,1.6vw,22px);padding:6px 0}
  .fv-badges{gap:clamp(16px,2vw,28px);margin-top:clamp(24px,3vw,40px)}
  .fv-badges li{width:clamp(130px,13vw,180px);height:clamp(130px,13vw,180px)}
  .fv-badges small{font-size:clamp(13px,1.3vw,18px)}
  .fv-badges b{font-size:clamp(40px,4vw,56px)}
  .fv-badges i{font-size:clamp(17px,1.7vw,24px)}
  .fv-price{position:absolute;right:3.5%;bottom:7%;margin:0;width:29%;max-width:440px;min-width:300px}
  .fv-price-h{font-size:clamp(15px,1.3vw,19px)}
  .fv-price-v{font-size:clamp(38px,3.6vw,52px)}
}
@media (min-width:768px) and (max-width:1023px){
  .fv{height:auto;min-height:720px;padding-bottom:40px}
  .fv-photo{left:30%;right:-12%;height:520px}
  .fv-photo img{object-position:50% 0;-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent 100%),linear-gradient(90deg,transparent 0%,#000 16%);-webkit-mask-composite:source-in;mask-image:linear-gradient(180deg,#000 70%,transparent 100%),linear-gradient(90deg,transparent 0%,#000 16%);mask-composite:intersect}
  .fv::after{background:linear-gradient(180deg,rgba(80,90,100,.1) 0%,rgba(80,90,100,.25) 60%,rgba(80,90,100,.2) 100%)}
  .fv-deco{clip-path:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23fff' stroke-width='1.2' stroke-linecap='round'%3E%3Cpath d='M-20 120 C 120 60, 260 180, 420 110 S 640 60, 660 90' opacity='.35'/%3E%3Cpath d='M-20 160 C 140 100, 280 220, 440 150 S 640 110, 660 130' opacity='.22'/%3E%3Cpath d='M-20 300 C 100 250, 240 360, 400 290 S 620 240, 660 270' opacity='.3'/%3E%3Cpath d='M-20 340 C 120 290, 260 400, 420 330 S 620 290, 660 310' opacity='.18'/%3E%3Cpath d='M-20 470 C 140 420, 300 520, 460 450 S 640 420, 660 440' opacity='.3'/%3E%3Cpath d='M-20 510 C 160 460, 300 560, 470 490 S 640 470, 660 480' opacity='.18'/%3E%3C/g%3E%3C/svg%3E") 0 100%/180% 46% no-repeat,linear-gradient(180deg,rgba(150,166,180,0) 0%,rgba(150,166,180,0) 46%,rgba(132,152,170,.92) 64%,#7f97ab 100%)}
  .fv-body{position:relative;left:auto;top:auto;width:auto;padding:430px 60px 0}
  .fv-price{position:relative;right:auto;bottom:auto;margin:28px auto 0;width:auto;max-width:420px}
}


/* 10/15：見出しとリード文の後ろに半透明の板（後ろの写真が透ける）＋白と金の細い枠 */
.fv-copy{position:relative;margin:0 auto;padding:22px 14px 18px;background:rgba(58,70,82,.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:1px solid rgba(255,255,255,.6);box-shadow:0 8px 24px rgba(20,30,40,.18)}
.fv-copy::before{content:"";position:absolute;inset:5px;border:1px solid rgba(255,255,255,.28);pointer-events:none}
.fv-copy .fv-lead{border:0;padding:0;margin-top:14px;position:relative;padding-top:16px;font-size:14px;letter-spacing:.05em}
@media (max-width:374px){.fv-copy{padding-left:8px;padding-right:8px}.fv-copy .fv-lead{font-size:12.5px;letter-spacing:.02em}}
.fv-copy .fv-lead::before{content:"";position:absolute;left:12%;right:12%;top:0;height:1px;background:linear-gradient(90deg,rgba(212,190,120,0) 0%,#d4be78 20%,#e6d49a 50%,#d4be78 80%,rgba(212,190,120,0) 100%)}
.fv-copy .fv-lead::after{content:"";position:absolute;left:50%;top:-3px;width:7px;height:7px;margin-left:-3.5px;background:#e6d49a;transform:rotate(45deg)}
@media (min-width:768px){
  .fv-body{top:22%}
  .fv-copy{padding:clamp(26px,2.6vw,40px) clamp(20px,2.4vw,40px) clamp(22px,2.2vw,34px);width:94%}
  .fv-copy::before{inset:7px}
  .fv-copy .fv-lead{width:auto;margin-top:clamp(14px,1.4vw,22px);padding-top:clamp(16px,1.6vw,24px);font-size:clamp(16px,1.6vw,22px);letter-spacing:.1em}
}
@media (min-width:768px) and (max-width:1023px){.fv-body{top:auto}}

/* 10/15：PCで文字の板が先生の顔にかからないよう、板を少し狭く・写真を右へ */
@media (min-width:1024px){
  .fv-photo{right:-25%}
  .fv-body{width:50%;left:3.5%}
  .fv-copy{width:96%}
  .fv-sub{font-size:clamp(24px,2.5vw,40px);letter-spacing:.18em}
  .fv-main{font-size:clamp(40px,4.5vw,72px);letter-spacing:.1em}
  .fv-copy .fv-lead{font-size:clamp(15px,1.4vw,21px);letter-spacing:.08em}
}

/* ギャラリー（左へ流れる） */
.gallery{overflow:hidden}
.gal-track{display:flex;width:max-content;animation:gal 30s linear infinite}
.gal-track img{height:120px;width:auto;max-width:none;margin-right:4px;object-fit:cover}
@keyframes gal{to{transform:translateX(-33.3333%)}}
@media (min-width:768px){.gal-track{animation-duration:60s}.gal-track img{height:258px}}
@media (prefers-reduced-motion:reduce){.gal-track{animation:none}}

/* ===== DOCTOR ===== */
.doctor{background-color:#fff;background-image:linear-gradient(rgba(150,205,225,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(150,205,225,.22) 1px,transparent 1px);background-size:36px 36px}
.doctor .lead{margin-bottom:36px}
.doctor .ttl .ja{font-size:28px}
.doc-photo img{width:100%}
.doc-body{margin-top:32px}
.doc-label{display:flex;align-items:center;gap:16px;font-family:var(--serif);font-size:18px}
.doc-label::after{content:"";flex:0 0 200px;height:1px;background:#333}
.doc-catch{margin-top:22px;font-family:var(--serif);font-size:24px;line-height:1.75;letter-spacing:.1em;text-align:center;padding-bottom:14px;border-bottom:1px solid var(--blue);white-space:nowrap}
.doc-catch em{color:var(--blue);font-size:1.3em}
.doc-txt{margin-top:24px}
.doc-txt p{font-size:15px;line-height:1.75}
.doc-txt p + p{margin-top:12px}
.doc-name{margin-top:36px;border:1px solid var(--blue);outline:1px solid var(--blue);outline-offset:-6px;padding:20px 10px;text-align:center;font-family:var(--serif);color:var(--blue);background:#fff}
.doc-name .clinic{font-size:15px;letter-spacing:.12em}
.doc-name .name{font-size:28px;letter-spacing:.12em;line-height:1.5}
.doc-name .name small{font-size:16px;margin-right:12px}
.doc-name .name span{display:block;font-size:15px;letter-spacing:.06em;line-height:1.4}
.doc-data{margin-top:30px;display:grid;gap:28px}
.dbox{background:#ecf8fc}
.dbox-ttl{background:var(--grad-h);color:#fff;text-align:center;font-family:var(--serif);font-weight:400;font-size:22px;letter-spacing:.15em;padding:10px}
.career{padding:6px 20px 12px}
.career div{display:flex;gap:20px;padding:16px 0;border-bottom:1px solid #b9c9d0;font-size:16px}
.career div:last-child{border-bottom:0}
.career dt{flex:0 0 auto}
.dots{padding:4px 20px 10px}
.dots li{position:relative;padding:14px 0 14px 34px;border-bottom:1px solid #b9c9d0;font-size:16px;line-height:1.5}
.dots li:last-child{border-bottom:0}
.dots li::before{content:"";position:absolute;left:4px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--blue)}
.dots--sm li{font-size:14px;padding:11px 0 11px 28px}
.dots--sm li::before{width:8px;height:8px;margin-top:-4px}
@media (min-width:768px){
  .doctor .ttl .ja{font-size:24px}
  .doc-main{display:grid;grid-template-columns:357fr 571fr;gap:56px;max-width:928px;margin:0 auto}
  .doc-body{margin-top:24px}
  .doc-label{font-size:16px}
  .doc-label::after{flex-basis:140px}
  .doc-catch{font-size:22px;margin-top:14px}
  .doc-txt p{font-size:14px}
  .doc-name{margin-top:26px;padding:14px}
  .doc-name .clinic{font-size:13px}
  .doc-name .name{font-size:24px}
  .doc-name .name span{display:inline;margin-left:14px;font-size:15px}
  .doc-data{grid-template-columns:1fr 1fr;max-width:928px;margin:30px auto 0;gap:14px;align-items:start}
  .dbox--wide{grid-column:1/-1}
  .dbox-ttl{font-size:18px;padding:8px}
  .career{padding:6px 36px 6px}
  .career div{font-size:13px;gap:30px;padding:12px 0}
  .dots{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;padding:6px 36px 12px}
  .dots li{font-size:13px;padding:12px 0 12px 26px}
  .dots li:nth-last-child(2):nth-child(odd){border-bottom:0}
  .dots--sm{grid-template-columns:1fr 1fr 1fr}
  .dots--sm li{font-size:12.5px;padding:10px 0 10px 22px}
  .dots--sm li:nth-last-child(3):nth-child(3n+1),.dots--sm li:nth-last-child(2):nth-child(3n+2){border-bottom:0}
}

/* ===== CTA ===== */
.cta{background:var(--grad);color:#fff;padding:64px 0 76px;text-align:center}
.cta-ttl{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.75;letter-spacing:.14em}
.cta-txt{margin-top:24px;font-family:var(--serif);font-size:16px;line-height:1.85;letter-spacing:.08em}
.cta-btns{margin-top:36px;display:grid;gap:14px}
@media (max-width:374px){.cta-ttl{font-size:26px}.cta-txt{font-size:14px}}
@media (min-width:768px){
  .cta{padding:56px 0 60px}
  .cta-ttl{font-size:28px}
  .cta-txt{font-size:15px;margin-top:16px}
  .cta-btns{grid-template-columns:1fr 1fr;max-width:756px;margin:28px auto 0;gap:20px}
  .cta-btns .btn-tel{order:-1}
}

/* ===== TROUBLE ===== */
.trouble{background:var(--deep);color:#fff;padding:64px 0 0;position:relative}
.trouble .ttl{margin-bottom:24px}
.trouble .ttl .ja{font-size:28px;line-height:1.75}
.checks{background:#f0f0f0;border:1px solid #fff;outline:6px solid #e3e3e3;margin:0 -12px;padding:14px 14px;display:grid;gap:8px;position:relative;top:0;color:#333}
.checks li{position:relative;background:#fff;font-family:var(--serif);font-size:15px;line-height:1.4;padding:7px 8px 7px 52px;min-height:36px;display:flex;align-items:center;letter-spacing:.06em}
.checks li::before{content:"";position:absolute;left:0;top:0;bottom:0;width:38px;background:#2d2d2d url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12.5l5 5L20 6.5' fill='none' stroke='%23fff' stroke-width='2.4'/%3E%3C/svg%3E") center/22px no-repeat}
.trouble::after{content:"";display:block;height:40px}
@media (max-width:374px){.checks li{font-size:13px}}
@media (min-width:768px){
  .trouble{padding-top:80px}
  .trouble .ttl .ja{font-size:22px}
  .checks{max-width:1240px;margin:0 auto;grid-template-columns:1fr 1fr;column-gap:30px;row-gap:12px;padding:30px 50px}
  .checks li{font-size:14px;min-height:42px;padding-left:62px}
  .checks li::before{width:42px}
  .trouble::after{height:54px}
}
.answer{position:relative;text-align:center;padding:84px 20px 10px}
.answer::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:65%;max-width:440px;height:30px;background:linear-gradient(180deg,#4b9fcb,#b6dcef);clip-path:polygon(0 0,100% 0,50% 100%)}
.answer p{font-family:var(--serif);font-size:27px;line-height:2;letter-spacing:.12em}
.answer span{border-bottom:1px dashed #888;padding:0 2px 4px}
@media (min-width:768px){.answer{padding-top:80px}.answer p{font-size:22px}}

/* ===== IMPLANT ===== */
.implant{padding-top:56px;padding-bottom:0}
.implant .lead{margin-bottom:28px}
.imp-wrap{background:linear-gradient(180deg,#fff 0 140px,var(--pale) 140px)}
.imp-photo{padding:0 15px}
.imp-photo img{width:100%}
.imp-body{padding:24px 15px 54px;text-align:center}
.imp-body > p{font-family:var(--serif);font-size:15px;line-height:1.95;letter-spacing:.08em}
.imp-body > p + p{margin-top:12px}
.imp-merit{margin-top:36px;background:#fff;text-align:left}
.imp-merit h3{background:var(--grad-h);color:#fff;font-family:var(--serif);font-weight:400;font-size:22px;text-align:center;letter-spacing:.12em;padding:12px}
.imp-merit ul{padding:16px 22px 22px;display:grid;gap:6px}
.imp-merit li{position:relative;padding-left:34px;font-size:16px}
.imp-merit li::before{content:"";position:absolute;left:4px;top:.35em;width:20px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 16'%3E%3Cpath d='M2 8.5l5.5 5L18 2' fill='none' stroke='%234198c2' stroke-width='2.6'/%3E%3C/svg%3E") center/contain no-repeat}
@media (max-width:374px){.imp-merit li{font-size:14px}}
@media (min-width:768px){
  .implant{padding-top:70px}
  .imp-wrap{display:grid;grid-template-columns:1fr 1fr;background:var(--pale)}
  .imp-photo{padding:0}
  .imp-photo img{height:100%;object-fit:cover}
  .imp-body{padding:50px 50px;align-self:center;max-width:640px}
  .imp-body > p{font-size:14px}
  .imp-merit{margin-top:24px}
  .imp-merit h3{font-size:17px;padding:8px}
  .imp-merit ul{padding:16px 22px 20px 140px;gap:2px}
  .imp-merit li{font-size:14px}
}

/* ===== COMPARE ===== */
.compare{background:var(--pale);margin-top:0}
.compare .lead--s{margin-top:22px}
.box-ttl{margin:30px auto 0;border:1px solid var(--blue);background:#fff;color:var(--blue);text-align:center;font-family:var(--serif);font-size:24px;letter-spacing:.14em;padding:12px;max-width:338px}
.scroll-hint{text-align:right;font-size:12px;color:#666;margin-top:24px}
.cmp-scroll{overflow-x:auto;margin-top:8px;-webkit-overflow-scrolling:touch}
.cmp{border-collapse:collapse;min-width:640px;width:100%;background:#fff}
.cmp th,.cmp td{border-bottom:2px solid #fff;text-align:center;vertical-align:middle;font-size:15px;line-height:1.5;padding:16px 10px}
.cmp th{position:sticky;left:0;z-index:1;background:var(--navy);color:#fff;font-weight:400;width:108px;font-size:15px}
.cmp td{border-left:1px solid #ccc;border-bottom-color:#ccc;width:200px}
.cmp td.imp{background:var(--blue);color:#fff;border-left:0;border-bottom-color:#fff}
.cmp thead td span{display:block;font-family:var(--serif);font-size:19px;letter-spacing:.14em;margin-bottom:8px}
.cmp thead td img{width:100%;max-width:180px;margin:0 auto;aspect-ratio:3/2;object-fit:cover}
.cmp .m{display:block;font-weight:400;font-size:30px;line-height:1.2}
.cmp-catch{margin-top:44px;text-align:center;font-family:var(--serif);font-size:23px;line-height:1.8;letter-spacing:.1em}
.cmp-catch em{color:var(--blue);font-size:1.25em}
.cmp-txt{margin-top:18px;text-align:center;font-size:16px;line-height:1.9}
@media (min-width:768px){
  .box-ttl{font-size:18px;max-width:338px;padding:10px}
  .cmp-scroll{margin-top:30px;max-width:1240px;margin-left:auto;margin-right:auto}
  .cmp th{width:248px;font-size:14px}
  .cmp td{width:auto;font-size:14px}
  .cmp thead th{font-size:17px}
  .cmp thead td img{max-width:268px}
  .cmp .m{font-size:24px}
  .cmp-catch{font-size:19px;margin-top:40px}
  .cmp-txt{font-size:13px;margin-top:20px}
}

/* ===== CASE ===== */
.case{background:#fff;position:relative}
.case::before{content:"";position:absolute;left:0;right:0;top:0;height:1200px;background:var(--pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='380' viewBox='0 0 120 380'%3E%3Cpath d='M0 0L60 380M60 0L0 380M60 0l60 380M120 0L60 380' stroke='%23fff' stroke-width='1.2' fill='none'/%3E%3C/svg%3E") repeat-x;z-index:0}
.case .inner{position:relative;z-index:1}
.case-item{background:#fff;margin-top:56px;padding:44px 20px 30px;position:relative}
.case-item + .case-item{margin-top:44px}
.case-no{position:absolute;top:-22px;left:50%;transform:translateX(-50%);width:200px;background:var(--grad-h);color:#fff;font-family:var(--serif);font-weight:400;font-size:24px;letter-spacing:.15em;text-align:center;padding:4px}
.case-ttl{text-align:center;font-family:var(--serif);font-size:22px;letter-spacing:.1em}
.case-imgs{margin-top:20px;display:grid;gap:30px;position:relative}
.case-imgs .ph{aspect-ratio:3/2;background:#f1f1f1;display:flex;align-items:center;justify-content:center;color:#aaa;font-size:14px}
.case-ph{margin:0;position:relative}
.case-ph img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.case-ph figcaption{position:absolute;left:0;top:0;background:var(--blue);color:#fff;font-family:var(--serif);font-size:15px;letter-spacing:.1em;padding:4px 14px}
.case-imgs::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-style:solid;border-width:14px 18px 0;border-color:var(--blue) transparent transparent}
.case-data{margin-top:16px}
.case-data dt{background:var(--blue);color:#fff;text-align:center;font-family:var(--serif);font-size:16px;padding:6px;margin-top:10px}
.case-data dd{padding:6px 0;font-size:16px}
@media (min-width:768px){
  .case::before{height:100%}
  .case-item{max-width:1240px;margin:56px auto 0;padding:56px 125px 50px;background:var(--pale)}
  .case-ttl{font-size:17px}
  .case-imgs{grid-template-columns:1fr 1fr;gap:50px}
  .case-imgs .ph{background:#fff}
  .case-imgs::after{border-width:18px 0 18px 14px;border-color:transparent transparent transparent var(--blue)}
  .case-data div{display:flex;align-items:center;gap:24px;margin-top:8px}
  .case-data dt{flex:0 0 220px;margin:0;font-size:16px}
  .case-data dd{font-size:17px}
}

/* ===== FEATURE ===== */
.feature{background:#fff;padding-bottom:40px}
.feature .ttl .ja{font-size:30px;line-height:1.45}
.feature .ttl .ja small{display:block;font-size:19px;letter-spacing:.06em;margin-bottom:12px}
.feature .ttl .ja b{font-weight:400;font-size:38px;color:var(--txt)}
.feature .ttl .ja b em,.feature .ttl .ja .num{color:var(--blue)}
.feature .lead{font-size:15px}
.feat-photo{margin-top:36px}
.feat-photo img{width:100%}
.points{margin-top:36px;display:grid;gap:22px}
.points h3{display:flex;align-items:center;gap:16px;background:var(--grad-h);color:#fff;font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.45;letter-spacing:.08em;padding:12px 16px;min-height:76px;margin:0 -20px}
.points h3 i{flex:0 0 54px;height:54px;border-radius:50%;background:#fff;color:var(--blue);display:flex;flex-direction:column;align-items:center;justify-content:center;font-style:normal;font-family:var(--en);font-size:8px;line-height:1;letter-spacing:.05em;box-shadow:0 0 0 2px rgba(255,255,255,.55),0 0 0 4px rgba(255,255,255,.25)}
.points h3 i b{font-size:28px;font-weight:500;line-height:.95}
.pt-body{background:#ecf8fc;margin:0 -20px;padding:20px 20px 24px}
.pt-body p{font-size:15.5px;line-height:1.85}
.pt-body p + p{margin-top:10px}
.pt-lead{color:var(--blue);font-size:17px!important}
.note{font-size:13px!important}
@media (min-width:768px){
  .feature{background:var(--pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='380' viewBox='0 0 120 380'%3E%3Cpath d='M0 0L60 380M60 0L0 380M60 0l60 380M120 0L60 380' stroke='%23fff' stroke-width='1.2' fill='none'/%3E%3C/svg%3E") repeat;padding-bottom:90px}
  .feature .ttl .ja{font-size:30px}
  .feature .ttl .ja small{font-size:20px;margin-bottom:6px}
  .feature .ttl .ja b{font-size:30px}
  .feature .lead{font-size:16px}
  .feat-photo{max-width:1126px;margin-left:auto;margin-right:auto}
  .feat-photo img{display:block;height:auto}
  .points{grid-template-columns:1fr 1fr;gap:40px 20px;max-width:1240px;margin:40px auto 0}
  .points h3,.pt-body{margin:0}
  .points h3{font-size:17px;min-height:86px;padding:10px 14px}
  .points h3 i{flex-basis:60px;height:60px}
  .pt-body{background:transparent;padding:20px 30px 0}
  .pt-body p{font-size:13px}
  .pt-lead{font-size:13px!important}
  .note{font-size:11px!important}
}

/* ===== PRICE ===== */
.price{background:var(--pale)}
.price .lead{font-size:15px}
.price-photo{margin:30px auto 0;max-width:516px;background:#fff}
.price-box{margin-top:26px;background:#fff;text-align:center;padding:0 15px 30px;max-width:928px;margin-left:auto;margin-right:auto}
.price-head{background:var(--grad-h);color:#fff;font-family:var(--serif);font-weight:400;font-size:22px;letter-spacing:.12em;margin:0 -15px;padding:20px}
.price-main{margin-top:20px;font-family:var(--serif);color:var(--blue);font-size:62px;line-height:1.1;letter-spacing:0}
.price-main small{font-size:20px;letter-spacing:.05em}
.price-sub{margin-top:18px;background:#e3f4fb;color:var(--blue);font-family:var(--serif);font-size:20px;line-height:1.45;letter-spacing:.1em;padding:14px}
.price-month{margin-top:16px;font-family:var(--serif);color:var(--blue);font-size:62px;line-height:1.1}
.price-month small{font-size:20px;margin:0 4px}
.price-note{margin-top:14px;font-size:15px;line-height:1.85}
.price-box--guard{padding-top:30px}
.guard-ttl{background:#e3f4fb;color:var(--blue);font-family:var(--serif);font-size:34px;line-height:1.35;letter-spacing:.12em;padding:20px 10px}
.guard-ttl small{display:block;font-size:22px}
.price-box--guard .price-note{margin-top:24px;font-size:14.5px;line-height:2}
@media (max-width:374px){.price-main,.price-month{font-size:52px}.guard-ttl{font-size:28px}}
@media (min-width:768px){
  .price .lead{font-size:16px}
  .price-photo{max-width:357px}
  .price-box{padding:0 50px 26px}
  .price-head{margin:0 -50px;padding:12px;font-size:17px}
  .price-main{font-size:58px}
  .price-sub{max-width:570px;margin:18px auto 0;padding:8px;font-size:16px}
  .price-sub br{display:none}
  .price-month{font-size:52px}
  .price-note{font-size:12px}
  .price-box--guard{padding-top:0;margin-top:20px}
  .guard-ttl{max-width:570px;margin:0 auto;padding:10px;font-size:22px}
  .guard-ttl small{font-size:15px}
  .price-box--guard .price-note{font-size:12px;margin-top:14px}
}

/* ===== FLOW ===== */
.flow{background:#fafafa linear-gradient(135deg,rgba(255,255,255,.9) 0 25%,rgba(240,242,245,.9) 25% 50%,rgba(250,250,252,.9) 50% 75%,rgba(238,240,243,.9) 75%);padding-bottom:40px}
.steps{margin-top:30px}
.steps li{position:relative}
.steps li + li{margin-top:56px}
.steps li + li::before{content:"";position:absolute;top:-42px;left:50%;transform:translateX(-50%);border-style:solid;border-width:20px 30px 0;border-color:var(--blue) transparent transparent}
.steps figure img{width:100%}
.st-body{text-align:center;padding:14px 20px 0}
.st-no{font-family:var(--en);color:var(--blue);font-size:28px;letter-spacing:.06em}
.st-body h3{font-family:var(--serif);font-weight:400;font-size:23px;letter-spacing:.08em;line-height:1.5}
.st-body p:not(.st-no){margin-top:14px;font-size:15.5px;line-height:1.85}
.st-body .note{margin-top:2px!important}
@media (min-width:768px){
  .flow{padding-bottom:110px}
  .steps{max-width:1040px;margin:50px auto 0;padding:0 50px}
  .steps li{display:grid;grid-template-columns:480px 1fr;gap:44px;align-items:center}
  .steps li + li{margin-top:60px}
  .steps li + li::before{left:240px;top:-46px;border-width:16px 26px 0}
  .st-body{text-align:left;padding:0}
  .st-no{font-size:30px}
  .st-body h3{font-size:22px}
  .st-body p:not(.st-no){font-size:14px}
}

/* ===== FAQ ===== */
.faq{background:var(--pale)}
.qa{margin-top:20px}
.qa > div{padding:30px 0;border-bottom:1px solid #d8e7ee}
.qa > div:last-child{border-bottom:0}
.qa dt,.qa dd{position:relative;padding-left:72px}
.qa dt{font-family:var(--serif);color:var(--blue);font-size:22px;line-height:1.6;letter-spacing:.1em}
.qa dd{margin-top:20px;font-size:16px;line-height:1.9;letter-spacing:.08em}
.qa dd small{display:block;font-size:13px}
.qa dt::before,.qa dd::before{position:absolute;left:0;top:0;width:46px;height:46px;display:flex;align-items:center;justify-content:center;font-family:var(--en);font-size:38px;line-height:1}
.qa dt::before{content:"Q";background:var(--blue);color:#fff}
.qa dd::before{content:"A";border:1px solid var(--blue);color:var(--blue);background:#fff}
@media (max-width:374px){.qa dt,.qa dd{padding-left:58px}.qa dt{font-size:19px}.qa dd{font-size:14.5px}}
@media (min-width:768px){
  .qa{max-width:712px;margin:40px auto 0}
  .qa > div{padding:20px 0}
  .qa dt,.qa dd{padding-left:58px}
  .qa dt{font-size:17px}
  .qa dd{font-size:12px;margin-top:10px}
  .qa dd small{font-size:11px}
  .qa dt::before,.qa dd::before{width:30px;height:30px;font-size:24px}
  .qa dt::before{top:0}
}

/* ===== ACCESS ===== */
.access{padding-bottom:60px}
.ac-logo img{width:260px;margin:0 auto}
.ac-ttl{margin-top:44px;text-align:center;font-family:var(--serif);font-weight:400;color:var(--blue);font-size:32px;letter-spacing:.12em}
.ac-name{margin-top:12px;text-align:center;font-family:var(--serif);color:var(--blue);font-size:21px;letter-spacing:.12em}
.ac-info dl{margin-top:18px}
.ac-info dt{background:var(--grad-h);color:#fff;text-align:center;font-family:var(--serif);font-size:19px;letter-spacing:.12em;padding:4px}
.ac-info dd{text-align:center;padding:10px 0 20px;font-size:16px;line-height:1.75}
.ac-info dd.tel{font-family:var(--serif);color:var(--blue);font-size:36px;line-height:1.3;padding-top:6px}
.ac-map{margin:10px -20px 0}
.ac-map iframe{display:block;width:100%;height:320px;border:0}
.cta-btns--access{margin-top:44px}
.hours-ttl{margin-top:50px;text-align:center;font-family:var(--serif);font-weight:400;color:var(--blue);font-size:30px;letter-spacing:.1em}
.hours{margin:22px -20px 0}
.hours table{width:100%;border-collapse:collapse;text-align:center;font-family:var(--serif)}
.hours thead th{background:var(--blue);color:#fff;font-weight:400;font-size:15px;padding:12px 0;position:relative}
.hours tbody tr{background:#ecf8fc}
.hours tbody tr + tr{background:#e3f4fb}
.hours tbody th{color:var(--blue);font-weight:400;font-size:15px;padding:14px 0 14px 10px;white-space:nowrap}
.hours td{color:var(--blue);font-size:17px;padding:14px 0}
.hours thead th + th,.hours td{border-left:1px solid rgba(65,152,194,.6)}
.hours thead th + th{border-left-color:rgba(255,255,255,.6)}
.hours thead th:nth-child(2),.hours tbody td:first-of-type{border-left:0}
.hours-note{padding:14px 20px 0;font-family:var(--serif);font-size:15px;line-height:1.75;letter-spacing:.06em}
@media (min-width:768px){
  .access{padding:100px 0 90px}
  .ac-logo img{width:430px}
  .ac-wrap{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;margin-top:40px}
  .ac-ttl{margin-top:0;font-size:22px;text-align:center;max-width:420px}
  .ac-name{font-size:16px;max-width:420px}
  .ac-info dl{margin-top:24px}
  .ac-info dl div{display:flex;gap:36px;align-items:flex-start;margin-bottom:16px}
  .ac-info dt{flex:0 0 156px;font-size:14px;padding:2px}
  .ac-info dd{text-align:left;padding:0;font-size:13px}
  .ac-info dd.tel{font-size:28px;line-height:1;padding:0}
  .ac-map{margin:0 -50px 0 0}
  .ac-map iframe{height:410px}
  .cta-btns--access{margin-top:70px}
  .hours-ttl{font-size:24px;margin-top:56px}
  .hours{max-width:928px;margin:22px auto 0}
  .hours thead th{font-size:15px}
  .hours tbody th{width:180px;padding-left:0}
  .hours-note{display:flex;justify-content:space-between;padding:12px 0 0;font-size:12px}
}

/* フッター */
.ft{background:var(--blue);color:#fff;text-align:center;font-size:12px;padding:16px 10px}

/* SP 固定ボタン */
.spbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:1fr 1fr;transform:translateY(110%);transition:transform .3s;box-shadow:0 -2px 10px rgba(0,0,0,.12)}
.spbar.is-show{transform:none}
.spbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60px;font-family:var(--serif);line-height:1.25}
.spbar small{font-size:11px;letter-spacing:.08em}
.spbar-tel{background:#fff;color:var(--blue)}
.spbar-tel span{font-size:19px}
.spbar-web{background:var(--gold);color:#fff;font-size:20px;letter-spacing:.12em}
@media (min-width:768px){.spbar{display:none}}
@media (max-width:767px){body{padding-bottom:60px}}

/* ===== 調整（SP折り返し） ===== */
body{font-variant-numeric:lining-nums}
.ttl .en,.st-no,.points h3 i,.qa dt::before,.qa dd::before{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}
@media (max-width:767px){
  .scroll-hint{display:block}
  .ttl .ja{font-size:24px;letter-spacing:.06em}
  .lead{font-size:15px;letter-spacing:.04em}
  .doctor .ttl .ja{font-size:26px}
  .btn-gold{font-size:18px;letter-spacing:.08em}
  .checks li{font-size:14px;letter-spacing:.02em;padding-left:48px}
  .compare .lead{font-size:15px;letter-spacing:.04em}
  .cmp-catch{font-size:20px;letter-spacing:.06em}
  .points h3{font-size:19px;letter-spacing:.04em;gap:12px}
  .price-main{font-size:54px;white-space:nowrap}
  .price-main small{font-size:16px;letter-spacing:0}
  .qa dt,.qa dd{padding-left:62px}
  .qa dt{font-size:19px;letter-spacing:.04em}
  .qa dd{font-size:15px;letter-spacing:.05em}
  .feature .ttl .ja small{font-size:18px}
}
@media (max-width:374px){
  .ttl .ja{font-size:21px}
  .doctor .ttl .ja{font-size:22px}
  .btn-gold{font-size:16px}
  .points h3{font-size:17px}
  .price-main{font-size:46px}
  .qa dt{font-size:18px}
}

/* ===== 表示崩れ対策（1〜2文字だけの改行・単語の途中の改行を防ぐ：10/13） ===== */
h1,h2,h3,.ttl .ja,.dots li,.imp-merit li,thead span,.doc-name .name{text-wrap:balance}
p,dd,small,li{text-wrap:pretty}
/* 10/14：タブレット幅で予約ボタンの「ら」だけが次の行に落ちないように */
@media (min-width:768px) and (max-width:1023px){.cta-btns .btn-gold{font-size:18px;letter-spacing:.06em;padding:10px 12px}}

/* 10/15夜：スマホで先生をもう少し大きく（右寄せ・顔の位置はそのまま） */
@media (max-width:767px){
  .fv-photo img{left:calc(80% - min(165%,680px)*.57);top:30px;width:min(165%,680px)}
}

/* 10/20：先生紹介の文字を読みやすく（方眼の背景の上に白の半透明の枠） */
.doc-card{background:rgba(255,255,255,.86);border:1px solid rgba(80,160,195,.25);box-shadow:0 6px 24px rgba(60,120,150,.08);padding:40px 18px 36px}
@media (min-width:768px){.doc-card{max-width:1100px;margin:0 auto;padding:56px 50px 52px}}

/* 10/20：FVの先生写真を左右反転（顔が見出し側を向く）→ 写真を右へ寄せ、費用はバッジの右へ */
@media (min-width:1024px){
  .fv-photo{left:34%;right:-14%}
  .fv-photo img{object-position:20% 12%}
  .fv-price{right:auto;left:calc(50% + (3*clamp(130px,13vw,180px) + 2*clamp(16px,2vw,28px))/2 + clamp(16px,2vw,28px));bottom:calc(clamp(130px,13vw,180px)/2);transform:translateY(50%);width:clamp(260px,21vw,380px);min-width:0;max-width:none}
}
@media (max-width:767px){
  .doctor .inner{padding:0 12px}
  .doc-card{padding:34px 14px 30px}
  .doc-card .ttl .ja{font-size:24px}
  .doc-card .lead{font-size:15px;letter-spacing:.02em}
}

/* 10/20午後：FVの先生を気持ち大きく（顔の位置はほぼそのまま） */
@media (min-width:1024px){
  .fv-photo img{transform:scale(1.12);transform-origin:35% 28%}
}
@media (max-width:767px){
  .fv-photo img{left:calc(80% - min(182%,750px)*.57);top:22px;width:min(182%,750px)}
}

/* 10/20午後：「月々の金額」の枠にインプラントのイラスト（左に金額・右にイラスト） */
.fv-price-body{display:flex;align-items:center;justify-content:center;gap:4px}
.fv-price-txt{flex:1 1 auto;min-width:0}
.fv-price-ill{flex:0 0 30%;width:30%;height:auto;margin:2px -4px -4px 0}
@media (min-width:1024px){
  .fv-price{width:clamp(320px,27vw,470px)}
  .fv-price-v{font-size:clamp(34px,3vw,48px)}
  .fv-price-ill{flex-basis:32%;width:32%}
}
@media (max-width:374px){.fv-price-v{font-size:38px}}
/* 10/20夕：インプラント模型の画像に差し替え（白背景のため枠になじませる） */
.fv-price-ill{flex-basis:36%;width:36%;margin:0 -2px 0 0}
@media (min-width:1024px){.fv-price-ill{flex-basis:38%;width:38%}}
/* 10/20夕：インプラント治療についての模型画像を一回り小さく（白い余白の中に置く） */
.imp-photo{background:#fff;text-align:center}
.imp-photo img{width:82%;margin:0 auto;display:block}
@media (min-width:768px){
  .imp-photo{display:flex;align-items:center;justify-content:center}
  .imp-photo img{width:76%;height:auto;object-fit:contain}
}
.imp-photo img{mix-blend-mode:multiply}
/* 10/20夕2：FVの金額枠のインプラント画像をもう少し小さく（「円〜」に重ならないように） */
.fv-price-body{gap:8px}
.fv-price-ill{flex:0 0 26%;width:26%;margin:0}
@media (min-width:1024px){.fv-price-ill{flex-basis:28%;width:28%}}
/* 10/20夕3：金額と画像の間を詰めて、ひとまとまりで中央に */
.fv-price-body{justify-content:center;gap:6px}
.fv-price-txt{flex:0 1 auto}

/* 10/20夕：診療時間をアクセスの左側（住所・電話番号の下）へ移動・午前午後に時間を表示 */
.ac-info .hours-ttl{margin-top:30px;font-size:22px}
.ac-info .hours{margin:14px 0 0;max-width:none}
.hours tbody th small{display:block;font-size:11px;letter-spacing:0;margin-top:2px}
.ac-info .hours-note{display:flex;justify-content:space-between;gap:10px;padding:10px 4px 0;font-size:13px;text-align:left}
@media (min-width:768px){
  .ac-info .hours-ttl{font-size:20px;margin-top:28px;text-align:left}
  .ac-info .hours thead th{font-size:13px;padding:9px 0}
  .ac-info .hours tbody th{width:96px;padding:9px 0 9px 6px;font-size:13px}
  .ac-info .hours td{font-size:14px;padding:9px 0}
  .ac-info .hours-note{font-size:12px;padding:8px 0 0}
}
/* 10/20夕：スマホの診療時間の余白を整える */
@media (max-width:767px){
  .ac-info dd.tel{padding-bottom:6px}
  .ac-info .hours-ttl{margin-top:18px;font-size:20px;letter-spacing:.12em}
  .ac-info .hours{margin:10px 0 0}
  .ac-info .hours table{table-layout:fixed}
  .ac-info .hours thead th{font-size:14px;padding:9px 0}
  .ac-info .hours thead th:first-child{width:27%}
  .ac-info .hours tbody th{padding:10px 2px;font-size:14px;line-height:1.35}
  .ac-info .hours tbody th small{font-size:10.5px;margin-top:3px}
  .ac-info .hours td{font-size:15px;padding:10px 0}
  .ac-info .hours-note{padding:10px 2px 0;font-size:13px}
  .ac-map{margin-top:30px}
}
.ac-info .hours thead th:nth-child(2){border-left:1px solid rgba(255,255,255,.6)}
.ac-info .hours tbody td:first-of-type{border-left:1px solid rgba(65,152,194,.6)}
/* 10/20夕：PCのアクセス欄を広げる・午前午後の文字を大きく */
@media (min-width:768px){
  .ac-info .ac-ttl{font-size:26px}
  .ac-info .ac-name{font-size:17px;margin-top:8px}
  .ac-info dl{margin-top:30px}
  .ac-info dl div{gap:40px;margin-bottom:24px;align-items:center}
  .ac-info dt{flex:0 0 170px;font-size:15px;padding:5px 2px}
  .ac-info dd{font-size:15px;line-height:1.8}
  .ac-info dd.tel{font-size:32px}
  .ac-info .hours-ttl{font-size:22px;margin-top:36px}
  .ac-info .hours tbody th{width:118px;font-size:16px;padding:11px 0 11px 4px}
  .ac-info .hours tbody th small{font-size:12.5px;margin-top:3px}
  .ac-info .hours thead th{font-size:14px;padding:10px 0}
  .ac-info .hours td{font-size:15px;padding:11px 0}
  .ac-info .hours-note{font-size:13px}
}
@media (min-width:768px){
  .ac-info .ac-ttl,.ac-info .ac-name{max-width:none}
  .ac-info dd{flex:1 1 auto}
}
@media (min-width:768px) and (max-width:1199px){
  .ac-info dl div{gap:24px}
  .ac-info dt{flex-basis:130px}
  .ac-info dd{font-size:14px}
}
