@charset "utf-8";

/*
  Modern skin (A: Clean & Trust)
  - This file is intended to be loaded AFTER css/style.css.
*/

:root{
  --c-primary:#0EA5A6;
  --c-primary-dark:#0B8C8D;
  --c-accent:#60A5FA;
  --c-text:#0F172A;
  --c-muted:#475569;
  --c-bg:#F8FAFC;
  --c-card:#FFFFFF;
  --c-border:#E2E8F0;
  --c-warn:#F97316;

  --r:16px;
  --shadow:0 8px 24px rgba(15,23,42,.08);

  --container:1200px;
  --gutter:clamp(16px, 2vw, 28px);
  --section:clamp(56px, 7vw, 88px);

  --h1:clamp(28px, 2.6vw, 40px);
  --h2:clamp(22px, 2vw, 28px);
  --h3:clamp(18px, 1.5vw, 20px);
}

/* Base override */
body{
  color:var(--c-text);
  background:var(--c-bg);
  line-height:1.8;
  font-family:"Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

a{ color:inherit; }
a:hover{ color:var(--c-primary-dark); }

/* Layout */
#container{ padding:0; max-width:none; }

.site-wrap{
  max-width:var(--container);
  margin:0 auto;
  padding:0 var(--gutter);
}

.site-main{ padding-bottom:var(--section); }

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(248,250,252,.92);
  backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--c-border);
  height:auto;            /* override legacy header height */
  min-height:0;
  margin:0;               /* override legacy header margins */
  background-image:none;  /* override legacy header bg */
  overflow:visible;
}

/* Legacy fixmenu safety: never offset the modern header */
body.is-fixed header.site-header{ margin-bottom:0 !important; }

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

#logo{ position:static !important; width:auto !important; }
#logo img{ width:220px; height:auto; }

.site-header__meta{
  display:none;
  color:var(--c-muted);
  font-size:13px;
  line-height:1.4;
}

.site-nav{
  display:flex;
  align-items:center;
  gap:18px;
}

.site-nav ul{ margin:0; padding:0; list-style:none; display:flex; align-items:center; gap:4px; }
.site-nav li{ position:relative; }
.site-nav a{
  display:inline-flex;
  align-items:center;
  padding:10px 12px;
  border-radius:999px;
  text-decoration:none;
  color:var(--c-text);
  font-weight:600;
  font-size:14px;
}
.site-nav a:hover{ background:rgba(14,165,166,.08); }

/* dropdown (WP outputs .sub-menu) */
.site-nav .sub-menu{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  min-width:220px;
  background:var(--c-card);
  border:1px solid var(--c-border);
  border-radius:12px;
  box-shadow:var(--shadow);
  padding:8px;
  display:none;
}
.site-nav li:hover > .sub-menu{ display:block; }
.site-nav .sub-menu a{ width:100%; border-radius:10px; justify-content:flex-start; }

