/* Homepage layout: cream navigation above a full-width wildlife photograph. */
body:has(.home-header) { --home-header-height: 88px; }
#main-header.home-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 60;
    height: var(--home-header-height);
    background: var(--color-background, #FAF7EF) !important;
    border: 0;
    box-shadow: 0 1px 0 rgba(84, 32, 6, .08);
}
.site-header-spacer.home-header-spacer {
    display: block !important;
    height: var(--home-header-height);
}
.home-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    height: 100%;
    max-width: 1500px;
    margin: auto;
    padding: 0 clamp(24px, 7.3vw, 110px);
}
.home-header-logo { display: flex; flex: 0 0 130px; align-items: center; height: 100%; }
.home-header-logo img { display: block; width: 130px; height: 82px; object-fit: contain; }
.home-desktop-navigation { display: flex; align-items: center; justify-content: center; gap: clamp(20px, 2vw, 34px); }
.home-navigation-group { position: relative; display: flex; align-items: center; }
.home-navigation-trigger {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 48px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #542006;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.4px;
    line-height: 1.3;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}
.home-navigation-toggle { display: inline-flex; align-items: center; justify-content: center; width: 24px; min-height: 48px; padding: 0; border: 0; background: transparent; color: #542006; cursor: pointer; }
.home-navigation-toggle svg { width: 11px; height: 11px; transition: transform .2s; }
.home-navigation-trigger:hover, .home-navigation-toggle:hover, .home-navigation-toggle[aria-expanded="true"] { color: #464B20; }
.home-navigation-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.home-navigation-dropdown {
    position: absolute;
    top: 100%;
    left: -20px;
    width: 260px;
    padding: 12px 0;
    border-top: 3px solid #CC9138;
    background: #FAF7EF;
    box-shadow: 0 12px 28px rgba(48, 40, 32, .16);
}
.home-navigation-dropdown a {
    display: block;
    padding: 11px 20px;
    color: #542006;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
}
.home-navigation-dropdown a:hover, .home-navigation-dropdown a:focus-visible { background: #E8DFD3; color: #464B20; }
.home-header-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 22px; }
.home-start-planning {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    padding: 11px 19px;
    border: 0;
    background: #542006;
    color: #FFFFFF !important;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1px;
    line-height: 1.3;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
    transition: background .2s;
}
.home-start-planning:hover, .home-start-planning:focus-visible { background: #464B20; }
.home-start-planning svg { width: 15px; height: 15px; }
.home-planning-label-mobile { display: none; }
.home-header .site-language--header {
    position: relative;
    inset: auto;
    z-index: auto;
    flex: 0 0 60px;
    width: 60px;
    min-height: 38px;
    font-family: 'Montserrat', sans-serif;
}
.home-language-display { display: flex; align-items: center; justify-content: center; gap: 7px; height: 38px; color: #542006; font-size: 12px; font-weight: 800; }
#website-language-flag { font-family: 'WildToPeaks Flags', sans-serif; font-size: 19px; line-height: 1; }
.home-header .site-language--header #website-language { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; opacity: 0; box-shadow: none; }
.home-header .site-language--header:focus-within { outline: 2px solid #CC9138; outline-offset: 3px; }
.home-header .site-language--header #language-status.is-error { inset: calc(100% + 12px) 0 auto auto; }
.home-menu-toggle { display: none; align-items: center; justify-content: center; width: 38px; height: 38px; border: 1px solid rgba(84, 32, 6, .18); background: transparent; color: #542006; cursor: pointer; }
.home-menu-toggle svg { width: 22px; height: 22px; }
.home-mobile-overlay { position: fixed; inset: var(--home-header-height) 0 0; z-index: 65; background: rgba(48, 40, 32, .45); }
.home-mobile-navigation { width: min(88vw, 370px); height: 100%; padding: 24px; overflow-y: auto; background: #FAF7EF; color: #542006; }
.home-mobile-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; font-size: 16px; font-weight: 700; }
.home-mobile-heading button { width: 36px; height: 36px; font-size: 30px; line-height: 1; }
.home-mobile-home { display: block; padding: 12px 0; font-size: 14px; font-weight: 600; }
.home-mobile-group { border-top: 1px solid rgba(84, 32, 6, .15); }
.home-mobile-group a { display: block; padding: 10px 0 10px 12px; font-size: 13px; line-height: 1.45; }
.home-mobile-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.home-mobile-group .home-mobile-group-link { flex: 1; padding: 18px 0; font-size: 12px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; text-decoration: none; }
.home-mobile-group-toggle { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(84, 32, 6, .15); background: transparent; color: #542006; cursor: pointer; }
.home-mobile-group-toggle svg { width: 12px; height: 12px; transition: transform .2s; }
.home-mobile-group-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.home-mobile-submenu { padding-bottom: 12px; }
.home-mobile-navigation > .home-start-planning { width: 100%; margin-top: 24px; }
.home-header a:focus-visible, .home-header button:focus-visible, .home-hero-journey:focus-visible { outline: 2px solid #CC9138; outline-offset: 4px; }

.kwa-home .kwa-home-hero.home-reference-hero {
    position: relative;
    display: flex;
    min-height: max(540px, calc(100svh - var(--home-header-height)));
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: #542006;
}
.home-reference-hero .kwa-hero-media { position: absolute; inset: 0; }
.home-reference-hero .kwa-hero-media::after {
    z-index: 1;
    background: linear-gradient(90deg, rgba(0, 0, 0, .42), rgba(0, 0, 0, .18) 52%, rgba(0, 0, 0, .08)), linear-gradient(0deg, rgba(0, 0, 0, .2), transparent 60%);
}
.home-hero-image { position: absolute; inset: 0; width: 100%; max-width: none; height: 100%; object-fit: cover; object-position: center 46%; opacity: 0; transform: scale(1.025); transition: opacity 1.4s ease, transform 10s linear; }
.home-hero-image.is-active { opacity: 1; transform: scale(1.085); }
.home-hero-image--lion { width: 115%; object-position: center 50%; transform: scaleX(-1) scale(1.025); }
.home-hero-image--lion.is-active { transform: scaleX(-1) scale(1.085); }
.home-hero-pattern { position: absolute; inset: 0 0 auto; z-index: 2; height: 64px; background: url('../img/hero/peaks-pattern.svg') repeat-x top left / 156px 64px; opacity: .18; pointer-events: none; mask-image: linear-gradient(#000 45%, transparent); }
.home-hero-content { position: relative; z-index: 3; display: flex; align-items: center; width: 100%; min-height: inherit; max-width: 1500px; margin: 0 auto; padding: 156px clamp(28px, 8.45vw, 126px) 0; }
.kwa-home .home-reference-hero .home-hero-copy { width: 100%; max-width: 760px; padding: 60px 0 84px; text-align: left; }
.kwa-home .home-reference-hero .kwa-hero-welcome {
    max-width: 750px;
    margin: 0;
    color: #FFFFFF;
    font-family: 'Montserrat', sans-serif !important;
    font-size: clamp(44px, 4.25vw, 58px) !important;
    font-weight: 800 !important;
    line-height: 1.04 !important;
    letter-spacing: -1.4px;
    text-transform: uppercase;
    text-wrap: balance;
    text-shadow: 0 2px 16px rgba(0, 0, 0, .15);
}
.kwa-home .home-reference-hero .home-hero-description { max-width: 720px; margin: 14px 0 0; color: #FFFFFF; font-family: 'Montserrat', sans-serif; font-size: 18px !important; font-weight: 400 !important; line-height: 1.4 !important; text-shadow: 0 1px 8px rgba(0, 0, 0, .25); }
.kwa-home .home-reference-hero .home-hero-journey {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 205px;
    min-height: 44px;
    margin-top: 30px;
    padding: 12px 20px;
    border-bottom: 4px solid #CC9138;
    color: #FFFFFF;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 800 !important;
    line-height: 1.3;
    text-transform: uppercase;
    text-decoration: none;
    transition: background .2s, border-color .2s;
}
.home-hero-journey svg { width: 16px; height: 16px; transition: transform .2s; }
.kwa-home .home-reference-hero .home-hero-journey:hover { background: rgba(70, 75, 32, .8); border-color: #FAF7EF; }
.home-hero-journey:hover svg { transform: translateX(3px); }

.home-whatsapp { position: fixed; left: 30px; bottom: 30px; z-index: 55; display: flex; align-items: center; gap: 8px; text-decoration: none; }
.home-whatsapp-icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #25D366; color: #FFFFFF; box-shadow: 0 4px 16px rgba(37, 211, 102, .32); }
.home-whatsapp:hover .home-whatsapp-icon { background: #1EBE5D; }
.home-whatsapp-icon svg { width: 29px; height: 29px; }
.home-whatsapp-label { padding: 11px 13px; border-radius: 3px; background: #FFFFFF; color: #542006; font-size: 11px; box-shadow: 0 3px 14px rgba(0, 0, 0, .12); }
.home-contact-help { position: fixed; right: 26px; bottom: 24px; z-index: 55; color: #542006; }
.home-help-toggle { position: relative; display: inline-flex; min-height: 54px; align-items: center; gap: 10px; border: 0; border-radius: 4px; padding: 0 18px; background: #542006; color: #FFFFFF; box-shadow: 0 4px 18px rgba(0, 0, 0, .24); cursor: pointer; font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.home-help-toggle > svg { width: 22px; height: 22px; }
.home-help-label { white-space: nowrap; }
.home-help-panel { position: absolute; right: 0; bottom: 76px; width: min(300px, calc(100vw - 40px)); padding: 23px; border-top: 4px solid #CC9138; border-radius: 5px; background: #FAF7EF; box-shadow: 0 10px 40px rgba(48, 40, 32, .2); }
.home-help-panel h2 { margin: 0 28px 10px 0; font-family: 'Montserrat', sans-serif; font-size: 17px; font-weight: 700; }
.home-help-panel p { margin: 0 0 15px; font-size: 13px; line-height: 1.6; }
.home-help-panel a { display: block; padding: 10px 0; border-top: 1px solid rgba(84, 32, 6, .15); font-size: 13px; font-weight: 600; }
.home-help-close { position: absolute; top: 13px; right: 12px; width: 28px; height: 28px; font-size: 25px; line-height: 1; }
.home-whatsapp:focus-visible, .home-help-toggle:focus-visible, .home-help-panel a:focus-visible { outline: 2px solid #CC9138; outline-offset: 4px; }

@media (min-width: 1500px) { .home-header-inner { padding-right: 70px; padding-left: 70px; } }
@media (max-width: 1399px) {
    .home-header-inner { padding: 0 28px; gap: 14px; }
    .home-desktop-navigation { gap: 20px; }
    .home-navigation-trigger { font-size: 10px; letter-spacing: .7px; }
    .home-header-actions { gap: 14px; }
    .home-start-planning { padding: 11px 13px; font-size: 10px; }
}
@media (min-width: 1024px) and (max-width: 1199px) {
    .home-desktop-navigation { gap: 15px; }
}
@media (min-width: 1024px) and (max-width: 1099px) {
    .home-header-actions .home-planning-label { display: none; }
    .home-header-actions .home-planning-label-mobile { display: inline; }
}
@media (max-width: 1023px) {
    body:has(.home-header) { --home-header-height: 80px; }
    .home-desktop-navigation { display: none; }
    .home-menu-toggle { display: inline-flex; }
    .home-header-inner { padding: 0 24px; }
    .home-header-logo, .home-header-logo img { width: 115px; flex-basis: 115px; }
    .home-header-logo img { height: 75px; }
    .home-header-actions { gap: 14px; }
    .home-start-planning { min-height: 38px; padding: 11px 18px; font-size: 11px; }
    .kwa-home .home-reference-hero .kwa-hero-welcome { max-width: 690px; font-size: clamp(42px, 6.2vw, 58px) !important; }
    .home-hero-image--lion { width: 100%; }
}
@media (min-width: 1024px) { .home-mobile-overlay { display: none !important; } }
@media (max-width: 639px) {
    body:has(.home-header) { --home-header-height: 76px; }
    .home-header-inner { padding: 0 16px; gap: 12px; }
    .home-header-logo, .home-header-logo img { width: 99px; flex-basis: 99px; }
    .home-header-logo img { height: 70px; }
    .home-header-actions { gap: 10px; }
    .home-header-actions > .home-start-planning { min-height: 36px; padding: 10px; font-size: 10px; letter-spacing: .5px; }
    .home-header-actions > .home-start-planning svg, .home-planning-label { display: none; }
    .home-planning-label-mobile { display: inline; }
    .home-header .site-language--header { flex-basis: 58px; width: 58px; }
    .kwa-home .kwa-home-hero.home-reference-hero { min-height: max(580px, calc(100svh - var(--home-header-height))); }
    .home-hero-image { object-position: 65% center; }
    .home-hero-image--lion { object-position: 45% center; }
    .home-reference-hero .kwa-hero-media::after { background: linear-gradient(90deg, rgba(0, 0, 0, .53), rgba(0, 0, 0, .27)), linear-gradient(0deg, rgba(0, 0, 0, .22), transparent); }
    .home-hero-pattern { height: 55px; background-size: 130px 54px; }
    .home-hero-content { padding: 60px 28px 0; }
    .kwa-home .home-reference-hero .home-hero-copy { padding: 60px 0 100px; }
    .kwa-home .home-reference-hero .kwa-hero-welcome { max-width: 420px; font-size: clamp(34px, 9.4vw, 46px) !important; line-height: 1.08 !important; letter-spacing: -.7px; text-wrap: wrap; }
    .kwa-home .home-reference-hero .home-hero-description { margin-top: 21px; font-size: 15px !important; line-height: 1.5 !important; }
    .kwa-home .home-reference-hero .home-hero-journey { margin-top: 24px; min-width: 192px; font-size: 11px; }
    .home-whatsapp { left: 16px; bottom: 20px; }
    .home-whatsapp-icon { width: 48px; height: 48px; }
    .home-whatsapp-label { display: none; }
    .home-contact-help { right: 20px; bottom: 20px; }
    .home-help-toggle { min-height: 48px; padding: 0 14px; font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
    .home-hero-image, .home-hero-journey, .home-hero-journey svg, .home-start-planning { transition: none; }
    .home-hero-image.is-active { transform: none; }
    .home-hero-image--lion.is-active { transform: scaleX(-1); }
}
