@charset "UTF-8";

:root{
  /* base */
  --bg:#ffffff;
  --card:#ffffff;
  --text:#111;
  --muted:#5a5a5a;
  --line:#d9e8d0;

  /* brand */
  --green:#91d176;
  --green-soft:#e3f0db;
  --orange:#f29600;
  --section-head:#efca86;
  --frame:#91d176;
  --footer:#91d176;

  /* ui */
  --brand:var(--green);
  --brand2:var(--orange);
  --warn:#d96b63;

  --radius:18px;
  --shadow:none;
  --shadow-strong:none;
  --max:1120px;

  /* drawer */
  --overlay:rgba(0,0,0,.75);
  --drawerW:min(360px, 86vw);

  /* faq */
  --faq-border:#d8e9cf;
  --faq-bg:#ffffff;

  /* block frame */
  --block-border:2px solid #91d176;
}

*{
  box-sizing:border-box;
}


/*バニシングポイント*/
@media screen and (min-width: 1000px) {
  .vanish-pc {
    display: none !important;
  }
}
@media screen and (min-width: 600px) and (max-width: 999px) {
  .vanish-tl {
    display: none !important;
  }
}
@media screen and (max-width: 599px) {
  .vanish-sp {
    display: none !important;
  }
}


html{
  scroll-behavior:smooth;
}

body{
  margin:0;
font-family:
  "Hiragino Maru Gothic ProN",
  "Hiragino Sans",
  "Yu Gothic",
  "Meiryo",
  sans-serif;
  font-size:17px;
  line-height:1.85;
  letter-spacing:.02em;
  color:var(--text);
  background:var(--bg);
}

h1,h2,h3,h4{
  margin-top:0;
  color:var(--text);
  letter-spacing:.04em;
  line-height:1.45;
}

h1,
h3,
h4{
font-family:
  "Hiragino Maru Gothic ProN",
  "Hiragino Sans",
  "Yu Gothic",
  "Meiryo",
  sans-serif;
}

h2{
  font-family:
    "Noto Serif JP",
    "Hiragino Mincho ProN",
    "Yu Mincho",
    serif;
}

h1{font-size:36px;}
h2{font-size:28px;}
h3{font-size:22px;}

p, li, dd, dt, td, th, small{
  color:var(--text);
}

p{
  margin:0 0 1.0em;
}

a{
  color:inherit;
}

img{
  max-width:100%;
  height:auto;
  vertical-align:bottom;
}

.container{
  max-width:var(--max);
  margin:0 auto;
  padding:0 16px;
}

/* =========================
   Buttons
========================= */

.btn,
a.btn,
a.btn:link,
a.btn:visited{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 22px;
  border-radius:999px;
  border:none;
  text-decoration:none;
font-family:
  "Hiragino Maru Gothic ProN",
  "Hiragino Sans",
  "Yu Gothic",
  "Meiryo",
  sans-serif;
  font-size:18px;
  font-weight:900;
  line-height:1.4;
  white-space:nowrap;
  cursor:pointer;
  transition:
    background-color .2s ease,
    transform .2s ease,
    box-shadow .2s ease,
    color .2s ease;
  box-shadow:none;
  position:relative;
  background:#f29600;
  color:#fff !important;
}

/* 右矢印 */
.btn::after{
  content:"›";
  display:inline-block;
  font-size:18px;
  font-weight:700;
  line-height:1;
  color:#fff;
  transform:translateX(0);
  transition:transform .2s ease;
}

/* hover / focus */
.btn:hover,
a.btn:hover,
a.btn:focus{
  background:#e28c00;
  color:#fff !important;
  transform:translateY(-2px);
  text-decoration:none;
}

.btn:hover::after,
a.btn:hover::after{
  transform:translateX(3px);
}

.btn:focus{
  outline:3px solid rgba(242,150,0,.28);
  outline-offset:2px;
}

/* 種別を全部同じ見た目に統一 */
.btn-primary,
.btn-accent,
.btn-ghost,
a.btn-primary,
a.btn-accent,
a.btn-ghost,
a.btn-primary:visited,
a.btn-accent:visited,
a.btn-ghost:visited{
  background:#f29600;
  color:#fff !important;
  box-shadow:none;
}

.btn-primary:hover,
.btn-accent:hover,
.btn-ghost:hover,
a.btn-primary:hover,
a.btn-accent:hover,
a.btn-ghost:hover{
  background:#e28c00;
  color:#fff !important;
}

/* =========================
   Small UI
========================= */

.tag{
  display:inline-block;
  margin-top:12px;
  padding:6px 12px;
  font-size:13px;
  font-weight:600;
  line-height:1.4;
  color:#fff;
  background:#6fb657;
  border-radius:20px;
  text-decoration:none;
  transition:background .25s ease, transform .25s ease;
}

.tag:hover{
  background:#4e9a39;
}

.badge{
  display:inline-block;
  font-size:12px;
  font-weight:700;
  color:#fff;
  background:var(--orange);
  padding:6px 10px;
  border-radius:999px;
}

.card{
  background:var(--card);
  border:var(--block-border);
  border-radius:var(--radius);
  box-shadow:none;
  padding:18px;
}

/* =========================
   Header
========================= */

header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.95);
  border-bottom:1px solid rgba(145,209,118,.28);
  backdrop-filter:blur(10px);
}

.head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 0;
}

/* =========================
   Header logo
========================= */

.logo{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  min-width:0;
}

.logo-mark{
  display:block;
  width:80px;
  height:auto;
  flex:0 0 auto;
}

.logo-text{
  display:flex;
  align-items:center;
  min-width:0;
}

.logo-text strong{
  display:block;
  margin:0;
  color:#00a65a;
  font-size:31px;
  font-weight:800;
  line-height:1.1;
  letter-spacing:.01em;
  font-family:
    "Hiragino Maru Gothic ProN",
    "Yu Gothic",
    "Meiryo",
    sans-serif;
}

.logo:hover .logo-text strong{
  opacity:.9;
}

/* =========================
   Tablet
========================= */

@media (max-width:1024px){
  .logo{
    gap:10px;
  }

  .logo-mark{
    width:72px;
  }

  .logo-text strong{
    font-size:26px;
  }
}

/* =========================
   Mobile
========================= */

@media (max-width:768px){
  .logo{
    gap:8px;
  }

  .logo-mark{
    width:60px;
  }

  .logo-text strong{
    font-size:20px;
    line-height:1.1;
  }
}

/* =========================
   Small mobile
========================= */

@media (max-width:480px){
  .logo-mark{
    width:52px;
  }

  .logo-text strong{
    font-size:17px;
  }
}

.head-right{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.tel{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-radius:999px;
  background:#fff;
  text-decoration:none;
  font-weight:700;
  color:var(--text);
  box-shadow:inset 0 0 0 1px var(--line);
}

.tel small{
  font-weight:700;
  color:var(--muted);
}

.cta-banner,
.cta-banner:link,
.cta-banner:visited{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 22px;
  border-radius:999px;
  background:#f29600;
  color:#fff !important;
  text-decoration:none;
  font-family:"Meiryo", "Yu Gothic", "MS PGothic", sans-serif;
  font-size:16px;
  font-weight:700;
  line-height:1.4;
  white-space:nowrap;
  transition:
    background-color .2s ease,
    transform .2s ease,
    color .2s ease;
}

.cta-banner::after{
  content:"›";
  display:inline-block;
  font-size:18px;
  font-weight:700;
  line-height:1;
  color:#fff;
  transform:translateX(0);
  transition:transform .2s ease;
}

.cta-banner:hover{
  background:#e28c00;
  color:#fff !important;
  transform:translateY(-2px);
}

.cta-banner:hover::after{
  transform:translateX(3px);
}

/* =========================
   PC Navigation
========================= */

.nav{
  border-top:1px solid rgba(145,209,118,.18);
}

.gnav{
  list-style:none;
  margin:0;
  padding:10px 0;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
}

.gnav > li{
  position:relative;
}

.nav-link{
  font-family:
    "Meiryo",
    "Yu Gothic",
    "MS PGothic",
    sans-serif;
  display:inline-flex;
  align-items:center;
  text-decoration:none;
  color:var(--text);
  font-weight:700;
  font-size:18px;
  line-height:1.6;
  padding:10px 14px;
  border-radius:12px;
  background:transparent;
  transition:color .18s ease, background-color .18s ease;
}

.nav-link:hover{
  background:rgba(145,209,118,.14);
  color:var(--frame);
}

.has-dropdown{
  position:relative;
}

.has-dropdown > .nav-link{
  position:relative;
  padding-right:28px;
}

.has-dropdown > .nav-link::after{
  content:"▾";
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  font-size:12px;
  color:var(--orange);
  transition:transform .25s ease;
}

.dropdown{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  min-width:260px;
  padding:10px;
  border-radius:18px;
  border:1px solid rgba(145,209,118,.24);
  background:rgba(255,255,255,.98);
  box-shadow:none;
  z-index:80;
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .28s ease, transform .28s ease, visibility .28s ease;
}

.dropdown ul{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:6px;
}

.dropdown a{
  display:block;
  text-decoration:none;
  color:var(--text);
  font-size:15px;
  font-weight:700;
  line-height:1.6;
  padding:10px 12px;
  border-radius:12px;
  transition:background-color .18s ease, color .18s ease;
}

.dropdown a:hover{
  background:rgba(145,209,118,.14);
  color:var(--frame);
}

@media (min-width:981px){
  .has-dropdown:hover .dropdown,
  .has-dropdown:focus-within .dropdown{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
  }

  .has-dropdown:hover > .nav-link::after,
  .has-dropdown:focus-within > .nav-link::after{
    transform:translateY(-50%) rotate(180deg);
  }
}

/* =========================
   Hamburger
========================= */

.hamburger{
  display:none;
  width:44px;
  height:44px;
  border-radius:12px;
  border:none;
  background:#fff;
  box-shadow:inset 0 0 0 1px var(--line);
  align-items:center;
  justify-content:center;
  cursor:pointer;
}

.hamburger span{
  width:18px;
  height:2px;
  background:var(--text);
  display:block;
  position:relative;
}

.hamburger span::before,
.hamburger span::after{
  content:"";
  position:absolute;
  left:0;
  width:18px;
  height:2px;
  background:var(--text);
}

.hamburger span::before{top:-6px;}
.hamburger span::after{top:6px;}

/* =========================
   Drawer
========================= */

.drawer-overlay{
  position:fixed;
  inset:0;
  background:var(--overlay);
  z-index:100;
  opacity:0;
  pointer-events:none;
  transition:opacity .24s ease;
}

.drawer{
  position:fixed;
  top:0;
  right:0;
  width:var(--drawerW);
  height:100dvh;
  background:rgba(255,255,255,.98);
  border-left:1px solid rgba(145,209,118,.24);
  z-index:110;
  transform:translateX(100%);
  transition:transform .28s ease;
  display:flex;
  flex-direction:column;
}

.drawer-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px;
  border-bottom:1px solid rgba(145,209,118,.18);
}

