/* ==========================================================================
   Trip Reviews: traveler-led editorial proof page
   ========================================================================== */

/* The page inherits the established white canvas and readable body color. */
.trip-reviews-page {
    background-color: #ffffff;
    color: var(--welcome-copy);
}

/* Text selection stays inside the project’s red and white identity. */
.trip-reviews-page ::selection {
    background-color: var(--welcome-red);
    color: #ffffff;
}

/* The shared hero retains the established first-viewport proportion. */
.trip-reviews-page .tour-category-hero {
    height: clamp(620px, calc(100svh - 69px), 780px);
    min-height: 620px;
    padding-top: 0;
}

/* Journey imagery stays centered across the supplied landscape crops. */
.trip-reviews-page .tour-category-hero-image {
    object-position: center;
}

/* The traveler-led statement remains compact beside the award mark. */
.trip-reviews-page .tour-category-hero-title {
    max-width: 14ch;
    font-family: "Metromedium", "Roboto", sans-serif;
    font-size: clamp(2.4rem, 5.4vw, 4.65rem);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 0.98;
    text-wrap: balance;
}

/* Wide layouts center the four in-page navigation destinations. */
.trip-reviews-nav .welcome-nav-list {
    justify-content: center;
}

/* Every anchored section clears the sticky section navigation. */
.trip-reviews-intro,
.trip-reviews-ledger,
.trip-reviews-tripadvisor,
.trip-reviews-share,
.trip-reviews-planning {
    scroll-margin-top: 58px;
}

/* ==========================================================================
   Traveler voices introduction
   ========================================================================== */

/* The introduction balances editorial copy with independent review proof. */
.trip-reviews-intro-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
    gap: clamp(3rem, 7vw, 7rem);
    align-items: center;
}

/* The opening copy remains within a comfortable reading measure. */
.trip-reviews-intro-copy {
    max-width: 660px;
}

/* Intro paragraphs maintain the incumbent editorial rhythm. */
.trip-reviews-intro-copy > p {
    max-width: 66ch;
    margin: 0 0 1rem;
    color: var(--welcome-copy);
    font-size: 1rem;
    line-height: 1.75;
}

/* The downward text link previews the main review ledger. */
.trip-reviews-text-link {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    gap: 0.7rem;
    margin-top: 1.1rem;
    color: var(--welcome-red-deep);
    font-size: 0.82rem;
    font-weight: 900;
    letter-spacing: 0.02em;
    text-decoration: none;
    text-transform: uppercase;
}

/* The link arrow moves once to clarify the destination direction. */
.trip-reviews-text-link i {
    transition: transform 180ms ease;
}

/* Hover and keyboard focus share the same directional movement. */
.trip-reviews-text-link:hover i,
.trip-reviews-text-link:focus-visible i {
    transform: translateY(3px);
}

/* The proof surface uses ink to separate recognition from narrative copy. */
.trip-reviews-proof {
    position: relative;
    overflow: hidden;
    padding: clamp(2rem, 4vw, 3.5rem);
    border-radius: 7px;
    background-color: var(--welcome-ink);
    color: #ffffff;
}

/* Award artwork is kept legible without taking over the proof statement. */
.trip-reviews-proof > img {
    display: block;
    width: min(100%, 360px);
    height: auto;
    margin-bottom: clamp(2.5rem, 6vw, 4.5rem);
    filter: brightness(0) invert(1);
}

/* The quotation relies on scale and spacing instead of a decorative rail. */
.trip-reviews-proof blockquote {
    max-width: 24ch;
    margin: 0;
}

/* Proof copy uses the display face as the first editorial voice of the page. */
.trip-reviews-proof blockquote p {
    margin: 0;
    font-family: "Metromedium", "Roboto", sans-serif;
    font-size: clamp(1.75rem, 2.6vw, 2.5rem);
    font-weight: 500;
    letter-spacing: -0.025em;
    line-height: 1.08;
    text-wrap: pretty;
}

/* The external proof link stays visible against the dark surface. */
.trip-reviews-proof > a {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    gap: 0.7rem;
    margin-top: 2rem;
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 900;
    letter-spacing: 0.02em;
    text-decoration: none;
    text-transform: uppercase;
}

/* External-link movement confirms interaction without shifting layout. */
.trip-reviews-proof > a i {
    transition: transform 180ms ease;
}

/* The proof link lifts its icon diagonally on hover or focus. */
.trip-reviews-proof > a:hover i,
.trip-reviews-proof > a:focus-visible i {
    transform: translate(2px, -2px);
}

