:root {
  --cream: #F0EEE9;
  --cream-2: #f0ebe0;
  --paper: #fffaf0;
  --ink: #181818;
  --muted: #686868;
  --dark: #0A0F0F;
  --dark-2: #181818;
  --primary: #897248;
  --primary-dark: #6f5b37;
  --line: rgba(24, 24, 24, .14);
  --white: #fff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--cream) url('../images/bg2_1440.png') center top / cover repeat-y;
  color: var(--ink);
  font-family: Inter, Arial, sans-serif;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.container { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }

.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 50;
  background: var(--dark);
  color: var(--white);
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.header-main {
  min-height: 84px;
  display: grid;
  grid-template-columns: 250px 1fr 330px;
  align-items: stretch;
  width: 100%;
}
.brand {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px 30px;
  background: #070b0b;
  border-right: 1px solid rgba(255,255,255,.14);
}
.brand img { width: 164px; height: auto; }
.nav {
  display: flex;
  align-items: stretch;
  justify-content: center;
}
.nav a {
  display: flex;
  align-items: center;
  padding: 0 20px;
  border-left: 1px solid rgba(255,255,255,.10);
  color: rgba(240, 235, 224, .86);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.nav a:last-child { border-right: 1px solid rgba(255,255,255,.10); }
.nav a:hover { background: rgba(137,114,72,.20); color: #fff; }
.header-contacts {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  padding: 0 28px;
}
.phone { font-size: 15px; font-weight: 800; white-space: nowrap; }
.header-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 20px;
  border-radius: 999px;
  background: var(--primary);
  color: #fff;
  font-weight: 800;
  font-size: 14px;
}
.header-button:hover { background: var(--primary-dark); }
.menu-toggle { display: none; }
.mobile-menu { display: none; }

.hero {
  min-height: 760px;
  padding: 188px 48px 96px;
  display: flex;
  align-items: center;
  background:
    linear-gradient(90deg, rgba(10,15,15,.78) 0%, rgba(10,15,15,.57) 47%, rgba(10,15,15,.16) 100%),
    url('../images/banner-1.jpg') center / cover no-repeat;
  color: var(--white);
}
.hero-inner { width: min(900px, 100%); }
.eyebrow,
.section-label {
  margin: 0 0 18px;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--primary);
}
.hero .eyebrow { color: var(--cream-2); }
h1, h2 {
  margin: 0;
  font-family: Lora, Georgia, serif;
  font-weight: 700;
  letter-spacing: -.045em;
  line-height: .98;
}
h1 { max-width: 860px; font-size: clamp(52px, 7vw, 104px); }
h2 { font-size: clamp(38px, 5vw, 70px); }
.hero-text {
  max-width: 700px;
  margin: 28px 0 0;
  font-size: clamp(18px, 2vw, 23px);
  color: rgba(240, 235, 224, .90);
}
.actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.btn {
  display: inline-flex;
  min-height: 56px;
  align-items: center;
  justify-content: center;
  padding: 0 28px;
  border-radius: 999px;
  font-weight: 800;
  transition: .2s ease;
}
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-dark); transform: translateY(-1px); }
.btn-light { background: rgba(240, 235, 224, .96); color: var(--dark); }
.btn-light:hover { background: #fff; transform: translateY(-1px); }

.intro { padding: 100px 0 86px; background: var(--cream) url('../images/bg2_1440.png') center top / cover repeat-y; }
.intro-grid {
  display: grid;
  grid-template-columns: 1.03fr .97fr;
  gap: 80px;
  align-items: start;
}
.intro-text {
  padding-top: 52px;
  font-size: 20px;
  color: var(--muted);
}
.intro-text p { margin: 0 0 22px; }

.photo-band {
  display: grid;
  grid-template-columns: 1fr 1.2fr 1fr;
  gap: 0;
  height: 440px;
  overflow: hidden;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--dark);
}
.photo-band img { width: 100%; height: 100%; object-fit: cover; }
.photo-band img:nth-child(2) { border-left: 10px solid var(--cream); border-right: 10px solid var(--cream); }