.site-header__cta{ display:flex; align-items:center; gap:10px; }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  font-weight:700;
  font-size:14px;
  text-decoration:none;
  border:1px solid transparent;
}
.btn--primary{ background:var(--c-primary); color:#fff; }
.btn--primary:hover{ background:var(--c-primary-dark); color:#fff; }
.btn--outline{ background:transparent; border-color:var(--c-border); color:var(--c-text); }
.btn--outline:hover{ border-color:rgba(14,165,166,.35); background:rgba(14,165,166,.06); }

/* Mobile nav (reuse existing ids) */
#menubar, .nav-fix-pos{ display:none !important; }

/* Header text color fix (prevent legacy white text overrides) */
.site-header,
.site-header a,
.site-header .menu a,
.site-header .site-header__meta,
.site-header .site-header__meta *{
  color:var(--c-text) !important;
}
.site-header a:hover,
.site-header .menu a:hover{
  color:var(--c-primary-dark) !important;
}
.site-header .current-menu-item > a,
.site-header .current_page_item > a{
  color:var(--c-primary-dark) !important;
}

@media (max-width: 960px){
  .site-nav{ display:none; }
  .site-header__meta{ display:none; }
  #menubar_hdr{ display:inline-flex; }


  /* Footer overflow safeguard */
  .footer-min__schedule{ overflow-x:auto; overflow-y:hidden; }
  .footer-min__table{ max-width:100%; }
}
/* Hero */
.hero{
  padding:clamp(28px, 3.6vw, 44px) 0;
  background:linear-gradient(180deg, rgba(14,165,166,.10), rgba(248,250,252,0));
}
.hero__grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:24px;
  align-items:stretch;
}

.hero__card{
  background:var(--c-card);
  border:1px solid var(--c-border);
  border-radius:var(--r);
  box-shadow:var(--shadow);
  overflow:hidden;
}

.hero__media{
  min-height:260px;
  background-size:cover;
  background-position:center;
}

.hero__content{ padding:22px; }
.hero__title{ font-size:var(--h1); line-height:1.25; letter-spacing:-.02em; }
.hero__lead{ margin-top:10px; color:var(--c-muted); }
.hero__actions{ margin-top:16px; display:flex; gap:10px; flex-wrap:wrap; }
.hero__badges{ margin-top:14px; display:flex; gap:8px; flex-wrap:wrap; }
.badge{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(14,165,166,.10);
  color:var(--c-primary-dark);
  font-weight:700;
  font-size:13px;
}

@media (max-width: 960px){
  .hero__grid{ grid-template-columns: 1fr; }
  .hero__media{ min-height:220px; }
}

/* Sections */
.section{ padding:var(--section) 0 0; }
.section__title{ font-size:var(--h2); line-height:1.3; }
.section__lead{ margin-top:8px; color:var(--c-muted); max-width:70ch; }

/* Section header with CTA (top-right button) */
.section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:14px; }
.section-head__cta{ flex:0 0 auto; }
.btn--sm{ padding:8px 12px; font-size:13px; }

/* Staff teaser (home) */
.staff-teaser{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap:16px;
  margin-top:18px;
  align-items:start;
}
.profile-card,
.staff-card{
  background:var(--c-card);
  border:1px solid var(--c-border);
  border-radius:var(--r);
  box-shadow:var(--shadow);
}

