/* ==========================================================================
   Oak Grove Path — Core Stylesheet
   樫の森の小径 — 静寂と光のための意匠
   ========================================================================== */

:root{
  --oak-brown:#5b4330;
  --oak-brown-deep:#3c2c1f;
  --forest-green:#28392f;
  --forest-green-deep:#1a2620;
  --moss-green:#6f7d52;
  --moss-green-light:#94a375;
  --warm-beige:#e9dfc9;
  --soft-cream:#f8f3e8;
  --paper:#fbf8f1;
  --gold-mist:#cbb387;
  --ink:#2c2620;
  --ink-soft:#5a5148;
  --shadow-soft: 0 20px 60px -20px rgba(28,22,12,0.35);
  --ease: cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Noto Serif JP','Shippori Mincho',serif;
  font-weight:400;
  line-height:1.9;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,.font-en{
  font-family:'Fraunces','Cormorant Garamond',serif;
  letter-spacing:.01em;
}
.font-jp{font-family:'Zen Old Mincho','Noto Serif JP',serif;}
.font-ui{font-family:'Cormorant Garamond',serif;}

::selection{background:var(--moss-green); color:var(--soft-cream);}

a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}

/* Scrollbar */
::-webkit-scrollbar{width:10px;}
::-webkit-scrollbar-track{background:var(--soft-cream);}
::-webkit-scrollbar-thumb{background:var(--moss-green-light); border-radius:10px;}

/* ---------------- Loader ---------------- */
#loader{
  position:fixed; inset:0; z-index:9999; background:var(--forest-green-deep);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .8s var(--ease), visibility .8s var(--ease);
}
#loader.hide{opacity:0; visibility:hidden;}
#loader .leaf-spin{width:52px; height:52px; animation:spin 1.6s linear infinite; opacity:.9;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ---------------- Nav ---------------- */
.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:22px 4vw;
  display:flex; align-items:center; justify-content:space-between;
  transition:background .5s var(--ease), padding .5s var(--ease), box-shadow .5s var(--ease);
  background:transparent;
}
.site-nav.scrolled{
  background:rgba(248,243,232,0.88);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  padding:12px 4vw;
  box-shadow:0 6px 30px -12px rgba(28,22,12,.25);
}
.site-nav .brand{display:flex; align-items:center; gap:12px;}
.site-nav .brand svg{width:40px; height:40px; transition:transform .5s var(--ease), color .5s; color:var(--soft-cream);}
.site-nav.scrolled .brand svg{width:34px; height:34px; color:var(--forest-green-deep);}
.hero-page .site-nav:not(.scrolled) .brand svg{color:var(--soft-cream);}
footer.site-footer .foot-brand svg{color:var(--gold-mist);}
body.no-scroll{overflow:hidden;}
.brand-text{line-height:1.1;}
.brand-text .en{font-family:'Fraunces',serif; font-size:19px; font-weight:600; letter-spacing:.03em; color:var(--soft-cream);}
.brand-text .jp{font-family:'Zen Old Mincho',serif; font-size:11px; letter-spacing:.28em; color:var(--gold-mist);}
.site-nav.scrolled .brand-text .en{color:var(--forest-green-deep);}
.site-nav.scrolled .brand-text .jp{color:var(--moss-green);}
.hero-page .site-nav:not(.scrolled) .brand-text .en{color:var(--soft-cream);}

.nav-links{display:none; align-items:center; gap:2px; list-style:none; margin:0; padding:0;}
.nav-links > li{position:relative;}
.nav-links > li > a{
  display:inline-flex; align-items:center; gap:5px;
  padding:10px 16px; font-family:'Cormorant Garamond',serif; font-size:16px; letter-spacing:.04em;
  color:var(--soft-cream); font-weight:600; transition:color .35s;
}
.site-nav.scrolled .nav-links > li > a{color:var(--ink);}
.hero-page .site-nav:not(.scrolled) .nav-links > li > a{color:var(--soft-cream);}
.nav-links > li > a:hover{color:var(--gold-mist);}
.nav-links > li > a .car{font-size:10px; transition:transform .3s;}
.nav-links > li:hover > a .car{transform:rotate(180deg);}

.dropdown{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px);
  min-width:230px; background:var(--paper); border-radius:4px; padding:10px;
  box-shadow:var(--shadow-soft); opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .35s var(--ease), transform .35s var(--ease), visibility .35s;
  border:1px solid rgba(91,67,48,.12);
  list-style:none; margin:0;
}
.nav-links > li:hover .dropdown{opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0);}
.dropdown a{display:block; padding:9px 14px; border-radius:3px; font-size:14.5px; color:var(--ink-soft); font-family:'Noto Serif JP',serif;}
.dropdown a:hover{background:var(--warm-beige); color:var(--forest-green-deep);}