.menu { padding: 104px 0; background: var(--cream-2) url('../images/bg2_1440.png') center top / cover repeat-y; }
.section-heading {
  display: grid;
  grid-template-columns: 320px 1fr;
  align-items: end;
  gap: 72px;
  margin-bottom: 50px;
}
.menu-list { border-top: 1px solid var(--line); }
.menu-row {
  display: grid;
  grid-template-columns: 74px minmax(250px, 390px) 1fr 44px;
  gap: 28px;
  align-items: center;
  min-height: 128px;
  border-bottom: 1px solid var(--line);
  transition: .2s ease;
}
.menu-row:hover { background: rgba(137, 114, 72, .09); padding-left: 18px; padding-right: 18px; }
.menu-row__num { color: var(--primary); font-weight: 900; font-size: 14px; }
.menu-row__title {
  font-family: Lora, Georgia, serif;
  font-size: clamp(27px, 3vw, 42px);
  line-height: 1;
  letter-spacing: -.03em;
  font-weight: 700;
}
.menu-row__desc { color: var(--muted); font-size: 18px; max-width: 590px; }
.menu-row__arrow { font-size: 34px; color: var(--primary); }

.lunch { padding: 104px 0; background: var(--dark); color: #fff; }
.lunch .section-label { color: var(--cream-2); }
.lunch-layout {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 84px;
  align-items: start;
}
.lunch-copy p { margin: 0 0 30px; font-size: 20px; color: rgba(240,235,224,.82); }
.service-line {
  display: grid;
  grid-template-columns: 190px 1fr;
  gap: 24px;
  padding: 22px 0;
  border-top: 1px solid rgba(255,255,255,.18);
}
.service-line:last-child { border-bottom: 1px solid rgba(255,255,255,.18); }
.service-line b { color: #fff; }
.service-line span { color: rgba(240,235,224,.74); }

.family { padding: 110px 0; background: var(--cream) url('../images/bg2_1440.png') center top / cover repeat-y; }
.family-layout {
  display: grid;
  grid-template-columns: .92fr 1.08fr;
  gap: 84px;
  align-items: center;
}
.family-media img {
  width: 100%;
  max-height: 700px;
  object-fit: cover;
  border-radius: 34px;
}
.family-copy p:not(.section-label) {
  margin: 26px 0 0;
  max-width: 700px;
  color: var(--muted);
  font-size: 20px;
}
.family-points { margin-top: 38px; border-top: 1px solid var(--line); }
.family-points div {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 24px;
  padding: 24px 0;
  border-bottom: 1px solid var(--line);
}
.family-points b { color: var(--dark); font-size: 18px; }
.family-points span { color: var(--muted); font-size: 18px; }

.reviews { padding: 106px 0; background: var(--cream-2) url('../images/bg2_1440.png') center top / cover repeat-y; }
.reviews-layout {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  gap: 86px;
  align-items: start;
}
.reviews-lead { margin: 28px 0 0; color: var(--muted); font-size: 20px; max-width: 440px; }
.quote-list { border-top: 1px solid var(--line); }
blockquote {
  margin: 0;
  padding: 30px 0;
  border-bottom: 1px solid var(--line);
  font-family: Lora, Georgia, serif;
  font-size: clamp(23px, 2.4vw, 34px);
  line-height: 1.18;
  color: var(--dark-2);
}

.visit { padding: 96px 0; background: var(--dark); color: var(--white); }
.visit .section-label { color: var(--cream-2); }
.visit-layout {
  display: grid;
  grid-template-columns: 1fr .78fr .78fr;
  gap: 64px;
  align-items: start;
}
.visit h2 { color: var(--white); }
.visit-info { border-top: 1px solid rgba(255,255,255,.2); padding-top: 24px; }
.visit-info p { margin: 0 0 12px; color: rgba(240, 235, 224, .82); font-size: 17px; }
.visit-info strong { color: #fff; }
.visit-info .btn { margin-top: 16px; }
.map-section { background: var(--cream) url('../images/bg2_1440.png') center top / cover repeat-y; min-height: 520px; }

.footer { background: var(--dark); color: rgba(240, 235, 224, .72); padding: 52px 48px 30px; }
.footer-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  max-width: 1180px;
  margin: 0 auto;
  padding-bottom: 34px;
  border-bottom: 1px solid rgba(255,255,255,.16);
}
.footer img { width: 150px; }
.footer p { margin: 0; }
.footer-links { display: flex; gap: 22px; font-weight: 800; color: #fff; }
.meta { max-width: 1180px; margin: 22px auto 0 !important; font-size: 13px; color: rgba(240, 235, 224, .48); }

@media (max-width: 1180px) {
  .header-main { grid-template-columns: 210px 1fr 275px; }
  .nav a { padding: 0 12px; font-size: 12px; }
  .phone { display: none; }
}

@media (max-width: 860px) {
  .container { width: min(100% - 32px, 1180px); }
  .site-header { position: fixed; }
  .header-main { min-height: 72px; grid-template-columns: 1fr auto; }
  .brand { justify-content: flex-start; padding: 16px; border-right: 0; background: var(--dark); }
  .brand img { width: 132px; }
  .nav, .header-button, .phone { display: none; }
  .header-contacts { padding: 0 16px; }
  .menu-toggle {
    width: 46px;
    height: 46px;
    padding: 0;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;
    background: transparent;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
  }
  .menu-toggle span { width: 20px; height: 2px; background: #fff; transition: .2s ease; }
  body.menu-open .menu-toggle span:first-child { transform: translateY(4.5px) rotate(45deg); }
  body.menu-open .menu-toggle span:last-child { transform: translateY(-4.5px) rotate(-45deg); }
  .mobile-menu {
    display: none;
    position: fixed;
    top: 72px;
    left: 0;
    right: 0;
    background: var(--dark);
    padding: 12px 16px 22px;
    border-top: 1px solid rgba(255,255,255,.14);
  }
  body.menu-open .mobile-menu { display: grid; }
  .mobile-menu a {
    padding: 18px 0;
    color: #fff;
    font-weight: 800;
    border-bottom: 1px solid rgba(255,255,255,.14);
  }
  .hero { padding: 140px 20px 72px; min-height: 680px; background-position: 58% center; }
  .intro { padding: 72px 0 58px; }
  .intro-grid, .section-heading, .lunch-layout, .family-layout, .reviews-layout, .visit-layout { grid-template-columns: 1fr; gap: 28px; }
  .intro-text { padding-top: 0; font-size: 18px; }
  .photo-band { height: auto; grid-template-columns: 1fr; }
  .photo-band img { height: 300px; }
  .photo-band img:nth-child(2) { border: 0; border-top: 8px solid var(--cream); border-bottom: 8px solid var(--cream); }
  .menu, .lunch, .family, .reviews, .visit { padding: 70px 0; }
  .menu-row { grid-template-columns: 48px 1fr 30px; gap: 14px; min-height: auto; padding: 26px 0; }
  .menu-row:hover { padding-left: 0; padding-right: 0; }
  .menu-row__desc { grid-column: 2 / 4; font-size: 16px; }
  .service-line, .family-points div { grid-template-columns: 1fr; gap: 6px; }
  .family-media img { border-radius: 24px; max-height: 520px; }
  .footer { padding: 42px 16px 24px; }
  .footer-inner { display: grid; justify-items: start; }
}

@media (max-width: 520px) {
  h1 { font-size: 45px; }
  h2 { font-size: 36px; }
  .hero-text { font-size: 17px; }
  .actions, .visit-info .btn { width: 100%; }
  .btn { width: 100%; }
  .menu-row__title { font-size: 28px; }
  blockquote { font-size: 22px; }
}

/* Restaurant atmosphere upgrade: deeper hero, mountains, subtle motion */
.site-header {
  box-shadow: 0 18px 50px rgba(0,0,0,.20);
  transition: background .25s ease, min-height .25s ease, box-shadow .25s ease;
}
.site-header.is-scrolled { box-shadow: 0 18px 48px rgba(0,0,0,.36); }
.hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background:
    linear-gradient(90deg, rgba(4,7,7,.96) 0%, rgba(6,9,9,.90) 30%, rgba(10,15,15,.66) 54%, rgba(10,15,15,.18) 100%),
    radial-gradient(circle at 20% 52%, rgba(137,114,72,.24), transparent 38%),
    url('../images/banner-1.jpg') center / cover no-repeat;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(90deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.42) 34%, transparent 68%);
  pointer-events: none;
}
.hero::after {
  content: "";
  position: absolute;
  left: -12%;
  bottom: -1px;
  width: 76%;
  height: 40%;
  z-index: -1;
  opacity: .42;
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 1000 360' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 320 L98 230 L160 274 L248 175 L312 236 L392 116 L478 242 L570 86 L660 226 L732 150 L812 250 L900 184 L1000 306 L1000 360 L0 360 Z' fill='%23F0EEE9' fill-opacity='.12'/%3E%3Cpath d='M42 306 L164 197 L232 248 L320 145 L378 205 L455 93 L527 206 L606 52 L688 192 L746 128 L848 254 L938 170' fill='none' stroke='%23F0EEE9' stroke-width='2' stroke-opacity='.38'/%3E%3Cpath d='M133 238 L168 198 L194 222 M290 180 L320 146 L348 176 M565 134 L607 54 L650 129 M720 156 L746 130 L775 165' fill='none' stroke='%23897248' stroke-width='2' stroke-opacity='.55'/%3E%3C/svg%3E");
}
.hero-mountains {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -24px;
  height: 230px;
  z-index: -1;
  opacity: .36;
  background-repeat: repeat-x;
  background-size: 900px 230px;
  background-position: left bottom;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 900 230' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 210 L70 142 L130 178 L210 96 L270 160 L355 56 L452 176 L548 42 L642 158 L725 82 L810 170 L900 108 L900 230 L0 230 Z' fill='%230A0F0F' fill-opacity='.68'/%3E%3Cpath d='M18 204 L74 145 L131 179 L214 97 L270 158 L354 58 L452 176 L548 44 L642 158 L726 84 L811 172 L887 121' fill='none' stroke='%23F0EEE9' stroke-width='1.4' stroke-opacity='.20'/%3E%3C/svg%3E");
  pointer-events: none;
  will-change: transform;
}
.hero-inner { position: relative; z-index: 1; }
.hero h1 { text-shadow: 0 18px 48px rgba(0,0,0,.42); }
.hero-text { text-shadow: 0 12px 28px rgba(0,0,0,.48); }
.hero-scroll {
  position: absolute;
  left: 48px;
  bottom: 34px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: rgba(240,235,224,.72);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.hero-scroll i {
  width: 56px;
  height: 1px;
  background: currentColor;
  position: relative;
  overflow: hidden;
}
.hero-scroll i::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--primary);
  transform: translateX(-100%);
  animation: scrollLine 2.2s ease-in-out infinite;
}
@keyframes scrollLine { 0% { transform: translateX(-100%); } 45%, 100% { transform: translateX(110%); } }

.intro { position: relative; overflow: hidden; }
.photo-band img { transition: transform .8s ease, filter .8s ease; }
.photo-band:hover img { filter: saturate(1.06) contrast(1.03); }
.photo-band img:hover { transform: scale(1.035); }
.menu { position: relative; overflow: hidden; }
.menu-row { position: relative; }
.menu-row::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0;
  background: rgba(137,114,72,.08);
  transition: width .25s ease;
  pointer-events: none;
}
.menu-row:hover::before { width: 100%; }
.menu-row > * { position: relative; z-index: 1; }
.service-line {
  grid-template-columns: 52px 190px 1fr;
  align-items: center;
}
.service-line i {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(240,235,224,.26);
  border-radius: 999px;
  font-style: normal;
  filter: grayscale(.35);
}
.family { position: relative; overflow: hidden; }
.family-points div {
  grid-template-columns: 34px 170px 1fr;
  align-items: start;
}
.family-points i {
  color: var(--primary);
  font-style: normal;
  font-size: 18px;
  line-height: 1.5;
}
.reviews { position: relative; overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  .hero-mountains, .hero-inner { transform: none !important; }
  .hero-scroll i::after { animation: none; }
}

