/*
 AN INFINITY HOTELS & RESORTS
 Phase 5: Hotels, Destinations and Property Details
*/

:root {
    --collection-navy: #0b304f;
    --collection-blue: #1676b6;
    --collection-sky: #e7f5ff;
    --collection-gold: #c8a76c;
}

body:not(:has(.ih-hero)) {
    background: #f8fbff;
}

body:not(:has(.ih-hero)) main {
    min-height: 55vh;
}

body:not(:has(.ih-hero)) main h1,
body:not(:has(.ih-hero)) main h2 {
    letter-spacing: -.035em;
    line-height: 1.15;
    text-wrap: balance;
}

body:not(:has(.ih-hero)) main h1 {
    color: var(--collection-navy);
}

body:not(:has(.ih-hero)) main h2 {
    color: var(--collection-navy);
}

body:not(:has(.ih-hero)) main img {
    max-width: 100%;
}

body:not(:has(.ih-hero)) main a {
    text-underline-offset: 4px;
}

body:not(:has(.ih-hero)) .ih-hotel-card,
body:not(:has(.ih-hero)) .ih-offer-card {
    overflow: hidden;
    border-radius: 22px;
    background: #fff;
    border: 1px solid rgba(13, 75, 119, .08);
    box-shadow: 0 12px 38px rgba(13, 51, 79, .08);
    transition:
        transform .3s ease,
        box-shadow .3s ease;
}

@media (hover: hover) {
    body:not(:has(.ih-hero)) .ih-hotel-card:hover,
    body:not(:has(.ih-hero)) .ih-offer-card:hover {
        transform: translateY(-6px);
        box-shadow: 0 25px 55px rgba(13, 51, 79, .15);
    }
}

body:not(:has(.ih-hero)) .ih-hotel-card img,
body:not(:has(.ih-hero)) .ih-image-card img,
body:not(:has(.ih-hero)) .ih-offer-card img {
    display: block;
    width: 100%;
    object-fit: cover;
    transition: transform .55s ease;
}

@media (hover: hover) {
    body:not(:has(.ih-hero)) .ih-hotel-card:hover img,
    body:not(:has(.ih-hero)) .ih-image-card:hover img,
    body:not(:has(.ih-hero)) .ih-offer-card:hover img {
        transform: scale(1.04);
    }
}

body:not(:has(.ih-hero)) .ih-image-card {
    position: relative;
    overflow: hidden;
    border-radius: 22px;
}

body:not(:has(.ih-hero)) .ih-button {
    border-radius: 999px;
    font-weight: 700;
    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

@media (hover: hover) {
    body:not(:has(.ih-hero)) .ih-button:hover {
        transform: translateY(-2px);
        box-shadow: 0 12px 28px rgba(13, 51, 79, .15);
    }
}

body:not(:has(.ih-hero)) .ih-card-badge {
    border-radius: 999px;
    background: var(--collection-gold);
    color: #172d3d;
}

body:not(:has(.ih-hero)) .ih-eyebrow {
    color: var(--collection-blue);
    font-weight: 750;
    letter-spacing: .16em;
    text-transform: uppercase;
}

@media (max-width: 768px) {
    body:not(:has(.ih-hero)) main h1 {
        font-size: clamp(2rem, 8vw, 3rem);
    }

    body:not(:has(.ih-hero)) .ih-hotel-card,
    body:not(:has(.ih-hero)) .ih-image-card,
    body:not(:has(.ih-hero)) .ih-offer-card {
        border-radius: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body:not(:has(.ih-hero)) *,
    body:not(:has(.ih-hero)) *::before,
    body:not(:has(.ih-hero)) *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}