/* Shared reading sizes. Existing font families and heading styles stay in place. */
body { font-size: 18px; line-height: 1.6; }
.desktop-nav, .order-header, .language-picker>summary,
.language-options a span, .eyebrow, .hero .eyebrow,
.photo-index, .hero-location { font-size: 14px; }
.language-options a, .round-link { font-size: 16px; }
.concierge-shortcuts button, .concierge-shortcuts a, .concierge-suggestions button,
.concierge-message-actions button, .concierge-enquiry-form label,
.concierge-enquiry-consent, .concierge-footer button,
.pr-banner-actions button, .pr-settings-actions button, .pr-text-button,
.or-dialog button:not(.or-close) { font-size: 16px; }
.button, .button.small, .text-link, .light-link, .event-action,
.heading-aside, .place-copy>p:not(.eyebrow), .story-details>div,
.story-details summary, .planner-intro>p:not(.eyebrow), .planner-panel>p,
.plan-steps li, .brunch-copy p, .event-info p, .everyday-note p,
.contact-intro address, .hours-list, .contact-banner p:not(.eyebrow),
.text-dialog>p:not(.eyebrow), .contact-links a, .footer-nav { font-size: 17px; }
.place-tags span, .access-tags, .hours-note, .hours-source, .hours-special h4,
.hours-special dl>div, .open-status, .card-caption>span, .card-num,
.planner-topline, .planner-panel .planner-note, .gallery-caption,
.footer-bottom, .footer-bottom button, .reviews-source-line,
.reviews-source-line strong, .review-person cite, .review-person time,
.review-source, .reviews-pagination>p, .review-original-language { font-size: 14px; }
.review-card blockquote { font-size: 18px; }
.text-dialog label, .form-note, #mail-fallback, .bk-heading>p,
.bk-field-grid label, .bk-contact-grid label, .bk-field-hint, .bk-note,
.bk-summary p, .bk-summary li, .bk-booking-email label,
.tr-content p, .tr-content label, .tr-content small, .tr-selection,
.gt-intro, .gt-fields label, .gt-reserve-status, .gt-contact,
.or-dialog label, .or-dialog p, .or-dialog small, .or-help, .or-consent,
.pr-banner p, .pr-intro, .pr-essential p, .pr-option>span>span,
.pr-policy-content p, .pr-reload-note p, .pr-provider-links a { font-size: 16px; }
.text-dialog input:not([type=checkbox]), .text-dialog select, .text-dialog textarea,
.bk-field-grid input, .bk-field-grid select, .bk-field-grid textarea,
.bk-catalog-tools input, .bk-catalog-tools select, .bk-booking-email input,
.bk-quantity input, .tr-dialog input:not([type=checkbox]), .tr-dialog select,
.tr-dialog textarea, .gt-fields input,
.or-dialog input:not([type=checkbox]):not([type=radio]), .or-dialog select,
.or-dialog textarea, .concierge-form textarea,
.concierge-enquiry-form input:not([type=checkbox]), .concierge-enquiry-form textarea { font-size: 18px; }
.or-product-description, .or-cart-item-top, .or-product-price,
.or-order-details>div, .or-collection span:not(.or-collection-icon),
.concierge-message-text, .concierge-notice, .concierge-enquiry-intro,
.concierge-enquiry-review>p, .concierge-enquiry-receipt>p,
.concierge-welcome>p:last-child { font-size: 17px; }
.cm-section p, .cm-section label, .cm-section small,
.cm-workspace p, .cm-workspace label, .cm-workspace small { font-size: 16px !important; }
.cm-section input:not([type=checkbox]):not([type=radio]):not([type=file]),
.cm-section select, .cm-section textarea,
.cm-workspace input:not([type=checkbox]):not([type=radio]):not([type=file]),
.cm-workspace select, .cm-workspace textarea { font-size: 18px !important; }

