:root {
  --shell-ink: #173b38;
  --shell-cream: #faf6ee;
  --shell-gold: #edc38a;
  --shell-blue: #b8d2c9;
  --shell-orange: #d98d54;
}

html { scroll-padding-bottom: 90px; }
body { -webkit-font-smoothing: antialiased; }

.info-page {
  padding: clamp(52px, 8vw, 100px) 24px;
  color: var(--shell-ink);
  background: var(--shell-cream);
  font: 17px/1.75 Arial, Helvetica, sans-serif;
}
.info-page__inner { width: min(820px, 100%); margin: auto; }
.info-page__eyebrow { font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.info-page h1 { margin: 18px 0 24px; font: 400 clamp(38px, 6vw, 68px)/1.06 Georgia, serif; letter-spacing: -.035em; }
.info-page h2 { margin: 48px 0 18px; font: 400 clamp(28px, 4vw, 36px)/1.2 Georgia, serif; }
.info-page a { color: inherit; text-underline-offset: 4px; }
.info-page__intro { font-size: 20px; }
.info-page__links { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 28px 0; }
.info-page__links a { min-height: 44px; align-content: center; font-weight: 700; }
.info-page details { border-top: 1px solid #173b3833; padding: 18px 0; }
.info-page summary { min-height: 44px; align-content: center; cursor: pointer; font-weight: 700; }
.info-page details p { margin: 12px 0; }
.info-page .ac-day { display: flex; justify-content: space-between; gap: 20px; padding: 6px 0; }
.info-page .ac-day dd { margin: 0; }
.info-page__note { margin-top: 40px; border-top: 1px solid #173b3833; padding-top: 24px; font-size: 14px; }

.privacy-notice {
  position: fixed;
  z-index: 1200;
  right: 20px;
  bottom: max(20px, env(safe-area-inset-bottom));
  box-sizing: border-box;
  width: min(480px, calc(100% - 32px));
  max-height: calc(100dvh - 110px);
  overflow-y: auto;
  padding: 24px;
  border: 1px solid #173b3855;
  border-radius: 16px;
  box-shadow: 0 8px 40px #0004;
  color: #173b38;
  background: #faf6ee;
  font: 15px/1.5 Arial, Helvetica, sans-serif;
}
.privacy-notice h2 { margin: 0 0 14px; font: 400 27px/1.2 Georgia, serif; }
.privacy-notice p { margin: 12px 0; }
.privacy-notice a { color: inherit; }
.privacy-notice__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.privacy-notice__actions button {
  flex: 1 1 160px;
  min-height: 48px;
  padding: 10px 16px;
  border: 1px solid #173b38;
  border-radius: 8px;
  color: #173b38;
  background: #edc38a;
  font: 700 15px/1.4 Arial, Helvetica, sans-serif;
  cursor: pointer;
}
@media (max-width: 1020px) {
  .privacy-notice { right: 16px; bottom: max(88px, calc(72px + env(safe-area-inset-bottom))); max-height: calc(100dvh - 180px); }
}
@media print { .privacy-notice { display: none !important; } }
a, button, input { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #b45e28; outline-offset: 5px; }
[hidden] { display: none !important; }

.skip-link {
  position: fixed;
  z-index: 1100;
  top: 12px;
  left: 16px;
  transform: translateY(-160%);
  padding: 14px 20px;
  border-radius: 8px;
  color: var(--shell-ink);
  background: var(--shell-cream);
  font: 700 15px/1.4 Arial, sans-serif;
}
.skip-link:focus { transform: none; }

/* Section fragments retain their standalone palette; the shared shell unifies published pages. */
#site-content > section[id] {
  --ink: var(--shell-ink);
  --cream: var(--shell-cream);
  --gold: var(--shell-gold);
  --blue: var(--shell-blue);
  --orange: var(--shell-orange);
  --ui-ink: var(--shell-ink);
  --card-blue: var(--shell-cream);
  --ac-ink: var(--shell-ink);
  --ac-cream: var(--shell-cream);
  --ac-gold: var(--shell-gold);
  --ac-orange: var(--shell-orange);
}

#site-content > section[id] :is(.ac-button, .ac-link, .ac-card-link, .ac-menu-link, .ac-story-link, .ac-scroll) {
  min-height: 44px;
  align-content: center;
}
#site-content > section[id] :is(.ac-filter button, .ac-hours-toggle) { min-height: 44px; }
#site-content > section[id] :is(.ac-number, .ac-event-date) { color: #94602d; }
#site-content > section[id] :is(.ac-hours-list li[data-today="true"] span:first-child, .ac-day[data-today="true"] dt)::after {
  color: #94602d;
}

#site-content :is(#ac-menus-hero, #ac-contact-hero)::after {
  background: radial-gradient(ellipse at 85% 15%, rgba(217,141,84,.24), transparent 48%),
    linear-gradient(110deg, #173b38 20%, #234a42);
}
#site-content :is(#ac-order-hero, #ac-location-hero)::before {
  background-image: linear-gradient(90deg, rgba(9,30,28,.95), rgba(9,30,28,.72) 50%, rgba(9,30,28,.3)),
    url("food-favorites.webp");
}
#site-content #ac-location-hero::before {
  background-image: linear-gradient(90deg, rgba(9,30,28,.95), rgba(9,30,28,.72) 50%, rgba(9,30,28,.3)),
    url("cafe-welcome.webp");
}
#site-content :is(#ac-menus-hero, #ac-contact-hero, #ac-order-hero, #ac-location-hero, #ac-about-hero) {
  min-height: 540px;
  padding-block: clamp(64px, 8vw, 100px);
}
#site-content :is(#ac-menus-hero, #ac-contact-hero, #ac-order-hero, #ac-location-hero, #ac-about-hero) h1 {
  font-size: clamp(42px, 6.4vw, 86px);
  line-height: 1.02;
}
#site-content :is(#ac-menu-library article, #ac-order-options article, #ac-contact-paths article, .ac-event-card) {
  border-radius: 16px;
}
#site-content #ac-menu-library article { background: #fffdf8; }
#site-content :is(.ac-hours-card, .ac-schedule) {
  border-radius: 18px;
  box-shadow: 10px 10px 0 rgba(215,192,153,.25);
}
#site-content #ac-home-highlights .ac-highlights-inner { border-inline: 0; }
#site-content #ac-home-highlights article { padding-block: 30px; }
#site-content #ac-home-highlights .ac-number { margin-bottom: 12px; }
#site-content #ac-home-offerings article {
  isolation: isolate;
  min-height: 410px;
  border: 1px solid rgba(237,195,138,.3);
  border-radius: 18px;
  background: linear-gradient(145deg, #72513e, #173b38);
}
#site-content #ac-home-offerings article::before { opacity: .3; }
#site-content #ac-home-offerings article::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(transparent, rgba(6,24,21,.94));
}
#site-content #ac-home-offerings .ac-offering-photo {
  position: absolute;
  z-index: -2;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#site-content #ac-home-offerings :is(h3, article p, .ac-tag) { color: #fff; }
