/* Homepage redesign (Figma: ARATOURS SA desktop homepage) */
@font-face {
    font-family: 'Lora';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/lora-latin.woff2') format('woff2');
}
@font-face {
    font-family: 'Nunito Sans';
    font-style: normal;
    font-weight: 300 800;
    font-display: swap;
    src: url('../fonts/nunito-sans-latin.woff2') format('woff2');
}

.home-page {
    --home-red: #e63b2a;
    --home-navy: #073048;
    --home-ink: #23323b;
    --home-muted: #5d6468;
    --home-gutter: clamp(16px, 8.33vw, 160px);
    font-family: 'Nunito Sans', sans-serif;
    color: var(--home-ink);
}
.home-page p,
.home-page a,
.home-page span,
.home-page h1,
.home-page h2,
.home-page h3 {
    margin: 0;
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 400;
}

/* Buttons */
.home-btn {
    display: inline-flex;
    line-height: 1.2;
    align-items: center;
    gap: 20px;
    padding: 26px 46px;
    border: 1.5px solid transparent;
    border-radius: 5px;
    color: #fff !important;
    font-size: 23px;
    font-weight: 700 !important;
    white-space: nowrap;
    transition: background-color .2s, border-color .2s;
}
.home-btn img {
    width: 20px;
    height: 20px;
}
.home-btn--primary {
    background: var(--home-red);
    border-color: var(--home-red);
}
.home-btn--primary:hover {
    background: #cc2f1f;
    border-color: #cc2f1f;
}
.home-btn--outline {
    background: rgba(7, 48, 72, .26);
    border-color: rgba(255, 255, 255, .73);
}
.home-btn--outline:hover {
    background: rgba(7, 48, 72, .55);
    border-color: #fff;
}
.home-btn--small {
    gap: 14px;
    padding: 11px 22px;
    font-size: 17px;
}
.home-btn--small img {
    width: 16px;
    height: 16px;
}

/* Navigation */
.home-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 128px;
    padding: 0 var(--home-gutter);
    background: #fff;
}
.home-nav__logo img {
    display: block;
    width: 175px;
    height: 77px;
}
.home-nav__actions {
    display: flex;
    align-items: center;
    gap: 40px;
}
.home-nav__links {
    display: flex;
    gap: 38px;
    margin: 0 168px 0 0;
    list-style: none;
}
.home-nav__links a {
    display: block;
    padding: 10px;
    color: var(--home-ink);
    font-size: 20px;
    line-height: 24px;
}
.home-nav__links a:hover {
    color: var(--home-red);
}

/* Hero */
.home-hero {
    position: relative;
    min-height: 860px;
    padding: 105px var(--home-gutter) 64px;
    overflow: hidden;
    background: var(--home-navy);
}
.home-hero__bg {
    position: absolute;
    inset: -10% 0;
    will-change: transform;
}
.home-hero__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    transform: scale(var(--hero-zoom, 1));
    background: url('../img/photos/private-mercedes-van-swiss-lake-road.jpg') center / cover no-repeat;
}
.home-hero__bg--video::after {
    content: none;
}
.home-hero__video {
    position: absolute;
    z-index: auto;
    inset: 0;
    width: 100%;
    min-width: 0;
    height: 100%;
    min-height: 0; /* style.css gives every <video> a full-screen minimum */
    object-fit: cover;
    transform: scale(var(--hero-zoom, 1));
}
.home-hero::before {
    content: '';
    position: absolute;
    z-index: 1;
    inset: 0;
    /* value from Figma */
    background: linear-gradient(90deg, rgba(0, 43, 67, .854902) 0%, rgba(0, 43, 67, .458824) 55%, rgba(0, 43, 67, 0) 100%);
}
.home-hero__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 34px;
    max-width: 1170px;
}
.home-page .home-hero__title {
    margin: 0;
    color: #fff;
    font-family: 'Lora', serif;
    font-size: 108px;
    line-height: 1.02;
}
.home-hero__text {
    max-width: 1060px;
    color: #fff;
    font-size: 31px;
    line-height: 1.4;
}
.home-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
}

/* Our story */
.home-story {
    display: flex;
    align-items: center;
    gap: 74px;
    padding: 68px var(--home-gutter);
    background: #fff;
}
.home-story__image {
    flex: 0 0 820px;
    max-width: 820px;
    height: 657px;
    overflow: hidden;
    border-radius: 15px;
}
.home-story__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.15);
    will-change: transform;
}
.home-story__content {
    display: flex;
    flex: 1 0 0;
    flex-direction: column;
    gap: 30px;
    min-width: 0;
}
.home-page .home-label {
    color: var(--home-red);
    font-size: 19px;
    font-weight: 700;
    text-transform: uppercase;
}
.home-page .home-heading {
    margin: 0;
    color: var(--home-ink);
    font-family: 'Lora', serif;
    font-size: 62px;
    line-height: 1.08;
}
.home-story__text {
    color: var(--home-muted);
    font-size: 23px;
    line-height: 1.45;
}

