@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;800&display=swap');

:root{
  --bg:#f3f1eb;
  --bg-soft:#f3f1eb;
  --beige:#eae7df;
  --card:#ffffff;
  --line:#e7e1d9;
  --text:#2c3736;
  --muted:#6b7573;
  --green:#2f8b84;
  --green-dark:#223533;
  --shadow:0 12px 28px rgba(12,61,59,.05);
  --radius:18px;
  --container:1120px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP", system-ui, sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.72;
  font-size:16px;
  letter-spacing:.01em;
}
body.menu-open{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}
.container{width:min(calc(100% - 56px), var(--container)); margin-inline:auto}

.site-header{
  position:sticky;
  top:0;
  z-index:30;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(232,228,222,.92);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:86px;
  padding:10px 0 9px;
}
.header-logo{
  width:auto;
  height:56px;
  max-width:none;
}
.header-meta{
  display:flex;
  align-items:center;
  gap:28px;
  margin-left:auto;
}
.header-contact{ text-align:right; }
.header-label{
  margin:0 0 2px;
  font-size:11px;
  color:var(--muted);
}
.header-tel{
  font-size:24px;
  line-height:1.1;
  color:var(--green-dark);
  font-weight:800;
}
.header-hours{
  margin:4px 0 0;
  font-size:11px;
  color:var(--muted);
}
.header-actions{display:flex; gap:10px}
.global-nav{
  border-top:1px solid rgba(232,228,222,.75);
  background:rgba(255,255,255,.96);
}
.nav-list{
  display:flex;
  gap:34px;
  font-size:13px;
  font-weight:500;
  color:#6b7673;
  padding:11px 0 10px;
}
.nav-list a:hover{color:var(--green)}

.menu-toggle{
  display:none;
  width:46px;height:46px;border:1px solid var(--line);background:#fff;border-radius:12px;
  align-items:center;justify-content:center;flex-direction:column;gap:5px;
  position:relative;z-index:42;
}
.menu-toggle span{display:block;width:18px;height:2px;background:var(--green-dark);border-radius:2px;transition:.24s ease}
.menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle.is-open span:nth-child(2){opacity:0}
.menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:64px;
  padding:16px 26px;
  border-radius:15px;
  border:1.5px solid var(--green);
  font-weight:700;
  font-size:16px;
  transition:.25s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{
  background:var(--green);
  color:#fff;
  box-shadow:var(--shadow);
}
.btn-outline{
  background:#fff;
  color:var(--green);
}
.btn-small{min-height:42px;padding:9px 18px;border-radius:12px;font-size:14px}
.btn-full{width:100%}
.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:0 0 24px}
.btn-icon svg{width:24px;height:24px;display:block}

.video-strip{
  padding:34px 0 54px;
  background:var(--bg-soft);
}
.video-embed-card{
  width:min(100%, 1000px);
  margin:0 auto;
  border-radius:24px;
  overflow:hidden;
}
.video-embed{
  position:relative;
  width:100%;
  aspect-ratio:16 / 9;
  background:#dfe3e1;
}
.video-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  display:block;
}

.section-soft{padding:10px 0 84px;background:var(--bg-soft)}
.section-beige{padding:94px 0;background:var(--beige)}

.hero-grid{
  display:grid;
  grid-template-columns:492px 540px;
  justify-content:space-between;
  gap:40px;
  align-items:start;
}
.hero-copy{padding-top:76px}
.eyebrow{
  display:inline-block;
  margin:0 0 24px;
  color:var(--green);
  font-size:12px;
  font-weight:700;
  padding:7px 14px;
  border-radius:999px;
  background:#edf5f3;
}
.hero h1{
  margin:0;
  font-size:60px;
  line-height:1.08;
  letter-spacing:.005em;
  color:#233230;
  font-weight:800;
}
.hero-lead{
  margin:28px 0 34px;
  color:var(--muted);
  font-size:17px;
  line-height:1.9;
}
.hero-buttons{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  max-width:548px;
}
.hero-notes{
  margin:18px 0 0;
  padding:0;
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  color:var(--muted);
  font-size:13px;
}
.hero-notes li::before{
  content:"▣";
  color:var(--green);
  margin-right:8px;
  font-size:10px;
}
.hero-photo-card,
.hours-card,
.mini-card,
.service-card,
.guide-panel,
.map-card,
.access-card,
.news-item{
  background:var(--card);
  border:1px solid rgba(232,228,222,.95);
  border-radius:var(--radius);
}
.hero-photo-card{
  overflow:hidden;
  padding:12px;
}
.hero-photo-card img{border-radius:14px; width:100%; aspect-ratio: 16/10; object-fit:cover}
.hours-card{
  margin-top:16px;
  padding:24px 26px 18px;
}
.hours-card h2{
  margin:0 0 14px;
  font-size:28px;
  line-height:1.35;
  font-weight:800;
}
.hours-card table{width:100%; border-collapse:collapse; font-size:16px}
.hours-card th, .hours-card td{
  padding:14px 0;
  border-bottom:1px solid var(--line);
  text-align:left;
}
.hours-card th:last-child, .hours-card td:last-child{text-align:right}
.hours-card thead th{font-size:13px; color:var(--muted); font-weight:600}
.hours-card tbody td{font-weight:700}
.hours-card tbody td:last-child{font-weight:500}
.hours-note{margin:12px 0 0; font-size:12px; color:var(--muted)}

.precheck{
  padding:96px 0 94px;
  background:#fff;
}
.section-title{
  margin:0;
  text-align:center;
  font-size:62px;
  line-height:1.15;
  color:#233230;
  font-weight:800;
  letter-spacing:.01em;
}
.section-title-left{
  text-align:left;
}
.precheck .section-title-left{
  display:flex;
  align-items:center;
  gap:18px;
  margin-bottom:34px;
  font-size:36px;
  line-height:1.22;
  font-weight:800;
}
.precheck .section-title-left::before{
  content:"";
  width:7px;
  height:46px;
  border-radius:999px;
  background:#2a8a84;
  flex:0 0 7px;
}

.section-lead{
  margin:20px 0 42px;
  text-align:center;
  color:var(--muted);
  font-size:18px;
  line-height:1.75;
  font-weight:500;
}