.nav-cta{
  display:none; font-family:'Cormorant Garamond',serif; font-weight:700; letter-spacing:.05em;
  padding:10px 22px; border:1px solid currentColor; border-radius:2px; font-size:14.5px;
  color:var(--soft-cream); transition:all .4s var(--ease);
}
.site-nav.scrolled .nav-cta{color:var(--forest-green-deep); border-color:var(--forest-green-deep);}
.nav-cta:hover{background:var(--soft-cream); color:var(--forest-green-deep)!important; border-color:var(--soft-cream)!important;}

.burger{
  width:44px; height:44px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  cursor:pointer; z-index:1100; background:none; border:none;
}
.burger span{width:26px; height:1.5px; background:var(--soft-cream); transition:all .4s var(--ease); display:block;}
.site-nav.scrolled .burger span{background:var(--ink);}
.hero-page .site-nav:not(.scrolled) .burger span{background:var(--soft-cream);}
.burger.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}
.burger.open span{background:var(--soft-cream)!important;}

.mobile-menu{
  position:fixed; inset:0; background:var(--forest-green-deep); z-index:1050;
  display:flex; flex-direction:column; justify-content:center; padding:14vw 10vw;
  transform:translateY(-100%); transition:transform .6s var(--ease); overflow-y:auto;
}
.mobile-menu.open{transform:translateY(0);}
.mobile-menu ul{list-style:none; margin:0; padding:0;}
.mobile-menu > ul > li{border-bottom:1px solid rgba(233,223,201,.14);}
.mobile-menu > ul > li > a, .mobile-menu .msub-toggle{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 2px; font-family:'Fraunces',serif; font-size:26px; color:var(--soft-cream); cursor:pointer;
}
.mobile-menu .msub{max-height:0; overflow:hidden; transition:max-height .45s var(--ease);}
.mobile-menu .msub li a{display:block; padding:10px 4px 10px 18px; font-family:'Cormorant Garamond',serif; font-size:18px; color:var(--gold-mist);}
.mobile-menu .msub-toggle .plus{transition:transform .35s; font-size:20px; color:var(--gold-mist);}
.mobile-menu .msub-toggle.open .plus{transform:rotate(45deg);}
.mobile-contact{margin-top:30px; font-family:'Cormorant Garamond',serif; color:var(--warm-beige); font-size:15px; line-height:1.8;}

/* ---------------- Hero ---------------- */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:flex-end;
  overflow:hidden; background:var(--forest-green-deep);
}
.hero-bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  transform:scale(1.08); animation:heroZoom 18s var(--ease) forwards;
}
@keyframes heroZoom{to{transform:scale(1);}}
.hero-scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,24,18,.35) 0%, rgba(18,20,15,.25) 40%, rgba(14,16,12,.85) 100%);
}
.hero-content{position:relative; z-index:5; padding:0 6vw 9vw; width:100%; color:var(--soft-cream);}
.hero-kicker{
  font-family:'Zen Old Mincho',serif; letter-spacing:.5em; font-size:12.5px; text-transform:uppercase;
  color:var(--gold-mist); margin:0 0 18px; opacity:0; animation:fadeUp 1.2s var(--ease) .3s forwards;
}
.hero-title{
  font-family:'Fraunces',serif; font-weight:600; font-size:clamp(38px,8vw,102px); line-height:1.02;
  margin:0 0 22px; max-width:16ch; opacity:0; animation:fadeUp 1.3s var(--ease) .55s forwards;
}
.hero-sub{
  font-family:'Zen Old Mincho',serif; font-size:clamp(15px,2vw,22px); letter-spacing:.08em;
  color:var(--warm-beige); margin:0 0 40px; opacity:0; animation:fadeUp 1.3s var(--ease) .8s forwards;
}
.hero-ctas{display:flex; flex-wrap:wrap; gap:16px; opacity:0; animation:fadeUp 1.3s var(--ease) 1.05s forwards;}
@keyframes fadeUp{from{opacity:0; transform:translateY(26px);} to{opacity:1; transform:translateY(0);}}
.hero-scroll{
  position:absolute; z-index:5; right:5vw; bottom:5vw; display:flex; flex-direction:column; align-items:center; gap:10px;
  color:var(--soft-cream); font-family:'Cormorant Garamond',serif; letter-spacing:.3em; font-size:12px;
}
.hero-scroll .line{width:1px; height:52px; background:linear-gradient(180deg, rgba(248,243,232,.9), transparent); position:relative; overflow:hidden;}
.hero-scroll .line::after{content:''; position:absolute; top:-100%; left:0; width:100%; height:100%; background:var(--gold-mist); animation:scrollLine 2.4s ease-in-out infinite;}
@keyframes scrollLine{0%{top:-100%;} 60%{top:100%;} 100%{top:100%;}}
.hero-page{padding-top:0;}