.drawer-header strong{
  font-size:16px;
  letter-spacing:.03em;
  color:var(--text);
}

.drawer-close{
  width:44px;
  height:44px;
  border-radius:12px;
  border:none;
  background:#fff;
  box-shadow:inset 0 0 0 1px var(--line);
  cursor:pointer;
  font-weight:700;
}

.drawer-body{
  padding:14px;
  overflow:auto;
}

.drawer-links{
  display:grid;
  gap:10px;
}

.drawer-links > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px;
  border-radius:14px;
  text-decoration:none;
  font-weight:700;
  color:var(--text);
  background:#fff;
  box-shadow:inset 0 0 0 1px var(--line);
}

.drawer-links > a:hover{
  background:#f9fcf6;
}

.drawer-group{
  border-radius:14px;
  background:#fff;
  overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--line);
}

.drawer-group summary{
  list-style:none;
  cursor:pointer;
  padding:12px 14px;
  font-weight:700;
  color:var(--text);
  position:relative;
}

.drawer-group summary::-webkit-details-marker{
  display:none;
}

.drawer-group summary::after{
  content:"▾";
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  color:var(--orange);
  transition:transform .24s ease;
}

.drawer-group[open] summary::after{
  transform:translateY(-50%) rotate(180deg);
}

.drawer-submenu{
  display:grid;
  gap:0;
  padding:0 10px 10px;
}

.drawer-submenu a{
  display:block;
  text-decoration:none;
  color:var(--text);
  font-size:15px;
  font-weight:700;
  line-height:1.6;
  padding:10px 12px;
  border-radius:12px;
}

.drawer-submenu a:hover{
  background:rgba(145,209,118,.14);
  color:var(--frame);
}

.drawer-cta{
  margin-top:12px;
  display:grid;
  gap:10px;
}

body.drawer-open{
  overflow:hidden;
}

body.drawer-open .drawer-overlay{
  opacity:1;
  pointer-events:auto;
}

body.drawer-open .drawer{
  transform:translateX(0);
}

/* =========================
   MV Slider
========================= */

.mv{
  position:relative;
  min-height:750px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:var(--green-soft);
}

.mv-slides{
  position:absolute;
  inset:0;
  z-index:0;
}

.mv-slide{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center left;
  background-repeat:no-repeat;
  opacity:0;
  transition:opacity 1s ease, transform 5s linear;
  transform:scale(1.05);
}

.mv-slide.is-active{
  opacity:1;
  transform:scale(1);
}

.mv-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  /*background:rgba(28,28,28,.12);*/
}

.mv-inner{
  position:relative;
  z-index:2;
  width:100%;
  padding:28px 0 22px;
}

.mv-inner.container{
  max-width:none;
  margin:0;
  padding-left:16px;
  padding-right:16px;
  padding-top:28px;
  padding-bottom:22px;
}

.mv-panel{
  max-width:500px;
  margin:0;
  background:rgba(255,255,255,.50);
  border-radius:22px;
  box-shadow:none;
  padding:22px 20px;
}

.mv-panel-kicker{
  display:inline-block;
  background:#9bceec;
  color:var(--text);
  font-size:12px;
  font-weight:700;
  padding:2px 6px;
  border-radius:0;
  line-height:1.4;
}

/* トップMVの見出しを h2 と同じ明朝体に */
.mv h1{
  margin:12px 0 10px;
  font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:34px;
  font-weight:400;
  line-height:1.3;
  letter-spacing:.04em;
  color:var(--text);
}

.mv p{
  margin:0;
  color:var(--text);
  font-weight:700;
  font-size:15px;
  line-height:1.8;
}

.mv-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:16px;
}

.mv-actions .btn{
  min-width:148px;
  padding:12px 18px;
  font-size:14px;
  font-weight:800;
  border-radius:999px;
}

.mv-clinic-info{
  display:none;
}

.mv-feature-tags{
  margin-top:16px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.mv-feature-tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 12px;
  border-radius:999px;
  background:#C5E7C1;
  color:#111;
  font-size:13px;
  font-weight:800;
  line-height:1.4;
  white-space:nowrap;
}

.mv-dots{
  position:absolute;
  bottom:20px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:10px;
  z-index:3;
}

.mv-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  border:none;
  background:rgba(255,255,255,.65);
  cursor:pointer;
  transition:.3s;
}

.mv-dot:hover{
  background:#fff;
}

.mv-dot.is-active{
  background:#e3f0db;
  transform:scale(1.2);
}

/* =========================
   Responsive
========================= */

@media (max-width:768px){
  .mv{
    min-height:700px;
  }

  .mv-inner.container{
    padding-left:14px;
    padding-right:14px;
    padding-top:20px;
    padding-bottom:18px;
  }

  .mv-panel{
    max-width:100%;
    padding:18px 16px;
    border-radius:18px;
  }

@media (max-width:768px){
  .mv h1{
    font-size:28px;
    line-height:1.35;
  }

  /* モバイルだけ少し詰める */
  .mv .mv-lead{
    font-size:15px;
    line-height:1.4;
  }
}

  .mv p{
    font-size:15px;
    line-height:1.4;
  }

  .mv-actions{
    gap:8px;
  }

  .mv-actions .btn{
    flex:1 1 calc(50% - 4px);
    min-width:0;
    padding:11px 12px;
    font-size:13px;
  }

  .mv-feature-tags{
    gap:7px;
  }

  .mv-feature-tag{
    font-size:11px;
    padding:6px 10px;
  }
}


/* =========================
   Reserve Guide Section
========================= */

.reserve-guide-section{
  padding:30px 0 10px;
}

.reserve-guide-card{
  background:#fff;
  border:var(--block-border);
  border-radius:22px;
  padding:32px;
}

.reserve-guide-head{
  text-align:center;
  margin-bottom:24px;
}

.reserve-guide-head h2{
  margin:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:center;
}

.reserve-guide-head .ja{
  font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:32px;
  font-weight:400;
  line-height:1.4;
  letter-spacing:.04em;
}

.reserve-guide-head .en{
  display:block;
  font-size:12px;
  font-weight:700;
  line-height:1;
  letter-spacing:.12em;
  color:var(--orange);
}


.reserve-guide-body{
  max-width:820px;
  margin:0 auto;
  text-align:center;
}

.reserve-guide-lead{
  font-size:18px;
  font-weight:700;
  line-height:1.9;
  margin-bottom:14px;
}

.reserve-guide-body p{
  margin:0 0 14px;
}

.reserve-guide-points{
  list-style:none;
  margin:20px auto 16px;
  padding:0;
  max-width:640px;
  display:grid;
  gap:10px;
}

.reserve-guide-points li{
  background:#f7fbf4;
  border:1px solid rgba(145,209,118,.28);
  border-radius:999px;
  padding:12px 18px;
  font-weight:700;
  line-height:1.6;
}

.reserve-guide-note{
  font-size:14px;
  color:var(--muted);
  line-height:1.8;
}

.reserve-guide-actions{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:20px;
}

/* メインボタン */
.reserve-guide-actions .btn{
  min-width:240px;
}

/* サブボタン：薄グリーン版 */
.reserve-guide-subbtn,
.reserve-guide-subbtn:link,
.reserve-guide-subbtn:visited{
  background:#91d176 !important;
  color:var(--text) !important;
  border:2px solid #91d176 !important;
  box-shadow:none !important;
}

.reserve-guide-subbtn::after{
  color:var(--text) !important;
}

.reserve-guide-subbtn:hover,
.reserve-guide-subbtn:focus{
  background:#82CA69  !important;
  color:var(--text) !important;
  border-color:#82CA69 !important;
}

.reserve-guide-subbtn:hover::after,
.reserve-guide-subbtn:focus::after{
  color:var(--text) !important;
}

/* =========================
   Tablet
========================= */

@media (max-width:1024px){
  .reserve-guide-card{
    padding:28px 24px;
  }

  .reserve-guide-head .ja{
    font-size:28px;
  }

  .reserve-guide-body{
    max-width:760px;
  }

  .reserve-guide-actions .btn{
    min-width:220px;
  }
}