.mini-card-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:24px;
}
.mini-card{
  padding:30px 28px 26px;
  min-height:278px;
  border-radius:20px;
}
.mini-card-head{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:24px;
}
.mini-icon{
  width:58px;
  height:58px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 58px;
}
.mini-icon svg{width:24px;height:24px}
.mini-icon-orange{background:#fbf2e6;color:#f08a32}
.mini-icon-pink{background:#fdeef1;color:#f0677a}
.mini-icon-green{background:#eef8f6;color:#5c9e96}
.mini-icon-blue{background:#eef8f7;color:#4f9188}
.tag{
  display:inline-flex;
  align-items:center;
  height:34px;
  padding:0 16px;
  border-radius:999px;
  font-size:14px;
  font-weight:700;
}
.tag-orange{background:#fde7c8;color:#e38b37}
.tag-pink{background:#f9dce4;color:#eb667d}
.tag-green{background:#d8f0ea;color:#419c87}
.tag-blue{background:#d6edf2;color:#4a8fa2}
.mini-card h3{
  margin:0 0 14px;
  font-size:18px;
  line-height:1.4;
  font-weight:800;
  letter-spacing:.01em;
}
.mini-card p{
  margin:0;
  color:#697775;
  font-size:14px;
  line-height:1.8;
  font-weight:500;
}

.first-visit .container,
.access-section .container,
.news .container{
  max-width:1088px;
}
.first-visit{
  padding:94px 0 96px;
}
.service-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:38px 36px;
}
.service-card{
  padding:34px 36px 30px;
  min-height:332px;
  border-radius:22px;
}
.service-icon{
  width:76px;height:76px;border-radius:20px;background:var(--green);color:#fff;
  display:flex;align-items:center;justify-content:center;margin-bottom:30px;
}
.service-icon svg{width:34px;height:34px}
.service-card h3{
  margin:0 0 16px;
  font-size:21px;
  line-height:1.4;
  font-weight:800;
}
.service-card p{
  margin:0 0 26px;
  color:var(--muted);
  font-size:16px;
  line-height:1.8;
  min-height:86px;
}
.service-card a{
  color:var(--green);
  font-weight:700;
  font-size:15px;
}

.medical-guide{
  padding:94px 0 98px;
}
.medical-guide .container{max-width:1088px}
.pill-switch{
  display:flex;
  justify-content:center;
  gap:0;
  width:max-content;
  margin:0 auto 44px;
  padding:6px;
  border-radius:999px;
  background:#eff0ed;
}
.pill{
  border:1px solid transparent;
  background:transparent;
  color:#647675;
  padding:0 42px;
  border-radius:999px;
  cursor:pointer;
  min-height:58px;
  min-width:200px;
  font-size:18px;
  font-weight:700;
  letter-spacing:.01em;
  transition:.25s ease;
}
.pill:hover{color:var(--green)}
.pill.is-active{
  background:#fff;
  color:var(--green);
  border-color:#e8ece8;
  box-shadow:0 4px 12px rgba(23, 79, 75, .08);
}
.guide-panel{
  padding:36px 36px 32px;
  border-radius:22px;
}
.guide-panel:not(.is-active){display:none}
.guide-grid{
  display:grid;
  gap:18px;
}
.guide-grid-departments{
  grid-template-columns:repeat(4, minmax(0, 1fr));
}
.guide-grid-symptoms{
  grid-template-columns:repeat(4, minmax(0, 1fr));
}
.guide-item{
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  color:#374847;
  transition:.2s ease;
}
.guide-item:hover{
  border-color:#bed5d1;
  color:var(--green);
  transform:translateY(-1px);
}
.guide-icon{
  flex:0 0 54px;
  width:54px;
  height:54px;
  border-radius:15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#eef5f3;
  color:#3d8b83;
}
.guide-icon svg{width:28px;height:28px}
.guide-item-department{
  display:flex;
  align-items:center;
  gap:14px;
  min-height:85px;
  padding:14px 16px;
}
.guide-item-label{
  font-size:18px;
  line-height:1.45;
  font-weight:800;
}
.guide-item-symptom{
  display:flex;
  flex-direction:column;
  gap:20px;
  min-height:184px;
  padding:24px 22px 20px;
}
.guide-text strong{
  display:block;
  margin-bottom:8px;
  font-size:17px;
  line-height:1.5;
  font-weight:800;
}
.guide-text span{
  display:block;
  color:#5c9d96;
  font-size:14px;
  line-height:1.6;
  font-weight:700;
}
.guide-note{
  margin:24px 0 0;
  padding-top:18px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
}

.access-section{
  padding:94px 0 86px;
  background:#f8f8f6;
}
.access-grid{
  display:grid;
  grid-template-columns:1.18fr .82fr;
  gap:22px;
  align-items:start;
}
.map-card{
  overflow:hidden;
  padding:10px;
  margin-bottom:12px;
}
.map-card img,
.map-embed-card iframe{
  width:100%;
  height:330px;
  object-fit:cover;
  border-radius:12px;
  border:0;
  display:block;
}
.access-card{padding:18px 20px}
.access-contact{
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px 16px;
  margin-bottom:16px;
}
.access-label{margin:0 0 3px;color:var(--muted);font-size:11px}
.access-contact a{font-size:24px;font-weight:800;color:var(--green-dark)}
.access-list{margin:0}
.access-list div{display:grid;grid-template-columns:68px 1fr;gap:10px;padding:12px 0;border-top:1px solid var(--line)}
.access-list div:first-child{border-top:0}
.access-list dt{font-weight:700;font-size:12px}
.access-list dd{margin:0;color:var(--muted);font-size:12px;line-height:1.8}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:20px;
  margin-top:20px;
}
.gallery-grid img{
  width:100%;
  aspect-ratio:2.35 / 1;
  object-fit:cover;
  border-radius:16px;
}

.gallery-grid img:first-child{
  object-position:center 8%;
}


.news{
  padding:94px 0 98px;
  background:var(--beige);
}
.news-list{
  display:grid;
  gap:12px;
  max-width:900px;
  margin:0 auto;
}
.news-item{
  display:grid;
  grid-template-columns:86px 82px 1fr 16px;
  align-items:center;
  gap:14px;
  padding:18px 20px;
  border-radius:16px;
}
.news-date{font-size:13px;color:var(--muted)}
.news-tag{
  justify-content:center;
  min-width:68px;
  height:28px;
  padding:0 10px;
  border-radius:999px;
  background:#eef0e9;
  color:#7b827e;
  font-size:12px;
  font-weight:700;
}
.news-title{font-size:15px;font-weight:700;line-height:1.6}
.news-arrow{font-size:24px;color:#8a9290}
.news-cta{
  text-align:center;
  margin-top:28px;
}

.site-footer{
  background:linear-gradient(180deg, #0b4746, #082f31);
  color:#e7f2ef;
}
.footer-main{
  display:grid;
  grid-template-columns:300px 1fr;
  gap:42px;
  padding:50px 0 30px;
}
.footer-logo{
  width:auto;
  height:48px;
  filter:brightness(1.55) saturate(.88);
  margin-bottom:18px;
}
.footer-brand p{color:#b9cbc8;font-size:14px;line-height:1.9}
.footer-tel{
  display:inline-block;
  margin:6px 0;
  font-size:32px;
  line-height:1.1;
  font-weight:800;
}
.footer-links{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:22px;
}
.footer-links h3{
  margin:0 0 10px;
  font-size:16px;
  color:#fff;
}
.footer-links a,
.footer-links p{
  display:block;
  margin:7px 0;
  color:#b9cbc8;
  font-size:14px;
}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
}
.footer-bottom-inner{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:14px 0 18px;
  font-size:11px;
  color:#99b2ae;
}
.footer-subnav{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}

@media (max-width: 1180px){
  .hero-grid{
    grid-template-columns:minmax(0,1fr) 500px;
  }
  .hero h1{font-size:52px}
  .mini-card-grid{grid-template-columns:repeat(2, 1fr)}
  .guide-grid-departments,
  .guide-grid-symptoms{grid-template-columns:repeat(2, minmax(0,1fr))}
}


.menu-brand{display:none}
.menu-brand-logo{display:block;height:62px;width:auto;max-width:none}

@media (max-width: 760px){
  .global-nav{
    background:#fff;
  }
  .nav-list{
    position:relative;
    justify-content:flex-start;
    align-items:stretch;
    padding:22px 28px 32px;
    overflow:auto;
  }
  .menu-brand{
    display:block;
    padding:0 84px 22px 0;
    border-bottom:none !important;
    margin-bottom:6px;
  }
  .menu-brand:hover{color:inherit}
  .nav-list a{
    padding:23px 6px;
    font-size:17px;
    font-weight:700;
    line-height:1.35;
  }
  .menu-toggle{
    position:fixed;
    top:20px;
    right:20px;
    width:48px;
    height:48px;
    border-radius:14px;
    background:#fff;
    box-shadow:none;
  }
}

@media (max-width: 1024px){
  .container{width:min(calc(100% - 40px), var(--container))}
  .hero-grid,
  .access-grid,
  .footer-main{
    grid-template-columns:1fr;
  }
  .hero-copy{padding-top:28px}
  .hero h1{font-size:46px}
  .service-grid{grid-template-columns:repeat(2, 1fr)}
  .footer-links{grid-template-columns:repeat(2,1fr)}
  .section-title{font-size:52px}
  .precheck .section-title-left{font-size:33px}
}

@media (max-width: 760px){
  .container{width:min(calc(100% - 28px), var(--container))}
  .header-meta{display:none}
  .menu-toggle{display:flex}
  .site-header{backdrop-filter:none}
  .global-nav{
    position:fixed;
    inset:0;
    display:flex;
    justify-content:flex-end;
    background:rgba(12,22,22,.34);
    border-top:0;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .28s ease, visibility .28s ease;
  }
  .global-nav.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
  .nav-list{
    width:100%;
    max-width:100%;
    height:100%;
    margin-left:auto;
    flex-direction:column;
    gap:0;
    padding:84px 28px 24px;
    background:#fff;
    box-shadow:none;
    transform:translateX(100%);
    transition:transform .3s ease;
  }
  .global-nav.is-open .nav-list{transform:translateX(0)}
  .nav-list a{
    padding:15px 4px;
    border-bottom:1px solid var(--line);
    font-size:15px;
  }
  .video-strip{padding:22px 0 34px}
  .video-embed-card{border-radius:18px}
  .section-soft{padding:8px 0 56px}
  .section-beige,.access-section,.news,.first-visit,.medical-guide,.precheck{padding:58px 0}
  .hero-copy{padding-top:10px}
  .eyebrow{margin-bottom:16px;font-size:11px;padding:6px 11px}
  .hero h1{font-size:34px;line-height:1.18}
  .hero-lead{margin:18px 0 24px;font-size:14px}
  .hero-buttons,
  .mini-card-grid,
  .service-grid,
  .guide-grid,
  .gallery-grid{
    grid-template-columns:1fr;
  }
  .hero-notes{display:grid;gap:6px;font-size:12px}
  .section-title{font-size:34px; line-height:1.22}
  .precheck .section-title-left{
    gap:12px;
    margin-bottom:26px;
    font-size:28px;
  }
  .precheck .section-title-left::before{
    width:6px;
    height:32px;
    flex-basis:6px;
  }
  .section-lead{
    margin:14px 0 28px;
    font-size:14px;
  }
  .mini-card{min-height:auto;padding:24px 22px}
  .service-card{
    min-height:auto;
    padding:28px 24px 24px;
  }
  .service-card p{min-height:0}
  .pill-switch{
    width:100%;
    max-width:100%;
  }
  .pill{
    min-width:0;
    flex:1 1 0;
    padding:0 14px;
    min-height:52px;
    font-size:16px;
  }
  .guide-panel{padding:20px 16px 18px}
  .guide-item-department,
  .guide-item-symptom{min-height:auto}
  .map-card img,
  .map-embed-card iframe{height:240px}
  .access-contact a{font-size:24px}
  .access-list div{grid-template-columns:1fr;gap:5px}
  .news-item{
    grid-template-columns:1fr;
    gap:9px;
    position:relative;
    padding-right:42px;
  }
  .news-item::after{
    position:absolute;
    content:"›";
    right:16px;
    top:50%;
    transform:translateY(-50%);
    color:#8a9290;
    font-size:24px;
  }
  .news-arrow{display:none}
  .footer-links{grid-template-columns:1fr}
  .footer-bottom-inner{flex-direction:column}
}



/* ===== v22 professional reset / reference-aligned refinement ===== */
:root{
  --bg:#f5f4ef;
  --bg-soft:#f5f4ef;
  --beige:#ece9e1;
  --card:#ffffff;
  --line:#e8e3db;
  --text:#243331;
  --muted:#6a7674;
  --green:#2f8b84;
  --green-dark:#233432;
  --radius:18px;
  --container:1140px;
}

body{
  font-size:15px;
  line-height:1.72;
  background:var(--bg);
  color:var(--text);
}

.container{
  width:min(calc(100% - 64px), var(--container));
}

.site-header{
  background:rgba(255,255,255,.97);
  border-bottom:1px solid #ece7df;
}

.header-inner{
  min-height:72px;
  padding:7px 0 8px;
  gap:20px;
}

.header-logo{
  height:56px;
}

.header-meta{
  gap:24px;
}

.header-label{
  margin:0 0 1px;
  font-size:11px;
  letter-spacing:.01em;
}

.header-tel{
  font-size:23px;
  line-height:1.08;
}

.header-hours{
  margin:3px 0 0;
  font-size:11px;
}

.btn-small{
  min-height:42px;
  padding:9px 20px;
  border-radius:12px;
  font-size:14px;
}

.global-nav{
  border-top:1px solid #f1ede6;
}

.nav-list{
  gap:30px;
  font-size:14px;
  font-weight:500;
  padding:12px 0 11px;
}

/* video */
.video-strip{
  padding:46px 0 82px;
  background:var(--bg-soft);
}

.video-embed-card{
  width:min(100%, 1000px);
  margin:0 auto;
  border-radius:18px;
  overflow:hidden;
  box-shadow:none;
}

.video-embed{
  position:relative;
  width:100%;
  height:0;
  padding-top:56.25%;
  background:#101010;
}

.video-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  border:0;
}

/* hero */
.section-soft{
  padding:8px 0 92px;
  background:var(--bg-soft);
}

.hero-grid{
  grid-template-columns:472px minmax(0, 540px);
  gap:46px;
  justify-content:space-between;
  align-items:start;
}

.hero-copy{
  padding-top:72px;
}

.eyebrow{
  margin:0 0 20px;
  padding:7px 14px;
  font-size:12px;
  line-height:1.3;
}

.hero h1{
  font-size:58px;
  line-height:1.08;
  letter-spacing:.005em;
  font-weight:800;
}

.hero-lead{
  margin:24px 0 30px;
  font-size:16px;
  line-height:1.9;
  color:#6b7573;
}

.hero-buttons{
  max-width:544px;
  gap:12px;
}

.btn{
  min-height:58px;
  padding:15px 22px;
  border-radius:14px;
  font-size:16px;
}

.hero-notes{
  margin-top:16px;
  gap:18px;
  font-size:12px;
}

.hero-photo-card{
  padding:10px;
  border-radius:18px;
}

.hero-photo-card img{
  border-radius:14px;
  aspect-ratio:16 / 9.15;
}

.hours-card{
  margin-top:14px;
  padding:22px 24px 16px;
  border-radius:18px;
}

.hours-card h2{
  margin:0 0 12px;
  font-size:20px;
  line-height:1.45;
  font-weight:800;
}

.hours-card table{
  font-size:15px;
}

.hours-card th,
.hours-card td{
  padding:13px 0;
}

.hours-card thead th{
  font-size:12px;
}

.hours-note{
  margin-top:10px;
  font-size:11px;
}

/* generic headings */
.section-title{
  margin:0;
  text-align:center;
  font-size:40px;
  line-height:1.22;
  letter-spacing:.01em;
  font-weight:800;
  color:#243331;
}

.section-lead{
  margin:14px 0 34px;
  text-align:center;
  font-size:15px;
  line-height:1.75;
  font-weight:500;
  color:#7a8582;
}

/* precheck */
.precheck{
  padding:72px 0 78px;
  background:#fff;
}

.precheck .container{
  max-width:1140px;
}

.precheck .section-title-left{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:26px;
  text-align:left;
  font-size:28px;
  line-height:1.28;
}

.precheck .section-title-left::before{
  width:5px;
  height:38px;
  flex:0 0 5px;
  background:#2c8c85;
  border-radius:999px;
}

.mini-card-grid{
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:20px;
}

.mini-card{
  min-height:246px;
  padding:28px 26px 24px;
  border-radius:18px;
}

.mini-card-head{
  gap:14px;
  margin-bottom:20px;
}

.mini-icon{
  width:56px;
  height:56px;
  flex:0 0 56px;
}

.mini-icon svg{
  width:24px;
  height:24px;
}

.tag{
  height:30px;
  padding:0 14px;
  font-size:13px;
}

.mini-card h3{
  margin:0 0 10px;
  font-size:16px;
  line-height:1.45;
  font-weight:800;
  letter-spacing:0;
}

.mini-card p{
  font-size:13px;
  line-height:1.85;
  color:#687775;
}

/* first visit */
.section-beige{
  padding:86px 0 90px;
  background:var(--beige);
}

.first-visit{
  padding:90px 0 92px;
}

.first-visit .container,
.medical-guide .container,
.access-section .container,
.news .container{
  max-width:1140px;
}

.first-visit .section-title{
  font-size:36px;
  line-height:1.3;
}

.first-visit .section-lead{
  margin-top:12px;
  margin-bottom:42px;
}

.service-grid{
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:26px 28px;
}

.service-card{
  min-height:298px;
  padding:32px 34px 28px;
  border-radius:20px;
}

.service-icon{
  width:72px;
  height:72px;
  margin-bottom:26px;
  border-radius:18px;
}

.service-icon svg{
  width:32px;
  height:32px;
}

.service-card h3{
  margin:0 0 14px;
  font-size:18px;
  line-height:1.45;
  font-weight:800;
}

.service-card p{
  min-height:78px;
  margin:0 0 24px;
  font-size:14px;
  line-height:1.82;
  color:#697775;
}

.service-card a{
  font-size:14px;
  font-weight:700;
}

/* guide */
.medical-guide{
  padding:88px 0 94px;
}

.medical-guide .section-title{
  font-size:34px;
  line-height:1.24;
}

.medical-guide .section-lead{
  margin-top:14px;
  margin-bottom:36px;
}

.pill-switch{
  margin:0 auto 34px;
  padding:6px;
  background:#eceee9;
}

.pill{
  min-width:182px;
  min-height:54px;
  padding:0 32px;
  font-size:16px;
  font-weight:700;
}

.guide-panel{
  max-width:1000px;
  margin:0 auto;
  padding:28px 28px 22px;
  border-radius:20px;
}

.guide-grid{
  gap:14px;
}

.guide-item{
  border-radius:18px;
}

.guide-icon{
  width:42px;
  height:42px;
  border-radius:12px;
  background:#eef6f5;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 42px;
  color:#4b938b;
}

.guide-icon svg{
  width:22px;
  height:22px;
}

.guide-item-department{
  gap:14px;
  min-height:78px;
  padding:12px 18px;
}

.guide-item-label{
  font-size:15px;
  line-height:1.45;
  font-weight:800;
}

.guide-item-symptom{
  min-height:168px;
  padding:22px 20px 18px;
  gap:18px;
}

.guide-text strong{
  margin-bottom:6px;
  font-size:15px;
  line-height:1.5;
  font-weight:800;
}

.guide-text span{
  font-size:13px;
  line-height:1.6;
  font-weight:700;
}

.guide-note{
  margin:18px 0 0;
  padding-top:16px;
  font-size:13px;
  line-height:1.7;
}

/* access */
.access-section{
  padding:88px 0 82px;
  background:#fff;
}

.access-section .section-title{
  font-size:34px;
  line-height:1.22;
}

.access-grid{
  max-width:1000px;
  margin:0 auto;
  grid-template-columns:1.18fr .82fr;
  gap:20px;
}

.map-card{
  padding:10px;
  margin-bottom:10px;
  border-radius:18px;
}

.map-card img,
.map-embed-card iframe{
  height:328px;
  border-radius:12px;
}

.access-card{
  padding:18px 18px 16px;
  border-radius:18px;
}

.access-contact{
  padding:14px 16px;
  margin-bottom:14px;
  border-radius:12px;
}

.access-label{
  font-size:11px;
}

.access-contact a{
  font-size:18px;
  line-height:1.2;
}

.access-list div{
  grid-template-columns:68px 1fr;
  gap:10px;
  padding:12px 0;
}

.access-list dt{
  font-size:12px;
}

.access-list dd{
  font-size:12px;
  line-height:1.75;
}

.gallery-grid{
  max-width:1000px;
  margin:18px auto 0;
  gap:18px;
}

.gallery-grid img{
  aspect-ratio:2.4 / 1;
  border-radius:14px;
}

/* news */
.news{
  padding:88px 0 92px;
}

.news .section-title{
  font-size:34px;
  line-height:1.24;
}

.news .section-lead{
  margin-bottom:34px;
}

.news-list{
  max-width:780px;
  gap:10px;
}

.news-item{
  grid-template-columns:82px 78px 1fr 14px;
  gap:14px;
  padding:14px 16px;
  border-radius:14px;
}

.news-date{
  font-size:12px;
}

.news-tag{
  min-width:64px;
  height:24px;
  font-size:11px;
}

.news-title,
.news-text{
  font-size:13px;
  line-height:1.6;
  font-weight:700;
}

.news-arrow{
  font-size:20px;
}

/* footer */
.site-footer{
  background:linear-gradient(180deg, #0b4746 0%, #083133 100%);
}

.footer-main{
  grid-template-columns:280px 1fr;
  gap:38px;
  padding:42px 0 24px;
}

.footer-logo{
  height:46px;
  margin-bottom:16px;
}

.footer-brand p{
  font-size:13px;
  line-height:1.85;
}

.footer-tel{
  font-size:26px;
}

.footer-links{
  gap:18px;
}

.footer-links h3{
  font-size:15px;
  margin-bottom:8px;
}

.footer-links a,
.footer-links p{
  margin:6px 0;
  font-size:13px;
}

.footer-bottom-inner{
  padding:12px 0 15px;
  font-size:11px;
}

/* responsive refinements */
@media (max-width: 1180px){
  .container{
    width:min(calc(100% - 52px), var(--container));
  }
  .hero-grid{
    grid-template-columns:minmax(0, 1fr) 480px;
    gap:36px;
  }
  .hero h1{
    font-size:52px;
  }
  .mini-card-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .service-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .guide-grid-departments,
  .guide-grid-symptoms{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 960px){
  .container{
    width:min(calc(100% - 40px), var(--container));
  }
  .header-inner{
    min-height:68px;
  }
  .hero-grid,
  .access-grid,
  .footer-main{
    grid-template-columns:1fr;
  }
  .hero-copy{
    padding-top:26px;
  }
  .hero h1{
    font-size:48px;
  }
  .mini-card-grid,
  .service-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .gallery-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .footer-links{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px){
  .container{
    width:min(calc(100% - 28px), var(--container));
  }
  .video-strip{
    padding:24px 0 42px;
  }
  .section-soft{
    padding:0 0 58px;
  }
  .hero-copy{
    padding-top:10px;
  }
  .eyebrow{
    margin-bottom:14px;
    font-size:11px;
  }
  .hero h1{
    font-size:42px;
    line-height:1.1;
  }
  .hero-lead{
    margin:18px 0 22px;
    font-size:15px;
    line-height:1.8;
  }
  .hero-buttons{
    grid-template-columns:1fr;
  }
  .btn{
    min-height:54px;
    font-size:15px;
  }
  .hours-card{
    padding:18px 18px 14px;
  }
  .hours-card h2{
    font-size:18px;
  }
  .precheck,
  .first-visit,
  .medical-guide,
  .access-section,
  .news{
    padding:58px 0;
  }
  .precheck .section-title-left{
    font-size:24px;
    gap:12px;
    margin-bottom:22px;
  }
  .precheck .section-title-left::before{
    height:30px;
  }
  .mini-card-grid,
  .service-grid,
  .gallery-grid{
    grid-template-columns:1fr;
  }
  .mini-card,
  .service-card{
    min-height:auto;
  }
  .section-title,
  .first-visit .section-title,
  .medical-guide .section-title,
  .access-section .section-title,
  .news .section-title{
    font-size:30px;
    line-height:1.3;
  }
  .section-lead{
    margin:10px 0 24px;
    font-size:14px;
  }
  .pill-switch{
    width:100%;
    max-width:100%;
  }
  .pill{
    min-width:0;
    flex:1 1 0;
    padding:0 12px;
    font-size:14px;
  }
  .guide-panel{
    padding:18px 16px 16px;
  }
  .guide-grid-departments,
  .guide-grid-symptoms{
    grid-template-columns:1fr;
  }
  .guide-item-department{
    min-height:70px;
    padding:12px 14px;
  }
  .guide-item-label{
    font-size:15px;
  }
  .guide-item-symptom{
    min-height:auto;
    padding:18px 16px 16px;
  }
  .map-card img,
  .map-embed-card iframe{
    height:280px;
  }
  .news-item{
    grid-template-columns:1fr;
    gap:8px;
  }
  .news-arrow{
    display:none;
  }
  .footer-links{
    grid-template-columns:1fr;
  }
  .global-nav{
    background:rgba(10, 22, 22, .34);
  }
  .nav-list{
    width:min(86vw, 360px);
    padding:82px 22px 24px;
  }
}


/* === FV precision tuning v23 === */
.video-strip{
  padding:40px 0 72px;
}
.video-embed-card{
  width:min(100%, 998px);
  border-radius:22px;
  overflow:hidden;
}
.video-embed{
  position:relative;
  width:100%;
  height:auto;
  aspect-ratio:16 / 9;
}
.video-embed::before{
  content:"";
  display:block;
  padding-top:56.25%;
}
.video-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.section-soft{
  padding:0 0 96px;
}
.hero-grid{
  grid-template-columns:500px 540px;
  gap:48px;
  justify-content:space-between;
  align-items:start;
}
.hero-copy{
  padding-top:58px;
}
.eyebrow{
  margin:0 0 22px;
  padding:8px 15px;
  font-size:13px;
  line-height:1.2;
  font-weight:700;
}
.hero h1{
  max-width:520px;
  font-size:72px;
  line-height:1.04;
  letter-spacing:-0.03em;
}
.hero-lead{
  max-width:500px;
  margin:26px 0 36px;
  font-size:18px;
  line-height:1.85;
}
.hero-buttons{
  max-width:542px;
  gap:14px;
}
.hero-buttons .btn{
  min-height:62px;
  padding:15px 24px;
  border-width:2px;
  border-radius:14px;
  font-size:16px;
  line-height:1.2;
}
.hero-buttons .btn-icon{
  width:22px;
  height:22px;
  flex:0 0 22px;
}
.hero-buttons .btn-icon svg{
  width:22px;
  height:22px;
}
.hero-notes{
  margin:22px 0 0;
  gap:14px 22px;
  font-size:13px;
  line-height:1.5;
}
.hero-photo-card{
  padding:8px;
  border-radius:22px;
}
.hero-photo-card img{
  border-radius:16px;
  aspect-ratio: 16 / 9.3;
}
.hours-card{
  margin-top:14px;
  padding:18px 22px 14px;
  border-radius:22px;
}
.hours-card h2{
  margin:0 0 12px;
  font-size:17px;
  line-height:1.45;
  font-weight:800;
}
.hours-card table{
  font-size:14px;
}
.hours-card th,
.hours-card td{
  padding:10px 0;
}
.hours-card thead th{
  font-size:12px;
  font-weight:700;
  color:#7d8785;
}
.hours-card tbody td{
  font-size:14px;
  font-weight:700;
  color:#364140;
}
.hours-card tbody td:last-child{
  font-weight:500;
}
.hours-note{
  margin:10px 0 0;
  font-size:11px;
  line-height:1.6;
}
@media (max-width: 1180px){
  .hero-grid{
    grid-template-columns:minmax(0, 1fr) 500px;
    gap:40px;
  }
  .hero h1{
    font-size:64px;
  }
}
@media (max-width: 960px){
  .video-strip{
    padding:28px 0 56px;
  }
  .section-soft{
    padding:0 0 72px;
  }
  .hero-grid{
    grid-template-columns:1fr;
    gap:28px;
  }
  .hero-copy{
    padding-top:22px;
  }
  .hero h1{
    max-width:none;
    font-size:52px;
  }
  .hero-lead{
    max-width:none;
    font-size:17px;
  }
  .hero-buttons{
    max-width:none;
  }
}
@media (max-width: 760px){
  .video-strip{
    padding:20px 0 44px;
  }
  .section-soft{
    padding:0 0 58px;
  }
  .hero-copy{
    padding-top:10px;
  }
  .eyebrow{
    margin-bottom:16px;
    padding:7px 12px;
    font-size:11px;
  }
  .hero h1{
    font-size:44px;
    line-height:1.08;
    letter-spacing:-0.02em;
  }
  .hero-lead{
    margin:18px 0 24px;
    font-size:15px;
    line-height:1.8;
  }
  .hero-buttons{
    grid-template-columns:1fr;
    gap:10px;
  }
  .hero-buttons .btn{
    min-height:58px;
    font-size:15px;
  }
  .hero-notes{
    font-size:12px;
    gap:10px 14px;
  }
  .hero-photo-card{
    padding:7px;
  }
  .hours-card{
    padding:16px 18px 13px;
  }
  .hours-card h2{
    font-size:16px;
  }
  .hours-card table{
    font-size:13px;
  }
  .hours-card th,
  .hours-card td{
    padding:9px 0;
  }
}


/* precise fix: mobile drawer full width + news button centered */
.news-more{
  display:flex;
  justify-content:center;
  margin-top:30px;
}
.news-more .btn{
  margin:0 auto;
}

@media (max-width: 760px){
  .global-nav{
    position:fixed;
    inset:0;
    display:flex;
    justify-content:flex-end;
    background:rgba(12, 22, 22, .34);
    border-top:0;
  }
  .global-nav .nav-list{
    width:100vw !important;
    max-width:none !important;
    min-height:100dvh;
    height:100dvh;
    margin:0 0 0 auto !important;
    border-radius:0;
    padding:84px 28px 24px;
    box-sizing:border-box;
  }
}


/* === targeted fix: keep menu/news intact, adjust only video + hero copy === */
.video-strip{
  padding:34px 0 58px;
}
.video-embed-card{
  width:min(100%, 1000px);
  margin:0 auto;
  border-radius:24px;
  overflow:hidden;
}
.video-embed{
  position:relative;
  width:100%;
  height:0;
  padding-top:56.25%;
  aspect-ratio:auto;
  background:#dfe3e1;
}
.video-embed::before{
  content:none;
}
.video-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  display:block;
}

.section-soft{
  padding:10px 0 84px;
}
.hero-grid{
  display:grid;
  grid-template-columns:492px 540px;
  justify-content:space-between;
  gap:40px;
  align-items:start;
}
.hero-copy{
  padding-top:76px;
}
.eyebrow{
  margin:0 0 24px;
  padding:7px 14px;
  font-size:12px;
  line-height:1.2;
  font-weight:700;
}
.hero h1{
  max-width:none;
  margin:0;
  font-size:60px;
  line-height:1.08;
  letter-spacing:.005em;
  font-weight:800;
}
.hero-lead{
  max-width:none;
  margin:28px 0 34px;
  font-size:17px;
  line-height:1.9;
}
.hero-buttons{
  max-width:548px;
  gap:12px;
}
.hero-buttons .btn{
  min-height:64px;
  padding:16px 26px;
  border-width:1.5px;
  border-radius:15px;
  font-size:16px;
  line-height:1.2;
}
.hero-buttons .btn-icon{
  width:24px;
  height:24px;
  flex:0 0 24px;
}
.hero-buttons .btn-icon svg{
  width:24px;
  height:24px;
}
.hero-notes{
  margin:18px 0 0;
  gap:18px;
  font-size:13px;
  line-height:1.6;
}
.hero-photo-card{
  padding:12px;
  border-radius:24px;
}
.hero-photo-card img{
  border-radius:14px;
  aspect-ratio:16 / 10;
}
.hours-card{
  margin-top:16px;
  padding:24px 26px 18px;
  border-radius:24px;
}
.hours-card h2{
  margin:0 0 14px;
  font-size:28px;
  line-height:1.35;
  font-weight:800;
}
.hours-card table{
  font-size:16px;
}
.hours-card th,
.hours-card td{
  padding:14px 0;
}
.hours-card thead th{
  font-size:13px;
}
.hours-card tbody td{
  font-size:16px;
}
.hours-note{
  margin:12px 0 0;
  font-size:12px;
  line-height:1.6;
}

.news-more{
  display:flex;
  justify-content:center;
  margin-top:30px;
}
.news-more .btn{
  margin:0 auto;
}

@media (max-width: 1180px){
  .hero-grid{
    grid-template-columns:minmax(0, 1fr) 500px;
    gap:32px;
  }
  .hero h1{
    font-size:54px;
  }
}

@media (max-width: 960px){
  .video-strip{
    padding:26px 0 46px;
  }
  .section-soft{
    padding:0 0 68px;
  }
  .hero-grid{
    grid-template-columns:1fr;
    gap:28px;
  }
  .hero-copy{
    padding-top:6px;
  }
  .hero h1{
    font-size:46px;
    line-height:1.1;
  }
  .hero-lead{
    margin:18px 0 26px;
    font-size:16px;
    line-height:1.85;
  }
  .hero-buttons{
    max-width:none;
  }
  .hours-card h2{
    font-size:22px;
  }
  .hours-card table{
    font-size:15px;
  }
}

@media (max-width: 760px){
  .video-strip{
    padding:20px 0 40px;
  }
  .video-embed-card{
    border-radius:18px;
  }
  .section-soft{
    padding:0 0 58px;
  }
  .hero-copy{
    padding-top:2px;
  }
  .eyebrow{
    margin-bottom:16px;
    padding:7px 12px;
    font-size:11px;
  }
  .hero h1{
    font-size:40px;
    line-height:1.1;
    letter-spacing:-0.01em;
  }
  .hero-lead{
    margin:16px 0 22px;
    font-size:15px;
    line-height:1.8;
  }
  .hero-buttons{
    grid-template-columns:1fr;
    gap:10px;
  }
  .hero-buttons .btn{
    min-height:58px;
    font-size:15px;
  }
  .hero-notes{
    gap:10px 14px;
    font-size:12px;
  }
  .hero-photo-card{
    padding:8px;
    border-radius:20px;
  }
  .hours-card{
    padding:16px 18px 13px;
    border-radius:20px;
  }
  .hours-card h2{
    font-size:17px;
    margin-bottom:10px;
  }
  .hours-card table{
    font-size:13px;
  }
  .hours-card th,
  .hours-card td{
    padding:9px 0;
  }

  .global-nav{
    position:fixed;
    inset:0;
    display:flex;
    justify-content:flex-end;
    background:rgba(12, 22, 22, .34);
    border-top:0;
  }
  .global-nav .nav-list{
    width:100vw !important;
    max-width:none !important;
    min-height:100dvh;
    height:100dvh;
    margin:0 0 0 auto !important;
    border-radius:0;
    padding:84px 28px 24px;
    box-sizing:border-box;
  }
}


/* ========================================
   Sub pages
======================================== */
.subpage .site-header {
  position: sticky;
  top: 0;
  z-index: 20;
}

.subpage-hero {
  padding: 72px 0 48px;
}

.subpage-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .9fr);
  gap: 32px;
  align-items: start;
}

.subpage-copy h1 {
  margin: 14px 0 18px;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.18;
  letter-spacing: -0.03em;
}

.subpage-lead {
  margin: 0;
  max-width: 720px;
  color: #667674;
  font-size: 1rem;
  line-height: 2;
}

.soft-card {
  background: #fff;
  border: 1px solid #e5e0d7;
  border-radius: 28px;
  box-shadow: 0 10px 30px rgba(29, 61, 57, 0.04);
}

.info-card,
.profile-card {
  padding: 28px 30px;
}

.info-card h2,
.profile-card h2 {
  margin: 0 0 18px;
  font-size: 1.5rem;
}

.section-white {
  background: #fff;
  padding: 72px 0;
}

.section-heading.left-align {
  text-align: left;
  margin-bottom: 28px;
}
.section-heading.center-align {
  text-align: center;
  margin-bottom: 34px;
}
.section-heading.compact {
  margin-bottom: 18px;
}
.section-heading.left-align h2,
.section-heading.center-align h2 {
  margin: 0 0 10px;
  font-size: clamp(1.75rem, 3vw, 2.4rem);
  line-height: 1.25;
}
.section-heading.left-align p,
.section-heading.center-align p {
  margin: 0;
  color: #70817f;
  font-size: 0.98rem;
  line-height: 1.8;
}

.check-list,
.bullet-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.check-list li,
.bullet-list li {
  position: relative;
  padding-left: 1.5rem;
  color: #41514f;
  line-height: 1.9;
}
.check-list li + li,
.bullet-list li + li {
  margin-top: 10px;
}
.check-list li::before,
.bullet-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.8em;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #2f8a84;
  transform: translateY(-50%);
}

.flow-grid,
.department-grid,
.philosophy-grid {
  display: grid;
  gap: 24px;
}

.flow-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.flow-card,
.department-card,
.message-card,
.career-card,
.philosophy-grid > article {
  padding: 28px;
}

.flow-step {
  display: inline-flex;
  width: 54px;
  height: 54px;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  border-radius: 18px;
  background: #2f8a84;
  color: #fff;
  font-weight: 700;
}

.flow-card h3,
.department-card h3,
.philosophy-grid h3 {
  margin: 0 0 12px;
  font-size: 1.35rem;
  line-height: 1.4;
}
.flow-card p,
.department-card p,
.philosophy-grid p,
.text-block {
  margin: 0;
  color: #617270;
  line-height: 1.95;
}

.two-column-cards,
.message-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}

.faq-list details {
  border-top: 1px solid #e5e0d7;
  padding: 18px 0;
}
.faq-list details:last-child {
  border-bottom: 1px solid #e5e0d7;
}
.faq-list summary {
  cursor: pointer;
  list-style: none;
  font-weight: 700;
  color: #1f3432;
}
.faq-list summary::-webkit-details-marker {
  display: none;
}
.faq-list p {
  margin: 12px 0 0;
  color: #617270;
  line-height: 1.9;
}

.cta-band {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 36px 40px;
}
.cta-band h2 {
  margin: 8px 0 12px;
  font-size: 2rem;
}
.cta-band p {
  margin: 0;
  color: #617270;
  line-height: 1.9;
}
.cta-actions {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.hours-list {
  margin: 0;
}
.hours-list div,
.career-list div {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 12px;
  padding: 14px 0;
  border-top: 1px solid #ece5da;
}
.hours-list div:first-child,
.career-list div:first-child {
  border-top: none;
  padding-top: 0;
}
.hours-list dt,
.career-list dt {
  font-weight: 700;
  color: #233937;
}
.hours-list dd,
.career-list dd {
  margin: 0;
  color: #617270;
}

.department-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.text-link {
  display: inline-block;
  margin-top: 18px;
  color: #2f8a84;
  font-weight: 700;
  text-decoration: none;
}

.profile-photo {
  display: grid;
  place-items: center;
  aspect-ratio: 1 / 1;
  margin-bottom: 20px;
  border-radius: 24px;
  background: linear-gradient(135deg, #d9ebe8, #eef4f2);
  color: #6c7c7a;
  font-weight: 700;
}

@media (max-width: 1024px) {
  .subpage-hero-inner,
  .flow-grid,
  .department-grid,
  .two-column-cards,
  .message-layout,
  .philosophy-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .subpage-hero {
    padding: 44px 0 28px;
  }
  .subpage-hero-inner,
  .flow-grid,
  .department-grid,
  .two-column-cards,
  .message-layout,
  .philosophy-grid {
    grid-template-columns: 1fr;
  }
  .section-white {
    padding: 56px 0;
  }
  .flow-card,
  .department-card,
  .message-card,
  .career-card,
  .philosophy-grid > article,
  .info-card,
  .profile-card {
    padding: 24px;
  }
  .cta-band {
    padding: 28px 24px;
    flex-direction: column;
    align-items: flex-start;
  }
  .cta-band h2 {
    font-size: 1.6rem;
  }
}


/* ========================================
   Simple subpage refresh
   - keeps top page untouched
======================================== */
.subpage {
  background: #fbf9f5;
}

.subpage .section-soft,
.subpage .section-white {
  background: #fbf9f5;
  padding: 56px 0;
}

.subpage .subpage-hero {
  padding: 52px 0 28px;
}

.subpage .subpage-hero-inner {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
  gap: 24px;
  align-items: stretch;
}

.subpage .subpage-copy {
  align-self: center;
}

.subpage .eyebrow {
  margin-bottom: 12px;
  font-size: 0.85rem;
  letter-spacing: 0.08em;
}

.subpage .subpage-copy h1 {
  margin: 0 0 14px;
  font-size: clamp(2rem, 3.4vw, 2.7rem);
  line-height: 1.24;
  letter-spacing: -0.02em;
}

.subpage .subpage-lead {
  max-width: 640px;
  color: #5f706e;
  font-size: 0.98rem;
  line-height: 1.9;
}

.subpage .soft-card {
  border: 1px solid #e7e0d6;
  border-radius: 20px;
  box-shadow: none;
  background: #fff;
}

.subpage .info-card,
.subpage .profile-card,
.subpage .flow-card,
.subpage .department-card,
.subpage .message-card,
.subpage .career-card,
.subpage .philosophy-grid > article {
  padding: 24px;
}

.subpage .info-card h2,
.subpage .profile-card h2,
.subpage .flow-card h3,
.subpage .department-card h3,
.subpage .philosophy-grid h3,
.subpage .cta-band h2 {
  margin-bottom: 10px;
}

.subpage .info-card h2,
.subpage .profile-card h2 {
  font-size: 1.25rem;
}

.subpage .flow-card h3,
.subpage .department-card h3,
.subpage .philosophy-grid h3 {
  font-size: 1.12rem;
  line-height: 1.5;
}

.subpage .flow-card p,
.subpage .department-card p,
.subpage .philosophy-grid p,
.subpage .text-block,
.subpage .faq-list p,
.subpage .hours-list dd,
.subpage .hours-list dt {
  font-size: 0.95rem;
  line-height: 1.85;
}

.subpage .section-heading.left-align,
.subpage .section-heading.center-align {
  margin-bottom: 22px;
}

.subpage .section-heading.left-align h2,
.subpage .section-heading.center-align h2 {
  margin-bottom: 8px;
  font-size: clamp(1.55rem, 2.6vw, 2rem);
  line-height: 1.32;
}

.subpage .section-heading.left-align p,
.subpage .section-heading.center-align p {
  font-size: 0.95rem;
  line-height: 1.8;
}

.subpage .flow-grid,
.subpage .department-grid,
.subpage .philosophy-grid,
.subpage .two-column-cards,
.subpage .message-layout {
  gap: 18px;
}

.subpage .flow-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.subpage .department-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.subpage .flow-step {
  width: 44px;
  height: 44px;
  margin-bottom: 14px;
  border-radius: 14px;
  font-size: 0.9rem;
}

.subpage .hours-list div {
  padding: 10px 0;
  border-bottom: 1px solid #eee7dd;
}

.subpage .hours-list div:last-child {
  border-bottom: none;
}

.subpage .profile-photo {
  min-height: 220px;
  border-radius: 16px;
  background: linear-gradient(180deg, #f4efe6 0%, #e6ddd0 100%);
  color: #64706d;
}

.subpage .faq-list details {
  padding: 14px 0;
}

.subpage .faq-list summary {
  font-size: 1rem;
}

.subpage .cta-band {
  padding: 28px 30px;
  align-items: center;
  background: #fff;
}

.subpage .cta-band h2 {
  font-size: 1.7rem;
}

.subpage .cta-band p {
  font-size: 0.95rem;
  line-height: 1.85;
}

.subpage .cta-actions {
  gap: 12px;
}

.subpage .btn {
  border-radius: 999px;
}

.subpage .site-footer {
  margin-top: 24px;
}

@media (max-width: 900px) {
  .subpage .subpage-hero-inner,
  .subpage .flow-grid,
  .subpage .department-grid,
  .subpage .two-column-cards,
  .subpage .message-layout,
  .subpage .philosophy-grid {
    grid-template-columns: 1fr;
  }

  .subpage .subpage-hero {
    padding: 40px 0 20px;
  }

  .subpage .section-soft,
  .subpage .section-white {
    padding: 44px 0;
  }

  .subpage .cta-band {
    padding: 24px;
  }
}


/* =========================================
   First visit page: simple media + info cards
========================================= */
.first-visit-media-section {
  padding-top: 72px;
  padding-bottom: 72px;
}

.first-visit-photo-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-bottom: 56px;
}

.first-visit-photo-card {
  margin: 0;
  overflow: hidden;
  border-radius: 28px;
  background: #e8eceb;
  border: 1px solid rgba(232, 228, 222, .92);
}

.first-visit-photo-card img {
  width: 100%;
  height: 100%;
  display: block;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 28px;
}

.first-visit-media-grid {
  align-items: start;
}

.first-visit-media-card {
  padding: 0;
  overflow: hidden;
}

.first-visit-card-head,
.first-visit-bullet-list,
.first-visit-faq-list {
  padding-left: 28px;
  padding-right: 28px;
}

.first-visit-card-head {
  padding-top: 26px;
  padding-bottom: 12px;
}

.first-visit-card-head h2 {
  margin: 0 0 8px;
  font-size: 1.22rem;
  line-height: 1.35;
  color: #1f3432;
}

.first-visit-card-head p {
  margin: 0;
  color: #70817f;
  font-size: 0.95rem;
  line-height: 1.8;
}

.first-visit-bullet-list {
  padding-top: 6px;
  padding-bottom: 28px;
}

.first-visit-bullet-list li {
  font-size: 1rem;
  line-height: 1.85;
}

.first-visit-bullet-list li + li {
  margin-top: 6px;
}

.first-visit-faq-list {
  padding-top: 4px;
  padding-bottom: 22px;
}

.first-visit-faq-list details:first-child {
  border-top: 0;
  padding-top: 0;
}

.first-visit-faq-list summary {
  font-size: 1rem;
  line-height: 1.7;
}

.first-visit-faq-list p {
  font-size: 0.96rem;
  line-height: 1.85;
}

@media (max-width: 767px) {
  .first-visit-media-section {
    padding-top: 56px;
    padding-bottom: 56px;
  }

  .first-visit-photo-strip {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: 20px;
  }

  .first-visit-card-head,
  .first-visit-bullet-list,
  .first-visit-faq-list {
    padding-left: 20px;
    padding-right: 20px;
  }

  .first-visit-card-head {
    padding-top: 18px;
    padding-bottom: 8px;
  }

  .first-visit-card-head h2 {
    font-size: 1.08rem;
  }

  .first-visit-card-head p,
  .first-visit-bullet-list li,
  .first-visit-faq-list summary,
  .first-visit-faq-list p {
    font-size: 0.94rem;
  }

  .first-visit-bullet-list {
    padding-bottom: 22px;
  }

  .first-visit-faq-list {
    padding-bottom: 18px;
  }
}


@media (max-width: 767px){
  .first-visit-photo-strip{
    margin-bottom: 40px;
  }
}



/* =========================================
   Shared simple subpage media/layout
========================================= */
.subpage-photo-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-bottom: 56px;
}
.subpage-photo-strip.single-photo {
  grid-template-columns: minmax(0, 1fr);
}
.subpage-photo-card {
  margin: 0;
  overflow: hidden;
  border-radius: 28px;
  background: #e8eceb;
  border: 1px solid rgba(232, 228, 222, .92);
}
.subpage-photo-card img {
  width: 100%;
  display: block;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 28px;
}
.guide-card-head {
  padding: 24px 24px 8px;
}
.guide-card-head h2 {
  margin: 0 0 8px;
  font-size: 1.22rem;
  line-height: 1.35;
}
.guide-card-head p {
  margin: 0;
  color: #70817f;
  font-size: 0.95rem;
  line-height: 1.8;
}

/* medical guide */
.guide-simple-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.guide-simple-card {
  padding: 24px;
}
.guide-simple-card h3 {
  margin: 0 0 10px;
  font-size: 1.16rem;
}
.guide-simple-card p {
  margin: 0 0 14px;
  color: #5f706e;
  line-height: 1.85;
}
.guide-symptom-layout {
  align-items: start;
}
.guide-symptom-card {
  padding: 0;
}
.guide-symptom-list {
  padding: 8px 24px 24px;
}
.guide-symptom-list > div {
  padding: 16px 0;
  border-top: 1px solid #ece5da;
}
.guide-symptom-list > div:first-child {
  border-top: 0;
  padding-top: 0;
}
.guide-symptom-list h3 {
  margin: 0 0 6px;
  font-size: 1.05rem;
}
.guide-symptom-list p {
  margin: 0;
  color: #2f8a84;
  font-weight: 700;
}
.guide-note-list {
  padding: 8px 24px 24px;
}

/* director */
.director-profile-card p {
  margin: 0;
  color: #70817f;
}
.profile-photo-image {
  aspect-ratio: 4 / 3;
  padding: 0;
  overflow: hidden;
  background: #eef4f2;
}
.profile-photo-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.director-message-layout {
  align-items: start;
}
.director-philosophy-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* news archive */
.news-archive-list {
  display: grid;
  gap: 18px;
}
.news-archive-item {
  overflow: hidden;
}
.news-archive-link {
  display: grid;
  grid-template-columns: 110px 120px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 22px 24px;
}
.news-archive-link time {
  display: inline-block;
  color: #6b7673;
  font-weight: 500;
  padding-top: 4px;
}
.news-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 6px 14px;
  border-radius: 999px;
  background: #e2e4dc;
  color: #5f6d6a;
  font-size: 0.88rem;
  font-weight: 700;
}
.news-chip.is-green { background: #d8ebe6; color: #2f8a84; }
.news-chip.is-blue { background: #dcecf1; color: #4f8591; }
.news-archive-copy h2 {
  margin: 0 0 8px;
  font-size: 1.16rem;
  line-height: 1.55;
}
.news-archive-copy p {
  margin: 0;
  color: #6a7977;
  line-height: 1.85;
}
.archive-pagination {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 32px;
}
.archive-pagination a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid #d8dcd5;
  border-radius: 999px;
  background: #fff;
  color: #2d3a38;
  font-weight: 700;
}
.archive-pagination a.is-current {
  background: #2f8a84;
  border-color: #2f8a84;
  color: #fff;
}

/* news single */
.news-single-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(300px, .9fr);
  gap: 28px;
  align-items: start;
}
.news-single-article {
  padding: 28px;
}
.news-single-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}
.news-single-meta time {
  color: #6b7673;
  font-weight: 500;
}
.news-single-figure {
  margin: 0 0 24px;
  overflow: hidden;
  border-radius: 22px;
}
.news-single-figure img {
  width: 100%;
  display: block;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.news-single-content {
  color: #5f706e;
  line-height: 1.95;
}
.news-single-content h2 {
  margin: 28px 0 14px;
  color: #223533;
  font-size: 1.35rem;
}
.news-single-content p {
  margin: 0 0 16px;
}
.news-single-content ul {
  margin: 0 0 16px;
  padding-left: 1.25rem;
}
.news-side-card {
  padding: 0 0 20px;
}
.related-news-list {
  padding: 8px 24px 0;
}
.related-news-list a {
  display: block;
  padding: 16px 0;
  border-top: 1px solid #ece5da;
}
.related-news-list a:first-child {
  border-top: 0;
  padding-top: 0;
}
.related-news-list time {
  display: block;
  margin-bottom: 8px;
  color: #6b7673;
  font-size: 0.92rem;
}
.related-news-list span {
  color: #223533;
  font-weight: 700;
  line-height: 1.75;
}
.related-news-more {
  color: #2f8a84;
  font-weight: 700;
}

/* WordPress-friendly helpers */
.wp-content-block + .wp-content-block {
  margin-top: 24px;
}
.wp-card-grid {
  display: grid;
  gap: 24px;
}

@media (max-width: 900px) {
  .subpage-photo-strip,
  .guide-simple-grid,
  .director-philosophy-grid,
  .news-single-layout {
    grid-template-columns: 1fr;
  }

  .news-archive-link {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .news-archive-link time {
    padding-top: 0;
  }
}

@media (max-width: 767px) {
  .subpage-photo-strip {
    gap: 14px;
    margin-bottom: 40px;
  }
  .guide-card-head,
  .guide-symptom-list,
  .guide-note-list,
  .related-news-list {
    padding-left: 20px;
    padding-right: 20px;
  }
  .news-archive-link {
    padding: 18px 20px;
  }
  .news-single-article {
    padding: 22px;
  }
}


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

.footer-search-form{
  display:flex;
  gap:10px;
  margin-bottom:10px;
}
.footer-search-form input{
  width:100%;
  min-width:0;
  height:46px;
  padding:0 14px;
  border:1px solid rgba(231,242,239,.28);
  border-radius:12px;
  background:rgba(255,255,255,.08);
  color:#f4faf8;
  font:inherit;
}
.footer-search-form input::placeholder{
  color:#c7d7d4;
}
.footer-search-form button{
  flex:0 0 auto;
  height:46px;
  padding:0 18px;
  border:1px solid rgba(231,242,239,.28);
  border-radius:12px;
  background:transparent;
  color:#f4faf8;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.footer-search p{
  margin:0;
  color:#b9cbc8;
  font-size:12px;
  line-height:1.7;
}
@media (max-width: 700px){
  .footer-search-form{
    flex-direction:column;
  }
  .footer-search-form button{
    width:100%;
  }
}


/* Header / footer minor updates */
.header-contact .header-hours{
  display:none;
}
.footer-schedule-primary{
  white-space:nowrap;
  font-size:13px;
}
@media (max-width: 1180px){
  .footer-schedule-primary{
    white-space:normal;
    font-size:14px;
  }
}


/* News single page title size fix */
.news-single-page .subpage-copy h1 {
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  line-height: 1.28;
  letter-spacing: -0.02em;
  max-width: 12em;
}

@media (max-width: 768px) {
  .news-single-page .subpage-copy h1 {
    font-size: 1.7rem;
    line-height: 1.32;
  }
}


/* news-single title size adjustment */
.news-single-page .subpage-copy h1 {
  font-size: clamp(1.28rem, 2.05vw, 1.75rem);
  line-height: 1.32;
  letter-spacing: -0.01em;
  max-width: none;
  white-space: nowrap;
}

@media (max-width: 767px) {
  .news-single-page .subpage-copy h1 {
    white-space: normal;
    font-size: 1.45rem;
    line-height: 1.36;
  }
}


/* =========================================
   Director page
========================================= */
.director-page-section .subpage-photo-strip {
  margin-bottom: 40px;
}

.director-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.8fr);
  gap: 24px;
  align-items: start;
}

.director-article,
.director-summary-card,
.director-closing-card,
.director-policy-card {
  border-radius: 24px;
}

.director-article {
  padding: 36px;
}

.director-article-head {
  margin-bottom: 20px;
}

.director-article-head h2,
.director-closing-card .guide-card-head h2 {
  font-size: 2rem;
  line-height: 1.35;
}

.director-body p {
  margin: 0 0 1.25em;
  font-size: 1rem;
  line-height: 2;
  color: #34433f;
}

.director-block + .director-block {
  margin-top: 36px;
  padding-top: 32px;
  border-top: 1px solid rgba(36, 77, 60, 0.12);
}

.director-block h3 {
  margin: 0 0 18px;
  font-size: 1.4rem;
  line-height: 1.5;
  color: #244d3c;
}

.director-summary-card {
  padding: 28px;
  position: sticky;
  top: 120px;
}

.director-summary-card .guide-card-head {
  margin-bottom: 16px;
}

.director-summary-card .guide-card-head h2 {
  font-size: 1.35rem;
}

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

.director-policy-card {
  padding: 28px;
}

.director-policy-card h3 {
  margin: 0 0 14px;
  font-size: 1.2rem;
  line-height: 1.6;
  color: #244d3c;
}

.director-policy-card p {
  margin: 0;
  font-size: 0.96rem;
  line-height: 1.9;
  color: #4e5f59;
}

.director-policy-card .policy-note {
  margin-top: 14px;
  font-size: 0.88rem;
  color: #6a7b75;
}

.director-closing-section {
  padding-top: 0;
}

.director-closing-card {
  padding: 32px 36px;
}

@media (max-width: 1024px) {
  .director-layout {
    grid-template-columns: 1fr;
  }

  .director-summary-card {
    position: static;
  }

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

@media (max-width: 767px) {
  .director-page-section .subpage-photo-strip {
    margin-bottom: 28px;
  }

  .director-article,
  .director-summary-card,
  .director-policy-card,
  .director-closing-card {
    padding: 22px;
    border-radius: 20px;
  }

  .director-article-head h2,
  .director-closing-card .guide-card-head h2 {
    font-size: 1.55rem;
  }

  .director-block h3 {
    font-size: 1.18rem;
  }

  .director-body p,
  .director-policy-card p {
    font-size: 0.95rem;
    line-height: 1.9;
  }
}



/* =========================================
   Top policy highlight
========================================= */
.policy-highlight{
  padding: 0 0 76px;
  background:#fff;
}
.policy-highlight-card{
  display:grid;
  grid-template-columns:minmax(0, 1.3fr) auto auto;
  gap:28px;
  align-items:center;
  padding:34px 38px;
  background:linear-gradient(135deg, #ffffff 0%, #f7faf8 100%);
  border:1px solid #e2ddd4;
  border-radius:28px;
  box-shadow:0 10px 30px rgba(29,61,57,.04);
}
.policy-highlight-copy h2{
  margin:8px 0 10px;
  font-size:clamp(1.75rem, 3vw, 2.45rem);
  line-height:1.22;
  color:#223533;
}
.policy-highlight-copy p{
  margin:0;
  color:#62716f;
  line-height:1.9;
}
.policy-highlight-label{
  margin:0;
  font-size:12px;
  font-weight:700;
  color:var(--green);
  letter-spacing:.08em;
}
.policy-highlight-points{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.policy-highlight-points span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:86px;
  padding:12px 16px;
  border-radius:999px;
  background:#edf5f3;
  color:var(--green);
  font-weight:700;
}
.policy-highlight-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  padding:0 22px;
  border-radius:14px;
  background:var(--green);
  color:#fff;
  font-weight:700;
  white-space:nowrap;
}
@media (max-width: 960px){
  .policy-highlight-card{
    grid-template-columns:1fr;
    justify-items:start;
  }
  .policy-highlight-points{
    justify-content:flex-start;
  }
}

/* =========================================
   Policy page
========================================= */
.policy-intro,
.policy-closing-card,
.policy-side-card,
.policy-pillar{
  padding:32px 36px;
}
.policy-body p{
  margin:0 0 1.2em;
  font-size:1rem;
  line-height:2;
  color:#41514f;
}
.policy-pillars{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:22px;
}
.policy-pillar{
  border-radius:24px;
}
.policy-pillar-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:78px;
  min-height:40px;
  margin-bottom:18px;
  padding:0 16px;
  border-radius:999px;
  background:#edf5f3;
  color:var(--green);
  font-size:14px;
  font-weight:700;
}
.policy-pillar h3{
  margin:0 0 16px;
  font-size:1.32rem;
  line-height:1.55;
  color:#223533;
}
.policy-pillar p{
  margin:0 0 1em;
  color:#4b5b59;
  line-height:1.95;
}
.policy-closing-grid{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);
  gap:24px;
  align-items:start;
}
.policy-side-card{
  position:sticky;
  top:120px;
}
.policy-side-links{
  display:grid;
  gap:12px;
}
.policy-side-links a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:58px;
  padding:0 18px;
  border:1px solid #e4dfd7;
  border-radius:16px;
  background:#fff;
  font-weight:700;
  color:#294240;
}
.policy-side-links a::after{
  content:"→";
  color:var(--green);
}
@media (max-width: 1024px){
  .policy-pillars{
    grid-template-columns:1fr;
  }
  .policy-closing-grid{
    grid-template-columns:1fr;
  }
  .policy-side-card{
    position:static;
  }
}
@media (max-width: 767px){
  .policy-highlight{
    padding-bottom:56px;
  }
  .policy-highlight-card{
    padding:24px 22px;
    border-radius:22px;
    gap:18px;
  }
  .policy-highlight-copy h2{
    font-size:1.7rem;
  }
  .policy-highlight-link{
    width:100%;
  }
  .policy-intro,
  .policy-closing-card,
  .policy-side-card,
  .policy-pillar{
    padding:22px;
    border-radius:20px;
  }
  .policy-pillar h3{
    font-size:1.16rem;
  }
  .policy-body p,
  .policy-pillar p{
    font-size:.96rem;
    line-height:1.9;
  }
}


/* =========================================
   TOP - raikan highlight
========================================= */
.policy-highlight{
  padding: 12px 0 84px;
  background: #f3f1eb;
}
.policy-highlight .container{
  max-width: 1120px;
}
.policy-highlight-card{
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 28px;
  padding: 34px 40px;
  border: 1px solid #ddd7cc;
  border-radius: 28px;
  background: linear-gradient(135deg,#fffdf8 0%, #f6f2e8 100%);
}
.policy-highlight-label{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 14px;
  margin:0 0 14px;
  border-radius:999px;
  background:#edf5f3;
  color:var(--green);
  font-size:13px;
  font-weight:700;
  letter-spacing:.02em;
}
.policy-highlight-copy h2{
  margin:0 0 12px;
  font-size:2.05rem;
  line-height:1.35;
  color:#223533;
}
.policy-highlight-copy p{
  margin:0;
  max-width:760px;
  font-size:1rem;
  line-height:1.9;
  color:#536360;
}
.policy-highlight-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:220px;
  min-height:58px;
  padding:0 22px;
  border-radius:999px;
  background:var(--green);
  color:#fff;
  font-size:1rem;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
}
.policy-highlight-link::after{
  content:"→";
  margin-left:10px;
  font-size:1rem;
}
@media (max-width: 900px){
  .policy-highlight{
    padding: 8px 0 64px;
  }
  .policy-highlight-card{
    grid-template-columns:1fr;
    gap:20px;
    padding:28px 26px;
  }
  .policy-highlight-copy h2{
    font-size:1.7rem;
  }
  .policy-highlight-link{
    width:100%;
  }
}

.footer-bottom-inner a{color:#99b2ae;}
.footer-bottom-inner p{margin:0;}


/* First visit FAQ toggle cue */
.first-visit-faq-list details {
  position: relative;
}
.first-visit-faq-list summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.first-visit-faq-list summary::after {
  content: "+";
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border: 1px solid #2e8f89;
  border-radius: 999px;
  color: #2e8f89;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 28px;
  text-align: center;
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
.first-visit-faq-list details[open] summary::after {
  content: "−";
  background: #2e8f89;
  color: #ffffff;
}



/* =========================================
   Scroll fade-in (subtle / layout-safe)
========================================= */
.fade-target {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.95s ease,
    transform 0.95s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.fade-target.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

@media (prefers-reduced-motion: reduce) {
  .fade-target {
    opacity: 1;
    transform: none;
    transition: none;
  }
}


.fade-target.fade-left {
  transform: translate3d(-22px, 0, 0);
}

.fade-target.fade-right {
  transform: translate3d(22px, 0, 0);
}

.fade-target.fade-up {
  transform: translate3d(0, 18px, 0);
}

.fade-target.is-visible.fade-left,
.fade-target.is-visible.fade-right,
.fade-target.is-visible.fade-up {
  transform: translate3d(0, 0, 0);
}

@media (max-width: 767px) {
  .fade-target.fade-left,
  .fade-target.fade-right {
    transform: translate3d(0, 16px, 0);
  }
}


/* ==========================================================================
   Director page / part-time doctors message
   ========================================================================== */
.director-message-section {
  padding-top: 0;
}

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

.doctor-message-card {
  padding: 30px 32px;
}

.doctor-message-head {
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(36, 77, 60, 0.12);
}

.doctor-role {
  margin: 0 0 8px;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #6f837b;
}

.doctor-message-head h3 {
  margin: 0;
  font-size: 1.32rem;
  line-height: 1.5;
  color: #244d3c;
}

.doctor-message-card .director-body p:last-child {
  margin-bottom: 0;
}

@media (max-width: 1024px) {
  .doctor-message-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .doctor-message-card {
    padding: 22px;
    border-radius: 20px;
  }

  .doctor-message-head h3 {
    font-size: 1.15rem;
  }
}


/* ==========================================================================
   Utility pages (privacy / recruit / medical ad guideline)
   ========================================================================== */
.utility-page-section {
  padding-top: 72px;
  padding-bottom: 72px;
}

.utility-intro {
  padding: 34px 38px;
}

.utility-grid {
  display: grid;
  gap: 22px;
}

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

.utility-grid-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.utility-card {
  padding: 30px 32px;
}

.utility-card h3,
.utility-intro h2,
.utility-table-card h2,
.utility-contact-card h2 {
  margin: 0 0 14px;
  font-size: 1.28rem;
  line-height: 1.55;
  color: #244d3c;
}

.utility-card p,
.utility-intro p,
.utility-contact-card p {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.95;
  color: #4d5f5c;
}

.utility-card .bullet-list {
  margin-top: 14px;
}

.utility-card .bullet-list li + li {
  margin-top: 10px;
}

.utility-table-card,
.utility-contact-card {
  padding: 34px 38px;
}

.utility-table-wrap {
  overflow-x: auto;
}

.utility-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 640px;
}

.utility-table th,
.utility-table td {
  padding: 18px 0;
  border-bottom: 1px solid rgba(36, 77, 60, 0.12);
  text-align: left;
  vertical-align: top;
  font-size: 0.98rem;
  line-height: 1.85;
  color: #4d5f5c;
}

.utility-table th {
  width: 200px;
  padding-right: 28px;
  font-weight: 700;
  color: #244d3c;
}

.utility-contact-meta {
  margin-top: 18px;
}

.utility-contact-meta p + p {
  margin-top: 6px;
}

.recruit-job-card {
  min-height: 100%;
}

@media (max-width: 1024px) {
  .utility-grid-three {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  .utility-grid-two {
    grid-template-columns: 1fr;
  }

  .utility-page-section {
    padding-top: 56px;
    padding-bottom: 56px;
  }
}

@media (max-width: 767px) {
  .utility-intro,
  .utility-card,
  .utility-table-card,
  .utility-contact-card {
    padding: 24px 22px;
  }

  .utility-card h3,
  .utility-intro h2,
  .utility-table-card h2,
  .utility-contact-card h2 {
    font-size: 1.14rem;
  }

  .utility-table {
    min-width: 0;
  }

  .utility-table th,
  .utility-table td {
    display: block;
    width: 100%;
    padding: 10px 0;
  }

  .utility-table th {
    padding-top: 16px;
    padding-right: 0;
    border-bottom: none;
  }

  .utility-table td {
    padding-top: 0;
  }
}


/* Medical guide equipment gallery */
.equipment-gallery-section {
  padding-top: 12px;
}

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

.equipment-gallery-card {
  overflow: hidden;
  padding: 0;
  border-radius: 28px;
}

.equipment-gallery-card img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 28px;
}

.equipment-gallery-card figcaption {
  padding: 16px 20px 18px;
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-main);
}

@media (max-width: 900px) {
  .equipment-gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
}

@media (max-width: 640px) {
  .equipment-gallery-grid {
    grid-template-columns: 1fr;
  }

  .equipment-gallery-card img {
    border-radius: 22px 22px 0 0;
  }

  .equipment-gallery-card figcaption {
    font-size: 0.95rem;
    padding: 14px 16px 16px;
  }
}


/* Equipment gallery card edge cleanup */
.equipment-gallery-card {
  background: transparent;
  border: none;
  box-shadow: none;
}

.equipment-gallery-card img {
  border-radius: 28px;
  background: #fff;
}

@media (max-width: 640px) {
  .equipment-gallery-card img {
    border-radius: 22px;
  }
}


/* Equipment gallery final cleanup */
.equipment-gallery-card {
  overflow: hidden;
  border-radius: 28px;
  background: var(--bg-soft);
  padding: 0;
  line-height: 0;
}

.equipment-gallery-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: center;
  border-radius: 0;
  background: transparent;
}

@media (max-width: 640px) {
  .equipment-gallery-card {
    border-radius: 22px;
  }

  .equipment-gallery-card img {
    border-radius: 0;
  }
}


/* Privacy page spacing fix */
.privacy-page .utility-intro {
  margin-bottom: 30px;
}

.privacy-page .utility-grid-two {
  column-gap: 34px;
  row-gap: 30px;
}

@media (max-width: 900px) {
  .privacy-page .utility-intro {
    margin-bottom: 22px;
  }

  .privacy-page .utility-grid-two {
    row-gap: 22px;
  }
}


/* === Header contact emphasis update === */
.header-meta{
  gap:18px;
}

.header-contact{
  position:relative;
  min-width:248px;
  padding:10px 18px 11px 18px;
  border:1px solid rgba(47,139,132,.18);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(240,248,246,.96) 100%);
  box-shadow:0 10px 22px rgba(23,74,70,.07);
  text-align:right;
}

.header-contact::before,
.header-contact::after{
  content:none;
  display:none;
}


.header-label{
  margin:0 0 3px;
  font-size:10px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.08em;
  color:var(--green);
}

.header-tel{
  display:inline-block;
  font-size:30px;
  line-height:1;
  font-weight:800;
  letter-spacing:.01em;
  color:var(--green-dark);
}

.header-tel:hover{
  color:var(--green);
}

@media (max-width: 1180px){
  .header-meta{
    gap:14px;
  }

  .header-contact{
    min-width:220px;
    padding:9px 15px 10px 15px;
  }

  .header-contact::before,
  .header-contact::after{
    content:none;
    display:none;
  }

  .header-tel{
    font-size:27px;
  }
}


.section-action{
  display:flex;
  justify-content:center;
  margin-top:40px;
}
.section-action .btn{
  min-width:220px;
}
@media (max-width: 767px){
  .section-action{
    margin-top:28px;
  }
  .section-action .btn{
    width:100%;
    max-width:320px;
  }
}

/* index hours card specific adjustment */
.hours-card tbody td.hours-strong{font-weight:700;}


/* --- Header CTA button shape unification --- */
.site-header .header-actions .btn,
.site-header .header-actions .btn-small{
  border-radius:12px !important;
  min-height:42px !important;
  padding:9px 18px !important;
}



/* --- Raikan CTA card background fix (index only) --- */
.policy-highlight,
.policy-banner,
.raikan-highlight,
.raikan-banner {
  background: #f5f3ec;
}

.policy-highlight .btn,
.policy-highlight .button,
.policy-banner .btn,
.policy-banner .button,
.raikan-highlight .btn,
.raikan-highlight .button,
.raikan-banner .btn,
.raikan-banner .button {
  background: #f5f3ec !important;
  border-color: #2f948e !important;
  color: #2f948e !important;
  box-shadow: none !important;
}




/* --- Index medical guide tab links removed --- */
[aria-disabled="true"]{
  pointer-events:none !important;
  cursor:default !important;
}




/* --- Smart Gothic font tuning (all pages) --- */
html, body,
button, input, select, textarea {
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI",
    "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-weight: 400;
  letter-spacing: 0.01em;
}

h1, h2, h3, h4, h5, h6,
.section-title,
.hero-title,
.card-title,
.news-title,
.doctor-name,
.guide-card-title,
.tab-trigger,
.nav-link,
.header-nav a,
.footer-nav a,
.btn,
.button {
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI",
    "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif !important;
}

h1, .hero-title {
  font-weight: 800;
  letter-spacing: -0.02em;
}

h2, .section-title {
  font-weight: 700;
  letter-spacing: -0.01em;
}

h3, h4, h5, h6,
.card-title,
.news-title,
.doctor-name,
.guide-card-title,
.tab-trigger,
.nav-link,
.header-nav a,
.footer-nav a,
.btn,
.button {
  font-weight: 700;
  letter-spacing: -0.005em;
}

p, li, dt, dd, td, th, small, .lead, .text, .description {
  font-weight: 400;
  letter-spacing: 0.01em;
}





/* --- Midashi-go style trial: headings only --- */
:root{
  --font-midashi-trial: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI",
    "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
}

h1, h2, h3, h4, h5, h6,
.hero-title,
.section-title,
.section-heading,
.page-title,
.subpage-title,
.card-title,
.news-title,
.doctor-name,
.guide-card-title,
.tab-trigger,
.btn,
.button,
.header-nav a,
.footer-nav a,
.header-actions .btn,
.site-header .btn,
.fv-copy,
.catch-copy {
  font-family: var(--font-midashi-trial) !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.35;
}

h1, .hero-title, .page-title, .subpage-title, .fv-copy, .catch-copy{
  font-weight: 900 !important;
  letter-spacing: -0.045em !important;
  line-height: 1.22 !important;
}

h2, .section-title, .section-heading{
  font-weight: 800 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.28 !important;
}

h3, h4, .card-title, .news-title, .doctor-name, .guide-card-title, .tab-trigger{
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
}

.btn, .button, .header-nav a, .footer-nav a{
  font-weight: 700 !important;
  letter-spacing: -0.015em !important;
}

body, p, li, dt, dd, td, th, small, .lead, .text, .description{
  letter-spacing: 0.01em;
}





/* --- Midashi-go style trial: body text tuning --- */
body,
p,
li,
dt,
dd,
td,
th,
small,
.lead,
.text,
.description,
.news-excerpt,
.article-body,
.entry-content,
.copy,
.subcopy,
.guide-text,
.faq-answer,
.footer-address,
.footer-hours {
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI",
    "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em !important;
  line-height: 1.9 !important;
}






/* --- index access anchor offset fix --- */
#access{
  scroll-margin-top: 116px;
}