.profile-card{ overflow:hidden; display:flex; min-height:320px; }
.profile-card__media{ flex:0 0 44%; background:rgba(15,23,42,.02); display:flex; }
/* Default media images (non-avatar) */
.profile-card__media:not(.profile-card__media--avatar) img{ width:100%; height:100%; object-fit:contain; display:block; background:#fff; }

/* Avatar image should stay perfectly circular (esp. mobile) */
.profile-card__media--avatar .profile-card__avatar{
  width:clamp(160px, 18vw, 240px);
  height:auto;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:9999px;
}

/* Home: director photo as circular avatar */
.profile-card__media--avatar{
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(15,23,42,.02);
}
.profile-card__avatar{
  width:clamp(160px, 18vw, 240px);
  aspect-ratio:1/1;
  height:auto;
  object-fit:cover;
  border-radius:9999px;
  border:0;
  box-shadow:0 14px 30px rgba(15,23,42,.14);
  background:#fff;
}
.profile-card__body{ padding:18px; display:flex; flex-direction:column; gap:10px; }
.profile-card__title{ font-size:clamp(18px, 1.6vw, 22px); line-height:1.35; letter-spacing:-.01em; margin:0; }
.profile-card__text{ margin:0; color:var(--c-muted); }
.profile-card__actions{ margin-top:6px; display:flex; gap:10px; flex-wrap:wrap; }

.pill{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(15,23,42,.04);
  color:var(--c-text);
  font-weight:800;
  font-size:13px;
}

.staff-card{ padding:18px; }
.staff-card__top{ display:flex; gap:12px; align-items:flex-start; }
.avatar{ width:56px; height:56px; border-radius:999px; overflow:hidden; border:1px solid var(--c-border); flex:0 0 auto; background:#fff; }
.avatar img{ width:100%; height:100%; object-fit:cover; display:block; }
.staff-card__title{ font-weight:900; }
.staff-card__text{ margin-top:6px; color:var(--c-muted); font-size:14px; }
.chips{ list-style:none; padding:0; margin:12px 0 0; display:flex; flex-wrap:wrap; gap:8px; }
.chips li{ padding:6px 10px; border-radius:999px; background:rgba(14,165,166,.10); color:var(--c-primary-dark); font-weight:800; font-size:13px; }
.staff-card__links{ margin-top:12px; display:flex; gap:14px; flex-wrap:wrap; }
.text-link{ text-decoration:none; color:var(--c-text); font-weight:800; border-bottom:1px solid rgba(14,165,166,.35); padding-bottom:2px; }
.text-link:hover{ color:var(--c-primary-dark); border-bottom-color:rgba(14,165,166,.65); }

@media (max-width: 960px){
  .section-head{ align-items:flex-start; flex-direction:column; }
  .staff-teaser{ grid-template-columns:1fr; }
  .profile-card{ min-height:0; }
  .profile-card__media{ flex-basis:46%; }
}

.grid{
  display:grid;
  gap:16px;
  margin-top:18px;
  /* Prevent right cards from stretching to the tallest card (removes awkward blank space) */
  align-items:start;
}
.grid--3{ grid-template-columns:repeat(3, 1fr); }
.grid--4{ grid-template-columns:repeat(4, 1fr); }
.grid--2{ grid-template-columns:repeat(2, 1fr); }
.grid--1{ grid-template-columns:1fr; }

@media (max-width: 960px){
  .grid--3, .grid--4{ grid-template-columns:1fr; }
  .grid--2{ grid-template-columns:1fr; }
}

.card{
  background:var(--c-card);
  border:1px solid var(--c-border);
  border-radius:var(--r);
  box-shadow:var(--shadow);
  padding:18px;
}
.card--link{ padding:0; overflow:hidden; }
.card--link a{ display:block; text-decoration:none; }
.card__media{ aspect-ratio: 16 / 10; width:100%; object-fit:cover; display:block; }
/* Portrait photos (doctor/staff) should not be cropped */
.card__media--portrait{
  aspect-ratio: 4 / 5;
  object-fit: contain;
  background:#fff;
}

/* Staff page: make all three photos the same visual ratio (allow cropping) */
.staff-grid .card__media--portrait{
  object-fit: cover;
}
.card__body{ padding:16px; }
.card__title{ font-size:var(--h3); line-height:1.35; font-weight:800; }
.card__text{ margin-top:8px; color:var(--c-muted); }
.card__meta{ margin-top:10px; font-size:13px; color:var(--c-muted); }

.kv{
  display:flex;
  align-items:flex-start;
  gap:12px;
}
.kv__icon{
  width:40px;
  height:40px;
  border-radius:12px;
  background:rgba(96,165,250,.14);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#1D4ED8;
  font-weight:900;
  font-size:18px;
}
.kv__title{ font-weight:800; }
.kv__text{ color:var(--c-muted); margin-top:4px; font-size:14px; }

.steps{ list-style:none; margin:18px 0 0; padding:0; display:grid; gap:12px; }
.steps li{
  display:flex;
  gap:12px;
  padding:14px 16px;
  background:var(--c-card);
  border:1px solid var(--c-border);
  border-radius:var(--r);
  box-shadow:var(--shadow);
}
.steps .num{
  width:34px;
  height:34px;
  border-radius:999px;
  background:rgba(14,165,166,.12);
  color:var(--c-primary-dark);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
}

.news{
  margin-top:18px;
  display:grid;
  gap:12px;
}
.news a{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:14px 16px;
  background:var(--c-card);
  border:1px solid var(--c-border);
  border-radius:var(--r);
  box-shadow:var(--shadow);
  text-decoration:none;
}
.news__date{ min-width:110px; color:var(--c-muted); font-size:13px; }
.news__title{ font-weight:800; }
.news__excerpt{ color:var(--c-muted); margin-top:4px; font-size:13px; }

/* Footer */
footer{ background:transparent; }
.site-footer{
  overflow-x:visible;

  border-top:1px solid var(--c-border);
  padding:var(--section) 0 24px;
}
.site-footer__grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:18px;
}
.site-footer h2{ font-size:18px; margin-bottom:10px; }
.site-footer .ta2{ border:1px solid var(--c-border); border-radius:var(--r); overflow:hidden; }
.site-footer .ta2 th, .site-footer .ta2 td{ border:1px solid var(--c-border); padding:10px; text-align:center; }

#copyright{
  text-align:center;
  padding-top:18px;
  color:var(--c-muted);
}
#copyright img{ width:220px; }