/* =========================
   Mobile
========================= */

@media (max-width:768px){
  .reserve-guide-section{
    padding:22px 0 6px;
  }

  .reserve-guide-card{
    padding:22px 18px;
    border-radius:18px;
  }

  .reserve-guide-head{
    margin-bottom:18px;
  }

  .reserve-guide-head .ja{
    font-size:24px;
    line-height:1.5;
  }

  .reserve-guide-head .en{
    font-size:11px;
  }

  .reserve-guide-body{
    max-width:100%;
  }

  .reserve-guide-lead{
    font-size:16px;
    line-height:1.8;
    margin-bottom:12px;
  }

  .reserve-guide-body p{
    font-size:16px;
    line-height:1.8;
  }

  .reserve-guide-points{
    gap:10px;
    margin:18px auto 14px;
  }

  .reserve-guide-points li{
    border-radius:16px;
    padding:11px 14px;
    font-size:15px;
    line-height:1.7;
  }

  .reserve-guide-note{
    font-size:13px;
    line-height:1.7;
  }

  .reserve-guide-actions{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    margin-top:18px;
  }

  .reserve-guide-actions .btn,
  .reserve-guide-actions .reserve-guide-subbtn{
    width:100%;
    min-width:0;
    justify-content:center;
    font-size:16px;
    padding:12px 16px;
  }
}

/* =========================
   Small Mobile
========================= */

@media (max-width:480px){
  .reserve-guide-card{
    padding:20px 14px;
  }

  .reserve-guide-head .ja{
    font-size:22px;
  }

  .reserve-guide-body p{
    font-size:15px;
  }

  .reserve-guide-points li{
    font-size:14px;
    padding:10px 12px;
  }

  .reserve-guide-actions .btn,
  .reserve-guide-actions .reserve-guide-subbtn{
    font-size:15px;
    padding:11px 14px;
  }
}
/* =========================
   Top cards
========================= */

.top-cards{
  padding:18px 0 6px;
}

.top-cards-grid{
  display:grid;
  gap:16px;
  grid-template-columns:1.1fr .9fr;
  align-items:stretch;
}

.top-cards h2{
  font-size:20px!important;
}

.mini-list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}

.mini-list li{
  padding:10px;
  border-radius:12px;
  background:#fff;
  box-shadow:inset 0 0 0 1px rgba(145,209,118,.24);
}

.mini-list a{
  text-decoration:none;
  display:block;
}

.mini-list time{
  font-size:12px;
  color:var(--muted);
  display:block;
}

.mini-list strong{
  display:block;
  font-size:16px;
  margin-top:2px;
  color:var(--text);
}
#nomura{
  position:relative;

  padding:32px;

  border:none;
  border-radius:12px;

  background-image:url("../images/contacts_bg.webp");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;

  display:flex;
  flex-direction:column;
  justify-content:center; /* 縦中央 */
  align-items:center;     /* 横中央 */

  text-align:center;

  overflow:hidden;
  min-height:220px;
}
#nomura::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(255, 255, 255, 0.462);
}

#nomura > *{
  position:relative;
}
#nomura .btn{
  margin-top:6px;
}
#nomura h2{
  font-size:36px;
  font-weight:700;
  letter-spacing:0.04em;
  padding:6px 14px;
  margin-bottom:30px;
}

/* =========================
   Sections
========================= */

section{
  padding:80px 0;
  background:transparent;
}

.section-title{
  margin:0 0 44px;
}

.section-title.section-title-center{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:18px;
  margin:50px 0 56px;
}

.section-title.section-title-center h2{
  position:relative;
  margin:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  width:100%;
}

.section-title.section-title-center h2 .ja{
  font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:42px;
  font-weight:400;
  letter-spacing:.06em;
  line-height:1.3;
  color:#111;
  display:block;
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:keep-all;
}

.section-title.section-title-center h2 .en{
  display:block;
  font-size:11px;
  font-weight:600;
  line-height:1;
  letter-spacing:.1em;
  padding:10px 0px;
  color:#f98202;
  background:none;
  border-radius:0;
}

.section-title.section-title-center h2::before,
.section-title.section-title-center h2::after{
  content:"";
  position:absolute;
  top:22px;
  width:56px;
  height:1px;
  background:#d8e8d1;
}

.section-title.section-title-center h2::before{
  right:calc(100% + 18px);
}

.section-title.section-title-center h2::after{
  left:calc(100% + 18px);
}

.section-title.section-title-center p{
  margin:0;
  font-size:15px;
  line-height:1.9;
  color:var(--muted);
}

.section-title.section-title-center .btn{
  margin-top:4px;
}

/* =========================
   Responsive
========================= */

@media (max-width:767px){

  .section-title.section-title-center h2{
    position:relative;
    padding-top:18px;
  }

  .section-title.section-title-center h2::before{
    content:"";
    display:block;
    position:absolute;
    top:0;
    left:50%;
    right:auto;
    width:40px;
    height:2px;
    transform:translateX(-50%);
    background:#d8e8d1;
  }

  .section-title.section-title-center h2::after{
    content:none;
    display:none;
  }

  .section-title.section-title-center h2 span.ja{
    font-size:26px;
  }
}

/* =========================
   News
========================= */

.news{
  display:grid;
  gap:14px;
}

.news-item{
  background:#fff;
  border:var(--block-border);
  border-radius:18px;
  padding:16px;
  display:grid;
  gap:10px;
}

/* meta */
.news-item .meta{
  display:flex;
  align-items:center;
  gap:10px;
}

/* 日付 */
.news-item time{
  font-size:12px;
  color:var(--muted);
}

/* カテゴリ */
.news-item .cat{
  font-size:12px;
}

/* タイトル */
.news-title{
  font-size:18px;
  font-weight:700;
  color:var(--text);
}

/* 本文 */
.news-text{
  margin:0;
  font-size:14px;
  line-height:1.8;
  color:#444;
}

/* リンク */
.news-link{
  text-align:right;
}

.news-link a{
  font-size:13px;
  font-weight:600;
  color:#f29600;
  text-decoration:none;
}

.news-link a:hover{
  text-decoration:underline;
}
.cat{
  padding:2px 8px;
  border-radius:999px;
}