@media (max-width: 767px){
  #access{
    scroll-margin-top: 84px;
  }
}




/* --- Unified tasteful button hover --- */
.btn,
.button,
a.btn,
a.button,
input[type="submit"],
button,
.wp-block-button__link {
  transition:
    background-color 0.28s ease,
    border-color 0.28s ease,
    color 0.28s ease,
    box-shadow 0.28s ease,
    transform 0.28s ease,
    filter 0.28s ease;
  will-change: transform, box-shadow, background-color, border-color, filter;
}

@media (hover: hover) and (pointer: fine) {
  .btn:hover,
  .button:hover,
  a.btn:hover,
  a.button:hover,
  input[type="submit"]:hover,
  button:hover,
  .wp-block-button__link:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(20, 54, 50, 0.14);
    filter: saturate(0.98) brightness(0.96);
  }

  .btn:active,
  .button:active,
  a.btn:active,
  a.button:active,
  input[type="submit"]:active,
  button:active,
  .wp-block-button__link:active {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(20, 54, 50, 0.10);
  }

  .btn-outline:hover,
  .button-outline:hover,
  a.btn-outline:hover,
  a.button-outline:hover,
  .btn--outline:hover,
  .button--outline:hover {
    background: rgba(23, 99, 93, 0.09) !important;
    border-color: rgba(23, 99, 93, 0.72) !important;
    color: rgb(23, 99, 93) !important;
  }

  .btn:hover .icon,
  .button:hover .icon,
  a.btn:hover .icon,
  a.button:hover .icon {
    transform: translateX(2px);
  }
}