/* For travel professionals */
.home-pros {
    padding: 68px var(--home-gutter) 80px;
    background: #1f2932 url('../img/photos/zurich-limmat-old-town-evening.jpg') right top / cover no-repeat;
}
.home-intro {
    display: flex;
    flex-direction: column;
    gap: 25px;
}
.home-page .home-pros__heading {
    line-height: 1.5;
}
.home-intro__text {
    color: var(--home-muted);
    font-size: 23px;
    line-height: 1.5;
}
.home-benefits {
    display: flex;
    gap: 36px;
    margin-top: 25px;
}
.home-benefit {
    flex: 1 0 0;
    text-align: center;
}
.home-benefit .home-icon {
    width: 50px;
    height: 50px;
}
.home-page .home-benefit__title {
    margin: 18px 0;
    color: var(--home-ink);
    font-size: 23px;
    font-weight: 700;
}
.home-benefit__text {
    color: var(--home-muted);
    font-size: 19px;
    line-height: 1.5;
}
/* For travelers */
.home-travelers {
    padding: 68px var(--home-gutter) 44px;
    background: #f5f5f5;
}
.home-link {
    display: inline-flex;
    align-items: center;
    gap: 18px;
    padding-bottom: 4px;
    border-bottom: 1.5px solid var(--home-red);
    color: var(--home-red) !important;
    font-size: 22px;
    font-weight: 700 !important;
}
.home-link img {
    width: 20px;
    height: 20px;
    transition: transform .2s;
}
.home-link:hover img {
    transform: translateX(4px);
}

/* Travel brands */
.home-brands {
    padding: 68px var(--home-gutter) 44px;
    background: #fff;
}

/* Our partners */
.home-partners {
    padding: 59px var(--home-gutter) 85px;
    background: #ededed;
    text-align: center;
}
.home-partners__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 32px 64px;
    margin-top: 57px;
}
.home-partners__list img {
    display: block;
    max-width: none;
}

/* Brand band */
.home-band {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 60px;
    min-height: 109px;
    padding: 24px 118px;
    background: #081218;
}
.home-band__logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 24px 60px;
}
.home-band img {
    display: block;
    max-width: none;
    opacity: .85;
    transition: opacity .2s;
}
.home-band a:hover img {
    opacity: 1;
}

/* Footer */
.home-footer {
    padding: 40px var(--home-gutter) 101px;
    background: #000a11;
    color: #fff;
}
.home-footer__container {
    max-width: 1440px;
    margin: 0 auto;
}
.home-footer__logo {
    display: block;
    width: 175px;
    height: 78px;
}
.home-footer__columns {
    display: flex;
    flex-wrap: wrap;
    gap: 24px 60px;
    margin-top: 24px;
}
.home-footer__col {
    display: flex;
    flex-direction: column;
    width: 264px;
}
.home-footer__col--wide {
    width: 324px;
}
.home-page .home-footer p,
.home-page .home-footer a {
    color: #fff;
    font-size: 14px;
    line-height: 1.5;
}
.home-page .home-footer a {
    margin-top: 4px;
}
.home-page .home-footer a:hover {
    color: var(--home-red);
}
.home-page .home-footer__title {
    margin-bottom: 4px;
    font-weight: 700;
}
.home-page .home-footer__title--lg {
    font-size: 16px;
}
.home-page .home-footer__title--spaced {
    margin-top: 12px;
}
.home-footer__social {
    display: flex;
    gap: 12px;
}
.home-page .home-footer__social a {
    margin-top: 4px;
    opacity: .9;
    transition: opacity .2s;
}
.home-page .home-footer__social a:hover {
    opacity: 1;
}
.home-footer__social img {
    display: block;
}
.home-footer__legal {
    display: flex;
    gap: 24px;
}
.home-page .home-footer__legal a,
.home-page .home-footer a.home-footer__plain {
    margin-top: 0;
}
.home-footer__credits {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px 24px;
    margin-top: 24px;
    padding-top: 32px;
    border-top: 1px solid rgba(255, 255, 255, .2);
}