.cat.休診{ background:#ffe5e5; color:#d33; }
.cat.季節情報{ background:#e6f7ff; color:#2a7; }
.cat.予約{ background:#fff3e0; color:#f29600; }
/* =========================
   Feature cards
========================= */

.grid-3{
  display:grid;
  gap:16px;
  grid-template-columns:repeat(3, 1fr);
}

.feature{
  padding:18px;
  border-radius:var(--radius);
  background:#fff;
  border:var(--block-border);
  box-shadow:none;
}

.feature h3{
  margin:0 0 8px;
  font-size:20px;
  color:var(--text);
}

.feature p{
  margin:0;
  color:var(--text);
  font-size:16px;
  line-height:1.8;
}

.feature .tag{
  margin-top:12px;
  display:inline-block;
}

.feature-img{
  width:100%;
  height:170px;
  overflow:hidden;
  border-radius:10px;
  margin-bottom:12px;
}

.feature-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:.4s;
}

.feature:hover .feature-img img{
  transform:scale(1.05);
}

/* =========================
   Disease cards
========================= */

.grid-4{
  display:grid;
  gap:20px;
  grid-template-columns:repeat(4, 1fr);
}

.disease{
  position:relative;
  padding:22px 20px 18px;
  border-radius:22px;
  background:linear-gradient(180deg, #ffffff 0%, #fbfdf9 100%);
  border:2px solid rgba(145,209,118,.55);
  text-decoration:none;
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:190px;
  transition:
    transform .22s ease,
    border-color .22s ease,
    background .22s ease,
    box-shadow .22s ease;
  overflow:hidden;
}

.disease::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:6px;
  background:linear-gradient(90deg, #91d176 0%, #cfe9c2 100%);
}

.disease strong{
  display:block;
  font-size:20px;
  font-weight:800;
  line-height:1.45;
  color:var(--text);
  letter-spacing:.03em;
}

.disease span:not(.tag){
  color:var(--muted);
  font-size:14px;
  line-height:1.8;
}

.disease .tag{
  margin-top:auto;
  align-self:flex-start;
  padding:7px 14px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.03em;
  border-radius:999px;
  background:#6fb657;
  color:#fff;
}

.disease:hover{
  transform:translateY(-4px);
  border-color:#91d176;
  background:linear-gradient(180deg, #ffffff 0%, #f6fbf2 100%);
  box-shadow:0 14px 30px rgba(145,209,118,.14);
}

.disease:hover .tag{
  background:#4e9a39;
  transform:translateY(-1px);
}

.disease.main{
  background:linear-gradient(180deg, #ffffff 0%, #f2f9ed 100%);
  border:2px solid #91d176;
}

.disease.main::before{
  height:7px;
  background:linear-gradient(90deg, #f29600 0%, #ffd28a 100%);
}

.disease.main strong{
  font-size:22px;
}

.disease.main .tag{
  background:#f29600;
}

.disease.main:hover .tag{
  background:#db8600;
}

@media (max-width:980px){
  .grid-4{
    grid-template-columns:1fr 1fr;
    gap:16px;
  }

  .disease{
    min-height:180px;
    padding:20px 18px 16px;
  }
}

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

  .disease{
    min-height:auto;
    border-radius:18px;
  }

  .disease strong{
    font-size:18px;
  }

  .disease.main strong{
    font-size:20px;
  }
}
/* =========================
   Hours
========================= */

.hours-wrap{
  display:grid;
  gap:16px;
  grid-template-columns:1fr 1fr;
  align-items:start;
}

.clinic-hours-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:#fff;
  border:4px solid var(--frame);
  border-radius:12px;
  overflow:hidden;
  box-shadow:none;
}

.clinic-hours-table th,
.clinic-hours-table td{
  border-right:1px solid var(--frame);
  border-bottom:1px solid var(--frame);
  text-align:center;
  vertical-align:middle;
  padding:10px 8px;
  font-size:16px;
  color:var(--text);
  background:#fff;
  line-height:1.2;
}

.clinic-hours-table thead th{
  font-weight:700;
  background:var(--green-soft);
}

.clinic-hours-table thead th:first-child{
  min-width:130px;
}

.clinic-hours-table tbody th{
  font-weight:400;
  white-space:nowrap;
  background:#fff;
}

.clinic-hours-table tr:last-child th,
.clinic-hours-table tr:last-child td{
  border-bottom:none;
}

.clinic-hours-table th:last-child,
.clinic-hours-table td:last-child{
  border-right:none;
}

.mark{
  display:inline-block;
  position:relative;
  width:22px;
  height:22px;
}

.mark.circle::before{
  content:"";
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--frame);
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%, -50%);
}

.mark.slash::before{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:20px;
  height:2px;
  background:var(--frame);
  transform:translate(-50%, -50%) rotate(-55deg);
  transform-origin:center;
  border-radius:2px;
}

.label-op{
  display:inline-block;
  color:var(--frame);
  font-weight:700;
  font-size:18px;
  letter-spacing:.04em;
}

.label-check{
  display:inline-block;
  color:var(--frame);
  font-weight:700;
  font-size:12px;
  line-height:1.15;
}

.subnote{
  display:block;
  margin-top:2px;
  font-size:10px;
  color:var(--muted);
  line-height:1;
}

.note{
  background:#fff;
  border:var(--block-border);
  border-radius:18px;
  box-shadow:none;
  padding:18px;
  color:var(--text);
  font-size:16px;
}

.note h3{
  margin:0 0 10px;
  color:var(--frame);
  font-size:22px;
}

.note ul{
  margin:0;
  padding-left:1.2em;
}

.note li{
  margin-bottom:.45em;
}

/* =========================
   FAQ
========================= */

#faq .section-title h2,
#faq .section-title p{
  color:inherit;
}

.faq-list{
  display:grid;
  gap:14px;
  margin-top:18px;
}

.faq-item{
  background:var(--faq-bg);
  border:4px solid var(--frame);
  border-radius:18px;
  overflow:hidden;
  box-shadow:none;
  transition:transform .2s ease, border-color .2s ease;
}

.faq-item:hover{
  transform:translateY(-1px);
}

.faq-item summary{
  list-style:none;
  cursor:pointer;
  padding:18px 56px 18px 20px;
  font-weight:800;
  font-size:18px;
  line-height:1.7;
  position:relative;
  color:var(--text);
  background:#fff;
}

.faq-item summary::-webkit-details-marker{
  display:none;
}

.faq-item summary::before{
  content:"Q";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  margin-right:10px;
  border-radius:999px;
  background:var(--frame);
  color:#fff;
  font-size:13px;
  font-weight:700;
  vertical-align:middle;
}

.faq-item summary::after{
  content:"+";
  position:absolute;
  right:18px;
  top:50%;
  transform:translateY(-50%);
  width:28px;
  height:28px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  line-height:1;
  color:var(--muted);
  background:#fff;
  box-shadow:inset 0 0 0 1px rgba(145,209,118,.24);
  transition:all .2s ease;
}

.faq-item[open]{
  border-color:var(--orange);
  background:#fffdfa;
}

.faq-item[open] summary::after{
  content:"−";
  color:var(--orange);
  box-shadow:inset 0 0 0 1px rgba(242,150,0,.24);
}

.faq-answer{
  position:relative;
  padding:0 20px 20px 56px;
  background:#fffdfa;
}

.faq-answer::before{
  content:"A";
  position:absolute;
  left:20px;
  top:2px;
  width:26px;
  height:26px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--orange);
  color:#fff;
  font-size:13px;
  font-weight:700;
}

.faq-answer p{
  margin:0;
  font-size:16px;
  line-height:1.9;
  color:var(--text);
}


/* =========================
   Reserve / Contact
========================= */

#reserve .card,
#contact .card{
  border:var(--block-border);
  box-shadow:none;
}

/* =========================
   Access
========================= */

.access-grid{
  display:grid;
  gap:16px;
  grid-template-columns:1.2fr .8fr;
  align-items:stretch;
}

.map{
  border-radius:var(--radius);
  overflow:hidden;
  border:4px solid var(--frame);
  background:#fff;
  min-height:320px;
}

.map iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}

.access-card .kv{
  display:grid;
  gap:10px;
  margin-top:10px;
}

.kv div{
  padding:10px;
  border-radius:12px;
  background:#fff;
  box-shadow:inset 0 0 0 1px var(--line);
}

.kv b{
  display:block;
  font-size:14px;
  color:var(--text);
}

.kv span{
  display:block;
  color:var(--text);
  font-size:14px;
  margin-top:2px;
}

/* =========================
   Footer
========================= */

footer{
  margin-top:0px;
  background:var(--footer);
  color:#111;
  padding:28px 0 90px;
}

footer a{
  font-size:16px;
  color:#111;
  text-decoration:none;
}
footer a:visited{
  color:#111;
}

.foot-grid{
  display:grid;
  gap:14px;
  grid-template-columns:1.2fr .8fr .8fr;
  align-items:start;
}

.foot-card{
  background:rgba(255,255,255,0.52);
  border-radius:16px;
  padding:14px;
}

.foot-card h3{
  margin:0 0 8px;
  font-size:18px;
  letter-spacing:.03em;
}

.foot-links{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}

.copyright{
  margin-top:12px;
  font-size:14px;
}
/* =========================
   Sticky banner
========================= */

.sticky-banner{
  position:fixed;
  right:14px;
  bottom:14px;
  z-index:60;
  width:auto;
  max-width:calc(100vw - 28px);
}


.sticky-banner .box{
  background:rgba(255,255,255,0.00);
  border-radius:18px;
  padding:10px;
  display:flex;
  align-items:center;
  gap:10px;
}

.sticky-banner .box .btn{
  margin:0;
  padding:12px 18px;
}

.sticky-banner .close{
  flex:0 0 auto;
  border:none;
  background:#fff;
  box-shadow:inset 0 0 0 1px var(--line);
  border-radius:999px;
  width:36px;
  height:36px;
  cursor:pointer;
  font-size:18px;
  font-weight:700;
  line-height:1;
  color:#111;
}

.sticky-banner .close:hover{
  background:#f7f7f7;
}

@media (max-width: 768px){
  .sticky-banner{
    right:12px;
    left:12px;
    bottom:12px;
    max-width:none;
  }
  .home-page .sticky-banner{
    display:none !important;
  }

  .sticky-banner .box{
    width:100%;
    justify-content:space-between;
  }

  .sticky-banner .box .btn{
    flex:1;
    min-width:0;
    justify-content:center;
  }
}

/* =========================
   Sub Page MV Common
========================= */

.submv{
  position: relative;
  height: 240px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #eef5ea;
}

.submv-bg{
  position: absolute;
  inset: 0;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  z-index: 1;
  transform: scale(1);
}

.submv::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(255,255,255,.84) 0%,
    rgba(255,255,255,.70) 38%,
    rgba(255,255,255,.28) 100%
  );
  z-index: 2;
}

.submv-inner{
  position: relative;
  z-index: 3;
  width: 100%;
  padding: 72px 30px 72px 30px;
}

.submv-text{
  max-width: 680px;
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  text-align: left;
}

.submv-kicker{
  display: inline-block;
  margin-bottom: 10px;
  font-size: 12px;
  letter-spacing: .12em;
  font-weight: 700;
  color: var(--orange);
}

.submv h1{
  margin: 0 0 12px;
  font-family: "Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size: 40px;
  font-weight: 400; /* ← 太字やめる */
  line-height: 1.25;
  color: #222;
}

.submv p{
  margin: 0;
  color: #444;
  line-height: 1.8;
  font-size: 1.05rem;
}

/* ===== Tablet ===== */
@media (max-width: 1100px){
  .submv{
    height: 180px;
  }

  .submv-inner{
    padding: 56px 30px;
  }

  .submv-text{
    max-width: 560px;
    padding-left: 0;
    padding-right: 0;
  }

  .submv::before{
    background: linear-gradient(
      90deg,
      rgba(255,255,255,.86) 0%,
      rgba(255,255,255,.74) 42%,
      rgba(255,255,255,.36) 100%
    );
  }
}

/* ===== Mobile ===== */
@media (max-width: 767px){
  .submv{
    height: 200px;
    align-items: center;
  }

  .submv-inner{
    padding: 42px 24px;
  }

  .submv-text{
    max-width: 70%;
    padding: 0;
  }

  .submv-kicker{
    margin-bottom: 8px;
    font-size: 11px;
    letter-spacing: .10em;
  }

  .submv h1{
    font-size: 26px;
    margin-bottom: 10px;
  }

  .submv p{
    font-size: .96rem;
    line-height: 1.7;
  }

  .submv p br{
    display: none;
  }

  .submv::before{
    background: linear-gradient(
      90deg,
      rgba(255,255,255,.88) 0%,
      rgba(255,255,255,.80) 52%,
      rgba(255,255,255,.52) 100%
    );
  }
}
/* =========================
   Sub Page MV Backgrounds
========================= */

