/*
Theme Name: Midori Clinic Theme
Theme URI: https://example.com/
Author: ALUTE
Description: 東京タワー徒歩1分のクリニック向けオリジナルWordPressテーマ。静的HTML版をWordPressテーマ化したものです。
Version: 1.0.0
Text Domain: midori-clinic
*/


:root{--white:#fff;--base:#f7faf9;--base-blue:#f5f9fc;--base-green:#eff8f2;--text:#23384f;--muted:#667989;--line:#e1ebef;--green:#69b980;--green-dark:#2f8c5e;--blue:#4d7fae;--navy:#1f4668;--shadow:0 18px 50px rgba(35,70,100,.10);--shadow-soft:0 10px 28px rgba(35,70,100,.07);--radius:24px;--serif:'Noto Serif JP',serif;--sans:'Noto Sans JP',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--sans);color:var(--text);background:#fff;font-size:15.5px;line-height:1.85;letter-spacing:.035em;-webkit-text-size-adjust:100%}body.menu-open,body.modal-open{overflow:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}p{margin:0;color:var(--muted)}.container{width:min(1120px,calc(100% - 48px));margin:0 auto}.narrow{width:min(880px,calc(100% - 48px));margin:0 auto}.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(255,255,255,.94);border-bottom:1px solid rgba(227,235,239,.75);backdrop-filter:blur(14px)}.header-inner{height:78px;width:min(1240px,calc(100% - 48px));margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.logo img{width:210px;height:auto}.global-nav{display:flex;align-items:center;gap:24px;font-size:13px;font-weight:700;color:#3d5268;white-space:nowrap}.global-nav a{position:relative;padding:26px 0}.global-nav a:after{content:'';position:absolute;left:0;right:0;bottom:19px;height:1px;background:var(--green);transform:scaleX(0);transition:.25s}.global-nav a:hover:after,.global-nav a[aria-current="page"]:after{transform:scaleX(1)}.header-cta{display:flex;align-items:center;gap:12px}.mini-phone{font-weight:700;color:var(--navy);font-size:14px}.menu-button{display:none;border:0;background:none}.btn,.link-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 28px;border-radius:999px;font-weight:700;border:1px solid transparent;transition:transform .25s,box-shadow .25s,background .25s;white-space:nowrap;line-height:1.2}.btn:hover,.link-button:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(42,80,110,.14)}.btn-primary{background:linear-gradient(135deg,var(--green),var(--green-dark));color:#fff}.btn-secondary{background:var(--blue);color:#fff}.btn-ghost,.link-button{background:#fff;color:var(--navy);border-color:#cad8e2}.btn-small{min-height:40px;padding:0 20px;font-size:13px}.section{padding:clamp(78px,7vw,116px) 0}.section-soft{background:linear-gradient(180deg,var(--base-blue),#fff)}.section-green{background:linear-gradient(180deg,var(--base-green),#fff)}.section-full{min-height:100svh}.two-column{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(38px,6vw,84px)}.three-column{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.align-center{align-items:center}.section-heading .label,.center-heading .label,.label{color:var(--blue);font-size:12px;font-weight:700;letter-spacing:.16em;margin:0 0 8px;text-transform:uppercase}h1,h2,h3{margin:0;font-family:var(--serif);font-weight:600;line-height:1.55;letter-spacing:.07em}h1{font-size:clamp(34px,4.6vw,58px);color:#243b58}h1 span{color:var(--blue)}h2{font-size:clamp(24px,2.35vw,32px);color:#26384d}h3{font-size:clamp(17px,1.3vw,20px)}.section-heading p:not(.label),.center-heading p:not(.label){margin-top:14px}.wide-text p{max-width:520px}.center-heading{text-align:center;max-width:760px;margin:0 auto 42px}.center-heading p:last-child{margin-top:14px}.card{background:rgba(255,255,255,.94);border:1px solid rgba(227,235,239,.92);border-radius:var(--radius);box-shadow:var(--shadow)}.hero{position:relative;display:flex;align-items:center;overflow:hidden;padding:128px clamp(24px,7vw,110px) 70px}.hero-picture{position:absolute;inset:78px 0 0 0}.hero-picture img{width:100%;height:100%;object-fit:cover;object-position:center center}.hero-overlay{position:absolute;inset:78px 0 0 0;background:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.84) 43%,rgba(255,255,255,.38) 70%,rgba(255,255,255,.12) 100%)}.hero-content{position:relative;z-index:2;width:min(650px,100%)}.eyebrow{color:var(--green-dark);font-weight:700;margin-bottom:16px}.hero-lead{margin-top:20px;font-size:16px;max-width:570px;color:#516374}.hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.hero-tags span{padding:7px 18px;border-radius:999px;background:rgba(255,255,255,.9);color:var(--navy);font-weight:700;box-shadow:var(--shadow-soft);font-size:13px}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}.access-badge{position:absolute;right:clamp(28px,8vw,120px);bottom:clamp(44px,8vw,104px);z-index:2;width:172px;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;text-align:center;box-shadow:var(--shadow);padding:26px}.access-badge small{display:block;color:var(--muted);line-height:1.3}.access-badge strong{display:block;font-size:25px;color:var(--green-dark);font-family:var(--serif);line-height:1.5}.access-badge span{display:block;font-size:12px;color:var(--muted);line-height:1.5}.page-hero{padding:144px 0 76px;background:linear-gradient(135deg,#f6fbfb,#fff 52%,#f2f8f3);position:relative;overflow:hidden}.page-hero:after{content:'';position:absolute;right:-90px;bottom:-120px;width:360px;height:360px;border-radius:50%;background:rgba(103,183,127,.12)}.page-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:50px;align-items:center}.page-hero h1{font-size:clamp(32px,4vw,48px)}.page-hero p:not(.label){margin-top:18px;max-width:620px}.page-hero img{height:285px;width:100%;object-fit:cover;object-position:center;border-radius:30px;box-shadow:var(--shadow)}.breadcrumb{margin-top:24px;font-size:13px;color:var(--muted)}.breadcrumb a{color:var(--blue);font-weight:700}.news-list{padding:24px 34px}.news-list a{display:grid;grid-template-columns:112px 84px 1fr;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.news-list a:last-child{border-bottom:0}.news-list time{color:var(--muted);font-size:13px}.news-list span{text-align:center;border-radius:999px;padding:2px 10px;background:#e8f1fb;color:var(--blue);font-size:12px;font-weight:700}.news-list span.blog{background:#e5f3e8;color:var(--green-dark)}.news-list strong{font-size:15px;line-height:1.7}.image-card{overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow)}.image-card img{width:100%;height:340px;object-fit:cover;object-position:center}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.feature-card{min-height:260px;padding:34px 24px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);text-align:center;box-shadow:var(--shadow-soft)}.feature-card img{width:48px;height:48px;margin:0 auto 20px;object-fit:contain}.feature-card p{margin-top:12px;font-size:14px}.medical-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.medical-card{overflow:hidden;border-radius:var(--radius);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.medical-card img{height:200px;width:100%;object-fit:cover;object-position:center}.medical-card div{padding:25px}.medical-card p{margin-top:10px;font-size:14px}.medical-card a{display:inline-block;margin-top:14px;color:var(--blue);font-weight:700}.section-cta{text-align:center;margin-top:42px}.flow-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:26px;gap:16px}.flow-card div{min-width:0;position:relative;padding:22px 20px;background:var(--base);border-radius:20px}.flow-card img{width:36px;height:36px;object-fit:contain;margin-bottom:14px}.flow-card strong{display:block;color:var(--navy);font-weight:700;font-size:15px;line-height:1.55}.flow-card span{display:block;color:var(--muted);font-size:13px;margin-top:7px;line-height:1.75}.doctor-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.doctor-card{display:grid;grid-template-columns:160px 1fr;gap:26px;padding:26px;align-items:center}.doctor-card img{width:160px;height:160px;border-radius:22px;object-fit:cover;object-position:center top;background:var(--base)}.role{color:var(--blue);font-weight:700;font-size:13px;margin-bottom:4px}.doctor-card p:last-child{margin-top:12px;font-size:14px}.facility-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.facility-grid figure{margin:0;overflow:hidden;border-radius:22px;background:#fff;box-shadow:var(--shadow-soft)}.facility-grid img{width:100%;height:165px;object-fit:cover;object-position:center;transition:transform .45s}.facility-grid figure:hover img{transform:scale(1.04)}.facility-grid figcaption{padding:13px;text-align:center;font-weight:700;color:var(--navy);font-size:13px}.schedule-box{padding:30px;overflow:visible}.schedule-table{width:100%;border-collapse:collapse;min-width:0;background:#fff;border-radius:18px;overflow:hidden;table-layout:fixed}.schedule-table th,.schedule-table td{padding:12px 8px;border:1px solid var(--line);text-align:center;font-size:13px;line-height:1.35}.schedule-table th{background:#f2f7fa;color:var(--navy);font-weight:700}.schedule-table td{color:var(--green-dark);font-weight:700}.schedule-table th:first-child{width:96px}.note{margin-top:14px;font-size:12.5px}.access-home{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:28px;align-items:stretch}.access-card{padding:34px}.access-card h2{margin-bottom:12px}.access-line{margin:14px 0 24px;color:var(--green-dark);font-weight:700}.access-map-wrap{border-radius:30px;overflow:hidden;box-shadow:var(--shadow);background:#eef5f1}.google-map{display:block;width:100%;height:440px;border:0}.faq-list{display:grid;gap:14px}details{border-radius:20px;border:1px solid var(--line);background:#fff;padding:18px 22px;box-shadow:var(--shadow-soft)}summary{cursor:pointer;font-weight:700;color:var(--navy)}details p{margin-top:12px;font-size:14px}.contact-section{padding:82px 0;background:linear-gradient(135deg,#f4fbf4,#f7fbff)}.contact-card{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:clamp(30px,5vw,52px);border-radius:34px;background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(245,251,247,.9));box-shadow:var(--shadow);position:relative;overflow:hidden}.contact-card:after{content:'';position:absolute;right:-70px;top:-90px;width:220px;height:220px;border-radius:50%;background:rgba(105,185,128,.15)}.contact-card>*{position:relative;z-index:1}.contact-actions{display:flex;gap:14px;flex-wrap:wrap}.page-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.info-card{padding:30px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-soft)}.info-card h3{color:var(--navy);margin-bottom:10px}.info-card h3:not(:first-child){margin-top:24px}.info-card .btn{margin-top:22px}.info-card ul{margin:14px 0 0;padding-left:1.2em;color:var(--muted)}.info-card li{margin:.35em 0}.timeline{counter-reset:step;display:grid;gap:18px}.timeline-item{counter-increment:step;display:grid;grid-template-columns:72px 1fr;gap:20px;align-items:start;padding:26px;border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-soft)}.timeline-item:before{content:'0' counter(step);width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--base-green);color:var(--green-dark);font-weight:700;font-family:var(--serif)}.gallery-large{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.gallery-large figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:var(--shadow-soft)}.gallery-large img{height:250px;width:100%;object-fit:cover;object-position:center}.gallery-large figcaption{padding:22px}.access-detail{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:34px;align-items:start}.site-footer{padding:64px 0 30px;background:#fff}.footer-inner{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:44px;align-items:start}.footer-inner img{width:210px;margin-bottom:16px}.footer-nav{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 24px;font-size:14px;color:#40556a}.footer-tel span{display:block;color:var(--muted);font-size:13px}.footer-tel a:not(.btn){display:block;font-size:24px;color:var(--navy);font-weight:700;margin:4px 0 18px}.site-footer small{display:block;text-align:center;color:var(--muted);margin-top:50px}.sp-fixed-cta{display:none}.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}
@media(max-width:1100px){.global-nav{display:none}.menu-button{display:inline-grid;gap:5px;width:44px;height:44px;padding:10px;border:1px solid var(--line);background:#fff;border-radius:50%;place-content:center}.menu-button span{display:block;width:20px;height:1px;background:var(--navy);transition:.25s}.menu-button[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(35deg)}.menu-button[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-button[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-35deg)}.global-nav.is-open{display:grid;position:fixed;top:78px;left:18px;right:18px;padding:24px;background:rgba(255,255,255,.98);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);z-index:1002}.global-nav.is-open a{padding:9px 0}.feature-grid{grid-template-columns:repeat(2,1fr)}.facility-grid{grid-template-columns:repeat(2,1fr)}.doctor-card{grid-template-columns:130px 1fr}.doctor-card img{width:130px;height:130px}.header-cta .mini-phone{display:none}.page-hero-inner{grid-template-columns:1fr}.page-hero img{height:290px}.access-home,.access-detail{grid-template-columns:1fr}}
@media(max-width:767px){body{letter-spacing:.02em;padding-bottom:74px;font-size:14.5px;line-height:1.8}.container,.narrow{width:min(100% - 32px,560px)}.header-inner{height:68px;width:calc(100% - 28px)}.logo img{width:164px}.header-cta{display:none}.global-nav.is-open{top:68px}.section{padding:64px 0}.section-full{min-height:88svh}.two-column,.three-column,.doctor-grid,.page-card-grid,.gallery-large{grid-template-columns:1fr;gap:30px}.hero{min-height:88svh;padding:104px 20px 42px;align-items:flex-end}.hero-picture{inset:68px 0 0 0}.hero-picture img{object-position:center}.hero-overlay{inset:68px 0 0 0;background:linear-gradient(180deg,rgba(255,255,255,.15) 0%,rgba(255,255,255,.67) 39%,rgba(255,255,255,.98) 74%)}h1{font-size:clamp(30px,8vw,38px);line-height:1.45}h2{font-size:23px;line-height:1.55}h3{font-size:17px}.hero-lead{font-size:14px}.hero-tags span{font-size:12.5px}.hero-actions{display:grid;grid-template-columns:1fr;gap:12px}.btn,.link-button{width:100%;min-height:52px;padding:0 20px}.access-badge{width:122px;right:18px;top:90px;bottom:auto;padding:17px}.access-badge strong{font-size:20px}.access-badge span{font-size:10px}.page-hero{padding:112px 0 60px}.page-hero h1{font-size:30px}.page-hero img{height:205px;border-radius:24px}.news-list{padding:18px}.news-list a{grid-template-columns:1fr;gap:6px;padding:15px 0}.news-list span{width:fit-content}.image-card img{height:220px}.feature-grid,.medical-grid,.flow-card,.facility-grid{grid-template-columns:1fr}.feature-card{min-height:auto;padding:28px 20px}.medical-card img,.facility-grid img,.gallery-large img{height:190px}.flow-card{padding:18px;gap:12px}.flow-card div{padding:18px}.doctor-card{grid-template-columns:1fr;text-align:center;padding:24px}.doctor-card img{margin:0 auto;width:150px;height:150px}.schedule-box{padding:18px 10px}.schedule-table th,.schedule-table td{font-size:10.5px;padding:8px 2px;letter-spacing:0}.schedule-table th:first-child{width:58px}.schedule-table th{white-space:normal}.google-map{height:310px}.access-card,.info-card{padding:24px}.contact-card{display:grid}.footer-inner{grid-template-columns:1fr;gap:30px}.footer-nav{grid-template-columns:1fr}.sp-fixed-cta{position:fixed;left:12px;right:12px;bottom:12px;z-index:1001;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px;border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 16px 40px rgba(42,80,110,.2);backdrop-filter:blur(14px)}.sp-fixed-cta a{display:grid;place-items:center;min-height:46px;border-radius:999px;font-weight:700}.sp-fixed-cta a:first-child{background:var(--blue);color:#fff}.sp-fixed-cta a:last-child{background:var(--green);color:#fff}}

/* ===== v4 refinements: sharper top images, better CTA spacing, closed FAQ accordion ===== */
.hero-picture img,
.image-card img,
.medical-card img,
.doctor-card img,
.facility-grid img,
.page-hero img,
.gallery-large img{
  image-rendering:auto;
  backface-visibility:hidden;
  transform:translateZ(0);
}
.hero-picture img{object-position:center 42%;}
.hero-overlay{background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.83) 42%,rgba(255,255,255,.36) 68%,rgba(255,255,255,.08) 100%)}
.hero-content{padding-top:8px;}
.hero-actions,
.contact-actions{gap:22px;row-gap:18px;}
.section-cta{margin-top:54px;}
.medical-card a,
.link-button{margin-top:22px;}
.info-card .btn{margin-top:30px;}
.access-card .btn{margin-top:10px;}
.btn{min-width:176px;}
.btn-small{min-width:auto;}
.contact-card{gap:46px;}
.medical-card div{padding-bottom:32px;}
.faq-list{gap:16px;}
details{padding:0;overflow:hidden;border-radius:22px;transition:border-color .25s ease,box-shadow .25s ease,background .25s ease;}
details[open]{border-color:rgba(105,185,128,.45);box-shadow:0 16px 34px rgba(35,70,100,.10);}
summary{list-style:none;position:relative;padding:22px 62px 22px 24px;cursor:pointer;font-size:15.5px;line-height:1.65;}
summary::-webkit-details-marker{display:none;}
summary:before{content:'Q';display:inline-grid;place-items:center;width:30px;height:30px;margin-right:12px;border-radius:50%;background:var(--base-green);color:var(--green-dark);font-family:var(--serif);font-weight:700;vertical-align:middle;}
summary:after{content:'+';position:absolute;right:24px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#f2f7fa;color:var(--navy);font-size:20px;font-weight:500;transition:.25s ease;}
details[open] summary:after{content:'−';background:var(--green);color:#fff;}
details p{margin:0;padding:0 24px 24px 66px;font-size:14.5px;line-height:1.9;color:var(--muted);}
.faq-list details p:before{content:'A';display:inline-grid;place-items:center;width:26px;height:26px;margin-right:10px;border-radius:50%;background:#eef5fb;color:var(--blue);font-family:var(--serif);font-weight:700;}
.flow-card img,.feature-card img{image-rendering:auto;filter:none;}
@media(max-width:767px){
  .hero-picture img{object-position:center top;}
  .hero-actions,.contact-actions{gap:14px;row-gap:14px;}
  .btn{min-width:0;}
  .medical-card a,.link-button{margin-top:18px;}
  .section-cta{margin-top:40px;}
  summary{padding:18px 54px 18px 18px;font-size:14.5px;}
  summary:before{width:27px;height:27px;margin-right:9px;}
  summary:after{right:18px;width:28px;height:28px;}
  details p{padding:0 18px 20px 54px;font-size:14px;}
}


/* ===== v5: high-resolution images, cleaner crops, reservation modal ===== */
.hero-picture img{object-position:center 44%;}
.hero-overlay{background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.9) 36%,rgba(255,255,255,.45) 62%,rgba(255,255,255,.12) 100%)}
.image-card img{height:360px;object-fit:cover;object-position:center;}
.page-hero img{object-position:center;}
.medical-card img{object-position:center;}
.facility-grid img{object-position:center;}
.flow-card img,.feature-card img{width:54px;height:54px;object-fit:contain;display:block;margin:0 auto 14px;}
.flow-card{align-items:stretch;}
.flow-card div{min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;}
.btn,.link-button{margin-block:4px;}
.hero-actions,.contact-actions{gap:24px;row-gap:18px;}
.reserve-modal{position:fixed;inset:0;z-index:3000;display:none;align-items:center;justify-content:center;padding:24px;}
.reserve-modal.is-open{display:flex;}
.reserve-modal__overlay{position:absolute;inset:0;background:rgba(24,43,59,.46);backdrop-filter:blur(8px);}
.reserve-modal__panel{position:relative;z-index:1;width:min(920px,100%);max-height:min(92vh,900px);overflow:auto;background:#fff;border-radius:32px;box-shadow:0 30px 80px rgba(22,45,70,.28);padding:34px;}
.reserve-modal__close{position:absolute;top:18px;right:18px;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--navy);font-size:28px;line-height:1;cursor:pointer;}
.reserve-modal__head{padding-right:44px;margin-bottom:24px;}
.reserve-modal__head h2{margin:0 0 8px;font-size:clamp(24px,3vw,34px);}
.reserve-modal__body{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.reserve-block{padding:22px;border:1px solid var(--line);border-radius:24px;background:#fbfdfd;}
.reserve-block h3{margin:0 0 16px;font-size:16px;color:var(--navy);}
.reserve-choice-grid,.reserve-time-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.reserve-choice,.reserve-time-grid button,.calendar-grid--days button{min-height:44px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text);font:inherit;font-weight:700;cursor:pointer;}
.reserve-choice.is-active,.reserve-time-grid button.is-active,.calendar-grid--days button.is-selected{background:var(--green);color:#fff;border-color:var(--green);}
.calendar-widget{padding:16px;border-radius:22px;background:#fff;border:1px solid var(--line);}
.calendar-widget__header{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:14px;}
.calendar-widget__header strong{font-family:var(--serif);color:var(--navy);font-size:18px;}
.calendar-widget__header span{font-size:12px;color:var(--muted);}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;text-align:center;}
.calendar-grid--week span{font-size:12px;color:var(--muted);font-weight:700;}
.calendar-grid--days{margin-top:8px;}
.calendar-grid--days button{border-radius:12px;min-height:38px;font-size:13px;}
.calendar-grid--days button:disabled{opacity:.35;cursor:not-allowed;background:#f2f5f7;}
.reserve-form{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;}
.reserve-form h3{grid-column:1 / -1;}
.reserve-form label{display:grid;gap:8px;font-size:13px;font-weight:700;color:var(--navy);}
.reserve-form label:last-child{grid-column:1 / -1;}
.reserve-form input,.reserve-form textarea{width:100%;border:1px solid var(--line);border-radius:16px;padding:12px 14px;font:inherit;background:#fff;outline:none;}
.reserve-form input:focus,.reserve-form textarea:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(105,185,128,.14);}
.reserve-modal__foot{display:flex;justify-content:flex-end;gap:16px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);}
.reserve-submit.is-done{background:#2f8c5e;}
@media(max-width:767px){
  .hero-picture img{object-position:center top;}
  .image-card img{height:235px;}
  .flow-card img,.feature-card img{width:48px;height:48px;}
  .flow-card div{min-height:auto;}
  .reserve-modal{padding:12px;align-items:flex-end;}
  .reserve-modal__panel{border-radius:26px 26px 18px 18px;max-height:92svh;padding:24px 18px 18px;}
  .reserve-modal__close{top:12px;right:12px;width:40px;height:40px;font-size:24px;}
  .reserve-modal__body{grid-template-columns:1fr;gap:16px;}
  .reserve-block{padding:18px;border-radius:20px;}
  .reserve-choice-grid,.reserve-time-grid{grid-template-columns:repeat(2,1fr);}
  .reserve-form{grid-template-columns:1fr;}
  .reserve-modal__foot{display:grid;grid-template-columns:1fr;}
}


/* v6: Doctor page visual replacement and image quality tuning */
.page-hero-inner > img[src$="doctor-hero.webp"]{
  height:360px;
  object-fit:cover;
  object-position:center center;
}
@media(max-width:1100px){
  .page-hero-inner > img[src$="doctor-hero.webp"]{height:300px;}
}
@media(max-width:767px){
  .page-hero-inner > img[src$="doctor-hero.webp"]{height:220px;object-position:center center;}
}
/* Reduce image blur by preventing oversized stretch on sub-page visual cards */
.page-hero img,.image-card img,.medical-card img,.gallery-large img,.facility-grid img{
  image-rendering:auto;
}
/* SEO/AIO note block if used later */
.seo-note{font-size:13px;color:var(--muted);line-height:1.8;}

/* ===== v7: home button spacing and facility image responsive polish ===== */
.section-heading .link-button,
.wide-text .link-button{
  display:inline-flex;
  margin-top:34px;
}
.medical-card a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:28px;
  padding-top:2px;
}
.section-cta{
  margin-top:64px;
}
.contact-actions{
  gap:26px;
  row-gap:20px;
}
.contact-card .contact-actions{
  margin-top:0;
}
.info-card .btn,
.access-card .btn{
  margin-top:32px;
}
.medical-card div{
  padding-bottom:36px;
}
.facility-grid figure:nth-child(1) img{
  object-position:center center;
}
.facility-grid figure:nth-child(2) img{
  object-position:center 42%;
}
.facility-grid img{
  height:180px;
}
@media(max-width:1100px){
  .section-heading .link-button,
  .wide-text .link-button{
    margin-top:30px;
  }
  .facility-grid img{
    height:220px;
  }
}
@media(max-width:767px){
  .section-heading .link-button,
  .wide-text .link-button{
    width:100%;
    margin-top:26px;
  }
  .medical-card a{
    margin-top:24px;
  }
  .section-cta{
    margin-top:46px;
  }
  .contact-actions{
    gap:14px;
    row-gap:14px;
  }
  .medical-card div{
    padding:24px 22px 30px;
  }
  .facility-grid img{
    height:210px;
  }
}

/* v8 logo text clipping fix */
.logo{display:inline-flex;align-items:center;flex:0 0 auto;overflow:visible}
.logo img{width:230px;max-width:230px;height:auto;overflow:visible}
.site-footer img{width:230px;max-width:100%;height:auto}
@media (max-width: 767px){.logo img{width:190px;max-width:190px}.site-footer img{width:200px}}
@media (max-width: 374px){.logo img{width:172px;max-width:172px}}

/* ===== v9: mobile hero overlap fix / access badge layout fix ===== */
@media (max-width: 767px){
  .hero.section-full,
  .hero{
    min-height: auto;
    display: block;
    padding: 68px 0 42px;
    background: linear-gradient(180deg,#f6fbfb 0%,#ffffff 100%);
    overflow: visible;
  }
  .hero-picture{
    position: relative;
    inset: auto;
    display: block;
    height: 300px;
    width: 100%;
    overflow: hidden;
  }
  .hero-picture img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
  }
  .hero-overlay{
    display: none;
  }
  .hero-content{
    position: relative;
    z-index: 2;
    width: calc(100% - 32px);
    margin: -34px auto 0;
    padding: 26px 20px 22px;
    border-radius: 26px;
    background: rgba(255,255,255,.97);
    box-shadow: 0 18px 44px rgba(35,70,100,.13);
  }
  .hero-content .eyebrow{
    margin-bottom: 10px;
    font-size: 12px;
    line-height: 1.65;
  }
  .hero h1,
  .hero-content h1{
    font-size: clamp(27px, 7.2vw, 34px);
    line-height: 1.45;
    letter-spacing: .045em;
  }
  .hero-lead{
    margin-top: 15px;
    font-size: 14px;
    line-height: 1.85;
  }
  .hero-tags{
    gap: 8px;
    margin-top: 18px;
  }
  .hero-tags span{
    box-shadow: none;
    border: 1px solid var(--line);
    background: #fff;
  }
  .hero-actions{
    margin-top: 24px;
    gap: 12px;
  }
  .access-badge{
    position: relative;
    inset: auto;
    z-index: 2;
    width: calc(100% - 32px);
    max-width: 420px;
    aspect-ratio: auto;
    margin: 18px auto 0;
    padding: 17px 18px;
    border-radius: 22px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 12px;
    text-align: center;
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: 0 12px 30px rgba(35,70,100,.10);
  }
  .access-badge small,
  .access-badge strong,
  .access-badge span{
    display: block;
    margin: 0;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  .access-badge small{
    font-size: 12px;
    line-height: 1.45;
  }
  .access-badge strong{
    font-size: 19px;
    line-height: 1.35;
    padding: 0 10px;
    border-left: 1px solid var(--line);
    border-right: 1px solid var(--line);
    white-space: nowrap;
  }
  .access-badge span{
    font-size: 12px;
    line-height: 1.45;
  }
}
@media (max-width: 420px){
  .access-badge{
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 18px;
  }
  .access-badge strong{
    border-left: 0;
    border-right: 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 8px 0;
  }
  .hero-picture{height: 270px;}
}


/* ===== v10: mobile layout overlap / menu line / medical visual fixes ===== */
@media (max-width: 1100px){
  .global-nav.is-open a,
  .global-nav.is-open a:visited,
  .global-nav.is-open a:hover,
  .global-nav.is-open a:focus,
  .global-nav.is-open a[aria-current="page"]{
    text-decoration: none !important;
    background-image: none !important;
    color: var(--navy);
  }
  .global-nav.is-open a::after,
  .global-nav.is-open a:hover::after,
  .global-nav.is-open a[aria-current="page"]::after{
    content: none !important;
    display: none !important;
    transform: none !important;
  }
  .global-nav.is-open a{
    border-bottom: 1px solid var(--line);
  }
  .global-nav.is-open a:last-child{
    border-bottom: 0;
  }
}

@media (max-width: 767px){
  .hero.section-full,
  .hero{
    padding: 68px 0 44px !important;
    min-height: auto !important;
    display: block !important;
    background: linear-gradient(180deg,#f6fbfb 0%,#ffffff 100%);
    overflow: visible !important;
  }
  .hero-picture{
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: clamp(250px, 64vw, 330px) !important;
    display: block !important;
    overflow: hidden !important;
    z-index: 1;
  }
  .hero-picture img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }
  .hero-overlay{
    display: none !important;
  }
  .hero-content{
    position: relative !important;
    z-index: 2 !important;
    width: calc(100% - 32px) !important;
    margin: 18px auto 0 !important;
    padding: 26px 20px 24px !important;
    border-radius: 24px !important;
    background: #fff !important;
    box-shadow: 0 14px 34px rgba(35,70,100,.11) !important;
  }
  .hero-content h1{
    font-size: clamp(26px, 7.2vw, 34px) !important;
    line-height: 1.45 !important;
    word-break: keep-all;
  }
  .hero-lead{
    font-size: 14px !important;
    line-height: 1.9 !important;
  }
  .hero-actions{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .hero-tags{
    display: flex !important;
    flex-wrap: wrap !important;
  }
  .hero-tags span{
    white-space: nowrap;
  }
  .access-badge{
    position: relative !important;
    inset: auto !important;
    width: calc(100% - 32px) !important;
    max-width: 560px !important;
    aspect-ratio: auto !important;
    margin: 16px auto 0 !important;
    padding: 14px 14px !important;
    border-radius: 20px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    background: #fff !important;
    border: 1px solid var(--line) !important;
    box-shadow: 0 12px 30px rgba(35,70,100,.09) !important;
    text-align: center !important;
  }
  .access-badge small,
  .access-badge strong,
  .access-badge span{
    display: grid !important;
    place-items: center !important;
    min-height: 42px;
    margin: 0 !important;
    padding: 9px 10px !important;
    border-radius: 999px !important;
    background: var(--base-blue) !important;
    border: 1px solid var(--line) !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    font-family: var(--sans) !important;
  }
  .access-badge small{
    font-size: 12px !important;
    color: var(--navy) !important;
    font-weight: 700 !important;
  }
  .access-badge strong{
    font-size: 15px !important;
    color: var(--green-dark) !important;
  }
  .access-badge span{
    grid-column: 1 / -1;
    font-size: 12px !important;
    color: var(--muted) !important;
  }
  .global-nav.is-open{
    gap: 0 !important;
  }
  .global-nav.is-open a{
    padding: 13px 2px !important;
    line-height: 1.6 !important;
  }
}

@media (max-width: 374px){
  .access-badge{
    padding: 12px !important;
    gap: 8px !important;
  }
  .access-badge small,
  .access-badge strong,
  .access-badge span{
    font-size: 11px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}

.page-hero-inner > img[src$="staff-guidance.webp"]{
  object-position: center center;
}

/* ===== v11: mobile full-screen first view with readable overlay ===== */
@media (max-width: 767px){
  .hero.section-full,
  .hero{
    position: relative !important;
    min-height: 100svh !important;
    height: 100svh !important;
    display: flex !important;
    align-items: flex-end !important;
    padding: 68px 0 24px !important;
    overflow: hidden !important;
    background: #0f2f3d !important;
  }

  .hero-picture{
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 1 !important;
    overflow: hidden !important;
  }

  .hero-picture img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 58% center !important;
    transform: scale(1.01);
  }

  .hero-overlay{
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    background:
      linear-gradient(90deg, rgba(13,34,45,.72) 0%, rgba(13,34,45,.52) 42%, rgba(13,34,45,.16) 76%, rgba(13,34,45,.08) 100%),
      linear-gradient(180deg, rgba(13,34,45,.10) 0%, rgba(13,34,45,.08) 44%, rgba(13,34,45,.72) 100%) !important;
    pointer-events: none;
  }

  .hero-content{
    position: relative !important;
    z-index: 3 !important;
    width: min(100% - 32px, 520px) !important;
    margin: 0 auto 94px 16px !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #fff !important;
    text-align: left !important;
  }

  .hero-content .eyebrow{
    display: inline-flex !important;
    align-items: center;
    max-width: 100%;
    margin: 0 0 12px !important;
    padding: 7px 12px !important;
    border-radius: 999px;
    background: rgba(255,255,255,.86) !important;
    color: #1f4668 !important;
    font-size: 11px !important;
    font-weight: 700;
    line-height: 1.45 !important;
    letter-spacing: .04em;
    backdrop-filter: blur(8px);
  }

  .hero h1,
  .hero-content h1{
    width: min(100%, 350px);
    color: #fff !important;
    font-size: clamp(28px, 8.2vw, 38px) !important;
    line-height: 1.36 !important;
    letter-spacing: .045em !important;
    text-shadow: 0 2px 18px rgba(0,0,0,.34);
    word-break: keep-all;
  }

  .hero-content h1 span{
    color: #dff4e5 !important;
  }

  .hero-lead{
    width: min(100%, 360px);
    margin-top: 14px !important;
    color: rgba(255,255,255,.94) !important;
    font-size: 13.5px !important;
    line-height: 1.78 !important;
    text-shadow: 0 2px 14px rgba(0,0,0,.30);
  }

  .hero-tags{
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-top: 16px !important;
  }

  .hero-tags span{
    padding: 6px 12px !important;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.35) !important;
    background: rgba(255,255,255,.80) !important;
    color: #1f4668 !important;
    box-shadow: none !important;
    font-size: 12px !important;
    white-space: nowrap;
    backdrop-filter: blur(8px);
  }

  .hero-actions{
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    width: min(100%, 360px);
    margin-top: 20px !important;
  }

  .hero-actions .btn{
    width: 100% !important;
    min-height: 44px !important;
    padding: 0 12px !important;
    font-size: 12.5px !important;
    line-height: 1.25 !important;
    box-shadow: 0 12px 24px rgba(0,0,0,.16);
  }

  .hero-actions .btn-ghost{
    grid-column: 1 / -1;
    background: rgba(255,255,255,.88) !important;
    color: #1f4668 !important;
    border-color: rgba(255,255,255,.55) !important;
  }

  .access-badge{
    position: absolute !important;
    z-index: 4 !important;
    left: 16px !important;
    right: 16px !important;
    bottom: 18px !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    aspect-ratio: auto !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    padding: 9px !important;
    border-radius: 20px !important;
    background: rgba(255,255,255,.88) !important;
    border: 1px solid rgba(255,255,255,.45) !important;
    box-shadow: 0 16px 34px rgba(0,0,0,.18) !important;
    backdrop-filter: blur(12px);
    text-align: center !important;
  }

  .access-badge small,
  .access-badge strong,
  .access-badge span{
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    min-height: 38px !important;
    margin: 0 !important;
    padding: 7px 6px !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: rgba(245,249,252,.92) !important;
    color: #1f4668 !important;
    font-family: var(--sans) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    text-wrap: balance;
  }

  .access-badge strong{
    font-size: 13px !important;
    color: var(--green-dark) !important;
  }

  .access-badge span{
    grid-column: auto !important;
    font-size: 10.5px !important;
    letter-spacing: 0 !important;
  }
}

@media (max-width: 374px){
  .hero-content{
    width: calc(100% - 28px) !important;
    margin-left: 14px !important;
    margin-bottom: 92px !important;
  }
  .hero h1,
  .hero-content h1{
    font-size: 27px !important;
  }
  .hero-lead{
    font-size: 13px !important;
    line-height: 1.7 !important;
  }
  .hero-actions{
    gap: 8px !important;
  }
  .hero-actions .btn{
    font-size: 11.5px !important;
    min-height: 42px !important;
  }
  .access-badge{
    left: 12px !important;
    right: 12px !important;
    bottom: 14px !important;
    gap: 6px !important;
    padding: 7px !important;
  }
  .access-badge small,
  .access-badge strong,
  .access-badge span{
    min-height: 36px !important;
    padding: 6px 4px !important;
    font-size: 10px !important;
  }
  .access-badge strong{
    font-size: 12px !important;
  }
}

/* ===== v12: refined mobile first view - premium balance ===== */
@media (max-width: 767px){
  .hero.section-full,
  .hero{
    min-height: 100svh !important;
    height: 100svh !important;
    padding: 68px 0 0 !important;
    align-items: center !important;
    background: #102d36 !important;
  }

  .hero-picture{ inset: 0 !important; }
  .hero-picture img{
    object-position: 62% center !important;
    transform: scale(1) !important;
    filter: saturate(.96) contrast(.98) brightness(.98);
  }

  .hero-overlay{
    background:
      linear-gradient(90deg, rgba(12,32,39,.74) 0%, rgba(12,32,39,.50) 44%, rgba(12,32,39,.18) 74%, rgba(12,32,39,.06) 100%),
      linear-gradient(180deg, rgba(12,32,39,.18) 0%, rgba(12,32,39,.04) 45%, rgba(12,32,39,.60) 100%) !important;
  }

  .hero-content{
    width: min(100% - 40px, 360px) !important;
    margin: 0 auto 70px 20px !important;
    transform: translateY(-6px);
  }

  .hero-content .eyebrow{
    margin-bottom: 12px !important;
    padding: 6px 12px !important;
    font-size: 10.5px !important;
    line-height: 1.35 !important;
    letter-spacing: .03em !important;
    background: rgba(255,255,255,.84) !important;
  }

  .hero h1,
  .hero-content h1{
    width: min(100%, 315px) !important;
    font-size: clamp(25px, 7.1vw, 31px) !important;
    line-height: 1.48 !important;
    letter-spacing: .035em !important;
    text-shadow: 0 2px 16px rgba(0,0,0,.30) !important;
  }

  .hero-lead{
    width: min(100%, 318px) !important;
    margin-top: 12px !important;
    font-size: 12.6px !important;
    line-height: 1.82 !important;
    letter-spacing: .025em !important;
    color: rgba(255,255,255,.92) !important;
  }

  .hero-tags{
    gap: 7px !important;
    margin-top: 15px !important;
  }

  .hero-tags span{
    padding: 5px 11px !important;
    font-size: 11px !important;
    line-height: 1.3 !important;
    background: rgba(255,255,255,.82) !important;
  }

  /* スマホは下部固定CTAがあるため、ファーストビュー内の重複ボタンは非表示 */
  .hero-actions{
    display: none !important;
  }

  .access-badge{
    left: 20px !important;
    right: 20px !important;
    bottom: 88px !important;
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0 !important;
    padding: 10px 12px !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.82) !important;
    border: 1px solid rgba(255,255,255,.45) !important;
    box-shadow: 0 14px 34px rgba(0,0,0,.18) !important;
  }

  .access-badge small,
  .access-badge strong,
  .access-badge span{
    flex: 1 1 0 !important;
    min-height: auto !important;
    padding: 0 6px !important;
    background: transparent !important;
    border-radius: 0 !important;
    font-size: 10.5px !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
    color: #214054 !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    text-wrap: nowrap !important;
  }

  .access-badge small,
  .access-badge strong{
    border-right: 1px solid rgba(31,70,104,.16) !important;
  }

  .access-badge strong{
    font-size: 11.5px !important;
    color: var(--green-dark) !important;
  }

  .access-badge span{
    font-size: 10px !important;
  }
}

@media (max-width: 374px){
  .hero-content{
    width: calc(100% - 32px) !important;
    margin-left: 16px !important;
    margin-bottom: 68px !important;
  }
  .hero h1,
  .hero-content h1{
    font-size: 24px !important;
    line-height: 1.45 !important;
  }
  .hero-lead{
    font-size: 12px !important;
    line-height: 1.74 !important;
  }
  .access-badge{
    left: 14px !important;
    right: 14px !important;
    bottom: 84px !important;
    padding: 9px 8px !important;
  }
  .access-badge small,
  .access-badge strong,
  .access-badge span{
    padding: 0 4px !important;
    font-size: 9.4px !important;
  }
  .access-badge strong{font-size: 10.4px !important;}
}

/* ===== v13: bright premium mobile first view - remove heavy black overlay ===== */
@media (max-width: 767px){
  .hero.section-full,
  .hero{
    min-height: 100svh !important;
    height: 100svh !important;
    padding: 68px 0 0 !important;
    align-items: center !important;
    justify-content: flex-start !important;
    background: #f7fbfb !important;
    overflow: hidden !important;
  }

  .hero-picture{
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 1 !important;
  }

  .hero-picture img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 66% center !important;
    transform: none !important;
    filter: saturate(.98) contrast(.98) brightness(1.06) !important;
  }

  .hero-overlay{
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    background:
      linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.86) 42%, rgba(255,255,255,.42) 68%, rgba(255,255,255,.12) 100%),
      linear-gradient(180deg, rgba(247,251,251,.18) 0%, rgba(247,251,251,.05) 50%, rgba(247,251,251,.84) 100%) !important;
    pointer-events: none;
  }

  .hero-content{
    position: relative !important;
    z-index: 3 !important;
    width: min(100% - 36px, 350px) !important;
    margin: 0 auto 108px 18px !important;
    padding: 24px 20px 22px !important;
    border-radius: 26px !important;
    background: rgba(255,255,255,.72) !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    box-shadow: 0 22px 52px rgba(35,70,100,.13) !important;
    backdrop-filter: blur(12px) saturate(1.05);
    color: var(--text) !important;
    text-align: left !important;
    transform: translateY(-8px) !important;
  }

  .hero-content .eyebrow{
    display: inline-flex !important;
    align-items: center !important;
    max-width: 100% !important;
    margin: 0 0 12px !important;
    padding: 6px 12px !important;
    border-radius: 999px !important;
    background: rgba(238,247,242,.92) !important;
    color: var(--green-dark) !important;
    border: 1px solid rgba(105,185,128,.22) !important;
    font-size: 10.5px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    letter-spacing: .03em !important;
    text-shadow: none !important;
    white-space: nowrap !important;
  }

  .hero h1,
  .hero-content h1{
    width: min(100%, 300px) !important;
    color: #20384f !important;
    font-size: clamp(24px, 6.7vw, 30px) !important;
    line-height: 1.48 !important;
    letter-spacing: .035em !important;
    text-shadow: none !important;
    word-break: keep-all !important;
  }

  .hero-content h1 span{
    color: var(--green-dark) !important;
  }

  .hero-lead{
    width: min(100%, 302px) !important;
    margin-top: 12px !important;
    color: #4e6374 !important;
    font-size: 12.4px !important;
    line-height: 1.82 !important;
    letter-spacing: .02em !important;
    text-shadow: none !important;
  }

  .hero-tags{
    gap: 7px !important;
    margin-top: 16px !important;
  }

  .hero-tags span{
    padding: 5px 11px !important;
    border: 1px solid rgba(77,127,174,.16) !important;
    background: rgba(255,255,255,.86) !important;
    color: var(--navy) !important;
    box-shadow: none !important;
    font-size: 11px !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
  }

  .hero-actions{
    display: none !important;
  }

  .access-badge{
    position: absolute !important;
    z-index: 4 !important;
    left: 18px !important;
    right: 18px !important;
    bottom: 88px !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    aspect-ratio: auto !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr 1.15fr !important;
    align-items: center !important;
    gap: 0 !important;
    padding: 10px 12px !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.86) !important;
    border: 1px solid rgba(255,255,255,.68) !important;
    box-shadow: 0 16px 38px rgba(35,70,100,.14) !important;
    backdrop-filter: blur(12px) saturate(1.05);
    text-align: center !important;
  }

  .access-badge small,
  .access-badge strong,
  .access-badge span{
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    min-height: auto !important;
    margin: 0 !important;
    padding: 0 6px !important;
    background: transparent !important;
    border-radius: 0 !important;
    font-family: var(--sans) !important;
    color: #254258 !important;
    font-size: 10.4px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-shadow: none !important;
  }

  .access-badge small,
  .access-badge strong{
    border-right: 1px solid rgba(31,70,104,.13) !important;
  }

  .access-badge strong{
    color: var(--green-dark) !important;
    font-size: 11.4px !important;
  }

  .access-badge span{
    font-size: 9.8px !important;
  }
}

@media (max-width: 374px){
  .hero-content{
    width: calc(100% - 30px) !important;
    margin-left: 15px !important;
    margin-bottom: 106px !important;
    padding: 22px 18px 20px !important;
  }
  .hero h1,
  .hero-content h1{
    font-size: 23px !important;
    line-height: 1.46 !important;
  }
  .hero-lead{
    font-size: 11.8px !important;
    line-height: 1.76 !important;
  }
  .hero-content .eyebrow{
    font-size: 9.8px !important;
    padding: 6px 10px !important;
  }
  .access-badge{
    left: 14px !important;
    right: 14px !important;
    bottom: 84px !important;
    padding: 9px 8px !important;
    grid-template-columns: 1fr 1fr 1.1fr !important;
  }
  .access-badge small,
  .access-badge strong,
  .access-badge span{
    padding: 0 4px !important;
    font-size: 9.2px !important;
  }
  .access-badge strong{font-size: 10px !important;}
  .access-badge span{font-size: 8.8px !important;}
}

/* ===== v14: mobile hero based on full-image premium reference ===== */
@media (max-width: 767px){
  .site-header{
    background: rgba(255,255,255,.96) !important;
  }
  .header-inner{
    height: 68px !important;
  }
  .hero.section-full,
  .hero{
    min-height: 100svh !important;
    height: 100svh !important;
    padding: 68px 0 0 !important;
    display: block !important;
    background: #f8fbfb !important;
    overflow: hidden !important;
  }

  .hero-picture{
    position: absolute !important;
    inset: 68px 0 0 0 !important;
    width: 100% !important;
    height: calc(100svh - 68px) !important;
    z-index: 1 !important;
  }
  .hero-picture img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 61% center !important;
    filter: brightness(1.04) saturate(.98) contrast(.98) !important;
  }

  .hero-overlay{
    display: block !important;
    position: absolute !important;
    inset: 68px 0 0 0 !important;
    z-index: 2 !important;
    background:
      linear-gradient(90deg, rgba(255,255,255,.50) 0%, rgba(255,255,255,.36) 34%, rgba(255,255,255,.12) 64%, rgba(255,255,255,.04) 100%),
      linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,.02) 48%, rgba(246,250,248,.62) 100%) !important;
    pointer-events: none !important;
  }

  .hero-content{
    position: absolute !important;
    z-index: 4 !important;
    left: 18px !important;
    right: auto !important;
    bottom: clamp(154px, 22svh, 190px) !important;
    width: min(70vw, 318px) !important;
    margin: 0 !important;
    padding: 18px 18px 17px !important;
    border-radius: 24px !important;
    background: rgba(255,255,255,.74) !important;
    border: 1px solid rgba(255,255,255,.78) !important;
    box-shadow: 0 18px 46px rgba(31,70,104,.12) !important;
    backdrop-filter: blur(14px) saturate(1.05) !important;
    color: var(--text) !important;
    text-align: left !important;
    transform: none !important;
  }

  .hero-content .eyebrow{
    display: inline-flex !important;
    max-width: 100% !important;
    margin: 0 0 11px !important;
    padding: 5px 10px !important;
    border-radius: 999px !important;
    background: rgba(244,250,246,.88) !important;
    border: 1px solid rgba(105,185,128,.20) !important;
    color: var(--green-dark) !important;
    font-size: 10px !important;
    line-height: 1.35 !important;
    letter-spacing: .01em !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }

  .hero h1,
  .hero-content h1{
    width: 100% !important;
    color: #20384f !important;
    font-size: clamp(24px, 6.5vw, 29px) !important;
    line-height: 1.52 !important;
    letter-spacing: .04em !important;
    text-shadow: none !important;
    word-break: keep-all !important;
  }
  .hero-content h1 span{
    color: var(--green-dark) !important;
  }

  .hero-lead{
    width: 100% !important;
    margin-top: 10px !important;
    color: #506577 !important;
    font-size: 12px !important;
    line-height: 1.82 !important;
    letter-spacing: .018em !important;
    text-shadow: none !important;
  }

  .hero-tags{
    display: flex !important;
    gap: 6px !important;
    margin-top: 14px !important;
  }
  .hero-tags span{
    padding: 4px 10px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.86) !important;
    border: 1px solid rgba(77,127,174,.18) !important;
    color: var(--navy) !important;
    font-size: 10.8px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
    box-shadow: none !important;
    white-space: nowrap !important;
  }

  .hero-actions{
    display: none !important;
  }

  .access-badge{
    position: absolute !important;
    z-index: 4 !important;
    left: 18px !important;
    right: 18px !important;
    bottom: calc(78px + env(safe-area-inset-bottom, 0px)) !important;
    width: auto !important;
    max-width: none !important;
    aspect-ratio: auto !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr 1.2fr !important;
    align-items: center !important;
    padding: 9px 10px !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.88) !important;
    border: 1px solid rgba(255,255,255,.76) !important;
    box-shadow: 0 16px 36px rgba(31,70,104,.13) !important;
    backdrop-filter: blur(14px) saturate(1.05) !important;
    text-align: center !important;
  }
  .access-badge small,
  .access-badge strong,
  .access-badge span{
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 6px !important;
    background: transparent !important;
    color: #254258 !important;
    font-family: var(--sans) !important;
    font-size: 10.4px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-shadow: none !important;
  }
  .access-badge small,
  .access-badge strong{
    border-right: 1px solid rgba(31,70,104,.14) !important;
  }
  .access-badge strong{
    color: var(--green-dark) !important;
    font-size: 11px !important;
  }
  .access-badge span{
    font-size: 9.6px !important;
  }

  .sp-fixed-cta{
    left: 14px !important;
    right: 14px !important;
    bottom: 10px !important;
    padding: 9px !important;
    gap: 10px !important;
    background: rgba(255,255,255,.94) !important;
    border: 1px solid rgba(255,255,255,.82) !important;
    box-shadow: 0 16px 42px rgba(31,70,104,.18) !important;
    backdrop-filter: blur(16px) saturate(1.08) !important;
  }
  .sp-fixed-cta a{
    min-height: 48px !important;
    font-size: 14px !important;
    letter-spacing: .02em !important;
  }
}