/* Mobile/tablet spacing and one-task layouts. */
@media (max-width: 1200px) {
  body { font-size: 18px; line-height: 1.6; }
  .eyebrow { font-size: 14px; letter-spacing: .08em; }
  .hero .eyebrow, .photo-index, .hero-location { font-size: 14px; }
  .hero-sticker span { font-size: 12px; }
  .button, .button.small, .text-link, .light-link, .event-action { font-size: 17px; min-height: 48px; line-height: 1.4; }
  .hero-buttons .button { font-size: 17px; }
  .round-link { font-size: 16px; min-height: 48px; }
  .round-link .circle { width: 44px; height: 44px; }
  .heading-aside, .place-copy>p:not(.eyebrow), .story-details>div,
  .planner-intro>p:not(.eyebrow), .planner-panel>p, .plan-steps li,
  .brunch-copy p, .event-info p, .everyday-note p, .contact-intro address,
  .hours-list, .contact-banner p:not(.eyebrow), .text-dialog>p:not(.eyebrow) { font-size: 17px; line-height: 1.65; }
  .story-details summary { font-size: 17px; min-height: 48px; display: flex; align-items: center; }
  .place-tags span, .access-tags, .hours-note, .hours-source,
  .hours-special h4, .hours-special dl>div, .open-status,
  .card-caption>span, .card-num, .planner-topline, .planner-panel .planner-note,
  .gallery-caption, .footer-bottom, .footer-bottom button { font-size: 14px; line-height: 1.6; }
  .contact-links a, .footer-nav { font-size: 17px; }
  .text-dialog label, .form-note, #mail-fallback { font-size: 16px; line-height: 1.6; }
  .text-dialog input:not([type=checkbox]), .text-dialog select, .text-dialog textarea { font-size: 18px; min-height: 48px; }
  .language-picker>summary { font-size: 14px; min-height: 48px; }
  .language-options a { font-size: 17px; min-height: 48px; }
  .language-options a span { font-size: 14px; }
  .header-actions>.button { font-size: 16px; min-height: 48px; padding: 10px 13px; }
  .menu-toggle { width: 48px; height: 48px; flex-basis: 48px; }
  .desktop-nav, .order-header { display: none; }
  .menu-toggle { display: block; }
  .mobile-actions a { font-size: 16px; min-height: 52px; }
  .mobile-nav a { font-size: 25px; min-height: 52px; }
  .photo-cards { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .event-date span { font-size: 12px; line-height: 1.5; }
  .review-card blockquote { font-size: 18px; line-height: 1.65; }
  .reviews-source-line, .reviews-source-line strong, .review-person cite,
  .review-person time, .review-source, .reviews-pagination>p,
  .review-original-language { font-size: 14px; line-height: 1.6; }
  .reviews-page-button { min-height: 48px; min-width: 48px; }

  /* Bookings keep one active step and a readable summary underneath it. */
  .bk-layout { grid-template-columns: minmax(0,1fr); }
  .bk-summary { position: static; }
  .bk-heading>p, .bk-field-grid label, .bk-contact-grid label, .bk-field-hint,
  .bk-note, .bk-summary p, .bk-summary li, .bk-booking-email label { font-size: 16px; line-height: 1.6; }
  .bk-field-grid input, .bk-field-grid select, .bk-field-grid textarea,
  .bk-catalog-tools input, .bk-catalog-tools select, .bk-booking-email input,
  .bk-quantity input { font-size: 18px; min-height: 48px; }
  .bk-progress { flex-wrap: wrap; gap: 12px; }
  .bk-progress li { font-size: 13px; }
  .bk-slot { font-size: 14px; min-height: 48px; }
  .bk-slot-legend, .bk-slot-hour-label { font-size: 13px; }
  .bk-step-actions .button, .bk-direct-booking>.button { font-size: 17px; min-height: 48px; }

  .tr-shell, .gt-shell { grid-template-columns: minmax(0,1fr); }
  .tr-photo, .gt-photo { display: none; }
  .tr-dialog, .gt-dialog { font-size: 17px; }
  .tr-content p, .tr-content label, .tr-content small, .tr-selection,
  .gt-intro, .gt-fields label, .gt-reserve-status, .gt-contact { font-size: 16px; line-height: 1.6; }
  .tr-dialog input:not([type=checkbox]), .tr-dialog select, .tr-dialog textarea,
  .gt-fields input { font-size: 18px; min-height: 48px; }
  .tr-dialog button, .gt-modes>button, .gt-primary { min-height: 48px; font-size: 17px; }

  .or-dialog { font-size: 17px; }
  .or-dialog label, .or-dialog p, .or-dialog small { font-size: 16px; line-height: 1.6; }
  .or-dialog input:not([type=checkbox]):not([type=radio]), .or-dialog select,
  .or-dialog textarea { font-size: 18px; min-height: 48px; }
  .or-dialog button:not(.or-close) { min-height: 48px; font-size: 16px; }
  .or-product-description, .or-cart-item-top, .or-product-price,
  .or-order-details>div, .or-collection span:not(.or-collection-icon) { font-size: 17px; line-height: 1.6; }
  .or-product h3 { font-size: 22px; }
  .or-variant-group>legend, .or-option-group>legend, .or-option-copy strong,
  .or-option-copy>span, .or-cart-item-options, .or-cart-item-deposit,
  .or-config-deposit, .or-help, .or-consent { font-size: 16px; line-height: 1.6; }

  .pr-banner p, .pr-intro, .pr-essential p, .pr-option>span>span,
  .pr-policy-content p, .pr-reload-note p, .pr-provider-links a { font-size: 16px; line-height: 1.65; }
  .pr-essential strong, .pr-option strong { font-size: 18px; }
  .pr-banner-actions button, .pr-settings-actions button, .pr-text-button { font-size: 16px; min-height: 48px; }
  .pr-banner-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .pr-banner-actions button:first-child { grid-column: 1 / -1; }
  .pr-active, .pr-updated { font-size: 14px; }

  .concierge-message-text, .concierge-notice, .concierge-enquiry-intro,
  .concierge-enquiry-review>p, .concierge-enquiry-receipt>p,
  .concierge-welcome>p:last-child { font-size: 17px; line-height: 1.65; }
  .concierge-status, .concierge-field-hint, .concierge-message-label,
  .concierge-footer p { font-size: 14px !important; line-height: 1.5; }
  .concierge-shortcuts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .concierge-shortcuts button, .concierge-shortcuts a, .concierge-suggestions button,
  .concierge-message-actions button, .concierge-enquiry-form label:not(.concierge-enquiry-consent),
  .concierge-enquiry-consent, .concierge-footer button { font-size: 16px; min-height: 48px; }
  .concierge-form textarea, .concierge-enquiry-form input:not([type=checkbox]),
  .concierge-enquiry-form textarea { font-size: 18px; }
  .concierge-enquiry-primary, .concierge-enquiry-secondary { font-size: 17px !important; min-height: 48px; }

  .cm-section p, .cm-section label, .cm-section small,
  .cm-workspace p, .cm-workspace label, .cm-workspace small { font-size: 16px !important; line-height: 1.6; }
  .cm-section input:not([type=checkbox]):not([type=radio]):not([type=file]),
  .cm-section select, .cm-section textarea, .cm-workspace input:not([type=checkbox]):not([type=radio]):not([type=file]),
  .cm-workspace select, .cm-workspace textarea { font-size: 18px !important; min-height: 48px; }
  .cm-workspace>.cm-tabs>button { font-size: 14px; min-height: 48px; }
  .cm-workspace .cm-message>p, .cm-workspace .cm-member-bio,
  .cm-workspace .cm-member-detail-bio { font-size: 17px !important; line-height: 1.65; }
  .cm-workspace .cm-conversation-button, .cm-workspace .cm-pill-button,
  .cm-section .button { font-size: 16px !important; min-height: 48px; }
  .cm-workspace .cm-chat-heading>.cm-text-button, .cm-workspace .cm-message-report,
  .cm-workspace .cm-message-footer>time { font-size: 14px !important; }
}
@media (max-width: 640px) {
  .photo-cards { grid-template-columns: minmax(0,1fr); }
  .bk-field-grid, .bk-contact-grid, .concierge-name-fields { grid-template-columns: minmax(0,1fr); }
  .hero-buttons { align-items: flex-start; gap: 14px; }
  .hero-buttons .button { min-height: 52px; padding: 13px 18px; }
  .pr-banner { bottom: calc(76px + env(safe-area-inset-bottom,0px)); }
  .concierge-panel { top: calc(12px + env(safe-area-inset-top,0px)); bottom: calc(76px + env(safe-area-inset-bottom,0px)); height: auto; max-height: none; }
}