.submv-patient .submv-bg{
  background-image: url("../images/submv-patient.webp");
}

.submv-hour .submv-bg{
  background-image: url("../images/submv-hour.webp");
}

.submv-doctor .submv-bg{
  background-image: url("../images/submv-doctor.webp");
}

.submv-services .submv-bg{
  background-image: url("../images/submv-services.webp");
}

.submv-equipment .submv-bg{
  background-image: url("../images/submv-equipment.webp");
}

.submv-treatments .submv-bg{
  background-image: url("../images/submv-treatments.webp");
}

.submv-disease .submv-bg{
  background-image: url("../images/submv-disease.webp");
}

.submv-faq .submv-bg{
  background-image: url("../images/submv-faq.webp");
}

.submv-contacts .submv-bg{
  background-image: url("../images/submv-contacts.webp");
}

/* ===== Mobile background position ===== */
@media (max-width: 767px){
  .submv-patient .submv-bg{
    background-position: 68% center;
  }

  .submv-hour .submv-bg{
    background-position: 60% center;
  }

  .submv-doctor .submv-bg{
    background-position: 72% center;
  }

  .submv-services .submv-bg{
    background-position: 62% center;
  }

  .submv-equipment .submv-bg{
    background-position: 65% center;
  }

  .submv-treatments .submv-bg{
    background-position: 70% center;
  }

  .submv-disease .submv-bg{
    background-position: 66% center;
  }

  .submv-faq .submv-bg{
    background-position: 58% center;
  }

  .submv-contacts .submv-bg{
    background-position: 64% center;
  }
}
/* =========================
   Page Section
========================= */

.page-section{
  padding:36px 0;
  background:#fff;
}

.page-section h2{
  font-size:24px;
  margin-bottom:14px;
}

.small-note{
  font-size:14px;
  color:#777;
  line-height:1.6;
}

/* =========================
   Image Layout
========================= */

.image-grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-top:18px;
}

.image-grid-3{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:20px;
  margin-top:18px;
}

.wide-img{
  width:100%;
  border-radius:12px 12px 0 0;
  display:block;
}

.img-70{
  width:70%;
  margin:0 auto;
  display:block;
}

.img-40{
  width:40%;
  margin:0 auto;
  display:block;
}

/* =========================
   hour.html
========================= */

.hours-single{
  max-width:700px;
  margin:0 auto;
}

.hours-large .clinic-hours-table{
  width:100%;
}

.hours-large .clinic-hours-table th,
.hours-large .clinic-hours-table td{
  font-size:18px;
  padding:14px 10px;
}

.hours-large .clinic-hours-table thead th{
  font-size:17px;
}

.hours-large .clinic-hours-table tbody th{
  font-size:18px;
}

.hours-large .mark{
  width:26px;
  height:26px;
}

.hours-large .mark.circle::before{
  width:16px;
  height:16px;
}

.hours-large .mark.slash::before{
  width:24px;
}

.hours-large .label-op{
  font-size:20px;
}

.hours-large .label-check{
  font-size:13px;
}

.hours-legend{
  margin:14px 0 8px;
  font-size:14px;
  color:var(--muted);
}

/* access image */
.access-image-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-top:12px;
}

.access-figure{
  margin:0;
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  border:4px solid var(--frame);
}

.access-figure img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* google map wide */
.map-section{
  padding-top:8px;
}

.map-wide{
  width:100%;
  max-width:100%;
  height:500px;
  overflow:hidden;
  background:#fff;
  box-shadow:
    inset 0 1px 0 rgba(145,209,118,.24),
    inset 0 -1px 0 rgba(145,209,118,.24);
}

.map-wide iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}

.map-link-wrap{
  margin:12px 0 0;
}

.map-link{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
  font-weight:700;
  color:var(--frame);
}

.map-link:hover{
  color:#79be61;
}

/* access text cards */
.access-info-grid{
  display:grid;
  gap:18px;
  grid-template-columns:repeat(3, 1fr);
}

.access-info-card{
  background:#fff;
  border:var(--block-border);
  border-radius:18px;
  padding:20px;
}

.access-info-card--strong{
  border:4px solid #91d176;
}

.access-info-card h3{
  margin:0 0 10px;
  font-size:22px;
  color:var(--frame);
}

.access-info-card p{
  margin:0 0 .9em;
}

.access-info-card a{
  color:var(--orange);
  font-weight:700;
  text-decoration:none;
}

.access-info-card a:hover{
  color:#e28c00;
}

@media (max-width:980px){
  .access-info-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:768px){
  .access-image-grid{
    grid-template-columns:1fr;
  }

  .map-wide{
    height:420px;
  }

  .hours-large .clinic-hours-table th,
  .hours-large .clinic-hours-table td{
    font-size:16px;
    padding:10px 6px;
  }

  .hours-large .clinic-hours-table thead th,
  .hours-large .clinic-hours-table tbody th{
    font-size:15px;
  }

  .hours-large .mark{
    width:22px;
    height:22px;
  }

  .hours-large .mark.circle::before{
    width:14px;
    height:14px;
  }

  .hours-large .mark.slash::before{
    width:20px;
  }

  .hours-large .label-op{
    font-size:16px;
  }

  .hours-large .label-check{
    font-size:11px;
  }
}

@media (max-width:520px){
  .map-wide{
    height:360px;
  }
}

/* =========================
   doctor.html
========================= */

.doctor-profile-wrap{
  display:grid;
  grid-template-columns:360px 1fr;
  gap:24px;
  align-items:start;
}

.doctor-photo-card{
  background:#fff;
  border:var(--block-border);
  border-radius:20px;
  padding:14px;
}

.doctor-photo-card img{
  aspect-ratio:3 / 4;
  object-fit:cover;
}

.doctor-message-card{
  background:#fff;
  border:var(--block-border);
  border-radius:20px;
  padding:24px;
}

.doctor-name{
  margin:0 0 6px;
  font-size:28px;
}

.doctor-title{
  margin:0 0 18px;
  color:var(--frame);
  font-weight:700;
}

.policy-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
}

.policy-card{
  background:#fff;
  border:var(--block-border);
  border-radius:18px;
  padding:20px;
}

.policy-card h3{
  margin:0 0 10px;
  font-size:22px;
  color:var(--frame);
}

.policy-card p{
  margin:0;
}

.profile-card{
  background:#fff;
  border:var(--block-border);
  border-radius:20px;
  padding:24px;
}

.profile-head{
  margin-bottom:18px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}

.profile-head h3{
  margin:0 0 4px;
  font-size:28px;
}

.profile-head p{
  margin:0;
  color:var(--frame);
  font-weight:700;
}

.career-list{
  display:grid;
  gap:0;
}

.career-row{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:14px;
  padding:12px 0;
  border-bottom:1px solid rgba(145,209,118,.22);
}

.career-row:last-child{
  border-bottom:none;
}

.career-year{
  font-weight:700;
  color:var(--orange);
}

.career-text{
  color:var(--text);
}

.message-box{
  background:#fff;
  border:var(--block-border);
  border-radius:20px;
  padding:24px;
}

.message-box h2{
  margin-top:0;
}

.staff-photo-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
  margin-top:18px;
}

.staff-card{
  margin:0;
  background:#fff;
  border:var(--block-border);
  border-radius:18px;
  overflow:hidden;
}

.staff-card img{
  aspect-ratio:3 / 2;
  object-fit:cover;
}

.staff-card figcaption{
  padding:16px;
}

.staff-card h3{
  margin:0 0 8px;
  font-size:20px;
  color:var(--frame);
}

.staff-card p{
  margin:0;
}

.staff-note-card{
  margin-top:20px;
  background:#fff;
  border:var(--block-border);
  border-radius:18px;
  padding:20px;
}

.staff-note-card h3{
  margin:0 0 10px;
  color:var(--frame);
}

@media (max-width:980px){
  .doctor-profile-wrap{
    grid-template-columns:1fr;
  }

  .policy-grid{
    grid-template-columns:1fr;
  }

  .staff-photo-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px){
  .career-row{
    grid-template-columns:1fr;
    gap:6px;
    padding:10px 0;
  }

  .doctor-name{
    font-size:24px;
  }

  .profile-head h3{
    font-size:24px;
  }
}

/* =========================
   treatments.html
========================= */

.service-hero{
  position:relative;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  padding:0;
  overflow:hidden;
}

.service-hero-inner{
  position:relative;
  min-height:520px;
  display:flex;
  align-items:center;
  background-image:url("../images/illust-services-eye.png");
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}

.service-hero-inner::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.68);
  z-index:1;
}

.service-hero-content{
  position:relative;
  z-index:2;
  max-width:980px;
  padding-top:80px;
  padding-bottom:80px;
}

.service-hero .section-title{
  margin-bottom:30px;
}

.service-hero .section-title h2{
  font-size:clamp(2rem, 3.6vw, 3rem);
  font-weight:700;
  line-height:1.3;
  color:#222;
  margin-bottom:10px;
}

.service-hero .section-title p{
  font-size:1.05rem;
  font-weight:600;
  color:#4b5b66;
  margin:0;
}

.service-hero .service-intro-text{
  max-width:760px;
}

.service-hero .service-intro-text p{
  font-size:1.15rem;
  line-height:2;
  color:#333;
  margin-bottom:1.2em;
}

.service-hero .service-intro-text strong{
  font-size:1.28rem;
  font-weight:700;
  line-height:1.9;
  color:var(--text);
}

.service-intro-card{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:22px;
  align-items:center;
  background:#fff;
  border:var(--block-border);
  border-radius:20px;
  padding:24px;
}