@media (max-width: 960px){
  .site-footer__grid{ grid-template-columns:1fr; }
}

/* Mobile fixed CTA */
.mobile-cta{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:1100;
  display:none;
  padding:10px var(--gutter);
  background:rgba(248,250,252,.92);
  backdrop-filter:saturate(160%) blur(10px);
  border-top:1px solid var(--c-border);
}
.mobile-cta__inner{ max-width:var(--container); margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:10px; }

@media (max-width: 960px){
  .mobile-cta{ display:block; }
  body{ padding-bottom:76px; }
}

/* Mobile menu toggle + panel (openclose.js) */
#menubar_hdr{
  display:none;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid var(--c-border);
  background:var(--c-card);
  box-shadow:var(--shadow);
  position:relative;
}
#menubar_hdr::before, #menubar_hdr::after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  height:2px;
  background:var(--c-text);
  border-radius:2px;
}
#menubar_hdr::before{ top:16px; }
#menubar_hdr::after{ top:26px; }
#menubar_hdr.open::before{ top:21px; transform:rotate(45deg); }
#menubar_hdr.open::after{ top:21px; transform:rotate(-45deg); }

#menubar-s{
  display:none; /* default closed */
  background:var(--c-card);
  border-top:1px solid var(--c-border);
  /* override legacy mobile menu (which is fixed/fullscreen) */
  position:static;
  top:auto;
  left:auto;
  width:auto;
  overflow:visible;
  z-index:auto;
  animation:none;
}
#menubar-s .menu{
  margin:0;
  padding:12px 0;
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:4px;
}
#menubar-s a{
  display:block;
  padding:12px 14px;
  border-radius:12px;
  text-decoration:none;
  font-weight:700;
}
#menubar-s a:hover{ background:rgba(14,165,166,.08); }

/* Harmonize legacy mobile menu colors */
#menubar_hdr.close,
#menubar_hdr.open{
  background:rgba(255,255,255,.96) !important;
  border:1px solid rgba(14,165,166,.35) !important;
  background-image:none !important;
}
#menubar_hdr::before,
#menubar_hdr::after{
  background:var(--c-primary-dark);
}
#menubar-s{
  background:rgba(255,255,255,.98) !important;
  border-top:1px solid var(--c-border) !important;
}
#menubar-s li a{
  background:transparent !important;
  color:var(--c-text) !important;
  border-bottom:1px solid var(--c-border) !important;
}
#menubar-s li a:hover{
  background:rgba(14,165,166,.08) !important;
}
#menubar-s li a span{
  color:var(--c-muted) !important;
}

@media (max-width: 960px){
  #menubar_hdr{ display:inline-flex; align-items:center; justify-content:center; }
  /* closed by default; openclose.js toggles display inline */
  #menubar-s{ display:none; }
}

/* WP admin bar offset (when logged in) */
.admin-bar .site-header{ top:32px; }
@media (max-width: 782px){
  .admin-bar .site-header{ top:46px; }
}

/* utilities */
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:normal;
  border:0;
}

@media (max-width: 960px){
  .site-header__cta{ display:none; }
}

/* Legacy page layout harmonize */
#contents{ padding:24px 0 0; }
#contents #main, #contents #sub, #contents .inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 var(--gutter);
}
#contents .nav{
  max-width:var(--container);
  margin:0 auto;
  padding:0 var(--gutter);
  color:var(--c-muted);
  display:flex;
  gap:10px;
  font-size:13px;
}
#contents h2{ font-size:var(--h2); line-height:1.3; margin:14px 0 14px; }
#contents h3{ font-size:var(--h3); margin:18px 0 10px; }
#contents section{ margin-top:24px; }

/* Make legacy "list" cards look modern */
.list{ background:var(--c-card); border:1px solid var(--c-border); border-radius:var(--r); box-shadow:var(--shadow); }
.list a{ text-decoration:none; display:block; }
.list figure{ margin:0; }
.list h4{ padding:10px 16px 0; font-size:var(--h3); }
.list p{ padding:8px 16px 16px; color:var(--c-muted); }