/* Responsive */
@media (max-width: 1599px) {
    .home-nav__links { margin-right: 40px; }
    .home-page .home-hero__title { font-size: 84px; }
    .home-hero__text { font-size: 26px; }
    .home-story__image { flex-basis: 50%; max-width: 50%; height: auto; aspect-ratio: 820 / 657; }
    .home-page .home-heading { font-size: 52px; }
    .home-story__text { font-size: 20px; }
    .home-link { font-size: 19px; }
    .home-band { padding: 24px var(--home-gutter); }
    .home-band__logos { gap: 24px 32px; }
}
@media (max-width: 1199px) {
    .home-nav__logo img { width: 140px; height: 62px; }
    .home-nav__actions { gap: 20px; }
    .home-nav__links { gap: 10px; margin-right: 0; }
    .home-nav__links a { font-size: 18px; }
    .home-btn { padding: 20px 32px; font-size: 20px; }
    .home-btn--small { padding: 11px 20px; font-size: 16px; }
    .home-hero { min-height: 0; padding-top: 80px; }
    .home-page .home-hero__title { font-size: 64px; }
    .home-hero__text { font-size: 22px; }
    .home-story { flex-direction: column; gap: 40px; }
    .home-story__image { flex-basis: auto; max-width: 100%; width: 100%; }
    .home-intro__text { font-size: 20px; }
    .home-page .home-benefit__title { font-size: 20px; }
    .home-benefit__text { font-size: 17px; }
    .home-band { padding: 32px var(--home-gutter); }
    }
@media (max-width: 767px) {
    .home-nav { flex-wrap: wrap; padding-top: 12px; padding-bottom: 12px; }
    .home-nav__logo img { width: 120px; height: 53px; }
    .home-nav__links { display: none; }
    .home-hero { padding-top: 56px; padding-bottom: 48px; }
    .home-hero__content { gap: 24px; }
    .home-page .home-hero__title { font-size: 42px; }
    .home-hero__text { font-size: 18px; }
    .home-hero__actions { gap: 16px; }
    .home-btn { justify-content: center; width: 100%; padding: 16px 24px; font-size: 18px; }
    .home-btn--small { width: auto; padding: 9px 14px; font-size: 15px; }
    .home-story { padding-top: 48px; padding-bottom: 48px; gap: 28px; }
    .home-story__content { gap: 20px; }
    .home-page .home-label { font-size: 16px; }
    .home-page .home-heading { font-size: 36px; }
    .home-story__text { font-size: 17px; }
    .home-pros { padding-top: 48px; padding-bottom: 48px; }
    .home-intro { gap: 16px; }
    .home-page .home-pros__heading { line-height: 1.2; }
    .home-heading br { display: none; }
    .home-travelers,
    .home-brands { padding-top: 48px; padding-bottom: 48px; }
    .home-partners { padding-top: 48px; padding-bottom: 56px; }
    .home-partners__list { gap: 28px 36px; margin-top: 36px; }
    .home-band__logos { gap: 24px 32px; }
    .home-footer { padding-bottom: 48px; }
    .home-footer__col,
    .home-footer__col--wide { width: 100%; }
    .home-intro__text { font-size: 17px; }
    .home-benefits { flex-direction: column; gap: 28px; margin-top: 32px; }
    .home-page .home-benefit__title { margin: 10px 0 6px; font-size: 19px; }
    .home-benefit__text { font-size: 16px; }
    .home-link { gap: 12px; font-size: 17px; }
}

/* ------------------------------------------------------------------
   Motion
   Interactions below work without JS; reveal animations only run when
   <html> has .home-anim (set inline unless prefers-reduced-motion).
------------------------------------------------------------------- */
:root {
    --home-ease: cubic-bezier(.16, 1, .3, 1);
}

/* Scroll progress */
.home-progress {
    position: fixed;
    z-index: 100;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #e63b2a, #f8b019);
    transform: scaleX(var(--home-progress, 0));
    transform-origin: left;
    pointer-events: none;
}

/* Sticky navigation */
.home-page {
    --home-nav-h: 112px;
    padding-top: var(--home-nav-h);
}
.home-nav {
    position: fixed;
    z-index: 50;
    top: 0;
    right: 0;
    left: 0;
    height: var(--home-nav-h);
    transition: height .5s var(--home-ease), background-color .5s, box-shadow .5s;
}
@media (max-width: 1199px) {
    .home-page { --home-nav-h: 90px; }
}
@media (max-width: 767px) {
    .home-page { --home-nav-h: 77px; }
}
.home-nav__logo img {
    transition: width .5s var(--home-ease), height .5s var(--home-ease);
}
.home-nav.is-scrolled {
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 10px 40px rgba(7, 48, 72, .1);
    -webkit-backdrop-filter: blur(16px) saturate(1.6);
    backdrop-filter: blur(16px) saturate(1.6);
}
@media (min-width: 1200px) {
    .home-nav.is-scrolled { height: 80px; }
    .home-nav.is-scrolled .home-nav__logo img { width: 136px; height: 60px; }
}
.home-nav__links a {
    position: relative;
}
.home-nav__links a::after {
    content: '';
    position: absolute;
    right: 10px;
    bottom: 4px;
    left: 10px;
    height: 2px;
    background: var(--home-red);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .45s var(--home-ease);
}
.home-nav__links a:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}

