/* R19.4 — global readability and contrast pass. Loaded last on customer and admin pages. */
:root{--read-ink:#12384a;--read-muted:#526b77;--read-border:#cbdde5;--read-focus:#f59e0b}

/* Customer typography, controls and long content. */
.customer-app{color:var(--read-ink);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.customer-app :where(h1,h2,h3,h4,h5,h6,p,li,dd,dt,a,button,label,small,strong,span,th,td){overflow-wrap:anywhere}
.customer-app :where(p,li,dd,.content-rich){line-height:1.7}
.customer-app :where(.muted,.field-help,.form-help,.help,.hint,.meta,.note){color:var(--read-muted)}
.customer-app small{font-size:.8125rem;line-height:1.55}
.customer-app label{color:#244b5c;font-size:.875rem;line-height:1.45}
.customer-app :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){color:var(--read-ink);font-size:16px;line-height:1.5}
.customer-app :where(input,select,textarea)::placeholder{color:#657c86;opacity:1}
.customer-app :where(.button,button:not(.profile-trigger):not(.mobile-nav-toggle):not(.gallery-close):not(.gallery-nav)){font-size:.9rem;line-height:1.25;min-height:44px}
.customer-app :where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--read-focus);outline-offset:3px}
.customer-app :where(.alert,.status-banner,.empty-state){font-size:.9375rem;line-height:1.65}
.customer-app :where(.table-wrap,.responsive-table){max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.customer-app table{font-size:.875rem;line-height:1.5}
.customer-app th{font-size:.8125rem;letter-spacing:.02em}
.customer-app td,.customer-app th{vertical-align:top;overflow-wrap:normal;word-break:normal}

/* The catalogue image is dark: all copy must stay light even when older module CSS wins. */
.customer-app .catalog-visual-hero{color:#fff!important;background:#063d55!important}
.customer-app .catalog-visual-hero .catalog-visual-shade{background:linear-gradient(90deg,rgba(2,35,52,.97) 0%,rgba(2,52,70,.88) 50%,rgba(2,57,75,.48) 100%)!important}
.customer-app .catalog-visual-hero .catalog-visual-copy{position:relative;z-index:1}
.customer-app .catalog-visual-hero .eyebrow{color:#9af3e8!important;text-shadow:0 1px 2px rgba(0,0,0,.55)}
.customer-app .catalog-visual-hero h1{color:#fff!important;text-shadow:0 2px 12px rgba(0,0,0,.55)}
.customer-app .catalog-visual-hero :where(.content-rich,.content-rich p,.content-rich li,.content-rich strong,.content-rich a){color:#f3fdff!important;opacity:1!important;text-shadow:0 1px 4px rgba(0,0,0,.55)}
.customer-app .catalog-visual-hero .content-rich{font-size:1rem!important;line-height:1.7!important}

/* Cards, catalogue metadata and account/booking surfaces. */
.customer-app :where(.tour-list-copy,.hotel-list-copy,.transport-list-copy,.boat-trip-copy,.product-copy,.booking-card,.booking-panel,.account-card,.cms-card) p{font-size:.9rem;line-height:1.65}
.customer-app :where(.tour-list-meta span,.tour-tags span,.hotel-list-meta span,.hotel-tags span,.transport-facts span,.boat-trip-meta span,.badge,.status-pill,.chip,.eyebrow){font-size:.75rem;line-height:1.4}
.customer-app :where(.tour-list-card,.hotel-list-card,.transport-card,.boat-trip-card,.product-card,.booking-card,.account-card,.cms-card){border-color:var(--read-border)}
.customer-app :where(.price,.money,.total-price){font-variant-numeric:tabular-nums}
.customer-app .public-topbar{font-size:.75rem;line-height:1.45}
.customer-app .public-footer{font-size:.875rem;line-height:1.65}
.customer-app .public-footer :where(p,a){font-size:.875rem;line-height:1.65}
.customer-app .public-footer :where(p,a,span,strong,h4){overflow-wrap:anywhere}

/* CMS banners and rich content need the same strong contrast and rhythm. */
.customer-app :where(.cms-banner-copy,.cms-popup-copy){overflow-wrap:anywhere}
.customer-app .cms-banner-copy :where(h1,h2,h3,p,strong,a){color:#fff;text-shadow:0 1px 5px rgba(0,0,0,.5)}
.customer-app .content-rich :where(h2,h3,h4){line-height:1.25}
.customer-app .content-rich :where(p,li){font-size:1rem;line-height:1.75}
.customer-app .content-rich :where(img,video,iframe){max-width:100%;height:auto}

/* Admin: readable dense information without making the workspace bulky. */
.admin-app{color:#173746;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.admin-app :where(h1,h2,h3,h4,h5,h6,p,li,dd,dt,a,button,label,small,strong,span,th,td){overflow-wrap:anywhere}
.admin-app :where(p,li,dd,.content-rich){line-height:1.65}
.admin-app :where(.muted,.field-help,.form-help,.help,.hint,.meta,.note){color:#526b77}
.admin-app small{font-size:.75rem;line-height:1.5}
.admin-app label{color:#294b5b;font-size:.8125rem;line-height:1.45}
.admin-app :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){color:#173746;font-size:15px;line-height:1.5}
.admin-app :where(input,select,textarea)::placeholder{color:#687e88;opacity:1}
.admin-app :where(.button,button:not(.admin-sidebar-toggle)){font-size:.8125rem;line-height:1.3;min-height:40px}
.admin-app :where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--read-focus);outline-offset:2px}
.admin-app :where(.table-wrap,.responsive-table){max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.admin-app table{font-size:.84375rem;line-height:1.5}
.admin-app th{font-size:.75rem;line-height:1.4;letter-spacing:.025em}
.admin-app td,.admin-app th{vertical-align:top;overflow-wrap:normal;word-break:normal}
.admin-app :where(.alert,.notice,.empty-state,.status-banner){font-size:.875rem;line-height:1.6}
.admin-app .admin-nav-text{font-size:.84375rem!important;line-height:1.35}
.admin-app .admin-nav-section{font-size:.6875rem;line-height:1.4}
.admin-app .workspace-header small,.admin-app .workspace-status,.admin-app .workspace-footer{font-size:.75rem;line-height:1.5}
.admin-app :where(.kj-rich-status,.kj-rich-foot,.seo-analyzer-status,.seo-hint){font-size:.75rem;line-height:1.5}

@media(max-width:1050px){
 .customer-app .catalog-visual-hero .catalog-visual-shade{background:linear-gradient(90deg,rgba(2,35,52,.97),rgba(2,52,70,.72))!important}
 .customer-app .public-topbar{font-size:.71875rem}
}
@media(max-width:680px){
 .customer-app{font-size:16px}
 .customer-app .catalog-visual-hero h1{font-size:clamp(2rem,10vw,3rem)!important;line-height:1.08!important;letter-spacing:-.035em}
 .customer-app .catalog-visual-hero .content-rich{font-size:.9375rem!important;line-height:1.65!important}
 .customer-app :where(.button,button:not(.profile-trigger):not(.mobile-nav-toggle):not(.gallery-close):not(.gallery-nav)){min-height:46px}
 .customer-app table{font-size:.8125rem}
 .admin-app{font-size:15px}
 .admin-app :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){font-size:16px}
}
@media(prefers-reduced-motion:reduce){.customer-app *,.admin-app *{scroll-behavior:auto!important}}