.btn .icon,
.button .icon,
a.btn .icon,
a.button .icon {
  transition: transform 0.28s ease;
}

.btn:focus-visible,
.button:focus-visible,
a.btn:focus-visible,
a.button:focus-visible,
input[type="submit"]:focus-visible,
button:focus-visible,
.wp-block-button__link:focus-visible {
  outline: 2px solid rgba(23, 99, 93, 0.45);
  outline-offset: 3px;
}












/* --- Targeted button motion: verified exact buttons only --- */
@media (hover: hover) and (pointer: fine) {
  /* index: global/header nav must stay static */
  .page-index .site-header a,
  .page-index .header-nav a,
  .page-index .global-nav a,
  .page-index nav a {
    transform: none !important;
    box-shadow: none !important;
    filter: none !important;
  }

  .page-index .site-header a:hover,
  .page-index .header-nav a:hover,
  .page-index .global-nav a:hover,
  .page-index nav a:hover,
  .page-index .site-header a:focus,
  .page-index .header-nav a:focus,
  .page-index .global-nav a:focus,
  .page-index nav a:focus,
  .page-index .site-header a:active,
  .page-index .header-nav a:active,
  .page-index .global-nav a:active,
  .page-index nav a:active {
    transform: none !important;
    box-shadow: none !important;
    filter: none !important;
  }

  /* index: only the policy CTA button should move */
  .page-index .policy-highlight .btn:hover,
  .page-index .policy-highlight .button:hover,
  .page-index .policy-banner .btn:hover,
  .page-index .policy-banner .button:hover,
  .page-index .raikan-highlight .btn:hover,
  .page-index .raikan-highlight .button:hover,
  .page-index .raikan-banner .btn:hover,
  .page-index .raikan-banner .button:hover {
    transform: translateY(-4px) scale(1.015) !important;
    box-shadow: 0 18px 34px rgba(20, 54, 50, 0.16) !important;
    filter: saturate(1) brightness(0.95) !important;
  }

  /* raikan-policy: upper nav/header/local nav stay static */
  .page-raikan-policy .site-header a,
  .page-raikan-policy .site-header .btn,
  .page-raikan-policy .header-nav a,
  .page-raikan-policy .global-nav a,
  .page-raikan-policy .nav-list a,
  .page-raikan-policy .page-nav a,
  .page-raikan-policy .section-nav a,
  .page-raikan-policy .anchor-nav a,
  .page-raikan-policy .local-nav a,
  .page-raikan-policy nav a,
  .page-raikan-policy .policy-nav a {
    transform: none !important;
    box-shadow: none !important;
    filter: none !important;
  }

  .page-raikan-policy .site-header a:hover,
  .page-raikan-policy .site-header .btn:hover,
  .page-raikan-policy .header-nav a:hover,
  .page-raikan-policy .global-nav a:hover,
  .page-raikan-policy .nav-list a:hover,
  .page-raikan-policy .page-nav a:hover,
  .page-raikan-policy .section-nav a:hover,
  .page-raikan-policy .anchor-nav a:hover,
  .page-raikan-policy .local-nav a:hover,
  .page-raikan-policy nav a:hover,
  .page-raikan-policy .policy-nav a:hover,
  .page-raikan-policy .site-header a:focus,
  .page-raikan-policy .site-header .btn:focus,
  .page-raikan-policy .header-nav a:focus,
  .page-raikan-policy .global-nav a:focus,
  .page-raikan-policy .nav-list a:focus,
  .page-raikan-policy .page-nav a:focus,
  .page-raikan-policy .section-nav a:focus,
  .page-raikan-policy .anchor-nav a:focus,
  .page-raikan-policy .local-nav a:focus,
  .page-raikan-policy nav a:focus,
  .page-raikan-policy .policy-nav a:focus,
  .page-raikan-policy .site-header a:active,
  .page-raikan-policy .site-header .btn:active,
  .page-raikan-policy .header-nav a:active,
  .page-raikan-policy .global-nav a:active,
  .page-raikan-policy .nav-list a:active,
  .page-raikan-policy .page-nav a:active,
  .page-raikan-policy .section-nav a:active,
  .page-raikan-policy .anchor-nav a:active,
  .page-raikan-policy .local-nav a:active,
  .page-raikan-policy nav a:active,
  .page-raikan-policy .policy-nav a:active {
    transform: none !important;
    box-shadow: none !important;
    filter: none !important;
  }

  /* raikan-policy: only bottom related-page 3 links should move */
  .page-raikan-policy .policy-side-links a{
    transition:
      background-color 0.28s ease,
      border-color 0.28s ease,
      color 0.28s ease,
      box-shadow 0.28s ease,
      transform 0.28s ease,
      filter 0.28s ease !important;
    will-change: transform, box-shadow, background-color, border-color, filter;
  }

  .page-raikan-policy .policy-side-links a:hover,
  .page-raikan-policy .policy-side-links a:focus {
    transform: translateY(-4px) scale(1.015) !important;
    box-shadow: 0 18px 34px rgba(20, 54, 50, 0.16) !important;
    filter: saturate(1) brightness(0.95) !important;
  }
}