.service-intro-text strong{
  color:var(--frame);
}

.service-illust-card{
  background:transparent;
  border:none;
  padding:0;
}

.service-illust-card img{
  display:block;
  width:100%;
  height:auto;
}

.service-section-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:22px;
  align-items:center;
}

.service-section-grid.reverse{
  grid-template-columns:.8fr 1.2fr;
}

.service-section-text{
  background:transparent;
  border:none;
  border-radius:0;
  padding:0;
}

.service-section-text p{
  font-size:1.08rem;
  line-height:1.9;
  color:#333;
}

.service-section-text strong{
  font-size:1.2rem;
  color:var(--frame);
}

.service-section-text a{
  color:var(--orange);
  font-weight:700;
  text-decoration:none;
}

.service-section-text a:hover{
  color:#e28c00;
}

.service-list-grid{
  margin-top:18px;
}

.service-list-card{
  position:relative;
  background:#fff;
  border-radius:16px;
  padding:30px 36px;
  z-index:1;
}

.service-list-card::before{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:20px;
  background:linear-gradient(
    135deg,
    #eef8e9 0%,
    #d9efcc 55%,
    #c6e8b1 100%
  );
  z-index:-1;
}

.service-list-card h3{
  margin:0 0 18px;
  font-size:1.35rem;
  color:var(--frame);
}

.check-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:10px 18px;
}

.check-list li{
  position:relative;
  padding-left:18px;
  margin-bottom:0;
  font-size:1.05rem;
}

.check-list li::before{
  content:"";
  width:6px;
  height:6px;
  background:var(--orange);
  border-radius:50%;
  position:absolute;
  left:0;
  top:.78em;
}

.check-list a{
  text-decoration:none;
  color:var(--frame);
  font-weight:700;
}

.check-list a:hover{
  text-decoration:underline;
}

.cooperation-card{
  background:#fff;
  border:var(--block-border);
  border-radius:20px;
  padding:24px;
}

.cooperation-card strong{
  color:var(--frame);
}

.service-cta-card{
  background:#fff;
  border:var(--block-border);
  border-radius:22px;
  padding:26px;
}

.service-cta-card h2{
  margin-top:0;
}

.service-cta-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}

@media (max-width:980px){
  .service-intro-card,
  .service-section-grid,
  .service-section-grid.reverse{
    grid-template-columns:1fr;
  }
}

@media (max-width:768px){
  .check-list{
    grid-template-columns:1fr;
  }
}

@media (max-width:767px){
  .service-hero-inner{
    min-height:auto;
    background-position:62% center;
  }

  .service-hero-content{
    padding-top:56px;
    padding-bottom:56px;
    padding-left:20px;
    padding-right:20px;
  }

  .service-hero .section-title h2{
    font-size:1.8rem;
  }

  .service-hero .section-title p{
    font-size:.95rem;
  }

  .service-hero .service-intro-text p{
    font-size:1rem;
    line-height:1.9;
  }

  .service-hero .service-intro-text strong{
    font-size:1.08rem;
  }
}

/* =========================
   disease.html
========================= */

.symptom-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
}

.symptom-links a{
  display:inline-flex;
  align-items:center;
  padding:10px 14px;
  border-radius:999px;
  background:#fff;
  text-decoration:none;
  font-weight:700;
  color:var(--text);
  box-shadow:inset 0 0 0 1px var(--line);
}

.symptom-links a:hover{
  background:rgba(145,209,118,.10);
  color:var(--frame);
}

.disease-top-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:18px;
}

.disease-top-card{
  display:block;
  background:#fff;
  border:var(--block-border);
  border-radius:20px;
  padding:22px;
  text-decoration:none;
  transition:.18s ease;
}

.disease-top-card:hover{
  transform:translateY(-2px);
}

.disease-top-card.main{
  background:#fff;
  border:var(--block-border);
}

.disease-top-text h3{
  margin:8px 0 10px;
  font-size:24px;
}

.disease-top-text p{
  margin:0;
  color:var(--text);
  line-height:1.8;
}

.disease-label{
  display:inline-block;
  font-size:12px;
  font-weight:800;
  color:var(--orange);
  background:rgba(242,150,0,.10);
  border-radius:999px;
  padding:6px 10px;
}

.more-link{
  display:inline-block;
  margin-top:14px;
  font-weight:800;
  color:var(--frame);
}

.more-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:14px;
  padding:8px 14px;
  font-size:13px;
  font-weight:700;
  line-height:1.5;
  color:#4e9a39;
  background:#f5fbf2;
  border:1px solid rgba(145,209,118,.55);
  border-radius:999px;
  transition:
    color .2s ease,
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.more-link::after{
  content:"→";
  display:inline-block;
  font-size:13px;
  line-height:1;
  color:#4e9a39;
  transform:translateX(0);
  transition:transform .2s ease;
}

.disease-top-card:hover .more-link{
  color:#3f7f2f;
  background:#edf8e7;
  border-color:#91d176;
  transform:translateY(-1px);
}

.disease-top-card:hover .more-link::after{
  transform:translateX(3px);
}
.case-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:16px;
  margin-top:14px;
}

.case-card{
  background:#fff;
  border:var(--block-border);
  border-radius:18px;
  padding:18px;
}

.case-card h3{
  margin:0 0 8px;
  font-size:20px;
}

.case-card p{
  margin:0;
}

.info-box{
  margin-top:16px;
  background:rgba(242,150,0,.08);
  border:4px solid rgba(242,150,0,.30);
  border-radius:18px;
  padding:18px;
}

.info-box strong{
  display:block;
  margin-bottom:8px;
  color:var(--orange);
}

/* =========================
   Responsive
========================= */