/* Buttons: arrow nudge + light sweep */
.home-btn {
    position: relative;
    overflow: hidden;
    transition: background-color .3s, border-color .3s, transform .4s var(--home-ease), box-shadow .4s;
}
.home-btn img,
.home-link img {
    transition: transform .4s var(--home-ease);
}
.home-btn:hover img,
.home-link:hover img {
    transform: translateX(6px);
}
.home-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(0, 0, 0, .18);
}
.home-btn::after {
    content: '';
    position: absolute;
    top: 0;
    left: -75%;
    width: 50%;
    height: 100%;
    background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .35), transparent);
    transform: skewX(-20deg);
    pointer-events: none;
}
.home-btn:hover::after {
    left: 130%;
    transition: left .8s var(--home-ease);
}
.home-link {
    background: linear-gradient(var(--home-red), var(--home-red)) left bottom / 0 1.5px no-repeat;
    transition: background-size .5s var(--home-ease);
}
.home-link:hover {
    background-size: 100% 1.5px;
}

.home-benefit .home-icon {
    transition: transform .6s var(--home-ease);
}
.home-benefit:hover .home-icon {
    transform: translateY(-6px) scale(1.15);
}
.home-band__logos img {
    transition: transform .4s var(--home-ease), opacity .3s;
}
.home-band__logos a:hover img {
    transform: translateY(-3px);
}

/* Header hides on scroll down, returns on scroll up */
.home-anim .home-nav {
    background: rgba(255, 255, 255, calc(1 - var(--home-nav-glass, 0) * .16));
    box-shadow: 0 10px 40px rgba(7, 48, 72, calc(var(--home-nav-glass, 0) * .1));
    -webkit-backdrop-filter: blur(16px) saturate(1.6);
    backdrop-filter: blur(16px) saturate(1.6);
    transition: none;
}
.home-anim .home-nav__logo img {
    transition: none;
}

/* Hero: nothing flashes before the intro timeline starts */
.home-anim .home-hero__title,
.home-anim .home-hero__text,
.home-anim .home-hero__actions,
.home-anim .home-hero__bg {
    visibility: hidden;
}
.home-hero {
    z-index: 1;
    transform-origin: 50% 0;
}
.home-page > section:not(.home-hero),
.home-band,
.home-footer {
    position: relative;
    z-index: 2;
}

/* Split text */
.home-word {
    display: inline-block;
    overflow: hidden;
    padding: 0 .02em .14em;
    margin: 0 -.02em -.14em;
    vertical-align: top;
}
.home-char {
    display: inline-block;
    transform-origin: 50% 100%;
    will-change: transform;
}
.home-page .home-word,
.home-page .home-char {
    font: inherit;
    color: inherit;
}

/* Custom cursor (fine pointers only, added by JS) */
.home-cursor,
.home-cursor-ring {
    position: fixed;
    z-index: 200;
    top: 0;
    left: 0;
    border-radius: 50%;
    pointer-events: none;
}
.home-cursor {
    width: 8px;
    height: 8px;
    margin: -4px 0 0 -4px;
    background: #e63b2a;
}
.home-cursor-ring {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: -22px 0 0 -22px;
    border: 1.5px solid rgba(230, 59, 42, .6);
    transition: width .45s var(--home-ease), height .45s var(--home-ease), margin .45s var(--home-ease),
        background-color .45s, border-color .45s;
}
.home-cursor-ring.is-link {
    width: 70px;
    height: 70px;
    margin: -35px 0 0 -35px;
    background: rgba(230, 59, 42, .12);
    border-color: transparent;
}
.home-cursor-ring.is-card {
    width: 120px;
    height: 120px;
    margin: -60px 0 0 -60px;
    /* the ring lives on <body>, outside .home-page where --home-red is defined */
    background: #e63b2a;
    border-color: #e63b2a;
}
.home-cursor.is-hidden,
.home-cursor-ring.is-hidden {
    opacity: 0;
}

/* Keep moving pieces from causing sideways scroll (clip keeps the sticky header working) */
.home-page {
    overflow-x: clip;
}
.home-partners,
.home-footer {
    overflow: hidden;
}

/* Lenis smooth scroll */
html.lenis,
html.lenis body {
    height: auto;
}
.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}
.lenis.lenis-stopped {
    overflow: hidden;
}

/* Touch screens: the hero stays put with sticky instead of a JS pin (see setupSheetScroll) */
.home-hero.home-hero--sticky {
    position: sticky;
    top: 0;
}

/* Hero shade: darkens progressively while scrolling (cheaper than a filter) */
.home-hero__shade {
    position: absolute;
    z-index: 1;
    inset: 0;
    background: #01111b;
    opacity: 0;
    pointer-events: none;
}

/* Icons drawn inline as SVG keep their exported size */
svg.home-icon {
    display: inline-block;
    overflow: visible;
}

/* Partner logos are links */
.home-partners__list a {
    display: block;
}
.home-partners__list a img {
    transition: transform .45s var(--home-ease);
}
.home-partners__list a:hover img {
    transform: scale(1.12);
}

