/* Desktop readability pass. Keep phone sizing and display headings independent. */
.service-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 40px; }
@media(max-width:1100px) { .service-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 25px; } }
@media(max-width:800px) {
  .service-row { grid-template-columns: minmax(0, 1fr) 25px; }
  .service-description { grid-column: 1; grid-row: 2; }
  .service-row .arrow { grid-column: 2; grid-row: 1 / 3; }
}
@media (min-width: 801px) {
  .hero-copy, .intro > p:not(.eyebrow), .about-grid p,
  .team-info > p:not(.eyebrow), .contact > p:not(.eyebrow),
  .ritual-content > p:not(.eyebrow) { font-size: 16px; line-height: 1.85; }
  .intro > p:not(.eyebrow) { max-width: 680px; }
  .section-heading > p, .service-description { font-size: 15px; line-height: 1.75; }
  .button, .small, .text-link, .team-info .text-link,
  .location-button, .header nav, .gallery-filters button { font-size: 14px; }
  .header nav { gap: 14px; }
  .header nav a { display: inline-flex; align-items: center; justify-content: center; padding: 8px 11px; border: 0; background: transparent; white-space: nowrap; transition: color 220ms ease; }
  .header nav a:hover, .header nav a:focus-visible { color: var(--gold); }
  .header nav a::after { display: block; left: 11px; right: 11px; bottom: 3px; background: #c3a77570; }
  .header .small { font-size: 13px; gap: 18px; }
  .language-switcher button { font-size: 12px; min-width: 34px; }
  .eyebrow, .team-info .eyebrow { font-size: 12px; letter-spacing: 2px; }
  .hero-bottom, .hero-side { font-size: 11px; }
  .ritual-tags, .visual-label { font-size: 11px; line-height: 1.75; }
  .visual-label { max-width: calc(100% - 70px); }
  .gallery-item > span { font-size: 12px; letter-spacing: 1.3px; line-height: 1.7; gap: 12px; }
  .carousel-status, .service-count { font-size: 12px; }
  .portrait-number, .portrait-note, .about-grid small { font-size: 11px; line-height: 1.7; }
  .location, .footer-bottom { font-size: 12px; }
  #detail:not(.has-service-media) #detail-description,
  #detail.has-service-media #detail-description { font-size: 16px; line-height: 1.85; }
  .booking-note, #detail-extra ol { font-size: 14px; line-height: 1.85; }
  #location-dialog .location-summary, .location-map-status p,
  .location-map-actions p { font-size: 15px; line-height: 1.75; }
  .booking-call small { font-size: 13px; }
  .location-map-actions p { max-width: 390px; }
}
@media (min-width: 1241px) and (max-width: 1440px) {
  .header { padding-inline: 3%; gap: 12px; }
  .header nav { gap: 10px; }
  .header nav a { padding-inline: 9px; }
}
/* Longer translated labels use the existing compact navigation a little earlier. */
@media (min-width: 801px) and (max-width: 1240px) {
  .header nav { display: none; }
  .header .menu-toggle { display: block; }
  .header-actions { margin-left: auto; }
}