/* ==========================================================================
   Alternating review ledger
   ========================================================================== */

/* Warm paper gives the long review sequence a distinct reading ground. */
.trip-reviews-ledger {
    padding: clamp(4.5rem, 8vw, 7.5rem) 0;
    background-color: var(--welcome-warm);
}

/* The ledger heading leaves deliberate room before the first traveler story. */
.trip-reviews-ledger-heading {
    max-width: 790px;
    margin-bottom: clamp(3rem, 6vw, 5rem);
}

/* Review entries use one vertical cadence rather than a generic equal-card grid. */
.trip-reviews-list {
    display: grid;
    gap: clamp(2.5rem, 5vw, 5rem);
}

/* Each entry pairs authentic journey photography with the traveler’s words. */
.trip-review-entry {
    display: grid;
    grid-template-columns: minmax(300px, 0.88fr) minmax(0, 1.12fr);
    min-width: 0;
    align-items: stretch;
    overflow: hidden;
    border: 1px solid var(--welcome-line);
    border-radius: 7px;
    background-color: #ffffff;
}

/* Alternating entries reverse the reading rhythm while preserving semantics. */
.trip-review-entry.is-image-right .trip-review-media {
    order: 2;
}

/* Media links clip the restrained photographic zoom. */
.trip-review-media {
    display: block;
    min-height: 390px;
    overflow: hidden;
    background-color: var(--welcome-soft);
}

/* Review photography fills its column with a stable landscape crop. */
.trip-review-media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
    transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
}

/* Hover and focus gently bring the linked journey image closer. */
.trip-review-entry:hover .trip-review-media img,
.trip-review-entry:focus-within .trip-review-media img {
    transform: scale(1.035);
}

/* The review body creates a generous editorial quotation column. */
.trip-review-entry-body {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2rem, 5vw, 4.75rem);
}

/* Platform and rating metadata occupy one compact row. */
.trip-review-source-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.75rem;
}

/* The review platform uses its official icon with a neutral label. */
.trip-review-source {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--welcome-ink);
    font-size: 0.82rem;
    font-weight: 900;
}

/* The source icon retains its natural platform colors. */
.trip-review-source img {
    display: block;
    width: 22px;
    height: 22px;
}

/* Tripadvisor rating bubbles use their channel-specific semantic green. */
.trip-review-rating {
    display: inline-flex;
    gap: 0.22rem;
}

/* Each rating bubble remains compact and visually exact. */
.trip-review-rating > span {
    width: 12px;
    height: 12px;
    border: 1px solid #007c53;
    border-radius: 50%;
    background-color: #00aa6c;
}

/* Review titles lead each quotation without an eyebrow label. */
.trip-review-entry-body h3 {
    max-width: 22ch;
    margin: 0;
    color: var(--welcome-ink);
    font-family: "Metromedium", "Roboto", sans-serif;
    font-size: clamp(1.65rem, 3vw, 2.75rem);
    font-weight: 500;
    letter-spacing: -0.025em;
    line-height: 1.06;
    text-wrap: balance;
}

/* Quotations remain borderless and rely on typography for emphasis. */
.trip-review-entry-body blockquote {
    max-width: 66ch;
    margin: 1.35rem 0 0;
}

/* The traveler’s words use a relaxed reading rhythm. */
.trip-review-entry-body blockquote p {
    margin: 0;
    color: var(--welcome-copy);
    font-size: 1.05rem;
    line-height: 1.75;
}

/* Author and source action close every entry with a factual attribution. */
.trip-review-entry-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 1.5rem;
    margin-top: 1.75rem;
    border-top: 1px solid var(--welcome-line);
}

/* Author names remain compact and distinct from the quoted body. */
.trip-review-entry-footer cite {
    color: var(--welcome-ink);
    font-size: 0.92rem;
    font-style: normal;
    font-weight: 900;
}

/* Original-review links use the brand red as the sole site action color. */
.trip-review-entry-footer a {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    gap: 0.6rem;
    color: var(--welcome-red-deep);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.02em;
    text-decoration: none;
    text-transform: uppercase;
}

/* External review arrows receive a small directional confirmation. */
.trip-review-entry-footer a i {
    transition: transform 180ms ease;
}

/* Hover and focus lift the external-link arrow diagonally. */
.trip-review-entry-footer a:hover i,
.trip-review-entry-footer a:focus-visible i {
    transform: translate(2px, -2px);
}

/* ==========================================================================
   Tripadvisor continuation panel
   ========================================================================== */