/* Hero fits the first screen on every device, so its buttons are visible when the page opens */
.home-hero {
    display: flex;
    align-items: center;
    min-height: calc(100vh - var(--home-nav-h));
    min-height: calc(100svh - var(--home-nav-h));
    padding-top: clamp(24px, 6vh, 105px);
    padding-bottom: clamp(24px, 5vh, 64px);
}
.home-hero__content {
    gap: clamp(12px, 3vh, 34px);
}
.home-page .home-hero__title {
    font-size: min(108px, 6.6vw, 10vh);
}
.home-hero__text {
    font-size: min(31px, 2.2vw, 3.2vh);
}
.home-hero__actions .home-btn {
    gap: 16px;
    padding: clamp(11px, 1.7vh, 17px) clamp(22px, 2.4vw, 34px);
    font-size: min(19px, 2.2vh);
}
@media (max-width: 767px) {
    .home-page .home-hero__title { font-size: min(42px, 10.6vw, 5.4vh); }
    .home-hero__text { font-size: min(18px, 4.4vw, 2.2vh); }
    .home-hero__actions { gap: 10px; }
    .home-hero__actions .home-btn { padding: clamp(10px, 1.6vh, 14px) 18px; font-size: min(16px, 2vh); }
}

/* Floating call-to-action pill */
.home-float-cta {
    position: fixed;
    z-index: 60;
    bottom: 24px;
    left: 50%;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 16px 40px rgba(7, 48, 72, .18), 0 0 0 1px rgba(7, 48, 72, .06);
    -webkit-backdrop-filter: blur(14px) saturate(1.5);
    backdrop-filter: blur(14px) saturate(1.5);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 140%);
    transition: transform .6s var(--home-ease), opacity .4s;
}
.home-float-cta.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0);
}
.home-page .home-float-cta a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 24px;
    border-radius: 999px;
    font-size: 17px;
    font-weight: 700;
    white-space: nowrap;
    transition: background-color .25s, color .25s;
}
.home-page .home-float-cta__link {
    color: var(--home-ink);
}
.home-page .home-float-cta__link:hover {
    background: rgba(7, 48, 72, .06);
    color: var(--home-ink);
}
.home-page .home-float-cta__primary {
    background: var(--home-red);
    color: #fff;
}
.home-page .home-float-cta__primary:hover {
    background: #cc2f1f;
    color: #fff;
}
.home-float-cta__primary img {
    width: 16px;
    height: 16px;
    transition: transform .4s var(--home-ease);
}
.home-float-cta__primary:hover img {
    transform: translateX(4px);
}
@media (max-width: 767px) {
    .home-float-cta { bottom: 12px; width: calc(100% - 24px); justify-content: space-between; }
    .home-page .home-float-cta a { flex: 1; justify-content: center; padding: 12px 10px; font-size: 15px; }
    .home-float-cta__primary img { display: none; }
}

/* Hero headline lines (each line moves as one piece on scroll) */
.home-hero__line {
    display: block;
}
.home-page .home-hero__line {
    font: inherit;
    color: inherit;
}

/* ------------------------------------------------------------------
   Type scale – calmer sizes than the 1920px Figma canvas
------------------------------------------------------------------- */
@media (min-width: 768px) {
    .home-nav__links a { font-size: 17px; }
    .home-page .home-hero__title { font-size: min(88px, 6vw, 9.4vh); }
    .home-hero__text { max-width: 860px; font-size: min(22px, 1.6vw, 2.6vh); }
    .home-page .home-label { font-size: 15px; letter-spacing: .04em; }
    .home-page .home-heading { font-size: 50px; }
    .home-story__text { font-size: 18px; line-height: 1.6; }
    .home-intro__text { font-size: 18px; }
    .home-page .home-benefit__title { font-size: 20px; }
    .home-benefit__text { font-size: 16px; }
    .home-link { font-size: 17px; }
}
@media (min-width: 768px) and (max-width: 1599px) {
    .home-nav__links a { font-size: 16px; }
    .home-hero__text { font-size: min(20px, 1.6vw, 2.6vh); }
    .home-page .home-label { font-size: 14px; }
    .home-page .home-heading { font-size: 44px; }
    .home-story__text,
    .home-intro__text { font-size: 17px; }
    .home-page .home-benefit__title { font-size: 19px; }
    .home-benefit__text { font-size: 15px; }
    .home-link { font-size: 16px; }
}
@media (min-width: 768px) and (max-width: 1199px) {
    .home-page .home-heading { font-size: 38px; }
}
@media (max-width: 767px) {
    .home-page .home-label { font-size: 13px; letter-spacing: .04em; }
    .home-page .home-heading { font-size: 32px; }
    .home-story__text,
    .home-intro__text { font-size: 16px; }
    .home-page .home-benefit__title { font-size: 18px; }
    .home-benefit__text { font-size: 15px; }
    .home-link { font-size: 15px; }
}

