/**
 * Costa Platform — Destination Diamond Refinements
 * Global polish layer loaded after the destination master template.
 */

/* Editorial rhythm and section transitions */
.cst-destination-overview,
.cst-destination-useful-info,
.cst-destination-guide,
.cst-destination-things-to-do,
.cst-destination-attractions,
.cst-destination-gastronomy,
.cst-destination-where-to-stay,
.cst-destination-services,
.cst-destination-faq,
.cst-destination-reviews,
.cst-destination-nearby,
.cst-destination-final-cta {
    position: relative;
    scroll-margin-top: 104px;
}

.cst-destination-overview::before,
.cst-destination-guide::before,
.cst-destination-attractions::before,
.cst-destination-gastronomy::before,
.cst-destination-where-to-stay::before,
.cst-destination-services::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    width: min(1320px, calc(100% - 48px));
    height: 1px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, transparent, rgba(6,43,87,.10), transparent);
    pointer-events: none;
}

/* Premium interactive cards */
.cst-card,
.cst-attractions__card,
.cst-gastronomy-card,
.cst-accommodation-card,
.cst-nearby__card,
.cst-reviews__panel,
.cst-services__panel {
    transition: transform .32s cubic-bezier(.2,.7,.2,1), box-shadow .32s ease, border-color .32s ease;
    will-change: transform;
}

@media (hover:hover) and (pointer:fine) {
    .cst-card:hover,
    .cst-attractions__card:hover,
    .cst-gastronomy-card:hover,
    .cst-accommodation-card:hover,
    .cst-nearby__card:hover {
        transform: translateY(-7px);
        box-shadow: 0 24px 54px rgba(6,43,87,.14);
    }

    .cst-card img,
    .cst-attractions__card img,
    .cst-gastronomy-card img,
    .cst-accommodation-card img,
    .cst-nearby__card img {
        transition: transform .65s cubic-bezier(.2,.7,.2,1), filter .45s ease;
    }

    .cst-card:hover img,
    .cst-attractions__card:hover img,
    .cst-gastronomy-card:hover img,
    .cst-accommodation-card:hover img,
    .cst-nearby__card:hover img {
        transform: scale(1.035);
        filter: saturate(1.04) contrast(1.02);
    }
}

/* Reveal on scroll — progressive enhancement */
.cst-diamond-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1);
}

.cst-diamond-reveal.is-visible {
    opacity: 1;
    transform: none;
}

/* Services receives stronger visual presence */
.cst-destination-services .cst-services__panel,
.cst-destination-services .cst-destination-services__panel {
    border: 1px solid rgba(6,43,87,.08);
    box-shadow: 0 24px 70px rgba(6,43,87,.10);
}

/* Final CTA breathing room */
.cst-destination-final-cta {
    margin-bottom: clamp(48px, 7vw, 96px);
}

/* Focus states */
.cst-destination-hero a:focus-visible,
.cst-destination-overview a:focus-visible,
.cst-destination-guide a:focus-visible,
.cst-destination-attractions a:focus-visible,
.cst-destination-gastronomy a:focus-visible,
.cst-destination-where-to-stay a:focus-visible,
.cst-destination-services a:focus-visible,
.cst-destination-faq button:focus-visible,
.cst-destination-nearby a:focus-visible {
    outline: 3px solid #f1cc4f;
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
    .cst-diamond-reveal,
    .cst-diamond-reveal.is-visible,
    .cst-card,
    .cst-attractions__card,
    .cst-gastronomy-card,
    .cst-accommodation-card,
    .cst-nearby__card,
    .cst-card img,
    .cst-attractions__card img,
    .cst-gastronomy-card img,
    .cst-accommodation-card img,
    .cst-nearby__card img {
        transition: none !important;
        transform: none !important;
        opacity: 1 !important;
    }
}


/* ==========================================================
   RC.4 — Destination Diamond audit: rhythm, headers and CTAs
   ========================================================== */
:root {
    --cst-destination-section-y: clamp(76px, 7.2vw, 112px);
    --cst-destination-section-x: clamp(18px, 3vw, 32px);
    --cst-destination-content-max: 1180px;
    --cst-destination-header-max: 820px;
    --cst-destination-title-size: clamp(40px, 4.4vw, 62px);
    --cst-destination-copy-size: clamp(15px, 1.18vw, 18px);
}

/* One vertical rhythm for every public destination section. */
.cst-destination-overview,
.cst-destination-useful-info,
.cst-destination-guide,
.cst-destination-things-to-do,
.cst-destination-attractions,
.cst-destination-gastronomy,
.cst-where-to-stay,
.cst-destination-services,
.cst-destination-faq,
.cst-destination-reviews,
.cst-destination-nearby {
    padding-top: var(--cst-destination-section-y) !important;
    padding-bottom: var(--cst-destination-section-y) !important;
}

