:root {
  --accent: #c0974b;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:#1c1916}
::selection{background:#6b2738;color:#f3ede1}

@keyframes botaroKen{0%{transform:scale(1.06) translate3d(0,0,0)}100%{transform:scale(1.16) translate3d(-1.5%,-1.5%,0)}}
@keyframes botaroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}

.hero-ken{animation:botaroKen 18s ease-in-out infinite alternate}
.scroll-hint{animation:botaroFloat 2.6s ease-in-out infinite}

@media (prefers-reduced-motion: reduce) {
  .hero-ken,.scroll-hint{animation:none}
  [data-reveal]{opacity:1!important;transform:none!important}
}

::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-thumb{background:#8a7d6a;border-radius:6px}
::-webkit-scrollbar-track{background:#e7ddca}

.accent-text{color:var(--accent)}
.accent-border{border-color:var(--accent)!important}
.accent-bg{background-color:var(--accent)}

.asset-img{display:block;width:100%;height:100%;object-fit:cover}
.asset-img--contain{object-fit:contain}
[data-asset="logo"].asset-loaded{border-color:transparent!important;background:transparent!important}
[data-asset="logo"].asset-loaded .asset-img--contain{padding:4px}
[data-asset].asset-loaded .asset-ph{display:none!important}

.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
.form-privacy{font-size:13px;line-height:1.65;color:#8a7c63;margin:0 0 22px;font-weight:300}
.form-privacy a{color:#6b2738;text-decoration:underline;text-underline-offset:3px}

.footer-extras__row{display:flex;flex-wrap:wrap;gap:14px 22px;margin-top:14px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px}
.footer-extras__row .footer-link{color:rgba(243,237,225,0.55)}
.footer-extras__row .footer-link:hover{color:#f3ede1}

.legal-page{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#2a231d;background:#f3ede1;min-height:100vh}
.legal-page--404{background:#f3ede1}
.legal-nav{display:flex;align-items:center;justify-content:space-between;padding:22px 56px;border-bottom:1px solid #e4dcc9;background:rgba(243,237,225,0.92)}
.legal-nav__brand{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:3px;color:#2a231d;text-decoration:none}
.legal-nav__links{display:flex;gap:28px}
.legal-main{max-width:720px;margin:0 auto;padding:80px 56px 100px}
.legal-main--center{text-align:center;padding-top:120px}
.legal-kicker{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:3px;color:#6b2738;margin:0 0 20px}
.legal-main h1{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;font-size:52px;line-height:1.05;color:#26382b;margin:0 0 12px}
.legal-main h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:28px;color:#26382b;margin:36px 0 12px}
.legal-main p,.legal-main li{font-size:16px;line-height:1.8;color:#4a4036;font-weight:300}
.legal-main ul{padding-left:20px}
.legal-updated{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px;color:#9c8e74;margin:0 0 32px}
.site-footer--compact{padding:50px 56px;background:#1f1c17}
.site-footer__inner{max-width:1180px;margin:0 auto}
.site-footer__title{font-family:'Cormorant Garamond',Georgia,serif;font-size:24px;color:#f3ede1;margin-bottom:6px}
.site-footer__meta{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:1px;color:rgba(243,237,225,0.5)}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:100;
  padding:12px 20px;background:#6b2738;color:#f3ede1;
  font-family:'IBM Plex Mono',monospace;font-size:12px;text-decoration:none
}
.skip-link:focus{left:16px;top:16px}

.nav-link,.footer-link,.page-link{
  font-family:'IBM Plex Mono',monospace;
  background:none;border:none;padding:0;margin:0;
  cursor:pointer;text-decoration:none;
  font-size:inherit;letter-spacing:inherit;color:inherit;
  line-height:inherit
}
a.nav-link,a.footer-link,a.page-link,a.btn-hero-primary,a.btn-hero-outline{
  display:inline-block;text-decoration:none
}
.nav-link:focus-visible,.footer-link:focus-visible,
button:focus-visible,input:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px
}

.input-field{
  width:100%;border:none;border-bottom:1px solid #cdc0a8;
  background:transparent;padding:10px 2px;font-size:16px;color:#2a231d;
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif
}
.input-field:focus{border-bottom-color:#6b2738;outline:none}
.input-textarea{resize:vertical;min-height:100px;line-height:1.6;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif}

.btn-hero-primary{
  background:var(--accent);color:#231a12;border:none;
  padding:18px 38px;font-family:'IBM Plex Mono',monospace;
  font-size:12px;letter-spacing:2px;cursor:pointer;transition:background .25s
}
.btn-hero-primary:hover{background:#f3ede1}

.btn-hero-outline{
  background:transparent;color:#f3ede1;
  border:1px solid rgba(243,237,225,0.55);
  padding:18px 38px;font-family:'IBM Plex Mono',monospace;
  font-size:12px;letter-spacing:2px;cursor:pointer;transition:.25s
}
.btn-hero-outline:hover{border-color:#f3ede1;background:rgba(243,237,225,0.08)}

.card-hover{
  transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s
}
.card-hover:hover{
  transform:translateY(-10px);
  box-shadow:0 26px 50px -20px rgba(38,40,30,0.55)
}

.tl-fam{
  text-align:right;padding:26px 34px;cursor:pointer;
  background:rgba(243,237,225,0.025);
  border:1px solid rgba(243,237,225,0.08);transition:.3s
}
.tl-fam:hover{background:rgba(192,151,75,0.07);border-color:rgba(192,151,75,0.3)}

.tl-year{
  width:84px;height:84px;border-radius:50%;background:#26382b;
  border:1px solid var(--accent);display:flex;align-items:center;
  justify-content:center;font-family:'Cormorant Garamond',Georgia,serif;
  font-size:22px;color:#f3ede1;cursor:pointer;z-index:6;transition:.3s
}
.tl-year:hover{background:#6b2738;transform:scale(1.08)}

.tl-row{
  opacity:1;
  animation:tlRowIn .7s ease both;
}
@keyframes tlRowIn{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  .tl-row{animation:none}
}

.modal-close{
  position:absolute;top:16px;right:16px;width:34px;height:34px;
  border:1px solid rgba(243,237,225,0.3);background:transparent;
  display:flex;align-items:center;justify-content:center;
  color:rgba(243,237,225,0.7);cursor:pointer;
  font-family:'IBM Plex Mono',monospace;font-size:14px;transition:.2s
}
.modal-close:hover{background:rgba(243,237,225,0.1)}

.btn-reset:hover{background:#6b2738;color:#f3ede1}

.footer-social{display:flex;align-items:center;gap:12px;margin-top:22px}
.social-link{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;
  border:1px solid rgba(243,237,225,0.22);
  color:rgba(243,237,225,0.55);
  text-decoration:none;transition:color .25s,border-color .25s,background .25s
}
.social-link:hover{color:#f3ede1;border-color:rgba(243,237,225,0.45);background:rgba(243,237,225,0.06)}
.social-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.social-link svg{width:18px;height:18px;fill:currentColor;display:block}
.social-link img{width:20px;height:20px;display:block;object-fit:contain}
.social-link--brand{color:inherit}

.view{display:none}
.view.is-active{display:block}

[data-reveal]{
  opacity:0;transform:translateY(28px);
  transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)
}
[data-reveal].is-revealed{opacity:1;transform:none}

#timeline-modal[hidden]{display:none!important}
#timeline-modal{
  position:fixed;inset:0;z-index:80;
  background:rgba(15,12,9,0.78);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:32px
}

.cal-nav{
  width:42px;height:42px;display:flex;align-items:center;
  justify-content:center;border:1px solid #e4dcc9;border-radius:3px;
  font-family:'IBM Plex Mono',monospace;font-size:16px;background:#fff
}
.cal-nav.is-disabled{color:#d8cdb9;cursor:not-allowed;pointer-events:none}
.cal-nav:not(.is-disabled){color:#26382b;cursor:pointer}

.cal-day{
  display:flex;align-items:center;justify-content:center;height:44px;
  font-family:'IBM Plex Mono',monospace;font-size:13px;border-radius:3px
}
.cal-day.is-empty{visibility:hidden}
.cal-day.is-disabled{color:#d2c7b2}
.cal-day.is-bookable{cursor:pointer;color:#3a3530;background:#fff;border:1px solid #e4dcc9}
.cal-day.is-sunday{cursor:pointer;color:#3a3530;background:#f5efe3;border:1px solid #e4dcc9}
.cal-day.is-selected{cursor:pointer;background:#6b2738;color:#f3ede1;border:1px solid #6b2738}

.time-slot{
  padding:12px 20px;border:1px solid #d8cdb9;border-radius:3px;
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  cursor:pointer;background:#fff;color:#3a3530
}
.time-slot.is-selected{background:#324b39;color:#f3ede1;border-color:#324b39}

#reserve-form-panel[hidden],#reserve-done-panel[hidden]{display:none!important}
#request-form-panel[hidden],#request-done-panel[hidden]{display:none!important}
#sunday-notice[hidden],#time-panel[hidden]{display:none!important}

.form-hint[hidden]{display:none!important}
.submit-btn.is-ready{
  background:#6b2738;color:#f3ede1;border:none;padding:18px 40px;
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:2px;cursor:pointer
}
.submit-btn.is-disabled{
  background:#ddd2bf;color:#fff;border:none;padding:18px 40px;
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:2px;cursor:not-allowed
}

.form-error{
  max-width:520px;background:#f4ece0;border-left:2px solid #6b2738;
  padding:14px 18px;margin-bottom:14px;font-size:13px;line-height:1.6;color:#6b2738
}
.form-error[hidden]{display:none!important}

/* ===================== RESPONSIVE (phone) ===================== */
html[data-vw="mobile"] [data-r="heronav"]{padding:18px 20px!important;flex-wrap:wrap!important;gap:12px!important}
html[data-vw="mobile"] [data-r="nav"]{padding:14px 20px!important;flex-wrap:wrap!important;gap:10px!important}
html[data-vw="mobile"] [data-r="nav"] > div:last-child,html[data-vw="mobile"] [data-r="heronav"] > div:last-child{gap:14px!important}
html[data-vw="mobile"] [data-r="nav"] .nav-link,html[data-vw="mobile"] [data-r="nav"] span,html[data-vw="mobile"] [data-r="heronav"] .nav-link,html[data-vw="mobile"] [data-r="heronav"] span{font-size:10px!important;letter-spacing:1px!important}
html[data-vw="mobile"] [data-r="herobody"]{left:20px!important;right:20px!important;bottom:60px!important}
html[data-vw="mobile"] [data-r="heroh1"]{font-size:46px!important}
html[data-vw="mobile"] [data-r="h1big"]{font-size:52px!important}
html[data-vw="mobile"] [data-r="h2"]{font-size:31px!important;line-height:1.12!important}
html[data-vw="mobile"] [data-r="quote"]{font-size:25px!important}
html[data-vw="mobile"] [data-r="sec"]{padding-left:20px!important;padding-right:20px!important;padding-top:66px!important;padding-bottom:66px!important}
html[data-vw="mobile"] [data-r="g2"]{grid-template-columns:1fr!important;gap:34px!important}
html[data-vw="mobile"] [data-r="introimg"]{height:280px!important}
html[data-vw="mobile"] [data-r="g3"]{grid-template-columns:1fr!important;gap:18px!important}
html[data-vw="mobile"] [data-r="g3b"]{grid-template-columns:1fr!important}
html[data-vw="mobile"] [data-r="g2c"]{grid-template-columns:1fr!important;gap:28px!important;text-align:center!important;justify-items:center!important}
html[data-vw="mobile"] [data-r="famphoto"]{margin:0 auto!important;width:190px!important;height:190px!important}
html[data-vw="mobile"] [data-r="tllabels"]{display:none!important}
html[data-vw="mobile"] [data-r="tlspine"]{display:none!important}
html[data-vw="mobile"] [data-r="tlrow"]{display:flex!important;flex-direction:column!important;gap:14px!important;margin-bottom:30px!important}
html[data-vw="mobile"] [data-r="tlfam"]{text-align:left!important}
html[data-vw="mobile"] [data-r="genrow"]{flex-wrap:wrap!important;justify-content:flex-start!important;gap:22px 0!important}
html[data-vw="mobile"] [data-r="genrow"] > div{flex:0 0 33.33%!important}
html[data-vw="mobile"] [data-r="split"]{grid-template-columns:1fr!important}
html[data-vw="mobile"] [data-r="leftpanel"]{position:relative!important;top:0!important;height:auto!important;min-height:auto!important}
html[data-vw="mobile"] [data-r="leftcontent"]{position:static!important;padding:44px 22px!important}
html[data-vw="mobile"] [data-r="terralabel"]{display:none!important}
html[data-vw="mobile"] [data-r="resform"]{padding:48px 22px 70px!important}
html[data-vw="mobile"] [data-r="calcard"]{padding:18px!important}
html[data-vw="mobile"] [data-r="modalouter"]{padding:16px!important}
html[data-vw="mobile"] [data-r="modalpad"]{padding:30px 22px 32px!important}