/* --------------------------------------------------
   Page (Lower pages) — unified with top
-------------------------------------------------- */

.breadcrumb{
  margin:0 0 18px;
  padding:0;
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  color:var(--c-muted);
  font-size:13px;
}
.breadcrumb li{ display:inline-flex; align-items:center; }
.breadcrumb li+li::before{
  content:"/";
  margin-right:8px;
  color:rgba(71,85,105,.7);
}
.breadcrumb a{ text-decoration:none; }
.breadcrumb a:hover{ text-decoration:underline; }

.page-header{ margin-bottom:18px; }
.page-title{ font-size:var(--h1); line-height:1.25; margin:0 0 8px; }
.page-lead{ color:var(--c-muted); margin:0; }

.pills{
  margin:20px 0 26px;
  padding:0;
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.pills a{
  display:inline-flex;
  align-items:center;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid var(--c-border);
  background:var(--c-card);
  text-decoration:none;
  font-weight:700;
  font-size:14px;
}
.pills a:hover{ border-color:rgba(14,165,166,.35); background:rgba(14,165,166,.06); }
.pills .is-current a{
  border-color:rgba(14,165,166,.35);
  background:rgba(14,165,166,.10);
  color:var(--c-primary-dark);
}

.content-card{
  background:var(--c-card);
  border:1px solid var(--c-border);
  border-radius:var(--r);
  box-shadow:var(--shadow);
  padding:clamp(18px, 2vw, 30px);
}

.media-split{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap:18px;
  align-items:start;
}
.media-split img{
  width:100%;
  height:auto;
  border-radius:var(--r);
  border:1px solid var(--c-border);
}
@media (max-width: 960px){
  .media-split{ grid-template-columns:1fr; }
}

.prose h2, .prose h3{
  margin:0 0 10px;
  line-height:1.35;
}
.prose h2{ font-size:var(--h2); }
.prose h3{ font-size:var(--h3); }
.prose p{ margin:0 0 14px; }
.prose ul{ margin:0 0 14px 1.2em; }

.callout{
  padding:14px 16px;
  border-radius:var(--r);
  border:1px solid rgba(14,165,166,.20);
  background:rgba(14,165,166,.06);
}

.callout__line{ margin:0; }
.callout__line--muted{ margin-top:6px; color:var(--c-muted); font-size:13px; }

/* Map frame (demo image) */
.map-frame{
  border-radius:var(--r);
  overflow:hidden;
  border:1px solid var(--c-border);
  background:#fff;
}
.map-img{
  display:block;
  width:100%;
  height:auto;
  max-height:420px;
  object-fit:contain;
}
.map-note{
  margin-top:10px;
  font-size:13px;
  color:var(--c-muted);
}

/* Legacy table skin (for access/contact) */
.ta1{
  width:100%;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border-radius:var(--r);
  border:1px solid var(--c-border);
  background:var(--c-card);
  box-shadow:var(--shadow);
}

/* Avoid double shadow when table is inside .content-card */
.content-card .ta1{ box-shadow:none; }

/* Override legacy style.css table borders */
.ta1, .ta1 td, .ta1 th{
  border:none;
}
.ta1 th, .ta1 td{
  border-bottom:1px solid var(--c-border);
  padding:14px 16px;
  vertical-align:top;
}
.ta1 tr:last-child th, .ta1 tr:last-child td{ border-bottom:none; }
.ta1 th{
  width:180px;
  background:rgba(15,23,42,.03);
  color:var(--c-text);
  font-weight:800;
}
@media (max-width: 960px){
  .ta1 th{ width:auto; display:block; border-bottom:none; }
  .ta1 td{ display:block; }
}

/* Form controls inside legacy tables */
.ta1 input[type="text"],
.ta1 input[type="email"],
.ta1 input[type="tel"],
.ta1 input[type="date"],
.ta1 select,
.ta1 textarea{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid var(--c-border);
  background:#fff;
  color:var(--c-text);
  font:inherit;
  line-height:1.4;
}
.ta1 textarea{ resize:vertical; }
.ta1 input:focus,
.ta1 select:focus,
.ta1 textarea:focus{
  outline:none;
  border-color:rgba(14,165,166,.55);
  box-shadow:0 0 0 4px rgba(14,165,166,.14);
}

/* --------------------------------------------------
   Footer — slimmer
-------------------------------------------------- */
.site-footer{
  padding:calc(var(--section) * .75) 0 22px;
  background:
    radial-gradient(800px 220px at 20% 0%, rgba(14,165,166,.10), transparent 60%),
    radial-gradient(700px 240px at 80% 10%, rgba(96,165,250,.08), transparent 55%),
    linear-gradient(180deg, rgba(248,250,252,1) 0%, rgba(255,255,255,1) 100%);
  border-top:1px solid var(--c-border);
  position:relative;
}

.site-footer::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}
.site-footer__top{
  display:grid;
  grid-template-columns: 1.4fr .8fr .9fr;
  gap:22px;
  align-items:start;
}
.footer-logo img{ width:220px; height:auto; }
.footer-desc{ color:var(--c-muted); margin:12px 0 14px; }
.footer-meta{ color:var(--c-muted); font-size:13px; display:grid; gap:8px; }
.footer-meta > div{ display:flex; align-items:flex-start; gap:10px; }
.footer-meta > div::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  margin-top:6px;
  background:rgba(14,165,166,.35);
  flex:0 0 auto;
}
.footer-meta a{ color:var(--c-text); text-decoration:none; }
.footer-meta a:hover{ text-decoration:underline; }