#site-content #ac-home-offerings h3 { font-size: 30px; }
#site-content #ac-home-offerings .ac-icon {
  color: var(--shell-gold);
  border-color: rgba(237,195,138,.5);
  background: rgba(9,30,28,.6);
}
#site-content #ac-home-offerings .ac-tag {
  position: static;
  min-height: 44px;
  padding-block: 12px;
  text-decoration: underline;
  text-underline-offset: 6px;
}
#site-content #ac-home-offerings .ac-tag::after { content: ""; position: absolute; inset: 0; }
#site-content #ac-home-offerings article:focus-within { outline: 3px solid var(--shell-gold); outline-offset: 5px; }
#site-content #ac-home-story .ac-story-art { background: var(--shell-ink); }
#site-content #ac-home-story .ac-story-art img { width: 100%; height: 560px; object-fit: cover; filter: none; }
#site-content #ac-home-story .ac-story-art::after {
  inset: auto 0 0;
  padding: 50px 16px 32px;
  background: linear-gradient(transparent, rgba(9,30,28,.9));
}
#site-content #ac-career-email { color: var(--shell-ink); background: var(--shell-cream); }
#site-content #ac-career-email a { color: inherit; }

.site-footer {
  border-top: 1px solid rgba(237,195,138,.25);
  background: var(--shell-ink);
}
.site-footer__socials svg [fill="#396f86"] { fill: var(--shell-ink); }
.site-footer__socials svg [stroke="#396f86"] { stroke: var(--shell-ink); }
.site-quick-actions { display: none; }

body.digital-menu {
  --ink: var(--shell-ink);
  --cream: var(--shell-cream);
  --paper: #fffdf8;
  --gold: var(--shell-gold);
  --blue: var(--shell-blue);
  --orange: var(--shell-orange);
  --muted: #50605a;
  --line: rgba(23,59,56,.2);
}
.digital-menu .dm-topbar { background: var(--shell-ink); }
.digital-menu :is(.dm-hero__copy, .dm-quick-facts) { color: #e1dfd2; }
.digital-menu .dm-hero__copy a { color: var(--gold); }
.digital-menu :is(.dm-chip, .dm-diet button, .dm-clear, .dm-dialog__close) { min-width: 44px; min-height: 44px; }
.digital-menu .dm-clear { top: 3px; width: 44px; }
.digital-menu .dm-chip { font-size: 13px; }
.digital-menu .dm-section { scroll-margin-top: 220px; }
.digital-menu :is(.dm-card, .dm-dialog) { border-radius: 16px; }
.digital-menu .dm-dialog__category { color: #94602d; }
.digital-menu .dm-empty button {
  min-height: 48px;
  margin-top: 24px;
  padding: 0 22px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: var(--ink);
  font: 700 14px Arial, sans-serif;
  cursor: pointer;
}
.digital-menu .site-quick-actions { display: none; }

@media (max-width: 1020px) {
  body:not(.digital-menu) .site-footer {
    padding-bottom: calc(112px + env(safe-area-inset-bottom));
  }
  body.menu-open .site-quick-actions { visibility: hidden; }
  .site-quick-actions {
    position: fixed;
    z-index: 900;
    inset: auto 0 0;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 6px;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(23,59,56,.15);
    color: var(--shell-ink);
    background: var(--shell-cream);
    box-shadow: 0 -6px 24px rgba(0,0,0,.08);
  }
  .site-quick-actions a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 46px;
    border-radius: 9px;
    color: var(--shell-ink);
    font: 700 12px/1.3 Arial, sans-serif;
    text-decoration: none;
  }
  .site-quick-actions a:last-child { background: var(--shell-gold); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  #site-content *, #site-content *::before, #site-content *::after {
    animation: none !important;
    transition: none !important;
  }
}

@media print {
  .site-header, .site-quick-actions, .skip-link { display: none !important; }
}