@media (max-width: 860px) {
  .hero {
    background:
      linear-gradient(90deg, rgba(4,7,7,.96) 0%, rgba(6,9,9,.88) 50%, rgba(10,15,15,.52) 100%),
      url('../images/banner-1.jpg') 58% center / cover no-repeat;
  }
  .hero::after { width: 110%; height: 32%; opacity: .32; }
    .hero-scroll { display: none; }
  .service-line, .family-points div { grid-template-columns: 42px 1fr; gap: 10px 14px; }
  .service-line span, .family-points span { grid-column: 2; }
  .family-points i { grid-row: span 2; }
}

/* Targeted fixes from review */
.header-main {
  grid-template-columns: 250px minmax(420px, 1fr) minmax(360px, 420px);
}
.header-contacts {
  min-width: 0;
}
.header-button {
  min-width: 158px;
  white-space: nowrap;
  flex: 0 0 auto;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
}
.header-button:focus-visible,
.btn:focus-visible,
.nav a:focus-visible {
  outline: 2px solid var(--cream-2);
  outline-offset: 3px;
}

.hero {
  background:
    linear-gradient(90deg, rgba(4,7,7,.78) 0%, rgba(6,9,9,.68) 32%, rgba(10,15,15,.38) 60%, rgba(10,15,15,.08) 100%),
    radial-gradient(circle at 18% 54%, rgba(137,114,72,.16), transparent 42%),
    url('../images/banner-1.jpg') center / cover no-repeat;
}
.hero::before {
  background: linear-gradient(90deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,.24) 34%, transparent 68%);
}
.hero-mountains,
.hero::after {
  opacity: .26;
}
.hero-text {
  color: rgba(240, 235, 224, .94);
}