/* The independent platform close uses a decisive ink ground. */
.trip-reviews-tripadvisor {
    padding: clamp(4.5rem, 8vw, 7.5rem) 0;
    background-color: var(--welcome-ink);
    color: #ffffff;
}

/* Copy and recognition artwork form one balanced proof composition. */
.trip-reviews-tripadvisor-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
    gap: clamp(3rem, 8vw, 8rem);
    align-items: center;
}

/* Tripadvisor’s wordmark stays visible on the dark surface. */
.trip-reviews-tripadvisor-copy > img {
    display: block;
    width: min(100%, 210px);
    height: auto;
    margin-bottom: 2.25rem;
    filter: brightness(0) invert(1);
}

/* The continuation heading carries the shared display voice. */
.trip-reviews-tripadvisor-copy h2 {
    max-width: 14ch;
    margin: 0;
    color: #ffffff;
    font-family: "Metromedium", "Roboto", sans-serif;
    font-size: clamp(2.15rem, 4.4vw, 4rem);
    font-weight: 500;
    letter-spacing: -0.035em;
    line-height: 1.02;
    text-wrap: balance;
}

/* Supporting copy is tinted from white for readable dark-surface hierarchy. */
.trip-reviews-tripadvisor-copy p {
    max-width: 58ch;
    margin: 1.25rem 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: 1.05rem;
    line-height: 1.75;
}

/* The primary external action uses the project’s established red button. */
.trip-reviews-primary-button {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 0.7rem;
    padding: 0.78rem 1.3rem;
    margin-top: 2rem;
    border-radius: 7px;
    background-color: var(--welcome-red);
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 900;
    letter-spacing: 0.02em;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color 180ms ease, transform 180ms ease;
}

/* The main action deepens and lifts slightly on hover or focus. */
.trip-reviews-primary-button:hover,
.trip-reviews-primary-button:focus-visible {
    background-color: var(--welcome-red-deep);
    color: #ffffff;
    transform: translateY(-2px);
}

/* Award artwork receives a quiet warm surface without added shadow. */
.trip-reviews-tripadvisor-image {
    display: grid;
    min-height: 390px;
    place-items: center;
    padding: clamp(2rem, 5vw, 4rem);
    margin: 0;
    border-radius: 7px;
    background-color: var(--welcome-warm);
}

/* Recognition artwork scales within the available square. */
.trip-reviews-tripadvisor-image img {
    display: block;
    width: min(100%, 330px);
    height: auto;
}

/* ==========================================================================
   Review-platform choices
   ========================================================================== */

/* The contribution section uses warm paper to distinguish alumni actions. */
.trip-reviews-share {
    background-color: var(--welcome-warm);
}

/* Share copy and platform choices balance context with action. */
.trip-reviews-share-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
    gap: clamp(3rem, 7vw, 7rem);
    align-items: center;
}

/* Additional sharing guidance retains a readable editorial measure. */
.trip-reviews-share-copy > p {
    max-width: 62ch;
    margin: 0;
    color: var(--welcome-copy);
    line-height: 1.75;
}

/* Platform actions form a simple vertical list rather than nested cards. */
.trip-reviews-platforms {
    display: grid;
    border-top: 1px solid var(--welcome-line);
}

/* Each platform row provides a large, keyboard-accessible target. */
.trip-reviews-platforms > a {
    display: grid;
    min-height: 92px;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: 1rem 0;
    border-bottom: 1px solid var(--welcome-line);
    color: var(--welcome-ink);
    text-decoration: none;
    transition: color 180ms ease, padding 180ms ease;
}

/* Platform identity marks remain compact and centered. */
.trip-reviews-platforms > a > img,
.trip-reviews-platforms > a > .fa-facebook-f {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    color: #1877f2;
    font-size: 1.6rem;
    object-fit: contain;
}

/* Platform labels stack name and explicit action. */
.trip-reviews-platforms span {
    display: grid;
    gap: 0.2rem;
}

/* Platform names carry the compact title hierarchy. */
.trip-reviews-platforms strong {
    font-size: 1rem;
    font-weight: 900;
}

/* Secondary action copy remains legible and quiet. */
.trip-reviews-platforms small {
    color: var(--welcome-copy);
    font-size: 0.88rem;
}

/* Rows shift toward red and inward on hover or keyboard focus. */
.trip-reviews-platforms > a:hover,
.trip-reviews-platforms > a:focus-visible {
    padding-right: 0.6rem;
    padding-left: 0.6rem;
    color: var(--welcome-red-deep);
}

/* The closing planning anchor adds no extra visual container. */
.trip-reviews-planning {
    display: block;
}

