/* =========================================================
   CRUISE PORTAL COMPONENTS
   Universal reusable page components
   ========================================================= */

/* ---------------------------------------------------------
   Port / location detail
   --------------------------------------------------------- */

.port-page {
    --port-navy:#123b5d;
    --port-cream:#f8f6f1;
    --port-line:#e5e1d8;
}

.port-page .port-hero {
    background:#fff;
    border:1px solid var(--port-line);
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 18px 55px rgba(18,59,93,.10);
}

.port-page .port-hero-image {
    width:100%;
    height:100%;
    min-height:470px;
    object-fit:cover;
}

.port-page .port-hero-content { padding:44px; }

.port-page .port-title {
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(2.2rem,4vw,4rem);
    line-height:1;
    color:var(--port-navy);
}

.port-page .port-location {
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin:22px 0;
}

.port-page .port-location span {
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:8px 13px;
    background:var(--port-cream);
    border:1px solid var(--port-line);
    border-radius:999px;
    color:#5b6670;
}

.port-page .port-coordinates {
    margin-top:25px;
    padding:17px 18px;
    border-radius:16px;
    background:var(--port-navy);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
}

.port-page .port-map-button {
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:#fff;
    color:var(--port-navy);
    padding:10px 14px;
    border-radius:11px;
    font-weight:700;
}

.port-page .port-section { margin-top:34px; }

.port-page .port-section-inner {
    background:#fff;
    border:1px solid var(--port-line);
    border-radius:24px;
    padding:32px;
    box-shadow:0 12px 38px rgba(18,59,93,.06);
}

.port-page .port-related-card {
    height:100%;
    background:#fff;
    border:1px solid var(--port-line);
    border-radius:20px;
    overflow:hidden;
    transition:.2s ease;
}

.port-page .port-related-card:hover {
    transform:translateY(-4px);
    box-shadow:0 16px 38px rgba(18,59,93,.11);
}

.port-page .port-related-card img {
    width:100%;
    height:210px;
    object-fit:cover;
}
.port-page .port-related-body { padding:20px; }

/* ---------------------------------------------------------
   Generic page blocks
   --------------------------------------------------------- */

.cp-list-card {
    display:flex;
    align-items:flex-start;
    gap:16px;
    background:#fff;
    border:1px solid var(--cp-border);
    border-radius:18px;
    padding:20px;
    box-shadow:0 8px 25px rgba(18,59,93,.05);
    transition:.2s ease;
}
.cp-list-card:hover {
    transform:translateY(-2px);
    box-shadow:var(--cp-shadow);
}

