.page-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px 12px; margin-bottom: 25px; color: var(--muted); font-size: .8rem; }
.page-breadcrumb a { text-underline-offset: 4px; }
.page-hero { background: var(--chalk); padding-block: clamp(34px, 5.5vw, 74px); border-bottom: 1px solid var(--line); }
.page-hero-inner { display: grid; grid-template-columns: minmax(0, .98fr) minmax(0, 1.02fr); align-items: center; gap: clamp(26px, 6vw, 92px); }
.page-hero-inner.no-photo { grid-template-columns: 1fr; max-width: 1312px; }
.page-hero h1 { font-size: clamp(4.1rem, 7.4vw, 7.85rem); max-width: 13ch; }
.page-hero .deck { color: var(--muted); font-size: clamp(1rem, 1.15vw, 1.18rem); max-width: 49ch; margin-top: 18px; }
.page-hero .actions { margin-top: 22px; }
.page-hero figure img { width: 100%; height: clamp(310px, 37vw, 540px); object-fit: cover; object-position: center; }
.page-hero figure figcaption { margin-top: 6px; }
.block { padding-block: clamp(54px, 7vw, 96px); }
.block + .block { border-top: 1px solid var(--line); }
.block.tinted { background: var(--chalk); }
.block.dark { background: var(--pine); color: var(--paper); }
.block.dark .summary-copy { color: #e6e9db; }
.content-intro { max-width: 67ch; margin-bottom: 27px; }
.content-intro h2 { margin-bottom: 14px; }
.content-intro p, .muted-copy { color: var(--muted); }
.feature-split { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: clamp(25px, 6vw, 87px); align-items: center; }
.feature-split > img { width: 100%; height: clamp(240px, 34vw, 460px); object-fit: cover; }
.summary-copy p { margin-top: 14px; max-width: 48ch; }
.summary-copy .actions { margin-top: 19px; }
.tile-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2.5vw, 32px); }
.tile { padding-block: 17px 20px; border-top: 1px solid var(--line); }
.tile h3 { font-size: clamp(2.05rem, 3vw, 3rem); }
.tile p { color: var(--muted); margin-top: 11px; max-width: 43ch; }
.tile > img { width: 100%; aspect-ratio: 4/3; object-fit: cover; margin-bottom: 16px; }
.tile .actions { margin-top: 13px; }
.filter-bar { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 20px; }
.filter-bar button { color: var(--pine); border: 1px solid #788373; background: transparent; font: 650 .84rem var(--sans); cursor: pointer; padding: 9px 13px; min-height: 42px; }
.filter-bar button[aria-pressed="true"], .filter-bar button:hover { background: var(--pine); color: var(--paper); }
.date-picker { position: relative; min-width: 0; }
.date-label { display: block; margin-bottom: 6px; font-size: .88rem; font-weight: 650; }
.date-trigger { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; width: 100%; padding: 9px 11px; background: #fffcf5; border: 1px solid #929a8c; color: var(--ink); text-align: left; font: 400 .95rem var(--sans); cursor: pointer; }
.date-trigger:hover, .date-trigger[aria-expanded="true"] { border-color: var(--pine); background: var(--paper); }
.calendar-glyph { position: relative; flex: 0 0 16px; height: 15px; border: 1.5px solid currentColor; border-radius: 2px; color: var(--muted); }
.calendar-glyph::before { content: ""; position: absolute; inset: 3px 0 auto; border-top: 1px solid currentColor; }
.calendar-glyph::after { content: ""; position: absolute; width: 8px; height: 4px; inset: -3px 2px auto; border-inline: 1.5px solid currentColor; }
.date-popover { position: absolute; inset-block-start: calc(100% + 8px); inset-inline-start: 0; z-index: 6; width: min(20rem, calc(100vw - 70px)); padding: 13px; background: var(--paper); color: var(--ink); border: 1px solid #788373; box-shadow: 0 12px 32px #222d2430; }
.calendar-header, .calendar-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.calendar-header { margin-bottom: 8px; }
.calendar-header strong { font: 400 clamp(1.35rem, 3vw, 1.75rem)/1 var(--serif); text-align: center; }
.calendar-header button, .calendar-actions button, [data-calendar-date] { font-family: var(--sans); color: inherit; background: transparent; border: 1px solid transparent; cursor: pointer; }
.calendar-header button { min-width: 36px; min-height: 36px; font-size: 1.45rem; line-height: 1; border-color: var(--line); }
.calendar-header button:hover, .calendar-actions button:hover:not(:disabled) { background: var(--sage); }
[data-calendar-grid] [role="row"] { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; }
.calendar-weekdays { text-align: center; color: var(--muted); font-size: .69rem; padding-block: 4px 7px; }
[data-calendar-date] { width: 100%; min-height: 36px; font-size: .84rem; font-weight: 600; }
[data-calendar-date]:hover { background: var(--sage); }
[data-calendar-date].outside-month { color: #687361; font-weight: 400; }
[data-calendar-date][aria-current="date"] { border-color: #6d7f65; }
[aria-selected="true"] > [data-calendar-date] { background: var(--pine); color: var(--paper); }
[data-calendar-date]:focus-visible { outline-offset: -2px; }
.calendar-actions { border-top: 1px solid var(--line); margin-top: 8px; padding-top: 8px; }
.calendar-actions button { padding: 7px 5px; min-height: 36px; font-size: .82rem; text-decoration: underline; text-underline-offset: 3px; }
.calendar-actions button:disabled { color: var(--muted); opacity: .67; cursor: default; text-decoration: none; }

.menu-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: clamp(14px, 2.3vw, 28px); }
.menu-card { min-width: 0; background: var(--paper); border: 1px solid var(--line); }
.menu-card summary { display: block; cursor: pointer; list-style: none; }
.menu-card summary::-webkit-details-marker { display: none; }
.menu-card summary:focus-visible { outline-offset: 3px; }
.menu-card-photo { display: block; position: relative; overflow: hidden; background: var(--sage); }
.menu-card-photo img { display: block; width: 100%; aspect-ratio: 8 / 5; height: auto; object-fit: cover; }
.menu-card-photo small { position: absolute; inset: auto auto 8px 8px; background: var(--paper); color: var(--pine); padding: 4px 7px; font-size: .68rem; }
.menu-card-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 15px 15px 16px; font: 400 clamp(1.55rem, 2.45vw, 2.3rem)/1.06 var(--serif); }
.menu-card-title::after { display: grid; flex: 0 0 31px; height: 31px; place-items: center; content: "+"; border: 1px solid var(--line); font: 500 1rem/1 var(--sans); color: var(--pine); }
.menu-card[open] .menu-card-title::after { content: "−"; background: var(--pine); color: var(--paper); border-color: var(--pine); }
.menu-card summary:hover .menu-card-title { background: var(--chalk); }
.menu-card-details { padding: 0 15px 17px; }
.menu-card-details p { color: var(--muted); font-size: .9rem; }
.menu-card-details ul { padding-inline-start: 19px; margin: 10px 0 0; font-size: .9rem; line-height: 1.55; }
#menus .actions { margin-top: 20px; }
@media (max-width: 900px) {
  .menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .date-popover { width: min(100%, 20rem); }
  .menu-grid { grid-template-columns: minmax(0, 1fr); }
}
.filter-status { min-height: 1.5em; font-size: .82rem; color: var(--muted); margin: 13px 0 10px; }
.layout-quote { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); align-items: start; gap: clamp(22px, 5vw, 84px); }
.quote-panel { background: var(--paper); border: 1px solid var(--line); padding: clamp(17px, 3.25vw, 35px); color: var(--ink); }
.quote-panel .form-note { color: var(--muted); margin-bottom: 18px; font-size: .87rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; margin-bottom: 19px; }
.form-grid .full { grid-column: 1 / -1; }
.form-grid label { display: grid; gap: 6px; align-content: start; font-weight: 650; font-size: .88rem; }
.form-grid input, .form-grid select { min-width: 0; width: 100%; min-height: 44px; padding: 9px; border: 1px solid #929a8c; border-radius: 0; font: 400 .95rem var(--sans); color: var(--ink); background: #fffcf5; }
button.button { cursor: pointer; font-family: var(--sans); }
.button.solid { background: var(--pine); color: var(--paper); }
.button.solid:hover { background: #425643; }
.form-result { border-left: 3px solid #667b64; background: var(--chalk); padding: 12px 14px; margin-top: 17px; }
.form-result p { overflow-wrap: anywhere; font-size: .88rem; }
.form-result .text-link { margin-top: 7px; }
.form-grid textarea { width: 100%; padding: 9px; resize: vertical; border: 1px solid #929a8c; background: #fffcf5; color: var(--ink); font: 400 .95rem var(--sans); }
.mail-headers { display: grid; gap: 7px; margin: 10px 0; font-size: .86rem; }
.mail-headers > div { display: flex; flex-wrap: wrap; gap: 2px 6px; }
.mail-headers dt { font-weight: 700; }
.mail-headers dd { margin: 0; overflow-wrap: anywhere; }
.form-summary { list-style: none; padding: 10px 0; margin: 10px 0; border-block: 1px solid var(--line); font-size: .87rem; line-height: 1.55; overflow-wrap: anywhere; }
.form-summary li + li { margin-top: 4px; }
.form-status { margin-top: 12px; overflow-wrap: anywhere; }
.quote-panel[aria-busy="true"] .form-status::before { content: ""; display: inline-block; width: 22px; height: 22px; margin-right: 7px; vertical-align: middle; background: url("/loader-fill.gif") center / contain no-repeat; }
@media (prefers-reduced-motion: reduce) { .quote-panel[aria-busy="true"] .form-status::before { background-image: url("/logo-90.png"); } }
.quote-panel button[type="submit"]:disabled { opacity: .65; cursor: default; }
.gallery-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(13px, 2.3vw, 29px); }
.gallery-grid figure img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.gallery-grid a { display: block; }
.gallery-grid a:hover img { filter: brightness(.9); }
.review-tiles .tile { padding-inline: 17px; background: var(--chalk); }
.prose { max-width: 75ch; }
.prose p + p { margin-top: 14px; }
.prose h2:not(:first-child) { margin-top: 30px; }
.prose h2 { margin-bottom: 13px; font-size: clamp(2.6rem,4vw,4.3rem); }
.prose li { line-height: 1.6; margin-bottom: 8px; }
[hidden] { display: none !important; }
@media (max-width: 900px) {
  .page-hero h1 { font-size: clamp(3.8rem, 8vw, 5.7rem); }
  .page-hero figure img { height: clamp(240px, 44vw, 385px); }
  .tile-grid, .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .page-hero-inner, .feature-split, .layout-quote { grid-template-columns: minmax(0,1fr); }
  .page-breadcrumb { margin-bottom: 17px; }
  .page-hero h1 { font-size: clamp(3.65rem, 13vw, 5.45rem); }
  .page-hero .deck { margin-top: 14px; }
  .page-hero figure img { height: clamp(210px, 62vw, 310px); }
  .tile-grid, .form-grid { grid-template-columns: minmax(0, 1fr); }
  .gallery-grid { grid-template-columns: minmax(0, 1fr); }
}