.cst-destination-overview__inner,
.cst-destination-useful-info__inner,
.cst-destination-guide__inner,
.cst-destination-things-to-do__inner,
.cst-destination-attractions__inner,
.cst-destination-gastronomy__inner,
.cst-where-to-stay__inner,
.cst-destination-services__inner,
.cst-destination-faq__inner,
.cst-destination-reviews__inner,
.cst-destination-nearby__inner {
    width: min(var(--cst-destination-content-max), calc(100% - (var(--cst-destination-section-x) * 2))) !important;
    margin-inline: auto !important;
}

/* Unified section header language. */
.cst-section-header,
.cst-destination-attractions__header,
.cst-destination-gastronomy__header,
.cst-where-to-stay__header,
.cst-destination-services__header,
.cst-destination-faq__header,
.cst-destination-nearby header {
    width: min(100%, var(--cst-destination-header-max)) !important;
    max-width: var(--cst-destination-header-max) !important;
    margin: 0 auto clamp(42px, 4.5vw, 64px) !important;
    text-align: center !important;
}

.cst-section-header__eyebrow,
.cst-destination-attractions__eyebrow,
.cst-destination-gastronomy__eyebrow,
.cst-where-to-stay__eyebrow,
.cst-destination-services__eyebrow,
.cst-destination-faq__eyebrow,
.cst-destination-nearby header > span,
.cst-destination-reviews__eyebrow {
    display: inline-flex !important;
    align-items: center;
    min-height: 30px;
    margin: 0 0 14px !important;
    padding: 0 14px !important;
    border: 1px solid rgba(6,43,87,.10);
    border-radius: 999px;
    background: rgba(255,255,255,.82);
    color: #a77f08 !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    letter-spacing: .18em !important;
    line-height: 1 !important;
    text-transform: uppercase;
    box-shadow: 0 8px 22px rgba(6,43,87,.05);
}

.cst-section-header__title,
.cst-destination-attractions__title,
.cst-destination-gastronomy__title,
.cst-where-to-stay__header h2,
.cst-destination-services__title,
.cst-destination-faq h2,
.cst-destination-nearby h2 {
    margin: 0 !important;
    color: #062b57 !important;
    font-size: var(--cst-destination-title-size) !important;
    font-weight: 900 !important;
    line-height: .98 !important;
    letter-spacing: -.052em !important;
}

.cst-section-header__subtitle,
.cst-destination-attractions__subtitle,
.cst-destination-gastronomy__subtitle,
.cst-where-to-stay__subtitle,
.cst-destination-services__subtitle,
.cst-destination-faq__header p,
.cst-destination-nearby header p {
    width: min(100%, 740px) !important;
    max-width: 740px !important;
    margin: 20px auto 0 !important;
    color: rgba(6,43,87,.70) !important;
    font-size: var(--cst-destination-copy-size) !important;
    font-weight: 600 !important;
    line-height: 1.65 !important;
}

/* Guide: same content width, denser desktop flow, less dead space. */
.cst-destination-guide__header { max-width: var(--cst-destination-header-max) !important; margin: 0 auto clamp(42px,4.5vw,64px) !important; text-align:center; }
.cst-destination-guide__layout { grid-template-columns: 220px minmax(0,1fr) !important; gap: clamp(30px,4vw,54px) !important; }
.cst-destination-guide__block { grid-template-columns: 64px minmax(0,1fr) !important; gap: clamp(22px,3vw,38px) !important; padding: clamp(34px,3.6vw,52px) 0 !important; }
.cst-destination-guide__block-copy { max-width: 720px; }
.cst-destination-guide__nav { top: 96px !important; padding: 18px 15px !important; border-radius: 22px !important; }