/* --- Restore header CTA hover motion on index and raikan-policy --- */
@media (hover: hover) and (pointer: fine) {
  .page-index .site-header .header-actions .btn:hover,
  .page-index .site-header .header-actions a.btn:hover,
  .page-index .site-header .header-actions .button:hover,
  .page-index .site-header .header-actions a.button:hover,
  .page-raikan-policy .site-header .header-actions .btn:hover,
  .page-raikan-policy .site-header .header-actions a.btn:hover,
  .page-raikan-policy .site-header .header-actions .button:hover,
  .page-raikan-policy .site-header .header-actions a.button:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 14px 28px rgba(20, 54, 50, 0.14) !important;
    filter: saturate(0.98) brightness(0.96) !important;
  }

  .page-index .site-header .header-actions .btn:active,
  .page-index .site-header .header-actions a.btn:active,
  .page-index .site-header .header-actions .button:active,
  .page-index .site-header .header-actions a.button:active,
  .page-raikan-policy .site-header .header-actions .btn:active,
  .page-raikan-policy .site-header .header-actions a.btn:active,
  .page-raikan-policy .site-header .header-actions .button:active,
  .page-raikan-policy .site-header .header-actions a.button:active {
    transform: translateY(-1px) !important;
    box-shadow: 0 8px 18px rgba(20, 54, 50, 0.10) !important;
  }
}