/* Small page hero (interior pages) */
.page-hero{
  position:relative; min-height:62vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--forest-green-deep);
}
.page-hero .hero-bg{animation:heroZoom 14s var(--ease) forwards;}
.page-hero .hero-content{padding:0 6vw 6vw;}
.page-hero .hero-title{font-size:clamp(32px,6.4vw,72px); max-width:20ch;}
.breadcrumb{font-family:'Cormorant Garamond',serif; font-size:14px; letter-spacing:.1em; color:var(--warm-beige); position:relative; z-index:5; padding:0 6vw; margin-bottom:16px; opacity:.85;}
.breadcrumb a:hover{color:var(--gold-mist);}

/* ---------------- Buttons ---------------- */
.btn{
  position:relative; display:inline-flex; align-items:center; gap:10px;
  padding:15px 34px; font-family:'Cormorant Garamond',serif; font-weight:700; font-size:15.5px;
  letter-spacing:.08em; text-transform:uppercase; border-radius:2px; overflow:hidden;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease);
}
.btn-primary{background:var(--moss-green); color:var(--soft-cream);}
.btn-primary:hover{transform:translateY(-3px); box-shadow:0 16px 30px -10px rgba(111,125,82,.55);}
.btn-outline{border:1px solid var(--soft-cream); color:var(--soft-cream); background:transparent;}
.btn-outline:hover{background:var(--soft-cream); color:var(--forest-green-deep); transform:translateY(-3px);}
.btn-dark{background:var(--forest-green-deep); color:var(--soft-cream);}
.btn-dark:hover{transform:translateY(-3px); box-shadow:0 16px 30px -10px rgba(26,38,32,.5);}
.btn-leaf::before{content:'🍃'; font-size:13px;}

/* ---------------- Layout helpers ---------------- */
.wrap{max-width:1360px; margin:0 auto; padding-left:6vw; padding-right:6vw;}
section{position:relative;}
.eyebrow{font-family:'Zen Old Mincho',serif; letter-spacing:.5em; font-size:12px; text-transform:uppercase; color:var(--moss-green);}
.eyebrow.on-dark{color:var(--gold-mist);}
.headline{font-family:'Fraunces',serif; font-weight:600; font-size:clamp(30px,4.4vw,54px); line-height:1.08; color:var(--forest-green-deep);}
.headline.on-dark{color:var(--soft-cream);}
.sub-jp{font-family:'Zen Old Mincho',serif; font-size:16px; letter-spacing:.05em; color:var(--ink-soft);}
.sub-jp.on-dark{color:var(--warm-beige);}
.body-jp{color:var(--ink-soft); font-size:16px; line-height:2;}
.body-jp.on-dark{color:var(--warm-beige);}

/* alternating image/text */
.split{display:grid; grid-template-columns:1fr; gap:40px; align-items:center;}
.split .media{position:relative; overflow:hidden; border-radius:4px;}
.split .media img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease);}
.split .media:hover img{transform:scale(1.06);}
.split .media .frame{position:absolute; inset:14px; border:1px solid rgba(248,243,232,.55); pointer-events:none;}

/* Cards */
.card{
  background:var(--paper); border-radius:5px; overflow:hidden; box-shadow:0 12px 40px -20px rgba(28,22,12,.25);
  transition:transform .55s var(--ease), box-shadow .55s var(--ease);
}
.card:hover{transform:translateY(-8px); box-shadow:0 30px 60px -20px rgba(28,22,12,.35);}
.card .media{position:relative; aspect-ratio:4/5; overflow:hidden;}
.card .media img{width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease);}
.card:hover .media img{transform:scale(1.1);}
.card .tag{position:absolute; top:16px; left:16px; background:rgba(251,248,241,.9); backdrop-filter:blur(6px); padding:5px 12px; font-family:'Cormorant Garamond',serif; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--forest-green-deep); border-radius:2px;}
.card .body{padding:26px 24px 30px;}
.card h3{margin:6px 0 8px; font-size:23px; color:var(--forest-green-deep);}
.card p{margin:0; font-size:14.5px; color:var(--ink-soft); line-height:1.85;}
.card .arrow{margin-top:16px; display:inline-flex; align-items:center; gap:8px; font-family:'Cormorant Garamond',serif; font-weight:700; font-size:14px; letter-spacing:.06em; color:var(--moss-green);}
.card .arrow svg{transition:transform .4s var(--ease);}
.card:hover .arrow svg{transform:translateX(6px);}

