/* =========================================================
   Moon — story + visit blocks and the site footer
   Same type system as the hero; paper and espresso palettes
   so the page reads dark → light → dark on the way down.
   ========================================================= */

.story-block,
.reviews-block,
.visit-block,
.site-foot{
  --paper:#f7f1e6;
  --paper-2:#efe6d6;
  --ink:#121212;
  --ink-soft:#5c5c5c;
  --rule:rgba(18,18,18,.15);
  --gold:#6e6e6e;
  --dark:#131313;
  --dark-2:#050505;
  --cream:#f2ece0;
  --cream-soft:#a9a9a9;
  position:relative;z-index:20;
  font-family:'Lora',Georgia,serif;
}

.blk-inner{position:relative;max-width:1100px;margin:0 auto}
.blk-eyebrow{
  margin:0 0 1em;font-family:'Inter',sans-serif;
  font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;
}

/* ---------------------------------------------------------- story (paper) */
.story-block{
  background:linear-gradient(178deg,var(--paper) 0%,var(--paper-2) 100%);
  color:var(--ink);
  padding:clamp(58px,8vw,124px) clamp(20px,5vw,80px);
  overflow-x:clip;
}
.story-block::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.3;
  background-image:url("assets/grain.svg");mix-blend-mode:multiply;
}
.story-head{text-align:center;max-width:60ch;margin:0 auto clamp(38px,5vw,72px)}
.story-head .blk-eyebrow{color:var(--gold)}
.story-head h2{
  margin:0;font-family:'Bodoni Moda',Didot,Georgia,serif;font-weight:700;
  font-size:clamp(32px,5.4vw,74px);line-height:.96;text-transform:uppercase;letter-spacing:-.01em;
}
.story-head p{
  margin:1.15em auto 0;max-width:52ch;
  font-size:clamp(14px,1.15vw,17px);line-height:1.72;color:var(--ink-soft);
}

.pillars{
  display:grid;gap:1px;background:var(--rule);
  border:1px solid var(--rule);border-radius:18px;overflow:hidden;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.pillar{
  background:rgba(255,255,255,.5);
  padding:clamp(22px,2.4vw,38px);
}
.pillar h3{
  margin:0 0 .9em;font-family:'Inter',sans-serif;font-weight:600;
  font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);
}
.pillar p{margin:0;font-size:clamp(13px,1.02vw,15px);line-height:1.7;color:var(--ink-soft)}
.pillar p + p{margin-top:.8em}

/* ---------------------------------------------------------- visit (dark) */
.visit-block{
  background:linear-gradient(176deg,var(--dark) 0%,var(--dark-2) 100%);
  color:var(--cream);
  padding:clamp(58px,8vw,124px) clamp(20px,5vw,80px);
  overflow-x:clip;
}
.visit-block::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;
  background-image:url("assets/grain.svg");mix-blend-mode:overlay;
}
.visit-block .blk-eyebrow{color:var(--cream-soft)}
.visit-block h2{
  margin:0 0 clamp(34px,4.4vw,64px);
  font-family:'Bodoni Moda',Didot,Georgia,serif;font-weight:700;
  font-size:clamp(32px,5.4vw,74px);line-height:.96;text-transform:uppercase;letter-spacing:-.01em;
}
.visit-grid{
  display:grid;gap:clamp(26px,3.4vw,64px);
  grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
  align-items:start;
}

