/* R59 — final public tourism editorial layer: legibility, rhythm, RTL and keyboard.
   Progressive enhancement over the approved R58 type scale; no commercial behavior. */
:root{
  --travel-ink:#193448;
  --travel-muted:#526778;
  --travel-navy:#102946;
  --travel-amber:#b65620;
  --travel-sand:#fff8f1;
  --travel-edge:#dce5ea;
  --travel-shadow:0 16px 42px rgba(16,41,70,.075);
}
html[lang="ar"]{font-optical-sizing:auto;scroll-padding-top:100px}
body{color:var(--travel-ink);line-height:1.85}
:where(h1,h2,h3,h4,h5,h6){font-kerning:normal;letter-spacing:0;text-wrap:balance}
:where(p,small,li,summary,dt,dd){overflow-wrap:break-word}
:where(.hero-copy,.inner-hero,.r51-guide-hero,.r54-explore-hero) h1{font-feature-settings:"kern" 1;line-height:1.4}
:where(.breadcrumbs,.section-label,.eyebrow,.r51-card-kicker,.r54-group-heading){font-family:var(--oasis-body);font-weight:700;letter-spacing:0}
:where(.topline-content,.site-header,.search-panel,.section-heading,.r54-finder-box,.r53-filter){text-rendering:optimizeLegibility}
:where(.section-heading,.r54-finder-box-title)>div{min-width:0}
:where(.section-heading p,.r51-card-summary,.r54-finder-assurance,.r53-result-header small){color:var(--travel-muted)}
/* Consistent travel controls. Keyboard focus remains visible against both light and dark UI. */
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #df894c;outline-offset:3px;border-radius:7px}
:where(.desktop-nav a,.mobile-menu nav a,.more-menu summary,.header-cta){font-family:var(--oasis-body);font-weight:700}
:where(.desktop-nav a,.mobile-menu nav a,.r54-shortcuts a){text-underline-offset:4px}
:where(.btn,.header-cta,button[type="submit"],.mood-filter){font-family:var(--oasis-body);font-weight:700;min-height:44px;line-height:1.55;letter-spacing:0}
:where(.btn,.header-cta,.r54-shortcuts a){transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
@media(hover:hover){:where(.btn,.header-cta):hover{transform:translateY(-2px)}}
:where(.search-input input,.r54-finder-form input,.r54-finder-form select,.r53-filter select,.catalog-filter input,.catalog-filter select){color:#18374a;font-family:var(--oasis-body);min-height:48px;max-width:100%;font-size:16px}
:where(input,select,textarea)::placeholder{color:#536a79;opacity:1}
/* Main hospitality and destination compositions. */
.home-hero .hero-copy{min-width:0}
.hero-copy h1{max-width:15ch;line-height:1.35}
.hero-copy p{max-width:53ch;color:#425c6e}
:where(.home-hero .hero-actions,.r51-invite-actions,.r54-hero-links){display:flex;flex-wrap:wrap;gap:12px}
:where(.destination-card,.r51-guide-card,.catalog-card,.service-card,.r54-finder-card,.r55-compare-card){box-shadow:var(--travel-shadow);border-color:var(--travel-edge)}
:where(.destination-card,.r51-guide-card,.catalog-card,.r54-finder-card){overflow:hidden}
:where(.destination-info,.r51-guide-body,.r54-finder-body){min-width:0}
:where(.destination-info strong,.r51-guide-body strong,.r54-finder-body strong,.service-card h3){line-height:1.55;text-wrap:pretty}
:where(.destination-info>span,.r51-card-summary,.r54-finder-body>span){overflow-wrap:anywhere}
:where(.card-more,.r51-card-footer,.r54-finder-body em,.text-link){font-weight:750;text-decoration-thickness:1px;text-underline-offset:4px}
:where(.r51-guide-card,.r54-finder-card) img{object-fit:cover}
:where(.r53-explorer,.r54-explorer,.destinations-workspace,.r51-editorial-section) .section-heading{gap:18px}
:where(.r53-filter,.r54-finder-box,.catalog-filter){background:#fff;border:1px solid var(--travel-edge);box-shadow:0 9px 28px #1029460b}
:where(.r53-filter,.r54-finder-box,.catalog-filter) label{font-family:var(--oasis-body);font-weight:700}
:where(.r54-finder-form,.r53-filter,.catalog-filter) select{width:100%}
:where(.r54-no-results,.empty-state,.catalog-empty){border-radius:20px;overflow-wrap:anywhere}
/* Disclosure is readable but not part of the primary sales pitch. */
:where(.notice,.r54-scope-notice,.r51-proof){background:var(--travel-sand);border-radius:15px;color:#4e493c;line-height:1.85}
.notice strong{font-family:var(--oasis-display);font-weight:700}
:where(.notice p,.r54-scope-notice p){max-width:75ch}
/* Tables and fact labels keep Arabic and numeric values legible. */
:where(.facts-list dt,.facts-list dd,.estimate-results dt,.estimate-results dd){line-height:1.85}
:where(.facts-list dd,.compare-summary){unicode-bidi:plaintext}
:where(.facts-section,.compare-column){border-color:var(--travel-edge);border-radius:18px}
:where(.faq summary,.mobile-menu summary){cursor:pointer;min-height:44px;align-content:center}
:where(.faq details,.r55-compare-card){border-color:var(--travel-edge)}
.footer-main h3{font-family:var(--oasis-display);font-weight:700}
.footer-main a{font-family:var(--oasis-body);line-height:1.8}
@media(max-width:780px){
 html[lang="ar"]{scroll-padding-top:72px}
 .hero-copy h1{font-size:clamp(32px,8.5vw,49px);line-height:1.37;max-width:15ch}
 .hero-copy p{font-size:16px;line-height:1.85}
 :where(.section-heading h2,.r54-finder-box-title h2){line-height:1.48}
 :where(.mobile-menu nav a){padding-block:13px;min-height:44px;font-size:15px}
 :where(.hero-actions .btn,.r51-invite-actions .btn){white-space:normal;flex:1 1 160px;text-align:center}
 :where(.r54-finder-box,.catalog-filter,.r53-filter){padding:20px}
 :where(.r54-shortcuts a,.mood-filter){line-height:1.6}
}
@media(max-width:420px){
 .hero-copy h1{font-size:clamp(30px,8.3vw,40px)}
 :where(.r51-guide-body,.r54-finder-body){padding:18px}
 :where(.r54-finder-box,.catalog-filter,.r53-filter){padding:16px}
 .search-panel{padding:18px}
}
@media(prefers-reduced-motion:reduce){:where(.btn,.header-cta,.r54-shortcuts a){transition:none!important;transform:none!important}}
@media print{
 :where(.site-header,.footer,.mobile-menu,.topline){display:none!important}
 body{font-family:var(--oasis-body);color:#121f2a}
 :where(.destination-card,.r51-guide-card,.facts-section){box-shadow:none}
}