.footer-title{ font-size:16px; margin:0 0 10px; }
.footer-nav ul{ list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.footer-nav a{ text-decoration:none; color:var(--c-text); }
.footer-nav a:hover{ text-decoration:underline; color:var(--c-primary-dark); }

.hours-card{
  border:1px solid var(--c-border);
  border-radius:var(--r);
  background:rgba(255,255,255,.92);
  padding:14px 16px;
  box-shadow:0 10px 30px rgba(15,23,42,.06);
}
.hours-row{ display:flex; justify-content:space-between; gap:10px; font-weight:700; }
.hours-row span:first-child{ color:var(--c-muted); font-weight:800; }
.hours-note{ margin-top:8px; color:var(--c-muted); font-size:13px; }
.footer-cta{ margin-top:12px; display:flex; gap:10px; flex-wrap:wrap; }

.site-footer__bottom{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--c-border);
  text-align:center;
  color:var(--c-muted);
  font-size:13px;
}

@media (max-width: 960px){
  .site-footer__top{ grid-template-columns:1fr; }
  .footer-logo img{ width:200px; }
}

/* Form controls */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"],
select,
textarea{
  width:100%;
  max-width:100%;
  border:1px solid var(--c-border);
  border-radius:12px;
  padding:10px 12px;
  background:var(--c-card);
  color:var(--c-text);
}
textarea{ resize:vertical; }
input:focus, select:focus, textarea:focus{
  outline:none;
  border-color:rgba(14,165,166,.6);
  box-shadow:0 0 0 4px rgba(14,165,166,.12);
}



/* ------------------------------
   Footer (minimal)
------------------------------ */
.footer-min{
  display:grid;
  gap:14px;
  padding:22px 0 0;
  color:var(--c-text);
}

/* 2-column footer layout (PC)
   Left: hours + table
   Right: links + reservation buttons */
.footer-min__grid{
  display:grid;
  /* Keep the same 2-column balance as the top page (.grid--2) */
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
  align-items:start;
}
.footer-min__grid > *{ min-width:0; }
.footer-min__left{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:18px;
  box-sizing:border-box;
  background:rgba(255,255,255,.70);
  border:1px solid rgba(148,163,184,.45);
  border-radius:18px;
  box-shadow:0 16px 40px rgba(15,23,42,.08);
}
.footer-min__right{
  display:flex;
  flex-direction:column;
  gap:14px;
  align-items:stretch;
  justify-content:space-between;
  padding:18px;
  box-sizing:border-box;
  background:rgba(255,255,255,.70);
  border:1px solid rgba(148,163,184,.45);
  border-radius:18px;
  box-shadow:0 16px 40px rgba(15,23,42,.08);
  min-width:0;
}

.footer-min__toprow{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:22px;
}
.footer-min__brand{ min-width:0; }
.footer-min__meta{ margin-top:10px; display:grid; gap:6px; color:var(--c-muted); font-size:13px; }
.footer-min__meta a{ color:var(--c-text); text-decoration:none; }
.footer-min__meta a:hover{ text-decoration:underline; }

