/* Mobile reading and touch targets. Desktop typography and the brand stay intact. */
@media (max-width: 820px) {
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

  #hdr .logo .wordmark { font-size: 18px !important; }
  #hdr .header-actions .head-btn,
  #hdr .music-toggle { font-size: 12px; line-height: 1.35; }
  #hdr .header-actions { min-width: 0; }
  .hero-titles { padding-inline: 16px; }
  .hero .t-script-line { overflow-wrap: break-word; }
  .hero .ho-btn { max-width: 100%; white-space: normal; text-align: center; line-height: 1.5; }

  #pain .pain-story__title,
  #contacts h2,
  #faq .block-subtitle {
    font-family: 'Manrope', 'Segoe UI', system-ui, sans-serif;
    font-size: clamp(25px, 6.7vw, 32px);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -.02em;
    overflow-wrap: break-word;
  }
  #pain-story .pain-story__nav { font-size: 12px; line-height: 1.5; }
  #pain .pain-story__title { font-family: 'Studio Lora', Georgia, serif; font-weight: 400; letter-spacing: 0; }
  #contacts .wrap,
  #faq .wrap { padding-inline: max(16px, env(safe-area-inset-left)); }
  #contacts .lead,
  #faq p { font-size: 16px; line-height: 1.65; }
  #contacts .kicker,
  #faq .kicker { font-size: 12px; line-height: 1.5; letter-spacing: .12em; }
  #contacts .contact-actions { gap: 12px; margin-block: 28px; }
  #contacts .contact-main { width: 100%; max-width: 100%; min-height: 48px; font-size: 15px; line-height: 1.5; white-space: normal; }
  #contacts .contact-links { flex-wrap: wrap; gap: 8px 16px; }
  #contacts .contact-links a,
  #contacts .contact-hours { font-size: 14px; line-height: 1.6; }
  #faq summary { font-size: 16px; line-height: 1.5; gap: 12px; min-height: 44px; }
  #faq summary::after { margin-top: 2px; }
  #contacts .booking-consent,
  #finale .booking-consent { font-size: 13px; line-height: 1.6; opacity: 1; color: #cbd0c4; }
  #finale .inner { padding-inline: 16px; }
  #finale .btn-final { max-width: 100%; font-size: 15px; line-height: 1.5; padding: 15px 22px; }
  #site-footer { font-size: 13px; line-height: 1.7; color: #a8b39e; overflow-wrap: break-word; }
  .synapse-strip { font-size: 12px; line-height: 1.6; }
  .cookie-notice { gap: 12px; align-items: center; font-size: 13px; line-height: 1.5; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); }
  .cookie-notice button { flex: none; min-height: 44px; font: 600 14px/1.4 'Manrope', sans-serif; }

  /* Catalogue cards have the same scale on the landing page and full price page. */
  .av-catalog .av-direction h2,
  .av-price-page .av-direction h2 {
    font: 700 clamp(26px, 6.7vw, 32px)/1.25 'Manrope', 'Segoe UI', sans-serif !important;
    letter-spacing: -.02em;
    overflow-wrap: break-word;
  }
  .av-catalog .av-card h3,
  .av-price-page .av-card h3 {
    font: 700 22px/1.35 'Manrope', 'Segoe UI', sans-serif !important;
    letter-spacing: -.015em;
    overflow-wrap: break-word;
  }
  .av-catalog .av-intro,
  .av-price-page .av-intro { font-size: 16px; line-height: 1.65; }
  .av-catalog .av-kicker,
  .av-price-page .av-kicker,
  .av-catalog .av-tag,
  .av-price-page .av-tag { font-size: 12px; line-height: 1.5; letter-spacing: .04em; }
  .av-catalog .av-card-body,
  .av-price-page .av-card-body { padding: 18px 16px; }
  .av-catalog .av-description,
  .av-price-page .av-description { font-size: 15px; line-height: 1.65; }
  .av-catalog .av-facts dt,
  .av-price-page .av-facts dt { font-size: 12px; line-height: 1.5; color: #c4c5b8; }
  .av-catalog .av-facts dd,
  .av-price-page .av-facts dd { font-size: 16px; line-height: 1.5; }
  .av-catalog .av-card-details summary,
  .av-price-page .av-card-details summary { font-size: 14px; line-height: 1.5; }
  .av-catalog .av-button,
  .av-price-page .av-button { min-height: 48px; font-size: 14px; line-height: 1.45; padding: 12px; }
  .av-catalog .av-price-link { font-size: 15px; line-height: 1.5; }
  .av-catalog .av-gift h3,
  .av-price-page .av-gift h3 { font: 700 22px/1.35 'Manrope', sans-serif; }

  .av-price-page .av-brand__word { font-size: 23px; }
  .av-price-page .av-brand__sub { font-size: 10px; line-height: 1.4; letter-spacing: .08em; }
  .av-price-page .av-shell-header { gap: 12px; padding: 12px 16px; padding-top: max(12px, env(safe-area-inset-top)); }
  .av-price-page .av-shell-back { flex: 0 1 145px; min-width: 0; font-size: 13px; line-height: 1.4; min-height: 44px; padding: 8px 12px; white-space: normal; }
  .av-price-page .av-price-intro h1 { font: 700 clamp(28px, 7vw, 34px)/1.25 'Manrope', sans-serif; letter-spacing: -.02em; }
  .av-price-page .av-price-intro p { font-size: 16px; line-height: 1.65; }
  .av-price-page .av-price-intro .av-kicker { font-size: 12px; }
  .av-price-page .av-price-navigation summary { min-height: 44px; display: list-item; font-size: 14px; line-height: 1.5; padding: 11px 0; }
  .av-price-page .av-price-navigation a { min-height: 44px; font-size: 14px; line-height: 1.5; }
  .av-price-page .av-price-subnav a { font-size: 13px; }
  .av-price-page .av-category-title { font: 700 22px/1.35 'Manrope', sans-serif; overflow-wrap: break-word; }
  .av-price-page .av-table { font-size: 14px; line-height: 1.55; }
  .av-price-page .av-table th,
  .av-price-page .av-table td { padding: 14px 9px; }
  .av-price-page .av-table th small { font-size: 12px; line-height: 1.55; }
  .av-price-page .av-table td:last-child { font-size: 14px; font-variant-numeric: tabular-nums; }
  .av-price-page .av-table s { font-size: 12px; }
  .av-price-page .av-table--no-duration th:first-child { width: 66%; }
  .av-price-page .av-table--no-duration th:last-child { width: 34%; }

  /* Separate pages share readable Manrope text and comfortable edge spacing. */
  .av-contact-page,
  .av-legal-page { font-family: 'Manrope', 'Segoe UI', system-ui, sans-serif; font-size: 16px; line-height: 1.65; }
  .av-contact-page header { gap: 12px; padding: 12px 16px; padding-top: max(12px, env(safe-area-inset-top)); }
  .av-contact-page .back { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; flex: none; font-size: 14px; padding: 8px 14px; }
  .av-contact-page main,
  .av-legal-page main { padding: 32px 16px calc(40px + env(safe-area-inset-bottom)); overflow-wrap: break-word; }
  .av-contact-page h1,
  .av-legal-page h1 { font: 700 clamp(26px, 7vw, 32px)/1.3 'Manrope', sans-serif; letter-spacing: -.02em; overflow-wrap: break-word; }
  .av-contact-page .sub { font-size: 16px; line-height: 1.65; margin-bottom: 28px; }
  .av-contact-page .group { font-size: 12px; letter-spacing: .12em; line-height: 1.5; margin-top: 28px; }
  .av-contact-page a.link { flex-wrap: wrap; gap: 4px 12px; padding: 16px; font-size: 16px; line-height: 1.5; }
  .av-contact-page a.link span:last-child { color: #b2bca9; font-size: 13px; white-space: normal; overflow-wrap: anywhere; }
  .av-contact-page a.link.hot span:last-child { color: #3c4a22; }
  .av-contact-page .addr { font-size: 15px; line-height: 1.7; margin-top: 32px; }
  .av-legal-page h1 { margin: 24px 0 18px; }
  .av-legal-page h2 { font: 700 22px/1.4 'Manrope', sans-serif; margin-top: 30px; }
  .av-legal-page main > a:first-child { display: inline-flex; align-items: center; min-height: 44px; }
  .av-contact-page a:focus-visible,
  .av-legal-page a:focus-visible,
  #faq summary:focus-visible,
  .cookie-notice button:focus-visible { outline: 3px solid #efdb9d; outline-offset: 4px; }
}

@media (max-width: 480px) {
  .av-catalog .av-grid,
  .av-price-page .av-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .av-catalog .av-card-photo,
  .av-price-page .av-card-photo { aspect-ratio: 16 / 10; }
  .av-catalog .av-actions,
  .av-price-page .av-actions { grid-template-columns: minmax(0, 1fr); }
  .av-price-page .av-price-navigation > details > ul { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .av-price-page .av-table:not(.av-table--no-duration) th:first-child { width: 47%; }
  .av-price-page .av-table:not(.av-table--no-duration) th:nth-child(2) { width: 22%; }
  .av-price-page .av-table:not(.av-table--no-duration) th:nth-child(3) { width: 31%; }
}