/* Footer (updated design): uppercase column titles, link columns, centred grey credits */
.home-page .home-footer__title {
    margin-bottom: 8px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.home-page .home-footer__title--lg {
    font-size: 13px;
}
.home-page .home-footer__title--spaced {
    margin-top: 18px;
}
.home-page .home-footer p,
.home-page .home-footer a {
    font-size: 15px;
    line-height: 1.55;
}
.home-page .home-footer a {
    margin-top: 6px;
}
.home-page .home-footer a.home-footer__plain {
    margin-top: 0;
}
.home-page .home-footer a.home-footer__underline {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}
.home-footer__columns {
    gap: 24px 0;
}
.home-footer__col {
    width: 206px;
}
.home-footer__col--wide {
    width: 401px;
}
.home-footer__social {
    gap: 14px;
    margin-top: 4px;
}
.home-footer__credits {
    justify-content: center;
    margin-top: 28px;
}
.home-page .home-footer__credits p {
    color: rgba(255, 255, 255, .5);
    font-size: 14px;
}
@media (max-width: 767px) {
    .home-footer__col,
    .home-footer__col--wide { width: 50%; }
    .home-footer__col--wide { width: 100%; }
}

/* ------------------------------------------------------------------
   Homepage (updated design): story with stats, brand feature panels,
   independent travellers, other services, partner strip
------------------------------------------------------------------- */
:root {
    --home-gold: #c9ac6a;
}
.home-page .home-label--spaced {
    font-weight: 400;
    letter-spacing: .14em;
}
.home-page .home-label--lg {
    font-size: 34px;
    font-weight: 400;
}

/* Section labels (OUR STORY, OTHER SERVICES…) at the size used in the design */
.home-page .home-label:not(.home-label--lg) {
    font-size: 20px;
}
@media (max-width: 767px) {
    .home-page .home-label:not(.home-label--lg) { font-size: 16px; }
}

/* No focus ring on links and buttons (logo, nav links, cards…) */
.home-page a:focus,
.home-page a:focus-visible,
.home-page button:focus,
.home-page button:focus-visible {
    outline: none;
    box-shadow: none;
}

/* No header on the homepage: the logo sits on the hero */
.home-page--bare {
    --home-nav-h: 0px;
}
.home-hero__logo {
    position: absolute;
    z-index: 3;
    top: 56px;
    left: var(--home-gutter);
}
.home-hero__logo img {
    display: block;
    width: 245px;
    height: auto;
}
.home-page .home-hero__logo--dark {
    position: static;
    display: inline-block;
    margin-bottom: 56px;
}

/* Our story */
.home-about {
    padding: 100px var(--home-gutter) 110px;
    background: #fff;
}
.home-about__top {
    display: grid;
    grid-template-columns: minmax(0, 9fr) minmax(0, 11fr);
    gap: 40px 80px;
}
.home-about__intro {
    display: flex;
    flex-direction: column;
    gap: 30px;
}
.home-about__text {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.home-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 32px 40px;
    margin-top: 50px;
}
.home-stat {
    padding-top: 18px;
    border-top: 1.5px solid #e1e3e4;
}
.home-page .home-stat__value {
    color: var(--home-ink);
    font-family: 'Lora', serif;
    font-size: 30px;
    line-height: 1.2;
}
.home-stat__label {
    margin-top: 14px !important;
    color: var(--home-muted);
    font-size: 18px;
}

/* For travel professionals (dark) */
.home-pros {
    padding: 0;
    color: #fff;
}
.home-pros__intro {
    padding: 160px var(--home-gutter) 80px;
}
.home-page .home-pros .home-heading,
.home-page .home-pros .home-benefit__title {
    color: #fff;
}
.home-pros .home-intro__text,
.home-pros .home-benefit__text {
    color: rgba(255, 255, 255, .78);
}
.home-pros .home-benefits {
    margin-top: 40px;
}
.home-page .home-pros .home-benefit__title {
    font-family: 'Lora', serif;
}

.home-feature {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 80px;
    padding: 130px var(--home-gutter);
    border-top: 1px solid rgba(255, 255, 255, .06);
}
.home-feature--alpexcursion {
    /* values from Figma */
    background: linear-gradient(0deg, rgba(18, 32, 42, .4), rgba(18, 32, 42, .4)),
        linear-gradient(0deg, rgba(170, 184, 211, .37), rgba(170, 184, 211, .37));
}
.home-feature--premium {
    /* value from Figma */
    background: rgba(54, 82, 103, .42);
}
.home-feature__media {
    overflow: hidden;
    border-radius: 15px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .25);
}
.home-feature__image {
    display: block;
    width: 100%;
    aspect-ratio: 820 / 520;
    object-fit: cover;
}
.home-feature__logo {
    display: block;
    width: auto;
    max-width: 100%;
    height: 80px;
}
.home-page .home-feature__title {
    margin: 48px 0 32px;
    color: #fff;
    font-family: 'Lora', serif;
    font-size: 44px;
    line-height: 1.45;
}
.home-page .home-feature__accent {
    color: var(--home-gold);
    font: inherit;
}
/* style.css sizes every <video> to the full screen and fixes it on phones (old homepage background video) */
video.home-feature__image {
    position: static;
    z-index: auto;
    min-width: 0;
    min-height: 0;
    height: auto;
}
.home-feature__aside {
    min-width: 0;
}
.home-page .home-feature__catalog {
    gap: 10px;
    margin-top: 20px;
}
.home-feature__catalog img {
    width: 18px;
    height: 18px;
}
.home-page .home-feature__catalog:hover img {
    transform: none;
}
.home-feature__text {
    max-width: 680px;
    color: rgba(255, 255, 255, .78);
    font-size: 19px;
    line-height: 1.8;
}
.home-feature__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 20px 32px;
    margin-top: 40px;
}
.home-page .home-link--light {
    border-color: #fff;
    background-image: linear-gradient(#fff, #fff);
    color: #fff !important;
    font-weight: 400 !important;
}
.home-page .home-link--gold {
    border-color: var(--home-gold);
    background-image: linear-gradient(var(--home-gold), var(--home-gold));
    color: var(--home-gold) !important;
    font-weight: 400 !important;
}
.home-page .home-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 32px 8px 22px;
    border: 1.5px solid rgba(255, 255, 255, .7);
    border-radius: 999px;
    color: #fff;
    font-size: 15px;
    transition: background-color .3s, border-color .3s;
}
.home-page .home-pill:hover {
    background: rgba(255, 255, 255, .12);
    border-color: #fff;
    color: #fff;
}
.home-pill img {
    width: 18px;
    height: 18px;
}