@media (max-width: 389px){
  .hero-content{
    width: min(72vw, 298px) !important;
    left: 16px !important;
    bottom: clamp(148px, 21svh, 176px) !important;
    padding: 16px 16px 15px !important;
    border-radius: 22px !important;
  }
  .hero h1,
  .hero-content h1{
    font-size: clamp(22px, 6.2vw, 26px) !important;
    line-height: 1.5 !important;
  }
  .hero-lead{
    font-size: 11.4px !important;
    line-height: 1.72 !important;
  }
  .hero-content .eyebrow{
    font-size: 9.2px !important;
    padding: 5px 9px !important;
  }
  .hero-tags span{
    font-size: 10px !important;
    padding: 4px 8px !important;
  }
  .access-badge{
    left: 16px !important;
    right: 16px !important;
    bottom: calc(76px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 8px 7px !important;
  }
  .access-badge small,
  .access-badge strong,
  .access-badge span{
    padding: 0 4px !important;
    font-size: 9px !important;
  }
  .access-badge strong{font-size: 9.8px !important;}
  .access-badge span{font-size: 8.8px !important;}
}

/* ===== v15: mobile hero refinement - smaller text, less intrusive card, image-first balance ===== */
@media (max-width: 767px){
  .hero.section-full,
  .hero{
    min-height: 100svh !important;
    height: 100svh !important;
    padding: 68px 0 0 !important;
    display: block !important;
    background: #f8fbfb !important;
    overflow: hidden !important;
  }

  .hero-picture{
    inset: 68px 0 0 0 !important;
    height: calc(100svh - 68px) !important;
  }

  .hero-picture img{
    object-fit: cover !important;
    object-position: 68% center !important;
    filter: brightness(1.06) saturate(.98) contrast(.98) !important;
  }

  .hero-overlay{
    inset: 68px 0 0 0 !important;
    background:
      linear-gradient(90deg, rgba(255,255,255,.52) 0%, rgba(255,255,255,.30) 34%, rgba(255,255,255,.08) 62%, rgba(255,255,255,0) 100%),
      linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,.00) 56%, rgba(248,251,250,.56) 100%) !important;
  }

  .hero-content{
    left: 16px !important;
    bottom: clamp(154px, 20.5svh, 176px) !important;
    width: min(62vw, 282px) !important;
    padding: 15px 15px 14px !important;
    border-radius: 20px !important;
    background: rgba(255,255,255,.66) !important;
    border: 1px solid rgba(255,255,255,.76) !important;
    box-shadow: 0 14px 34px rgba(31,70,104,.10) !important;
    backdrop-filter: blur(12px) saturate(1.04) !important;
  }

  .hero-content .eyebrow{
    margin-bottom: 9px !important;
    padding: 4px 9px !important;
    font-size: 8.8px !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
  }

  .hero h1,
  .hero-content h1{
    font-size: clamp(19px, 5.35vw, 24px) !important;
    line-height: 1.48 !important;
    letter-spacing: .025em !important;
  }

  .hero-lead{
    margin-top: 9px !important;
    font-size: 10.6px !important;
    line-height: 1.72 !important;
    letter-spacing: .01em !important;
  }

  .hero-tags{
    margin-top: 11px !important;
    gap: 5px !important;
  }

  .hero-tags span{
    padding: 3px 8px !important;
    font-size: 9.5px !important;
    line-height: 1.3 !important;
  }

  .access-badge{
    left: 16px !important;
    right: 16px !important;
    bottom: calc(74px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 8px 8px !important;
    border-radius: 16px !important;
    background: rgba(255,255,255,.84) !important;
  }

  .access-badge small,
  .access-badge strong,
  .access-badge span{
    font-size: 9.4px !important;
    line-height: 1.25 !important;
    padding: 0 4px !important;
  }

  .access-badge strong{font-size: 10px !important;}
  .access-badge span{font-size: 8.8px !important;}

  .sp-fixed-cta{
    left: 14px !important;
    right: 14px !important;
    bottom: 8px !important;
    padding: 8px !important;
  }

  .sp-fixed-cta a{
    min-height: 46px !important;
    font-size: 13.5px !important;
  }
}