/* --- Restore index policy CTA hover motion --- */
@media (hover: hover) and (pointer: fine) {
  .page-index a.js-policy-cta,
  .page-index .js-policy-cta {
    transition:
      background-color 0.28s ease,
      border-color 0.28s ease,
      color 0.28s ease,
      box-shadow 0.28s ease,
      transform 0.28s ease,
      filter 0.28s ease !important;
    will-change: transform, box-shadow, background-color, border-color, filter;
  }

  .page-index a.js-policy-cta:hover,
  .page-index .js-policy-cta:hover,
  .page-index a.js-policy-cta:focus-visible,
  .page-index .js-policy-cta:focus-visible {
    transform: translateY(-4px) scale(1.015) !important;
    box-shadow: 0 18px 34px rgba(20, 54, 50, 0.16) !important;
    filter: saturate(1) brightness(0.95) !important;
  }

  .page-index a.js-policy-cta:active,
  .page-index .js-policy-cta:active {
    transform: translateY(-1px) scale(1.005) !important;
    box-shadow: 0 8px 18px rgba(20, 54, 50, 0.10) !important;
  }
}



/* --- Certification section --- */
.certification{
  padding:94px 0;
  background:#f7f2ec;
}
.certification-card{
  max-width:960px;
  margin:0 auto;
  padding:44px 46px 40px;
  background:#fff;
  border:1px solid rgba(35,50,48,.08);
  border-radius:28px;
  box-shadow:0 18px 42px rgba(27,49,46,.08);
}
.certification-copy{
  display:grid;
  gap:16px;
}
.certification-copy p{
  margin:0;
  color:#42514f;
  font-size:17px;
  line-height:1.95;
}
.certification-copy__lead{
  color:#233230 !important;
  font-size:24px !important;
  line-height:1.7 !important;
  font-weight:700;
}
.certification-links{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-top:28px;
}
.certification-note{
  margin:18px 0 0;
  color:#6c7775;
  font-size:13px;
  line-height:1.7;
}
@media (max-width: 767px){
  .certification{
    padding:72px 0;
  }
  .certification-card{
    padding:28px 22px 24px;
    border-radius:20px;
  }
  .certification-copy__lead{
    font-size:20px !important;
    line-height:1.75 !important;
  }
  .certification-copy p{
    font-size:15px;
    line-height:1.9;
  }
  .certification-links{
    flex-direction:column;
  }
  .certification-links .btn{
    width:100%;
  }
}
