/* Adaptive layer. Original content, colors, typefaces and assets are unchanged. */
html { scroll-padding-top: 100px; -webkit-text-size-adjust: 100%; }
body { min-width: 0; }
img, video { max-width: 100%; }
button, input, select, textarea { touch-action: manipulation; }
section[id], [id="add-photo"], [id="consent"] { scroll-margin-top: 100px; }
.button, .text-link, .taste-lineage, .art-current figcaption a { max-width: 100%; }
.button, .text-link { overflow-wrap: anywhere; }
.hero__footer > div, .hero__actions, .day-head > *, .place-copy, .art-lead,
.art-statement, .taste-intro, .taste-photo, .menu-preview, .dish > div,
.sunsets-title, .sunsets-copy, .sunset-clock, .events-copy, .route-intro,
.route-steps, .contacts-grid > div, .site-footer > *, .community-field,
.community-form__columns > *, .privacy-document section > * { min-width: 0; }
.day-head { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.place-section { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
.art-section, .taste-section, .dish-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sunsets-section { grid-template-columns: minmax(0, .9fr) minmax(0, 1fr) minmax(0, .65fr); }
.route-section { grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); }
.contacts-grid { grid-template-columns: minmax(0, 1.25fr) repeat(2, minmax(0, 1fr)); }
.site-footer { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dish p, .contacts-grid a, .site-footer p, .community-photo figcaption,
.privacy-document p, .community-form__status { overflow-wrap: anywhere; }
.sunsets-title h2 { overflow-wrap: anywhere; }
.site-header { grid-template-columns: auto minmax(0, 1fr); column-gap: 24px; }
.site-nav { grid-column: 2; }
.site-nav > a { white-space: nowrap; }
.agenda-modal, .booking-modal, .event-request-modal { overscroll-behavior: contain; scrollbar-gutter: stable; }
.booking-field input, .booking-field select, .booking-field textarea { min-width: 0; max-width: 100%; }
.booking-form__footer, .event-request-form__footer { flex-wrap: wrap; }
.booking-form__footer p, .event-request-form__footer p { text-align: left; }
.booking-consent { min-width: 0; }
.booking-consent span { overflow-wrap: anywhere; }
.community-submit { max-width: 100%; white-space: normal; height: auto; }
.community-input { max-width: 100%; font-size: 1rem; }
.community-hero h1, .community-section-head h2, .community-form__intro h2,
.privacy-document h1 { overflow-wrap: anywhere; }
.privacy-document h1 { max-width: 100%; }

@media (max-width: 1200px) {
  .site-header { grid-template-columns: minmax(0, 1fr) auto; }
  .site-header .brand { width: clamp(152px, 18vw, 200px); }
  .menu-toggle { grid-column: 2; display: flex; align-items: center; justify-content: center; gap: 12px; min-width: 44px; min-height: 44px; padding: 0; color: inherit; background: none; border: 0; font: inherit; cursor: pointer; }
  .menu-toggle__label { font-size: 14px; }
  .menu-toggle__icon { position: relative; width: 24px; height: 18px; }
  .menu-toggle__icon i { position: absolute; left: 0; width: 24px; height: 1px; background: currentColor; transition: transform .25s, top .25s; }
  .menu-toggle__icon i:first-child { top: 5px; }
  .menu-toggle__icon i:last-child { top: 13px; }
  .menu-toggle[aria-expanded="true"] .menu-toggle__icon i:first-child { top: 9px; transform: rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-toggle__icon i:last-child { top: 9px; transform: rotate(-45deg); }
  .site-nav { position: fixed; inset: 0; z-index: -1; width: 100%; height: 100vh; height: 100dvh; display: flex; flex-direction: column; justify-content: safe center; align-items: stretch; gap: 10px; padding: calc(96px + env(safe-area-inset-top, 0px)) var(--pad) calc(32px + env(safe-area-inset-bottom, 0px)); background: var(--paper); color: var(--orange); opacity: 0; visibility: hidden; overflow-y: auto; overscroll-behavior: contain; transition: opacity .25s, visibility .25s; }
  .site-nav.is-open { opacity: 1; visibility: visible; }
  .site-nav > a { flex-shrink: 0; width: min(100%, 760px); min-height: 64px; padding: 14px 20px; justify-content: space-between; align-self: center; color: var(--white); background: var(--orange); border: 0; border-radius: 16px; font-size: clamp(24px, 4vw, 42px); line-height: 1.1; letter-spacing: -.04em; white-space: normal; }
  .site-nav > a:not(.nav-book)::after { display: none; }
  .site-nav .nav-book { margin: 0; font-size: clamp(24px, 4vw, 42px); }
  .site-nav a:hover, .site-nav .nav-book:hover { color: var(--white); background: var(--orange-dark); }
  .site-nav .nav-sign-arrow { flex: 0 0 34px; width: 34px; height: 34px; opacity: 1; transform: none; }
  body.menu-open .site-header { color: var(--orange); background: var(--paper); backdrop-filter: none; -webkit-backdrop-filter: none; }
  body.menu-open .site-header .brand { color: var(--orange); }
  .hero__footer { flex-wrap: wrap; gap: 24px; }
  .hero__actions { flex-wrap: wrap; flex-shrink: 1; }
  .day-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .day-card { min-height: 360px; }
  .sunsets-section { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 4vw, 48px); }
  .sunsets-title h2 { font-size: clamp(3rem, 7vw, 6rem); line-height: .92; }
  .sunset-clock { grid-column: 1 / -1; min-height: 240px; }
  .aiki-business-badge { width: 32px; padding: 18px 6px; }
  .aiki-business-badge img { width: 18px; }
  .menu-downloads { align-items: flex-start; flex-direction: column; }
  .occasion-card { padding-left: clamp(24px, 3.5vw, 50px); padding-right: clamp(24px, 3.5vw, 50px); }
  .occasion-card h2 { font-size: clamp(2.5rem, 4.6vw, 3.75rem); }
}

@media (max-width: 980px) {
  .hero { min-height: 620px; }
  .hero h1 { font-size: clamp(3.5rem, 10.6vw, 6.5rem); line-height: .86; }
  .place-section, .events-section, .art-section { grid-template-columns: minmax(0, 1fr); }
  .place-photo, .events-image { min-height: 0; height: clamp(400px, 65vw, 680px); }
  .place-copy, .events-copy { min-height: 0; padding-top: 80px; padding-bottom: 80px; }
  .taste-intro { padding-right: 24px; }
  .taste-lineage { grid-template-columns: minmax(0, 1fr) auto; width: 100%; }
  .taste-lineage span:first-child { grid-column: 1 / -1; }
  .art-current img { min-height: 300px; }
  .dish { gap: 16px; padding: 22px 18px; }
  .dish strong { white-space: normal; text-align: right; max-width: 100px; }
  .route-section { gap: 40px; }
  .route-steps li { grid-template-columns: 30px minmax(0, 1fr); gap: 14px; }
  .booking-modal__shell, .event-request-modal__shell { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .booking-modal__intro, .event-request-modal__intro { min-height: 0; gap: 28px; padding: 60px 32px 32px; }
  .booking-modal__intro h2, .event-request-modal__intro h2 { margin: 0; font-size: clamp(2.5rem, 7vw, 4.5rem); line-height: .92; }
  .booking-modal__intro > p:last-child, .event-request-modal__intro > p:last-child { max-width: 620px; }
  .booking-modal__close, .event-request-modal__close { position: sticky; top: 0; right: 0; grid-column: 1; justify-self: end; align-self: start; min-height: 44px; margin: 0 12px -44px 0; padding: 12px; color: var(--white); background: var(--orange); }
  .event-request-modal__close { background: var(--wine); }
  .booking-form, .event-request-form { padding: 32px; }
  .agenda-modal__head { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .agenda-modal__head > p:last-child { max-width: 620px; }
  .agenda-modal__list { grid-template-columns: minmax(0, 1fr); }
  .agenda-modal__list li { grid-template-columns: minmax(125px, .35fr) minmax(0, 1fr); }
  .contacts-grid { gap: 24px; }
  .site-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-footer > :last-child { grid-column: 1 / -1; text-align: left; }
}

@media (max-width: 720px) {
  :root { --pad: clamp(20px, 5vw, 36px); }
  html { scroll-padding-top: 84px; }
  body { padding-bottom: 0; }
  .site-header { padding-top: calc(10px + env(safe-area-inset-top, 0px)); padding-bottom: 10px; min-height: 68px; column-gap: 12px; }
  .site-header .brand { width: clamp(140px, 43vw, 180px); }
  .aiki-business-badge { display: none; }
  .site-nav { padding-bottom: calc(32px + env(safe-area-inset-bottom, 0px)); }
  .site-nav > a, .site-nav .nav-book { min-height: 56px; padding: 12px 16px; font-size: clamp(1.4rem, 5.6vw, 2rem); }
  .hero { height: auto; min-height: max(580px, 100svh); }
  .hero__content { height: auto; min-height: inherit; padding-top: calc(190px + env(safe-area-inset-top, 0px)); padding-bottom: 44px; }
  .hero__status { top: calc(84px + env(safe-area-inset-top, 0px)); flex-wrap: wrap; gap: 8px 12px; padding: 10px 12px; text-align: center; }
  #open-status { font-size: .75rem; }
  #sunset-time { font-size: 1.125rem; }
  .status-dot { flex: 0 0 8px; }
  .hero h1 { font-size: clamp(2.25rem, 11.8vw, 5.4rem); line-height: .92; letter-spacing: -.065em; }
  .hero h1 span:last-child { margin: 6px 0 0; font-size: .76em; line-height: 1; }
  .hero .eyebrow { max-width: 32em; font-size: .75rem; line-height: 1.65; letter-spacing: .11em; }
  .hero__footer .hero__note { max-width: 34em; font-size: .75rem; line-height: 1.6; }
  .hero__actions { margin-top: 16px; }
  .text-link--hero { min-height: 44px; }
  .quick-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick-facts > * { padding: 18px 16px; gap: 12px; }
  .quick-facts strong { font-size: .875rem; line-height: 1.35; }
  .quick-facts > *:nth-child(2n) { border-right: 0; }
  .quick-facts > *:last-child { grid-column: 1 / -1; }
  .day-head, .taste-section, .dish-list, .sunsets-section, .route-section,
  .contacts-grid, .site-footer { grid-template-columns: minmax(0, 1fr); }
  .day-grid { grid-template-columns: minmax(0, 1fr); }
  .day-head h2, .place-copy h2, .taste-intro h2, .events-copy h2,
  .art-lead h2, .route-intro h2 { font-size: clamp(2.5rem, 11.6vw, 4.75rem); line-height: .96; }
  .sunsets-title h2 { font-size: clamp(2.4rem, 10.7vw, 4.75rem); line-height: .96; }
  .taste-intro { padding-right: 0; }
  .place-photo, .events-image { height: clamp(320px, 95vw, 560px); min-height: 0; }
  .art-current img { aspect-ratio: 4 / 3; min-height: 310px; }
  .art-current figcaption { padding: 20px; }
  .art-current figcaption > span { line-height: 1.5; }
  .art-current figcaption strong { font-size: clamp(1.4rem, 6vw, 2rem); line-height: 1.08; }
  .button { min-height: 48px; gap: 16px; line-height: 1.4; }
  .text-link { min-height: 44px; line-height: 1.4; }
  .menu-filter { min-height: 44px; padding: 10px 14px; font-size: .875rem; }
  .dish { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; padding: 22px 16px; }
  .dish strong { max-width: 92px; font-size: .875rem; }
  .dish p { font-size: .875rem; line-height: 1.45; }
  .dish h3 { line-height: 1.1; }
  .menu-downloads > div { gap: 8px 20px; }
  .menu-downloads a { min-height: 44px; }
  .community-preview__head { flex-wrap: wrap; gap: 8px 20px; }
  .community-preview__grid { gap: 0; min-height: 0; padding-right: var(--pad); scroll-padding-left: 0; }
  .community-preview__item { flex-basis: min(78vw, 440px); min-width: min(78vw, 440px); }
  .community-preview__item img { height: clamp(280px, 80vw, 360px); min-height: 0; }
  .sunset-clock { grid-column: auto; }
  .occasion-card h2 { max-width: 100%; font-size: clamp(2rem, 9vw, 3.5rem); line-height: .98; }
  .occasion-card { padding-left: var(--pad); padding-right: var(--pad); min-height: 0; }
  .occasion-card__body > .text-link { margin-top: 16px; }
  .occasion-gallery { height: clamp(120px, 35vw, 170px); }
  .gift-card-visual { height: clamp(135px, 39vw, 210px); }
  .route-map { gap: 18px; font-size: clamp(1.5rem, 6.8vw, 2.5rem); }
  .route-map > span { min-width: 0; }
  .contacts-top h2 { font-size: clamp(3.75rem, 17vw, 6.5rem); line-height: .92; }
  .contacts-grid p { margin-top: 0; }
  .site-footer > :last-child { grid-column: auto; }
  .mobile-actions { display: none; }
  .agenda-modal, .booking-modal, .event-request-modal { width: calc(100% - 20px); max-height: calc(100vh - 20px); max-height: calc(100dvh - 20px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)); scrollbar-gutter: auto; }
  .agenda-modal__shell { padding: 20px; }
  .agenda-modal__head h2 { font-size: clamp(2.8rem, 14vw, 5rem); line-height: .9; }
  .agenda-modal__head h2 em { margin-left: 0; }
  .agenda-modal__close { min-height: 44px; padding: 10px 0 10px 12px; }
  .agenda-modal__list li { grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 24px 16px; }
  .agenda-modal__list time strong { font-size: 3rem; }
  .agenda-modal__list h3 { font-size: 1.5rem; line-height: 1.08; }
  .agenda-modal__footer .button { width: 100%; font-size: .875rem; }
  .booking-modal__intro, .event-request-modal__intro { padding: 60px 24px 28px; }
  .booking-modal__intro h2, .event-request-modal__intro h2 { font-size: clamp(2.25rem, 10vw, 4rem); }
  .booking-form, .event-request-form { padding: 28px 24px; }
  .booking-form__grid, .event-request-form__grid { grid-template-columns: minmax(0, 1fr); }
  .booking-field > span { line-height: 1.5; }
  .booking-field input, .booking-field select, .booking-field textarea { font-size: 1rem; }
  .booking-form__footer .button, .event-request-form__footer .button { width: 100%; }
  .booking-consent { font-size: .875rem; }
  .booking-form__note { font-size: .8125rem; }
  .community-header, .privacy-header { gap: 16px; padding-top: calc(16px + env(safe-area-inset-top, 0px)); }
  .community-logo, .privacy-header > a:first-child { width: clamp(132px, 38vw, 180px); flex-shrink: 0; }
  .community-back, .privacy-header > a:last-child { min-height: 44px; display: inline-flex; align-items: center; font-size: .875rem; white-space: nowrap; }
  .community-hero, .community-hero__content { min-height: max(600px, 88svh); }
  .community-hero__content { padding-top: 140px; }
  .community-hero h1 { font-size: clamp(2.75rem, 12vw, 5.4rem); line-height: .94; }
  .community-section-head h2 { font-size: clamp(2.5rem, 10.5vw, 4.5rem); line-height: 1; }
  .community-form__intro h2 { font-size: clamp(2.4rem, 10.5vw, 4.5rem); line-height: 1; }
  .community-section-head, .community-form__columns { grid-template-columns: minmax(0, 1fr); }
  .community-form__footer { flex-direction: column; align-items: stretch; }
  .community-file-input { font-size: .875rem; overflow: hidden; }
  .community-file-input::file-selector-button { max-width: 100%; margin-right: 10px; padding: 0 12px; }
  .community-submit { min-height: 48px; padding: 12px 16px; }
  .community-consent { padding: 6px 0; }
  .community-checkbox { width: 20px; height: 20px; }
  .privacy-document h1 { font-size: clamp(2rem, 7.5vw, 3.75rem); line-height: 1.04; letter-spacing: -.05em; }
  .privacy-document section { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .privacy-document section p + p { grid-column: auto; margin-top: 0; }
}

@media (max-width: 380px) {
  .hero__status .status-divider { display: none; }
  #sunset-time { flex-basis: 100%; }
  .dish { grid-template-columns: minmax(0, 1fr); }
  .dish strong { max-width: 100%; text-align: left; }
  .agenda-modal__shell { padding: 16px; }
  .booking-form, .event-request-form { padding: 24px 18px; }
  .booking-modal__intro, .event-request-modal__intro { padding-left: 18px; padding-right: 18px; }
  .community-header, .privacy-header { gap: 10px; }
}

@media (max-width: 1200px) and (max-height: 560px) {
  .site-nav { justify-content: flex-start; gap: 6px; padding-top: calc(76px + env(safe-area-inset-top, 0px)); }
  .site-nav > a, .site-nav .nav-book { min-height: 44px; padding: 8px 16px; font-size: 1.25rem; }
  .site-nav .nav-sign-arrow { height: 24px; }
  .hero { height: auto; min-height: 560px; }
  .hero__content { min-height: 560px; padding-top: 180px; padding-bottom: 44px; }
  .booking-modal, .event-request-modal, .agenda-modal { max-height: calc(100dvh - 16px); }
}

@media (pointer: coarse) {
  .menu-toggle, .menu-filter, .booking-modal__close, .event-request-modal__close,
  .agenda-modal__close { min-height: 44px; }
  .community-consent { min-height: 44px; }
}

/* Keep the large number clear of its caption at every viewport width. */
.place-photo > p span { line-height: 1; margin-bottom: 16px; }

/* Shared square corners for buttons, including navigation and upload controls. */
button, .button, .menu-filter, .agenda-ribbon > span:first-child,
.site-nav > a, .site-nav .nav-book, .aiki-business-badge,
.community-hero__action, .community-submit, input[type="button"], input[type="submit"] {
  border-radius: 0;
}
input[type="file"]::file-selector-button { border-radius: 0; }

.dish .dish__group { margin: 0 0 12px; font-size: .875rem; opacity: .62; }
.dish strong { white-space: normal; text-align: right; max-width: 150px; }
.dish:focus-visible { outline: 2px solid var(--orange); outline-offset: -4px; }
.menu-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; overflow-anchor: none; }
.menu-pagination p { margin: 0; font-size: .875rem; }
.menu-more { cursor: pointer; font: inherit; }
.menu-more[hidden] { display: none; }
@media (min-width: 721px) {
  .menu-pagination { flex-direction: column-reverse; justify-content: center; gap: 16px; margin-top: 36px; }
  .menu-more {
    width: min(100%, 440px);
    min-height: 68px;
    justify-content: center;
    gap: 24px;
    margin-bottom: 0;
    padding: 18px 32px;
    color: var(--white);
    background: var(--orange-dark);
    border-color: var(--orange-dark);
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.4;
  }
  .menu-more::after { content: ""; width: 10px; height: 10px; flex: 0 0 auto; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-3px) rotate(45deg); }
  .menu-more:hover { color: var(--white); background: var(--ink); border-color: var(--ink); }
  .menu-more:focus-visible { outline: 3px solid var(--ink); outline-offset: 5px; }
}
@media (max-width: 720px) {
  .dish strong { max-width: 108px; }
  .menu-more { width: 100%; justify-content: center; }
}
@media (max-width: 380px) {
  .dish strong { max-width: 100%; text-align: left; }
}

/* Community introduction and a compact, consistently cropped photo strip. */
.sunsets-section {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  column-gap: clamp(32px, 5vw, 96px);
  row-gap: 48px;
}
.sunsets-copy > p { max-width: 42rem; }
.community-preview__grid { min-height: 0; }
.community-preview__item { height: clamp(190px, 15vw, 280px); }
.community-preview__item img { height: 100%; min-height: 0; object-fit: cover; }
@media (max-width: 720px) {
  .sunsets-section { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .community-preview__item { height: clamp(180px, 48vw, 230px); }
}