/* Page-specific footer overrides ensure certification text meets contrast. */
.trip-reviews-body .footer-partners-quote-main {
    color: #595959;
}

/* The secondary footer line remains quieter while staying readable. */
.trip-reviews-body .footer-partners-quote-sub {
    color: #666666;
}

/* ==========================================================================
   Responsive composition
   ========================================================================== */

@media (max-width: 991.98px) {
    /* Tablet layouts stack editorial splits into one reading column. */
    .trip-reviews-intro-grid,
    .trip-reviews-tripadvisor-grid,
    .trip-reviews-share-grid {
        grid-template-columns: 1fr;
    }

    /* Tablet navigation aligns left when labels approach container width. */
    .trip-reviews-nav .welcome-nav-list {
        justify-content: flex-start;
    }

    /* Review rows keep useful media scale before the phone breakpoint. */
    .trip-review-entry {
        grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr);
    }

    /* Proof and share actions use the available single-column width. */
    .trip-reviews-proof,
    .trip-reviews-platforms {
        max-width: 760px;
    }
}

@media (max-width: 767.98px) {
    /* Compact screens preserve the cinematic hero height used across the site. */
    .trip-reviews-page .tour-category-hero {
        height: 700px;
        min-height: 700px;
    }

    /* Hero copy stays clear of the award mark at phone widths. */
    .trip-reviews-page .tour-category-hero-title {
        max-width: 12ch;
        font-size: clamp(2.15rem, 10.5vw, 3.35rem);
    }

    /* Every review becomes a single linear story on phones. */
    .trip-review-entry {
        display: flex;
        flex-direction: column;
    }

    /* Reversed desktop media returns to the first position on phones. */
    .trip-review-entry.is-image-right .trip-review-media {
        order: 0;
    }

    /* Mobile review images retain an immersive but bounded crop. */
    .trip-review-media {
        min-height: 300px;
    }

    /* Mobile review copy uses tighter but still generous spacing. */
    .trip-review-entry-body {
        padding: 1.6rem;
    }

    /* Author and source link stack when their combined width is constrained. */
    .trip-review-entry-footer {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 575.98px) {
    /* Four section labels form a legible two-row index on narrow phones. */
    .trip-reviews-nav .welcome-nav-list {
        flex-wrap: wrap;
        gap: 0;
        overflow: visible;
    }

    /* Every navigation item owns half the row for predictable alignment. */
    .trip-reviews-nav .welcome-nav-list li {
        width: 50%;
    }

    /* Mobile labels retain a comfortable reading size and 48px target height. */
    .trip-reviews-nav .welcome-nav-link {
        width: 100%;
        min-height: 48px;
        justify-content: center;
        font-size: 0.75rem;
        letter-spacing: 0;
    }

    /* Phone anchor destinations clear the taller two-row sticky navigation. */
    .trip-reviews-intro,
    .trip-reviews-ledger,
    .trip-reviews-tripadvisor,
    .trip-reviews-share,
    .trip-reviews-planning {
        scroll-margin-top: 96px;
    }

    /* Small screens reduce proof padding without shrinking the quotation voice. */
    .trip-reviews-proof {
        padding: 1.5rem;
    }

    /* Phone media height keeps each story moving without losing imagery. */
    .trip-review-media {
        min-height: 240px;
    }

    /* Platform rows remain clear when translated labels become longer. */
    .trip-reviews-platforms > a {
        grid-template-columns: 38px minmax(0, 1fr) auto;
        gap: 0.75rem;
    }

    /* The dark platform panel artwork stays compact on narrow screens. */
    .trip-reviews-tripadvisor-image {
        min-height: 300px;
        padding: 1.5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    /* Reduced-motion visitors keep every state without movement. */
    .trip-reviews-text-link i,
    .trip-reviews-proof > a i,
    .trip-review-media img,
    .trip-review-entry-footer a i,
    .trip-reviews-primary-button,
    .trip-reviews-platforms > a {
        transition: none;
    }

    /* Hover and focus states remain visible without transforms. */
    .trip-reviews-text-link:hover i,
    .trip-reviews-text-link:focus-visible i,
    .trip-reviews-proof > a:hover i,
    .trip-reviews-proof > a:focus-visible i,
    .trip-review-entry:hover .trip-review-media img,
    .trip-review-entry:focus-within .trip-review-media img,
    .trip-review-entry-footer a:hover i,
    .trip-review-entry-footer a:focus-visible i,
    .trip-reviews-primary-button:hover,
    .trip-reviews-primary-button:focus-visible {
        transform: none;
    }
}