.home-together {
    /* value from Figma */
    background: rgba(255, 255, 255, .04);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 32px 150px;
    padding: 150px var(--home-gutter) 130px;
}
.home-page .home-together__title {
    color: #fff;
    font-family: 'Lora', serif;
    font-size: 44px;
}
.home-together__text {
    max-width: 880px;
    margin-top: 28px !important;
    color: rgba(255, 255, 255, .78);
    font-size: 18px;
    line-height: 1.55;
}
.home-page .home-together__btn {
    padding: 18px 72px;
    font-size: 19px;
    font-weight: 400 !important;
}

/* For independent travellers */
.home-travelers {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 60px 120px;
    padding: 180px var(--home-gutter) 136px;
}
.home-travelers__media {
    overflow: hidden;
    border-radius: 15px;
}
.home-travelers__image {
    display: block;
    width: 100%;
    aspect-ratio: 726 / 464;
    object-fit: cover;
}
.home-services {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 40px;
    margin-top: 44px;
}
.home-services--pair {
    display: flex;
    flex-wrap: wrap;
    gap: 32px 80px;
}
.home-service__logo {
    display: block;
    width: 240px;
    max-width: 100%;
    height: 44px;
    object-fit: contain;
    object-position: left center;
}
.home-service__text {
    margin: 20px 0 14px !important;
    color: var(--home-muted);
    font-size: 16px;
    line-height: 1.5;
}
.home-page .home-service .home-link {
    font-weight: 400 !important;
}

/* Other services */
.home-brands {
    padding: 100px var(--home-gutter) 100px;
}
.home-brands .home-intro {
    gap: 22px;
}
.home-page .home-brands__heading {
    font-size: 40px;
}
.home-brands .home-intro__text {
    font-size: 16px;
}

/* Partners */
.home-partners {
    padding: 90px var(--home-gutter) 80px;
    background: #f0f1f0;
}
.home-partners__text {
    margin-top: 24px !important;
    color: var(--home-muted);
    font-size: 20px;
}
.home-partners__list {
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: 24px;
    margin-top: 28px;
}
.home-partners__list img {
    max-width: 100%;
    height: auto;
}

