@charset "utf-8";
/* ===========================================================
   吉田クリニック トップページ
   =========================================================== */

:root{
  --green:#7BAE4B;
  --green-dark:#3F6B33;
  --green-mid:#6C9E3F;
  --green-pale:#EFF4E2;
  --green-line:#DCEBC2;
  --cream:#FBF7EC;
  --cream-2:#F6F3E4;
  --ink:#3B3A33;
  --ink-70:#5A5849;
  --ink-50:#7E7C6E;
  --ink-40:#8A8877;
  --border:#EEEFE4;
  --font-ja:"Zen Kaku Gothic New","Zen Maru Gothic",sans-serif;
  --font-round:"Zen Maru Gothic",sans-serif;
  --font-en:"Cormorant Garamond",serif;
  --wrap:1180px;
  --gutter:40px;
  --header-h:136px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-ja);
  font-size:16px;
  line-height:1.9;
  letter-spacing:.04em;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;}
p{text-wrap:pretty;}
a{color:var(--green-dark);text-decoration:none;transition:color .2s ease;}
a:hover{color:var(--green);}
ul{list-style:none;margin:0;padding:0;}
table{border-collapse:collapse;}

/* 写真プレースホルダー（実装時は img / iframe に差し替え） */
.ph{
  display:flex;align-items:center;justify-content:center;
  background:#E9E7DC;color:#8A8877;font-size:13px;text-align:center;
  padding:8px;border-radius:inherit;
}
.ph--fill{width:100%;height:100%;}
.ph--h170{height:170px;border-radius:18px;}
.ph--h180{height:180px;border-radius:18px;}
.ph--h210{height:210px;border-radius:22px;}
.ph--h300{height:300px;border-radius:22px;}

/* 共通見出し ------------------------------------------------ */
.sec-head{text-align:center;margin-bottom:48px;}
.sec-en{
  margin:0 0 10px;font-family:var(--font-en);font-size:15px;
  letter-spacing:.34em;color:#8FB562;text-align:center;
}
.sec-en--left{text-align:left;font-size:14px;letter-spacing:.3em;}
.sec-title{
  margin:0;font-family:var(--font-round);font-weight:700;
  font-size:32px;letter-spacing:.09em;color:var(--green-dark);
}
.en-label{
  margin:0 0 18px;font-family:var(--font-en);font-size:17px;
  letter-spacing:.34em;color:#A9C77E;
}
.marker{background:linear-gradient(transparent 68%,var(--green-line) 68%,var(--green-line) 92%,transparent 92%);}

/* ===========================================================
   HEADER
   =========================================================== */
.header{
  position:fixed;inset:0 0 auto;z-index:60;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(6px);
  box-shadow:0 2px 18px rgba(80,100,60,.08);
}
.header__bar{
  display:flex;align-items:center;justify-content:space-between;
  gap:32px;padding:0 32px;height:84px;
}
.header__logo img{display:block;height:52px;width:auto;}
.header__actions{display:flex;align-items:center;gap:14px;}