/* Glass panel */
.glass{
  background:rgba(251,248,241,.62); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.4); border-radius:8px; box-shadow:0 20px 60px -30px rgba(28,22,12,.4);
}
.glass-dark{
  background:rgba(26,38,32,.45); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.14); border-radius:8px;
}

/* Reveal on scroll */
.reveal{opacity:0; transform:translateY(46px); transition:opacity 1s var(--ease), transform 1s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-l{opacity:0; transform:translateX(-50px);}
.reveal-l.in{opacity:1; transform:translateX(0); transition:opacity 1s var(--ease), transform 1s var(--ease);}
.reveal-r{opacity:0; transform:translateX(50px);}
.reveal-r.in{opacity:1; transform:translateX(0); transition:opacity 1s var(--ease), transform 1s var(--ease);}
.stagger .reveal:nth-child(1){transition-delay:.05s;}
.stagger .reveal:nth-child(2){transition-delay:.18s;}
.stagger .reveal:nth-child(3){transition-delay:.31s;}
.stagger .reveal:nth-child(4){transition-delay:.44s;}

/* Parallax band */
.parallax-band{
  background-attachment:fixed; background-position:center; background-size:cover;
  min-height:56vh; position:relative; display:flex; align-items:center; justify-content:center;
}
@media (max-width:900px){.parallax-band{background-attachment:scroll;}}
.parallax-band .scrim{position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,24,18,.55), rgba(20,24,18,.72));}
.parallax-band .content{position:relative; z-index:2; text-align:center; color:var(--soft-cream); max-width:820px; padding:0 24px;}

/* Floating leaves */
.leaves-container{position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:3;}
.leaf{position:absolute; top:-10%; opacity:.85; will-change:transform; animation-name:leafFall; animation-timing-function:linear; animation-iteration-count:infinite;}
@keyframes leafFall{
  0%{transform:translate(0,-10vh) rotate(0deg); opacity:0;}
  8%{opacity:.9;}
  92%{opacity:.7;}
  100%{transform:translate(var(--drift,60px), 115vh) rotate(340deg); opacity:0;}
}

/* Mist */
.mist{position:absolute; z-index:2; pointer-events:none; filter:blur(30px); opacity:.55; mix-blend-mode:screen;}
.mist-1{width:60vw; height:40vh; left:-10vw; top:10%; background:radial-gradient(ellipse at center, rgba(248,243,232,.5), transparent 70%); animation:driftRight 34s ease-in-out infinite;}
.mist-2{width:50vw; height:36vh; right:-14vw; bottom:6%; background:radial-gradient(ellipse at center, rgba(233,223,201,.4), transparent 70%); animation:driftLeft 40s ease-in-out infinite;}
@keyframes driftRight{0%,100%{transform:translateX(0);} 50%{transform:translateX(6vw);}}
@keyframes driftLeft{0%,100%{transform:translateX(0);} 50%{transform:translateX(-6vw);}}

/* Stats-free info strip */
.info-strip{display:grid; grid-template-columns:repeat(2,1fr); gap:28px;}
.info-strip .item{border-top:1px solid rgba(91,67,48,.2); padding-top:18px;}
.info-strip .item h4{margin:0 0 6px; font-family:'Fraunces',serif; font-size:19px; color:var(--forest-green-deep);}
.info-strip .item p{margin:0; font-size:14px; color:var(--ink-soft);}

/* Masonry gallery */
.masonry{column-count:1; column-gap:18px;}
@media(min-width:640px){.masonry{column-count:2;}}
@media(min-width:1024px){.masonry{column-count:3;}}
.masonry .g-item{break-inside:avoid; margin-bottom:18px; position:relative; overflow:hidden; border-radius:4px; cursor:pointer; group:1;}
.masonry .g-item img{width:100%; display:block; transition:transform 1s var(--ease), filter .6s;}
.masonry .g-item:hover img{transform:scale(1.08);}
.masonry .g-item .g-overlay{
  position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(20,24,18,.85));
  opacity:0; transition:opacity .45s var(--ease); display:flex; align-items:flex-end; padding:18px;
}
.masonry .g-item:hover .g-overlay{opacity:1;}
.masonry .g-item .g-cap{color:var(--soft-cream); font-family:'Cormorant Garamond',serif; font-size:14px; letter-spacing:.05em;}

