@charset "utf-8";

:root{
  --green:#74A23E;
  --green-rgb:116,162,62;
  --green-bg:#EAF2DC;
  --green-ink:#4A7A28;
  --pale:#F7F8F2;
  --ink:#5b534b;
  --sub:#756D65;
  --border:#e0e4d4;
  --yellow:#F4B000;
  --yellow-ink:#4A3A10;
  --yellow-hover:#f8bd24;
  --marker:rgba(var(--green-rgb),.28);
  --body-bg:#e8ecdf;
  --deco-from:#e3ebd4;
  --deco-to:#d3e0bd;
  --hero-bg:#e6e3da;
  --header-h:69px;

  --ls-heading:.06em;
  --ls-body:.02em;
  --lh-heading:1.45;
  --lh-body:1.8;
  --lh-prose:1.95;

  --section-pt:36px;
  --section-pb:72px;
  --section-px:24px;
}

/* ---------- base ---------- */
@font-face{font-family:"TBChibiRGo-local";src:local("TBChibiRGoPlusKStd-DemiBold");font-weight:1 1000;font-display:swap;}
*{box-sizing:border-box;}
html,body{margin:0;}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth;}}
body{
  background:var(--body-bg);
  color:var(--ink);
  -webkit-text-size-adjust:100%;
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic",YuGothic,Meiryo,sans-serif;
  font-weight:400;
}
h1,h2,h3,h4,a{font-family:"MFW-TBChibiRGoPlusKStd-DemiBold","TBChibiRGo-local","Hiragino Maru Gothic ProN","ヒラギノ丸ゴ ProN","Kosugi Maru",sans-serif;}
img{display:block;}
strong{font-weight:700;color:var(--yellow-ink);}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:3px;}
a[href^="tel:"]{white-space:nowrap;}

/* ---------- layout ---------- */
.bg-deco{
  position:fixed;inset:0;z-index:0;
  background:
    repeating-linear-gradient(135deg,rgba(0,0,0,.03) 0 22px,rgba(0,0,0,0) 22px 44px),
    linear-gradient(180deg,var(--deco-from),var(--deco-to));
  filter:blur(10px);
}
.page{
  position:relative;z-index:2;
  width:100%;max-width:430px;margin:0 auto;
  background:#fff;
  box-shadow:0 0 28px rgba(0,0,0,.18);
  min-height:100vh;
  line-height:var(--lh-body);letter-spacing:var(--ls-body);
}

/* ---------- header ---------- */
.site-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px var(--section-px);
  background:#fff;
  border-bottom:1px solid var(--border);
}
.site-header__logo{height:40px;width:auto;object-fit:contain;}

/* ---------- drawer（グローバルメニュー） ---------- */

.drawer-dock{
  position:fixed;top:0;left:0;right:0;z-index:40;
  max-width:430px;height:0;margin:0 auto;
  pointer-events:none;
}
.drawer-toggle{
  position:absolute;pointer-events:auto;
  top:calc(12.5px + env(safe-area-inset-top, 0px));
  right:var(--section-px);
  width:44px;height:44px;padding:0;
  background:var(--green-ink);border:0;border-radius:50%;cursor:pointer;
  box-shadow:0 2px 4px rgba(0,0,0,.14),0 6px 14px rgba(0,0,0,.20);
  -webkit-tap-highlight-color:transparent;
}
.drawer-toggle__bar{
  position:absolute;left:11px;width:22px;height:3px;border-radius:2px;background:#fff;
  transition:transform .2s ease,opacity .2s ease;
}
.drawer-toggle__bar:nth-child(1){top:14px;}
.drawer-toggle__bar:nth-child(2){top:20.5px;}
.drawer-toggle__bar:nth-child(3){top:27px;}
.drawer-toggle[aria-expanded="true"] .drawer-toggle__bar:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.drawer-toggle[aria-expanded="true"] .drawer-toggle__bar:nth-child(2){opacity:0;}
.drawer-toggle[aria-expanded="true"] .drawer-toggle__bar:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

body.dw-open{overflow:hidden;}
.drawer{position:fixed;inset:0;z-index:30;visibility:hidden;transition:visibility 0s linear .25s;}
body.dw-open .drawer{visibility:visible;transition:none;}
body.dw-open .sticky-bar{visibility:hidden;}
.drawer__overlay{position:absolute;inset:0;background:rgba(30,28,25,.55);opacity:0;transition:opacity .25s ease;}
body.dw-open .drawer__overlay{opacity:1;}
.drawer__panel{
  position:absolute;top:0;bottom:0;
  right:max(0px,calc((100vw - 430px) / 2));
  width:min(100vw,430px);height:100dvh;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding:0 var(--section-px) 32px;
  background:#fff;
  font-family:"MFW-TBChibiRGoPlusKStd-DemiBold","TBChibiRGo-local","Hiragino Maru Gothic ProN","ヒラギノ丸ゴ ProN","Kosugi Maru",sans-serif;
  transform:translateX(100%);transition:transform .25s ease;
}
body.dw-open .drawer__panel{transform:none;}
@media (prefers-reduced-motion:reduce){
  .drawer,.drawer__overlay,.drawer__panel,.drawer-toggle__bar{transition:none;}
}
.drawer__label{
  margin:24px calc(var(--section-px) * -1) 0;
  padding:8px var(--section-px);
  font-size:16px;letter-spacing:.14em;color:#fff;
  background:var(--green-ink);
}
.drawer__head{
  position:sticky;top:0;z-index:1;
  display:flex;align-items:center;
  margin:0 calc(var(--section-px) * -1);
  padding:calc(14px + env(safe-area-inset-top, 0px)) var(--section-px) 14px;
  background:#fff;
  border-bottom:1px solid var(--border);
}
.drawer__logo{height:40px;width:auto;object-fit:contain;}
.drawer__head + .drawer__label{margin-top:0;}
.drawer__list,.drawer__sub{list-style:none;margin:0;padding:0;}
.drawer__link{
  display:block;padding:8px 0;
  font-size:15px;line-height:1.5;color:var(--ink);text-decoration:none;
}
.drawer__list > li > .drawer__link{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;
}
.drawer__desc{font-size:11.5px;color:var(--sub);}
.drawer__sub{padding-left:16px;}
.drawer__link--sub{font-size:13px;color:var(--sub);}
.drawer__link--sub::before{content:"└ ";color:var(--sub);}
.drawer__link[aria-current="page"]{
  margin:0 -8px;padding-left:8px;padding-right:8px;
  color:var(--ink);background:var(--green-bg);border-radius:8px;
}
.drawer__link--icon{position:relative;padding-left:32px;}
.drawer__link--icon[aria-current="page"]{padding-left:40px;}
.drawer__icon{
  position:absolute;left:0;top:calc(8px + .75em - 12px);
  width:24px;height:24px;
  background-color:var(--green-ink);
  -webkit-mask:var(--icon) center/contain no-repeat;
          mask:var(--icon) center/contain no-repeat;
}
.drawer__link--icon[aria-current="page"] .drawer__icon{left:8px;}
.drawer__icon--trouble{--icon:url("../images/icn_nav_trouble.svg");}
.drawer__icon--prevention{--icon:url("../images/icn_nav_prevention.svg");}
.drawer__icon--ortho{--icon:url("../images/icn_nav_ortho.svg");}
.drawer__icon--doctor{--icon:url("../images/icn_nav_doctor.svg");}
.drawer__icon--clinic{--icon:url("../images/icn_nav_clinic.svg");}
.drawer__icon--news{--icon:url("../images/icn_nav_news.svg");}
.drawer__ext-mark{margin-left:2px;font-size:11px;}

/* ---------- page-head（下層ページ冒頭） ---------- */
.page-head{
  position:relative;aspect-ratio:16/9;overflow:hidden;
  background:var(--pale);
}
.page-head__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.page-head .page-head__title{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:max-content;max-width:calc(100% - 48px);
  margin:0;
  text-align:center;color:#fff;
  text-shadow:
    0 0 2px rgba(0,0,0,.9),
    0 0 2px rgba(0,0,0,.9),
    0 0 8px rgba(0,0,0,.6),
    0 0 16px rgba(0,0,0,.4);
}
.page-head--plain{
  position:static;aspect-ratio:auto;overflow:visible;
  padding:var(--section-pt) var(--section-px) var(--section-pt);
  background:var(--pale);
}
.page-head--plain .page-head__title{
  position:static;transform:none;width:auto;max-width:none;
  color:var(--ink);text-shadow:none;
}