.btn-tel{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1px;height:58px;padding:0 22px;border-radius:14px;
  border:1.5px solid #D8E2C4;background:#fff;transition:background .2s ease;
}
.btn-tel:hover{background:#F4F8EA;}
.btn-tel__label{font-size:10px;letter-spacing:.16em;color:#9A9884;}
.btn-tel__num{
  display:flex;align-items:center;gap:8px;
  font-family:var(--font-round);font-weight:700;font-size:24px;
  color:var(--green-dark);line-height:1.2;
}
.btn-web{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;height:58px;padding:0 26px;border-radius:14px;
  background:var(--green);color:#fff;
  box-shadow:0 6px 14px rgba(123,174,75,.34);transition:background .2s ease;
}
.btn-web:hover{background:var(--green-mid);color:#fff;}
.btn-web__main{font-family:var(--font-round);font-weight:700;font-size:16px;letter-spacing:.08em;}
.btn-web__sub{font-size:10px;letter-spacing:.14em;opacity:.9;}

/* ハンバーガー */
.nav-toggle{display:none;}
.nav-btn{display:none;}

/* グローバルナビ */
.gnav{border-top:1px solid var(--border);background:#fff;}
.gnav__list{
  display:flex;justify-content:center;align-items:center;
  gap:40px;padding:0 32px;height:52px;font-size:14px;font-weight:500;
}
.gnav__item{position:relative;display:flex;align-items:center;height:52px;}
.gnav__parent{
  display:flex;align-items:center;gap:10px;
  color:var(--green-dark);cursor:pointer;
}
.sub-toggle{display:none;}
.pm{position:relative;display:block;width:13px;height:13px;flex-shrink:0;}
.pm::before,.pm::after{
  content:"";position:absolute;left:0;top:5.5px;width:13px;height:2px;
  background:var(--green);border-radius:2px;transition:transform .2s ease,opacity .2s ease;
}
.pm::after{transform:rotate(90deg);}
.sub-toggle:checked + .gnav__parent .pm::after{transform:rotate(90deg) scaleX(0);opacity:0;}
.gnav__sub{
  position:absolute;top:52px;left:-16px;
  min-width:230px;padding:10px 0;background:#fff;
  border-top:2px solid var(--green);border-radius:0 0 16px 16px;
  box-shadow:0 12px 26px rgba(80,100,60,.14);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s;
}
.gnav__item--has-child .sub-toggle:checked ~ .gnav__sub{opacity:1;visibility:visible;transform:none;}
.gnav__sub a{display:block;padding:11px 22px;font-size:13.5px;color:var(--ink);}
.gnav__sub a:hover{background:#F4F8EA;color:var(--green-dark);}

/* モバイルメニュー内の電話ブロック（≤1024のみ表示） */
.gnav__tel{display:none;}

/* 画面下部の固定バー（≤1024のみ表示） */
.fixedbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;grid-template-columns:1fr 1fr;}
.fixedbar a{
  display:flex;align-items:center;justify-content:center;gap:10px;height:64px;
  font-family:var(--font-round);font-weight:700;font-size:17px;
}
.fixedbar__tel{background:#fff;border-top:1px solid #E4EAD6;color:var(--green-dark);}
.fixedbar__web{background:var(--green);color:#fff;}
.fixedbar__web:hover{color:#fff;}

/* ===========================================================
   HERO
   =========================================================== */
.hero{
  position:relative;display:flex;flex-direction:column;
  min-height:100vh;padding:200px 0 0;overflow:hidden;
  background:linear-gradient(180deg,var(--cream) 0%,var(--cream) 62%,var(--cream-2) 100%);
}
.hero__blob{
  position:absolute;top:150px;left:-160px;width:620px;height:540px;
  background:#F2F0DC;opacity:.7;transform:rotate(8deg);
  border-radius:58% 42% 47% 53% / 44% 56% 44% 56%;
}
.hero__visual{position:absolute;top:0;right:0;bottom:0;width:50%;z-index:1;}
.hero__inner{
  position:relative;z-index:2;flex:1;width:100%;max-width:1240px;
  margin:0 auto;padding:0 var(--gutter) 48px;
  display:grid;grid-template-columns:minmax(0,490px);align-items:center;
}
.hero__title{
  margin:0 0 26px;font-family:var(--font-round);font-weight:700;
  font-size:43px;line-height:1.62;letter-spacing:.03em;color:var(--green-dark);
}
.hero__lead{margin:0 0 34px;font-size:16.5px;color:#5E5C50;line-height:2.1;}

/* 診療時間表 */
.hours-card{
  background:#fff;border-radius:22px;padding:24px 26px;
  box-shadow:0 10px 30px rgba(90,110,70,.09);
}
.hours-card--plain{
  margin-top:26px;background:#FBF9F2;border:1px solid var(--border);
  border-radius:20px;padding:22px 24px;box-shadow:none;
}
.hours{width:100%;font-size:15px;text-align:center;}
.hours th{font-weight:700;padding:6px 4px;color:var(--ink-40);}
.hours .is-sun{color:#C58B8B;}
.hours__head{width:132px;text-align:left;font-weight:700;color:var(--green-dark);}
.hours__title{display:flex;align-items:center;gap:8px;font-family:var(--font-round);font-size:14px;letter-spacing:.1em;}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);}
.hours tbody tr{border-top:1px solid var(--border);}
.hours td{padding:11px 4px;}
.hours__time{text-align:left;color:#5E5C50;}
.hours .ok{color:var(--green);}
.hours .no{color:#D6D4C4;}
.hours .half{color:#E0A94B;}
.hours__note{margin:14px 0 0;font-size:16px;color:var(--ink-50);line-height:1.95;}

/* お知らせバー */
.newsbar-wrap{
  position:relative;z-index:3;width:100%;max-width:1240px;
  margin:0 auto;padding:0 var(--gutter);flex-shrink:0;
}
.newsbar{
  display:flex;align-items:center;gap:28px;
  background:var(--green);color:#fff;
  border-radius:20px 20px 0 0;padding:20px 34px;
}
.newsbar__label{
  display:flex;align-items:center;gap:9px;flex-shrink:0;
  font-family:var(--font-en);font-size:16px;letter-spacing:.28em;
}
.newsbar__list{display:flex;flex-direction:column;gap:8px;flex:1;}
.newsbar__list a{display:flex;gap:22px;align-items:baseline;color:#fff;font-size:16px;}
.newsbar__list a:hover{color:#fff;}
.newsbar__date{font-family:var(--font-en);font-size:19px;letter-spacing:.08em;opacity:.9;}
.newsbar__text{border-bottom:1px solid rgba(255,255,255,.4);}
.newsbar__more{
  flex-shrink:0;display:grid;place-items:center;width:112px;height:40px;
  border-radius:20px;background:#fff;color:var(--green-dark);
  font-size:12.5px;font-weight:700;letter-spacing:.08em;
}

/* ===========================================================
   ABOUT
   =========================================================== */
.about{position:relative;background:var(--green-pale);padding:20px 0 0;overflow:hidden;}
.about__inner{position:relative;max-width:1120px;margin:0 auto;padding:56px var(--gutter) 0;text-align:center;}
.about__inner .sec-title{margin-bottom:28px;font-size:34px;line-height:1.75;letter-spacing:.08em;}
.about__text{max-width:720px;margin:0 auto;font-size:16px;color:var(--ink-70);line-height:2.2;}
.about__photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:44px;}
.about__photos > div{border-radius:22px;overflow:hidden;box-shadow:0 10px 24px rgba(90,110,70,.1);}
.about__photos .is-offset{transform:translateY(24px);}
.about__spacer{height:150px;}
.about__tree{position:absolute;bottom:0;pointer-events:none;}
.about__tree img{display:block;}
.about__tree--a{left:56px;}
.about__tree--a img{width:132px;}
.about__tree--b{left:176px;}
.about__tree--b img{width:104px;}
.about__tree--c{right:70px;}
.about__tree--c img{width:126px;}

/* ===========================================================
   FEATURE
   =========================================================== */
.feature{position:relative;background:var(--cream);padding:20px 0 96px;overflow:hidden;}
.marquee{position:absolute;top:26px;left:0;right:0;overflow:hidden;pointer-events:none;user-select:none;}
.marquee__track{
  display:flex;width:max-content;white-space:nowrap;
  font-family:var(--font-en);font-size:104px;line-height:1;
  letter-spacing:.12em;color:#fff;
  animation:marquee 120s linear infinite;
}
.marquee__track span{padding-right:60px;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

.feature__inner{position:relative;max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter);}
.feature__inner .sec-head{padding-top:40px;}
.feature__grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;align-items:start;padding:34px 14px 54px;
}
.fcard{position:relative;transition:transform .16s cubic-bezier(.2,1.7,.45,1);}
.fcard--down{transform:translateY(34px);}
.fcard:hover{transform:translateY(-10px) rotate(-2deg);}
.fcard--down:hover{transform:translateY(24px) rotate(2deg);}
.fcard__bird{
  position:absolute;top:-30px;left:50%;transform:translateX(-50%);z-index:2;
  filter:drop-shadow(0 4px 6px rgba(90,110,70,.22));
}
.fcard__bird img{display:block;width:64px;height:auto;}
.fcard__body{
  background:#fff;border-radius:24px;padding:16px 16px 26px;
  box-shadow:0 12px 28px rgba(90,110,70,.11);
}
.fcard__body h3{
  margin:18px 0 12px;text-align:center;
  font-family:var(--font-round);font-weight:700;font-size:18px;
  line-height:1.7;color:var(--green-dark);
}
.fcard__body p{margin:0;font-size:16px;color:#6E6C60;line-height:1.9;}

/* ===========================================================
   診療科セクション
   =========================================================== */
.dept{position:relative;padding:96px 0;overflow:hidden;}
.dept--green{background:var(--green-pale);padding-bottom:150px;}
.dept--white{background:#fff;}
.wave{position:absolute;left:0;width:100%;height:82px;}
.wave--top{top:-1px;height:80px;}
.wave--bottom{bottom:-1px;}

.dept__inner{
  position:relative;max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:60px;align-items:center;
}
.dept__inner--img-left{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);}
.dept__pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;}
.dept__pair > div{border-radius:22px;overflow:hidden;box-shadow:0 12px 28px rgba(90,110,70,.12);}
.dept__pair .is-offset{transform:translateY(28px);}
.dept__head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 20px;}
.dept__head h2{
  margin:0;font-family:var(--font-round);font-weight:700;
  font-size:30px;letter-spacing:.08em;color:var(--green-dark);
}
.dept__text{margin:0 0 26px;font-size:16px;color:var(--ink-70);line-height:2.15;}
.note{margin:18px 0 0;font-size:16px;line-height:1.9;color:var(--ink-50);}

.circle-btn{
  flex-shrink:0;display:grid;place-items:center;width:62px;height:62px;
  border-radius:50%;background:var(--green);
  box-shadow:0 6px 16px rgba(123,174,75,.32);
  transition:transform .2s ease,background .2s ease;
}
.circle-btn:hover{background:var(--green-mid);transform:translateX(5px);}

.chips{display:flex;flex-wrap:wrap;gap:10px;}
.chips li{
  background:#fff;border:1px solid #E4EAD6;border-radius:999px;
  padding:11px 22px;font-size:15px;color:var(--green-dark);
  box-shadow:0 4px 12px rgba(90,110,70,.06);
}

.leaf{position:absolute;pointer-events:none;animation:floaty 8s ease-in-out infinite;}
.leaf img{display:block;}
.leaf--hari{right:36px;bottom:70px;animation-delay:1.2s;}
.leaf--hari img{width:74px;transform:scaleX(-1) rotate(-6deg);}
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}

/* ===========================================================
   RESERVE
   =========================================================== */
.reserve{position:relative;background:var(--green-dark);overflow:hidden;}
.reserve__bg{position:absolute;inset:0;}
.reserve__scrim{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(46,74,34,.86) 0%,rgba(46,74,34,.62) 55%,rgba(46,74,34,.4) 100%);
}
.reserve__inner{
  position:relative;max-width:var(--wrap);margin:0 auto;
  padding:84px var(--gutter);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:60px;align-items:center;
}
.reserve__en{margin:0 0 12px;font-family:var(--font-en);font-size:44px;letter-spacing:.2em;color:#fff;line-height:1;}
.reserve__ja{margin:0 0 18px;font-family:var(--font-round);font-weight:700;font-size:22px;color:#fff;letter-spacing:.1em;}
.reserve__text{margin:0;font-size:16px;color:rgba(255,255,255,.88);line-height:2.1;}
.reserve__btns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;}
.rbtn{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  height:150px;border-radius:22px;box-shadow:0 12px 28px rgba(20,40,10,.25);
  transition:background .2s ease;
}
.rbtn--tel{gap:6px;background:#fff;}
.rbtn--tel:hover{background:#F6F9EE;}
.rbtn--web{gap:10px;background:var(--green);}
.rbtn--web:hover{background:#8ABF57;}
.rbtn__num{font-family:var(--font-round);font-weight:700;font-size:27px;color:var(--green-dark);letter-spacing:.02em;}
.rbtn__main{font-family:var(--font-round);font-weight:700;font-size:20px;color:#fff;letter-spacing:.08em;}
.rbtn__sub{font-size:12.5px;color:#7B7A6C;}
.rbtn__sub--light{color:rgba(255,255,255,.9);}

/* ===========================================================
   ACCESS
   =========================================================== */
.access{position:relative;background:#fff;padding:88px 0 72px;overflow:hidden;}
.access__inner{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter);}
.access__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:44px;align-items:start;}
.info{width:100%;font-size:16px;}
.info tr{border-top:1px solid #E7E5D6;}
.info tr:last-child{border-bottom:1px solid #E7E5D6;}
.info th{width:98px;text-align:left;vertical-align:top;padding:16px 0;font-weight:700;color:var(--green-dark);}
.info td{padding:16px 0;color:var(--ink-70);}
.info__tel{font-family:var(--font-round);font-weight:700;font-size:22px;}
.access__map{height:520px;border-radius:24px;overflow:hidden;box-shadow:0 12px 30px rgba(90,110,70,.12);}
.access__map iframe{width:100%;height:100%;border:0;display:block;}

/* ===========================================================
   COLUMN
   =========================================================== */
.column{position:relative;background:var(--green-pale);padding:78px 0 92px;overflow:hidden;}
.column__inner{position:relative;max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter);}
.column__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:40px;}
.pill-btn{
  display:grid;place-items:center;width:150px;height:46px;border-radius:23px;
  background:#fff;color:var(--green-dark);font-size:13px;font-weight:700;
  letter-spacing:.08em;box-shadow:0 6px 16px rgba(90,110,70,.1);
  transition:background .2s ease,color .2s ease;
}
.pill-btn:hover{background:var(--green);color:#fff;}
.column__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;}
.ccard{
  display:block;background:#fff;border-radius:24px;padding:14px 14px 24px;
  box-shadow:0 10px 26px rgba(90,110,70,.09);transition:transform .2s ease;
}
.ccard:hover{transform:translateY(-4px);}
.ccard__meta{display:flex;align-items:center;gap:12px;padding:0 8px;margin:18px 0 10px;}
.ccard__date{font-family:var(--font-en);font-size:13px;letter-spacing:.1em;color:#A9C77E;}
.ccard__cat{background:var(--green-pale);border-radius:999px;padding:4px 12px;font-size:11.5px;color:var(--green-dark);}
.ccard h3{
  margin:0 0 8px;padding:0 8px;font-family:var(--font-round);font-weight:700;
  font-size:17px;line-height:1.75;color:var(--green-dark);
}
.ccard p{margin:0;padding:0 8px;font-size:16px;color:#6E6C60;line-height:1.9;}

/* ===========================================================
   FOOTER
   =========================================================== */
.footer{position:relative;background:var(--cream);padding:0 0 32px;}
.footer__wave{display:block;width:100%;height:100px;}
.footer__tree{position:absolute;right:56px;top:-64px;}
.footer__tree img{display:block;width:280px;}
.footer__inner{
  position:relative;max-width:var(--wrap);margin:0 auto;
  padding:24px var(--gutter) 0;
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:60px;align-items:start;
}
.footer__logo{margin-bottom:18px;}
.footer__logo img{display:block;height:54px;width:auto;}
.footer__addr{margin:0 0 8px;font-size:16px;color:var(--ink-70);line-height:2;}
.footer__dept{margin:0;font-size:16px;color:var(--ink-50);}
.footer__nav{display:grid;grid-template-columns:repeat(2,auto);gap:28px 72px;font-size:15px;align-items:start;}
.footer__col{display:flex;flex-direction:column;gap:12px;}
.footer__heading{font-family:var(--font-round);font-weight:700;color:var(--green-dark);}
.footer__col a{padding-left:14px;color:var(--ink-70);}
.footer__col a:hover{color:var(--green);}
.footer__col a.footer__top-link{padding-left:0;color:var(--green-dark);}
.footer__copy{
  margin:44px 0 0;text-align:center;font-family:var(--font-en);
  font-size:12px;letter-spacing:.24em;color:#9FAD86;
}

/* ===========================================================
   RESPONSIVE
   =========================================================== */
@media (max-width:1024px){
  :root{--gutter:20px;}
  .header{position:sticky;top:0;z-index:80;backdrop-filter:none;background:#fff;}
  .header__bar{position:relative;z-index:75;background:#fff;height:auto;padding:12px 16px;gap:12px;}
  .header__actions{display:none;}
  .fixedbar{display:grid;}
  body{padding-bottom:64px;}
  .nav-btn{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
    width:52px;height:52px;border:1.5px solid #D8E2C4;border-radius:12px;
    background:#fff;cursor:pointer;
  }
  .nav-btn span{display:block;width:22px;height:2px;background:var(--green-dark);border-radius:2px;transition:transform .2s ease,opacity .2s ease;}
  .nav-toggle:checked ~ .header__bar .nav-btn span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle:checked ~ .header__bar .nav-btn span:nth-child(2){opacity:0;}
  .nav-toggle:checked ~ .header__bar .nav-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .gnav{display:none;}
  .nav-toggle:checked ~ .gnav{
    display:block;position:fixed;inset:0;z-index:70;
    padding-top:84px;overflow-y:auto;background:var(--cream);border-top:0;
  }
  .header__logo img{height:42px;}
  .gnav__list{flex-direction:column;align-items:stretch;height:auto;padding:0;gap:0;font-size:17px;}
  .gnav__item{display:block;height:auto;width:100%;border-bottom:1px solid #E7E5D6;padding:4px 22px;}
  .gnav__item > a,.gnav__parent{display:flex;justify-content:space-between;padding:18px 0;font-family:var(--font-round);font-weight:700;}
  .gnav__sub{position:static;opacity:0;visibility:hidden;height:0;overflow:hidden;transform:none;box-shadow:none;border-top:0;border-radius:0;min-width:0;padding:0;}
  .sub-toggle:checked ~ .gnav__sub{opacity:1;visibility:visible;height:auto;padding:0 0 12px;}
  .gnav__sub a{padding:10px 0 10px 14px;font-size:15px;color:var(--ink-70);}
  .gnav__sub a:hover{background:none;}
  .gnav__tel{display:block;padding:24px 22px 40px;}
  .gnav__tel a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px;border-radius:18px;background:#fff;border:1px solid #E4EAD6;}
  .gnav__tel-num{font-family:var(--font-round);font-weight:700;font-size:28px;color:var(--green-dark);letter-spacing:.02em;}
  .gnav__tel-sub{font-size:13px;color:var(--ink-50);}

  .hero{min-height:0;padding:40px 0 0;}
  .hero__blob{display:none;}
  .hero__visual{position:relative;inset:auto;width:100%;height:320px;}
  .hero__inner{padding:32px var(--gutter) 40px;grid-template-columns:minmax(0,1fr);}
  .hero__title{font-size:32px;}
  .newsbar{flex-direction:column;align-items:flex-start;gap:14px;padding:18px 22px;}

  .sec-title{font-size:25px;}
  .about__inner .sec-title{font-size:26px;}
  .about__photos{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .about__photos .is-offset{transform:none;}
  .about__tree--b{display:none;}
  .about__tree--a img{width:96px;}
  .about__tree--c img{width:92px;}

  .marquee__track{font-size:54px;}
  .feature__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:34px 0 20px;}
  .fcard--down{transform:none;}
  .fcard--down:hover{transform:translateY(-10px) rotate(2deg);}

  .dept__inner,
  .dept__inner--img-left{grid-template-columns:minmax(0,1fr);gap:36px;}
  .dept__pair{order:2;}
  .dept__pair .is-offset{transform:none;}
  .leaf{display:none;}

  .reserve__inner{grid-template-columns:minmax(0,1fr);gap:32px;}
  .access__grid{grid-template-columns:minmax(0,1fr);}
  .access__map{height:320px;}
  .column__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}

  .footer__tree{display:none;}
  .footer__inner{grid-template-columns:minmax(0,1fr);gap:28px;}
}

@media (max-width:640px){
  .header__bar{flex-direction:row;align-items:center;}
  .hero__title{font-size:27px;}
  .hours{font-size:13px;}
  .hours__head{width:96px;}
  .about__photos,
  .feature__grid,
  .dept__pair,
  .column__grid,
  .reserve__btns{grid-template-columns:minmax(0,1fr);}
  .marquee__track{font-size:38px;}
  .column__head{flex-direction:column;align-items:flex-start;}
  .footer__nav{grid-template-columns:minmax(0,1fr);}
}
