/* Shared typography for the public website, reservation, account and assistant. */
:root{--font-body:Arial,Helvetica,sans-serif;--font-heading:Georgia,'Times New Roman',serif;--text-body:16px;--text-ui:14px;--text-caption:12px;--text-heading:28px;--text-title:24px;--text-primary:#2f3130;--text-secondary:#56634d;--text-action:#4f6044;--text-error:#8b2929;--ink:var(--text-primary);--olive:var(--text-action)}
body,#modal,#customerAccount,#accountContent,#calm-panel{font-family:var(--font-body);font-size:var(--text-body);line-height:1.6;color:var(--text-primary)}
button,input,textarea,select{font-family:var(--font-body)}
input,textarea,select,#customerAccount input:not([type=checkbox]),#customerAccount textarea,#customerAccount select,#modal .details-panel input,#modal .details-panel textarea,#calm-panel input,#calm-panel select{font:var(--text-body)/1.5 var(--font-body)!important;color:var(--text-primary)}
/* Reading text is the same size in every journey; headings retain clear hierarchy. */
.hero p,.section-head p,.card p,.step p,details p,.events-section p,.reservation-intro p,.inclusion-tile p,.inclusion-picture p,.inclusion-guide p,.guide-list li,.ritual-sequence p,#modalBody p,#customerAccount p,#customerAccount .account-booking p,#calm-panel p,#calm-panel .calm-results p,#calm-panel .calm-message{font-family:var(--font-body);font-size:var(--text-body);line-height:1.6}
.card p,.step p,.section-head p,.reservation-intro p,.inclusion-tile p,.inclusion-picture p,.inclusion-guide p,.guide-list li,.ritual-sequence p{color:var(--text-secondary)}
#modal .dialog-head h2,#modal .details-panel h3,#customerAccount h2,#calm-panel h2{font:400 var(--text-heading)/1.2 var(--font-heading);letter-spacing:-.025em}
#customerAccount h3,#customerAccount .account-booking h3,#modalBody h3,#calm-panel h3,#calm-panel .calm-results h3{font:400 var(--text-title)/1.25 var(--font-heading);letter-spacing:-.025em}
.inclusion-tile h4,.inclusion-picture h4,.ritual-sequence h4{font:400 20px/1.3 var(--font-heading)}
/* Labels, controls, links and supporting text share one reusable UI scale. */
.btn,.textbtn,.filter,.choice,.navlinks,.meta,.session-length,.inclusion-guide summary,.location-manual>summary,#modal summary,#customerAccount summary,#customerAccount .btn,#customerAccount .textbtn,#customerAccount .booking-actions a,#customerAccount .booking-filters .choice,#customerAccount .account-tabs button,.customer-nav-controls .account-entry,.customer-nav-controls>.btn,#calm-launch,#calm-panel button,#calm-panel nav button,#calm-panel .calm-bottom a,#calm-panel .calm-bottom button{font-family:var(--font-body);font-size:var(--text-ui);line-height:1.45}
.formlabel,#eventForm .formlabel,#modal .details-panel>.formlabel,#customerAccount label,#customerAccount .consent,#calm-panel label,.checkout-account label,.quantity-control label,#modal .location-confirm{font:500 var(--text-ui)/1.5 var(--font-body);color:var(--text-primary)}
.field-help,.muted,.pressure-note,.addon-description,.summary-included,.summary-duration,.inclusion-review,.inclusion-summary,.inclusion-note,.reservation-calendar p,.checkout-account p,.checkout-signin,#modal .detail-intro,#modal .details-panel>.muted,#modal .details-panel>.field-help,#modal .checkout-recap p,#customerAccount .field-help,#customerAccount .account-email,#calm-panel .calm-small,#calm-status,#eventForm .formlabel span{font:var(--text-ui)/1.6 var(--font-body);color:var(--text-secondary)}
.checkout-account .field-help,.checkout-signin .textbtn,#customerAccount .account-bottom .textbtn,#modal .checkout-recap summary{font-size:var(--text-ui)}
.eyebrow,.card-top,.art-caption,.hero-foot,.account-eyebrow,#calm-panel .calm-eyebrow,.booking-topline,#customerAccount .booking-topline,.booking-status,.duration-badge small{font-family:var(--font-body);font-size:var(--text-caption);line-height:1.5}
.hero .eyebrow,.reservation-intro .eyebrow,.included-heading .eyebrow,.illustrated-inclusions .eyebrow{font-size:var(--text-caption)}
#customerAccount .account-identity strong{font:500 var(--text-body)/1.5 var(--font-body)}
#modal .location-optional h3,#modal .details-panel .location-optional h3{font:500 var(--text-body)/1.5 var(--font-body);letter-spacing:0}
#modal .location-optional h3 .muted{font-size:var(--text-ui)}
#customerAccount .booking-payment{color:var(--text-secondary)}
.customer-map-link,#previewBookingLocation,#removeLocation,#modal .location-review a{display:inline-flex;align-items:center;min-height:44px;font:var(--text-ui)/1.45 var(--font-body);color:var(--text-action);text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
#customerAccount .customer-map-link{font:var(--text-ui)/1.45 var(--font-body);color:var(--text-action)}
.requirement-needed,#modal .requirement-needed,#customerAccount [role=alert],.details-error{color:var(--text-error)!important;font:500 var(--text-ui)/1.6 var(--font-body)}
.requirement-ready{color:var(--text-action)!important;font:var(--text-ui)/1.6 var(--font-body)}
.details-steps button{font:var(--text-ui)/1.45 var(--font-body)}.details-steps button>span{font-size:var(--text-caption)}
@media(max-width:380px){.details-steps button{flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;min-height:62px}.details-steps button>span{width:23px;height:23px}.account-toast{white-space:normal;text-align:center}}