/* ---------- breadcrumb（パンくず） ---------- */
.breadcrumb{padding:8px var(--section-px);background:#fff;}
.breadcrumb__list{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;font-size:12px;line-height:1.8;}
.breadcrumb__item{color:var(--ink);}
.breadcrumb__item + .breadcrumb__item::before{content:"＞";margin:0 4px;color:var(--sub);}
.breadcrumb__item a{color:var(--sub);text-decoration:underline;}

/* ---------- ortho-steps（歯並び3ページの順路） ---------- */
.ortho-steps{--step-arrow:20px;border-top:1px solid var(--border);background:#fff;}
.ortho-steps:has(+ .section--flush){border-bottom:1px solid var(--border);margin-bottom:var(--section-pt);}
.ortho-steps__list{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;margin:0;padding:0;}
.ortho-steps__item{position:relative;display:flex;}
.ortho-steps__item + .ortho-steps__item::before{
  content:"›";content:"›" / "";
  position:absolute;top:50%;left:calc(var(--step-arrow) / -2);z-index:1;transform:translateY(-50%);
  display:grid;place-items:center;width:var(--step-arrow);height:var(--step-arrow);border-radius:50%;
  background:var(--green);color:#fff;font-size:12px;font-weight:400;line-height:1;pointer-events:none;
}
.ortho-steps__link{
  position:relative;z-index:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:100%;min-height:37px;padding:5px calc(var(--step-arrow) / 2 + 6px);
  font-size:12.5px;font-weight:700;line-height:1.4;text-align:center;color:var(--green-ink);text-decoration:none;
  -webkit-tap-highlight-color:transparent;transition:background-color .15s ease;
}
.ortho-steps__label{display:block;}
.ortho-steps__link:hover{text-decoration:underline;text-decoration-color:var(--green);}
.ortho-steps__link:active{background:var(--green-bg);}
.ortho-steps__link[aria-current="page"]{color:var(--ink);background:var(--green-bg);}
.ortho-steps__link[aria-current="page"]:hover{text-decoration:none;}

/* ---------- section ---------- */
.section{
  position:relative;
  padding:var(--section-pt) var(--section-px) var(--section-pb);
}
.section--green{background:var(--green-bg);}
.section--green .eyebrow,.section--green .lead,.section--green .text,.section--green .note,
.section.section--green ul:not([class]),.section.section--green ol:not([class]){color:var(--ink);}
.section--pale{background:var(--pale);}
.section--center{text-align:center;}

/* ---------- セクション区切りの線・塗り ---------- */
.section{--next-bg:#fff;}
.section:has(+ .section--pale){--next-bg:var(--pale);}
.section:has(+ .section--green){--next-bg:var(--green-bg);}
.intro{--next-bg:#fff;}
.intro:has(+ .section--pale){--next-bg:var(--pale);}

.section:not(.section--flush)::before,
.section:not(.section--flush)::after,
.intro::before,
.intro::after{
  content:"";position:absolute;left:0;right:0;bottom:0;
  height:48px;
  pointer-events:none;
}
.section:not(.section--flush)::before,
.intro::before{
  background:var(--next-bg);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 48' preserveAspectRatio='none'%3E%3Cpath d='M0 14C20 -2 50 -2 70 8C84 15 94 14 100 13L100 48L0 48Z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 48' preserveAspectRatio='none'%3E%3Cpath d='M0 14C20 -2 50 -2 70 8C84 15 94 14 100 13L100 48L0 48Z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
}
.section:not(.section--flush)::after,
.intro::after{
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 16' preserveAspectRatio='none'%3E%3Cpath d='M0 14C20 -2 50 -2 70 8C84 15 94 14 100 13' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") left top / 100% 16px no-repeat,
    url("../images/olive-band@2x.webp") center 20px / 500px 18px repeat-x;
  padding:0 var(--section-px);
  background-origin:border-box,content-box;
  background-clip:border-box,content-box;
}
.section:not(.section--flush)::after,
.intro::after{
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 16' preserveAspectRatio='none'%3E%3Cpath d='M0 14C20 -2 50 -2 70 8C84 15 94 14 100 13' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") left top / 100% 16px no-repeat;
  background-origin:border-box;
  background-clip:border-box;
}
.section:not(.section--pale):not(.section--green)::before,
.section:not(.section--pale):not(.section--green)::after{transform:scaleX(-1);}
.section:has(+ .section--flush)::before,
.section:has(+ .section--flush)::after,
.section:has(+ .ortho-steps + .section--flush)::before,
.section:has(+ .ortho-steps + .section--flush)::after{content:none;}
.section:has(+ .section--flush),
.section:has(+ .ortho-steps + .section--flush),
.section--flush{padding-bottom:var(--section-pt);}
.section__kids{position:absolute;top:-19px;right:var(--section-px);z-index:2;height:125px;width:auto;transform:translateY(-80%);}
.section:has(+ .section > .section__kids){padding-bottom:calc(19px + 125px * .8 + 24px);}

/* ---------- shared type ---------- */
.eyebrow{
  font-family:"MFW-TBChibiRGoPlusKStd-DemiBold","TBChibiRGo-local","Hiragino Maru Gothic ProN","ヒラギノ丸ゴ ProN","Kosugi Maru",sans-serif;
  font-size:12px;color:var(--sub);letter-spacing:.14em;margin:0 0 8px;
}
.eyebrow--center{text-align:center;}
.eyebrow--mark::before{
  content:"";display:block;width:24px;height:28px;margin:0 auto 8px;
  background:url(../images/icn_logo_mark.svg) center/contain no-repeat;
}
.title{line-height:var(--lh-heading);letter-spacing:var(--ls-heading);margin:0 0 20px;color:var(--ink);}
.title--19{position:relative;padding-left:16px;font-size:18px;}
.title--19::before{
  content:"";position:absolute;left:0;top:calc(.725em - 4px);
  width:8px;height:8px;border-radius:50%;background:var(--green);
}
.section--center .title--19{padding-left:0;}
.section--center .title--19::before{content:none;}
.section--flush .hours .title--19{padding-left:0;text-align:center;font-size:16px;}
.section--flush .hours .title--19::before{content:none;}
.title--21{position:relative;z-index:0;font-size:21px;color:var(--green-ink);}
.title--21::before{
  content:"";position:absolute;left:-12px;top:-10px;z-index:-1;
  width:56px;height:56px;
  border-radius:48% 52% 44% 56% / 55% 45% 58% 42%;
  background:var(--green-bg);
}
.section--green .title--21::before{background:#fff;}
.title--policy{text-align:center;}
.title--policy::before{content:none;}
.title__num{display:block;margin-bottom:10px;font-size:22px;line-height:1;letter-spacing:.08em;text-indent:.08em;}
.title--22{font-size:22px;}
.lead{font-size:13.5px;line-height:var(--lh-prose);color:var(--sub);margin:0 0 24px;}
.text{font-size:13.5px;color:var(--sub);margin:0 0 16px;}
.text:last-child{margin-bottom:0;}
.note{font-size:11.5px;color:var(--sub);margin:8px 0 0;}
.section ul:not([class]),.section ol:not([class]){margin:0 0 16px;padding-left:1.3em;font-size:13.5px;color:var(--sub);}
.section ul:not([class]):last-child,.section ol:not([class]):last-child{margin-bottom:0;}

.nw{display:inline-block;}

.marker{
  background:linear-gradient(transparent 78%,var(--marker) 78%);
  color:inherit;
  padding:0 .06em;
}

/* ---------- buttons ---------- */
.cta{margin-top:16px;}
.cta--sm{margin-top:10px;}
.cta--xl{margin-top:20px;}
.btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;min-height:54px;padding:13px 20px;
  border-radius:999px;font-size:16px;
  text-decoration:none;cursor:pointer;
}
.btn--outline{background:#fff;color:var(--ink);border:2px solid var(--green);}
.btn--outline:hover{background:var(--green-bg);}
.btn--primary{background:var(--yellow);color:var(--yellow-ink);border:none;}
.btn--primary:hover{background:var(--yellow-hover);}
.btn--md{min-height:44px;font-size:13.5px;}
.btn--xs{min-height:44px;font-size:12px;padding:11px 16px;}
.btn__arrow{font-size:14px;opacity:.85;}
.btn--xs .btn__arrow{font-size:11px;}
.cta + .title,.more + .title{margin-top:36px;}
.sticky-bar__icon,.btn__icon{
  display:block;width:20px;height:20px;flex:0 0 auto;
  background-color:currentColor;
  -webkit-mask:var(--icon) center/contain no-repeat;
          mask:var(--icon) center/contain no-repeat;
}
.sticky-bar__icon--reserve,.btn__icon--reserve{--icon:url("../images/icn_cta_reserve.svg");}
.sticky-bar__icon--tel,.btn__icon--tel{--icon:url("../images/icn_cta_tel.svg");}
.sticky-bar__icon--map{--icon:url("../images/icn_cta_map.svg");}

/* ---------- more（本文の後ろに添える、下層ページへの小さなリンク） ---------- */
.more{margin-top:8px;text-align:right;}
.more + .more{margin-top:0;}
.more__link{
  display:inline-flex;align-items:center;gap:8px;min-height:44px;
  font-size:13.5px;font-weight:700;color:var(--green-ink);text-decoration:none;
}
.more__link:hover{text-decoration:underline;text-decoration-color:var(--green);}
.section--green .more__link{color:var(--ink);}
.more__arrow{
  display:inline-grid;place-items:center;flex:0 0 auto;width:20px;height:20px;border-radius:50%;
  background:var(--green);color:#fff;font-size:12px;line-height:1;
}

/* ---------- FV / hero ---------- */
.fv{position:relative;padding:0;background:#fff;}
.fv + .section{padding-top:calc(32px + 13.5px);}
.fv:has(.news) + .section{padding-top:var(--section-pt);}
.hero{position:relative;background:var(--hero-bg);border:1px solid var(--border);height:calc(100svh - var(--header-h) - 28px);}
@media(min-width:520px){.hero{height:375px;}}
.hero{--hero-next:#fff;border-bottom:none;}
.hero:has(+ .news){--hero-next:var(--pale);}
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:16px;
  background:var(--hero-next);pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 16' preserveAspectRatio='none'%3E%3Cpath d='M0 14C20 -2 50 -2 70 8C84 15 94 14 100 13L100 16L0 16Z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 16' preserveAspectRatio='none'%3E%3Cpath d='M0 14C20 -2 50 -2 70 8C84 15 94 14 100 13L100 16L0 16Z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
}
.hero__kids{position:absolute;left:0;bottom:0;z-index:1;height:125px;width:auto;}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;opacity:0;}
.hero__img.is-current,.hero__img.is-prev{opacity:1;}
@media (prefers-reduced-motion:no-preference){.hero__img{transition:opacity 1s;}}
.hero__dots{position:absolute;top:100%;left:0;right:0;z-index:1;height:28px;display:flex;justify-content:center;align-items:center;gap:8px;}
.hero__dots span{width:8px;height:8px;border-radius:50%;background:rgba(var(--green-rgb),.3);}
.hero__dots span.is-current{background:var(--green);}
@media (prefers-reduced-motion:no-preference){.hero__dots span{transition:background-color 1s;}}
.hero__copy{
  position:absolute;top:calc(28px + 2 * clamp(20px,6.2vw,26px) * 1.1);left:50%;transform:translateX(-50%);
  writing-mode:vertical-rl;
}
.hero__catch{
  margin:0;
  font-weight:400;
  font-size:clamp(20px,6.2vw,26px);
  line-height:1.55;
  letter-spacing:.1em;
  color:#fff;
  text-shadow:
    0 0 2px rgba(0,0,0,.9),
    0 0 2px rgba(0,0,0,.9),
    0 0 8px rgba(0,0,0,.6),
    0 0 16px rgba(0,0,0,.4);
}
.hero__catch-sub{
  margin:0;
  font-family:"MFW-TBChibiRGoPlusKStd-DemiBold","TBChibiRGo-local","Hiragino Maru Gothic ProN","ヒラギノ丸ゴ ProN","Kosugi Maru",sans-serif;
  font-size:clamp(20px,6.2vw,26px);
  line-height:1.55;
  letter-spacing:.1em;
  color:#fff;
  text-shadow:
    0 0 2px rgba(0,0,0,.9),
    0 0 2px rgba(0,0,0,.9),
    0 0 8px rgba(0,0,0,.6),
    0 0 16px rgba(0,0,0,.4);
}
@media(min-width:520px){
  .hero__copy{top:calc(16px + 2 * 16px * 1.06);}
  .hero__catch{font-size:16px;letter-spacing:.06em;}
  .hero__catch-sub{font-size:16px;letter-spacing:.06em;}
}

/* ---------- news（トップ：ヒーロー直下のお知らせ1行） ---------- */
.news{display:flex;align-items:center;gap:12px;padding:0 var(--section-px);background:var(--pale);}
.hero + .news{padding-top:28px;}
.news__title{flex:none;margin:0;font-size:12px;color:var(--ink);}
.news__item{
  flex:1;min-width:0;display:flex;align-items:center;gap:8px;min-height:44px;
  color:var(--ink);text-decoration:none;
}
.news__text{flex:1;min-width:0;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.news__date{flex:none;font-size:11.5px;color:var(--sub);}
.news__arrow{flex:none;color:var(--sub);}

/* ---------- news-entry（/news/ の記事1件） ---------- */
.news-entry__date{display:block;margin-bottom:6px;font-size:11.5px;color:var(--sub);}

/* ---------- intro (導入) ---------- */
.intro{position:relative;padding:var(--section-pt) var(--section-px) var(--section-pb);}
.intro .eyebrow{margin-bottom:16px;}
.intro__quote{
  position:relative;width:fit-content;margin:0 auto 40px;padding:0 28px;
  font-family:"MFW-TBChibiRGoPlusKStd-DemiBold","TBChibiRGo-local","Hiragino Maru Gothic ProN","ヒラギノ丸ゴ ProN","Kosugi Maru",sans-serif;
  text-align:center;font-size:clamp(18px,5.4vw,20px);line-height:1.6;letter-spacing:var(--ls-heading);color:var(--ink);
}
.intro__quote .nw{display:block;}
.intro__quote::before,
.intro__quote::after{position:absolute;font-size:44px;line-height:1;color:var(--green);}
.intro__quote::before{content:"“" / "";left:0;top:-10px;}
.intro__quote::after{content:"”" / "";right:0;bottom:-24px;}
.intro__quote--plain{padding:0;margin-bottom:16px;}
.intro__quote--plain::before,
.intro__quote--plain::after{content:none;}
.intro__text{color:var(--ink);text-align:center;}
.intro--section.intro--boxed{
  background:#fff;
  border-top:1px solid var(--border);
}
.intro--section.intro--pale{background:var(--pale);}
.intro__box .eyebrow{color:var(--ink);}
.intro__box > :last-child{margin-bottom:0;}

/* ---------- hours (診療時間) ---------- */
.hours{margin-top:20px;}
.more + .hours{margin-top:36px;}
.hours__card{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.hours__table{width:100%;border-collapse:collapse;}
.hours__table th,.hours__table td{
  padding:11px 0;text-align:center;font-weight:400;
  font-size:13px;color:var(--sub);
  border-bottom:1px solid var(--border);
}
.hours__table thead th{font-size:11.5px;color:var(--ink);}
.hours__table .hours__time{width:38%;text-align:left;padding-left:12px;white-space:nowrap;}
.hours__table tbody tr:last-child th,
.hours__table tbody tr:last-child td{border-bottom:none;}
.hours__dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--green-ink);}
.hours__tri{display:inline-block;width:11px;height:10px;background:var(--green-ink);clip-path:polygon(50% 0,100% 100%,0 100%);}
.hours__off{color:var(--sub);font-size:11.5px;}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* ---------- school-banner (学校検診バナー・.hours__card と同寸) ---------- */
.school-banner{
  position:relative;display:flex;align-items:center;min-height:137px;margin-top:28px;overflow:hidden;
  background:#fff;border:1px solid var(--border);border-radius:10px;
  color:var(--ink);text-decoration:none;
}
.school-banner__body{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 0 12px 16px;}
.school-banner__sub{font-size:12px;font-weight:700;color:var(--green-ink);letter-spacing:var(--ls-body);}
.school-banner__catch{font-size:18px;font-weight:700;line-height:var(--lh-heading);letter-spacing:var(--ls-heading);}
.school-banner__more{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--green-ink);}
.school-banner__more .more__arrow{width:18px;height:18px;font-size:11px;}
.school-banner:hover .school-banner__more{text-decoration:underline;text-decoration-color:var(--green);}
.school-banner__img{
  position:absolute;right:0;bottom:0;width:auto;height:100%;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 30%);
  mask-image:linear-gradient(to right,transparent,#000 30%);
}

.banner-free{
  margin-top:10px;display:flex;align-items:center;justify-content:center;gap:8px;
  background:var(--green-bg);border:1px solid var(--border);border-radius:10px;
  padding:11px;text-align:center;
}
.banner-free strong{font-size:15px;font-weight:700;color:var(--ink);}
.banner-free + .lead,
.banner-free + .text{margin-top:16px;}

/* ---------- clinic photos (院内写真・交互の片側ブリード) ---------- */
.clinic-photos{
  margin:20px calc(var(--section-px) * -1) 0;
  padding:0 var(--section-px);
  overflow-x:clip;
}
.clinic-photo{margin:0 0 28px;}
.clinic-photo:last-child{margin-bottom:0;}
.clinic-photo__frame{
  width:auto;aspect-ratio:4/3;
  margin-left:calc(var(--section-px) * -1);margin-right:56px;
  border:1px solid var(--border);border-left:0;
  border-radius:0 10px 10px 0;
}
.clinic-photo:nth-child(even) .clinic-photo__frame{
  margin-left:56px;margin-right:calc(var(--section-px) * -1);
  border-left:1px solid var(--border);border-right:0;
  border-radius:10px 0 0 10px;
}
.clinic-photo__frame{display:block;overflow:hidden;background:#fff;padding:0;appearance:none;-webkit-appearance:none;cursor:zoom-in;-webkit-tap-highlight-color:transparent;transition:transform .15s ease;}
.clinic-photo__frame:active{transform:scale(.985);}
.clinic-photo__frame--static{cursor:auto;}
.clinic-photo__frame--static:active{transform:none;}
.clinic-photo__frame img{width:100%;height:100%;object-fit:cover;}
.clinic-photo__cap{
  position:relative;z-index:1;
  width:min(250px,100%);
  margin:-44px 0 0 auto;
  padding:12px 14px;
  background:#fff;
  border:1px solid var(--border);
  font-size:12.5px;color:var(--sub);text-align:left;line-height:1.6;
}
.clinic-photo:nth-child(even) .clinic-photo__cap{margin-left:0;margin-right:auto;}
.clinic-photo__cap .clinic-photo__name{display:block;font-size:14px;color:var(--ink);margin-bottom:4px;}
@media (prefers-reduced-motion:no-preference){
  .clinic-photos.is-reveal .clinic-photo__frame{
    opacity:0;translate:-100% 0;
    transition:opacity 2.4s ease-out,translate 2.4s cubic-bezier(.22,1,.36,1),transform .15s ease;
  }
  .clinic-photos.is-reveal .clinic-photo:nth-child(even) .clinic-photo__frame{translate:100% 0;}
  .clinic-photos.is-reveal .clinic-photo.is-inview .clinic-photo__frame{opacity:1;translate:0 0;}
}

/* ---------- care list (丸アイコン＋見出し＋説明文のカード) ---------- */
.care-list{margin:0;}
.care-item{
  margin:0 0 24px;padding:20px 20px 24px;
  background:var(--green-bg);border:1px solid var(--border);border-radius:10px;
  text-align:center;
}
.care-item__icon{
  display:flex;align-items:center;justify-content:center;
  width:48px;height:48px;margin:0 auto 12px;
  background:#fff;border:1px solid var(--green);border-radius:50%;
}
.care-item__icon img{width:28px;height:28px;}
.care-item .title--19{padding-left:0;margin-bottom:12px;}
.care-item .title--19::before{content:none;}
.care-item .text{text-align:left;}
.care-list--star .care-item{position:relative;isolation:isolate;}
.care-list--star .care-item::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    url(../images/icn_star_white.svg) left calc(50% + 48px) top 14px/27px 27px no-repeat,
    url(../images/icn_star_green.svg) left calc(50% + 82px) top 40px/18px 18px no-repeat,
    url(../images/icn_star_white.svg) left calc(50% - 70px) top 24px/12px 12px no-repeat,
    url(../images/icn_star_white.svg) left 4px top 46%/12px 12px no-repeat,
    url(../images/icn_star_white.svg) right 10px bottom 6px/12px 12px no-repeat;
}
.care-list--star .care-item:nth-child(even)::before{
  background:
    url(../images/icn_star_green.svg) left calc(50% - 76px) top 16px/27px 27px no-repeat,
    url(../images/icn_star_white.svg) left calc(50% - 104px) top 46px/18px 18px no-repeat,
    url(../images/icn_star_white.svg) left calc(50% + 52px) top 18px/12px 12px no-repeat,
    url(../images/icn_star_white.svg) right 4px top 58%/12px 12px no-repeat,
    url(../images/icn_star_white.svg) left 14px bottom 6px/12px 12px no-repeat;
}
.care-item__num{
  font-family:"MFW-TBChibiRGoPlusKStd-DemiBold","TBChibiRGo-local","Hiragino Maru Gothic ProN","ヒラギノ丸ゴ ProN","Kosugi Maru",sans-serif;
  font-size:20px;line-height:1;color:var(--green-ink);
}

/* ---------- photo strip (院内写真の自動で流れる列) ---------- */
.photo-strip{
  margin:20px calc(var(--section-px) * -1) 0;
  overflow:hidden;
}
.photo-strip:focus-visible{outline:3px solid var(--ink);outline-offset:-3px;}
.photo-strip__track{display:flex;width:max-content;}
/* WebKit の列幅計算に画像の元サイズが使われないよう、各写真の width を明示する。 */
.photo-strip__list{display:flex;flex:none;align-items:flex-start;margin:0;padding:0 0 14px;list-style:none;}
.photo-strip__item{
  flex:none;width:96px;aspect-ratio:4/3;
  margin-right:8px;
  overflow:hidden;
  border:1px solid var(--border);border-radius:8px;
  background:#fff;
}
.photo-strip__list:nth-child(odd) .photo-strip__item:nth-child(even),
.photo-strip__list:nth-child(even) .photo-strip__item:nth-child(odd){margin-top:14px;}
.photo-strip__item img{width:100%;height:100%;object-fit:cover;}
@media (prefers-reduced-motion:no-preference){
  .photo-strip.is-flowing .photo-strip__track{animation:photo-strip-flow 80s linear infinite;}
  .photo-strip:hover .photo-strip__track,
  .photo-strip:focus-visible .photo-strip__track{animation-play-state:paused;}
}
@keyframes photo-strip-flow{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){
  .photo-strip{overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--section-px);scrollbar-width:thin;}
  .photo-strip__track{padding:0 var(--section-px);}
  .photo-strip__list[aria-hidden="true"]{display:none;}
  .photo-strip__item{scroll-snap-align:start;}
}

/* ---------- staff-strip（/doctor/ スタッフ紹介） ---------- */
.staff-strip{
  margin:20px calc(var(--section-px) * -1) 0;
  padding:14px 0;
  overflow:hidden;
}
.staff-strip:focus-visible{outline:3px solid var(--ink);outline-offset:-3px;}
.staff-strip__track{display:flex;width:max-content;}
.staff-strip__list{display:flex;flex:none;margin:0;padding:0;list-style:none;}
.staff-strip__item{
  flex:none;width:160px;aspect-ratio:2/3;
  overflow:hidden;
  border-radius:10px;
  background:#fff;
}
.staff-strip__item:nth-child(odd){transform:rotate(-3deg);}
.staff-strip__item:nth-child(even){transform:rotate(3deg);}
.staff-strip__item img{width:100%;height:100%;object-fit:cover;}
@media (prefers-reduced-motion:no-preference){
  .staff-strip__track{will-change:transform;}
  .staff-strip.is-flowing .staff-strip__track{animation:staff-strip-flow 40s linear infinite;}
  .staff-strip:hover .staff-strip__track,
  .staff-strip:focus-visible .staff-strip__track{animation-play-state:paused;}
}
@keyframes staff-strip-flow{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){
  .staff-strip{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;}
  .staff-strip__list[aria-hidden="true"]{display:none;}
  .staff-strip__item{scroll-snap-align:start;}
}

/* ---------- points (通いやすさの項目) ---------- */
.points{display:flex;flex-direction:column;gap:18px;margin-top:20px;}
.point__title{font-size:15px;line-height:1.5;margin:0 0 5px;color:var(--ink);}
.point__text{font-size:13.5px;line-height:var(--lh-body);color:var(--sub);margin:0;}
.points--photo .title--19{padding-left:0;}
.points--photo .title--19::before{content:none;}
.points--photo .point .title{margin-bottom:22px;}
.points--photo .point__thumb{position:relative;width:60%;aspect-ratio:4/3;margin:0 auto 12px;}
.points--photo .point__thumb img{width:100%;height:100%;object-fit:cover;display:block;border-radius:10px;}
.point__label{
  position:absolute;left:-10px;top:-10px;
  padding:3px 10px;background:#fff;color:var(--sub);border:1px solid var(--border);
  font-family:"MFW-TBChibiRGoPlusKStd-DemiBold","TBChibiRGo-local","Hiragino Maru Gothic ProN","ヒラギノ丸ゴ ProN","Kosugi Maru",sans-serif;
  font-size:12px;line-height:1.5;letter-spacing:.14em;white-space:nowrap;
}
.points--photo .point--box{position:relative;padding:28px 16px 16px;margin-top:4px;background:#fff;border:1px solid var(--border);border-radius:12px;}
@media (prefers-reduced-motion:no-preference){
  .points.is-reveal .point__label{opacity:0;transform-origin:10px 10px;}
  .points.is-reveal .point__label.is-inview{opacity:1;animation:label-stamp 1.08s ease-out both;}
}
@keyframes label-stamp{
  0%{opacity:0;transform:scale(1.4) rotate(-8deg);}
  60%{opacity:1;transform:scale(.95) rotate(0);}
  100%{opacity:1;transform:none;}
}

/* ---------- lightbox ---------- */
body.lb-open,body.rv-open{overflow:hidden;}
.lightbox{width:100%;height:100%;max-width:100vw;max-height:100dvh;margin:0;padding:0;border:0;background:transparent;overflow:hidden;}
.lightbox::backdrop{background:rgba(30,28,25,.88);}
.lightbox__inner{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:56px 12px 24px;}
.lightbox__stage{position:relative;display:flex;align-items:center;justify-content:center;width:100%;}
.lightbox__img{max-width:min(94vw,900px);max-height:70dvh;width:auto;height:auto;object-fit:contain;border-radius:12px;background:#fff;}
.lightbox__cap{margin:0;font-size:13px;line-height:1.6;color:#fff;text-align:center;}
.lightbox__close{position:absolute;top:12px;right:12px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:24px;line-height:1;color:#fff;background:rgba(255,255,255,.16);border:0;border-radius:50%;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:26px;line-height:1;color:#fff;background:rgba(30,28,25,.45);border:0;border-radius:50%;padding:0 0 3px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.lightbox__nav--prev{left:4px;}
.lightbox__nav--next{right:4px;}
.lightbox__dots{display:flex;gap:7px;}
.lightbox__dots span{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.4);}
.lightbox__dots span.is-current{background:var(--green);}
.lightbox.is-single .lightbox__nav,.lightbox.is-single .lightbox__dots{display:none;}
@media (prefers-reduced-motion:no-preference){
  .lightbox[open]{animation:lb-fade .12s ease-out;}
  .lightbox[open]::backdrop{animation:lb-fade .12s ease-out;}
}
@keyframes lb-fade{from{opacity:0;}to{opacity:1;}}

/* ---------- single photo ---------- */
.photo{margin:0 0 14px;height:180px;border-radius:10px;background:#fff;border:1px solid var(--border);overflow:hidden;}
.photo__img{width:100%;height:100%;object-fit:cover;object-position:center 38%;}
.photo--16x9{height:auto;aspect-ratio:16/9;}
.photo--16x9 .photo__img{object-position:center;}
.photo--bleed{height:auto;aspect-ratio:43/20;margin-left:calc(var(--section-px) * -1);margin-right:calc(var(--section-px) * -1);border:0;border-radius:0;}
.photo--bleed .photo__img{object-position:center;}
.photo--bleed{position:relative;}
.photo__scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6),rgba(0,0,0,0) 55%);}
.photo__title{position:absolute;left:var(--section-px);right:var(--section-px);bottom:14px;margin:0;padding-left:0;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6);}
.photo__title::before{content:none;}
.doctor__name + .photo{margin-top:24px;}

.navpanel{
  margin:-14px calc(var(--section-px) * -1) 0;padding:4px var(--section-px);
  list-style:none;background:#fff;
}
.navpanel li + li{position:relative;}
.navpanel li + li::before{content:"";position:absolute;top:0;left:28px;right:0;border-top:1px solid var(--border);}
.navpanel__link{
  display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding-left:28px;
  font-size:13.5px;font-weight:700;color:var(--green-ink);text-decoration:none;
  -webkit-tap-highlight-color:transparent;transition:background-color .15s ease;
}
.navpanel__link:hover{text-decoration:underline;text-decoration-color:var(--green);}
.navpanel__link:active{background:var(--green-bg);}
.navpanel:last-child{margin-bottom:calc(var(--section-pt) * -1);padding-bottom:calc(4px + var(--section-pt));}

/* ---------- section bleed（本文の全幅写真） ---------- */
.section__bleed{margin:24px calc(var(--section-px) * -1);}
.section__bleed-img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;}
.section__bleed-cap{padding:8px var(--section-px) 0;font-size:12px;line-height:1.5;color:var(--sub);text-align:center;}

/* ---------- tooth chart（歯の名前と位置の図。/invisalign-first/「始められる目安」） ---------- */
.tooth-chart{margin:16px 0 24px;}
.tooth-chart__frame{position:relative;display:block;width:50%;margin:0 auto;padding:0;border:0;background:none;appearance:none;-webkit-appearance:none;cursor:zoom-in;-webkit-tap-highlight-color:transparent;transition:transform .15s ease;}
.tooth-chart__frame:active{transform:scale(.985);}
.tooth-chart__frame::after{content:"";position:absolute;right:-4px;bottom:-4px;width:26px;height:26px;border-radius:50%;background:var(--green-ink) url(../images/icn_zoom.svg) center/18px 18px no-repeat;}
.tooth-chart__img{display:block;width:100%;height:auto;border-radius:10px;}
.tooth-chart__cap{margin-top:8px;font-size:12px;line-height:1.5;color:var(--sub);text-align:center;}

/* ---------- subhead2（h4） ---------- */
.subhead2{font-size:15px;margin:0 0 12px;color:var(--ink);}
h3.subhead2{font-size:18px;}
.subhead2__sub{display:block;font-size:15px;}
.subhead2__mark{background:linear-gradient(transparent 78%,var(--marker) 78%);padding:0 .06em;}

/* ---------- flow (consultation steps) ---------- */
.flow{display:flex;flex-direction:column;}
.flow__step{display:flex;gap:14px;}
.flow__rail{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;}
.flow__num{
  width:30px;height:30px;border-radius:50%;
  background:var(--green-ink);color:#fff;font-size:14px;
  display:flex;align-items:center;justify-content:center;
  font-family:"MFW-TBChibiRGoPlusKStd-DemiBold","TBChibiRGo-local","Hiragino Maru Gothic ProN","ヒラギノ丸ゴ ProN","Kosugi Maru",sans-serif;
}
.flow__line{flex:1 1 auto;width:0;border-left:2px dashed var(--border);margin:4px 0;}
.flow__body{flex:1 1 0;padding-bottom:22px;}
.flow__step:last-child .flow__body{padding-bottom:0;}
.flow__title{font-size:15px;margin:3px 0 4px;color:var(--ink);}
.flow__text{font-size:13.5px;color:var(--sub);margin:0 0 10px;}
.flow__photo{width:100%;aspect-ratio:16/9;border-radius:10px;border:1px solid var(--border);overflow:hidden;background:#fff;}
.flow__photo img{width:100%;height:100%;object-fit:cover;display:block;}
@media (prefers-reduced-motion:no-preference){
  .flow.is-reveal .flow__step{opacity:0;translate:0 24px;}
  .flow.is-reveal .flow__step.is-inview{
    opacity:1;translate:0 0;
    transition:opacity 1s ease-out,translate 1s cubic-bezier(.22,1,.36,1);
  }
}
.flow--age .flow__step{gap:12px;}
.flow--age .flow__num{
  flex-direction:column;width:52px;height:52px;
  font-size:12px;line-height:1.1;letter-spacing:0;
}
.flow__unit{font-size:10px;}
.flow--age .flow__line{
  position:relative;width:3px;border-left:0;margin:6px 0 10px;
  background:linear-gradient(to bottom,rgba(var(--green-rgb),.2),var(--green-ink));
}
.flow--age .flow__line::after{
  content:"";position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);
  border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid var(--green-ink);
}
.flow--age .flow__body{min-width:0;padding-bottom:52px;}
.flow--age .title--19{z-index:2;padding-left:0;margin-top:12px;}
.flow--age .title--19::before{content:none;}
.flow__card{position:relative;}
.flow__illust{position:absolute;right:10px;bottom:100%;z-index:1;width:auto;max-width:none;}
.flow__illust--infant{height:40px;}
.flow__illust--preschool{height:72px;}
.flow__illust--school{height:96px;}
.flow__illust--preteen{height:108px;}

.points--photo .point--box .more{margin:-8px 0 -12px;}

/* ---------- faq（アコーディオン） ---------- */
.faq{margin:0 0 32px;border-top:1px solid var(--border);}
.faq:last-child{margin-bottom:0;}
.faq__item{border-bottom:1px solid var(--border);}
.faq__q{
  display:flex;align-items:center;gap:12px;
  min-height:44px;padding:12px 0;
  list-style:none;cursor:pointer;
  font-size:13.5px;line-height:1.6;color:var(--ink);
}
.faq__q::-webkit-details-marker{display:none;}
.faq__q::after{
  content:"＋";flex:0 0 auto;margin-left:auto;
  display:flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:50%;
  font-size:16px;line-height:1;color:var(--green-ink);background:var(--green-bg);
}
.faq__item[open] > .faq__q::after{content:"－";}
.faq__a{padding:0 0 16px;}

/* ---------- fee-list（通院回数・治療期間・費用の段階カード） ---------- */
.fee-list{display:flex;flex-direction:column;gap:16px;margin:0 0 16px;}
.fee{padding:16px;border:1px solid var(--border);border-radius:12px;background:#fff;}
.fee__stage{margin:0 0 8px;font-size:16px;line-height:1.5;color:var(--ink);}
.fee__rows{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0;font-size:13.5px;line-height:1.8;}
.fee__key{color:var(--sub);white-space:nowrap;}
.fee__val{margin:0;color:var(--ink);}
.period-list{margin:0 0 16px;border:1px solid var(--border);border-radius:12px;background:#fff;font-size:13.5px;line-height:1.7;color:var(--ink);}
.period-list__item{padding:10px 14px;}
.period-list__item + .period-list__item{border-top:1px solid var(--border);}
.period-list__stage{margin:0 0 2px;font-weight:700;}
.period-list__rows{display:grid;grid-template-columns:auto 1fr;gap:0 12px;margin:0;}
.period-list__rows dt{color:var(--sub);white-space:nowrap;}
.period-list__rows dd{margin:0;}
.fee-total{margin:0 0 12px;padding:12px 16px;font-size:16px;font-weight:700;line-height:1.6;color:var(--ink);text-align:center;background:var(--green-bg);border-radius:12px;}
.fee-table{width:100%;margin:0 0 16px;border:1px solid var(--border);border-radius:12px;border-collapse:separate;border-spacing:0;overflow:hidden;background:#fff;font-size:13.5px;line-height:1.8;}
.fee-table th,.fee-table td{padding:10px 12px;text-align:left;vertical-align:middle;font-weight:400;color:var(--ink);}
.fee-table thead th{text-align:center;font-size:15px;font-weight:700;letter-spacing:var(--ls-heading);background:var(--pale);border-bottom:1px solid var(--border);}
.fee-table thead th + th{border-left:1px solid var(--border);}
.fee-table tbody tr + tr th{border-top:1px solid var(--border);}
.fee-table tbody td{width:1%;white-space:nowrap;text-align:right;border-left:1px solid var(--border);}
.fee-flow{display:flex;flex-direction:column;gap:16px;margin:0 0 16px;padding:16px 10px;border:1px solid var(--border);border-radius:12px;background:#fff;}
.fee-flow__case + .fee-flow__case{padding-top:16px;border-top:1px solid var(--border);}
.fee-flow__title{margin:0 0 8px;font-size:15px;font-weight:700;color:var(--ink);}
.fee-flow__line{display:grid;grid-template-columns:44px 1fr 44px 1fr 44px;align-items:center;}
.fee-flow__age{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--green-ink);color:#fff;font-size:16px;line-height:1;letter-spacing:0;}
.fee-flow__age small{font-size:13.5px;}
.fee-flow__span{display:flex;flex-direction:column;min-width:0;text-align:center;line-height:20px;}
.fee-flow__stage{padding:0 0 6px;font-size:13.5px;color:var(--green-ink);}
.fee-flow__bar{position:relative;margin:0 4px;padding:6px 0 0;border-top:2px solid var(--green-ink);color:var(--ink);font-size:13.5px;white-space:nowrap;}
.fee-flow__bar::after{content:"";position:absolute;top:-6px;right:-1px;width:8px;height:10px;background:var(--green-ink);clip-path:polygon(0 0,100% 50%,0 100%);}
.fee-flow__total{margin:0;font-size:20px;font-weight:700;line-height:1.45;color:var(--green-ink);text-align:center;}
.fee-lead{display:flex;align-items:flex-end;gap:12px;}
.fee-lead__body{flex:1;min-width:0;}
.fee-lead__body .text:last-child{margin-bottom:16px;}
.fee-lead__figure{flex:none;width:auto;height:187px;}
.start-fee-table{width:100%;margin:0 0 16px;border:1px solid var(--border);border-radius:12px;border-collapse:separate;border-spacing:0;overflow:hidden;background:#fff;font-size:13.5px;line-height:1.6;}
.start-fee-table caption{margin:0 0 8px;text-align:left;font-size:15px;font-weight:700;color:var(--ink);}
.start-fee-table th,.start-fee-table td{padding:6px;vertical-align:middle;font-weight:400;color:var(--ink);}
.start-fee-table thead th{text-align:center;background:var(--pale);}
.start-fee-table tbody th{text-align:left;}
.start-fee-table tr > :first-child{width:1%;white-space:nowrap;}
.start-fee-table tbody th,.start-fee-table tbody td{border-top:1px solid var(--border);}
.start-fee-table th + th,.start-fee-table th + td,.start-fee-table td + td{border-left:1px solid var(--border);}
.start-fee-table td{text-align:right;white-space:nowrap;letter-spacing:0;}
.start-fee-table .nw{white-space:nowrap;}

/* ---------- diagram（文字で組む図解） ---------- */
.diagram{display:flex;flex-direction:column;gap:4px;margin:16px 0 24px;text-align:center;}
.diagram__item{
  margin:0;padding:8px 16px;
  font-size:13.5px;line-height:1.8;color:var(--ink);
  background:#fff;border:1px solid var(--border);border-radius:12px;
}
.diagram__op,.diagram__arrow{margin:0;font-size:16px;line-height:1.5;color:var(--green-ink);}
.diagram__result{
  margin:0;padding:8px 16px;
  font-size:16px;line-height:1.6;color:var(--ink);
  background:var(--green-bg);border-radius:12px;
}
.diagram--icons{
  --diagram-d:clamp(68px,calc((100vw - 84px) / 3),88px);
  flex-direction:row;align-items:flex-start;justify-content:center;gap:4px;
}
.diagram--icons .diagram__item{
  flex:1 1 0;padding:0;
  line-height:1.6;white-space:nowrap;
  background:none;border:0;border-radius:0;
}
.diagram__icon{
  display:flex;align-items:center;justify-content:center;
  width:var(--diagram-d);height:var(--diagram-d);margin:0 auto 8px;
  background:#fff;border:1px solid var(--green);border-radius:50%;
}
.diagram__icon img{width:55%;height:auto;}
.diagram--icons .diagram__op{flex:none;margin-top:calc(var(--diagram-d) / 2 - 12px);}

/* ---------- phase cards（/invisalign-first/ ①「第一期」「第二期」） ---------- */
.phase-cards{display:flex;align-items:stretch;gap:4px;margin:16px 0 24px;}
.phase-card{
  flex:1 1 0;min-width:0;padding:16px 12px 20px;
  background:#fff;border:1px solid var(--border);border-radius:10px;
  text-align:center;
}
.phase-card__figure{
  display:flex;align-items:flex-end;justify-content:center;
  width:min(112px,100%);aspect-ratio:224/360;margin:0 auto 12px;
}
.phase-card__illust{height:auto;}
.phase-card__illust--first{width:75%;}
.phase-card__illust--second{width:100%;}
.phase-card__name{margin:0;font-size:15px;line-height:1.6;font-weight:700;color:var(--green-ink);}
.phase-card__period{margin:0 0 12px;font-size:13.5px;line-height:1.6;color:var(--ink);}
.phase-card .text{margin:0;text-align:left;}
.phase-cards__arrow{flex:none;align-self:center;margin:0;font-size:16px;line-height:1.5;color:var(--green-ink);}

/* ---------- steps（手順を箱で囲み、下向きの三角でつなぐ） ---------- */
.steps{list-style:none;margin:0 0 32px;padding:0;}
.steps__item{position:relative;padding:16px 18px;background:#fff;border:1px solid var(--border);border-radius:10px;}
.steps__item + .steps__item{margin-top:28px;}
.steps__item:not(:last-child)::after{
  content:"";position:absolute;left:50%;top:calc(100% + 9px);
  width:18px;height:10px;margin-left:-9px;
  background:var(--green);clip-path:polygon(0 0,100% 0,50% 100%);
}
.steps__item .text:last-child{margin:0;}
.steps__photo{margin:0 0 12px;aspect-ratio:16/9;border-radius:6px;overflow:hidden;background:#fff;}
.steps__photo img{display:block;width:100%;height:100%;object-fit:cover;}
@media (prefers-reduced-motion:no-preference){
  .steps.is-reveal .steps__item{opacity:0;translate:0 24px;}
  .steps.is-reveal .steps__item.is-inview{
    opacity:1;translate:0 0;
    transition:opacity 1s ease-out,translate 1s cubic-bezier(.22,1,.36,1);
  }
}
.steps__title{margin:0 0 6px;font-size:15px;font-weight:700;color:var(--ink);text-align:center;}

/* ---------- notice box（見出しごと白で囲む注意書き） ---------- */
.notice-box{padding:20px 18px;background:#fff;border-radius:10px;}
.notice-box + .notice-box{margin-top:16px;}
.notice-box--pale{background:var(--pale);}
.notice-box--green{background:var(--green-bg);}
.section .notice-box--green ul:not([class]),.notice-box--green .text{color:var(--ink);}
.notice-box--green .marker{background:linear-gradient(transparent 78%,rgba(var(--green-rgb),.4) 78%);}
.notice-box + :not(.notice-box){margin-top:24px;}
.notice-box__part + .notice-box__part{margin-top:20px;padding-top:20px;border-top:1px solid var(--border);}
.notice-box__foot{display:flex;align-items:flex-end;gap:12px;}
.notice-box__foot-body{flex:1;min-width:0;}
.notice-box__foot-figure{flex:none;width:auto;height:183px;margin-bottom:-20px;}
.notice-box__foot--cross .notice-box__foot-figure{height:182px;margin-bottom:-101px;}
.notice-box__foot--left{flex-direction:row-reverse;}
.notice-box .notice-box__part--below-left .title--19{padding-inline:41px;}
.corner-figure{display:flex;}
.corner-figure__body{flex:1;min-width:0;padding-bottom:48px;}
.corner-figure__body::before{content:"";float:right;height:max(0px, calc(100% - 213px + 48px + var(--section-pb)));}
.corner-figure__img{float:right;clear:right;position:relative;z-index:1;width:119px;height:auto;margin:0 0 calc(var(--section-pb) * -1) 12px;}
.section--logo-bg{
  background:
    url(../images/icn_logo_mark_bg.svg) right -56px top 72px / 170px auto no-repeat,
    url(../images/icn_logo_mark_bg.svg) left -40px top 45% / 120px auto no-repeat,
    url(../images/icn_logo_mark_bg.svg) right -48px bottom 96px / 150px auto no-repeat,
    var(--pale);
}
.notice-box .title--19{padding-left:0;text-align:center;}
.notice-box .title--19::before{content:none;}
.notice-box__icon{
  display:flex;align-items:center;justify-content:center;
  width:48px;height:48px;margin:0 auto 12px;
  background:#fff;border:1px solid var(--green);border-radius:50%;
}
.notice-box__icon img{width:28px;height:28px;}
.notice-box .more{margin:-8px 0 -12px;}

/* ---------- doctor ---------- */
.doctor{display:flex;gap:16px;align-items:flex-start;}
.doctor+.doctor{margin-top:22px;}
.doctor + .text{margin-top:16px;}
.doctor__avatar,.doctors__avatar{width:120px;height:120px;flex:0 0 auto;border-radius:50%;background:#fff;border:1px solid var(--border);overflow:hidden;}
.doctor__avatar img,.doctors__avatar img{width:100%;height:100%;object-fit:cover;object-position:center top;}
.doctor__name{font-size:13.5px;margin:2px 0 6px;}
.doctor__list{margin:0 0 0 18px;padding:0;font-size:13px;color:var(--sub);line-height:1.7;}

/* ---------- profile ---------- */
.profile + .profile{margin-top:48px;}
.profile__photo{width:200px;max-width:100%;margin:0 auto 20px;aspect-ratio:3/4;border-radius:10px;overflow:hidden;}
.profile__photo img{width:100%;height:100%;object-fit:cover;}
.profile__photo--swap{position:relative;}
.profile__photo-alt{position:absolute;inset:0;opacity:0;transition:opacity .6s ease;}
.profile__photo--swap.is-alt .profile__photo-alt{opacity:1;}
.profile__photo--swap::after{content:"";position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;}
.profile__photo--swap.is-swapping.is-alt::after{animation:profile-flash-a .6s ease;}
.profile__photo--swap.is-swapping:not(.is-alt)::after{animation:profile-flash-b .6s ease;}
@keyframes profile-flash-a{50%{opacity:.5;}}
@keyframes profile-flash-b{50%{opacity:.5;}}
@media (prefers-reduced-motion:reduce){.profile__photo-alt,.profile__photo--swap::after{display:none;}}
.profile__role{margin:0;font-size:13px;color:var(--sub);line-height:1.6;}
.profile__name{margin:6px 0 0;font-size:21px;line-height:var(--lh-heading);letter-spacing:var(--ls-heading);color:var(--ink);}
.profile__en{margin:2px 0 0;font-size:12px;letter-spacing:.08em;color:var(--sub);}
.profile__career{margin-top:16px;border:0;border-collapse:collapse;font-size:13.5px;color:var(--sub);}
.profile__career th,.profile__career td{padding:2px 0;border:0;text-align:left;vertical-align:top;font-weight:400;}
.profile__career :is(th,td):first-child{padding-right:16px;white-space:nowrap;}
.profile__career td:empty{padding-right:0;}
.doctors{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0;padding:0;list-style:none;text-align:center;}
.doctors__avatar{margin:0 auto;}
.doctors__role{margin:10px 0 0;font-size:12px;color:var(--sub);}
.doctors__name{margin:2px 0 0;font-size:15px;color:var(--ink);}
.doctors + .more,.clinic-photos + .more,.photo-strip + .more,.points + .more{margin-top:16px;}

/* ---------- outline table ---------- */
.outline{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fff;}
.outline__row{display:flex;border-bottom:1px solid var(--border);}
.outline__row:last-child{border-bottom:none;}
.outline__head{width:88px;flex:0 0 auto;padding:10px 12px;background:var(--pale);font-size:13px;font-weight:700;color:var(--ink);}
.outline__cell{padding:10px 12px;font-size:13.5px;color:var(--sub);}
.outline__cell a{color:inherit;text-decoration:none;}
.outline--stack .outline__row{flex-direction:column;}
.outline--stack .outline__head{width:auto;padding:6px 12px;font-size:12px;}
.outline--stack .outline__cell{padding:8px 12px 10px;}
.flow--age .outline{margin-bottom:16px;}
@media (prefers-reduced-motion:no-preference){
  .outline--stack.is-reveal{opacity:0;translate:0 24px;}
  .outline--stack.is-reveal.is-inview{
    opacity:1;translate:0 0;
    transition:opacity 1s ease-out,translate 1s cubic-bezier(.22,1,.36,1);
  }
}

/* ---------- access map ---------- */
.map{margin:14px 0;height:200px;border-radius:10px;overflow:hidden;border:1px solid var(--border);}
.map iframe{width:100%;height:100%;border:0;display:block;}

/* ---------- final cta（共通 CTA：画像＋診療時間） ---------- */
.final__hero{position:relative;margin:calc(var(--section-pt) * -1) calc(var(--section-px) * -1) 64px;aspect-ratio:4/3;background:#fff;}
.section--flush{--final-prev:#fff;}
.section--pale + .section--flush{--final-prev:var(--pale);}
.section:has(.navpanel:last-child) + .section--flush{--final-prev:#fff;}
.final__hero::before{
  content:"";position:absolute;left:0;right:0;top:0;height:16px;z-index:1;
  background:var(--final-prev);pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 16' preserveAspectRatio='none'%3E%3Cpath d='M0 14C20 -2 50 -2 70 8C84 15 94 14 100 13L100 0L0 0Z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 16' preserveAspectRatio='none'%3E%3Cpath d='M0 14C20 -2 50 -2 70 8C84 15 94 14 100 13L100 0L0 0Z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
}
.final__kids{position:absolute;left:0;bottom:-50px;z-index:2;height:125px;width:auto;}
.final__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.final__scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,0) 70%);}
.final__title{
  position:absolute;right:18px;bottom:84px;margin:0;
  font-size:20px;line-height:1.5;text-align:right;
  color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6);
}
/* ---------- 限定解除 パーツA2・A3 ---------- */
.legal-a2{
  margin:16px 0 0;padding:18px var(--section-px);
  background:var(--pale);
}
.legal-a2__title{font-size:16px;line-height:1.5;margin:0 0 10px;color:var(--ink);}
.legal-a2__head{font-size:13.5px;line-height:1.5;margin:16px 0 4px;color:var(--ink);}
.legal-a2__text{font-size:13.5px;color:var(--sub);margin:0 0 6px;}
.legal-a2__text:last-child{margin-bottom:0;}
.legal-a2__list{font-size:13.5px;color:var(--sub);margin:0;padding-left:1.3em;}
.legal-a2__list li{margin:0 0 5px;}
.legal-a2__list li:last-child{margin-bottom:0;}
main + .legal-a2{margin-top:0;}
.legal-a2:has(+ .site-footer){padding-bottom:50px;}

/* ---------- フッター（全9ページ共通） ---------- */
.site-footer{
  position:relative;
  margin-top:0;padding:32px 24px 40px;
  padding-bottom:calc(58px + 8px + env(safe-area-inset-bottom, 0px));
  background:var(--green-bg);
}
.site-footer::before{
  content:"";position:absolute;left:0;right:0;bottom:100%;height:16px;
  background:var(--green-bg);pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 16' preserveAspectRatio='none'%3E%3Cpath d='M0 14C20 -2 50 -2 70 8C84 15 94 14 100 13L100 16L0 16Z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 16' preserveAspectRatio='none'%3E%3Cpath d='M0 14C20 -2 50 -2 70 8C84 15 94 14 100 13L100 16L0 16Z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
}
main + .site-footer{padding-top:0;}
main + .site-footer::before{content:none;}
.site-footer__logo-link{display:block;width:fit-content;margin:0 auto 16px;}
.site-footer__logo{display:block;height:40px;width:auto;}

.site-footer__info{font-style:normal;margin:0 0 24px;text-align:center;}
.site-footer__name{font-size:13.5px;line-height:1.6;color:var(--ink);font-weight:700;margin:0 0 6px;}
.site-footer__text{font-size:13.5px;line-height:1.6;color:var(--ink);margin:0 0 4px;}
.site-footer__text:last-child{margin-bottom:0;}
.site-footer__icon{
  display:inline-block;width:15px;height:15px;margin-right:4px;vertical-align:-2px;
  background-color:currentColor;
  -webkit-mask:var(--icon) center/contain no-repeat;
          mask:var(--icon) center/contain no-repeat;
}
.site-footer__icon--tel{--icon:url("../images/icn_cta_tel.svg");}

.site-footer__sns{display:flex;justify-content:center;margin:-12px 0 12px;}
.site-footer__sns-link{display:flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--ink);}
.site-footer__sns-link:hover{color:var(--green-ink);}
.site-footer__sns-icon{
  display:block;width:26px;height:26px;
  background-color:currentColor;
  -webkit-mask:var(--icon) center/contain no-repeat;
          mask:var(--icon) center/contain no-repeat;
}
.site-footer__sns-icon--instagram{--icon:url("../images/icn_sns_instagram.svg");}

.fnav{
  display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:0 16px;
  margin:0 -24px 24px;padding:20px 24px;
  background:#fff;
}
.fnav{position:relative;}
.fnav::before{
  content:"";position:absolute;right:0;bottom:100%;
  width:93.5px;height:150px;
  background-image:url("../images/olive-footer-tree@2x.webp");
  background-repeat:no-repeat;
  background-size:auto 150px;
  background-position:right -20px bottom 0;
  pointer-events:none;
}
.fnav__group{display:grid;grid-row:span 2;grid-template-rows:subgrid;align-content:start;min-width:0;}
.fnav__label{
  margin:0 0 4px;padding:4px 0;
  font-size:13.5px;line-height:1.5;letter-spacing:.06em;color:var(--ink);font-weight:700;
}
.fnav__list{list-style:none;margin:0;padding:0;}
.fnav__link{
  display:block;padding:5px 0;font-family:inherit;
  font-size:13.5px;line-height:1.5;color:var(--ink);text-decoration:none;
}
.fnav__link:hover{color:var(--green-ink);}
.fnav__link[aria-current="page"]{
  margin:0 -8px;padding-left:8px;padding-right:8px;
  color:var(--ink);background:var(--green-bg);border-radius:8px;
}

.copyright{font-size:12px;line-height:1.7;color:var(--ink);text-align:center;margin:0;}
.site-footer .copyright{padding:0 36px;}

/* ---------- sticky bar ---------- */
.sticky-bar{
  position:fixed;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom, 0px));z-index:10;
  max-width:calc(430px - 16px);margin:0 auto;
  display:flex;
  background:var(--yellow);
  border-radius:999px;overflow:hidden;
  box-shadow:0 2px 4px rgba(0,0,0,.12),0 8px 22px rgba(0,0,0,.22);
}
.sticky-bar__item{
  flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  height:50px;
  color:var(--yellow-ink);font-size:11px;line-height:1.3;text-decoration:none;
}
.sticky-bar__item + .sticky-bar__item{border-left:1px solid #fff;}
.sticky-bar__item:hover{background:var(--yellow-hover);}
.sticky-bar__item:focus-visible{outline-offset:-3px;}

/* ---------- ページトップ ---------- */
.pagetop-dock{
  position:fixed;left:0;right:0;bottom:calc(66px + env(safe-area-inset-bottom, 0px));z-index:10;
  max-width:430px;height:0;margin:0 auto;
  pointer-events:none;
}
.pagetop{
  position:absolute;right:8px;bottom:0;pointer-events:auto;
  width:44px;height:44px;border-radius:50%;
  background:var(--green-ink);
  box-shadow:0 2px 4px rgba(0,0,0,.14),0 6px 14px rgba(0,0,0,.20);
  transition:transform .3s ease,opacity .3s ease,visibility 0s linear 0s;
  -webkit-tap-highlight-color:transparent;
}
.pagetop::before{
  content:"";position:absolute;left:50%;top:50%;
  width:12px;height:12px;margin:-3px 0 0 -6px;
  border-top:3px solid #fff;border-left:3px solid #fff;border-radius:2px 0 0 0;
  box-sizing:border-box;transform:rotate(45deg);
}
.pagetop.is-hidden{
  transform:translateY(16px);opacity:0;visibility:hidden;
  transition:transform .3s ease,opacity .3s ease,visibility 0s linear .3s;
}
.pagetop.is-instant{transition:none;}
@media (prefers-reduced-motion:reduce){
  .pagetop,.pagetop.is-hidden{transition:none;}
}
body.dw-open .pagetop{visibility:hidden;}

/* ---------- reserve modal (ネット予約メニュー) ---------- */
.reserve{
  width:fit-content;height:fit-content;max-width:none;max-height:none;
  margin:auto;padding:0;border:0;background:transparent;overflow:visible;
}
.reserve::backdrop{background:rgba(30,28,25,.8);}
.reserve__card{
  position:relative;
  width:min(380px,calc(100vw - 32px));
  max-height:calc(100dvh - 32px);
  overflow:auto;-webkit-overflow-scrolling:touch;
  background:#fff;border-radius:16px;
  box-shadow:0 12px 34px rgba(0,0,0,.28);
}
.reserve__close{
  position:absolute;top:8px;right:8px;
  width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  font-size:22px;line-height:1;color:#fff;
  background:rgba(30,28,25,.62);border:0;border-radius:50%;padding:0 0 2px;
  cursor:pointer;-webkit-tap-highlight-color:transparent;
}
.reserve__photo{width:100%;height:auto;aspect-ratio:16/7;object-fit:cover;}
.reserve__body{padding:16px 16px 18px;}
.reserve__title{font-size:16px;line-height:1.5;margin:0 0 6px;color:var(--ink);text-align:center;}
.reserve__target{font-size:11.5px;line-height:1.6;color:var(--sub);text-align:center;margin:0 0 14px;}
.reserve__menu{display:flex;flex-direction:column;gap:10px;}
.reserve__cat{font-size:11.5px;line-height:1.5;color:var(--sub);margin:0;padding-left:4px;}
.reserve__cat + .reserve__btn{margin-top:-2px;}
.reserve__btn + .reserve__cat{margin-top:6px;}
.reserve__btn{
  display:flex;align-items:center;gap:8px;
  min-height:54px;padding:10px 14px 10px 16px;
  border-radius:999px;text-decoration:none;cursor:pointer;line-height:1.35;
  background:#fff;color:var(--yellow-ink);border:2px solid var(--green);
}
.reserve__btn:hover{background:var(--green-bg);}
.reserve__btn-name{flex:1 1 auto;font-size:13.5px;}
.reserve__btn-time{flex:0 0 auto;font-size:12px;opacity:.75;white-space:nowrap;}
.reserve__btn[href^="tel:"]{white-space:normal;}
.reserve__note{font-size:11.5px;line-height:1.7;color:var(--sub);text-align:center;margin:14px 0 0;}
.reserve__note a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--green);}
@media (prefers-reduced-motion:no-preference){
  .reserve[open]{animation:lb-fade .12s ease-out;}
  .reserve[open]::backdrop{animation:lb-fade .12s ease-out;}
}