@media (max-width: 389px){
  .hero-content{
    width: min(64vw, 262px) !important;
    left: 14px !important;
    bottom: clamp(150px, 20svh, 168px) !important;
    padding: 14px 14px 13px !important;
  }

  .hero h1,
  .hero-content h1{
    font-size: clamp(18px, 5.2vw, 22px) !important;
    line-height: 1.46 !important;
  }

  .hero-lead{
    font-size: 10px !important;
    line-height: 1.66 !important;
  }

  .hero-content .eyebrow{
    font-size: 8.2px !important;
    padding: 4px 8px !important;
  }

  .hero-tags span{
    font-size: 8.8px !important;
    padding: 3px 7px !important;
  }

  .access-badge{
    left: 14px !important;
    right: 14px !important;
    bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 7px 6px !important;
  }

  .access-badge small,
  .access-badge strong,
  .access-badge span{
    font-size: 8.4px !important;
    padding: 0 3px !important;
  }

  .access-badge strong{font-size: 9px !important;}
  .access-badge span{font-size: 8px !important;}
}

/* ===== v16: mobile hero image-first / no blur card / catchcopy only ===== */
@media (max-width: 767px){
  .hero.section-full,
  .hero{
    min-height: 100svh !important;
    height: 100svh !important;
    padding: 68px 0 0 !important;
    display: block !important;
    background: #fff !important;
    overflow: hidden !important;
  }

  .hero-picture{
    position: absolute !important;
    inset: 68px 0 0 0 !important;
    width: 100% !important;
    height: calc(100svh - 68px) !important;
    z-index: 1 !important;
  }

  .hero-picture img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 67% center !important;
    filter: none !important;
  }

  .hero-overlay{
    display: block !important;
    position: absolute !important;
    inset: 68px 0 0 0 !important;
    z-index: 2 !important;
    background:
      linear-gradient(90deg, rgba(255,255,255,.78) 0%, rgba(255,255,255,.48) 36%, rgba(255,255,255,.12) 66%, rgba(255,255,255,0) 100%),
      linear-gradient(180deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,0) 46%, rgba(255,255,255,.34) 100%) !important;
    pointer-events: none !important;
  }

  .hero-content{
    position: absolute !important;
    z-index: 4 !important;
    left: 22px !important;
    right: auto !important;
    bottom: calc(145px + env(safe-area-inset-bottom, 0px)) !important;
    width: min(68vw, 292px) !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    color: var(--text) !important;
    text-align: left !important;
    transform: none !important;
  }

  .hero-content .eyebrow{
    display: inline-flex !important;
    max-width: 100% !important;
    margin: 0 0 12px !important;
    padding: 5px 12px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.78) !important;
    border: 1px solid rgba(105,185,128,.22) !important;
    color: var(--green-dark) !important;
    font-size: 10px !important;
    line-height: 1.35 !important;
    letter-spacing: .01em !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }

  .hero h1,
  .hero-content h1{
    width: 100% !important;
    color: #1f374f !important;
    font-size: clamp(24px, 6.3vw, 29px) !important;
    line-height: 1.48 !important;
    letter-spacing: .045em !important;
    font-weight: 600 !important;
    text-shadow: 0 1px 0 rgba(255,255,255,.65) !important;
    word-break: keep-all !important;
  }

  .hero-content h1 span{
    color: var(--green-dark) !important;
  }

  .hero-lead,
  .hero-tags{
    display: none !important;
  }

  .access-badge{
    position: absolute !important;
    z-index: 4 !important;
    left: 18px !important;
    right: 18px !important;
    bottom: calc(74px + env(safe-area-inset-bottom, 0px)) !important;
    width: auto !important;
    max-width: none !important;
    aspect-ratio: auto !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr 1.15fr !important;
    align-items: center !important;
    padding: 9px 10px !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.86) !important;
    border: 1px solid rgba(255,255,255,.9) !important;
    box-shadow: 0 12px 28px rgba(31,70,104,.10) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    text-align: center !important;
  }

  .access-badge small,
  .access-badge strong,
  .access-badge span{
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 5px !important;
    background: transparent !important;
    color: #254258 !important;
    font-family: var(--sans) !important;
    font-size: 9.8px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-shadow: none !important;
  }

  .access-badge small,
  .access-badge strong{
    border-right: 1px solid rgba(31,70,104,.13) !important;
  }

  .access-badge strong{
    color: var(--green-dark) !important;
    font-size: 10.4px !important;
  }

  .access-badge span{
    font-size: 9.2px !important;
  }

  .sp-fixed-cta{
    left: 14px !important;
    right: 14px !important;
    bottom: 8px !important;
    padding: 8px !important;
    gap: 10px !important;
    background: rgba(255,255,255,.96) !important;
    border: 1px solid rgba(255,255,255,.9) !important;
    box-shadow: 0 14px 34px rgba(31,70,104,.16) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .sp-fixed-cta a{
    min-height: 46px !important;
    font-size: 13.5px !important;
    letter-spacing: .02em !important;
  }
}