/* hours */
.hours-head{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  margin-bottom:1.2em;
}
.hours-title{
  margin:0;font-family:'Inter',sans-serif;font-weight:600;
  font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--cream-soft);
}
.hours-status{
  display:inline-flex;align-items:center;gap:.6em;
  padding:.5em 1em;border-radius:100px;
  font-family:'Inter',sans-serif;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  background:rgba(242,236,224,.09);border:1px solid rgba(242,236,224,.16);
}
.hours-status i{
  width:7px;height:7px;border-radius:50%;background:var(--cream-soft);
  box-shadow:0 0 0 0 rgba(255,255,255,.4);
}
.hours-status.is-open i{background:#e8e8e8;animation:pulseDot 2.4s ease-out infinite}
.hours-status.is-shut i{background:#5c5c5c}
@keyframes pulseDot{
  0%{box-shadow:0 0 0 0 rgba(232,232,232,.5)}
  100%{box-shadow:0 0 0 9px rgba(232,232,232,0)}
}

.hours{list-style:none;margin:0;padding:0}
.hours li{
  display:flex;align-items:baseline;gap:12px;
  padding:.72em .9em;border-radius:10px;
  border-bottom:1px solid rgba(242,236,224,.09);
}
.hours li:last-child{border-bottom:0}
.hours .day{font-size:clamp(13px,1.05vw,15.5px)}
.hours .dots{
  flex:1;min-width:14px;height:1px;transform:translateY(-.25em);
  background-image:radial-gradient(circle,rgba(242,236,224,.28) 1px,transparent 1px);
  background-size:5px 1px;background-repeat:repeat-x;
}
.hours .time{
  font-family:'Inter',sans-serif;font-size:12.5px;letter-spacing:.04em;
  color:var(--cream-soft);font-variant-numeric:tabular-nums;white-space:nowrap;
}
.hours li.is-today{
  background:rgba(242,236,224,.08);
  border-bottom-color:transparent;
}
.hours li.is-today .day{font-weight:600}
.hours li.is-today .time{color:var(--cream)}
.hours li.is-today .day::after{
  content:"Today";margin-left:.85em;
  font-family:'Inter',sans-serif;font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--cream);opacity:.5;vertical-align:.15em;
}

/* find us */
.find{
  padding:clamp(22px,2.6vw,40px);
  border-radius:20px;
  background:rgba(242,236,224,.055);
  border:1px solid rgba(242,236,224,.13);
}
.find dl{margin:0;display:grid;gap:clamp(18px,2vw,28px)}
.find dt{
  font-family:'Inter',sans-serif;font-weight:600;
  font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--cream-soft);opacity:.75;margin-bottom:.6em;
}
.find dd{margin:0}
.find address{
  font-style:normal;font-size:clamp(16px,1.5vw,22px);line-height:1.5;
}
.find dl a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(242,236,224,.28);
  transition:border-color .25s,color .25s}
.find dl a:hover{border-color:var(--cream)}
.find .tel{
  font-family:'Bodoni Moda',Didot,serif;font-weight:700;
  font-size:clamp(19px,1.9vw,28px);letter-spacing:.01em;font-variant-numeric:tabular-nums;
}
.find-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:clamp(20px,2.4vw,32px)}
.btn-solid,.btn-ghost{
  display:inline-flex;align-items:center;gap:.7em;
  padding:1em 1.7em;border-radius:100px;cursor:pointer;text-decoration:none;
  font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  transition:transform .3s cubic-bezier(.16,1,.3,1),background .3s,border-color .3s;
  border:1px solid transparent;
}
.btn-solid{background:var(--cream);color:#101010}
.btn-solid:hover{transform:translateY(-2px);background:#fff}
.btn-ghost{background:transparent;color:var(--cream);border-color:rgba(242,236,224,.28)}
.btn-ghost:hover{transform:translateY(-2px);border-color:var(--cream)}
.btn-solid svg,.btn-ghost svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* ---------------------------------------------------------------- footer */
.site-foot{
  background:var(--dark-2);color:var(--cream-soft);
  padding:clamp(26px,3vw,44px) clamp(20px,5vw,80px);
  border-top:1px solid rgba(242,236,224,.1);
}
.site-foot-inner{
  max-width:1100px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:16px 28px;flex-wrap:wrap;
  font-family:'Inter',sans-serif;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
}
.site-foot a{color:inherit;text-decoration:none;opacity:.75;transition:opacity .25s}
.site-foot a:hover{opacity:1;color:var(--cream)}
.site-foot nav{display:flex;gap:20px;flex-wrap:wrap}

@media (max-width:900px){
  .pillars{grid-template-columns:1fr}
  .visit-grid{grid-template-columns:1fr}
  .site-foot-inner{justify-content:center;text-align:center}
}

/* ---------------------------------------------------------------- foot map */
.foot-map{
  position:relative;
  max-width:1100px;margin:0 auto clamp(24px,3vw,42px);
  border-radius:20px;overflow:hidden;
  border:1px solid rgba(242,236,224,.16);
  background:#0d0d0d;
  aspect-ratio:21/7;
}
.foot-map iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;display:block;
}
.foot-map-pin{
  position:absolute;right:clamp(14px,2vw,26px);bottom:clamp(46px,5vw,58px);
  display:flex;flex-direction:column;gap:.25em;
  padding:clamp(13px,1.4vw,19px) clamp(15px,1.7vw,23px);
  border-radius:14px;text-decoration:none;
  background:rgba(10,10,10,.82);
  border:1px solid rgba(242,236,224,.18);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  color:var(--cream);
  transition:transform .3s cubic-bezier(.16,1,.3,1),background .3s,border-color .3s;
}
.foot-map-pin:hover{transform:translateY(-2px);background:rgba(10,10,10,.94);border-color:rgba(242,236,224,.4)}
.foot-map-name{
  font-family:'Bodoni Moda',Didot,Georgia,serif;font-weight:700;
  font-size:clamp(16px,1.5vw,21px);letter-spacing:.03em;
}
.foot-map-addr{
  font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.05em;
  color:var(--cream-soft);
}
.foot-map-go{
  margin-top:.5em;font-family:'Inter',sans-serif;
  font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;opacity:.7;
}
.foot-map-pin:hover .foot-map-go{opacity:1}

@media (max-width:900px){
  .foot-map{aspect-ratio:4/3}
}

/* ---------------------------------------------------------- reviews (paper) */
.reviews-block{
  background:var(--paper-2);
  color:var(--ink);
  padding:clamp(52px,7vw,110px) clamp(20px,5vw,80px);
  border-top:1px solid var(--rule);
  overflow-x:clip;
}
.reviews-block::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.3;
  background-image:url("assets/grain.svg");mix-blend-mode:multiply;
}
.reviews-head{text-align:center;margin-bottom:clamp(28px,3.6vw,54px)}
.reviews-head .blk-eyebrow{color:var(--gold);margin-bottom:.9em}
.reviews-head h2{
  margin:0;font-family:'Bodoni Moda',Didot,Georgia,serif;font-weight:700;
  font-size:clamp(30px,5vw,68px);line-height:.96;text-transform:uppercase;letter-spacing:-.01em;
}