.footer-min__nav{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px 12px;
  padding-top:0;
}
.footer-min__nav a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(148,163,184,.35);
  background:rgba(255,255,255,.85);
  color:var(--c-text);
  text-decoration:none;
  font-size:13px;
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
  white-space:normal;
}
.footer-min__nav a::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  background:rgba(14,165,166,.95);
  flex:0 0 auto;
}
.footer-min__nav a:hover{
  background:rgba(14,165,166,.08);
  border-color:rgba(14,165,166,.45);
  color:var(--c-primary-dark);
  text-decoration:none;
}

.footer-min__cta{
  padding-top:10px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  justify-content:flex-start;
  flex:0 0 auto;
}

.footer-min__cta a{
  flex:1 1 160px;
  min-width:0;
}

@media (max-width: 420px){
  .footer-min__cta a{ flex-basis:100%; }
  .footer-min__table th,
  .footer-min__table td{
    padding:8px 6px;
    font-size:12px;
  }
}


/* Footer CTA: keep phone button readable on hover */
.site-footer .footer-min__cta .btn--outline:hover,
.site-footer .footer-min__cta .btn--outline:focus-visible{
  background:rgba(14,165,166,.10);
  border-color:rgba(14,165,166,.55);
  color:var(--c-primary-dark) !important;
}
.footer-min__schedule{ max-width:100%; width:100%; }

.footer-hoursline{ color:var(--c-text); font-weight:900; }
.footer-hours{ margin-top:10px; }
.hours-scroll{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.hours-table{
  width:100%;
  max-width:100%;
  min-width:0;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:0;
  border:1px solid var(--c-border);
  border-radius:14px;
  overflow:hidden;
  background:rgba(255,255,255,.88);
}
.hours-table th,
.hours-table td{
  padding:8px 10px;
  border-right:1px solid var(--c-border);
  border-bottom:1px solid var(--c-border);
  font-size:13px;
  white-space:normal;
  text-align:center;
  color:var(--c-text);
}
.hours-table thead th{ background:rgba(15,23,42,.10); font-weight:900; color:var(--c-text); font-size:13px; }
.hours-table tbody th{ background:rgba(15,23,42,.03); font-weight:900; }
.hours-table th:first-child{ text-align:center; }
.hours-table tr:last-child th,
.hours-table tr:last-child td{ border-bottom:none; }
.hours-table th:last-child,
.hours-table td:last-child{ border-right:none; }
.hours-table .is-off{ background:rgba(249,115,22,.10); color:var(--c-warn); font-weight:900; }
.hours-table .is-on{ background:rgba(14,165,166,.06); }
.hours-table .mark{ display:inline-block; font-weight:900; font-size:14px; line-height:1; }
.hours-table .mark--ok{ color:var(--c-primary-dark); }
.hours-table .mark--ng{ color:var(--c-warn); }
.hours-note{ margin-top:8px; color:var(--c-muted); font-size:13px; }

/* Footer link hover fix (prevent legacy CSS turning links white) */
.site-footer a:not(.btn):hover{ color:var(--c-primary-dark) !important; }

/* Footer bottom: keep copyright readable */
.site-footer .site-footer__bottom,
.site-footer .site-footer__bottom small{
  color:var(--c-muted) !important;
}
.site-footer .site-footer__bottom a{
  color:var(--c-text) !important;
  text-decoration:none;
}
.site-footer .site-footer__bottom a:hover{
  color:var(--c-primary-dark) !important;
  text-decoration:underline;
}




@media (max-width: 960px){
  .footer-min__grid{ grid-template-columns:1fr; }
  .footer-min__nav{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .footer-min__cta{ justify-content:flex-start; }
}

@media (max-width: 560px){
  .footer-min__nav{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .hours-table{ min-width:0; width:100%; }
}

/* ------------------------------
   Back to top button
------------------------------ */
body .nav-fix-pos-pagetop a{
  position:fixed;
  right:18px;
  bottom:18px;
  width:52px;
  height:52px;
  border-radius:999px;
  /* Note: legacy style.css toggles display via body.is-fixed-pagetop */
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  font-weight:900;
  line-height:1;
  background:rgba(255,255,255,.95);
  border:1px solid rgba(14,165,166,.35);
  color:var(--c-primary-dark);
  box-shadow:0 14px 40px rgba(15,23,42,.16);
  opacity:0;
  transform:translateY(8px);
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}
/* Override legacy style.css (which sets a blue circle) */
body.is-fixed-pagetop .nav-fix-pos-pagetop a{
  display:flex;
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
  right:18px;
  bottom:18px;
  width:52px;
  height:52px;
  line-height:1;
  background:rgba(255,255,255,.95);
  border:1px solid rgba(14,165,166,.35);
  color:var(--c-primary-dark);
  box-shadow:0 14px 40px rgba(15,23,42,.16);
  border-radius:999px;
}
body .nav-fix-pos-pagetop a:hover{
  background:var(--c-primary);
  border-color:rgba(14,165,166,.65);
  color:#fff;
}

/* ------------------------------
   Legacy mobile menu color harmonize
------------------------------ */
#menubar_hdr,
#menubar_hdr.close,
#menubar_hdr.open{
  border-color:rgba(14,165,166,.35) !important;
  background:rgba(255,255,255,.96) !important;
  background-image:none !important;
}
#menubar_hdr::before,
#menubar_hdr::after{
  background:var(--c-primary-dark) !important;
}
#menubar-s{
  background:rgba(255,255,255,.98) !important;
}
#menubar-s li a{
  background:transparent !important;
  color:var(--c-text) !important;
  border-bottom:1px solid var(--c-border) !important;
}
#menubar-s li a:hover{
  background:rgba(14,165,166,.08) !important;
}
#menubar-s li a span{
  color:var(--c-muted) !important;
}