@media (max-width: 389px){
  .hero-content{
    left: 18px !important;
    width: min(70vw, 270px) !important;
    bottom: calc(140px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .hero h1,
  .hero-content h1{
    font-size: clamp(22px, 6vw, 26px) !important;
    line-height: 1.46 !important;
  }

  .hero-content .eyebrow{
    font-size: 9px !important;
    padding: 5px 10px !important;
  }

  .access-badge{
    left: 14px !important;
    right: 14px !important;
    bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 8px 6px !important;
  }

  .access-badge small,
  .access-badge strong,
  .access-badge span{
    font-size: 8.6px !important;
    padding: 0 3px !important;
  }

  .access-badge strong{font-size: 9.2px !important;}
  .access-badge span{font-size: 8.2px !important;}
}


.news-archive-list {
  display: grid;
  gap: 20px;
}

.news-archive-card a {
  display: block;
  padding: 28px;
  background: #fff;
  border: 1px solid rgba(31, 74, 91, 0.08);
  border-radius: 20px;
  text-decoration: none;
  color: inherit;
  transition: 0.25s ease;
}

.news-archive-card a:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(31, 74, 91, 0.08);
}

.news-archive-meta {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 12px;
}

.news-category {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 12px;
  border-radius: 999px;
  background: #e9f5ef;
  color: #2f8b5f;
  font-size: 12px;
  font-weight: 700;
}

.news-archive-card h2 {
  font-size: 20px;
  margin-bottom: 10px;
  color: #18384a;
}

.news-archive-card p {
  color: #526b76;
  line-height: 1.9;
}

.single-main {
  padding: 120px 20px 80px;
  background: #f8fbfa;
}

.single-article {
  max-width: 860px;
  margin: 0 auto;
  padding: 56px;
  background: #fff;
  border-radius: 28px;
  box-shadow: 0 20px 50px rgba(31, 74, 91, 0.08);
}

.single-header {
  margin-bottom: 36px;
}

.single-meta {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 16px;
}

.single-header h1 {
  font-size: clamp(26px, 4vw, 38px);
  line-height: 1.5;
  color: #18384a;
}

.single-thumbnail {
  margin-bottom: 36px;
  border-radius: 20px;
  overflow: hidden;
}

.single-thumbnail img {
  width: 100%;
  height: auto;
  display: block;
}

.single-content {
  line-height: 2;
  color: #344f5d;
}

.single-content p {
  margin-bottom: 1.5em;
}

.single-content h2 {
  margin: 2.2em 0 0.8em;
  font-size: 24px;
  color: #18384a;
}

.single-back {
  margin-top: 48px;
  text-align: center;
}

.pagination {
  margin-top: 40px;
  text-align: center;
}

.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  margin: 0 4px;
  border-radius: 999px;
  background: #fff;
  color: #2f6f8f;
  text-decoration: none;
}