/* Lightbox */
#lightbox{position:fixed; inset:0; background:rgba(14,16,12,.94); z-index:2000; display:none; align-items:center; justify-content:center; padding:5vw;}
#lightbox.open{display:flex;}
#lightbox img{max-width:90vw; max-height:80vh; object-fit:contain; border-radius:2px; box-shadow:0 30px 90px rgba(0,0,0,.6);}
#lightbox .lb-close{position:absolute; top:26px; right:30px; color:var(--soft-cream); font-size:34px; cursor:pointer; font-family:'Fraunces',serif;}
#lightbox .lb-nav{position:absolute; top:50%; transform:translateY(-50%); color:var(--soft-cream); font-size:30px; cursor:pointer; padding:14px; opacity:.7; transition:opacity .3s;}
#lightbox .lb-nav:hover{opacity:1;}
#lightbox .lb-prev{left:16px;} #lightbox .lb-next{right:16px;}
#lightbox .lb-cap{position:absolute; bottom:30px; left:0; right:0; text-align:center; color:var(--warm-beige); font-family:'Zen Old Mincho',serif; letter-spacing:.1em; font-size:14px;}

/* FAQ */
.faq-item{border-bottom:1px solid rgba(91,67,48,.2); padding:26px 0;}
.faq-q{display:flex; align-items:center; justify-content:space-between; cursor:pointer; gap:18px;}
.faq-q h3{margin:0; font-family:'Fraunces',serif; font-weight:500; font-size:19px; color:var(--forest-green-deep);}
.faq-q .plus{font-size:24px; color:var(--moss-green); transition:transform .4s var(--ease); flex-shrink:0;}
.faq-item.open .faq-q .plus{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .5s var(--ease);}
.faq-a p{margin:16px 0 0; color:var(--ink-soft); font-size:15px; line-height:1.9; max-width:70ch;}

/* Forms */
.field{margin-bottom:22px;}
.field label{display:block; font-family:'Cormorant Garamond',serif; letter-spacing:.08em; font-size:13px; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px;}
.field input, .field textarea, .field select{
  width:100%; padding:14px 16px; background:rgba(251,248,241,.7); border:1px solid rgba(91,67,48,.25); border-radius:3px;
  font-family:'Noto Serif JP',serif; font-size:15px; color:var(--ink); transition:border-color .3s, box-shadow .3s;
}
.field input:focus, .field textarea:focus, .field select:focus{outline:none; border-color:var(--moss-green); box-shadow:0 0 0 3px rgba(111,125,82,.18);}
.field textarea{resize:vertical; min-height:140px;}

/* Toast */
#toast-container{position:fixed; bottom:26px; right:26px; z-index:3000; display:flex; flex-direction:column; gap:12px; align-items:flex-end;}
.toast{
  display:flex; align-items:center; gap:12px; background:var(--forest-green-deep); color:var(--soft-cream);
  padding:16px 22px; border-radius:4px; box-shadow:0 20px 50px -14px rgba(0,0,0,.5); font-family:'Cormorant Garamond',serif;
  font-size:15.5px; letter-spacing:.03em; transform:translateX(120%); opacity:0; transition:transform .5s var(--ease), opacity .5s var(--ease);
  max-width:340px; border-left:3px solid var(--gold-mist);
}
.toast.show{transform:translateX(0); opacity:1;}
.toast .leaf-ic{flex-shrink:0; font-size:18px;}