/* Hero quick-facts CTA keeps contrast in every state. */
.cst-destination-hero__quickfacts-link,
.cst-destination-hero__quickfacts-link:hover,
.cst-destination-hero__quickfacts-link:focus-visible,
.cst-destination-hero__quickfacts-link:visited { color:#fff !important; }
.cst-destination-hero__quickfacts-link span,
.cst-destination-hero__quickfacts-link:hover span { color:#f1cc4f !important; }

/* Unified CTA motion and accessible states. */
.cst-destination-hero a,
.cst-destination-attractions a,
.cst-destination-gastronomy a,
.cst-where-to-stay a,
.cst-where-to-stay button,
.cst-destination-services a,
.cst-destination-reviews a,
.cst-destination-nearby a,
.cst-destination-final-cta a,
.cst-destination-things-to-do a {
    transition: transform .24s cubic-bezier(.2,.7,.2,1), box-shadow .24s ease, background-color .24s ease, color .24s ease, border-color .24s ease !important;
}
@media (hover:hover) and (pointer:fine) {
    .cst-destination-hero a:hover,
    .cst-destination-attractions a:hover,
    .cst-destination-gastronomy a:hover,
    .cst-where-to-stay a:hover,
    .cst-where-to-stay button:hover,
    .cst-destination-services a:hover,
    .cst-destination-reviews a:hover,
    .cst-destination-nearby a:hover,
    .cst-destination-final-cta a:hover,
    .cst-destination-things-to-do a:hover {
        transform: translateY(-2px);
        box-shadow: 0 14px 30px rgba(6,43,87,.16);
    }
}
.cst-destination-reviews__panel a span { transition: transform .24s ease; }
.cst-destination-reviews__panel a:hover span { transform: translateX(4px); }

/* Premium neutral accommodation cards; categories remain legible via subtle accents. */
.cst-where-to-stay__card { --cst-wts-category-soft:#f7f9fc !important; --cst-wts-category-accent:#c6a23b !important; --cst-wts-category-ink:#062b57 !important; }
.cst-where-to-stay__card-profile { background:#f7f9fc !important; border-left-color:#c6a23b !important; }
.cst-where-to-stay__card-button { background:linear-gradient(135deg,#062b57,#0b3b72) !important; color:#fff !important; }
.cst-where-to-stay__region-tags,
.cst-where-to-stay__region-tags ul { display:flex !important; flex-wrap:wrap !important; align-content:flex-start !important; gap:7px !important; }
.cst-where-to-stay__region-tags li,
.cst-where-to-stay__region-tags > span { max-width:100%; white-space:normal !important; overflow:visible !important; text-overflow:clip !important; }

/* Detailed itinerary planner. */
.cst-destination-things-to-do__itineraries { margin-top: clamp(56px,6vw,86px); padding-top: clamp(42px,4vw,58px); border-top:1px solid rgba(6,43,87,.10); }
.cst-destination-things-to-do__itineraries-header { width:min(100%,760px); margin-bottom:34px; }
.cst-destination-things-to-do__itinerary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.cst-destination-things-to-do__itinerary { position:relative; display:flex; flex-direction:column; min-height:100%; padding:28px; border:1px solid rgba(6,43,87,.10); border-radius:24px; background:#fff; box-shadow:0 16px 42px rgba(6,43,87,.07); }
.cst-destination-things-to-do__itinerary.is-recommended { border-color:rgba(212,175,55,.55); box-shadow:0 20px 50px rgba(6,43,87,.11); }
.cst-destination-things-to-do__itinerary-badge { position:absolute; top:18px; right:18px; padding:6px 10px; border-radius:999px; background:#fff3bd; color:#735800; font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.cst-destination-things-to-do__itinerary-duration { color:#a77f08; font-size:11px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.cst-destination-things-to-do__itinerary h4 { margin:12px 0 10px; color:#062b57; font-size:clamp(24px,2.2vw,32px); line-height:1.05; letter-spacing:-.035em; }
.cst-destination-things-to-do__itinerary > p { margin:0; color:#52657a; line-height:1.65; }
.cst-destination-things-to-do__itinerary ul { display:grid; gap:10px; margin:20px 0 24px; padding:0; list-style:none; color:#52657a; font-size:14px; line-height:1.55; }
.cst-destination-things-to-do__itinerary li { padding-top:10px; border-top:1px solid rgba(6,43,87,.07); }
.cst-destination-things-to-do__itinerary li strong { color:#062b57; }
.cst-destination-things-to-do__itinerary-cta { display:inline-flex; align-items:center; justify-content:space-between; gap:14px; margin-top:auto; padding:13px 16px; border-radius:999px; background:#062b57; color:#fff !important; font-weight:850; text-decoration:none; }

@media (max-width: 900px) {
    .cst-destination-guide__layout { grid-template-columns:1fr !important; }
    .cst-destination-guide__nav { position:relative !important; top:auto !important; max-height:none !important; }
}
@media (max-width: 767px) {
    :root { --cst-destination-section-y: 62px; --cst-destination-section-x: 16px; --cst-destination-title-size: clamp(34px,10vw,46px); }
    .cst-destination-things-to-do__itinerary-grid { grid-template-columns:1fr; }
    .cst-destination-things-to-do__itinerary { padding:22px; }
}