.pagination .current {
  background: #2f8b5f;
  color: #fff;
}

@media (max-width: 767px) {
  .news-archive-card a {
    padding: 22px 18px;
  }

  .news-archive-meta {
    flex-wrap: wrap;
  }

  .single-main {
    padding: 88px 16px 56px;
  }

  .single-article {
    padding: 28px 20px;
    border-radius: 22px;
  }

  .single-header h1 {
    font-size: 24px;
  }
}

/* =========================================================
   v17納品用修正：共通header/footer化後のニュース・記事ページ調整
   ========================================================= */
body { overflow-x: hidden; }
.page-main,
.news-page,
.single-main { width: 100%; overflow-x: hidden; background: #f8fbfa; }

.page-hero .page-hero-simple,
.page-hero > .container:not(.page-hero-inner) {
  position: relative;
  z-index: 1;
  max-width: 880px;
  text-align: center;
}
.page-hero .page-hero-simple h1,
.page-hero > .container:not(.page-hero-inner) h1 {
  margin: 0;
  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.5;
  letter-spacing: .08em;
}
.page-hero .page-hero-simple p:not(.label),
.page-hero > .container:not(.page-hero-inner) p:not(.label) {
  margin: 14px auto 0;
  max-width: 660px;
  font-size: 15px;
  line-height: 1.9;
}

.news-archive-section { padding-top: 72px; }
.news-archive-list { max-width: 880px; margin: 0 auto; display: grid; gap: 20px; }
.news-archive-card a { display: block; padding: 30px; background: #fff; border: 1px solid rgba(31,74,91,.08); border-radius: 22px; text-decoration: none; color: inherit; box-shadow: 0 12px 34px rgba(31,74,91,.05); transition: transform .25s ease, box-shadow .25s ease; }
.news-archive-card a:hover { transform: translateY(-3px); box-shadow: 0 18px 42px rgba(31,74,91,.09); }
.news-archive-meta { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
.news-archive-meta time,
.single-meta time { color: #526b76; font-size: 13px; font-weight: 600; }
.news-category { display: inline-flex; align-items: center; justify-content: center; padding: 5px 12px; border-radius: 999px; background: #e9f5ef; color: #2f8b5f; font-size: 12px; font-weight: 700; line-height: 1.4; }
.news-archive-card h2 { margin: 0 0 10px; color: #18384a; font-family: var(--serif); font-size: clamp(18px, 2vw, 22px); line-height: 1.65; letter-spacing: .04em; }
.news-archive-card p { margin: 0; color: #526b76; font-size: 14px; line-height: 1.9; }
.empty-message { max-width: 880px; margin: 0 auto; padding: 28px; background: #fff; border-radius: 20px; text-align: center; }

.single-main { padding: 128px 20px 86px; }
.single-article { max-width: 880px; margin: 0 auto; padding: clamp(30px, 5vw, 56px); background: #fff; border-radius: 28px; box-shadow: 0 20px 50px rgba(31,74,91,.08); }
.single-header { margin-bottom: 34px; }
.single-meta { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 16px; }
.single-header h1 { margin: 0; color: #18384a; font-family: var(--serif); font-size: clamp(25px, 3.4vw, 38px); line-height: 1.6; letter-spacing: .05em; }
.single-thumbnail { margin: 0 0 34px; border-radius: 22px; overflow: hidden; }
.single-thumbnail img { width: 100%; height: auto; display: block; }
.single-content { color: #344f5d; font-size: 16px; line-height: 2.05; }
.single-content p { margin: 0 0 1.55em; }
.single-content h2 { margin: 2.2em 0 .8em; color: #18384a; font-family: var(--serif); font-size: 24px; line-height: 1.6; }
.single-content h3 { margin: 1.8em 0 .7em; color: #18384a; font-size: 20px; }
.single-content ul, .single-content ol { color: #344f5d; line-height: 2; }
.single-back { margin-top: 46px; text-align: center; }
.pagination { margin-top: 42px; text-align: center; }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; margin: 0 4px; padding: 0 12px; border-radius: 999px; background: #fff; color: var(--blue); text-decoration: none; }
.pagination .current { background: var(--green-dark); color: #fff; }

@media (max-width: 1100px) {
  .global-nav.is-open a::after,
  .global-nav.is-open a:hover::after,
  .global-nav.is-open a[aria-current="page"]::after { display: none !important; }
  .global-nav.is-open a { border-bottom: 1px solid rgba(31,74,91,.08); }
  .global-nav.is-open a:last-child { border-bottom: 0; }
}

@media (max-width: 767px) {
  .page-hero { padding: 96px 0 46px; }
  .page-hero .page-hero-simple,
  .page-hero > .container:not(.page-hero-inner) { text-align: left; }
  .page-hero .page-hero-simple h1,
  .page-hero > .container:not(.page-hero-inner) h1 { font-size: 24px; line-height: 1.55; letter-spacing: .05em; }
  .page-hero .page-hero-simple p:not(.label),
  .page-hero > .container:not(.page-hero-inner) p:not(.label) { margin-top: 10px; font-size: 13px; line-height: 1.8; }
  .news-archive-section { padding-top: 48px; }
  .news-archive-list { max-width: 100%; gap: 16px; }
  .news-archive-card a { padding: 20px 18px; border-radius: 18px; }
  .news-archive-meta { gap: 8px; margin-bottom: 10px; }
  .news-archive-meta time, .single-meta time { font-size: 12px; }
  .news-category { padding: 4px 10px; font-size: 11px; }
  .news-archive-card h2 { font-size: 17px; line-height: 1.65; letter-spacing: .03em; }
  .news-archive-card p { font-size: 13px; line-height: 1.8; }
  .single-main { padding: 88px 16px 56px; }
  .single-article { width: 100%; padding: 26px 20px; border-radius: 22px; }
  .single-header { margin-bottom: 26px; }
  .single-header h1 { font-size: 22px; line-height: 1.65; letter-spacing: .04em; }
  .single-content { font-size: 14px; line-height: 2; }
  .single-content h2 { font-size: 19px; }
  .single-content h3 { font-size: 17px; }
  .single-back { margin-top: 34px; }
}