/* Footer */
footer.site-footer{background:var(--forest-green-deep); color:var(--warm-beige); position:relative; overflow:hidden;}
footer.site-footer .footer-top{padding:90px 6vw 60px; display:grid; grid-template-columns:1fr; gap:50px; position:relative; z-index:2;}
footer.site-footer h4{font-family:'Fraunces',serif; font-size:16px; letter-spacing:.06em; color:var(--soft-cream); margin:0 0 20px; text-transform:uppercase;}
footer.site-footer ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px;}
footer.site-footer a{font-family:'Cormorant Garamond',serif; font-size:15.5px; color:var(--warm-beige); transition:color .3s, padding-left .3s;}
footer.site-footer a:hover{color:var(--gold-mist); padding-left:4px;}
footer.site-footer .foot-brand svg{width:46px; height:46px;}
footer.site-footer .foot-desc{font-family:'Zen Old Mincho',serif; font-size:14.5px; line-height:2; color:var(--warm-beige); opacity:.85; margin-top:16px; max-width:34ch;}
.foot-bottom{border-top:1px solid rgba(233,223,201,.15); padding:26px 6vw; display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:space-between; position:relative; z-index:2;}
.foot-bottom p{margin:0; font-family:'Cormorant Garamond',serif; font-size:13.5px; color:var(--warm-beige); opacity:.75;}
.foot-social{display:flex; gap:14px;}
.foot-social a{width:38px; height:38px; border:1px solid rgba(233,223,201,.3); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:all .35s;}
.foot-social a:hover{background:var(--moss-green); border-color:var(--moss-green);}
.back-top{position:fixed; right:26px; bottom:26px; width:52px; height:52px; border-radius:50%; background:var(--forest-green-deep); color:var(--soft-cream); display:flex; align-items:center; justify-content:center; box-shadow:0 12px 30px -10px rgba(0,0,0,.4); z-index:900; opacity:0; visibility:hidden; transform:translateY(14px); transition:all .4s var(--ease); cursor:pointer;}
.back-top.show{opacity:1; visibility:visible; transform:translateY(0);}

/* Divider leaf */
.leaf-divider{display:flex; align-items:center; gap:16px; margin:0 0 22px;}
.leaf-divider svg{width:22px; height:22px; color:var(--moss-green);}
.leaf-divider span{height:1px; width:60px; background:rgba(91,67,48,.3); display:block;}

/* Pull quote */
.pull-quote{font-family:'Zen Old Mincho',serif; font-size:clamp(20px,2.6vw,30px); line-height:1.8; color:var(--forest-green-deep); position:relative; padding:0 0 0 30px; border-left:2px solid var(--moss-green);}

/* Timeline (used for visitor guide / trail steps) */
.tline{position:relative; padding-left:34px;}
.tline::before{content:''; position:absolute; left:6px; top:6px; bottom:6px; width:1px; background:rgba(91,67,48,.25);}
.tline .t-item{position:relative; padding-bottom:38px;}
.tline .t-item::before{content:''; position:absolute; left:-34px; top:4px; width:13px; height:13px; border-radius:50%; background:var(--paper); border:2px solid var(--moss-green);}
.tline .t-item h4{margin:0 0 6px; font-family:'Fraunces',serif; font-size:20px; color:var(--forest-green-deep);}
.tline .t-item p{margin:0; color:var(--ink-soft); font-size:14.5px;}

/* utility grid */
.grid-2{display:grid; grid-template-columns:1fr; gap:28px;}
.grid-3{display:grid; grid-template-columns:1fr; gap:28px;}
.grid-4{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}

.chip{display:inline-block; padding:6px 14px; border:1px solid rgba(91,67,48,.3); border-radius:20px; font-family:'Cormorant Garamond',serif; font-size:13px; letter-spacing:.06em; color:var(--ink-soft); margin:0 8px 8px 0;}

.section-pad{padding:100px 0;}
.section-pad-sm{padding:64px 0;}
.bg-cream{background:var(--soft-cream);}
.bg-beige{background:var(--warm-beige);}
.bg-forest{background:var(--forest-green-deep); color:var(--soft-cream);}
.bg-paper{background:var(--paper);}

/* 404 */
.error-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; text-align:center; position:relative; overflow:hidden; background:var(--forest-green-deep);}
.error-num{font-family:'Fraunces',serif; font-size:clamp(90px,20vw,240px); color:var(--soft-cream); line-height:.9; margin:0;}

@media(min-width:780px){
  .nav-links{display:flex;}
  .nav-cta{display:inline-flex;}
  .burger{display:none;}
  .split{grid-template-columns:1fr 1fr; gap:70px;}
  .split.reverse > .media{order:2;}
  .grid-3{grid-template-columns:repeat(3,1fr);}
  .grid-2{grid-template-columns:1fr 1fr;}
  .grid-4{grid-template-columns:repeat(4,1fr);}
  .info-strip{grid-template-columns:repeat(4,1fr);}
  footer.site-footer .footer-top{grid-template-columns:1.4fr 1fr 1fr 1fr;}
}
@media(max-width:779px){
  .mobile-menu{display:flex;}
}
@media(min-width:780px){
  .mobile-menu{display:none;}
}