/* Footer column titles follow the updated design */
.home-page .home-footer__title {
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

@media (max-width: 1599px) {
    .home-page .home-label--lg { font-size: 28px; }
    .home-page .home-stat__value { font-size: 26px; }
    .home-stat__label { font-size: 16px; }
    .home-feature { gap: 56px; padding-top: 100px; padding-bottom: 100px; }
    .home-feature__logo { height: 64px; }
    .home-page .home-feature__title { margin: 36px 0 24px; font-size: 36px; }
    .home-feature__text { font-size: 17px; }
    .home-together { gap: 32px 100px; padding-top: 110px; padding-bottom: 100px; }
    .home-page .home-together__title { font-size: 36px; }
    .home-travelers { gap: 48px 72px; padding-top: 120px; padding-bottom: 110px; }
    .home-page .home-brands__heading { font-size: 34px; }
    .home-partners__text { font-size: 18px; }
    .home-partners__list { flex-wrap: wrap; justify-content: center; gap: 28px 44px; }
}
@media (max-width: 1199px) {
    .home-about__top,
    .home-feature,
    .home-travelers { grid-template-columns: minmax(0, 1fr); }
    .home-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-feature--premium .home-feature__media { order: -1; }
    .home-pros__intro { padding-top: 100px; }
    .home-together { gap: 32px 60px; }
}
@media (max-width: 1599px) {
    .home-hero__logo { top: 40px; }
    .home-hero__logo img { width: 190px; }
}
@media (max-width: 767px) {
    .home-hero__logo { top: 24px; }
    .home-page .home-hero__logo--dark { margin-bottom: 36px; }
    .home-hero__logo img { width: 140px; }
}
@media (max-width: 767px) {
    .home-about,
    .home-brands,
    .home-partners { padding-top: 56px; padding-bottom: 56px; }
    .home-about__intro { gap: 16px; }
    .home-stats { gap: 24px 20px; margin-top: 36px; }
    .home-page .home-stat__value { font-size: 22px; }
    .home-stat__label { margin-top: 8px !important; font-size: 15px; }
    .home-page .home-label--lg { font-size: 20px; }
    .home-pros__intro { padding-top: 64px; padding-bottom: 48px; }
    .home-feature { gap: 28px; padding-top: 56px; padding-bottom: 56px; }
    .home-feature__logo { height: 48px; }
    .home-page .home-feature__title { margin: 24px 0 16px; font-size: 28px; line-height: 1.3; }
    .home-feature__title br { display: none; }
    .home-feature__text { font-size: 16px; line-height: 1.6; }
    .home-feature__actions { margin-top: 28px; }
    .home-together { padding-top: 64px; padding-bottom: 64px; }
    .home-page .home-together__title { font-size: 28px; }
    .home-together__text { margin-top: 16px !important; font-size: 16px; }
    .home-page .home-together__btn { width: 100%; padding: 16px 24px; }
    .home-travelers { gap: 36px; padding-top: 56px; padding-bottom: 56px; }
    .home-services { grid-template-columns: minmax(0, 1fr); gap: 32px; margin-top: 32px; }
    .home-service__text br { display: none; }
    .home-page .home-brands__heading { font-size: 26px; }
    .home-partners__text { font-size: 16px; }
    .home-partners__list { gap: 24px 28px; }
}

/* ------------------------------------------------------------------
   404 page (resources/views/errors/404.blade.php)
------------------------------------------------------------------- */
.error-hero .home-hero__bg::after {
    background-image: url('../img/photos/bachalpsee-grindelwald-hiking-switzerland.webp');
    background-position: center 60%;
}
.error-hero::before {
    background: linear-gradient(to right, rgba(0, 43, 67, .78), rgba(0, 43, 67, .4) 60%, rgba(0, 43, 67, .1));
}
.home-page .error-hero__code {
    margin-bottom: -.06em;
    color: #fff;
    font-family: 'Lora', serif;
    font-size: clamp(120px, 15vw, 260px);
    line-height: .9;
    letter-spacing: -.02em;
    text-shadow: 0 20px 60px rgba(0, 20, 35, .35);
}
.home-page .error-hero__label {
    color: #ff7a6b;
    font-weight: 400;
    letter-spacing: .14em;
}

/* ------------------------------------------------------------------
   Homepage hero scroll: "Our Story" glides over the hero like a sheet (js/home-animations.js)
------------------------------------------------------------------- */
.home-hero__cue {
    display: none;
}
.home-anim .home-hero__cue {
    display: block;
}
/* the first section slides over the pinned hero like a sheet (class added by JS) */
.home-anim .home-sheet {
    border-radius: 48px 48px 0 0;
    box-shadow: 0 -24px 60px rgba(0, 20, 35, .25);
}
.home-hero__cue {
    position: absolute;
    z-index: 3;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    pointer-events: none;
}
.home-page .home-hero__cue span {
    display: block;
    color: rgba(255, 255, 255, .8);
    font-size: 12px;
    letter-spacing: .3em;
    text-transform: uppercase;
}
.home-hero__cue::after {
    content: '';
    display: block;
    width: 1px;
    height: 46px;
    margin: 12px auto 0;
    background: linear-gradient(#fff, rgba(255, 255, 255, 0));
    transform-origin: top;
    animation: home-cue 2.2s var(--home-ease) infinite;
}
@keyframes home-cue {
    0% { transform: scaleY(0); opacity: 1; }
    60% { transform: scaleY(1); opacity: 1; }
    100% { transform: scaleY(1); opacity: 0; }
}