.cp-data-card {
    height:100%;
    padding:24px;
    background:#fff;
    border:1px solid var(--cp-border);
    border-radius:18px;
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.cp-data-card:hover {
    transform:translateY(-3px);
    border-color:#cbdde5;
    box-shadow:0 12px 28px rgba(18,59,93,.08);
}

.cp-data-card h3,
.cp-data-card h4 {
    margin-top:0;
    color:var(--cp-primary-dark);
}

.cp-data-meta {
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-bottom:14px;
    color:#71838c;
    font-size:14px;
}
.cp-data-meta i { color:var(--cp-primary); }

.cp-data-copy {
    color:#526874;
    line-height:1.7;
}

.cp-soft-badge {
    display:inline-block;
    padding:5px 9px;
    border-radius:8px;
    background:#edf5f7;
    color:var(--cp-primary);
    font-size:12px;
    font-weight:800;
}

.cp-image {
    width:100%;
    display:block;
    object-fit:cover;
}

.cp-map {
    overflow:hidden;
    border-radius:20px;
    border:1px solid var(--cp-border);
    box-shadow:0 10px 30px rgba(18,59,93,.07);
}
.cp-map iframe { display:block; }

/* ---------------------------------------------------------
   Responsive
   --------------------------------------------------------- */

@media (max-width:991.98px) {
    .port-page .port-hero-image { min-height:360px; }
    .port-page .port-hero-content { padding:30px; }
}

@media (max-width:575.98px) {
    .port-page .port-coordinates {
        align-items:flex-start;
        flex-direction:column;
    }
    .port-page .port-map-button {
        width:100%;
        justify-content:center;
    }
    .cp-list-card {
        flex-direction:column;
    }
}


/* ---------------------------------------------------------
   Port detail page visual components
   Migrated from page-local CSS so the page needs no <style>.
   --------------------------------------------------------- */

body {
    --pp-ink:#173447;
    --pp-muted:#70818c;
    --pp-line:#dbe7eb;
    --pp-accent:#247da3;
    --pp-accent-dark:#155a78;
    --pp-pale:#edf7f8;
    --pp-bg:#f4f9fa;
}

.port-page {
    --pp-ink:#173447;
    --pp-muted:#70818c;
    --pp-line:#dbe7eb;
    --pp-accent:#247da3;
    --pp-accent-dark:#155a78;
    --pp-pale:#edf7f8;
    --pp-bg:#f4f9fa;
    color:var(--pp-ink);
}
.port-page * { box-sizing:border-box; }

.port-page .pp-breadcrumb {
    max-width:1420px;
    margin:0 auto 22px;
    padding:0 10px;
    color:#80909a;
    font-size:13px;
}
.port-page .pp-breadcrumb a { color:#80909a; text-decoration:none; }
.port-page .pp-breadcrumb a:hover { color:var(--pp-accent); }
.port-page .pp-breadcrumb .breadcrumb { margin:0; }

.port-page .pp-shell {
    max-width:1420px;
    margin:0 auto;
    padding:0 10px;
}

.port-page .pp-hero {
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);
    min-height:510px;
    overflow:hidden;
    background:#fff;
    border:1px solid var(--pp-line);
    border-radius:42px;
    box-shadow:0 30px 90px rgba(19,58,76,.13);
}
.port-page .pp-hero-photo {
    position:relative;
    min-height:540px;
    overflow:hidden;
    background:#eaf3f5;
}
.port-page .pp-hero-photo:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,transparent 55%,rgba(255,255,255,.28) 100%);
    pointer-events:none;
}
.port-page .pp-hero-photo img {
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}
.port-page .pp-hero-content {
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:58px 62px 58px 68px;
    background:linear-gradient(135deg,#fff 0%,#fbfefe 68%,#eef7f8 100%);
}
.port-page .pp-hero-content:before {
    content:"";
    position:absolute;
    width:330px;
    height:330px;
    border-radius:50%;
    right:-185px;
    top:-150px;
    border:1px solid rgba(36,125,163,.10);
    box-shadow:0 0 0 55px rgba(36,125,163,.025),0 0 0 110px rgba(36,125,163,.018);
}
.port-page .pp-eyebrow {
    position:relative;
    display:flex;
    align-items:center;
    gap:9px;
    width:max-content;
    margin-bottom:16px;
    color:var(--pp-accent);
    font-size:11px;
    font-weight:800;
    letter-spacing:.22em;
    text-transform:uppercase;
}
.port-page .pp-eyebrow:before {
    content:"";
    width:27px;
    height:2px;
    background:var(--pp-accent);
    border-radius:2px;
}
.port-page .pp-hero h1 {
    position:relative;
    margin:0 0 22px;
    font-family:Georgia,"Times New Roman",serif;
    font-weight:500;
    font-size:clamp(42px,4.5vw,68px);
    line-height:.98;
    letter-spacing:-.035em;
    color:var(--pp-ink);
}
.port-page .pp-lead {
    position:relative;
    max-width:650px;
    margin:0 0 27px;
    color:#566c77;
    font-size:17px;
    line-height:1.75;
}
.port-page .pp-place-line {
    position:relative;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:0 24px;
    margin-bottom:24px;
    padding:0;
    border-top:0;
}
.port-page .pp-place-item {
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 13px;
    border:1px solid #dce9ed;
    border-radius:999px;
    background:#f8fbfc;
    color:#435a66;
    font-size:15px;
}
.port-page .pp-place-item i { color:var(--pp-accent); }

.port-page .pp-coordinates {
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:17px 18px;
    background:#163f50;
    color:#fff;
    border:0;
    border-radius:18px;
}
.port-page .pp-coordinates-text {
    font-size:14px;
    color:#fff;
    line-height:1.5;
}
.port-page .pp-coordinates-text strong {
    display:block;
    margin-bottom:2px;
    color:#fff;
    font-size:12px;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.port-page .pp-map-button {
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:11px 16px;
    border-radius:999px;
    background:#fff;
    color:#163f50;
    text-decoration:none;
    font-weight:700;
    font-size:13px;
    box-shadow:none;
}
.port-page .pp-map-button:hover {
    background:#dff0f3;
    color:#163f50;
}

.port-page .pp-section { margin-top:38px; }
.port-page .pp-section-panel {
    background:#fff;
    border:0;
    border-radius:30px;
    padding:34px;
    box-shadow:0 18px 55px rgba(19,58,76,.07);
}
.port-page .pp-section-heading {
    display:flex;
    align-items:flex-start;
    gap:15px;
    margin:0 0 24px;
}
.port-page .pp-section-heading-mark {
    width:5px;
    height:44px;
    margin-top:2px;
    border-radius:8px;
    background:linear-gradient(180deg,var(--pp-accent),#82b8c9);
}
.port-page .pp-section-heading h2 {
    margin:0;
    font-family:Georgia,"Times New Roman",serif;
    color:var(--pp-ink);
    font-size:28px;
    letter-spacing:-.03em;
    font-weight:500;
}
.port-page .pp-section-heading p {
    margin:4px 0 0;
    color:var(--pp-muted);
    font-size:14px;
}
.port-page .pp-description {
    font-size:18px;
    line-height:1.9;
    color:#4f6570;
}
.port-page .pp-info-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.port-page .pp-info-item {
    padding:20px 22px;
    border:1px solid var(--pp-line);
    border-radius:17px;
    background:linear-gradient(145deg,#fff,#f8fbfc);
}
.port-page .pp-info-item-title {
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:8px;
    color:#607681;
    font-size:13px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.port-page .pp-info-item-title i { color:var(--pp-accent); }
.port-page .pp-info-item-value {
    color:var(--pp-ink);
    font-size:16px;
    font-weight:600;
}

.port-page .pp-data-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.port-page .pp-data-item {
    height:100%;
    padding:24px;
    border:1px solid var(--pp-line);
    border-radius:18px;
    background:#fff;
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.port-page .pp-data-item:hover {
    transform:translateY(-3px);
    border-color:#c6dce4;
    box-shadow:0 12px 28px rgba(25,59,76,.08);
}
.port-page .pp-data-item h4 {
    margin:0 0 12px;
    color:var(--pp-ink);
    font-size:19px;
}
.port-page .pp-data-meta {
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-bottom:14px;
    color:#71838c;
    font-size:14px;
}
.port-page .pp-data-meta i { color:var(--pp-accent); }
.port-page .pp-badge {
    display:inline-block;
    padding:5px 9px;
    margin-bottom:12px;
    border-radius:8px;
    background:var(--pp-pale);
    color:var(--pp-accent-dark);
    font-size:12px;
    font-weight:800;
}
.port-page .pp-data-copy {
    color:#526874;
    line-height:1.7;
}

.port-page .pp-map {
    overflow:hidden;
    border-radius:20px;
    border:1px solid var(--pp-line);
    box-shadow:0 10px 30px rgba(25,59,76,.07);
}
.port-page .pp-map iframe {
    display:block;
    border:0;
}

.port-page .pp-related-head {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:22px;
    padding:0 4px 4px;
}
.port-page .pp-related-head h2 {
    margin:0;
    font-family:Georgia,"Times New Roman",serif;
    color:var(--pp-ink);
    font-size:30px;
    letter-spacing:-.035em;
    font-weight:500;
}
.port-page .pp-related-head a {
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--pp-accent-dark);
    text-decoration:none;
    font-size:14px;
    font-weight:800;
}
.port-page .pp-related-head a:hover { color:var(--pp-accent); }
.port-page .pp-related-title-wrap {
    display:flex;
    flex-direction:column;
    gap:3px;
}
.port-page .pp-related-kicker {
    font-size:10px;
    font-weight:800;
    letter-spacing:.2em;
    color:var(--pp-accent);
}
.port-page .pp-related-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}
.port-page .pp-related-card {
    height:100%;
    overflow:hidden;
    background:#fff;
    border:0;
    border-radius:24px;
    box-shadow:0 14px 38px rgba(19,58,76,.09);
    transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.port-page .pp-related-card:hover {
    transform:translateY(-6px);
    border-color:#c4dbe3;
    box-shadow:0 20px 42px rgba(25,59,76,.12);
}
.port-page .pp-related-image {
    width:100%;
    height:220px;
    display:block;
    object-fit:cover;
    background:#eaf3f5;
}
.port-page .pp-related-body {
    padding:19px;
    display:flex;
    flex-direction:column;
    min-height:170px;
}
.port-page .pp-related-body h3 {
    margin:0 0 8px;
    color:var(--pp-ink);
    font-size:19px;
    line-height:1.2;
}
.port-page .pp-related-city {
    margin:0 0 17px;
    color:#73858e;
    font-size:14px;
}
.port-page .pp-related-city i {
    color:var(--pp-accent);
    margin-right:6px;
}
.port-page .pp-related-button {
    margin-top:auto;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:43px;
    border:0;
    border-radius:999px;
    color:var(--pp-accent-dark);
    background:#edf7f8;
    text-decoration:none;
    font-size:13px;
    font-weight:800;
    transition:all .2s ease;
}
.port-page .pp-related-button:hover {
    background:var(--pp-accent);
    border-color:var(--pp-accent);
    color:#fff;
}

@media (max-width:1100px) {
    .port-page .pp-hero { grid-template-columns:1fr 1fr; }
    .port-page .pp-related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:800px) {
    .port-page .pp-hero { grid-template-columns:1fr; }
    .port-page .pp-hero-photo { min-height:330px; }
    .port-page .pp-hero-content { padding:36px 28px; }
    .port-page .pp-info-grid,
    .port-page .pp-data-grid { grid-template-columns:1fr; }
    .port-page .pp-related-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:560px) {
    .port-page .pp-shell { padding:0 6px; }
    .port-page .pp-hero { border-radius:24px; }
    .port-page .pp-hero-photo { min-height:260px; }
    .port-page .pp-hero-content { padding:30px 22px; }
    .port-page .pp-hero h1 { font-size:38px; }
    .port-page .pp-coordinates {
        align-items:flex-start;
        flex-direction:column;
    }
    .port-page .pp-section-panel {
        padding:23px 18px;
        border-radius:21px;
    }
    .port-page .pp-related-grid { grid-template-columns:1fr; }
    .port-page .pp-related-head {
        align-items:flex-start;
        flex-direction:column;
    }
}

/* =========================================================
   UNIVERSAL BREADCRUMBS
   Same visual language as the port detail breadcrumb
   ========================================================= */

.cp-breadcrumb-wrap {
    margin-top: -20px;
    margin-bottom: 22px;
}

.cp-breadcrumb {
    margin: 0;
    padding: 0;
    color: #80909a;
    font-size: 13px;
    background: transparent;
    border: 0;
}

.cp-breadcrumb .breadcrumb-item {
    color: #80909a;
}

.cp-breadcrumb .breadcrumb-item a {
    color: #80909a;
    text-decoration: none;
}

.cp-breadcrumb .breadcrumb-item a:hover {
    color: var(--pp-accent, #247da3);
    text-decoration: none;
}

.cp-breadcrumb .breadcrumb-item.active {
    color: #80909a;
}

/* Match the breadcrumb separator used on the port detail page. */
.cp-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    float: left;
    padding-right: .55rem;
    padding-left: .55rem;
    color: #b8c3c8;
    content: "/";
}

.cp-breadcrumb .breadcrumb-item + .breadcrumb-item {
    padding-left: 0;
}

.port-card {
    overflow: hidden;
}

.port-card-image {
    display: block;
    overflow: hidden;
    text-decoration: none;
}

.port-card-image .card-img-top {
    display: block;
    width: 100%;
    height: 220px;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.port-card-image:hover .card-img-top {
    transform: scale(1.035);
}

.port-card-button {
    margin-top:auto;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:43px;
    border:0;
    border-radius:999px;
    color:var(--pp-accent-dark);
    background:#edf7f8;
    text-decoration:none;
    font-size:13px;
    font-weight:800;
    transition:all .2s ease;
}

.port-card-button:hover {
    background:var(--pp-accent);
    border-color:var(--pp-accent);
    color:#fff;
}

.port-card-button i {
    font-size: 14px;
}

/* =========================================================
   COMPANIES LISTING
   ========================================================= */

.companies-page {
    color: var(--pp-ink, var(--cp-text));
}

.companies-page-header {
    max-width: 900px;
    margin: 0 auto 42px;
    text-align: center;
}

.companies-page-header .cp-eyebrow {
    justify-content: center;
}

.companies-page-header h1 {
    margin: 0 0 12px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(38px, 4.5vw, 56px);
    line-height: 1;
    font-weight: 500;
    letter-spacing: -.035em;
    color: var(--pp-ink, #173447);
}

.companies-page-header p {
    max-width: 720px;
    margin: 0 auto;
    color: var(--pp-muted, #70818c);
    font-size: 16px;
    line-height: 1.7;
}

.company-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    border: 0;
    border-radius: 24px;
    box-shadow: 0 14px 38px rgba(19,58,76,.08);
    transition: transform .22s ease, box-shadow .22s ease;
}

.company-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 46px rgba(19,58,76,.12);
}

.company-card-top {
    min-height: 58px;
    padding: 20px 22px 0;
}

.company-card-top > div {
    min-height: 28px;
}

.company-card-top .badge {
    border-radius: 999px;
    padding: 7px 12px !important;
    background: var(--pp-pale, #edf7f8) !important;
    color: var(--pp-accent-dark, #155a78) !important;
    font-size: 11px;
    font-weight: 800;
}

.company-logo-wrap {
    height: 118px;
    margin: 4px 22px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
}

.company-logo-wrap img {
    max-width: 220px;
    max-height: 88px;
    width: auto;
    height: auto;
    object-fit: contain;
}

.company-logo-placeholder {
    width: 58px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--pp-pale, #edf7f8);
    color: var(--pp-accent, #247da3);
    font-size: 24px;
}

.company-card-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 22px 22px 22px;
}

.company-card-body h2 {
    margin: 0 0 14px;
    color: var(--pp-ink, #173447);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 23px;
    line-height: 1.15;
    font-weight: 500;
    letter-spacing: -.02em;
    text-align: center;
}

.company-tags {
    min-height: 40px;
    margin-bottom: 20px;
    text-align: center;
}

.company-tags .badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border-radius: 999px !important;
    margin: 0 3px 5px 0 !important;
    padding: 6px 9px;
    background: #edf7f8 !important;
    color: var(--pp-accent-dark, #155a78) !important;
    font-size: 11px;
    font-weight: 700;
}

.company-stats {
    padding-top: 17px;
    border-top: 1px solid var(--pp-line, #dbe7eb);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.company-stat {
    color: var(--pp-muted, #70818c);
    font-size: 11px;
    line-height: 1.35;
    text-align: center;
}

.company-stat strong {
    display: block;
    margin-bottom: 3px;
    color: var(--pp-ink, #173447);
    font-size: 17px;
    font-weight: 700;
}

.company-stat i {
    display: block;
    margin-bottom: 5px;
    color: var(--pp-accent, #247da3);
    font-size: 15px;
}

.company-card-action {
    width: 100%;
    min-height: 43px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border-radius: 999px;
    background: var(--pp-pale, #edf7f8);
    color: var(--pp-accent-dark, #155a78);
    text-decoration: none;
    font-size: 13px;
    font-weight: 800;
    transition: all .2s ease;
}

.company-card-action:hover {
    background: var(--pp-accent, #247da3);
    color: #fff;
}

@media (max-width: 575.98px) {
    .companies-page-header {
        margin-bottom: 30px;
        text-align: left;
    }

    .companies-page-header .cp-eyebrow {
        justify-content: flex-start;
    }

    .companies-page-header p {
        margin-left: 0;
    }
}


/* =========================================================
   COMPANY DETAIL PAGE
   Visual language aligned with the port detail page
   ========================================================= */

.company-page {
    --company-ocean: #123b5d;
    --company-ocean-dark: #0b2941;
    --company-accent: #247da3;
    --company-soft: #edf7f8;
    --company-ink: #20303d;
    --company-muted: #71808c;
    --company-line: #e4e9ed;
}

.company-page section {
    margin-bottom: 4.2rem;
}

.company-page .cp-breadcrumb-wrap {
    margin-bottom: 22px;
}

.company-page .company-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr);
    min-height: 470px;
    background: #fff;
    border: 1px solid var(--company-line);
    border-radius: 26px;
    overflow: hidden;
    box-shadow: 0 18px 42px rgba(18,59,93,.08);
}

.company-page .company-hero::after {
    content: "";
    position: absolute;
    width: 390px;
    height: 390px;
    right: -190px;
    top: -210px;
    border: 1px solid rgba(36,125,163,.10);
    border-radius: 50%;
    pointer-events: none;
}

.company-page .company-hero-logo {
    min-height: 470px;
    padding: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #f6fafb 0%, #eaf4f7 100%);
}

.company-page .company-hero-logo img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: 320px;
    object-fit: contain;
    object-position: center;
}

.company-page .company-hero-content {
    position: relative;
    z-index: 1;
    padding: 3.4rem 3.5rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.company-page .company-kicker {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    width: fit-content;
    margin-bottom: 1rem;
    padding: .35rem .8rem;
    border-radius: 999px;
    background: var(--company-soft);
    color: var(--company-accent);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.company-page .company-hero-content h1 {
    color: var(--company-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.6rem, 4.5vw, 4.3rem);
    line-height: 1;
    font-weight: 400;
    letter-spacing: -.035em;
    margin: 0 0 1rem;
}

.company-page .company-country {
    color: var(--company-muted);
    font-size: .9rem;
    margin-bottom: 1.2rem;
}

.company-page .company-description {
    max-width: 650px;
    color: #53636e;
    line-height: 1.8;
    font-size: .93rem;
    margin-bottom: 1.25rem;
}

.company-page .company-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-bottom: 1.25rem;
}

.company-page .company-tags .badge,
.company-page .company-characteristics .badge {
    font-size: .68rem;
    font-weight: 600;
    padding: .42rem .7rem;
}

.company-page .company-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .7rem;
    margin-top: .5rem;
}

.company-page .company-stat {
    padding: .85rem .25rem 0;
}

.company-page .company-stat-number {
    color: var(--company-ink);
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1;
    margin-bottom: .3rem;
}

.company-page .company-stat-label {
    color: var(--company-muted);
    font-size: .72rem;
}

.company-page .company-stat-label i {
    color: var(--company-accent);
}

.company-page .company-primary-link {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    margin-top: 1.35rem;
    min-height: 44px;
    padding: 10px 20px;
    border: 0;
    border-radius: 999px;
    background: var(--company-soft);
    color: var(--company-accent);
    font-size: .8rem;
    font-weight: 800;
    text-decoration: none;
    transition: .2s ease;
}

.company-page .company-primary-link:hover {
    background: var(--company-accent);
    color: #fff;
    transform: translateY(-1px);
}

.company-page .company-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.company-page .company-section-title {
    display: flex;
    align-items: center;
    gap: .7rem;
}

.company-page .company-section-icon {
    width: 2.55rem;
    height: 2.55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--company-soft);
    color: var(--company-accent);
}

.company-page .company-section-heading h2 {
    color: var(--company-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.65rem;
    font-weight: 400;
    letter-spacing: -.02em;
    margin: 0;
}

.company-page .company-section-heading p {
    color: var(--company-muted);
    font-size: .78rem;
    margin: .2rem 0 0;
}

.company-page .company-section-link,
.company-page .company-card-link {
    color: var(--company-accent);
    text-decoration: none;
    font-size: .8rem;
    font-weight: 700;
}

.company-page .company-section-link:hover,
.company-page .company-card-link:hover {
    color: var(--company-ocean-dark);
}

.company-page .company-characteristics,
.company-page .company-content-box,
.company-page .company-facts {
    padding: 1.8rem 2rem;
    border: 1px solid var(--company-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(18,59,93,.035);
}

.company-page .company-characteristics {
    background: linear-gradient(135deg, #f6fafb, #edf7f8);
}

.company-page .company-characteristics h3 {
    color: var(--company-ink);
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: .25rem;
}

.company-page .company-characteristics p,
.company-page .company-long-description,
.company-page .company-fact-label {
    color: var(--company-muted);
}

.company-page .company-long-description {
    font-size: .92rem;
    line-height: 1.85;
}

.company-page .company-ship-card,
.company-page .company-cruise-card {
    height: 100%;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--company-line);
    border-radius: 22px;
    box-shadow: 0 8px 24px rgba(18,59,93,.045);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.company-page .company-ship-card:hover,
.company-page .company-cruise-card:hover {
    transform: translateY(-4px);
    border-color: #cbdde7;
    box-shadow: 0 16px 34px rgba(18,59,93,.10);
}

.company-page .company-ship-image,
.company-page .company-cruise-image {
    overflow: hidden;
    background: #edf4f6;
}

.company-page .company-ship-image {
    aspect-ratio: 9 / 9;
}

.company-page .company-cruise-image {
    position: relative;
    aspect-ratio: 1 / 1;
}

.company-page .company-ship-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.company-page .company-ship-card:hover .company-ship-image img {
    transform: scale(1.035);
}

.company-page .company-card-body {
    padding: 1.15rem 1.2rem 1.25rem;
}

.company-page .company-card-body h3 {
    color: var(--company-ink);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 .6rem;
}

.company-page .company-card-description,
.company-page .company-card-info {
    color: var(--company-muted);
    font-size: .76rem;
    line-height: 1.55;
}

.company-page .company-card-info {
    margin-bottom: .45rem;
}

.company-page .company-card-info i {
    color: var(--company-accent);
    width: 1rem;
    margin-right: .25rem;
}

.company-page .company-card-price {
    color: #2f8a68;
    font-size: 1.05rem;
    font-weight: 700;
    margin: .7rem 0;
}

.company-page .company-card-link {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-top: .45rem;
}

.company-page .company-gallery-image {
    height: 500px;
    object-fit: cover;
}

.company-page .company-destination {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1.08;
    border-radius: 18px;
    background: #dce9ed;
    text-decoration: none;
}

.company-page .company-destination img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}

.company-page .company-destination::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(5,25,39,.75), rgba(5,25,39,0) 62%);
}

.company-page .company-destination:hover img {
    transform: scale(1.045);
}

.company-page .company-destination-name {
    position: absolute;
    z-index: 2;
    left: .9rem;
    right: .9rem;
    bottom: .85rem;
    color: #fff;
    font-size: .85rem;
    font-weight: 700;
}

.company-page .company-why {
    padding: 2.5rem 2rem;
    border-radius: 22px;
    background: linear-gradient(135deg, #f6fafb, #edf7f8);
    border: 1px solid var(--company-line);
}

.company-page .company-why h2 {
    color: var(--company-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.65rem;
    font-weight: 400;
    margin-bottom: 2rem;
}

.company-page .company-why-icon {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #fff;
    color: var(--company-accent);
    margin-bottom: .75rem;
    box-shadow: 0 4px 14px rgba(18,59,93,.06);
}

.company-page .company-why-item h3 {
    color: var(--company-ink);
    font-size: .9rem;
    font-weight: 700;
    margin: 0 0 .3rem;
}

.company-page .company-why-item p {
    color: var(--company-muted);
    font-size: .75rem;
    line-height: 1.55;
    margin: 0;
}

.company-page .company-fact {
    padding: .8rem 0;
    border-bottom: 1px solid var(--company-line);
}

.company-page .company-fact:last-child {
    border-bottom: 0;
}

.company-page .company-fact-label {
    font-size: .7rem;
    margin-bottom: .2rem;
}

.company-page .company-fact-value {
    color: var(--company-ink);
    font-size: .84rem;
    font-weight: 600;
    word-break: break-word;
}

.company-page .company-fact-value a {
    color: var(--company-accent);
}

.company-page .company-cta {
    position: relative;
    overflow: hidden;
    padding: 2.8rem 2rem;
    border-radius: 24px;
    background: var(--company-ocean);
    color: #fff;
}

.company-page .company-cta h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.75rem;
    font-weight: 400;
    margin-bottom: .55rem;
}

.company-page .company-cta p {
    max-width: 680px;
    margin: 0 auto 1.5rem;
    color: rgba(255,255,255,.82);
    font-size: .9rem;
    line-height: 1.65;
}

.company-page .company-cta .btn {
    border-radius: 999px;
    border: 0;
    color: var(--company-ocean);
    font-weight: 700;
}

.company-page .company-related-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 50px;
    padding: .7rem 1rem;
    border: 1px solid #cbdde7;
    border-radius: 999px;
    color: var(--company-accent);
    background: #fff;
    text-decoration: none;
    font-size: .8rem;
    font-weight: 700;
    transition: .2s ease;
}

.company-page .company-related-link:hover {
    background: var(--company-soft);
    border-color: #b8d0de;
    color: var(--company-ocean-dark);
}

/* Existing reveal / flip behavior remains, but is safely scoped to this page. */
.company-page .company-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .55s ease, transform .55s ease;
    will-change: opacity, transform;
}

.company-page .company-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.company-page .company-delay-1 { transition-delay: .05s; }
.company-page .company-delay-2 { transition-delay: .10s; }
.company-page .company-delay-3 { transition-delay: .15s; }
.company-page .company-delay-4 { transition-delay: .20s; }
.company-page .company-delay-5 { transition-delay: .25s; }
.company-page .company-delay-6 { transition-delay: .30s; }

.company-page .company-cruise-flip { position:relative; width:100%; height:100%; perspective:1200px; cursor:pointer; }
.company-page .company-cruise-flip-inner { position:relative; width:100%; height:100%; transform-style:preserve-3d; transition:transform .65s cubic-bezier(.2,.7,.2,1); }
.company-page .company-cruise-flip.is-flipped .company-cruise-flip-inner { transform:rotateY(180deg); }
.company-page .company-cruise-face { position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden; }
.company-page .company-cruise-face img, .company-page .company-cruise-single img { display:block; width:100%; height:100%; }
.company-page .company-cruise-front img { object-fit:cover; }
.company-page .company-cruise-back { transform:rotateY(180deg); background:#f8fafc; }
.company-page .company-cruise-back img, .company-page .company-cruise-single.is-map img { object-fit:contain; background:#f8fafc; }
.company-page .company-cruise-single { position:relative; width:100%; height:100%; }
.company-page .company-cruise-map-icon { position:absolute; top:12px; right:12px; z-index:3; width:38px; height:38px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:rgba(18,59,93,.95); color:#fff; box-shadow:0 5px 16px rgba(18,59,93,.18); pointer-events:none; }

@media (prefers-reduced-motion: reduce) {
    .company-page .company-cruise-flip-inner,
    .company-page .company-reveal {
        transition: none;
    }
    .company-page .company-reveal {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 991.98px) {
    .company-page .company-hero {
        grid-template-columns: 1fr;
    }
    .company-page .company-hero-logo {
        min-height: 280px;
    }
}

@media (max-width: 767.98px) {
    .company-page section {
        margin-bottom: 3.2rem;
    }
    .company-page .company-hero-content {
        padding: 2rem 1.4rem;
    }
    .company-page .company-hero-logo {
        min-height: 220px;
        padding: 1.5rem;
    }
    .company-page .company-stats {
        gap: .4rem;
    }
    .company-page .company-stat-number {
        font-size: 1.25rem;
    }
    .company-page .company-section-heading {
        align-items: center;
    }
    .company-page .company-section-heading h2 {
        font-size: 1.3rem;
    }
    .company-page .company-section-link {
        display: none;
    }
    .company-page .company-content-box,
    .company-page .company-facts {
        padding: 1.4rem;
    }
    .company-page .company-why {
        padding: 2rem 1rem;
    }
    .company-page .company-gallery-image {
        height: 300px;
    }
}

/* Company logo on listing: clickable profile link */
.company-logo-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    text-decoration: none;
    border-radius: 16px;
}

.company-logo-link img {
    transition: transform .25s ease, opacity .25s ease;
}

.company-logo-link:hover img {
    transform: scale(1.035);
    opacity: .92;
}


/* ==========================================================
   SHIP DETAIL PAGE
========================================================== */
.ship-page{color:var(--cp-text,#20303d);}
.ship-page .cp-breadcrumb-wrap{margin-bottom:22px;}
.ship-hero-section{margin-bottom:34px;}
.ship-hero-card,.ship-content-card,.ship-cruise-card,.ship-destination-card,.ship-related-card,.ship-stat-card{
    background:#fff;
    border:1px solid var(--cp-border,#e4e9ed);
    border-radius:24px;
    box-shadow:0 10px 28px rgba(31,53,69,.06);
}
.ship-hero-card{overflow:hidden;}
.ship-hero-image-wrap{height:100%;min-height:500px;background:#eef2f5;overflow:hidden;}
.ship-hero-image{display:block;width:100%;height:100%;min-height:500px;object-fit:cover;}
.ship-hero-card .card-body{background:#fff;}
.ship-class-badge{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:999px;background:#edf7f8;color:#247da3;font-size:12px;font-weight:800;letter-spacing:.02em;}
.ship-hero-card h1{font-family:Georgia,"Times New Roman",serif;color:var(--cp-primary,#123b5d);font-weight:700;line-height:1.08;}
.ship-hero-card a{color:#247da3;}
.ship-hero-card a:hover{color:#123b5d;}
.ship-fact{height:100%;padding:15px;border:1px solid #e7ecef;border-radius:16px;background:#f7f9fa;}
.ship-fact .small{color:#7a8993!important;font-size:12px;}
.ship-fact .fs-5{color:#20303d;}
.ship-primary-button,.ship-section-button,.ship-card-button,.ship-cta-button{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    border:0;border-radius:999px;text-decoration:none;font-weight:800;transition:all .2s ease;
}
.ship-primary-button{min-height:48px;padding:12px 22px;background:#edf7f8;color:#247da3;}
.ship-primary-button:hover{background:#247da3;color:#fff;}
.ship-section{margin-bottom:34px;}
.ship-content-card{overflow:hidden;}
.ship-section h2,.ship-section h3{color:var(--cp-primary,#123b5d);font-family:Georgia,"Times New Roman",serif;font-weight:700;}
.ship-section-icon{width:48px;height:48px;flex:0 0 48px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#edf7f8;color:#247da3;}
.ship-description{font-size:18px;line-height:1.9;}
.ship-tech-item{height:100%;padding:16px;border:1px solid #e7ecef;border-radius:16px;background:#f8fafb;}
.ship-tech-item .small{color:#7a8993!important;font-size:12px;}
.ship-tech-item .fw-semibold,.ship-tech-item .fs-5{color:#20303d;}
.ship-tech-item a{color:#247da3;text-decoration:none;}
.ship-tech-item a:hover{color:#123b5d;}
.ship-gallery-image{display:block;width:100%;height:550px;object-fit:cover;}
.ship-page .carousel{border-radius:22px;overflow:hidden;box-shadow:0 10px 28px rgba(31,53,69,.08)!important;}
.ship-stat-card{padding:0;}
.ship-stat-card .card-body{padding:28px 20px;}
.ship-stat-number{color:#247da3!important;}
.ship-section-button{min-height:42px;padding:10px 18px;background:#edf7f8;color:#247da3;font-size:13px;}
.ship-section-button:hover{background:#247da3;color:#fff;}
.ship-cruise-card,.ship-destination-card,.ship-related-card{overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;}
.ship-cruise-card:hover,.ship-destination-card:hover,.ship-related-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(31,53,69,.10);}
.ship-cruise-card .card-body,.ship-destination-card .card-body,.ship-related-card .card-body{padding:20px;}
.ship-cruise-card .card-title,.ship-related-card .card-title{color:#20303d;font-weight:800;}
.ship-cruise-card .fs-4{color:#247da3!important;}
.ship-card-button{min-height:43px;padding:10px 18px;background:#edf7f8;color:#247da3;font-size:13px;}
.ship-card-button:hover{background:#247da3;color:#fff;}
.ship-card-button-sm{min-height:39px;padding:9px 16px;}
.ship-destination-image{display:block;width:100%;height:auto;object-fit:cover;}
.ship-related-image-link{display:block;height:220px;overflow:hidden;text-decoration:none;background:#eef2f5;}
.ship-related-image{display:block;width:100%;height:auto;object-fit:cover;transition:transform .35s ease;}
.ship-related-image-link:hover .ship-related-image{transform:scale(1.035);}
.ship-cta{
    position:relative;
    overflow:hidden;
    isolation:isolate;
    background:
        radial-gradient(circle at 12% 20%, rgba(36,125,163,.10) 0, rgba(36,125,163,0) 30%),
        radial-gradient(circle at 88% 82%, rgba(216,155,88,.12) 0, rgba(216,155,88,0) 30%),
        linear-gradient(135deg,#f7fbfb 0%,#edf7f8 48%,#f9faf8 100%);
    border:1px solid #dfeaec;
    border-radius:28px;
    color:var(--cp-text,#20303d);
    text-align:center;
    padding:56px 28px 58px;
    box-shadow:0 16px 38px rgba(31,53,69,.08);
}
.ship-cta::before{
    content:"";
    position:absolute;z-index:-1;
    width:360px;height:360px;left:-150px;bottom:-230px;
    border:1px solid rgba(36,125,163,.10);border-radius:50%;
    box-shadow:0 0 0 28px rgba(36,125,163,.035),0 0 0 56px rgba(36,125,163,.025);
}
.ship-cta::after{
    content:"";position:absolute;z-index:-1;
    width:300px;height:150px;right:-80px;top:-70px;
    border-radius:50%;background:rgba(255,255,255,.65);
    transform:rotate(-12deg);box-shadow:0 22px 0 rgba(255,255,255,.28);
}
.ship-cta-inner{position:relative;z-index:2;max-width:820px;margin:0 auto;}
.ship-cta-decoration{position:absolute;z-index:0;pointer-events:none;border-radius:50%;border:1px solid rgba(36,125,163,.10);}
.ship-cta-decoration-one{width:92px;height:92px;left:7%;top:18%;}
.ship-cta-decoration-two{width:52px;height:52px;right:10%;bottom:18%;border-color:rgba(216,155,88,.18);}
.ship-cta-icon{
    width:62px;height:62px;margin:0 auto 17px;display:flex;align-items:center;justify-content:center;
    border-radius:50%;background:#fff;color:#247da3;font-size:24px;
    box-shadow:0 8px 22px rgba(31,53,69,.10);
}
.ship-cta-eyebrow{margin-bottom:10px;color:#247da3;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;}
.ship-cta h2{
    margin:0 auto 14px;max-width:760px;color:var(--cp-primary,#123b5d);
    font-family:Georgia,"Times New Roman",serif;font-size:clamp(28px,3vw,40px);line-height:1.14;font-weight:700;
}
.ship-cta p{max-width:690px;margin:0 auto 27px;color:#667782;font-size:16px;line-height:1.7;}
.ship-cta-button{
    min-height:48px;padding:12px 25px;background:#fff;color:#123b5d;
    border:1px solid #dce7ea;box-shadow:0 7px 18px rgba(31,53,69,.08);
}
.ship-cta-button:hover{background:#123b5d;color:#fff;border-color:#123b5d;transform:translateY(-1px);}

@media(max-width:991.98px){
    .ship-hero-image-wrap,.ship-hero-image{min-height:360px;height:360px;}
}
@media(max-width:767.98px){
    .ship-gallery-image{height:360px;}
    .ship-description{font-size:16px;line-height:1.8;}
    .ship-cta{padding:42px 18px 44px;}
}
@media(max-width:575.98px){
    .ship-hero-image-wrap,.ship-hero-image{min-height:280px;height:280px;}
    .ship-gallery-image{height:280px;}
    .ship-section-button{width:100%;margin-top:12px;}
}

/* Reveal / cruise media moved from ship page */
.cruise-reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease;}
.cruise-reveal.is-visible,.cruise-reveal-visible{opacity:1;transform:translateY(0);}
.cruise-delay-1{transition-delay:.05s}.cruise-delay-2{transition-delay:.10s}.cruise-delay-3{transition-delay:.15s}.cruise-delay-4{transition-delay:.20s}.cruise-delay-5{transition-delay:.25s}.cruise-delay-6{transition-delay:.30s}.cruise-delay-7{transition-delay:.35s}.cruise-delay-8{transition-delay:.40s}
.ship-cruise-media{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;background:#f1f5f9;}
.ship-cruise-media-single img,.ship-cruise-media-face img{display:block;width:100%;height:100%;}
.ship-cruise-media-single img,.ship-cruise-media-front img{object-fit:cover;}
.ship-cruise-media-map img,.ship-cruise-media-back img{object-fit:contain;background:#f8fafc;}
.ship-cruise-media-flip{perspective:1200px;cursor:pointer;}
.ship-cruise-media-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.2,.7,.2,1);}
.ship-cruise-media-flip:hover .ship-cruise-media-inner,.ship-cruise-media-flip.is-flipped .ship-cruise-media-inner{transform:rotateY(180deg);}
.ship-cruise-media-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;}
.ship-cruise-media-back{transform:rotateY(180deg);background:#f8fafc;}
.ship-cruise-map-icon{position:absolute;top:12px;right:12px;z-index:3;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(36,125,163,.95);color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.18);pointer-events:none;}
.ship-cruise-map-icon i{font-size:18px;}
@media(max-width:767.98px){.ship-cruise-media-flip:hover .ship-cruise-media-inner{transform:none;}}
@media(prefers-reduced-motion:reduce){.cruise-reveal{opacity:1;transform:none;transition:none}.ship-cruise-media-inner{transition:none}}


/* Refined company CTA — aligned with the ship page CTA */
.company-page .company-cta{
    position:relative;
    overflow:hidden;
    isolation:isolate;
    background:
        radial-gradient(circle at 12% 20%, rgba(36,125,163,.10) 0, rgba(36,125,163,0) 30%),
        radial-gradient(circle at 88% 82%, rgba(216,155,88,.12) 0, rgba(216,155,88,0) 30%),
        linear-gradient(135deg,#f7fbfb 0%,#edf7f8 48%,#f9faf8 100%);
    border:1px solid #dfeaec;
    border-radius:28px;
    color:var(--company-ink,#20303d);
    text-align:center;
    padding:56px 28px 58px;
    box-shadow:0 16px 38px rgba(31,53,69,.08);
}
.company-page .company-cta::before{
    content:"";
    position:absolute;z-index:-1;
    width:360px;height:360px;left:-150px;bottom:-230px;
    border:1px solid rgba(36,125,163,.10);border-radius:50%;
    box-shadow:0 0 0 28px rgba(36,125,163,.035),0 0 0 56px rgba(36,125,163,.025);
}
.company-page .company-cta::after{
    content:"";
    position:absolute;z-index:-1;
    width:300px;height:150px;right:-80px;top:-70px;
    border-radius:50%;background:rgba(255,255,255,.65);
    transform:rotate(-12deg);box-shadow:0 22px 0 rgba(255,255,255,.28);
}
.company-page .company-cta-inner{position:relative;z-index:2;max-width:820px;margin:0 auto;}
.company-page .company-cta-decoration{position:absolute;z-index:0;pointer-events:none;border-radius:50%;border:1px solid rgba(36,125,163,.10);}
.company-page .company-cta-decoration-one{width:92px;height:92px;left:7%;top:18%;}
.company-page .company-cta-decoration-two{width:52px;height:52px;right:10%;bottom:18%;border-color:rgba(216,155,88,.18);}
.company-page .company-cta-icon{
    width:62px;height:62px;margin:0 auto 17px;display:flex;align-items:center;justify-content:center;
    border-radius:50%;background:#fff;color:#247da3;font-size:24px;
    box-shadow:0 8px 22px rgba(31,53,69,.10);
}
.company-page .company-cta-eyebrow{
    margin-bottom:10px;color:#247da3;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
}
.company-page .company-cta h2{
    margin:0 auto 14px;max-width:760px;color:var(--cp-primary,#123b5d);
    font-family:Georgia,"Times New Roman",serif;font-size:clamp(28px,3vw,40px);line-height:1.14;font-weight:700;
}
.company-page .company-cta p{
    max-width:690px;margin:0 auto 27px;color:#667782;font-size:16px;line-height:1.7;
}
.company-page .company-cta p strong{color:#425762;}
.company-page .company-cta-button{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    min-height:48px;padding:12px 25px;background:#fff;color:#123b5d;
    border:1px solid #dce7ea;border-radius:999px;text-decoration:none;font-weight:800;
    box-shadow:0 7px 18px rgba(31,53,69,.08);transition:all .2s ease;
}
.company-page .company-cta-button:hover{background:#123b5d;color:#fff;border-color:#123b5d;transform:translateY(-1px);}

@media(max-width:767.98px){
    .company-page .company-cta{padding:42px 18px 44px;}
    .company-page .company-cta-decoration-one{left:0;top:16%;}
    .company-page .company-cta-decoration-two{right:2%;bottom:12%;}
}


/* =========================================================
   DESTINATIONS — LIST + DETAIL
   ========================================================= */

.destinations-page,
.destination-page {
    --dst-ink:#173447;
    --dst-muted:#70818c;
    --dst-line:#dbe7eb;
    --dst-accent:#247da3;
    --dst-accent-dark:#155a78;
    --dst-pale:#edf7f8;
}

/* Shared breadcrumbs */
.destinations-page .cp-breadcrumb,
.destination-page .cp-breadcrumb {
    margin-bottom:0;
}

.destinations-page .cp-breadcrumb .breadcrumb-item a,
.destination-page .cp-breadcrumb .breadcrumb-item a {
    color:#80909a;
    text-decoration:none;
}

.destinations-page .cp-breadcrumb .breadcrumb-item a:hover,
.destination-page .cp-breadcrumb .breadcrumb-item a:hover {
    color:var(--dst-accent);
    text-decoration:none;
}

.destinations-page .cp-breadcrumb .breadcrumb-item.active,
.destination-page .cp-breadcrumb .breadcrumb-item.active {
    color:#9aa8af;
}

/* ---------------------------------------------------------
   Destinations listing
   --------------------------------------------------------- */

.destinations-page .page-intro {
    text-align:center;
    padding:1.2rem 0 2.4rem;
}

.destinations-page .page-intro h1 {
    margin:0 0 .7rem;
    color:var(--dst-ink);
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(2.2rem,4vw,3.5rem);
    font-weight:500;
    letter-spacing:-.035em;
}

.destinations-page .page-intro p {
    max-width:760px;
    margin:0 auto;
    color:var(--dst-muted);
    font-size:1rem;
    line-height:1.7;
}

.destinations-page .destination-card {
    height:100%;
    display:flex;
    flex-direction:column;
    background:#fff;
    border:1px solid var(--dst-line);
    border-radius:22px;
    overflow:hidden;
    box-shadow:0 10px 30px rgba(19,58,76,.055);
    transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}

.destinations-page .destination-link {
    display:block;
    height:100%;
    color:inherit;
    text-decoration:none;
}

.destinations-page .destination-link:hover .destination-card {
    transform:translateY(-5px);
    border-color:#c6dce4;
    box-shadow:0 18px 42px rgba(19,58,76,.11);
}

.destinations-page .destination-image {
    aspect-ratio:16/9;
    overflow:hidden;
    background:#edf5f7;
    position:relative;
}

.destinations-page .destination-image img {
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .45s ease;
}

.destinations-page .destination-link:hover .destination-image img {
    transform:scale(1.045);
}

.destinations-page .destination-image:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(to top,rgba(5,25,39,.58),transparent 58%);
    pointer-events:none;
}

.destinations-page .destination-image-title {
    position:absolute;
    z-index:1;
    left:1.25rem;
    right:1.25rem;
    bottom:1.05rem;
    color:#fff;
    font-family:Georgia,"Times New Roman",serif;
    font-size:1.45rem;
    font-weight:500;
    line-height:1.15;
    text-shadow:0 2px 12px rgba(0,0,0,.35);
}

.destinations-page .destination-card-body {
    display:flex;
    flex-direction:column;
    flex:1;
    padding:1.15rem 1.25rem 1.3rem;
}

.destinations-page .destination-card-body h2 {
    color:var(--dst-ink);
    font-size:1.08rem;
    font-weight:700;
    margin:0 0 .55rem;
}

.destinations-page .destination-card-description {
    color:var(--dst-muted);
    font-size:.84rem;
    line-height:1.65;
    margin:0;
}

/* ---------------------------------------------------------
   Destination detail — hero
   --------------------------------------------------------- */

.destination-page {
    color:var(--dst-ink);
}

.destination-page section {
    margin-bottom:3.8rem;
}

.destination-page .destination-hero {
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
    min-height:500px;
    background:#fff;
    border:1px solid var(--dst-line);
    border-radius:30px;
    overflow:hidden;
    box-shadow:0 22px 65px rgba(19,58,76,.09);
}

.destination-page .destination-hero-image {
    min-height:500px;
    overflow:hidden;
    background:#edf5f7;
}

.destination-page .destination-hero-image img {
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .6s ease;
}

.destination-page .destination-hero:hover .destination-hero-image img {
    transform:scale(1.018);
}

.destination-page .destination-hero-content {
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:50px 54px;
    background:linear-gradient(135deg,#fff 0%,#fbfefe 70%,#eef7f8 100%);
}

.destination-page .destination-hero-content:before {
    content:"";
    position:absolute;
    width:300px;
    height:300px;
    right:-155px;
    top:-145px;
    border:1px solid rgba(36,125,163,.10);
    border-radius:50%;
    box-shadow:0 0 0 50px rgba(36,125,163,.025),0 0 0 100px rgba(36,125,163,.015);
    pointer-events:none;
}

.destination-page .destination-kicker {
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:8px;
    width:max-content;
    padding:7px 12px;
    margin-bottom:16px;
    border:1px solid #dce9ed;
    border-radius:999px;
    background:#f8fbfc;
    color:var(--dst-accent);
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.destination-page .destination-hero-content h1 {
    position:relative;
    margin:0 0 18px;
    color:var(--dst-ink);
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(2.4rem,4.5vw,4.2rem);
    font-weight:500;
    line-height:.98;
    letter-spacing:-.035em;
}

.destination-page .destination-hero-description {
    position:relative;
    max-width:650px;
    margin-bottom:22px;
    color:#566c77;
    font-size:16px;
    line-height:1.75;
}

.destination-page .destination-stats {
    position:relative;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
    margin-top:8px;
}

.destination-page .destination-stat {
    padding:16px 4px 0;
    border-top:1px solid var(--dst-line);
}

.destination-page .destination-stat-number {
    margin-bottom:4px;
    color:var(--dst-ink);
    font-size:1.65rem;
    line-height:1;
    font-weight:700;
}

.destination-page .destination-stat-label {
    color:var(--dst-muted);
    font-size:12px;
}

.destination-page .destination-stat-label i {
    margin-right:4px;
    color:var(--dst-accent);
}

.destination-page .destination-primary-link {
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    align-self:flex-start;
    gap:8px;
    margin-top:25px;
    min-height:45px;
    padding:10px 19px;
    border:0;
    border-radius:999px;
    background:#edf7f8;
    color:var(--dst-accent-dark);
    text-decoration:none;
    font-size:13px;
    font-weight:800;
    transition:all .2s ease;
}

.destination-page .destination-primary-link:hover {
    background:var(--dst-accent);
    color:#fff;
    transform:translateY(-2px);
}

/* ---------------------------------------------------------
   Section headers / content
   --------------------------------------------------------- */

.destination-page .destination-section-heading {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:22px;
}

.destination-page .destination-section-title {
    display:flex;
    align-items:center;
    gap:14px;
}

.destination-page .destination-section-icon {
    width:46px;
    height:46px;
    flex:0 0 46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#edf7f8;
    color:var(--dst-accent);
}

.destination-page .destination-section-heading h2 {
    margin:0;
    color:var(--dst-ink);
    font-family:Georgia,"Times New Roman",serif;
    font-size:28px;
    font-weight:500;
    letter-spacing:-.03em;
}

.destination-page .destination-section-heading p {
    margin:4px 0 0;
    color:var(--dst-muted);
    font-size:13px;
}

.destination-page .destination-section-link,
.destination-page .destination-card-link {
    color:var(--dst-accent-dark);
    text-decoration:none;
    font-size:13px;
    font-weight:800;
}

.destination-page .destination-section-link:hover,
.destination-page .destination-card-link:hover {
    color:var(--dst-accent);
}

.destination-page .destination-content-box {
    padding:30px 32px;
    background:#fff;
    border:1px solid var(--dst-line);
    border-radius:22px;
    box-shadow:0 12px 38px rgba(19,58,76,.055);
}

.destination-page .destination-long-description {
    color:#526874;
    font-size:16px;
    line-height:1.9;
}

/* ---------------------------------------------------------
   Company / ship / cruise cards
   --------------------------------------------------------- */

.destination-page .destination-company-card,
.destination-page .destination-ship-card,
.destination-page .destination-cruise-card,
.destination-page .destination-related-card {
    height:100%;
    overflow:hidden;
    background:#fff;
    border:1px solid var(--dst-line);
    border-radius:20px;
    box-shadow:0 8px 26px rgba(19,58,76,.045);
    transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}

.destination-page .destination-company-card:hover,
.destination-page .destination-ship-card:hover,
.destination-page .destination-cruise-card:hover,
.destination-page .destination-related-card:hover {
    transform:translateY(-5px);
    border-color:#c6dce4;
    box-shadow:0 16px 38px rgba(19,58,76,.10);
}

.destination-page .company-tile {
    display:flex;
    flex-direction:column;
    height:100%;
    overflow:hidden;
    background:#fff;
    border:1px solid var(--dst-line);
    border-radius:20px;
    color:var(--dst-ink);
    text-decoration:none;
    box-shadow:0 8px 26px rgba(19,58,76,.045);
    transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}

.destination-page .company-tile:hover {
    transform:translateY(-5px);
    border-color:#c6dce4;
    box-shadow:0 16px 38px rgba(19,58,76,.10);
    color:var(--dst-ink);
}

.destination-page .company-image {
    aspect-ratio:1.55 / 1;
    overflow:hidden;
    background:#f4f8f9;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:1.15rem 1.35rem;
}

.destination-page .company-image img {
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
    transition:transform .25s ease,opacity .25s ease;
}

.destination-page .company-tile:hover .company-image img {
    transform:scale(1.035);
    opacity:.93;
}

.destination-page .company-name {
    padding:1rem .8rem 1.1rem;
    text-align:center;
    color:var(--dst-ink);
    font-size:.84rem;
    font-weight:800;
}

.destination-page .destination-image-wrap {
    aspect-ratio:1/1;
    overflow:hidden;
    background:#edf5f7;
}

.destination-page .destination-image-wrap img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .45s ease;
}

.destination-page .destination-ship-card:hover .destination-image-wrap img {
    transform:scale(1.045);
}

.destination-page .destination-card-body {
    display:flex;
    flex-direction:column;
    flex:1;
    padding:18px 19px 20px;
}

.destination-page .destination-card-body h3 {
    color:var(--dst-ink);
    font-size:18px;
    font-weight:700;
    margin:0 0 10px;
}

.destination-page .destination-card-info {
    color:#6e818b;
    font-size:13px;
    margin-bottom:7px;
}

.destination-page .destination-card-info i {
    width:18px;
    margin-right:3px;
    color:var(--dst-accent);
}

.destination-page .destination-card-price {
    margin:8px 0 13px;
    color:#2f8a68;
    font-size:16px;
    font-weight:800;
}

.destination-page .destination-card-link {
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-top:auto;
    min-height:42px;
    padding:9px 15px;
    border-radius:999px;
    background:#edf7f8;
    color:var(--dst-accent-dark);
    justify-content:center;
    transition:all .2s ease;
}

.destination-page .destination-card-link:hover {
    background:var(--dst-accent);
    color:#fff;
}

/* Cruise image / map flip */
.destination-page .destination-cruise-media {
    position:relative;
    width:100%;
    aspect-ratio:16/16;
    overflow:hidden;
    background:#f4f7f8;
}

.destination-page .destination-cruise-media img {
    width:100%;
    height:100%;
    display:block;
}

.destination-page .destination-cruise-media-front img {
    object-fit:cover;
}

.destination-page .destination-cruise-media-back img {
    object-fit:contain;
    background:#f8fafc;
}

.destination-page .destination-cruise-flip {
    perspective:1200px;
    cursor:pointer;
}

.destination-page .destination-cruise-flip-inner {
    position:relative;
    width:100%;
    height:100%;
    transform-style:preserve-3d;
    transition:transform .65s cubic-bezier(.2,.7,.2,1);
}

.destination-page .destination-cruise-flip:hover .destination-cruise-flip-inner,
.destination-page .destination-cruise-flip.is-flipped .destination-cruise-flip-inner {
    transform:rotateY(180deg);
}

.destination-page .destination-cruise-face {
    position:absolute;
    inset:0;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
}

.destination-page .destination-cruise-back {
    transform:rotateY(180deg);
}

.destination-page .destination-cruise-map-icon {
    position:absolute;
    top:12px;
    right:12px;
    z-index:3;
    width:38px;
    height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:rgba(22,63,80,.94);
    color:#fff;
    box-shadow:0 4px 14px rgba(0,0,0,.18);
    pointer-events:none;
}

@media (pointer:coarse) {
    .destination-page .destination-cruise-flip:hover .destination-cruise-flip-inner {
        transform:none;
    }
}

@media (prefers-reduced-motion:reduce) {
    .destination-page .destination-cruise-flip-inner {
        transition:none;
    }
}

/* Related destination tiles */
.destination-page .destination-tile {
    position:relative;
    display:block;
    overflow:hidden;
    aspect-ratio:1/1.08;
    border-radius:20px;
    background:#dce9ed;
    text-decoration:none;
    box-shadow:0 8px 25px rgba(19,58,76,.06);
}

.destination-page .destination-tile img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .4s ease;
}

.destination-page .destination-tile::after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(to top,rgba(5,25,39,.75),rgba(5,25,39,0) 62%);
}

.destination-page .destination-tile:hover img {
    transform:scale(1.045);
}

.destination-page .destination-tile-name {
    position:absolute;
    z-index:2;
    left:1rem;
    right:1rem;
    bottom:.95rem;
    color:#fff;
    font-family:Georgia,"Times New Roman",serif;
    font-size:18px;
    font-weight:500;
}

/* ---------------------------------------------------------
   Related destinations — detail page
   --------------------------------------------------------- */

.destination-page .destination-link {
    display:block;
    height:100%;
    color:inherit;
    text-decoration:none;
}

.destination-page .destination-link .destination-card {
    height:100%;
    overflow:hidden;
    background:#fff;
    border:1px solid var(--dst-line);
    border-radius:20px;
    box-shadow:0 8px 26px rgba(19,58,76,.045);
    transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}

.destination-page .destination-link:hover .destination-card {
    transform:translateY(-5px);
    border-color:#c6dce4;
    box-shadow:0 16px 38px rgba(19,58,76,.10);
}

.destination-page .destination-link .destination-image {
    position:relative;
    aspect-ratio:9/9;
    overflow:hidden;
    background:#edf5f7;
}

.destination-page .destination-link .destination-image img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .45s ease;
}

.destination-page .destination-link:hover .destination-image img {
    transform:scale(1.045);
}

.destination-page .destination-link .destination-image:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(to top,rgba(5,25,39,.62),transparent 60%);
    pointer-events:none;
}

.destination-page .destination-link .destination-image-title {
    position:absolute;
    z-index:1;
    left:1.1rem;
    right:1.1rem;
    bottom:1rem;
    color:#fff;
    font-family:Georgia,"Times New Roman",serif;
    font-size:1.25rem;
    font-weight:500;
    line-height:1.15;
    text-shadow:0 2px 12px rgba(0,0,0,.35);
}

/* CTA */
.destination-page .destination-cta {
    position:relative;
    overflow:hidden;
    padding:3rem 2.5rem;
    border-radius:28px;
    background:linear-gradient(120deg,#123b5d 0%,#16506e 58%,#247da3 100%);
    color:#fff;
    box-shadow:0 18px 45px rgba(18,59,93,.13);
}

.destination-page .destination-cta::after {
    content:"";
    position:absolute;
    width:330px;
    height:330px;
    right:-150px;
    bottom:-235px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;
}

.destination-page .destination-cta h2,
.destination-page .destination-cta p,
.destination-page .destination-cta a {
    position:relative;
    z-index:1;
}

.destination-page .destination-cta h2 {
    margin-bottom:.65rem;
    color:#fff;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(1.7rem,3vw,2.45rem);
    font-weight:500;
    line-height:1.15;
}

.destination-page .destination-cta p {
    max-width:680px;
    margin:0 auto 1.5rem;
    color:rgba(255,255,255,.80);
    font-size:.92rem;
    line-height:1.7;
}

.destination-page .destination-cta .btn-light {
    border:0;
    border-radius:999px;
    padding:.8rem 1.4rem;
    background:#fff;
    color:#123b5d;
    font-size:13px;
    font-weight:800;
    box-shadow:0 8px 20px rgba(0,0,0,.10);
    transition:all .2s ease;
}

.destination-page .destination-cta .btn-light:hover {
    background:#edf7f8;
    color:#155a78;
    transform:translateY(-2px);
}

/* Responsive */
@media (max-width:991.98px) {
    .destination-page .destination-hero {
        grid-template-columns:1fr;
    }
    .destination-page .destination-hero-image {
        min-height:360px;
    }
    .destination-page .destination-hero-content {
        padding:38px 34px;
    }
}

@media (max-width:767.98px) {
    .destinations-page .page-intro {
        text-align:left;
        padding-bottom:1.8rem;
    }
    .destinations-page .page-intro p {
        margin-left:0;
    }
    .destination-page section {
        margin-bottom:3rem;
    }
    .destination-page .destination-section-heading {
        align-items:flex-start;
    }
    .destination-page .destination-section-heading h2 {
        font-size:24px;
    }
    .destination-page .destination-section-link {
        display:none;
    }
    .destination-page .destination-content-box {
        padding:22px 20px;
    }
    .destination-page .destination-stats {
        grid-template-columns:1fr 1fr 1fr;
    }
}

@media (max-width:575.98px) {
    .destination-page .destination-hero {
        border-radius:23px;
    }
    .destination-page .destination-hero-image {
        min-height:280px;
    }
    .destination-page .destination-hero-content {
        padding:30px 22px;
    }
    .destination-page .destination-hero-content h1 {
        font-size:40px;
    }
    .destination-page .destination-stats {
        grid-template-columns:1fr;
        gap:0;
    }
    .destination-page .destination-stat {
        padding:12px 0;
    }
    .destination-page .destination-section-title {
        align-items:flex-start;
    }
    .destination-page .destination-section-icon {
        width:40px;
        height:40px;
        flex-basis:40px;
    }
    .destination-page .destination-section-heading h2 {
        font-size:22px;
    }
    .destination-page .destination-cta {
        padding:2.3rem 1.4rem;
        border-radius:22px;
    }
}

/* =========================================================
   HOME PAGE — UNIVERSAL
   ========================================================= */
.home-page{--ocean:#123b5d;--ocean-dark:#0b2941;--ocean-soft:#edf7f8;--ink:#20303d;--muted:#71808c;--line:#e4e9ed;--surface:#fff}
.home-page section{margin-top:4rem;margin-bottom:4rem}
.home-intro{padding:1rem 0 .5rem;text-align:center}
.home-intro h1{margin-bottom:.65rem;color:#123b5d;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,3.5vw,3rem);font-weight:500;line-height:1.15}
.home-intro p{margin:0;color:var(--muted);font-size:1rem}
.home-section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.45rem}
.home-section-heading .heading-left{display:flex;align-items:center;gap:.7rem}
.home-section-heading h2{margin:0;color:#123b5d;font-family:Georgia,"Times New Roman",serif;font-size:1.6rem;font-weight:500;line-height:1.2}
.home-section-heading .heading-icon{width:2.65rem;height:2.65rem;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:50%;background:#edf7f8;color:#247da3}
.home-section-heading .section-link{color:#247da3;text-decoration:none;font-size:.85rem;font-weight:800;white-space:nowrap}
.home-section-heading .section-link:hover{color:#155a78}

.home-page .cruise-card{height:100%;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 8px 26px rgba(18,59,93,.045);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.home-page .cruise-card:hover{transform:translateY(-4px);border-color:#cbdfe6;box-shadow:0 15px 36px rgba(18,59,93,.09)}
.home-page .cruise-card-image{position:relative;overflow:hidden;aspect-ratio:16/9;background:#edf5f7}
.home-page .cruise-card-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.home-page .cruise-card:hover .cruise-card-image img{transform:scale(1.04)}
.home-page .cruise-card-badge{position:absolute;left:.8rem;top:.8rem;padding:.38rem .7rem;border-radius:999px;background:rgba(255,255,255,.95);color:#247da3;font-size:.72rem;font-weight:800;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.home-page .cruise-card-body{padding:1rem 1.05rem 1.05rem}
.home-page .cruise-card-title{margin:0 0 .4rem;color:#20303d;font-size:1rem;font-weight:700}
.home-page .cruise-card-meta{margin-bottom:.85rem;color:#71808c;font-size:.82rem}
.home-page .cruise-card-meta i{margin-right:.25rem;color:#247da3}
.home-page .cruise-card-action{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:10px 16px;border:0;border-radius:999px;background:#edf7f8;color:#155a78;font-size:.8rem;font-weight:800;text-decoration:none;transition:all .2s ease}
.home-page .cruise-card-action:hover{background:#247da3;color:#fff}
.home-page .latest-card{height:100%}
.home-page .latest-card .cruise-card-image{border-radius:20px;border:1px solid var(--line)}
.home-page .latest-card .cruise-card-body{padding:.85rem .1rem 0}
.home-page .latest-card .cruise-card-action{margin-top:.7rem;justify-content:center}

.home-page .destination-tile{position:relative;display:block;overflow:hidden;aspect-ratio:1/1.08;border-radius:18px;background:#dbe8ed;text-decoration:none}
.home-page .destination-tile img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.home-page .destination-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(5,25,39,.72),rgba(5,25,39,.02) 58%)}
.home-page .destination-tile:hover img{transform:scale(1.045)}
.home-page .destination-tile-content{position:absolute;z-index:2;left:1rem;right:1rem;bottom:.9rem;color:#fff}
.home-page .destination-tile-content strong{display:block;font-size:.95rem;font-weight:700}
.home-page .home-destination-note{margin-top:.3rem;color:#71808c;font-size:.76rem}

/* Companies: grid when <=6, horizontal carousel with arrows when >6 */
.home-company-carousel{position:relative}
.home-company-carousel:not(.is-carousel) .company-tile,.home-company-carousel.is-carousel .company-tile{display:flex;flex-direction:column;height:100%;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:20px;text-decoration:none;color:#20303d;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.home-company-carousel:not(.is-carousel) .company-tile:hover,.home-company-carousel.is-carousel .company-tile:hover{transform:translateY(-4px);border-color:#cbdfe6;box-shadow:0 15px 36px rgba(18,59,93,.09);color:#20303d}
.home-company-carousel:not(.is-carousel) .company-image{aspect-ratio:1.55/1}
.home-company-track{display:flex;gap:1rem;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;padding:4px 3rem 10px;scroll-snap-type:x proximity}
.home-company-track::-webkit-scrollbar{display:none}
.home-company-item{flex:0 0 calc((100% - 5rem)/6);min-width:150px;scroll-snap-align:start}
.home-company-carousel .company-image{aspect-ratio:1.55/1;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:1rem 1.25rem;background:#f4f7f8}
.home-company-carousel .company-image img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .25s ease,opacity .25s ease}
.home-company-carousel .company-tile:hover .company-image img{transform:scale(1.035);opacity:.94}
.home-company-carousel .company-name{padding:.85rem .65rem .95rem;text-align:center;color:#20303d;font-size:.84rem;font-weight:700}
.home-carousel-arrow{position:absolute;z-index:4;top:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid #dce7eb;border-radius:50%;background:#fff;color:#155a78;box-shadow:0 8px 22px rgba(18,59,93,.12);transform:translateY(-50%);transition:all .2s ease}
.home-carousel-arrow:hover{background:#247da3;border-color:#247da3;color:#fff}
.home-carousel-prev{left:0}.home-carousel-next{right:0}

.home-page .ship-card{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 8px 26px rgba(18,59,93,.045);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.home-page .ship-card:hover{transform:translateY(-4px);border-color:#cbdfe6;box-shadow:0 15px 36px rgba(18,59,93,.09)}
.home-page .ship-image-link{display:block;overflow:hidden;text-decoration:none}
.home-page .ship-image{aspect-ratio:16/9;overflow:hidden;background:#edf5f7}
.home-page .ship-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.home-page .ship-card:hover .ship-image img{transform:scale(1.04)}
.home-page .ship-body{padding:1rem 1.05rem 1.05rem}
.home-page .ship-body h3{margin:0 0 .8rem;color:#20303d;font-size:1rem;font-weight:700}
.home-page .ship-link{display:inline-flex;align-items:center;gap:.4rem;min-height:40px;padding:9px 15px;border-radius:999px;background:#edf7f8;color:#155a78;font-size:.8rem;font-weight:800;text-decoration:none;transition:all .2s ease}
.home-page .ship-link:hover{background:#247da3;color:#fff}

.home-page .why-us{position:relative;overflow:hidden;padding:2.6rem 2rem;background:linear-gradient(135deg,#f4f8fa,#edf5f7);border:1px solid #e1ebef;border-radius:26px}
.home-page .why-us::after{content:"";position:absolute;width:260px;height:260px;right:-100px;bottom:-150px;border:1px solid rgba(18,59,93,.09);border-radius:50%}
.home-page .why-us h2{position:relative;z-index:1;margin-bottom:2.2rem;color:#123b5d;font-family:Georgia,"Times New Roman",serif;font-size:1.7rem;font-weight:500}
.home-page .why-item{position:relative;z-index:1;padding:.25rem .75rem}
.home-page .why-icon{width:3rem;height:3rem;display:inline-flex;align-items:center;justify-content:center;margin-bottom:.8rem;border-radius:50%;background:#fff;color:#247da3;box-shadow:0 4px 14px rgba(18,59,93,.06)}
.home-page .why-item h3{margin:0;color:#20303d;font-size:.9rem;font-weight:700}
.home-page .why-item p{margin:.3rem 0 0;color:#71808c;font-size:.76rem}

@media(max-width:991.98px){.home-company-item{flex-basis:calc((100% - 2rem)/3)}}
@media(max-width:767.98px){
.home-page section{margin-top:3.2rem;margin-bottom:3.2rem}.home-intro{text-align:left}.home-section-heading{align-items:center}.home-section-heading h2{font-size:1.35rem}.home-section-heading .heading-icon{width:2.25rem;height:2.25rem}.home-company-track{padding-left:2.5rem;padding-right:2.5rem}.home-company-item{flex-basis:calc((100% - 1rem)/2);min-width:145px}.home-carousel-arrow{width:38px;height:38px}.home-page .why-us{padding:2rem 1rem}
}


/* =========================================================
   STATIC CONTENT PAGE
   page.php
   ========================================================= */

.page-content-page {
    padding-bottom: 50px;
}

.page-content-page .cp-breadcrumb-wrap {
    margin-bottom: 22px;
}

/* Main content card */
.page-content-card {
    position: relative;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e4e9ed;
    border-radius: 26px;
    box-shadow: 0 14px 38px rgba(18,59,93,.065);
}

/* Decorative soft circle */
.page-content-card::after {
    content: "";
    position: absolute;
    width: 360px;
    height: 360px;
    right: -190px;
    top: -210px;
    border: 1px solid rgba(36,125,163,.08);
    border-radius: 50%;
    pointer-events: none;
}

/* Header */
.page-content-header {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 30px 34px;
    border-bottom: 1px solid #e8edef;
    background: linear-gradient(
        135deg,
        #fff 0%,
        #fbfefe 68%,
        #f0f8f9 100%
    );
}

.page-content-icon {
    flex: 0 0 auto;
    width: 62px;
    height: 62px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    background: #edf7f8;
    color: #247da3;
    font-size: 24px;
}

.page-content-eyebrow {
    margin-bottom: 7px;
    color: #247da3;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
    line-height: 1.2;
    text-transform: uppercase;
}

.page-content-header h1 {
    margin: 0;
    color: #123b5d;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -.025em;
}

/* Content */
.page-content-body {
    position: relative;
    z-index: 1;
    padding: 34px;
    color: #526874;
    font-size: 15px;
    line-height: 1.8;
}

/* Typography inside CMS content */
.page-content-body h2,
.page-content-body h3,
.page-content-body h4,
.page-content-body h5 {
    color: #123b5d;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 500;
    line-height: 1.25;
}

.page-content-body h2 {
    margin: 1.8rem 0 1rem;
    font-size: 28px;
}

.page-content-body h3 {
    margin: 1.6rem 0 .85rem;
    font-size: 23px;
}

.page-content-body h4 {
    margin: 1.4rem 0 .75rem;
    font-size: 20px;
}

.page-content-body h5 {
    margin: 1.2rem 0 .65rem;
    font-size: 18px;
}

.page-content-body h2:first-child,
.page-content-body h3:first-child,
.page-content-body h4:first-child {
    margin-top: 0;
}

.page-content-body p {
    margin: 0 0 1rem;
}

.page-content-body a {
    color: #247da3;
    text-decoration: underline;
    text-decoration-color: rgba(36,125,163,.35);
    text-underline-offset: 2px;
}

.page-content-body a:hover {
    color: #123b5d;
    text-decoration-color: #123b5d;
}

.page-content-body strong,
.page-content-body b {
    color: #20303d;
}

.page-content-body ul,
.page-content-body ol {
    margin: 0 0 1.2rem;
    padding-left: 1.5rem;
}

.page-content-body li {
    margin-bottom: .45rem;
}

.page-content-body blockquote {
    margin: 1.5rem 0;
    padding: 18px 22px;
    border-left: 4px solid #247da3;
    border-radius: 0 14px 14px 0;
    background: #f5f9fa;
    color: #526874;
}

.page-content-body img {
    max-width: 100%;
    height: auto;
    border-radius: 16px;
}

.page-content-body table {
    width: 100%;
    margin: 1.5rem 0;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border: 1px solid #e4e9ed;
    border-radius: 14px;
}

.page-content-body th,
.page-content-body td {
    padding: 11px 14px;
    border-bottom: 1px solid #e8edef;
    text-align: left;
}

.page-content-body th {
    color: #123b5d;
    font-weight: 800;
    background: #f5f9fa;
}

.page-content-body tr:last-child td {
    border-bottom: 0;

}

/* Not found */
.page-not-found {
    max-width: 720px;
    margin: 30px auto 50px;
    padding: 55px 35px;
    text-align: center;
    background: #fff;
    border: 1px solid #e4e9ed;
    border-radius: 26px;
    box-shadow: 0 14px 38px rgba(18,59,93,.065);
}

.page-not-found-icon {
    width: 68px;
    height: 68px;
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 22px;
    background: #edf7f8;
    color: #247da3;
    font-size: 27px;
}

.page-not-found h2 {
    margin: 0 0 10px;
    color: #123b5d;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 30px;
    font-weight: 500;
}

.page-not-found p {
    margin: 0 0 24px;
    color: #71808c;
    font-size: 14px;
    line-height: 1.7;
}

/* Soft pill button used on the error state */
.page-pill-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 43px;
    padding: 10px 20px;
    border: 0;
    border-radius: 999px;
    background: #edf7f8;
    color: #155a78;
    text-decoration: none !important;
    font-size: 13px;
    font-weight: 800;
    transition: all .2s ease;
}

.page-pill-button:hover {
    background: #247da3;
    color: #fff;
    transform: translateY(-1px);
}

/* Responsive */
@media (max-width: 767.98px) {

    .page-content-header {
        padding: 25px 22px;
    }

    .page-content-body {
        padding: 25px 22px;
    }

    .page-content-header h1 {
        font-size: 2rem;
    }

    .page-content-icon {
        width: 54px;
        height: 54px;
        border-radius: 17px;
        font-size: 21px;
    }

    .page-not-found {
        margin-top: 20px;
        padding: 45px 25px;
    }
}

@media (max-width: 575.98px) {

    .page-content-header {
        align-items: flex-start;
        gap: 15px;
        padding: 22px 18px;
    }

    .page-content-body {
        padding: 22px 18px;
        font-size: 14px;
    }

    .page-content-header h1 {
        font-size: 1.75rem;
    }

    .page-content-icon {
        width: 48px;
        height: 48px;
        flex-basis: 48px;
        border-radius: 15px;
        font-size: 19px;
    }

    .page-content-body h2 {
        font-size: 24px;
    }

    .page-content-body h3 {
        font-size: 21px;
    }

    .page-not-found {
        padding: 38px 20px;
        border-radius: 22px;
    }

    .page-not-found h2 {
        font-size: 26px;
    }

    .page-pill-button {
        width: 100%;
    }
}



/* =========================================================
   FAQ — LIST + DETAIL
   ========================================================= */

.faq-page {
    padding-bottom: 50px;
}

.faq-page .cp-breadcrumb-wrap {
    margin-bottom: 18px;
}

.faq-eyebrow {
    margin-bottom: 7px;
    color: #247da3;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.faq-hero {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-bottom: 30px;
    padding: 28px 30px;
    background: #fff;
    border: 1px solid #e4e9ed;
    border-radius: 24px;
    box-shadow: 0 10px 30px rgba(18,59,93,.055);
}

.faq-hero-icon,
.faq-detail-icon {
    flex: 0 0 auto;
    width: 62px;
    height: 62px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    background: #edf7f8;
    color: #247da3;
    font-size: 25px;
}

.faq-hero h1 {
    margin: 0;
    color: #123b5d;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3.4vw, 3rem);
    font-weight: 500;
    line-height: 1.1;
}

.faq-hero p {
    max-width: 760px;
    margin: 8px 0 0;
    color: #71808c;
    font-size: 14px;
    line-height: 1.7;
}

.faq-grid {
    margin-top: 0;
}

.faq-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 27px;
    background: #fff;
    border: 1px solid #e4e9ed;
    border-radius: 22px;
    box-shadow: 0 8px 26px rgba(18,59,93,.045);
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        border-color .22s ease;
}

.faq-card:hover {
    transform: translateY(-4px);
    border-color: #cbdfe6;
    box-shadow: 0 15px 36px rgba(18,59,93,.09);
}

.faq-card-icon {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 17px;
    border-radius: 14px;
    background: #edf7f8;
    color: #247da3;
    font-size: 16px;
}

.faq-title {
    margin: 0 0 11px;
    color: #123b5d;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
    font-weight: 500;
    line-height: 1.3;
}

.faq-preview {
    color: #71808c;
    font-size: 13px;
    line-height: 1.7;
}

.faq-card-footer {
    margin-top: auto;
    padding-top: 22px;
}

.faq-card-button,
.faq-read-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 43px;
    padding: 10px 18px;
    border: 0;
    border-radius: 999px;
    background: #edf7f8;
    color: #155a78;
    text-decoration: none;
    font-size: 13px;
    font-weight: 800;
    transition: all .2s ease;
}

.faq-card-button:hover,
.faq-read-more:hover {
    background: #247da3;
    color: #fff;
    text-decoration: none;
    transform: translateY(-1px);
}

/* =========================================================
   FAQ — DETAIL PAGE
   ========================================================= */

.faq-detail-card {
    display: flex;
    align-items: flex-start;
    gap: 25px;
    padding: 34px;
    background: #fff;
    border: 1px solid #e4e9ed;
    border-radius: 26px;
    box-shadow: 0 12px 34px rgba(18,59,93,.06);
}

.faq-detail-icon {
    flex: 0 0 auto;
    width: 62px;
    height: 62px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    background: #edf7f8;
    color: #247da3;
    font-size: 25px;
}

.faq-detail-content {
    min-width: 0;
    flex: 1 1 auto;
}

.faq-detail-title {
    margin: 0 0 27px;
    color: #123b5d;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 500;
    line-height: 1.16;
    letter-spacing: -.025em;
}

/* Самият отговор */
.faq-answer {
    color: #354653;
    font-size: 15px;
    line-height: 1.85;
}

.faq-answer p {
    margin: 0 0 1rem;
}

.faq-answer p:last-child {
    margin-bottom: 0;
}

.faq-answer h2,
.faq-answer h3,
.faq-answer h4,
.faq-answer h5 {
    color: #123b5d;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 500;
    line-height: 1.3;
}

.faq-answer h2 {
    margin: 1.8rem 0 .9rem;
    font-size: 28px;
}

.faq-answer h3 {
    margin: 1.6rem 0 .8rem;
    font-size: 23px;
}

.faq-answer h4 {
    margin: 1.4rem 0 .7rem;
    font-size: 20px;
}

.faq-answer h5 {
    margin: 1.2rem 0 .6rem;
    font-size: 18px;
}

.faq-answer ul,
.faq-answer ol {
    margin: 0 0 1.2rem;
    padding-left: 1.6rem;
}

.faq-answer li {
    margin-bottom: .45rem;
}

.faq-answer strong,
.faq-answer b {
    color: #20303d;
    font-weight: 700;
}

.faq-answer a {
    color: #247da3;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.faq-answer a:hover {
    color: #123b5d;
}

.faq-answer blockquote {
    margin: 1.5rem 0;
    padding: 18px 22px;
    border-left: 4px solid #247da3;
    border-radius: 0 14px 14px 0;
    background: #f5f9fa;
    color: #526874;
}

.faq-answer img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 1.2rem 0;
    border-radius: 16px;
}

.faq-answer table {
    width: 100%;
    margin: 1.5rem 0;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border: 1px solid #e4e9ed;
    border-radius: 14px;
}

.faq-answer th,
.faq-answer td {
    padding: 11px 14px;
    border-bottom: 1px solid #e8edef;
    text-align: left;
}

.faq-answer th {
    color: #123b5d;
    font-weight: 800;
    background: #f5f9fa;
}

.faq-answer tr:last-child td {
    border-bottom: 0;
}

/* Back button area */
.faq-detail-actions {
    margin-top: 30px;
    padding-top: 22px;
    border-top: 1px solid #e8edef;
}

/* Mobile */
@media (max-width: 767.98px) {

    .faq-detail-card {
        flex-direction: column;
        gap: 18px;
        padding: 23px;
    }

    .faq-detail-icon {
        width: 54px;
        height: 54px;
        border-radius: 17px;
        font-size: 22px;
    }

    .faq-detail-title {
        margin-bottom: 22px;
        font-size: 2rem;
    }

    .faq-answer {
        font-size: 14px;
        line-height: 1.8;
    }
}

@media (max-width: 575.98px) {

    .faq-detail-card {
        padding: 20px;
        border-radius: 22px;
    }

    .faq-detail-title {
        font-size: 1.75rem;
    }
}

/* =========================================================
   INQUIRY PAGE
   ========================================================= */

.inquiry-page {
    color: #20303d;
}

/* Page intro */

.inquiry-page .inquiry-header {
    margin-bottom: 28px;
}

.inquiry-page .inquiry-header h2 {
    margin: 0 0 6px;
    color: #123b5d;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3.2vw, 2.8rem);
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -.025em;
}

.inquiry-page .inquiry-header .text-muted {
    color: #71808c !important;
    font-size: 14px;
}


/* =========================================================
   CARDS
   ========================================================= */

.inquiry-page .card {
    background: #fff;
    border: 1px solid #e4e9ed !important;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 12px 34px rgba(18,59,93,.06) !important;
}

.inquiry-page .card-header {
    padding: 18px 22px;
    background: #f7fafb !important;
    border-bottom: 1px solid #e7edef;
}

.inquiry-page .card-header h5 {
    margin: 0;
    color: #123b5d;
    font-size: 16px;
    font-weight: 700;
}

.inquiry-page .card-header h5 i {
    color: #247da3;
}

.inquiry-page .card-body {
    padding: 25px;
}


/* =========================================================
   CRUISE INFORMATION
   ========================================================= */

.inquiry-page .card-body strong {
    color: #20303d;
}

.inquiry-page .card-body a {
    color: #247da3;
    font-weight: 600;
    text-decoration: none;
}

.inquiry-page .card-body a:hover {
    color: #123b5d;
    text-decoration: underline;
}


/* =========================================================
   CABIN / PRICE
   ========================================================= */

.inquiry-page .fs-4 {
    color: #123b5d !important;
    font-size: 1.45rem !important;
}

.inquiry-page .text-success {
    color: #2f8a68 !important;
}

.inquiry-page .badge.bg-primary {
    background: #edf7f8 !important;
    color: #247da3 !important;
    border-radius: 999px;
    padding: 7px 12px;
    font-size: 12px;
    font-weight: 700;
}


/* =========================================================
   ITINERARY TABLE
   ========================================================= */

.inquiry-page .table-responsive {
    border-radius: 0 0 22px 22px;
}

.inquiry-page .table {
    margin: 0;
    color: #354653;
    vertical-align: middle;
}

.inquiry-page .table thead th {
    padding: 13px 16px;
    background: #f5f9fa !important;
    color: #123b5d;
    border-color: #e4e9ed;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.inquiry-page .table tbody td {
    padding: 13px 16px;
    border-color: #e8edef;
    font-size: 13px;
}

.inquiry-page .table tbody tr:hover td {
    background: #f8fbfc;
}


/* =========================================================
   FORM
   ========================================================= */

.inquiry-page .form-label {
    margin-bottom: 7px;
    color: #354653;
    font-size: 13px;
    font-weight: 700;
}

.inquiry-page .form-control {
    min-height: 46px;
    padding: 10px 14px;
    border: 1px solid #dce5e9;
    border-radius: 12px;
    background: #fff;
    color: #20303d;
    box-shadow: none;
    transition:
        border-color .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}

.inquiry-page .form-control:focus {
    border-color: #8dbdcc;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(36,125,163,.09);
}

.inquiry-page textarea.form-control {
    min-height: 135px;
    resize: vertical;
}


/* =========================================================
   CHECKBOXES / ADDITIONAL SERVICES
   ========================================================= */

.inquiry-page .form-check {
    padding: 14px 16px 14px 40px;
    border: 1px solid #e5ebee;
    border-radius: 14px;
    background: #fafcfc;
    transition:
        background .2s ease,
        border-color .2s ease;
}

.inquiry-page .form-check:hover {
    background: #f4f9fa;
    border-color: #cddfe5;
}

.inquiry-page .form-check-input {
    margin-top: .3rem;
    border-color: #b9cbd2;
}

.inquiry-page .form-check-input:checked {
    background-color: #247da3;
    border-color: #247da3;
}

.inquiry-page .form-check-label {
    color: #354653;
    cursor: pointer;
}

.inquiry-page .form-check-label strong {
    display: block;
    margin-bottom: 3px;
    color: #20303d;
    font-size: 14px;
}

.inquiry-page .form-check-label .small {
    color: #71808c !important;
    line-height: 1.5;
}


/* =========================================================
   ALERTS
   ========================================================= */

.inquiry-page .alert {
    border-radius: 14px;
    font-size: 13px;
}

.inquiry-page .alert-light {
    margin-bottom: 22px;
    padding: 14px 16px;
    background: #f7fafb;
    border-color: #e2eaed !important;
    color: #61737e;
}

.inquiry-page .alert-light i {
    color: #247da3;
}


/* =========================================================
   BUTTONS
   ========================================================= */

.inquiry-page .btn {
    min-height: 44px;
    border-radius: 999px;
    padding: 10px 20px;
    font-size: 13px;
    font-weight: 700;
    transition:
        background .2s ease,
        border-color .2s ease,
        color .2s ease,
        transform .2s ease,
        box-shadow .2s ease;
}

.inquiry-page .btn:hover {
    transform: translateY(-1px);
}

.inquiry-page .btn-primary,
.inquiry-page .btn-success {
    background: #247da3;
    border-color: #247da3;
    color: #fff;
}

.inquiry-page .btn-primary:hover,
.inquiry-page .btn-success:hover {
    background: #123b5d;
    border-color: #123b5d;
    color: #fff;
}

.inquiry-page .btn-outline-secondary {
    background: #edf7f8;
    border: 0;
    color: #247da3;
}

.inquiry-page .btn-outline-secondary:hover {
    background: #247da3;
    border-color: #247da3;
    color: #fff;
}


/* =========================================================
   SUCCESS MESSAGE
   ========================================================= */

.inquiry-page .border-success {
    border-color: #d8e9e1 !important;
}

.inquiry-page .text-success {
    color: #2f8a68 !important;
}

.inquiry-page .display-4 {
    font-size: 3.8rem;
}


/* =========================================================
   REVEAL ANIMATION
   ========================================================= */

.inquiry-page .cruise-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition:
        opacity .65s ease,
        transform .65s ease;
}

.inquiry-page .cruise-reveal.is-visible,
.inquiry-page .cruise-reveal-visible {
    opacity: 1;
    transform: translateY(0);
}

.inquiry-page .cruise-delay-1 {
    transition-delay: .05s;
}

.inquiry-page .cruise-delay-2 {
    transition-delay: .10s;
}

.inquiry-page .cruise-delay-3 {
    transition-delay: .15s;
}

.inquiry-page .cruise-delay-4 {
    transition-delay: .20s;
}

@media (prefers-reduced-motion: reduce) {
    .inquiry-page .cruise-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 767.98px) {

    .inquiry-page .card-body {
        padding: 20px;
    }

    .inquiry-page .card-header {
        padding: 16px 20px;
    }

    .inquiry-page .inquiry-header h2 {
        font-size: 2rem;
    }

    .inquiry-page .table thead th,
    .inquiry-page .table tbody td {
        padding: 11px 12px;
        font-size: 12px;
    }

    .inquiry-page .d-flex.justify-content-between {
        flex-direction: column;
        gap: 12px;
    }

    .inquiry-page .d-flex.justify-content-between .btn {
        width: 100%;
    }
}

@media (max-width: 575.98px) {

    .inquiry-page .card {
        border-radius: 18px;
    }

    .inquiry-page .card-body {
        padding: 17px;
    }

    .inquiry-page .form-check {
        padding-left: 38px;
    }
}


/* =========================================================
   CRUISE DETAIL PAGE
   ========================================================= */

.cruise-page {
    --cruise-ocean:#123b5d;
    --cruise-ocean-dark:#0b2941;
    --cruise-accent:#247da3;
    --cruise-soft:#edf7f8;
    --cruise-cream:#f8f6f1;
    --cruise-ink:#20303d;
    --cruise-muted:#71808c;
    --cruise-line:#e4e9ed;

    color:var(--cruise-ink);
}

.cruise-page .cp-breadcrumb-wrap {
    margin-bottom:22px;
}

.cruise-page .cp-breadcrumb .breadcrumb-item a {
    color:#80909a;
}

.cruise-page .cp-breadcrumb .breadcrumb-item a:hover {
    color:var(--cruise-accent);
}


/* =========================================================
   TITLE
   ========================================================= */

.cruise-title {
    margin:0 0 24px;
    color:var(--cruise-ocean);
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(2rem,4vw,3.25rem);
    line-height:1.08;
    font-weight:700;
}


/* =========================================================
   HERO
   ========================================================= */

.cruise-hero {
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
    margin-bottom:34px;
    background:#fff;
    border:1px solid var(--cruise-line);
    border-radius:26px;
    overflow:hidden;
    box-shadow:0 18px 42px rgba(18,59,93,.08);
}

.cruise-hero-media {
    min-width:0;
    background:#eef3f5;
}

.cruise-hero-media .cruise-media-flip,
.cruise-hero-media .cruise-media-single {
    border-radius:0;
    min-height:560px;
}

.cruise-hero-details {
    padding:38px;
    display:flex;
    flex-direction:column;
}


/* =========================================================
   CRUISE INFORMATION
   ========================================================= */

.cruise-info-row {
    font-size:17px;
    line-height:1.55;
    color:#536773;
}

.cruise-info-row:last-child {
    border-bottom:0;
}

.cruise-info-row strong {
    color:var(--cruise-ink);
    font-weight:800;
}

.cruise-info-row a {
    color:var(--cruise-accent);
    text-decoration:none;
    border-bottom:1px solid rgba(36,125,163,.28);
    transition:.2s ease;
}

.cruise-info-row a:hover {
    color:var(--cruise-ocean);
    border-bottom-color:var(--cruise-ocean);
}

.cruise-price-row span {
    color:#237b65 !important;
    font-weight:800;
}


/* =========================================================
   CATEGORIES
   ========================================================= */

.cruise-categories-row {
    display:flex;
    align-items:flex-start;
    gap:12px;
}

.cruise-categories-row > strong {
    flex:0 0 auto;
}

.cruise-categories-row .badge {
    background:var(--cruise-soft) !important;
    color:var(--cruise-accent) !important;
    border:1px solid #d8eaed;
    border-radius:999px;
    padding:7px 11px;
    font-weight:800;
}


/* =========================================================
   AVAILABLE DATES
   ========================================================= */

.cruise-date-picker {
    margin-top:6px;
    padding-top:25px;
    border-top:1px solid #e9eef0;
}

.cruise-date-picker > strong {
    display:block;
    margin-bottom:14px;
    color:var(--cruise-ink);
    font-size:16px;
}

.cruise-date-option {
    display:inline-flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-width:120px;
    min-height:65px;
    margin:0 10px 10px 0;
    padding:10px;
    border:1px solid #9bb8c6;
    border-radius:17px;
    background:#fff;
    color:var(--cruise-ocean);
    text-decoration:none;
    font-weight:800;
    line-height:1.3;
    transition:.2s ease;
}

.cruise-date-option small {
    font-size:13px;
    margin-top:3px;
    opacity:.95;
}

.cruise-date-option:hover {
    background:var(--cruise-soft);
    border-color:var(--cruise-accent);
    color:var(--cruise-ocean);
    transform:translateY(-2px);
}

.cruise-date-option.is-active {
    background:var(--cruise-ocean);
    border-color:var(--cruise-ocean);
    color:#fff;
    box-shadow:0 9px 20px rgba(18,59,93,.14);
}

.cruise-date-option.is-active:hover {
    background:var(--cruise-ocean-dark);
    color:#fff;
}


/* =========================================================
   CONTENT SECTIONS
   ========================================================= */

.cruise-content-card {
    margin-bottom:34px;
    background:#fff;
    border:1px solid var(--cruise-line);
    border-radius:24px;
    box-shadow:0 12px 38px rgba(18,59,93,.06);
    overflow:hidden;
}

.cruise-content-card-body {
    padding:32px 34px;
}

.cruise-section-heading {
    display:flex;
    align-items:center;
    gap:14px;
    margin:0 0 22px;
}

.cruise-section-icon {
    width:48px;
    height:48px;
    flex:0 0 48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:var(--cruise-soft);
    color:var(--cruise-accent);
    font-size:20px;
}

.cruise-section-title {
    margin:0;
    color:var(--cruise-ocean);
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(1.45rem,2.5vw,2rem);
    font-weight:700;
    line-height:1.2;
}

.cruise-section-subtitle {
    margin-top:4px;
    color:var(--cruise-muted);
    font-size:13px;
    line-height:1.45;
}


/* =========================================================
   DESCRIPTION
   ========================================================= */

.cruise-description {
    font-size:17px;
    line-height:1.85;
    color:#536773;
}

.cruise-description p:last-child {
    margin-bottom:0;
}

.cruise-description img {
    max-width:100%;
    height:auto;
    border-radius:14px;
}


/* =========================================================
   ROUTE
   ========================================================= */

.cruise-route-heading {
    margin:0 0 18px;
}

.cruise-route-card {
    margin-bottom:28px;
    background:#fff;
    border:1px solid var(--cruise-line);
    border-radius:22px;
    overflow:hidden;
    box-shadow:0 10px 30px rgba(18,59,93,.05);
}

.cruise-route-table {
    margin:0;
    color:var(--cruise-ink);
    vertical-align:middle;
}

.cruise-route-table thead th {
    padding:15px 18px;
    background:#f7f9fa;
    border:0;
    border-bottom:1px solid var(--cruise-line);
    color:var(--cruise-ocean);
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.cruise-route-table tbody td {
    padding:14px 18px;
    border-color:#edf0f2;
    color:#526874;
}

.cruise-route-table tbody tr:hover {
    background:#fbfdfd;
}

.cruise-route-table tbody td:first-child {
    width:70px;
    color:var(--cruise-ocean);
    font-weight:800;
}


/* =========================================================
   PREVIOUS / NEXT CRUISE
   ========================================================= */

.cruise-prev-next {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    margin:4px 0 42px;
}

.cruise-prev-next-link {
    display:block;
    padding:17px 20px;
    border:1px solid var(--cruise-line);
    border-radius:17px;
    background:#fff;
    color:var(--cruise-accent);
    text-decoration:none;
    transition:.2s ease;
}

.cruise-prev-next-link:hover {
    background:var(--cruise-soft);
    border-color:#cfe1e5;
    color:var(--cruise-ocean);
    transform:translateY(-2px);
}

.cruise-prev-next-link strong {
    color:var(--cruise-ocean);
}

.cruise-prev-next-link small {
    color:var(--cruise-muted) !important;
}

.cruise-next {
    text-align:right;
}


/* =========================================================
   CABINS
   ========================================================= */

.cruise-cabins-heading {
    margin-top:8px;
    margin-bottom:20px;
}

.cruise-cabins .accordion-item {
    margin-bottom:14px !important;
    border:1px solid var(--cruise-line) !important;
    border-radius:20px !important;
    overflow:hidden;
    background:#fff;
    box-shadow:0 8px 24px rgba(18,59,93,.05);
}

.cruise-cabin-group-button {
    padding:19px 22px;
    background:#fff !important;
    color:var(--cruise-ink) !important;
    box-shadow:none !important;
}

.cruise-cabin-group-button:not(.collapsed) {
    background:#fbfdfd !important;
    color:var(--cruise-ocean) !important;
}

.cruise-cabin-group-button:focus {
    box-shadow:none !important;
}

.cruise-cabin-group-button h5 {
    font-weight:800;
}

.cruise-cabin-group-button h5 i {
    color:var(--cruise-accent);
}

.cruise-cabin-group-price {
    color:#237b65 !important;
}

.cruise-cabins .accordion-body {
    padding:20px;
    background:#f8fafb;
    border-top:1px solid #edf0f2;
}

.cruise-cabin-card {
    margin-bottom:14px;
    background:#fff;
    border:1px solid var(--cruise-line);
    border-radius:18px;
    box-shadow:0 7px 22px rgba(18,59,93,.04);
}

.cruise-cabin-card:last-child {
    margin-bottom:0;
}

.cruise-cabin-card-body {
    padding:22px;
}

.cruise-cabin-card h5 {
    color:var(--cruise-ocean);
    font-weight:800;
}

.cruise-cabin-card .text-muted {
    color:var(--cruise-muted) !important;
}

.cruise-price-person {
    color:#237b65 !important;
}

.cruise-price-cabin {
    color:var(--cruise-ocean) !important;
}

.cruise-studio-badge {
    display:inline-flex;
    padding:7px 11px;
    border-radius:999px;
    background:var(--cruise-soft);
    border:1px solid #d8eaed;
    color:var(--cruise-accent);
    font-size:12px;
    font-weight:800;
}

.cruise-inquiry-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:100%;
    min-height:43px;
    padding:10px 18px;
    border-radius:999px;
    background:var(--cruise-soft);
    border:0;
    color:var(--cruise-accent);
    text-decoration:none;
    font-weight:800;
    transition:.2s ease;
}

.cruise-inquiry-button:hover {
    background:var(--cruise-accent);
    color:#fff;
    transform:translateY(-1px);
}


/* =========================================================
   SHARE
   ========================================================= */

.cruise-share {
    margin:6px 0 42px;
    padding-top:2px;
}

.cruise-share-inner {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
    min-height:42px;
}

.cruise-share-title {
    font-size:13px;
    color:var(--cruise-muted);
    margin-right:6px;
    white-space:nowrap;
}

.cruise-share-link {
    width:40px;
    height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:var(--cruise-ocean);
    text-decoration:none;
    cursor:pointer;
    transition:.2s ease;
}

.cruise-share-link:hover {
    color:#fff;
    background:var(--cruise-accent);
    border-color:var(--cruise-accent);
    transform:translateY(-2px);
}

.cruise-copy-message {
    font-size:12px;
    color:var(--cruise-accent);
    margin-left:6px;
    opacity:0;
    transition:opacity .3s ease;
    white-space:nowrap;
}


/* =========================================================
   PLANNING
   ========================================================= */

.cruise-planning-title {
    margin-bottom:20px;
}

.cruise-planning-card {
    background:#fff;
    border:1px solid var(--cruise-line);
    border-radius:20px;
    box-shadow:0 10px 28px rgba(18,59,93,.05);
    transition:.2s ease;
}

.cruise-planning-card:hover {
    transform:translateY(-3px);
    box-shadow:0 14px 34px rgba(18,59,93,.09);
}

.cruise-planning-card .card-body {
    padding:24px 20px;
    display:flex;
    flex-direction:column;
    align-items:center;
}

.cruise-planning-icon {
    width:56px;
    height:56px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:var(--cruise-soft);
    color:var(--cruise-accent);
    font-size:23px;
}

.cruise-planning-card h5 {
    color:var(--cruise-ocean);
    font-weight:800;
}

.cruise-planning-card p {
    min-height:70px;
    line-height:1.6;
}

.cruise-planning-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:42px;
    padding:10px 16px;
    border:1px solid #d8e5e8;
    border-radius:999px;
    background:#fff;
    color:var(--cruise-accent);
    text-decoration:none;
    font-weight:800;
    transition:.2s ease;
}

.cruise-planning-button:hover {
    background:var(--cruise-soft);
    border-color:#c9dfe3;
    color:var(--cruise-ocean);
}


/* =========================================================
   IMPORTANT NOTE
   ========================================================= */

.cruise-important {
    padding:20px 22px;
    background:#fbfaf6;
    border:1px solid #ebe5d8;
    border-radius:18px;
    color:#5f6870;
}

.cruise-important b {
    color:var(--cruise-ocean);
}

.cruise-important li + li {
    margin-top:7px;
}


/* =========================================================
   IMAGE / MAP FLIP
   ========================================================= */

.cruise-media-flip,
.cruise-media-single {
    position:relative;
    width:100%;
    aspect-ratio:1 / 1;
    overflow:hidden;
    border-radius:20px;
    background:#f8fafc;
}

.cruise-media-flip {
    perspective:1200px;
    cursor:pointer;
}

.cruise-media-flip-inner {
    position:relative;
    width:100%;
    height:100%;
    transform-style:preserve-3d;
    transition:transform .65s cubic-bezier(.2,.7,.2,1);
}

.cruise-media-flip:hover .cruise-media-flip-inner,
.cruise-media-flip.is-flipped .cruise-media-flip-inner {
    transform:rotateY(180deg);
}

.cruise-media-face {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
}

.cruise-media-front {
    background:#f1f5f9;
}

.cruise-media-back {
    transform:rotateY(180deg);
    background:#f8fafc;
}

.cruise-media-front img,
.cruise-media-back img,
.cruise-media-single img {
    display:block;
    width:100%;
    height:100%;
}

.cruise-media-front img {
    object-fit:cover;
}

.cruise-media-back img,
.cruise-media-single img {
    object-fit:contain;
}

.cruise-media-single:has(
    img[src*="/images/cruises/pics/"]
) img {
    object-fit:cover;
}

.cruise-media-map-icon {
    position:absolute;
    top:14px;
    right:14px;
    z-index:5;
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:rgba(18,59,93,.94);
    color:#fff;
    box-shadow:0 5px 16px rgba(18,59,93,.18);
    pointer-events:none;
}

.cruise-media-map-icon i {
    font-size:19px;
}


/* =========================================================
   REVEAL ANIMATION
   ========================================================= */

.cruise-reveal {
    opacity:0;
    transform:translateY(18px);
    transition:
        opacity .65s ease,
        transform .65s ease;
}

.cruise-reveal.is-visible {
    opacity:1;
    transform:translateY(0);
}

.cruise-delay-1 {
    transition-delay:.05s;
}

.cruise-delay-2 {
    transition-delay:.10s;
}

.cruise-delay-3 {
    transition-delay:.15s;
}

.cruise-delay-4 {
    transition-delay:.20s;
}

.cruise-delay-5 {
    transition-delay:.25s;
}

.cruise-delay-6 {
    transition-delay:.30s;
}

.cruise-delay-7 {
    transition-delay:.35s;
}

.cruise-delay-8 {
    transition-delay:.40s;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width:991.98px) {

    .cruise-hero {
        grid-template-columns:1fr;
    }

    .cruise-hero-media .cruise-media-flip,
    .cruise-hero-media .cruise-media-single {
        min-height:430px;
    }

    .cruise-hero-details {
        padding:30px;
    }
}

@media (max-width:767.98px) {

    .cruise-title {
        font-size:2rem;
        margin-bottom:18px;
    }

    .cruise-hero-media .cruise-media-flip,
    .cruise-hero-media .cruise-media-single {
        min-height:340px;
    }

    .cruise-hero-details {
        padding:24px 20px;
    }

    .cruise-info-row {
        font-size:15px;
        padding-bottom:17px;
        margin-bottom:17px;
    }

    .cruise-categories-row {
        display:block;
    }

    .cruise-categories-row > strong {
        display:block;
        margin-bottom:9px;
    }

    .cruise-prev-next {
        grid-template-columns:1fr;
    }

    .cruise-next {
        text-align:left;
    }

    .cruise-content-card-body {
        padding:25px 20px;
    }

    .cruise-route-table {
        font-size:14px;
    }

    .cruise-route-table th,
    .cruise-route-table td {
        padding:12px 10px;
    }

    .cruise-share-inner {
        justify-content:center;
        flex-wrap:wrap;
    }

    .cruise-planning-card p {
        min-height:0;
    }

    .cruise-media-flip:hover .cruise-media-flip-inner {
        transform:none;
    }
}

@media (max-width:575.98px) {

    .cruise-date-option {
        min-width:112px;
    }

    .cruise-section-heading {
        align-items:flex-start;
    }

    .cruise-section-icon {
        width:44px;
        height:44px;
        flex-basis:44px;
    }

    .cruise-route-card {
        overflow-x:auto;
    }

    .cruise-route-table {
        min-width:560px;
    }
}

@media (prefers-reduced-motion:reduce) {

    .cruise-media-flip-inner,
    .cruise-reveal,
    .cruise-share-link {
        transition:none;
    }

    .cruise-reveal {
        opacity:1;
        transform:none;
    }
}



/* =========================================================
   CRUISE CATEGORY PAGE
   Universal visual language for cruise category pages
   ========================================================= */

.cruise-category-page {
    --cat-ocean:#123b5d;
    --cat-ocean-dark:#0b2941;
    --cat-accent:#247da3;
    --cat-soft:#edf7f8;
    --cat-ink:#20303d;
    --cat-muted:#71808c;
    --cat-line:#e4e9ed;
    --cat-radius:22px;
    color:var(--cat-ink);
}

/* =========================================================
   CATEGORY HEADER / DESCRIPTION
   ========================================================= */

.cruise-category-header {
    margin-bottom:38px;
    padding:0;
}

.cruise-category-header-inner {
  
}

.cruise-category-title {
    margin:0 0 16px;
    color:var(--cat-ocean);
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(2.15rem,4vw,3.4rem);
    line-height:1.08;
    font-weight:700;
    letter-spacing:-.025em;
}

.cruise-category-description {
    color:#536773;
    font-size:16px;
    line-height:1.85;
}

.cruise-category-description p {
    margin:0 0 14px;
}

.cruise-category-description p:last-child {
    margin-bottom:0;
}

.cruise-category-description h2,
.cruise-category-description h3,
.cruise-category-description h4 {
    margin:24px 0 10px;
    color:var(--cat-ocean);
    font-family:Georgia,"Times New Roman",serif;
    line-height:1.25;
}

.cruise-category-description h2 {
    font-size:1.45rem;
}

.cruise-category-description h3 {
    font-size:1.25rem;
}

.cruise-category-description h4 {
    font-size:1.08rem;
}

.cruise-category-description ul,
.cruise-category-description ol {
    margin:0 0 16px;
    padding-left:24px;
}

.cruise-category-description li + li {
    margin-top:6px;
}

.cruise-category-description a {
    color:var(--cat-accent);
    text-decoration:none;
    border-bottom:1px solid rgba(36,125,163,.25);
}

.cruise-category-description a:hover {
    color:var(--cat-ocean);
    border-bottom-color:var(--cat-ocean);
}

.cruise-category-description img {
    display:block;
    max-width:100%;
    height:auto;
    margin:18px 0;
    border-radius:16px;
}

.cruise-category-description blockquote {
    margin:20px 0;
    padding:16px 20px;
    border-left:4px solid var(--cat-accent);
    background:var(--cat-soft);
    border-radius:0 14px 14px 0;
    color:#526874;
}

/* =========================================================
   HOLIDAY / CATEGORY META CARD
   ========================================================= */

.cruise-category-page .card.mb-4 {
    margin-bottom:38px !important;
    border:1px solid var(--cat-line);
    border-radius:20px;
    box-shadow:0 10px 30px rgba(18,59,93,.05);
    overflow:hidden;
}

.cruise-category-page .card.mb-4 .card-body {
    padding:24px;
}

.cruise-category-page .card.mb-4 .border.rounded {
    border-color:var(--cat-line) !important;
    border-radius:16px !important;
    background:#fbfdfd;
    transition:.2s ease;
}

.cruise-category-page .card.mb-4 .border.rounded:hover {
    border-color:#cfe1e5 !important;
    background:var(--cat-soft);
    transform:translateY(-2px);
}

/* =========================================================
   CRUISES SECTION HEADER
   ========================================================= */

.cruise-category-section-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin:0 0 20px;
}

.cruise-category-section-title {
    margin:0;
    color:var(--cat-ocean);
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(1.55rem,2.5vw,2rem);
    line-height:1.2;
    font-weight:700;
}

.cruise-category-section-subtitle {
    margin-top:4px;
    color:var(--cat-muted);
    font-size:13px;
}

.cruise-category-count {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:38px;
    height:32px;
    padding:0 11px;
    border-radius:999px;
    background:var(--cat-soft);
    border:1px solid #d8eaed;
    color:var(--cat-accent);
    font-size:13px;
    font-weight:800;
}

/* =========================================================
   CRUISE CARDS
   ========================================================= */

.cruise-category-card {
    height:100%;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:#fff;
    border:1px solid var(--cat-line);
    border-radius:22px;
    box-shadow:0 10px 30px rgba(18,59,93,.055);
    transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}

.cruise-category-card:hover {
    transform:translateY(-5px);
    border-color:#cbdde7;
    box-shadow:0 18px 42px rgba(18,59,93,.11);
}

.cruise-category-image-link {
    display:block;
    position:relative;
    overflow:hidden;
    aspect-ratio:16 / 9;
    background:#edf4f6;
    text-decoration:none;
}

.cruise-category-image-link::after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(to top,rgba(5,25,39,.18),transparent 55%);
    pointer-events:none;
    transition:opacity .25s ease;
}

.cruise-category-image {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .45s ease;
}

.cruise-category-card:hover .cruise-category-image {
    transform:scale(1.045);
}

.cruise-category-card:hover .cruise-category-image-link::after {
    opacity:.65;
}

.cruise-category-card-body {
    display:flex;
    flex-direction:column;
    flex:1;
    padding:20px 20px 18px;
}

.cruise-category-card-title {
    margin:0 0 13px;
    font-size:1.15rem;
    line-height:1.3;
    font-weight:800;
}

.cruise-category-card-title a {
    color:var(--cat-ocean);
    text-decoration:none;
    transition:color .2s ease;
}

.cruise-category-card-title a:hover {
    color:var(--cat-accent);
}

.cruise-category-card-body .small {
    color:#687a84 !important;
    font-size:13px;
    line-height:1.55;
}

.cruise-category-card-body .small i {
    width:18px;
    margin-right:3px;
    color:var(--cat-accent);
}

.cruise-category-card-body .fw-semibold {
    margin-top:2px;
    color:#237b65;
    font-size:16px;
    font-weight:800 !important;
}

.cruise-category-card-footer {
    margin-top:auto;
    padding-top:12px;
}

.cruise-category-card-link {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    width:100%;
    min-height:43px;
    padding:10px 18px;
    border-radius:999px;
    background:var(--cat-soft);
    color:var(--cat-accent);
    text-decoration:none;
    font-size:13px;
    font-weight:800;
    transition:all .2s ease;
}

.cruise-category-card-link i {
    font-size:12px;
    transition:transform .2s ease;
}

.cruise-category-card-link:hover {
    background:var(--cat-accent);
    color:#fff;
    transform:translateY(-1px);
}

.cruise-category-card-link:hover i {
    transform:translateX(3px);
}

/* =========================================================
   EMPTY STATE
   ========================================================= */

.cruise-category-page .alert-info {
    padding:18px 20px;
    border:1px solid #d8e8ed;
    border-radius:16px;
    background:var(--cat-soft);
    color:#536773;
}

.cruise-category-page .alert-info i {
    color:var(--cat-accent);
    margin-right:6px;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width:767.98px) {
    .cruise-category-header {
        margin-bottom:30px;
    }

    .cruise-category-title {
        font-size:2.15rem;
    }

    .cruise-category-description {
        font-size:15px;
        line-height:1.75;
    }

    .cruise-category-section-heading {
        align-items:flex-start;
    }

    .cruise-category-card-body {
        padding:18px 18px 16px;
    }
}

@media (max-width:575.98px) {
    .cruise-category-section-heading {
        gap:12px;
    }

    .cruise-category-section-subtitle {
        font-size:12px;
    }

    .cruise-category-count {
        min-width:34px;
        height:30px;
    }
}


/* ==========================================================
   INSURANCE PAGE — OJO / CRUISE THEME
   Page-specific styles for ins.php
   ========================================================== */

.insurance-page {
  --ins-ocean:#123b5d;
  --ins-ocean-dark:#0b2941;
  --ins-accent:#247da3;
  --ins-soft:#edf7f8;
  --ins-blue-soft:#f4f8fd;
  --ins-ink:#20303d;
  --ins-muted:#71808c;
  --ins-line:#e4e9ed;
}

.insurance-page-title {
  margin:0 0 28px;
  color:var(--ins-ocean);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2rem,3vw,3rem);
  font-weight:700;
  line-height:1.1;
}

.insurance-page section { margin-bottom:48px !important; }
.insurance-page h2,
.insurance-page h3,
.insurance-page h4 { color:var(--ins-ocean); }
.insurance-page p,
.insurance-page li { color:var(--ins-ink); line-height:1.7; }
.insurance-page .text-muted { color:var(--ins-muted) !important; }

.insurance-panel,
.insurance-section-panel,
.insurance-content-card,
.insurance-product-card {
  border:1px solid var(--ins-line) !important;
  border-radius:26px !important;
  background:#fff;
  box-shadow:0 12px 32px rgba(18,59,93,.07) !important;
}

.insurance-panel,
.insurance-section-panel { padding:32px !important; }

.insurance-soft-panel {
  height:100%;
  padding:24px !important;
  border:1px solid #e2edf3;
  border-radius:20px;
  background:var(--ins-blue-soft) !important;
}

.insurance-eyebrow {
  display:inline-block;
  color:var(--ins-accent) !important;
  font-size:11px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.insurance-eyebrow-light { color:rgba(255,255,255,.78) !important; }
.insurance-heading-color { color:var(--ins-ocean) !important; }
.insurance-white-heading { color:#fff !important; }

.insurance-page a:not(.btn):not(.breadcrumb-item a) {
  color:var(--ins-accent);
}

.insurance-primary-btn,
.insurance-page .btn-primary {
  border-color:var(--ins-ocean) !important;
  background:var(--ins-ocean) !important;
  border-radius:999px !important;
  font-weight:700;
  padding-top:11px;
  padding-bottom:11px;
}

.insurance-page .btn-outline-primary {
  border-color:#cbdde7;
  color:var(--ins-ocean);
  border-radius:999px !important;
  font-weight:700;
  padding-top:11px;
  padding-bottom:11px;
  background:#fff;
}

.insurance-page .btn-outline-primary:hover {
  background:var(--ins-soft);
  border-color:var(--ins-accent);
  color:var(--ins-ocean-dark);
}

.insurance-level-badge,
.insurance-hero-badge {
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:7px 13px;
  border-radius:999px !important;
  background:#edf5ff !important;
  color:var(--ins-ocean) !important;
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
}

.insurance-level-badge-dark,
.insurance-hero-badge {
  background:var(--ins-ocean) !important;
  color:#fff !important;
}

.insurance-product-card {
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.insurance-product-card:hover {
  transform:translateY(-4px);
  box-shadow:0 18px 38px rgba(18,59,93,.12) !important;
  border-color:#d4e1e8 !important;
}

.insurance-product-card .card-body { padding:28px !important; }
.insurance-product-card h3 { margin-top:2px; }
.insurance-product-card ul { margin-top:8px; }
.insurance-product-card li::marker { color:var(--ins-accent); }

.insurance-note {
  padding:18px 22px !important;
  background:#f6f9fc !important;
  color:var(--ins-muted);
  border-radius:18px !important;
}

.insurance-dark-panel {
  padding:34px !important;
  border-radius:26px !important;
  background:linear-gradient(135deg,var(--ins-ocean-dark),var(--ins-ocean)) !important;
  color:#fff !important;
  box-shadow:0 16px 40px rgba(11,41,65,.16);
}

.insurance-dark-panel p,
.insurance-dark-panel li { color:rgba(255,255,255,.9); }
.insurance-dark-panel h2,
.insurance-dark-panel h3,
.insurance-dark-panel h4 { color:#fff !important; }

.insurance-hero {
  padding:36px !important;
  border:1px solid #e1eaf0;
  border-radius:28px !important;
  background:linear-gradient(135deg,#f4f8fd 0%,#fff 60%,#eef5ff 100%) !important;
}

.insurance-hero-cta {
  padding:32px 24px;
  border-radius:24px;
  color:#fff;
  box-shadow:0 14px 32px rgba(18,59,93,.16);
}

.insurance-hero-cta p,
.insurance-hero-cta h4 { color:#fff !important; }

.insurance-allianz-logo {
  max-width:220px;
  max-height:80px;
  object-fit:contain;
  filter:brightness(0) invert(1);
}

.insurance-content-card { overflow:hidden; }
.insurance-content-card .card-body { padding:32px !important; }

.insurance-accordion .accordion-item {
  margin-bottom:10px;
  overflow:hidden;
  border:1px solid var(--ins-line);
  border-radius:16px !important;
  background:#fff;
}

.insurance-accordion .accordion-button {
  padding:18px 20px;
  color:var(--ins-ocean);
  font-weight:700;
  background:#fff;
  box-shadow:none !important;
}

.insurance-accordion .accordion-button:not(.collapsed) {
  color:var(--ins-ocean-dark);
  background:var(--ins-soft);
}

.insurance-accordion .accordion-body {
  padding:18px 20px 22px;
  color:var(--ins-ink);
  line-height:1.7;
}

.insurance-page > section:last-child {
  border-color:var(--ins-line) !important;
}

@media (max-width: 767.98px) {
  .insurance-page { padding-top:16px !important; }
  .insurance-page-title { margin-bottom:22px; }
  .insurance-panel,
  .insurance-section-panel,
  .insurance-dark-panel,
  .insurance-hero { padding:24px !important; border-radius:22px !important; }
  .insurance-product-card .card-body,
  .insurance-content-card .card-body { padding:24px !important; }
  .insurance-page section { margin-bottom:36px !important; }
}

/* ==========================================================
   LOGIN PAGE
   ========================================================== */
.login-page{
    --login-ocean:#123b5d;
    --login-ocean-dark:#0b2941;
    --login-accent:#247da3;
    --login-soft:#edf7f8;
    --login-ink:#20303d;
    --login-muted:#71808c;
    --login-line:#e4e9ed;
    max-width:520px;
    margin:0 auto;
}

.login-card{
    background:#fff;
    border:1px solid var(--login-line);
    border-radius:28px;
    padding:36px;
    box-shadow:0 18px 50px rgba(18,59,93,.10);
}

.login-header{margin-bottom:28px;}
.login-icon{
    width:62px;height:62px;margin:0 auto 18px;
    display:flex;align-items:center;justify-content:center;
    border-radius:20px;background:var(--login-soft);color:var(--login-accent);
    font-size:24px;
}
.login-header h1{
    margin:0 0 8px;color:var(--login-ink);
    font-family:Georgia,"Times New Roman",serif;font-size:32px;font-weight:700;
}
.login-header p{margin:0;color:var(--login-muted);font-size:14px;line-height:1.6;}
.login-alert{border-radius:14px;margin-bottom:18px;border:0;}
.login-label{display:block;margin:0 0 8px;color:var(--login-ink);font-size:13px;font-weight:700;}
.login-input-wrap{position:relative;margin-bottom:16px;}
.login-input-wrap>i{
    position:absolute;left:16px;top:50%;transform:translateY(-50%);
    color:#8b9aa4;z-index:2;
}
.login-input-wrap .form-control{
    min-height:52px;padding:12px 16px 12px 44px;
    border:1px solid var(--login-line);border-radius:15px;
    box-shadow:none;color:var(--login-ink);
}
.login-input-wrap .form-control:focus{
    border-color:var(--login-accent);
    box-shadow:0 0 0 4px rgba(36,125,163,.10);
}
.login-primary-button{
    min-height:52px;border:0;border-radius:999px;
    display:flex;align-items:center;justify-content:center;gap:10px;
    background:var(--login-ocean);color:#fff;font-size:14px;font-weight:800;
    transition:all .2s ease;
}
.login-primary-button:hover{background:var(--login-ocean-dark);color:#fff;transform:translateY(-1px);}

.login-code-intro{margin-bottom:24px;}
.login-code-icon{
    width:48px;height:48px;margin:0 auto 12px;
    display:flex;align-items:center;justify-content:center;
    border-radius:16px;background:var(--login-soft);color:var(--login-accent);
}
.login-code-title{color:var(--login-ink);font-size:16px;font-weight:800;margin-bottom:5px;}
.login-code-subtitle{color:var(--login-muted);font-size:13px;}
.login-code-inputs{justify-content:center;}
.login-code-inputs .code-input{
    width:52px;height:58px;flex:1;max-width:58px;
    padding:0;border:1px solid var(--login-line);border-radius:14px;
    font-size:22px;font-weight:800;color:var(--login-ink);box-shadow:none;
}
.login-code-inputs .code-input:focus{
    border-color:var(--login-accent);box-shadow:0 0 0 4px rgba(36,125,163,.10);
}
.login-remember{color:var(--login-muted);font-size:13px;}
.login-remember .form-check-input{border-color:#c9d2d8;}
.login-remember .form-check-input:checked{background-color:var(--login-accent);border-color:var(--login-accent);}
.login-resend{padding-top:4px;}
.login-resend a{
    color:var(--login-accent);font-size:13px;font-weight:700;text-decoration:none;
    opacity:.5;pointer-events:none;
}
.login-resend a:hover{text-decoration:underline;}
.login-footer{
    margin-top:28px;padding-top:20px;border-top:1px solid var(--login-line);
    text-align:center;color:#8a98a1;font-size:12px;
}
.login-footer i{margin-right:6px;color:var(--login-accent);}

@media(max-width:575.98px){
    .login-page{padding-left:14px;padding-right:14px;}
    .login-card{padding:26px 20px;border-radius:22px;}
    .login-header h1{font-size:27px;}
    .login-code-inputs{gap:7px!important;}
    .login-code-inputs .code-input{height:54px;font-size:20px;}
}

/* =========================================================
   UNIVERSAL CRUISE CARD
   Shared by destination, company, ship and search pages
   ========================================================= */

.cruise-card {
    height:100%;
    overflow:hidden;
    background:#fff;
    border:1px solid var(--dst-line,#dbe7eb);
    border-radius:20px;
    box-shadow:0 8px 26px rgba(19,58,76,.045);
    transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}

.cruise-card:hover {
    transform:translateY(-5px);
    border-color:#c6dce4;
    box-shadow:0 16px 38px rgba(19,58,76,.10);
}

.cruise-card-media {
    position:relative;
    width:100%;
    aspect-ratio:16/16;
    overflow:hidden;
    background:#f4f7f8;
}

.cruise-card-media img {
    width:100%;
    height:100%;
    display:block;
}

.cruise-card-media-front img {
    object-fit:cover;
}

.cruise-card-media-back img {
    object-fit:contain;
    background:#f8fafc;
}

.cruise-card-media-link {
    display:block;
    width:100%;
    height:100%;
    color:inherit;
    text-decoration:none;
}

.cruise-card-flip {
    perspective:1200px;
    cursor:pointer;
}

.cruise-card-flip-inner {
    position:relative;
    width:100%;
    height:100%;
    transform-style:preserve-3d;
    transition:transform .65s cubic-bezier(.2,.7,.2,1);
}

.cruise-card-flip:hover .cruise-card-flip-inner,
.cruise-card-flip.is-flipped .cruise-card-flip-inner {
    transform:rotateY(180deg);
}

.cruise-card-face {
    position:absolute;
    inset:0;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
}

.cruise-card-back {
    transform:rotateY(180deg);
}

.cruise-card-map-icon {
    position:absolute;
    top:12px;
    right:12px;
    z-index:3;
    width:38px;
    height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:rgba(22,63,80,.94);
    color:#fff;
    box-shadow:0 4px 14px rgba(0,0,0,.18);
    pointer-events:none;
}

.cruise-card-body {
    display:flex;
    flex-direction:column;
    flex:1;
    padding:18px 19px 20px;
}

.cruise-card-ship-title {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom: 10px;
}

.cruise-card-ship-title h3 {
    color:var(--dst-ink,#173447);
    font-size:18px;
    font-weight:700;
    margin:0;
    min-width:0;
}

.cruise-card-favorite-form {
    margin:0;
    flex:0 0 auto;
}

.cruise-card-favorite {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:auto;
    height:auto;
    padding:2px 0 2px 10px;
    border:0;
    background:transparent;
    color:#7b8790;
    font-size:20px;
    line-height:1;
    text-decoration:none;
    cursor:pointer;
    transition:color .2s ease;
}

.cruise-card-favorite:hover,
.cruise-card-favorite:focus {
    color:#dc3545;
    background:transparent;
    border:0;
}

.cruise-card-favorite.is-favorite {
    color:#dc3545;
}

.cruise-card-favorite:focus-visible {
    outline:2px solid rgba(220,53,69,.25);
    outline-offset:3px;
    border-radius:3px;
}

.cruise-card-info {
    color:#6e818b;
    font-size:13px;
    margin-bottom:7px;
}

.cruise-card-info i {
    width:18px;
    margin-right:3px;
    color:var(--dst-accent,#247da3);
}

.cruise-card-price {
    margin:8px 0 13px;
    color:#2f8a68;
    font-size:16px;
    font-weight:800;
}

.cruise-card-link {
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-top:auto;
    min-height:42px;
    padding:9px 15px;
    border-radius:999px;
    background:#edf7f8;
    color:var(--dst-accent-dark,#155a78);
    justify-content:center;
    text-decoration:none;
    transition:all .2s ease;
}

.cruise-card-link:hover {
    background:var(--dst-accent,#247da3);
    color:#fff;
}

@media (pointer:coarse) {
    .cruise-card-flip:hover .cruise-card-flip-inner {
        transform:none;
    }
}

@media (prefers-reduced-motion:reduce) {
    .cruise-card-flip-inner {
        transition:none;
    }
}

 .esim-page {
      --esim-green: #2f8f46;
      --esim-green-dark: #237239;
      --esim-green-soft: #edf8ed;
      --esim-blue-soft: #eef8fc;
      --esim-text: #252525;
    }

    .esim-page .esim-title {
      color: var(--esim-green-dark);
      font-weight: 700;
      letter-spacing: -.02em;
    }

    .esim-page .esim-hero {
      position: relative;
      overflow: hidden;
      border: 1px solid #dcebdc;
      background:
        radial-gradient(circle at 100% 0%, rgba(93, 181, 107, .16), transparent 34%),
        linear-gradient(135deg, #f7fcf7 0%, #ffffff 58%, #eef8f0 100%);
    }

    .esim-page .esim-logo {
      max-width: 150px;
      max-height: 48px;
      object-fit: contain;
    }

    .esim-page .esim-lead {
      font-size: 1.14rem;
      line-height: 1.75;
      color: #444;
    }

    .esim-page .esim-hero-badge {
      color: var(--esim-green-dark);
      background: #dff1df;
      border: 1px solid #c9e5ca;
    }

    .esim-page .esim-cta {
      background: linear-gradient(135deg, var(--esim-green) 0%, #48a94d 100%);
      color: #fff;
      box-shadow: 0 12px 30px rgba(47, 143, 70, .20);
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .esim-page .esim-cta:hover {
      color: #fff;
      transform: translateY(-2px);
      box-shadow: 0 16px 34px rgba(47, 143, 70, .28);
    }

    .esim-page .esim-benefit {
      height: 100%;
      background: #fff;
      border: 1px solid #e6e6e6;
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .esim-page .esim-benefit:hover {
      transform: translateY(-3px);
      box-shadow: 0 .6rem 1.4rem rgba(0,0,0,.07);
    }

    .esim-page .esim-icon {
      width: 48px;
      height: 48px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 14px;
      background: var(--esim-green-soft);
      color: var(--esim-green-dark);
      font-size: 1.45rem;
    }

    .esim-page .esim-promo {
      background: linear-gradient(135deg, #e7f5df 0%, #d8eed2 100%);
      border: 1px solid #c9e4bf;
    }

    .esim-page .esim-code {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 260px;
      padding: .85rem 1.25rem;
      border-radius: 12px;
      background: #fff;
      border: 1px dashed #86a77e;
      color: #a94343;
      font-size: 1.45rem;
      font-weight: 800;
      letter-spacing: .08em;
      user-select: all;
    }

    .esim-page .esim-info {
      background: var(--esim-blue-soft);
      border: 1px solid #d3ebf5;
    }

.esim-page .esim-footer-wrap {
  position: relative;
  width: 100%;
  overflow: hidden;
  margin-top: 1rem;
  border-radius: 1.25rem;
  background: linear-gradient(
  135deg,
  #ffd36a 0%,
  #f58b7b 35%,
  #df7191 65%,
  #b77ab2 100%
);
}

.esim-page .esim-footer {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
  padding: 5px;
}      
      

    @media (max-width: 575.98px) {
      .esim-page .esim-code {
        min-width: 0;
        width: 100%;
        font-size: 1.2rem;
      }

      .esim-page .esim-logo {
        max-width: 125px;
      }
    }