.service-line {
  grid-template-columns: 190px 1fr;
  padding: 26px 0;
}
.service-line i {
  display: none !important;
}
.service-line b {
  font-family: Lora, Georgia, serif;
  font-size: 24px;
  line-height: 1.05;
  color: var(--cream-2);
}
.service-line span {
  font-size: 18px;
}

.made-by {
  max-width: 1180px;
  margin: 20px auto 0;
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(240, 235, 224, .48);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.made-by a {
  display: inline-flex;
  align-items: center;
  opacity: .72;
  transition: opacity .2s ease;
}
.made-by a:hover { opacity: 1; }
.made-by img {
  width: 96px;
  height: auto;
}

@media (max-width: 1180px) {
  .header-main { grid-template-columns: 210px minmax(390px, 1fr) minmax(240px, 310px); }
  .header-button { min-width: 146px; padding: 0 16px; }
}

@media (max-width: 860px) {
  .header-main { grid-template-columns: 1fr auto; }
  .hero {
    background:
      linear-gradient(90deg, rgba(4,7,7,.82) 0%, rgba(6,9,9,.70) 52%, rgba(10,15,15,.34) 100%),
      url('../images/banner-1.jpg') 58% center / cover no-repeat;
  }
  .service-line { grid-template-columns: 1fr; gap: 6px; }
  .service-line span { grid-column: auto; }
}


/* Footer legal layout update */
.footer-bottom {
  max-width: 1180px;
  margin: 22px auto 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}
.footer-legal {
  min-width: 0;
}
.copyright {
  margin: 0 !important;
  font-size: 14px;
  color: rgba(240, 235, 224, .68);
}
.footer .meta {
  max-width: none;
  margin: 8px 0 0 !important;
  font-size: 12px;
  line-height: 1.45;
  color: rgba(240, 235, 224, .42);
}
.footer-bottom .made-by {
  margin: 0;
  max-width: none;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  opacity: .72;
  transition: opacity .2s ease;
}
.footer-bottom .made-by:hover { opacity: 1; }
.footer-bottom .made-by img {
  width: 112px;
  height: auto;
}
@media (max-width: 860px) {
  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
  .footer-bottom .made-by img { width: 104px; }
}


/* Motion upgrade: text reveal, hero photo rotation and richer restaurant interactions */
.hero {
  background:
    linear-gradient(90deg, rgba(4,7,7,.78) 0%, rgba(6,9,9,.68) 32%, rgba(10,15,15,.38) 60%, rgba(10,15,15,.08) 100%),
    radial-gradient(circle at 18% 54%, rgba(137,114,72,.16), transparent 42%) !important;
}
.hero-bg-slider {
  position: absolute;
  inset: 0;
  z-index: -5;
  overflow: hidden;
  background: var(--dark);
}
.hero-bg-slide {
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  opacity: 0;
  transform: scale(1.02);
  transition: opacity 1400ms ease, transform 7600ms ease;
  will-change: opacity, transform;
}
.hero-bg-slide.is-active {
  opacity: 1;
  transform: scale(1.075);
}
.hero-bg-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(4,7,7,.70) 0%, rgba(6,9,9,.54) 34%, rgba(10,15,15,.12) 100%),
    radial-gradient(circle at 18% 52%, rgba(137,114,72,.18), transparent 36%);
}
.hero-inner {
  animation: heroContentIn .95s cubic-bezier(.18,.86,.31,1) .12s both;
}
@keyframes heroContentIn {
  from { opacity: 0; transform: translate3d(0, 26px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.hero .eyebrow {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 14px;
}
.hero .eyebrow::before {
  content: "";
  width: 46px;
  height: 1px;
  background: var(--primary);
  transform-origin: left center;
  animation: lineGrow .9s ease .5s both;
}
@keyframes lineGrow { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.reveal {
  opacity: 0;
  transform: translate3d(0, 34px, 0);
  transition:
    opacity .85s cubic-bezier(.18,.86,.31,1),
    transform .85s cubic-bezier(.18,.86,.31,1),
    filter .85s ease;
  transition-delay: var(--reveal-delay, 0ms);
  filter: blur(4px);
  will-change: opacity, transform, filter;
}
.reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  filter: blur(0);
}
.reveal-left { transform: translate3d(-34px, 0, 0); }
.reveal-right { transform: translate3d(34px, 0, 0); }
.reveal-scale { transform: scale(.965); }
.reveal-left.is-visible,
.reveal-right.is-visible { transform: translate3d(0, 0, 0); }
.reveal-scale.is-visible { transform: scale(1); }

.site-header {
  animation: headerDrop .7s cubic-bezier(.18,.86,.31,1) both;
}
@keyframes headerDrop {
  from { transform: translateY(-100%); }
  to { transform: translateY(0); }
}
.brand img,
.footer-inner > img {
  transition: transform .35s ease, filter .35s ease;
}
.brand:hover img,
.footer-inner > img:hover {
  transform: translateY(-1px) scale(1.025);
  filter: drop-shadow(0 8px 18px rgba(137,114,72,.28));
}
.nav a,
.header-button,
.btn,
.footer-links a,
.made-by {
  transition: transform .25s ease, background .25s ease, color .25s ease, opacity .25s ease, box-shadow .25s ease;
}
.header-button:hover,
.btn-primary:hover {
  box-shadow: 0 16px 34px rgba(137,114,72,.26);
}
.btn-light:hover {
  box-shadow: 0 16px 34px rgba(0,0,0,.18);
}

.photo-band img {
  transform-origin: center;
}
.photo-band img.is-visible:nth-child(1) { transition-delay: .05s; }
.photo-band img.is-visible:nth-child(2) { transition-delay: .16s; }
.photo-band img.is-visible:nth-child(3) { transition-delay: .27s; }

.menu-row {
  overflow: hidden;
}
.menu-row__num,
.menu-row__title,
.menu-row__desc,
.menu-row__arrow {
  transition: transform .3s ease, color .3s ease, opacity .3s ease;
}
.menu-row:hover .menu-row__num { transform: translateX(6px); }
.menu-row:hover .menu-row__title { color: var(--primary-dark); }
.menu-row:hover .menu-row__arrow { transform: translateX(8px); color: var(--primary-dark); }

.lunch {
  position: relative;
  overflow: hidden;
}
.lunch::after {
  content: "";
  position: absolute;
  right: -120px;
  bottom: -130px;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  border: 1px solid rgba(137,114,72,.18);
  box-shadow: inset 0 0 0 34px rgba(137,114,72,.035);
  pointer-events: none;
  animation: softFloat 9s ease-in-out infinite;
}
@keyframes softFloat {
  0%,100% { transform: translate3d(0,0,0) scale(1); }
  50% { transform: translate3d(-18px,-14px,0) scale(1.03); }
}
.service-line:hover b { color: #fff; }
.service-line:hover span { color: rgba(240,235,224,.92); }
.family-media {
  overflow: hidden;
  border-radius: 34px;
}
.family-media img {
  transition: transform 1s ease, filter 1s ease;
}
.family-media:hover img {
  transform: scale(1.035);
  filter: saturate(1.05) contrast(1.02);
}
.family-points div:hover i {
  transform: rotate(18deg) scale(1.15);
}
.family-points i { transition: transform .25s ease; }
blockquote {
  position: relative;
  transition: transform .28s ease, color .28s ease;
}
blockquote::before {
  content: "“";
  position: absolute;
  left: -34px;
  top: 20px;
  color: rgba(137,114,72,.34);
  font-family: Lora, Georgia, serif;
  font-size: 56px;
  line-height: 1;
  opacity: 0;
  transform: translateX(-10px);
  transition: .28s ease;
}
blockquote:hover { transform: translateX(8px); color: #000; }
blockquote:hover::before { opacity: 1; transform: translateX(0); }
.visit-info:hover {
  border-top-color: rgba(137,114,72,.62);
}
.map-section {
  overflow: hidden;
}
.footer-links a:hover,
.made-by:hover {
  color: #fff;
  opacity: 1;
  transform: translateY(-1px);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
  .reveal { opacity: 1; transform: none !important; filter: none; }
  .hero-bg-slide { transform: none !important; }
}

@media (max-width: 860px) {
  .hero {
    background:
      linear-gradient(90deg, rgba(4,7,7,.82) 0%, rgba(6,9,9,.70) 52%, rgba(10,15,15,.34) 100%) !important;
  }
  .hero-bg-slide { background-position: 58% center; }
  blockquote::before { display: none; }
}


/* Footer visibility fix: keep the legal bottom always rendered and above the map iframe */
.map-section {
  position: relative;
  z-index: 1;
}
.footer {
  position: relative;
  z-index: 2;
  overflow: visible;
  padding-bottom: 46px;
}
.footer-inner,
.footer-bottom {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  visibility: visible !important;
}
.footer-bottom {
  position: relative;
  z-index: 3;
}
@media (max-width: 860px) {
  .footer { padding-bottom: 36px; }
  .footer-bottom { margin-top: 20px; }
}
