/* Shared language menu: logical insets follow the selected reading direction. */
.site-language.language-control{display:block;z-index:20;transform:translateY(6px);font-size:11px}
.language-trigger{position:relative;display:flex;align-items:center;gap:6px;color:inherit;border:0;background:transparent;padding:1px 4px;min-width:52px;min-height:22px;line-height:1.3}
.site-language .language-trigger svg{width:21px;height:21px;flex:0 0 21px}
.language-trigger::before{content:"";position:absolute;inset:-10px 0}
.language-options{position:absolute;top:100%;inset-inline-end:0;width:160px;margin-top:8px;padding:5px;background:#10100f;border:1px solid #8e774e80;border-radius:6px;box-shadow:0 8px 22px #0007}
.language-options button{display:block;width:100%;min-height:44px;border:0;background:transparent;position:relative;padding:9px 58px 9px 12px;color:var(--text);font-size:13px;text-align:left;border-radius:3px;font-family:Manrope,Cairo,Arial,sans-serif}
.language-options button[aria-pressed=true]{background:#272116;color:#fff0d4}
.language-options button:hover{background:#302719}
.egyptian-citizenship{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12px;line-height:1.8;color:var(--muted);cursor:pointer}
.egyptian-citizenship input{accent-color:var(--gold);flex:0 0 auto;width:16px;height:16px}
/* RTL changes layout order; only Latin identifiers and numbers are isolated LTR. */
[dir=ltr]{unicode-bidi:isolate}
html:is([lang=ar],[lang=arz]){--inline-direction:-1}
html:is([lang=ar],[lang=arz]) body{font-family:Cairo,Tahoma,Arial,sans-serif;direction:rtl}
html:is([lang=ar],[lang=arz]) :is(h1,h2,h3,p,span,button,a,summary,label,legend,small,strong,li){letter-spacing:normal!important;text-transform:none!important}
html:is([lang=ar],[lang=arz]) :is(h1,h2,h3,p,button,label,legend,input,select,textarea,summary){font-family:Cairo,Tahoma,Arial,sans-serif}
html:is([lang=ar],[lang=arz]) :is(h1,h2,h3){line-height:1.65;overflow-wrap:break-word}
html:is([lang=ar],[lang=arz]) :is(p,li,.field span){line-height:1.95}
html:is([lang=ar],[lang=arz]) :is(.tabs,.subtabs,.detail-title,.detail-actions,.detail-layout,.story-layout,.contact-row,.facts,.facts>div,.form-grid,.ride-count-fields,.extra-dialog-heading,.footer-social){direction:rtl}
html:is([lang=ar],[lang=arz]) :is(.story-copy,.tour-description,.contact-copy,.ride-copy,.extra-info-dialog,.field,.enquiry-form,.card-content,.contact-row-text){text-align:start}
html:is([lang=ar],[lang=arz]) .compact-brand{justify-self:start}
html:is([lang=ar],[lang=arz]) .compact-brand-name{direction:ltr;unicode-bidi:isolate;font-family:Manrope,Arial,sans-serif}
html:is([lang=ar],[lang=arz]) .compact-brand-name small{direction:rtl;font-family:Cairo,Tahoma,Arial,sans-serif}
/* Reserve a separate top lane so the language control never overlaps branding or navigation. */
.branded-header,.branded-header.detail-header{direction:ltr;padding-top:60px}
.compact-brand{direction:ltr}
.site-language.language-control{direction:ltr;inset-inline-start:auto;inset-inline-end:16px;top:20px;transform:none}
html:is([lang=ar],[lang=arz]) .language-trigger{direction:ltr}
html:is([lang=ar],[lang=arz]) :is(ul,ol){text-align:start;list-style-position:outside}
html:is([lang=ar],[lang=arz]) .riding-info-list{padding-inline:21px 0}
html:is([lang=ar],[lang=arz]) .riding-info-list li{padding-inline:5px 0}
html:is([lang=ar],[lang=arz]) .extra-info-dialog ul{padding-inline:21px 0}
html:is([lang=ar],[lang=arz]) .tour-welfare-link{text-align:start;padding-inline:4px 0}
html:is([lang=ar],[lang=arz]) .policy-arrow{transform:scaleX(-1)}
html:is([lang=ar],[lang=arz]) .safety-policy-link{text-align:start}
html:is([lang=ar],[lang=arz]) .extra-dialog-heading{align-items:flex-start}
html:is([lang=ar],[lang=arz]) .extra-dialog-close{flex-shrink:0}
html:is([lang=ar],[lang=arz]) .extra-info-dialog{max-height:85svh;overflow:auto;direction:rtl}
html:is([lang=ar],[lang=arz]) .field select{padding-inline:10px 28px}
html:is([lang=ar],[lang=arz]) :is(.gallery,.lightbox,.lightbox-top,.lightbox-stage,.thumbnails){direction:rtl}
html:is([lang=ar],[lang=arz]) :is(.gallery-arrow,#lightbox-prev,#lightbox-next) svg{transform:scaleX(-1)}
html:is([lang=ar],[lang=arz]) .card-arrow{transform:scaleX(-1)}
html:is([lang=ar],[lang=arz]) .tour-card :is(h2,h3){min-height:0;line-height:1.65}
html:is([lang=ar],[lang=arz]) .card-title-lines{white-space:normal}
html:is([lang=ar],[lang=arz]) .card-content{min-width:0}
html:is([lang=ar],[lang=arz]) .field,html:is([lang=ar],[lang=arz]) .detail-title>div{min-width:0}
html:is([lang=ar],[lang=arz]) .home .tab-panel>.subtabs button[role=tab]{white-space:normal!important}
/* Preserve the centered introductions and mirror the contact rows beneath them. */
html:is([lang=ar],[lang=arz]) #panel-contacts .contact-card-body>.contact-row{direction:rtl}
html:is([lang=ar],[lang=arz]) #panel-contacts .contact-card-body>.contact-row>.contact-row-text{text-align:start}
html:is([lang=ar],[lang=arz]) #panel-contacts .contact-card-body>.contact-row>.contact-icon{justify-self:start}
html:is([lang=ar],[lang=arz]) #panel-contacts .contact-group>p.section-promo,
html:is([lang=ar],[lang=arz]) #panel-contacts .reviews-copy.contact-group>p.section-promo{font-family:Cairo,Tahoma,Arial,sans-serif!important;font-size:18px!important;line-height:1.7!important;flex-basis:132px;height:auto;min-height:132px;padding-block:6px 18px}
html:is([lang=ar],[lang=arz]) #panel-contacts .contact-promo-title{font-size:18px!important;font-weight:700!important;line-height:1.7!important}
html:is([lang=ar],[lang=arz]) #panel-contacts .contact-promo-subtitle{font-family:Cairo,Tahoma,Arial,sans-serif!important;font-size:15px!important;line-height:1.9!important;font-weight:400!important}
html:is([lang=ar],[lang=arz]) #panel-contacts :is(.contacts-single>.contact-group,.social-single>.contact-group,.reviews-copy.contact-group){height:auto;min-height:470px}
html:is([lang=ar],[lang=arz]) #panel-contacts .contact-card-body{flex:1;min-height:240px}
@media(max-width:650px){
 html:is([lang=ar],[lang=arz]) .detail-title h1{font-size:26px}
 html:is([lang=ar],[lang=arz]) .detail-actions .btn{white-space:normal;line-height:1.65;padding-inline:12px}
 html:is([lang=ar],[lang=arz]) #panel-contacts .contact-promo-title{font-size:17px!important}
 html:is([lang=ar],[lang=arz]) #panel-contacts .contact-promo-subtitle{font-size:14px!important}
 html:is([lang=ar],[lang=arz]) #panel-contacts .contact-group>p.section-promo,
 html:is([lang=ar],[lang=arz]) #panel-contacts .reviews-copy.contact-group>p.section-promo{font-size:17px!important}
}
/* Keep Latin contact values readable while aligning them under the Arabic labels. */
html:is([lang=ar],[lang=arz]) #panel-contacts .contact-row-text>strong[dir=ltr]{text-align:end}

.language-chevron{display:inline-block;font-family:Arial,sans-serif!important;font-size:18px;line-height:1;transition:transform .15s}
.language-trigger[aria-expanded=true] .language-chevron{transform:rotate(180deg)}
.language-options[hidden]{display:none!important}

/* Keep the picker and brand in the same physical position in every language. */
.language-options{direction:ltr;max-height:calc(100vh - 90px);max-height:calc(100dvh - 90px);overflow-y:auto}
.language-option-icon{position:absolute;right:29px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:22px;height:18px;color:var(--gold);pointer-events:none}
.language-options .language-option-icon svg{display:block;width:22px;height:15px;overflow:hidden}
/* Lay the frame over the flag so subpixel rounding cannot leave a gap. */
.language-options button:not([data-language=ar]) .language-option-icon{right:28px;width:24px;height:17px;overflow:hidden}
.language-options button:not([data-language=ar]) .language-option-icon svg{width:100%;height:100%}
.language-options button:not([data-language=ar]) .language-option-icon::after{content:"";position:absolute;inset:0;border:1px solid #61543c}
.language-options button[data-language=ar] .language-option-icon{right:28px;width:24px;height:24px}
.language-options button[data-language=ar] .language-option-icon svg{width:24px;height:24px}
.language-options button[aria-pressed=true]::after{content:"✓";position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--gold)}
@media (min-width:651px) and (max-width:1050px) and (orientation:portrait){
 .branded-header .tabs{gap:24px;justify-content:space-between}
 .branded-header .tabs button{flex:0 1 auto;min-width:0}
}

/* Shared final spacing and alignment in both languages. */
#panel-contacts .contact-promo-title{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
#panel-form .contact-copy>p.enquiry-booking-copy{text-align:center;margin-inline:auto}
@media (min-width:651px) and (max-width:1366px){
 .site-header.branded-header:not(.detail-header){display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
 .site-header.branded-header .tabs{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:32px!important;width:100%;max-width:none;justify-content:stretch!important;overflow:visible}
 .site-header.branded-header .tabs button[role=tab],.site-header.branded-header .tabs button[role=tab][data-tab=form]{min-width:0;white-space:normal;padding-inline:0!important}
 .site-language.language-control{inset-inline-end:32px;top:20px;font-size:13px}
 .site-language .language-trigger{gap:8px;min-height:28px}
 .site-language .language-trigger svg{width:24px;height:24px;flex-basis:24px}
 .language-options{width:176px}
 .language-options button{font-size:15px;min-height:46px}
}

/* Keep each Arabic label and its value together beside its icon. */
html:is([lang=ar],[lang=arz]) #panel-contacts .contact-row-text{direction:rtl}
html:is([lang=ar],[lang=arz]) #panel-contacts .contact-row-text>small,
html:is([lang=ar],[lang=arz]) #panel-contacts .contact-row-text>strong{display:block;width:100%;text-align:right!important}
#panel-tours .secondary-tour-info .tour-details-note{width:100%;max-width:none;margin-inline:0;text-align:center}
:is(#subpanel-about-welfare,#subpanel-about-boarding) .story-copy>.welfare-opening{display:flex;align-items:flex-start;justify-content:center;gap:8px;white-space:normal;width:100%;max-width:none;height:auto;overflow:visible}
:is(#subpanel-about-welfare,#subpanel-about-boarding) .welfare-opening>.welfare-heart{flex:0 0 20px;margin:4px 0 0}
:is(#subpanel-about-welfare,#subpanel-about-boarding) .welfare-opening-text{min-width:0;max-width:70ch;text-align:center;overflow-wrap:break-word}
@media(max-width:650px){html[lang="en"] :is(#subpanel-about-welfare,#subpanel-about-boarding) .story-copy>.welfare-opening{justify-content:flex-start!important;text-align:left!important;text-wrap:wrap}html[lang="en"] :is(#subpanel-about-welfare,#subpanel-about-boarding) .welfare-opening-text{flex:1;max-width:none;text-align:left!important;text-wrap:wrap}}
html:is([lang=ar],[lang=arz]) .home :is(.tour-card-labels,.extra-card-labels) :is(.eyebrow,.special-experience){font-family:Cairo,Tahoma,Arial,sans-serif;font-size:10px!important;line-height:1.6!important}
html:is([lang=ar],[lang=arz]) .home :is(.card-link,.extra-info-button){font-size:12px}
/* The opaque end overlaps the photo edge to prevent fractional-pixel seams at zoom. */
.home .welcome-photo::after,.home .tour-card .card-photo::after{inset-inline:-2px;bottom:-2px;background:linear-gradient(to bottom,transparent 0%,var(--bg) 88%,var(--bg) 100%);border:0;box-shadow:none;z-index:2;pointer-events:none}
.home .welcome-photo,.home .tour-card .card-photo{isolation:isolate;background:var(--bg)}

/* The detail prompt centers on the complete card row, not the 780px reading column. */
@media(min-width:1051px),(min-width:651px) and (orientation:landscape){
 #panel-tours .secondary-tour-info .tour-overview{width:100%;max-width:none}
 #panel-tours .secondary-tour-info .tour-overview>:not(.tour-details-note){max-width:780px}
 #panel-tours .secondary-tour-info .tour-details-note{width:100%;max-width:none;text-align:center;margin-inline:0}
}

.single-image-gallery .gallery-stage{height:auto;aspect-ratio:1}
.single-image-gallery .main-photo img{object-fit:contain}
body:has(.single-image-gallery) .lightbox-stage{grid-template-columns:minmax(0,1fr)}

/* Portrait phones: headings follow the language reading edge. */
@media(max-width:650px) and (orientation:portrait){html[lang] :is(#subpanel-about-welfare,#subpanel-about-boarding) .story-copy>p.welfare-opening{justify-content:flex-start!important;text-align:start!important}html[lang] :is(#subpanel-about-welfare,#subpanel-about-boarding) .story-copy>p.welfare-opening>.welfare-opening-text{text-align:start!important}}

/* Do not indent continuation lines into the heart's flex column. */
@media(max-width:650px) and (orientation:portrait){
 html[lang="en"] #subpanel-about-welfare .story-copy>p.welfare-opening{display:block!important;text-align:left!important;text-indent:0!important;text-wrap:wrap}
 html[lang="en"] #subpanel-about-welfare .story-copy>p.welfare-opening>.welfare-opening-text{display:inline!important;text-align:left!important;text-indent:0!important}
 html[lang="en"] #subpanel-about-welfare .story-copy>p.welfare-opening>.welfare-heart{display:inline-block;margin:0 7px 0 0;vertical-align:-3px}
}

/* A quiet boarding symbol, without a hanging indent on wrapped headings. */
#subpanel-about-boarding .story-copy>p.welfare-opening:first-child{display:block!important}
#subpanel-about-boarding .story-copy>p.welfare-opening:first-child>.welfare-opening-text{display:inline!important}
#subpanel-about-boarding .boarding-home{display:inline-block;width:20px;height:20px;margin-inline-end:7px;vertical-align:-3px;color:var(--gold)}

/* Only the boarding offer introduction is uppercase, never bold. */
html[lang="en"] #subpanel-about-boarding .story-copy>.welfare-body-lines:first-of-type>.welfare-line:first-child{text-transform:uppercase;font-weight:400!important}

/* German copy wraps within the existing components; case follows English. */
html[lang=de] :is(h1,h2,h3,.nav-label,.policy-label,.card-title-lines,.destination-name){hyphens:auto;overflow-wrap:break-word}
html[lang=de] .site-header.branded-header .tabs button[role=tab],html[lang=de] .home .tab-panel>.subtabs button[role=tab]{white-space:normal!important}
html[lang=de] :is(.detail-actions .btn,.policy-link,.tour-more-info,.extra-info-button){white-space:normal}
html[lang=de] .card-title-lines{white-space:normal}
html[lang=de] .extra-info-dialog{max-height:85svh;overflow:auto}
html[lang=de] .extra-dialog-heading{align-items:flex-start}
html[lang=de] .extra-dialog-close{flex-shrink:0}

/* German introductions use the available row width. */
html[lang=de] #panel-form .contact-copy>p.enquiry-booking-copy{width:100%;max-width:none;text-wrap:wrap}
html[lang=de] #panel-form .enquiry-booking-copy>span{white-space:normal}
html[lang=de] #subpanel-about-overview .story-copy{max-width:none}
html[lang=de] #subpanel-about-overview .story-copy>p{max-width:780px}
html[lang=de] #subpanel-about-overview .story-copy>.heritage-heading{width:100%}
html[lang=de] #subpanel-about-welfare .story-copy{max-width:none}
html[lang=de] #subpanel-about-welfare :is(.welfare-body-lines,.rider-weight-info){max-width:780px}
html[lang=de] #subpanel-about-welfare .story-copy>p.welfare-opening{display:block!important;width:100%;max-width:none;text-align:center!important}
html[lang=de] #subpanel-about-welfare .story-copy>p.welfare-opening>.welfare-opening-text{display:inline!important;max-width:none}
html[lang=de] #subpanel-about-welfare .welfare-mobile-break{display:initial}
@media(max-width:650px){html[lang=de] #subpanel-about-welfare .story-copy>p.welfare-opening,html[lang=de] #subpanel-about-welfare .story-copy>p.welfare-opening>.welfare-opening-text{text-align:start!important}}

/* Keep the German welfare statement left-aligned and the enquiry ending together. */
html[lang=de] #subpanel-about-welfare .story-copy>p.welfare-opening,html[lang=de] #subpanel-about-welfare .story-copy>p.welfare-opening>.welfare-opening-text{text-align:left!important}
html[lang=de] #panel-form .contact-copy>p.enquiry-booking-copy{text-wrap:pretty}

/* Match English emphasis and keep the German welfare statement to two lines. */
html[lang=de] #subpanel-about-boarding .story-copy>.welfare-body-lines:first-of-type>.welfare-line:first-child{text-transform:uppercase;font-weight:400!important}
html[lang=de] #subpanel-about-welfare .story-copy>p.welfare-opening{container-type:inline-size;text-wrap:wrap}
html[lang=de] #subpanel-about-welfare .story-copy>p.welfare-opening>.welfare-opening-text{white-space:nowrap;hyphens:none;overflow-wrap:normal;font-size:clamp(11px,4cqi,15px)}

/* One shared icon-to-text gap in every language and viewport. */
:is(#subpanel-about-welfare,#subpanel-about-boarding) .story-copy>p.welfare-opening{column-gap:0}
:is(#subpanel-about-welfare,#subpanel-about-boarding) .story-copy>p.welfare-opening>:is(.welfare-heart,.boarding-home){margin:0!important;margin-inline-end:7px!important}

/* The animal-search heading always starts at the left edge. */
#subpanel-about-boarding .story-copy>p.boarding-subheading{display:block!important;text-align:left!important}
#subpanel-about-boarding .story-copy>p.boarding-subheading>.welfare-opening-text{display:inline!important;max-width:none;text-align:left!important}

/* Welfare uses one natural line outside portrait phones. */
html[lang=de] #subpanel-about-welfare .welfare-mobile-break{display:none}
html[lang=de] #subpanel-about-welfare .story-copy>p.welfare-opening>.welfare-opening-text{white-space:normal}
@media(max-width:650px) and (orientation:portrait){
 html[lang=de] #subpanel-about-welfare .welfare-mobile-break{display:initial}
 html[lang=de] #subpanel-about-welfare .story-copy>p.welfare-opening>.welfare-opening-text{white-space:nowrap}

}

/* Align the visible outer labels with equal header insets in German. */
html[lang=de] .site-header.branded-header:not(.detail-header) .tabs{display:flex!important;justify-content:space-between!important;width:100%;max-width:100%!important;min-width:0;box-sizing:border-box}
html[lang=de] .site-header.branded-header:not(.detail-header) .tabs button[role=tab],html[lang=de] .site-header.branded-header:not(.detail-header) .tabs button[role=tab][data-tab=form]{flex:0 0 auto!important;width:auto!important;padding-inline:0!important}
@media(max-width:650px){
 html[lang=de] .site-header.branded-header:not(.detail-header) .tabs{gap:clamp(4px,1.2vw,8px)!important}
 html[lang=de] .site-header.branded-header:not(.detail-header) .tabs button[role=tab]>.nav-label{white-space:nowrap;hyphens:none}
}
@media(max-width:350px){html[lang=de] .site-header.branded-header:not(.detail-header) .tabs{--nav-label-size:clamp(10px,3.3vw,12px)}}

/* Equal outer navigation insets in every language, including RTL. */
html:is([lang=en],:is([lang=ar],[lang=arz]),[lang=cs],[lang=de]) .site-header.branded-header:not(.detail-header) .tabs{display:flex!important;justify-content:space-between!important;width:100%;max-width:100%!important;min-width:0;box-sizing:border-box}
html:is([lang=en],:is([lang=ar],[lang=arz]),[lang=cs],[lang=de]) .site-header.branded-header:not(.detail-header) .tabs button[role=tab],html:is([lang=en],:is([lang=ar],[lang=arz]),[lang=cs],[lang=de]) .site-header.branded-header:not(.detail-header) .tabs button[role=tab][data-tab=form]{flex:0 0 auto!important;width:auto!important;padding-inline:0!important}
/* Slightly tighter German labels leave a little more space between buttons. */
html[lang=de] .site-header.branded-header:not(.detail-header) .tabs button[role=tab]>.nav-label{letter-spacing:-.15px}

/* Give long German labels visibly more breathing room on phones. */
@media(max-width:650px){html[lang=de] .site-header.branded-header:not(.detail-header) .tabs{--nav-label-size:clamp(10px,2.9vw,12px);gap:12px!important}}

/* A small reduction from the original navigation width on tablets and desktops. */
@media(min-width:651px){
 html:is([lang=en],:is([lang=ar],[lang=arz]),[lang=cs],[lang=de]) .site-header.branded-header:not(.detail-header) .tabs{width:92%!important;margin-inline:auto!important;justify-content:space-between!important;gap:var(--navigation-gap)!important}
}

/* Landscape phones use the full navigation row for wider, equal gaps. */
@media(orientation:landscape) and (max-height:500px) and (max-width:1050px){
 html:is([lang=en],:is([lang=ar],[lang=arz]),[lang=cs],[lang=de]) .site-header.branded-header:not(.detail-header) .tabs{width:100%!important;justify-content:space-between!important}
}

/* Keep iOS from inflating body copy independently after rotation. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* Landscape phones: put the icon inline and follow the text's reading edge. */
@media(orientation:landscape) and (max-height:500px) and (max-width:1050px){
 html[lang] :is(#subpanel-about-welfare,#subpanel-about-boarding) .story-copy>p.welfare-opening:not(.boarding-subheading){display:block!important;text-align:start!important;text-wrap:wrap}
 html[lang] :is(#subpanel-about-welfare,#subpanel-about-boarding) .story-copy>p.welfare-opening:not(.boarding-subheading)>.welfare-opening-text{display:inline!important;max-width:none;text-align:start!important;white-space:normal!important}
}

/* Keep localized destination lines balanced beneath the brand name. */
html[lang=de] .compact-brand-name>small{font-size:.6em}
html[lang=el] .compact-brand-name>small{font-size:.55em}
@media(max-width:950px){
 html:is([lang=fr],[lang=es]) .compact-brand-name>small{font-size:.6em}
}
html:is([lang=ar],[lang=arz]) .compact-brand-name>small{word-spacing:.5em}

/* Heritage heading follows the reading edge on every device, including portrait phones. */
html[lang] #subpanel-about-overview .story-copy>.heritage-heading{text-align:left}
html:is([lang=ar],[lang=arz]) #subpanel-about-overview .story-copy>.heritage-heading{text-align:right}


/* Allow the expanded contact introduction to wrap without overlapping contacts. */
#panel-contacts .contacts-single>.contact-group{height:auto}
#panel-contacts #contacts-direct-title{flex:0 0 auto;height:auto;min-height:104px}
html:is([lang=ar],[lang=arz]) #panel-contacts #contacts-direct-title{min-height:132px}

/* A quiet separator before German, without enlarging the option spacing. */
.language-options .language-separator{height:0;margin:1px 8px;border:0;border-top:1px solid #8e774e80}
/* Czech text follows the same reading edge and responsive layout as English. */
html[lang=cs] :is(.card-title-lines,.detail-actions .btn,.policy-link,.extra-info-button){white-space:normal;overflow-wrap:break-word}
html[lang=cs] .extra-info-dialog{max-height:85svh;overflow:auto}
html[lang=cs] .extra-dialog-heading{align-items:flex-start}
html[lang=cs] .extra-dialog-close{flex-shrink:0}
html[lang=cs] #panel-form .contact-copy>p.enquiry-booking-copy{width:100%;max-width:none;text-wrap:pretty}
html[lang=cs] #panel-form .enquiry-booking-copy>span{white-space:normal}
html[lang=cs] #subpanel-about-welfare .story-copy>p.welfare-opening{display:block!important;text-align:left!important}
html[lang=cs] #subpanel-about-welfare .welfare-opening-text{display:inline!important;max-width:none;text-align:left!important}
html[lang=cs] #subpanel-about-boarding .story-copy>.welfare-body-lines:first-of-type>.welfare-line:first-child{text-transform:uppercase;font-weight:400!important}
@media(max-width:650px){html[lang=cs] .site-header.branded-header .tabs button[role=tab]>.nav-label{white-space:nowrap}}

/* Czech and English About tabs: equal gaps between natural-width labels, across the full row. */
html:is([lang=cs],[lang=en]) .home #panel-about>.subtabs{display:flex!important;justify-content:space-between!important;grid-template-columns:none!important;width:100%!important;max-width:none!important;gap:clamp(16px,3vw,32px)!important}
html:is([lang=cs],[lang=en]) .home #panel-about>.subtabs>button[role=tab]{flex:0 1 auto!important;width:auto!important;min-width:0;padding-inline:0!important;white-space:normal;justify-content:center}
html:is([lang=cs],[lang=en],[lang=pl],[lang=fr]) .home #panel-about>.subtabs>button[role=tab]>.nav-label{white-space:normal;text-wrap:balance}
html:is([lang=cs],[lang=en]) .home #panel-about>.subtabs>button[role=tab]:first-child{justify-content:flex-start;text-align:left}
html:is([lang=cs],[lang=en]) .home #panel-about>.subtabs>button[role=tab]:last-child{justify-content:flex-end;text-align:right}

/* Center the natural-width About tabs with equal gaps outside portrait phones. */
@media (min-width:651px), (orientation:landscape){
 html[lang] .home #panel-about>.subtabs{
  display:flex!important;justify-content:center!important;
  width:90%!important;max-width:620px!important;margin-inline:auto!important;
  gap:clamp(24px,6vw,68px)!important;
 }
 html[lang] .home #panel-about>.subtabs>button[role=tab]{
  flex:0 1 auto!important;width:auto!important;min-width:0!important;
  padding-inline:0!important;text-align:center;white-space:normal;
 }
 html[lang] .home #panel-about>.subtabs>button[role=tab]>.nav-label{
  white-space:normal;text-wrap:balance;
 }
}

@media (min-width:1051px) and (pointer:fine){
 html[lang] .home #panel-about>.subtabs{
  max-width:820px!important;
  gap:clamp(48px,12vw,136px)!important;
 }
}

/* Give the About tabs a little more room on tablet-sized touch screens. */
@media (min-width:651px) and (max-width:1366px) and (min-height:601px) and (pointer:coarse){
 html[lang] .home #panel-about>.subtabs{
  width:94%!important;max-width:675px!important;
  gap:clamp(24px,6.8vw,76px)!important;
 }
 html[lang] .home #panel-about>.subtabs>button[role=tab]>.nav-label{font-size:16px!important}
}

/* Portrait phones: reserve one line for the German overview label. */
@media(max-width:650px) and (orientation:portrait){
 html[lang=de] .home #panel-about>.subtabs{grid-template-columns:max-content minmax(0,1fr) max-content!important}
 html[lang=de] #subtab-about-overview,html[lang=de] #subtab-about-overview>.nav-label{white-space:nowrap!important;hyphens:none;overflow-wrap:normal}
}

/* The Czech desert card has a forced line break only on portrait phones. */
.czech-desert-mobile-break,.german-social-mobile-break{display:none}
@media(max-width:650px) and (orientation:portrait){.czech-desert-mobile-break,.german-social-mobile-break{display:initial}}
/* German contact tabs use smaller labels and wrap only between whole words. */
html[lang=de] .home #panel-contacts>.subtabs>button[role=tab]>.nav-label{font-size:13px!important;hyphens:none;overflow-wrap:normal;word-break:normal;white-space:normal}
@media(max-width:650px){html[lang=de] .home #panel-contacts>.subtabs>button[role=tab]>.nav-label{font-size:clamp(10px,3vw,12px)!important}}

/* Emphasize the animal-search heading and boarding offer in every language. */
#subpanel-about-boarding .story-copy>p.boarding-subheading>.welfare-opening-text{font-weight:700!important}
#subpanel-about-boarding .story-copy>.welfare-body-lines:first-of-type>.welfare-line:first-child{color:var(--strong)!important}

/* Czech portrait phones: let the contact introduction use the full content width. */
@media(max-width:650px) and (orientation:portrait){
 html[lang=cs] #panel-contacts #contacts-direct-title>.contact-promo-subtitle{display:block;flex:0 0 auto;width:calc(100% + 32px);max-width:none;margin-inline:-16px;text-wrap:balance}
}

/* Keep the Polish and French contact labels readable on narrow portrait screens. */
@media(max-width:650px) and (orientation:portrait){
 html:is([lang=pl],[lang=fr]) .home #panel-contacts>.subtabs{
  grid-template-columns:minmax(0,1.05fr) minmax(0,1.4fr) minmax(0,.6fr)!important;
  gap:8px!important;
 }
 html:is([lang=pl],[lang=fr]) .home #panel-contacts>.subtabs>button[role=tab]{min-width:0!important}
 html:is([lang=pl],[lang=fr]) .home #panel-contacts>.subtabs>button[role=tab]>.nav-label{
  font-size:clamp(11px,3.1vw,13px)!important;
  white-space:normal!important;text-align:center;text-wrap:balance;overflow-wrap:anywhere;
 }
}

@media(max-width:650px) and (orientation:portrait){
 html[lang=fr] .home #panel-about>.subtabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 html[lang=fr] .home #panel-about>.subtabs>button[role=tab]{
  min-width:0!important;
  padding-inline:0!important;
  justify-content:center;
  text-align:center;
 }
 html[lang=fr] .home #panel-about>.subtabs>button[role=tab]>.nav-label{font-size:clamp(10px,3.25vw,13px)!important}
 html[lang=fr] #subtab-about-boarding>.nav-label{inline-size:min-content}
}

/* Align every line of the Welfare opening with the reading edge. */
html[lang] #subpanel-about-welfare .story-copy>p.welfare-opening:first-child{
 display:block!important;
 text-align:start!important;
 text-indent:0!important;
 text-wrap:wrap;
}
html[lang] #subpanel-about-welfare .story-copy>p.welfare-opening:first-child>.welfare-opening-text{
 display:inline!important;
 max-width:none;
 text-align:start!important;
 white-space:normal!important;
}


@media(max-width:650px) and (orientation:portrait){
 html:is([lang=it],[lang=es],[lang=el],[lang=ru]) .home :is(#panel-about,#panel-contacts)>.subtabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 html:is([lang=it],[lang=es],[lang=el],[lang=ru]) .home :is(#panel-about,#panel-contacts)>.subtabs>button[role=tab]{
  min-width:0!important;
  padding-inline:0!important;
  text-align:center;
 }
 html:is([lang=it],[lang=es],[lang=el],[lang=ru]) .home :is(#panel-about,#panel-contacts)>.subtabs .nav-label{
  white-space:normal;
  text-wrap:balance;
 }
}

@media(max-width:650px) and (orientation:portrait){
 html:is([lang=es],[lang=el],[lang=ru]) .site-header.branded-header .tabs{--nav-label-size:clamp(10px,3vw,13px)}
}


@media(max-width:650px) and (orientation:portrait){
 html[lang=ru] #subpanel-about-overview .story-copy>.heritage-heading{
  font-size:clamp(12px,4.2vw,18px)!important;
  white-space:nowrap;
 }
}

/* Desktop boarding and enquiry alignment. */
@media (min-width:651px) and (pointer:fine), (min-width:1367px){
 #subpanel-about-boarding .story-copy>p.welfare-opening:first-child{white-space:nowrap;text-wrap:nowrap}
 #panel-form .contact-copy>:is(p,h2).enquiry-intro{max-width:none;margin-inline:auto;text-align:center}
}

/* Spanish Giza photo and night tours use two lines on tablet and desktop. */
.spanish-giza-golden-wide-break{display:none}
@media (min-width:651px) and (min-height:601px), (min-width:651px) and (pointer:fine){
 html[lang=es] .giza-golden-title-lines .giza-golden-break{display:none}
 .spanish-giza-golden-wide-break{display:revert}
 html[lang=es] #giza-tour-grid .giza-midnight-title-lines .midnight-tablet-break{display:block}
 html[lang=es] #giza-tour-grid h2:has(>.giza-midnight-title-lines){container-type:inline-size}
 html[lang=es] #giza-tour-grid .giza-midnight-title-lines{
  font-size:min(1em,8.3cqi);
  white-space:nowrap;
 }
 html[lang=es] #giza-tour-grid .giza-golden-title{container-type:inline-size}
 html[lang=es] #giza-tour-grid .giza-golden-title-lines{
  font-size:min(1em,9cqi);
  white-space:nowrap;
 }
}

@media(min-width:1051px) and (pointer:fine){
 .site-language .language-trigger{font-size:14px;min-height:29px}
 .site-language .language-trigger svg{width:26px;height:26px;flex-basis:26px}
}

/* Fill the available line before wrapping enquiry copy, in every language and viewport. */
html[lang] #panel-form .contact-copy>p:is(.enquiry-booking-copy,.enquiry-direct-copy){width:100%;max-width:none;text-wrap:wrap;white-space:normal}
html[lang] #panel-form .enquiry-booking-copy>span{display:inline;white-space:normal}

/* Dutch portrait-phone subnavigation: keep each label inside its own column. */
@media (max-width:650px) and (orientation:portrait){
 html[lang=nl] .home :is(#panel-about,#panel-contacts)>.subtabs{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:100%!important;
  gap:8px!important;
 }
 html[lang=nl] .home #panel-about>.subtabs{
  grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr)!important;
 }
 html[lang=nl] .home :is(#panel-about,#panel-contacts)>.subtabs>button[role=tab]{
  width:100%!important;min-width:0!important;
  padding-inline:0!important;
  justify-content:center!important;text-align:center;
  white-space:normal!important;
 }
 html[lang=nl] .home :is(#panel-about,#panel-contacts)>.subtabs>button[role=tab]>.nav-label{
  max-width:100%;min-width:0;
  font-size:clamp(10.5px,3.15vw,12.5px)!important;
  white-space:normal!important;text-wrap:balance;
  word-break:normal;overflow-wrap:normal;hyphens:none;
 }
}

/* Romanian navigation keeps complete words inside separate touch targets. */
@media (max-width:650px) and (orientation:portrait){
 html[lang=ro] .home :is(#panel-about,#panel-contacts)>.subtabs{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:100%!important;gap:8px!important;
 }
 html[lang=ro] .home :is(#panel-about,#panel-contacts)>.subtabs>button[role=tab]{
  width:100%!important;min-width:0!important;padding-inline:0!important;
  white-space:normal!important;text-align:center;justify-content:center!important;
 }
 html[lang=ro] .home :is(#panel-about,#panel-contacts)>.subtabs>button[role=tab]>.nav-label{
  max-width:100%;min-width:0;font-size:clamp(10.5px,3.1vw,12.5px)!important;
  white-space:normal!important;text-wrap:balance;overflow-wrap:normal;word-break:normal;hyphens:none;
 }
 html[lang=ro] #hurghada-tour-grid .localized-title-lines>span,
 html[lang=ro] #giza-tour-grid .card-title-lines{white-space:normal;text-wrap:balance}
}

/* Ukrainian labels retain separate touch targets on narrow portrait screens. */
html[lang=uk] .compact-brand-name>small{font-size:.55em}
@media (max-width:650px) and (orientation:portrait){
 html[lang=uk] .home :is(#panel-about,#panel-contacts)>.subtabs{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:100%!important;gap:8px!important;
 }
 html[lang=uk] .home :is(#panel-about,#panel-contacts)>.subtabs>button[role=tab]{
  width:100%!important;min-width:0!important;padding-inline:0!important;
  white-space:normal!important;text-align:center;justify-content:center!important;
 }
 html[lang=uk] .home :is(#panel-about,#panel-contacts)>.subtabs>button[role=tab]>.nav-label{
  max-width:100%;min-width:0;font-size:clamp(10.5px,3.1vw,12.5px)!important;
  white-space:normal!important;text-wrap:balance;word-break:normal;overflow-wrap:normal;hyphens:none;
 }
 html[lang=uk] #subpanel-about-overview .story-copy>.heritage-heading{
  font-size:clamp(12px,3.8vw,17px)!important;white-space:normal;text-wrap:balance;
 }
 html[lang=uk] #hurghada-tour-grid .localized-title-lines>span,
 html[lang=uk] #giza-tour-grid .card-title-lines{white-space:normal;text-wrap:balance}
}

/* Slovak labels retain separate touch targets on narrow portrait screens. */
html[lang=sk] .compact-brand-name>small{font-size:.55em}
@media (max-width:650px) and (orientation:portrait){
 html[lang=sk] .home :is(#panel-about,#panel-contacts)>.subtabs{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:100%!important;gap:8px!important;
 }
 html[lang=sk] .home :is(#panel-about,#panel-contacts)>.subtabs>button[role=tab]{
  width:100%!important;min-width:0!important;padding-inline:0!important;
  white-space:normal!important;text-align:center;justify-content:center!important;
 }
 html[lang=sk] .home :is(#panel-about,#panel-contacts)>.subtabs>button[role=tab]>.nav-label{
  max-width:100%;min-width:0;font-size:clamp(10.5px,3.1vw,12.5px)!important;
  white-space:normal!important;text-wrap:balance;word-break:normal;overflow-wrap:normal;hyphens:none;
 }
 html[lang=sk] #hurghada-tour-grid .localized-title-lines>span,
 html[lang=sk] #giza-tour-grid .card-title-lines{white-space:normal;text-wrap:balance}
}

/* Hungarian labels retain separate touch targets on narrow portrait screens. */
html[lang=hu] .compact-brand-name>small{font-size:.55em}
@media (max-width:650px) and (orientation:portrait){
 html[lang=hu] .home :is(#panel-about,#panel-contacts)>.subtabs{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:100%!important;gap:8px!important;
 }
 html[lang=hu] .home :is(#panel-about,#panel-contacts)>.subtabs>button[role=tab]{
  width:100%!important;min-width:0!important;padding-inline:0!important;
  white-space:normal!important;text-align:center;justify-content:center!important;
 }
 html[lang=hu] .home :is(#panel-about,#panel-contacts)>.subtabs>button[role=tab]>.nav-label{
  max-width:100%;min-width:0;font-size:clamp(10.5px,3.1vw,12.5px)!important;
  white-space:normal!important;text-wrap:balance;word-break:normal;overflow-wrap:normal;hyphens:none;
 }
 html[lang=hu] #hurghada-tour-grid .localized-title-lines>span,
 html[lang=hu] #giza-tour-grid .card-title-lines{white-space:normal;text-wrap:balance}
}
