@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;1,500&display=swap");

:root{
  --cream:#fffaf3;
  --paper:#fffdf9;
  --wine:#6e2639;
  --wine-dark:#501827;
  --coral:#f96863;
  --coral-dark:#e95757;
  --blush:#f5d5cf;
  --pink:#fff0ed;
  --yellow:#f6d86b;
  --gold:#c5a25c;
  --ink:#3d3032;
  --muted:#75686a;
  --line:#eadfd9;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:"Noto Sans JP",sans-serif;line-height:1.9;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:100%;object-fit:cover}
summary::-webkit-details-marker{display:none}
:focus-visible{outline:3px solid var(--coral);outline-offset:4px}

.site-header{
  position:absolute;z-index:20;inset:0 0 auto;height:90px;padding:0 clamp(24px,4vw,64px);
  display:flex;align-items:center;gap:42px;color:var(--wine-dark);
  background:rgba(255,250,243,.78);backdrop-filter:blur(12px);
}
.brand{font:500 clamp(27px,2.4vw,40px)/1 "Playfair Display",serif;letter-spacing:.12em}
.site-header nav{display:flex;gap:clamp(22px,3vw,48px);margin-left:auto;font:600 13px/1 "Noto Serif JP",serif}
.site-header nav a{position:relative;padding:9px 0}
.site-header nav a:after{content:"";position:absolute;left:50%;right:50%;bottom:0;height:1px;background:var(--coral);transition:.25s}
.site-header nav a:hover:after{left:0;right:0}
.header-reserve{border:1px solid var(--wine);border-radius:100px;padding:8px 22px;font-size:12px;font-weight:600}

.hero{
  position:relative;overflow:hidden;min-height:900px;padding:120px clamp(28px,5vw,76px) 55px;
  display:grid;grid-template-columns:46% 54%;align-items:center;
  background:radial-gradient(circle at 43% 50%,rgba(246,216,107,.17),transparent 20%),linear-gradient(125deg,#fff8ef 0%,#fffdfa 60%,#fff1ec 100%);
}
.hero:before{content:"";position:absolute;width:56vw;height:240px;left:-16vw;top:-92px;background:linear-gradient(120deg,#f5ccc5,#ffebe5);border-radius:50%;transform:rotate(-8deg)}
.hero:after{content:"✦";position:absolute;left:43%;top:19%;color:var(--coral);font-size:34px;animation:twinkle 2.8s ease-in-out infinite}
.hero-copy{position:relative;z-index:3;max-width:650px;padding-top:30px;animation:rise .65s ease-out both}
.eyebrow{margin:0 0 24px;color:var(--coral);font:600 13px/1.5 "Playfair Display","Noto Sans JP",sans-serif;letter-spacing:.23em}
.hero h1,.section h2{margin:0;color:var(--wine);font-family:"Noto Serif JP",serif;font-weight:500;letter-spacing:.03em}
.hero h1{margin-bottom:22px;font-size:clamp(52px,5.3vw,82px);line-height:1.35}
.hero h1 span,.section-heading h2 span,.recommend h2 span,.information h2 span{display:block;white-space:nowrap}
.hero-lead{margin:0 0 28px;font:500 clamp(18px,1.55vw,23px)/1.9 "Noto Serif JP",serif}
.button{
  width:min(400px,100%);min-height:68px;padding:12px 18px 12px 30px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  border:1px solid transparent;border-radius:100px;background:linear-gradient(135deg,#ff766f,var(--coral-dark));color:#fff;
  box-shadow:0 12px 30px rgba(195,75,72,.2);font:700 14px/1.5 "Noto Sans JP",sans-serif;transition:.25s;
}
.button b{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--coral);font-size:16px}
.button:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(195,75,72,.3)}
.hero-material{width:min(400px,100%);margin-top:25px;padding:16px 20px;display:grid;grid-template-columns:78px 1fr;gap:15px;background:rgba(255,255,255,.68);border:1px solid var(--blush);border-radius:18px}
.hero-material small{color:var(--coral);font:600 9px/1.6 "Playfair Display",serif;letter-spacing:.18em}
.hero-material p{margin:0;color:var(--wine-dark);font-size:10px;line-height:1.9}
.hero-visual{position:relative;z-index:2;height:690px;margin:0;overflow:hidden;border:7px solid rgba(255,250,243,.94);border-radius:47% 53% 46% 54%/43% 42% 58% 57%;box-shadow:0 20px 55px rgba(93,45,48,.16);animation:soft-in .8s ease-out both}
.hero-visual:before{content:"";position:absolute;z-index:-1;inset:8% -12% -12% 8%;background:linear-gradient(145deg,#f9d8d1,#f6c8bc 58%,#f4d96f);border-radius:50%}
.hero-visual img{object-position:center 42%;transform:scale(1.01)}
.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,244,236,.12),transparent 50%)}
.hero-visual figcaption{position:absolute;z-index:2;right:24px;bottom:18px;padding:8px 12px;border-radius:100px;background:rgba(255,253,249,.76);color:var(--wine);font:600 8px/1 "Playfair Display",serif;letter-spacing:.16em}

.section{padding:clamp(82px,9vw,140px) max(5vw,24px)}
.section>*{max-width:1200px;margin-left:auto;margin-right:auto}
.section h2{font-size:clamp(38px,4vw,58px);line-height:1.48}
.section h3{font-family:"Noto Serif JP",serif;color:var(--wine);font-weight:500}
.wide-heading{display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw;align-items:start}
.wide-heading .eyebrow{margin-top:16px}
.wide-heading>p:last-child{grid-column:2;margin:10px 0 0;color:var(--muted)}

.intro{display:grid;grid-template-columns:1fr 1.12fr;gap:10vw;background:var(--paper)}
.intro>*{max-width:none;margin:0}
.intro-copy{padding-top:25px;font-family:"Noto Serif JP",serif;font-size:16px}
.intro-copy p{margin:0 0 22px}
.intro-copy .lead:first-letter{float:left;padding:8px 8px 0 0;color:var(--coral);font-size:52px;line-height:.9}

.material{padding:0;display:grid;grid-template-columns:1.05fr .95fr;min-height:690px;background:linear-gradient(145deg,var(--wine-dark),var(--wine));color:#fff}
.material>*{max-width:none;margin:0}
.material-image{position:relative;overflow:hidden}
.material-image img{filter:saturate(.9) contrast(.98)}
.material-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,rgba(80,24,39,.2))}
.material-image>span{position:absolute;z-index:2;left:35px;bottom:30px;color:#fff;font:500 10px/1.6 "Playfair Display",serif;letter-spacing:.2em}
.material-copy{padding:clamp(60px,6vw,100px)}
.material-copy .eyebrow{color:#ffd0c8}
.material-copy h2{color:#fff;font-size:clamp(38px,3.9vw,56px)}
.material-copy h2 span{display:block}
.material-intro{margin:25px 0 32px;color:#f3dfe1;font:500 14px/2 "Noto Serif JP",serif}
.material dl{margin:0;border-top:1px solid rgba(255,255,255,.25)}
.material dl>div{display:grid;grid-template-columns:42px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.material dt{color:#ffc5bc;font:500 13px/1.5 "Playfair Display",serif}
.material dd{margin:0}
.material dd strong,.material dd span{display:block}
.material dd strong{font:500 16px/1.6 "Noto Serif JP",serif}
.material dd span{margin-top:3px;color:#d9c4c8;font-size:10px;line-height:1.8}
.material-note{margin:16px 0 0;color:#aa9096;font-size:9px}

.recommend{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center;background:var(--cream)}
.recommend>*{max-width:none;margin:0}
.recommend:after{content:"";position:absolute;width:340px;height:340px;right:-170px;bottom:-150px;border-radius:50%;background:var(--yellow);opacity:.58}
.recommend-visual{position:relative;height:600px}
.recommend-visual img{border-radius:48% 52% 51% 49%/43% 48% 52% 57%}
.recommend-visual p{position:absolute;right:-35px;bottom:15px;width:155px;height:155px;margin:0;display:grid;place-items:center;border-radius:50%;background:var(--wine);color:#fff;text-align:center;font:500 15px/1.5 "Playfair Display",serif;letter-spacing:.12em}
.recommend-copy{position:relative;z-index:2}
.recommend ul{list-style:none;padding:0;margin:35px 0 0}
.recommend li{position:relative;padding:14px 12px 14px 48px;border-bottom:1px solid var(--line);font-size:13px}
.recommend li:before{content:"✦";position:absolute;left:14px;color:var(--coral)}

.features{background:var(--wine);color:#fff}
.features .wide-heading h2,.features .wide-heading>p:last-child{color:#fff}
.feature-list{margin-top:58px;display:grid;grid-template-columns:repeat(6,1fr);gap:18px}
.feature-list article{grid-column:span 2;position:relative;min-height:285px;padding:34px 28px;border-radius:22px;background:var(--paper);color:var(--ink)}
.feature-list article:nth-child(4){grid-column:2/span 2}
.feature-list article>p{margin:0;color:var(--coral);font:500 13px/1 "Playfair Display",serif;letter-spacing:.16em}
.feature-list article>p:after{content:"✦";position:absolute;right:24px;top:26px;color:var(--gold);font-size:24px}
.feature-list h3{margin:37px 0 14px;font-size:21px}
.feature-list article>span{color:var(--muted);font-size:12px;line-height:1.9}

.designs{background:var(--paper)}
.design-grid{margin-top:58px;display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.design-grid article{margin:0}
.design-grid figure{position:relative;height:315px;margin:0 0 22px;overflow:hidden;border-radius:150px 150px 22px 22px}
.design-grid article:nth-child(even) figure{border-radius:22px 22px 150px 150px}
.design-grid figure span{position:absolute;right:13px;top:13px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:rgba(255,253,249,.9);color:var(--coral);font:600 10px/1 "Playfair Display",serif}
.design-grid article>p{margin:0;color:var(--coral);font:italic 500 13px/1 "Playfair Display",serif;letter-spacing:.12em}
.design-grid h3{margin:12px 0;font-size:19px}
.design-grid article>div{color:var(--muted);font-size:12px}
.small-note{color:var(--muted);font-size:10px}

.price{background:linear-gradient(135deg,#f7d9d3,#fff1e5 52%,#f7dc76)}
.price-heading,.price-table{max-width:none;margin:0}
.price{display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw}
.price-table{padding:clamp(30px,4.5vw,58px);border-radius:34px;background:rgba(255,253,249,.94);box-shadow:0 28px 70px rgba(91,44,47,.1)}
.price-table>p:first-child{margin:0;padding-bottom:15px;border-bottom:1px solid var(--line);color:var(--wine);font:500 18px/1.6 "Noto Serif JP",serif}
.price-table>div{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}
.price-table>div span{font-size:12px}
.price-table strong{color:var(--wine);font:500 34px/1 "Playfair Display",serif;white-space:nowrap}
.price-table strong small,.removal strong small{font:500 10px/1 "Noto Sans JP",sans-serif}
.price-table dl{margin:25px 0 0;padding:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:15px;border-radius:16px;background:#fff5ee}
.price-table dl div{display:flex;justify-content:space-between;padding-left:14px;border-left:1px solid var(--line);font-size:10px}
.price-table dd{margin:0;color:var(--wine);font-weight:700}

.flow{background:var(--paper)}
.clinic-gallery{margin-top:55px;display:grid;grid-template-columns:1.35fr .65fr;gap:14px}
.clinic-gallery figure{position:relative;height:410px;margin:0;overflow:hidden;border-radius:28px}
.clinic-gallery figure:nth-child(2) img{object-position:center 55%}
.clinic-gallery figcaption{position:absolute;left:18px;bottom:14px;padding:7px 11px;border-radius:100px;background:rgba(255,253,249,.78);color:var(--wine);font:600 9px/1 "Playfair Display",serif;letter-spacing:.15em}
.timeline{max-width:930px;margin-top:65px;position:relative}
.timeline:before{content:"";position:absolute;left:48px;top:35px;bottom:35px;width:1px;background:var(--blush)}
.timeline article{position:relative;padding:0 0 45px;display:grid;grid-template-columns:100px 1fr;gap:34px}
.timeline article>p{z-index:1;width:96px;height:96px;margin:0;display:grid;place-items:center;border-radius:50%;background:var(--blush);color:var(--wine);font:600 11px/1.3 "Noto Sans JP",sans-serif;letter-spacing:.08em}
.timeline h3{margin:9px 0;font-size:21px}
.timeline h3 small{margin-left:12px;padding:6px 12px;border-radius:100px;background:var(--pink);color:var(--coral);font:600 11px/1 "Noto Sans JP",sans-serif;white-space:nowrap}
.timeline article>span{grid-column:2;color:var(--muted);font-size:12px;line-height:1.9;margin-top:-56px}
.flow-time{max-width:930px;padding:25px 32px;display:flex;align-items:center;gap:25px;border-radius:18px;background:var(--wine);color:#fff}
.flow-time p{margin:0;font-size:12px}
.flow-time strong{font:500 27px/1 "Noto Serif JP",serif;white-space:nowrap}
.flow-time span{margin-left:auto;font-size:10px;opacity:.8}

.information{background:#fff3ec}
.info-grid{margin-top:50px;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.info-grid article{position:relative;padding:42px;border-radius:24px;background:var(--paper)}
.info-card-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:start;margin-bottom:24px}
.info-number{margin:4px 0 0;color:var(--coral);font:500 23px/1 "Playfair Display",serif}
.info-grid h3{margin:0;font-size:22px}
.info-grid ul{padding-left:1.3em;color:var(--muted);font-size:12px}
.info-grid li{margin:8px 0}
.info-grid article>p:last-child{margin-top:20px;padding:14px;border-radius:10px;background:#fff5ee;font-size:11px}

.warranty{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center;background:var(--wine);color:#fff}
.warranty>*{max-width:none;margin:0}
.warranty h2,.warranty .eyebrow{color:#fff}
.warranty>div>p:last-child{font-size:13px}
.warranty details{border-top:1px solid rgba(255,255,255,.35);border-bottom:1px solid rgba(255,255,255,.35)}
.warranty summary,.risks summary{cursor:pointer;list-style:none;padding:22px 0;display:flex;justify-content:space-between;gap:20px}
.warranty details ul{padding:0 0 15px 1.2em;font-size:11px;opacity:.85}

.removal{display:grid;grid-template-columns:1.2fr .8fr;gap:8vw;align-items:center;background:var(--paper)}
.removal>*{max-width:none;margin:0}
.removal>div:nth-child(2){padding:34px;border:1px solid var(--blush);border-radius:22px;text-align:center}
.removal>div:nth-child(2)>span{display:block;color:var(--muted);font-size:11px}
.removal strong{display:block;margin-top:8px;color:var(--wine);font:500 29px/1.4 "Noto Serif JP",serif;white-space:nowrap}
.removal>.small-note{grid-column:1/-1}
.risks{padding-top:0;background:var(--paper)}
.risks details{padding:0 28px;border:1px solid var(--line);border-radius:18px}
.risks summary small{display:block;color:var(--coral);font:600 9px/1.5 "Noto Sans JP",sans-serif;letter-spacing:.15em}
.risks summary b{color:var(--muted);font-size:10px}
.risks details>p,.risks ul{color:var(--muted);font-size:11px}
.risks ul{columns:2;column-gap:40px;padding-bottom:15px}

.faq{background:#fff7f0}
.faq-list{max-width:900px;margin-top:50px;border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{cursor:pointer;list-style:none;padding:23px 0;display:grid;grid-template-columns:42px 1fr 20px;gap:15px;align-items:center;font:500 14px/1.6 "Noto Serif JP",serif}
.faq-list summary>span,.faq-list i{color:var(--coral);font:italic 500 18px/1 "Playfair Display",serif}
.faq-list summary b{color:var(--coral)}
.faq-list details>div{padding:0 0 24px;display:grid;grid-template-columns:42px 1fr;gap:15px}
.faq-list i{font-size:22px}
.faq-list details p{margin:0;color:var(--muted);font-size:12px}

.reserve{position:relative;overflow:hidden;text-align:center;background:linear-gradient(135deg,#f5d1c9,#fff5e9 55%,#f4dc80)}
.reserve:before,.reserve:after{content:"";position:absolute;border:1px solid rgba(110,38,57,.12);border-radius:50%}
.reserve:before{width:600px;height:600px;left:-330px;top:-250px}
.reserve:after{width:450px;height:450px;right:-200px;bottom:-220px}
.reserve>*{position:relative;z-index:1}
.reserve>p:not(.eyebrow){font:500 13px/2 "Noto Serif JP",serif}
.consultation{margin:27px auto;display:flex;justify-content:center;align-items:center;gap:18px}
.consultation span{color:var(--muted);font-size:12px}
.consultation strong{color:var(--wine);font:500 27px/1 "Noto Serif JP",serif;white-space:nowrap}
.reserve .button{margin:auto}
.before-note{max-width:760px;margin-top:52px;padding:26px 32px;border-radius:18px;background:rgba(255,255,255,.64);text-align:left}
.before-note h3{margin:0 0 13px;font-size:15px}
.before-note ul{margin:0;padding-left:1.2em;columns:2;color:var(--muted);font-size:10px}
.before-note li{margin:5px 0;break-inside:avoid}

.access{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw;background:var(--paper)}
.access>*{max-width:none;margin:0}
.access-heading>p:last-child{color:var(--wine);font:500 17px/1.9 "Noto Serif JP",serif}
.access-details dl{margin:0;border-top:1px solid var(--line)}
.access-details dl>div{padding:20px 0;display:grid;grid-template-columns:120px 1fr;gap:25px;border-bottom:1px solid var(--line)}
.access-details dt{color:var(--coral);font-size:11px;font-weight:700}
.access-details dd{margin:0;font-size:12px}
.access-details dd strong{color:var(--wine);font:500 24px/1.4 "Noto Serif JP",serif}
.access-links{margin-top:32px;display:flex;align-items:center;gap:26px}
.access-links .button{width:310px;min-height:60px}
.access-links>a:last-child{color:var(--wine);font-size:11px;font-weight:700;border-bottom:1px solid var(--wine)}

footer{background:var(--wine-dark);color:#fff}
.footer-main{max-width:1200px;margin:auto;padding:70px max(5vw,24px) 55px;display:grid;grid-template-columns:.9fr 1.2fr;gap:10vw}
.footer-clinic .brand{display:inline-block;margin-bottom:23px}
.footer-clinic>p{margin:6px 0;color:#d2b8bd;font-size:9px}
.footer-clinic h3{margin:10px 0 18px;color:#fff;font:500 15px/1.8 "Noto Serif JP",serif}
.footer-clinic address{font-style:normal;color:#c7acb2;font-size:10px;line-height:2}
.footer-clinic>a:last-child{font-size:14px}
.footer-main nav{display:grid;grid-template-columns:1fr 1fr;gap:50px}
.footer-main nav>div{display:flex;flex-direction:column}
.footer-main nav p{margin:0 0 12px;color:#ffd0c8;font:500 10px/1 "Playfair Display",serif;letter-spacing:.18em}
.footer-main nav a{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1);color:#d2b8bd;font-size:9px}
.footer-bottom{padding:17px;text-align:center;background:#3a101d;color:#9d747d;font-size:8px}
.mobile-reserve{display:none}

@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes soft-in{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
@keyframes twinkle{0%,100%{opacity:.4;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

@media(max-width:960px){
  .site-header nav{display:none}.header-reserve{margin-left:auto}
  .hero{min-height:auto;grid-template-columns:1fr;padding-top:130px}.hero-copy{text-align:center;margin:auto}.hero-material{margin-left:auto;margin-right:auto;text-align:left}.hero-visual{height:600px;margin-top:45px}
  .intro,.recommend,.price,.warranty,.removal,.access{grid-template-columns:1fr;gap:50px}
  .material{grid-template-columns:1fr}.material-image{height:500px}
  .feature-list{grid-template-columns:repeat(2,1fr)}.feature-list article,.feature-list article:nth-child(4){grid-column:auto}.feature-list article:last-child{grid-column:1/-1}
  .design-grid{grid-template-columns:repeat(2,1fr);gap:40px 22px}
  .footer-main{grid-template-columns:1fr;gap:48px}
}

@media(max-width:700px){
  body{padding-bottom:64px}
  .site-header{height:70px;padding:0 18px}.site-header .brand{font-size:25px}.header-reserve{display:none}
  .hero{padding:86px 20px 0;display:flex;flex-direction:column}.hero:before{width:100vw;height:145px;left:-45vw;top:-55px}.hero:after{left:auto;right:20px;top:84px;font-size:20px}
  .hero-copy{padding:0;text-align:left}.hero .eyebrow{margin-bottom:10px;font-size:9px}.hero h1{margin-bottom:11px;font-size:clamp(36px,10.5vw,42px);line-height:1.38}.hero-lead{margin-bottom:14px;font-size:14px;line-height:1.7}.hero-copy .button,.hero-material{display:none}
  .hero-visual{order:2;width:calc(100% + 40px);height:clamp(300px,84vw,360px);margin:0 -20px;border-width:4px;border-radius:36px 36px 0 0/18px 18px 0 0}.hero-visual img{object-position:center 52%;transform:scale(1)}.hero-visual figcaption{right:12px;bottom:10px;font-size:7px}
  .section{padding:76px 20px}.section h2{font-size:clamp(34px,9.5vw,43px)}
  .wide-heading{grid-template-columns:1fr;gap:0}.wide-heading .eyebrow{margin-top:0}.wide-heading>p:last-child{grid-column:auto;font-size:11px}
  .intro{gap:34px}.intro-copy{font-size:13px}
  .material-image{height:330px}.material-copy{padding:62px 20px}.material-copy h2{font-size:clamp(27px,8vw,30px);line-height:1.65}.material-copy h2 span{white-space:nowrap}.material-intro{font-size:12px}.material dl>div{grid-template-columns:34px 1fr;gap:10px}.material dd strong{font-size:14px}
  .recommend{gap:42px}.recommend-visual{height:430px}.recommend-visual p{right:-5px;width:120px;height:120px;font-size:11px}.recommend li{font-size:11px}
  .feature-list{grid-template-columns:1fr}.feature-list article:last-child{grid-column:auto}.feature-list article{min-height:0}
  .design-grid{grid-template-columns:1fr 1fr;gap:35px 10px}.design-grid figure{height:225px}.design-grid h3{font-size:15px}.design-grid article>div{font-size:9px}
  .price{gap:32px}.price-table{padding:32px 20px;border-radius:24px}.price-table>div{display:grid;gap:10px}.price-table strong{font-size:29px}.price-table dl{grid-template-columns:1fr;gap:5px}.price-table dl div{border-left:0;border-bottom:1px solid var(--line);padding:7px 0}
  .clinic-gallery{grid-template-columns:1fr;gap:8px}.clinic-gallery figure{height:255px}.clinic-gallery figure:nth-child(2){height:220px}
  .timeline{margin-top:48px}.timeline article{grid-template-columns:68px 1fr;gap:17px;padding-bottom:34px}.timeline article>p{width:68px;height:68px;font-size:9px}.timeline:before{left:34px}.timeline h3{font-size:17px;display:flex;flex-direction:column;align-items:flex-start;gap:7px}.timeline h3 small{margin:0}.timeline article>span{grid-column:2;margin-top:-30px;font-size:10px}.flow-time{display:grid;grid-template-columns:1fr 1fr;gap:11px}.flow-time span{grid-column:1/-1;margin:0}
  .info-grid{grid-template-columns:1fr;gap:24px}.info-grid article{padding:32px 24px}.info-card-heading{gap:14px;margin-bottom:22px}.info-grid h3{font-size:clamp(18px,5.4vw,21px);line-height:1.85}.info-number{margin-top:8px;font-size:21px}.risks ul{columns:1}
  .warranty h2{font-size:35px}.removal>div:nth-child(2){padding:28px 15px}
  .faq-list summary{grid-template-columns:32px 1fr 15px;gap:9px;font-size:12px}.faq-list details>div{grid-template-columns:32px 1fr;gap:9px}
  .reserve>p:not(.eyebrow){font-size:11px}.consultation{flex-direction:column;gap:10px}.reserve .button{font-size:12px}.before-note{padding:24px 21px}.before-note ul{columns:1}
  .access-details dl>div{grid-template-columns:82px 1fr;gap:14px}.access-links{align-items:stretch;flex-direction:column}.access-links .button{width:100%}
  .footer-main{padding:58px 22px 42px}.footer-main nav{grid-template-columns:1fr;gap:33px}
  .mobile-reserve{display:flex;position:fixed;z-index:50;left:0;right:0;bottom:0;height:64px;align-items:center;justify-content:center;gap:20px;background:var(--coral);color:#fff;font-weight:700;box-shadow:0 -8px 25px rgba(80,24,39,.16)}
}

/* 2026 young editorial refresh */
:root{
  --cream:#fff9fb;
  --paper:#fffefe;
  --wine:#302b37;
  --wine-dark:#24212a;
  --coral:#ff7195;
  --coral-dark:#f55782;
  --blush:#ffdce7;
  --pink:#fff0f5;
  --yellow:#f7e8a8;
  --gold:#b8a6dc;
  --ink:#302d36;
  --muted:#77717e;
  --line:#eee6eb;
}

body{
  background:
    radial-gradient(circle at 92% 4%,rgba(224,216,255,.38),transparent 23rem),
    var(--cream);
  font-family:"Noto Sans JP",sans-serif;
}

.site-header{
  height:82px;
  background:rgba(255,251,253,.76);
  border-bottom:1px solid rgba(255,255,255,.84);
  color:var(--ink);
  backdrop-filter:blur(20px) saturate(1.3);
}
.brand{font-family:"Playfair Display",serif;color:#332d3b}
.site-header nav{font-family:"Noto Sans JP",sans-serif;font-weight:500}
.header-reserve{
  border:0;
  background:#292530;
  color:#fff;
  padding:11px 24px;
}

.hero{
  min-height:860px;
  background:
    radial-gradient(circle at 12% 34%,rgba(255,218,232,.78),transparent 22rem),
    radial-gradient(circle at 78% 16%,rgba(226,220,255,.72),transparent 25rem),
    linear-gradient(135deg,#fffafd 0%,#fffdfc 52%,#fff4f8 100%);
}
.hero:before{
  width:46vw;height:190px;left:-11vw;top:-92px;
  background:linear-gradient(120deg,rgba(255,199,220,.8),rgba(239,227,255,.72));
  filter:blur(2px);
}
.hero:after{color:#c8b7ec}
.hero-copy{max-width:610px}
.eyebrow{
  color:#f0648a;
  font-family:"Noto Sans JP",sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.25em;
}
.hero h1,.section h2{
  color:var(--ink);
  font-family:"Noto Sans JP",sans-serif;
  font-weight:500;
  letter-spacing:-.04em;
}
.hero h1{font-size:clamp(50px,5.2vw,76px);line-height:1.28}
.hero h1 span{white-space:nowrap}
.hero-lead{color:#4d4853;font-family:"Noto Sans JP",sans-serif;font-weight:400}
.hero-tags{
  display:flex;flex-wrap:wrap;gap:8px;
  list-style:none;margin:22px 0 24px;padding:0;
}
.hero-tags li{
  padding:8px 13px;border:1px solid rgba(255,113,149,.28);border-radius:100px;
  background:rgba(255,255,255,.68);color:#685d68;font-size:10px;font-weight:600;
  backdrop-filter:blur(10px);
}
.button{
  background:linear-gradient(100deg,#ff7195,#f75f8b);
  box-shadow:0 13px 30px rgba(245,87,130,.2);
}
.hero-material{
  border-color:rgba(255,113,149,.18);
  background:rgba(255,255,255,.74);
  box-shadow:0 12px 40px rgba(133,105,128,.07);
}
.hero-material p{color:#5d5560}
.hero-visual{
  height:680px;
  border-radius:34px;
  border:8px solid rgba(255,255,255,.82);
  box-shadow:0 28px 80px rgba(122,89,111,.16);
}
.hero-visual img{object-position:center 48%}
.hero-visual figcaption{color:#514959;background:rgba(255,255,255,.76)}

.section h2{font-size:clamp(36px,4vw,56px);line-height:1.4}
.section h3{font-family:"Noto Sans JP",sans-serif;color:var(--ink);font-weight:600}
.intro-copy{font-family:"Noto Sans JP",sans-serif}
.intro-copy .lead:first-letter{float:none;padding:0;color:inherit;font-size:inherit;line-height:inherit}

.material{
  min-height:690px;
  background:
    radial-gradient(circle at 78% 10%,rgba(220,210,255,.7),transparent 20rem),
    linear-gradient(145deg,#fff4f8,#fbf7ff 52%,#fffdfd);
  color:var(--ink);
}
.material-image{margin:36px 0 36px 36px;border-radius:28px}
.material-image:after{background:linear-gradient(90deg,transparent 55%,rgba(255,244,248,.14))}
.material-copy .eyebrow{color:#f0648a}
.material-copy h2{color:var(--ink)}
.material-intro{color:#655e69;font-family:"Noto Sans JP",sans-serif;font-weight:400}
.material dl{border-top-color:rgba(102,91,112,.15)}
.material dl>div{
  margin:10px 0;padding:18px;border:1px solid rgba(255,255,255,.8);border-radius:16px;
  background:rgba(255,255,255,.62);box-shadow:0 10px 30px rgba(98,78,101,.05);
}
.material dt{color:#f0648a;font-family:"Noto Sans JP",sans-serif}
.material dd strong{font-family:"Noto Sans JP",sans-serif;font-weight:600}
.material dd span{color:#77707c}
.material-note{color:#938994}

.recommend-visual img{border-radius:34px}
.recommend-visual p{
  background:rgba(255,255,255,.8);color:#4e4754;border:1px solid rgba(255,255,255,.9);
  box-shadow:0 16px 45px rgba(87,70,88,.12);backdrop-filter:blur(14px);
}
.recommend:after{background:#e8e0ff}

.features{
  background:
    radial-gradient(circle at 92% 10%,rgba(218,210,255,.58),transparent 25rem),
    linear-gradient(145deg,#fff0f5,#fff9fc 66%,#f5f0ff);
  color:var(--ink);
}
.features .wide-heading h2,.features .wide-heading>p:last-child{color:var(--ink)}
.feature-list article{
  border:1px solid rgba(255,255,255,.9);
  background:rgba(255,255,255,.77);
  box-shadow:0 16px 44px rgba(104,78,99,.07);
}
.feature-list article>p:after{color:#c8b7ec}

.design-grid figure{border-radius:28px!important}
.price{background:linear-gradient(135deg,#ffe8f0,#f9f4ff 55%,#fff8dc)}
.price-table{box-shadow:0 22px 65px rgba(114,87,106,.1)}
.price-table>p:first-child,.price-table strong,.price-table dd{color:var(--ink)}
.price-table dl{background:#fff4f8}
.timeline article>p{background:#ffe2ec;color:#db547a}
.timeline h3 small{background:#f5efff;color:#8e74bb}
.flow-time{background:#302b37}
.information{background:#fff6f9}
.info-grid article{box-shadow:0 16px 40px rgba(108,84,101,.055)}
.info-grid article>p:last-child{background:#fff2f7}

.warranty{
  background:
    radial-gradient(circle at 15% 20%,rgba(255,255,255,.82),transparent 20rem),
    linear-gradient(135deg,#f6edff,#ffeaf1);
  color:var(--ink);
}
.warranty h2{color:var(--ink)}
.warranty .eyebrow{color:#8f75be}
.warranty details{border-color:rgba(75,65,81,.18)}
.faq{background:#fff9fb}
.reserve{background:linear-gradient(135deg,#ffe2ec,#faf3ff 55%,#fff8d9)}
footer{background:#292530}
.footer-bottom{background:#211e26}

@media(max-width:700px){
  body{padding-bottom:54px}
  .site-header{height:64px}
  html,body,main{max-width:100%;overflow-x:hidden}
  .hero{
    position:relative;display:block;height:calc(100svh - 54px);min-height:610px;
    padding:0;overflow:hidden;
  }
  .hero-copy{
    position:absolute;z-index:4;left:14px;right:14px;bottom:15px;width:auto;
    margin:0;padding:14px 18px 15px;
    border:1px solid rgba(255,255,255,.76);border-radius:22px;
    background:rgba(255,251,253,.74);box-shadow:0 14px 40px rgba(84,62,78,.13);
    backdrop-filter:blur(16px) saturate(1.15);
  }
  .hero .eyebrow{margin-bottom:8px;font-size:8px}
  .hero h1{margin:0;font-size:clamp(29px,8.3vw,35px);line-height:1.3;letter-spacing:-.055em}
  .hero h1 span{display:block;white-space:nowrap}
  .hero-lead,.hero-tags{display:none}
  .hero-visual{
    position:absolute;z-index:1;inset:64px 0 0;width:100%;height:auto;margin:0;
    border:0;border-radius:0;box-shadow:none;
  }
  .hero-visual img{
    object-position:center 48%;
    transform:scale(1.16);
    transform-origin:center 65%;
  }
  .hero-visual:after{background:linear-gradient(to bottom,transparent 58%,rgba(51,39,48,.11))}
  .hero-visual figcaption{display:none}
  .section,.intro,.recommend,.price,.warranty,.removal,.access{min-width:0}
  .section>*{min-width:0;max-width:100%}
  .section h2{
    max-width:100%;font-size:clamp(30px,8.4vw,36px);line-height:1.55;
    overflow-wrap:anywhere;word-break:normal;
  }
  .section-heading h2 span,.recommend h2 span,.information h2 span{
    max-width:100%;white-space:normal;
  }
  .intro .section-heading h2{font-size:clamp(29px,8vw,34px)}
  .material-copy h2{font-size:clamp(25px,6.8vw,29px)}
  .material-copy h2 span{white-space:nowrap}
  .material-image{height:300px;margin:18px 18px 0;border-radius:22px}
  .material-copy{padding:48px 20px 62px}
  .material-copy h2{font-size:clamp(26px,7.5vw,31px)}
  .material dl>div{grid-template-columns:30px 1fr;padding:15px 13px}
  .recommend-visual img{border-radius:24px}
  .feature-list article{border-radius:20px}
  .warranty h2{font-size:32px}
  .mobile-reserve{
    height:54px;gap:13px;
    background:rgba(39,35,45,.94);
    box-shadow:0 -7px 26px rgba(39,35,45,.14);
    backdrop-filter:blur(16px);
    font-size:14px;
  }
}

/* Mobile containment: keep every section inside the physical viewport. */
@media only screen and (max-width:700px){
  html{
    width:100%!important;
    max-width:100%!important;
    overflow-x:clip!important;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
  }
  body{
    position:relative!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    overflow-x:clip!important;
  }
  main{
    position:relative!important;
    width:100%!important;
    max-width:100vw!important;
    min-width:0!important;
    margin:0!important;
    overflow-x:clip!important;
    transform:none!important;
  }
  section,footer,.site-header{
    width:100%!important;
    max-width:100vw!important;
    min-width:0!important;
  }
  .section>*{
    width:100%;
    max-width:100%!important;
    min-width:0!important;
  }
  .intro{
    display:block!important;
    width:100%!important;
    max-width:100vw!important;
    margin:0!important;
    padding:72px 20px!important;
  }
  .intro>*{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .intro-copy{padding-top:30px!important}
  .intro .section-heading h2{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    font-size:clamp(28px,7.7vw,33px)!important;
    line-height:1.55!important;
    letter-spacing:-.055em!important;
  }
  .intro .section-heading h2 span{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }
  .intro-copy p{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    overflow-wrap:anywhere!important;
  }
}