.rv-summary{
  display:flex;align-items:center;justify-content:center;gap:clamp(14px,1.6vw,22px);
  margin:0 auto clamp(28px,3.4vw,50px);
}
.rv-score{
  font-family:'Bodoni Moda',Didot,serif;font-weight:700;
  font-size:clamp(34px,4vw,58px);line-height:1;
  padding:.2em .38em .26em;border-radius:14px;
  background:var(--ink);color:var(--paper);font-variant-numeric:tabular-nums;
}
.rv-meta p{
  margin:.5em 0 0;font-family:'Inter',sans-serif;
  font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);
}
.rv-stars{display:inline-flex;gap:3px;color:var(--ink)}
.rv-stars svg{width:16px;height:16px}
.rv-star-bg{fill:rgba(18,18,18,.15)}

.rv-grid{
  columns:3;
  column-gap:clamp(12px,1.4vw,20px);
}
.rv-card{
  display:block;break-inside:avoid;
  margin:0 0 clamp(12px,1.4vw,20px);
  padding:clamp(20px,2.2vw,32px);
  border-radius:18px;
  background:rgba(255,255,255,.58);
  border:1px solid var(--rule);
}
.rv-card .rv-stars{margin-bottom:.85em}
.rv-card blockquote{
  margin:0;font-size:clamp(13.5px,1.05vw,16px);line-height:1.68;color:var(--ink);
}
.rv-card blockquote::before{content:"\201C"}
.rv-card blockquote::after{content:"\201D"}
.rv-by{
  margin-top:1.1em;display:flex;align-items:baseline;gap:.7em;flex-wrap:wrap;
  padding-top:.5em;border-top:1px solid var(--rule);
}
.rv-name{font-family:'Inter',sans-serif;font-size:11.5px;font-weight:600;letter-spacing:.06em}
.rv-date{font-family:'Inter',sans-serif;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);opacity:.7}

.rv-cta{text-align:center;margin-top:clamp(24px,3vw,44px)}
.reviews-block .btn-ghost{color:var(--ink);border-color:rgba(18,18,18,.28)}
.reviews-block .btn-ghost:hover{border-color:var(--ink)}
.reviews-block .btn-ghost svg{fill:currentColor;stroke:none;width:13px;height:13px}

@media (max-width:1000px){ .rv-grid{columns:2} }
@media (max-width:640px){  .rv-grid{columns:1} }