@media (max-width:980px){
  .top-cards-grid{grid-template-columns:1fr;}
  .grid-3{grid-template-columns:1fr;}
  .grid-4{grid-template-columns:1fr 1fr;}
  .hours-wrap{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .access-grid{grid-template-columns:1fr;}

  .nav{display:none;}
  .hamburger{display:flex;}

  .cta-banner,
  .tel{display:none;}
}

@media (max-width:768px){
  .faq-item summary{
    font-size:16px;
    padding:16px 50px 16px 16px;
  }

  .faq-item summary::before{
    width:24px;
    height:24px;
    font-size:12px;
    margin-right:8px;
  }

  .faq-item summary::after{
    right:14px;
    width:26px;
    height:26px;
    font-size:17px;
  }

  .faq-answer{
    padding:0 16px 18px 48px;
  }

  .faq-answer::before{
    left:16px;
    width:24px;
    height:24px;
    font-size:12px;
  }

  .mv{
    min-height:620px;
  }

  .mv-panel{
    margin:0 16px;
  }

  .submv{
    min-height:240px;
  }

  .submv-text{
    max-width:100%;
  }

  .submv h1{
    font-size:28px;
  }

  .submv p{
    font-size:.96rem;
    line-height:1.7;
  }

  .submv p br{
    display:none;
  }

  .image-grid-2,
  .image-grid-3{
    grid-template-columns:1fr;
  }

  .page-section{
    padding:28px 0;
  }

  .disease-top-grid{
    grid-template-columns:1fr;
  }

  .case-grid{
    grid-template-columns:1fr;
  }

  .symptom-links{
    flex-direction:column;
  }
}

@media (max-width:640px){
  body{font-size:16px;}
  h1{font-size:28px;}
  h2{font-size:22px;}

  .clinic-hours-table th,
  .clinic-hours-table td{
    padding:8px 4px;
    font-size:14px;
  }

  .clinic-hours-table thead th:first-child{
    min-width:104px;
  }

  .mark{
    width:18px;
    height:18px;
  }

  .mark.circle::before{
    width:12px;
    height:12px;
  }

  .mark.slash::before{
    width:16px;
  }

  .label-op{
    font-size:15px;
  }

  .label-check{
    font-size:10px;
  }

  .subnote{
    font-size:9px;
  }
}

@media (max-width:520px){
  .news-item{flex-direction:column;}
  .news-item .meta{min-width:auto;}
  .grid-4{grid-template-columns:1fr;}

  .mv{
    min-height:540px;
  }

  .mv h1{
    font-size:28px;
  }

  .mv-actions .btn{
    flex:1;
  }

  .sticky-banner{
    right:10px;
    bottom:10px;
  }
}
/* =========================
   News（整理版）
========================= */

.news{
  display:grid;
  gap:14px;
}
.news-body{
  display:grid;
  gap:8px;
}


.news-item{
  background:#fff;
  border:var(--block-border);
  border-radius:18px;
  padding:16px;
  display:grid;
  gap:10px;
}

/* meta */
.news-item .meta{
  display:flex;
  align-items:center;
  gap:10px;
}

/* 日付 */
.news-item time{
  font-size:12px;
  color:var(--muted);
}

/* カテゴリ */
.news-item .cat{
  font-size:12px;
}

/* タイトル */
.news-title{
  font-size:18px;
  font-weight:700;
  color:var(--text);
}

/* 本文 */
.news-text{
  margin:0;
  font-size:14px;
  line-height:1.8;
  color:#444;
}

/* リンク */
.news-link{
  text-align:right;
}

.news-link a{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  font-size:13px;
  font-weight:700;
  color:#f29600;
  text-decoration:none;
}

.news-link a:hover{
  text-decoration:underline;
}

.mini-news-item{
  display:grid;
  gap:6px;
}

.mini-news-link{
  text-align:right;
}

.mini-news-link a{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  font-size:13px;
  font-weight:700;
  color:#f29600;
  text-decoration:none;
}

.mini-news-link a:hover{
  text-decoration:underline;
}
.cat{
  display:inline-block;
  padding:2px 8px;
  border-radius:999px;
  font-size:12px;
}

.cat-kyushin{ background:#ffe5e5; color:#d33; }
.cat-season{ background:#e6f7ff; color:#2a7; }
.cat-reserve{ background:#fff3e0; color:#f29600; }
.cat-info{ background:#eef5ea; color:#4b6b3c; }

/* =========================
   Mini News
========================= */

.mini-news-item time{
  display:block;
  font-size:12px;
  color:var(--muted);
  margin-bottom:4px;
}

.mini-news-title{
  display:block;
  font-size:16px;
  line-height:1.6;
  color:var(--text);
}

.mini-news-text{
  margin:6px 0 0;
  font-size:14px;
  line-height:1.75;
  color:var(--text);
}

.mini-news-link{
  margin-top:8px;
  text-align:right;
}

.mini-news-link a{
  font-size:13px;
  font-weight:700;
  color:var(--orange);
  text-decoration:none;
}

.mini-news-link a:hover{
  text-decoration:underline;
}

/* =========================
   Equipment Page
========================= */

.equipment-submv .submv-bg{
  background:
    linear-gradient(rgba(255,255,255,.58), rgba(255,255,255,.58)),
    url("../images/submv-equipment.jpg") center/cover no-repeat;
}

.page-intro-card{
  border:4px solid #91d176;
  border-radius:18px;
  padding:32px;
  background:#fff;
}

.page-intro-card h2{
  margin:0 0 16px;
}

.page-intro-card p{
  margin:0;
  line-height:2;
}

.equipment-section-block + .equipment-section-block{
  margin-top:48px;
}

.equipment-text-card{
  border:1px solid rgba(145,209,118,.30);
  border-radius:18px;
  padding:28px;
  background:#fff;
}

.equipment-text-card h3{
  margin:0 0 14px;
  font-size:28px;
}

.equipment-text-card p{
  margin:0 0 14px;
  line-height:2;
}

.equipment-text-card p:last-child{
  margin-bottom:0;
}

.equipment-image-grid{
  display:grid;
  gap:20px;
  margin-top:24px;
}

.equipment-image-grid-2{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.equipment-wide-image{
  margin-top:24px;
}

.equipment-media-card{
  margin:0;
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(145,209,118,.30);
  transition:transform .35s ease, box-shadow .35s ease;
}

.equipment-media-card:hover{
  transform:translateY(-6px);
  box-shadow:0 14px 28px rgba(0,0,0,.08);
}

.equipment-media-card img{
  display:block;
  width:100%;
  aspect-ratio:3 / 2;
  object-fit:cover;
  background:#f8f8f8;
}

.equipment-wide-image .equipment-media-card img{
  aspect-ratio:16 / 7;
}

.equipment-media-card figcaption{
  padding:14px 16px 18px;
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
}

.equipment-split-layout{
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(300px, 0.9fr);
  gap:28px;
  align-items:start;
  margin-top:48px;
}

.equipment-split-text{
  display:grid;
  gap:20px;
}

.equipment-split-media{
  display:grid;
  gap:20px;
}

.equipment-machine-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:22px;
}

.equipment-machine-card{
  background:#fff;
  border:1px solid rgba(145,209,118,.28);
  border-radius:18px;
  overflow:hidden;
}

.equipment-machine-image img{
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
  background:#f6f6f6;
}

.equipment-machine-card h3{
  margin:0;
  padding:18px 18px 10px;
  font-size:22px;
}

.equipment-machine-card ul{
  margin:0;
  padding:0 18px 20px 36px;
  line-height:1.9;
}

.equipment-machine-card li + li{
  margin-top:6px;
}

.equipment-surgery-lead{
  margin-bottom:24px;
}

.equipment-surgery-machines{
  margin-top:24px;
}

.equipment-list{
  margin:0;
  padding-left:1.3em;
  line-height:1.95;
}

.equipment-list li + li{
  margin-top:8px;
}

@media (max-width:980px){
  .equipment-split-layout{
    grid-template-columns:1fr;
  }

  .equipment-machine-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:768px){
  .page-intro-card{
    padding:24px;
    border-radius:16px;
  }

  .equipment-text-card{
    padding:22px;
  }

  .equipment-text-card h3{
    font-size:24px;
  }

  .equipment-image-grid-2,
  .equipment-machine-grid{
    grid-template-columns:1fr;
  }

  .equipment-wide-image .equipment-media-card img{
    aspect-ratio:3 / 2;
  }
}

/* =========================
   Contact Lenses Page
========================= */

.contacts-submv .submv-bg{
  background:
    linear-gradient(rgba(255,255,255,.58), rgba(255,255,255,.58)),
    url("../images/submv-contacts.jpg") center/cover no-repeat;
}

.contact-lead-card p + p{
  margin-top:14px;
}

.contact-note-small{
  font-size:14px;
  color:var(--muted);
}

.contact-important-box{
  margin-top:24px;
  padding:24px 28px;
  border-radius:18px;
  background:linear-gradient(135deg, #fff7df 0%, #fff1c4 100%);
  border:2px solid #f29600;
}

.contact-important-box strong{
  display:block;
  margin-bottom:10px;
  font-size:22px;
  color:#d74f00;
}

.contact-important-box p{
  margin:0;
  line-height:1.95;
}

.contact-rules-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:20px;
}

.contact-rule-card{
  background:#fff;
  border:1px solid rgba(145,209,118,.30);
  border-radius:18px;
  padding:24px;
}

.contact-rule-card h3{
  margin:0 0 12px;
  font-size:22px;
}

.contact-rule-card p{
  margin:0;
  line-height:1.9;
}

.contact-brand-section + .contact-brand-section{
  margin-top:52px;
}

.contact-brand-title{
  margin:0 0 20px;
  font-size:28px;
}

.contact-product-list{
  display:grid;
  gap:20px;
}

.contact-product-card{
  display:grid;
  grid-template-columns:220px minmax(0, 1fr) 130px;
  gap:20px;
  align-items:center;
  padding:22px;
  background:#fff;
  border:1px solid rgba(145,209,118,.28);
  border-radius:20px;
}

.contact-product-brand{
  align-self:start;
}

.contact-brand-name{
  margin:0 0 8px;
  font-size:24px;
  font-weight:700;
}

.contact-brand-copy{
  margin:0;
  line-height:1.8;
  color:var(--muted);
}

.contact-product-banner img{
  display:block;
  width:200px;
  max-width:200px;
  height:auto;
  border-radius:12px;
}

.contact-product-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
  align-items:flex-start;
}

.contact-product-desc{
  grid-column:1 / -1;
  margin:-4px 0 0;
  padding-top:6px;
  line-height:1.9;
}

.contact-notes{
  margin-top:28px;
  padding:22px 24px;
  background:#f7fbf4;
  border-radius:16px;
}

.contact-notes p{
  margin:0 0 10px;
  line-height:1.85;
}

.contact-notes p:last-child{
  margin-bottom:0;
}

.contact-shop-section{
  padding-top:40px;
}

.contact-shop-card{
  background:#fff;
  border:1px solid rgba(145,209,118,.30);
  border-radius:20px;
  padding:28px;
}

.contact-shop-card h3{
  margin:0 0 12px;
  font-size:28px;
}

.contact-shop-card > p{
  margin:0 0 18px;
  line-height:1.85;
}

.contact-shop-info{
  margin:0;
  display:grid;
  gap:14px;
}

.contact-shop-info div{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:14px;
}

.contact-shop-info dt{
  font-weight:700;
}

.contact-shop-info dd{
  margin:0;
  line-height:1.85;
}

.contact-tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:6px 12px;
  border-radius:999px;
  font-size:13px;
  font-weight:700;
  line-height:1.4;
  white-space:nowrap;
  border:1px solid rgba(0,0,0,.06);
}

.tag-scl{
  background:#dff5d9;
  color:#1c1c1c;
}

.tag-today{
  background:#fff4c8;
  color:#d94a00;
}

.tag-later{
  background:#dff1ff;
  color:#1f6fb8;
}

.tag-hcl{
  background:#ffe792;
  color:#5b4a00;
}

.tag-1day{
  background:#ffdede;
  color:#8a2f2f;
}

.tag-2week{
  background:#eee0ff;
  color:#6a42a1;
}

.tag-reserve{
  background:#dff5d9;
  color:#1f7a34;
}

@media (max-width:980px){
  .contact-product-card{
    grid-template-columns:1fr;
  }
}

@media (max-width:768px){
  .contact-important-box{
    padding:20px 22px;
    border-radius:16px;
  }

  .contact-important-box strong{
    font-size:20px;
  }

  .contact-rules-grid{
    grid-template-columns:1fr;
  }

  .contact-rule-card{
    padding:20px;
  }

  .contact-brand-title{
    font-size:24px;
  }

  .contact-product-card{
    padding:18px;
    border-radius:18px;
  }

  .contact-brand-name{
    font-size:21px;
  }

  .contact-shop-card{
    padding:22px;
    border-radius:18px;
  }

  .contact-shop-card h3{
    font-size:24px;
  }

  .contact-shop-info div{
    grid-template-columns:1fr;
    gap:4px;
  }

  .contact-tag{
    font-size:12px;
    min-height:30px;
    padding:5px 10px;
  }
}

/* =========================
   Typography Normalization
   2026-03 mobile readability
========================= */

body,
p,
li,
dd,
dt,
td,
th,
small,
a,
button,
input,
select,
textarea,
summary,
label{
font-family:
  "Hiragino Maru Gothic ProN",
  "Hiragino Sans",
  "Yu Gothic",
  "Meiryo",
  sans-serif;
}

.btn,
.tel,
.tel small,
.cta-banner,
.nav-link,
.dropdown a,
.drawer,
.drawer-links > a,
.drawer-group summary,
.drawer-submenu a,
.mv p,
.mv-actions .btn,
.mini-list strong,
.news-item,
.news-item p,
.news-item li,
.feature p,
.disease span:not(.tag),
.clinic-hours-table th,
.clinic-hours-table td,
.label-op,
.label-check,
.subnote,
.note,
.faq-item summary,
.faq-answer p,
.kv b,
.kv span,
.sticky-banner .box strong,
.sticky-banner .box small,
.submv p{
  color:var(--text);
font-family:
  "Hiragino Maru Gothic ProN",
  "Hiragino Sans",
  "Yu Gothic",
  "Meiryo",
  sans-serif;
}

h3,
h4,
.feature h3,
.note h3,
.faq-item summary,
.disease strong{
font-family:
  "Hiragino Maru Gothic ProN",
  "Hiragino Sans",
  "Yu Gothic",
  "Meiryo",
  sans-serif;
}

.tel small,
.mini-list time,
.disease span:not(.tag),
.subnote,
.sticky-banner .box small,
.submv p,
.kv span{
  color:var(--text);
}

.faq-item summary::after{
  color:#111;
}

.section-title.section-title-center p{
  color:var(--muted);
}

@media (max-width:768px){
  body{
    font-size:16px;
    line-height:1.8;
  }

  p,
  li,
  dd,
  dt,
  td,
  th,
  a,
  button,
  input,
  select,
  textarea,
  summary,
  .btn,
  .tel,
  .tel small,
  .cta-banner,
  .nav-link,
  .dropdown a,
  .drawer-links > a,
  .drawer-group summary,
  .drawer-submenu a,
  .mv p,
  .mv-actions .btn,
  .mini-list strong,
  .feature p,
  .disease span:not(.tag),
  .clinic-hours-table th,
  .clinic-hours-table td,
  .label-op,
  .label-check,
  .subnote,
  .note,
  .faq-item summary,
  .faq-answer p,
  .kv b,
  .kv span,
  .sticky-banner .box strong,
  .sticky-banner .box small,
  .submv p{
    font-size:16px;
    line-height:1.8;
  }

  .section-title.section-title-center p{
    font-size:15px;
    line-height:1.9;
  }

  .mv-actions .btn{
    font-size:16px;
    padding:12px 14px;
  }

  .mv p{
    font-size:16px;
  }

  .mini-list time,
  .submv-kicker,
  .section-title.section-title-center h2 .en,
  .mv-panel-kicker,
  .tag,
  .badge,
  .faq-item summary::before,
  .faq-answer::before{
    font-size:12px;
  }

  .feature h3{
    font-size:20px;
  }

  .disease strong{
    font-size:18px;
  }

  .disease.main strong{
    font-size:20px;
  }

  .faq-item summary{
    font-size:16px;
  }

  .submv h1{
    font-size:26px;
  }
}

/* =========================
   Reserve Guide Page
========================= */

.submv-reserve-guide .submv-bg{
  background-image:url("../images/submv-hour.webp");
}

.reserve-page-intro{
  background:#fff;
  border:var(--block-border);
  border-radius:20px;
  padding:30px;
}

.reserve-page-intro h2{
  margin:0 0 16px;
}

.reserve-page-intro p{
  margin:0 0 14px;
  line-height:1.95;
}

.reserve-page-note{
  margin-top:18px;
  padding:18px 20px;
  border-radius:16px;
  background:#f7fbf4;
  border:1px solid rgba(145,209,118,.30);
}

.reserve-flow-section{
  padding-top:10px;
}

.reserve-method-grid{
  display:grid;
  gap:20px;
}

.reserve-method-card{
  position:relative;
  background:#fff;
  border:var(--block-border);
  border-radius:20px;
  padding:24px 24px 22px;
}

.reserve-method-num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:54px;
  height:36px;
  margin-bottom:14px;
  padding:0 14px;
  border-radius:999px;
  background:#f29600;
  color:#fff;
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
}

.reserve-method-card h3{
  margin:0 0 12px;
  font-size:24px;
}

.reserve-method-card p{
  margin:0 0 12px;
  line-height:1.9;
}

.reserve-method-box{
  margin-top:14px;
  padding:16px 18px;
  border-radius:16px;
  background:#f7fbf4;
  border:1px solid rgba(145,209,118,.28);
}

.reserve-method-box strong{
  display:block;
  margin-bottom:8px;
  color:var(--frame);
}

.reserve-method-box p{
  margin:0;
}

.reserve-hours-card{
  background:#fff;
  border:var(--block-border);
  border-radius:20px;
  padding:24px;
}

.reserve-hours-table{
  width:100%;
  border-collapse:collapse;
}

.reserve-hours-table th,
.reserve-hours-table td{
  padding:16px 14px;
  border-bottom:1px solid rgba(145,209,118,.22);
  text-align:left;
  line-height:1.8;
}

.reserve-hours-table th{
  width:180px;
  font-weight:700;
  color:var(--frame);
}

.reserve-hours-table tr:last-child th,
.reserve-hours-table tr:last-child td{
  border-bottom:none;
}

.reserve-hours-note{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid rgba(145,209,118,.22);
}

.reserve-hours-note p{
  margin:0 0 8px;
  font-size:14px;
  color:var(--muted);
}

.reserve-hours-note p:last-child{
  margin-bottom:0;
}

.reserve-warning-box{
  background:linear-gradient(135deg, #fff7df 0%, #fff1c4 100%);
  border:2px solid #f29600;
  border-radius:22px;
  padding:28px;
}

.reserve-warning-box h2{
  margin:0 0 16px;
}

.reserve-warning-list{
  margin:0;
  padding-left:1.4em;
  line-height:1.95;
}

.reserve-warning-list li + li{
  margin-top:8px;
}

.reserve-cta-card{
  background:#fff;
  border:var(--block-border);
  border-radius:22px;
  padding:28px;
  text-align:center;
}

.reserve-cta-card h2{
  margin:0 0 12px;
}

.reserve-cta-card p{
  margin:0 0 18px;
}

.reserve-cta-actions{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}

.reserve-cta-actions .btn{
  min-width:220px;
}

/* =========================
   Responsive
========================= */

@media (max-width:768px){
  .reserve-page-intro,
  .reserve-method-card,
  .reserve-hours-card,
  .reserve-warning-box,
  .reserve-cta-card{
    padding:20px 18px;
    border-radius:18px;
  }

  .reserve-method-card h3{
    font-size:21px;
  }

  .reserve-hours-table,
  .reserve-hours-table tbody,
  .reserve-hours-table tr,
  .reserve-hours-table th,
  .reserve-hours-table td{
    display:block;
    width:100%;
  }

  .reserve-hours-table tr{
    padding:12px 0;
    border-bottom:1px solid rgba(145,209,118,.22);
  }

  .reserve-hours-table tr:last-child{
    border-bottom:none;
  }

  .reserve-hours-table th,
  .reserve-hours-table td{
    border:none;
    padding:0;
  }

  .reserve-hours-table th{
    margin-bottom:6px;
  }

  .reserve-cta-actions{
    flex-direction:column;
    align-items:stretch;
  }

  .reserve-cta-actions .btn{
    width:100%;
    min-width:0;
  }
}

/* =========================
   Nomura Contact Full Band
========================= */

.nomura-contact-band{
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-bottom: 0;
  overflow: hidden;
  background-image: url("../images/contacts_bg.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.nomura-contact-band::before{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.52);
  z-index: 1;
}

.nomura-contact-band-inner{
  position: relative;
  z-index: 2;
  max-width: 1120px;
  margin: 0 auto;
  padding: 30px 16px;
  text-align: center;
}

.nomura-contact-band h2{
  margin: 0 0 16px;
  font-size: 42px;
  font-weight: 700;
  letter-spacing: .06em;
  color: #111;
}

.nomura-contact-band p{
  margin: 0 0 20px;
  font-size: 18px;
  line-height: 1.8;
  color: #111;
}

@media (max-width: 768px){
  .nomura-contact-band-inner{
    padding: 42px 16px;
  }

  .nomura-contact-band h2{
    font-size: 30px;
    margin-bottom: 14px;
  }

  .nomura-contact-band p{
    font-size: 16px;
    line-height: 1.75;
    margin-bottom: 18px;
  }

  .nomura-contact-band p br{
    display: none;
  }
}

.faq-more-link{
  margin-top:20px;
  text-align:right;
}

.text-link-arrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 14px;
  font-size:16px;
  font-weight:700;
  line-height:1.5;
  color:#4e9a39;
  text-decoration:none;
  background:#f5fbf2;
  border:1px solid rgba(145,209,118,.55);
  border-radius:999px;
  transition:
    color .2s ease,
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.text-link-arrow::after{
  content:"→";
  display:inline-block;
  font-size:15px;
  line-height:1;
  color:#4e9a39;
  transform:translateX(0);
  transition:transform .2s ease;
}

.text-link-arrow:hover{
  color:#3f7f2f;
  background:#edf8e7;
  border-color:#91d176;
  transform:translateY(-1px);
}

.text-link-arrow:hover::after{
  transform:translateX(3px);
}

@media (max-width:768px){
  .faq-more-link{
    text-align:left;
  }

  .text-link-arrow{
    font-size:16px;
    padding:8px 12px;
  }
}