/* ==============================
   v13 tweaks
   - Mobile hamburger top-right
   - Footer blocks same width
============================== */

@media (max-width: 960px){
  .site-header__inner{
    position:relative;
    padding-right:56px; /* room for hamburger */
    flex-wrap:nowrap;
    align-items:center;
  }
  /* mobile header: logo left, hide schedule/meta */
  .site-header__meta{ display:none !important; }
  #logo{ margin-right:auto; }
  /* Override legacy header #logo rules on small screens */
  header.site-header #logo{
    width:auto !important;
    max-width:none;
    margin:0;
    margin-right:auto;
    justify-content:flex-start;
  }
  #logo img{ width:180px; }

  #menubar_hdr{
    position:absolute;
    top:50%;
    right:0;
    transform:translateY(-50%);
    margin:0;
  }
  /* Header CTAs are duplicated as a fixed bar on mobile */
  .site-header__cta{ display:none; }
}

/* Footer: make left/right blocks visually and dimensionally consistent */
.footer-min__left{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:18px;
  background:rgba(255,255,255,.70);
  border:1px solid rgba(148,163,184,.45);
  border-radius:18px;
  box-shadow:0 16px 40px rgba(15,23,42,.08);
}

/* Table should follow container width (keep horizontal scroll for small screens) */
.hours-table{
  max-width:100%;
}

@media (max-width: 960px){
  .footer-min__left,
  .footer-min__right{
    width:100%;
    max-width:none;
    margin-left:0;
    margin-right:0;
  }
}

/* Ensure 100% width cards don't overflow due to the default content-box sizing */
.footer-min__left,
.footer-min__right{
  box-sizing:border-box;
}

/* === v15: Mobile hamburger vertical centering in header === */
@media (max-width: 960px){
  /* Ensure the header is the positioning context */
  .site-header{ position: relative; }

  /* Put the hamburger on the right and vertically center it */
  #menubar_hdr{
    position: absolute !important;
    right: 16px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
  }
}

/* === v18: Align spacing between Reasons cards and First-visit steps === */
@media (max-width: 960px){
  .reasons .grid{
    gap:12px;
    margin-top:14px;
  }
}

/* === v18: Prevent footer timetable from overflowing on small screens === */
@media (max-width: 560px){
  .hours-scroll{ overflow-x:auto; }
  .hours-table{ width:100%; min-width:0; }
  .hours-table th, .hours-table td{ padding:7px 6px; }
}
