/*
 * New-design ("v2") destination page (templates/default/destination_v2.php).
 * Loaded in <head> by destination::destinationV2() only when the new design
 * is active; every rule is scoped to .dest-v2. Same palette and card language
 * as the v2 homepage: navy text, slate details, neutral panels, pink only on
 * primary buttons.
 */

/* Poppins 500/600/700 (same files as the v2 homepage). */
@font-face {
   font-family: 'Poppins';
   font-style: normal;
   font-weight: 500;
   font-display: swap;
   src: url('../img/assets/fonts/poppins/poppins-500-latin.woff2') format('woff2');
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
   font-family: 'Poppins';
   font-style: normal;
   font-weight: 600;
   font-display: swap;
   src: url('../img/assets/fonts/poppins/poppins-600-latin.woff2') format('woff2');
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
   font-family: 'Poppins';
   font-style: normal;
   font-weight: 700;
   font-display: swap;
   src: url('../img/assets/fonts/poppins/poppins-700-latin.woff2') format('woff2');
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.dest-v2 {
   --dv2-navy: #14183A;
   --dv2-pink: #E8236E;
   --dv2-pink-dark: #C2145A;
   --dv2-slate: #5B6178;
   --dv2-body: #4A4F63;
   --dv2-muted: #8A8FA3;
   --dv2-neutral: #F3F5F9;
   --dv2-border: #E4E8F0;
   --dv2-shadow: 0 6px 24px rgba(20, 24, 58, 0.07);
   --dv2-gutter: 16px;
   background: #FAFAFA;
   color: var(--dv2-body);
   font-family: 'Poppins', 'proxima-nova', Arial, Helvetica, sans-serif;
   overflow-x: hidden;
   overflow-x: clip;
   padding-bottom: 40px;
}

@media (min-width: 960px) {
   .dest-v2 {
      --dv2-gutter: 32px;
   }
}

.dest-v2 .dv2-wrap {
   box-sizing: content-box;
   max-width: 1200px;
   margin: 0 auto;
   padding: 0 var(--dv2-gutter);
}

.dest-v2 h1,
.dest-v2 h2,
.dest-v2 h3,
.dest-v2 h4 {
   font-family: 'Poppins', sans-serif;
   color: var(--dv2-navy);
   letter-spacing: -0.01em;
}

.dest-v2 a {
   color: var(--dv2-navy);
}

/* ---------------------------------------------------------------- */
/* Hero: light tinted band                                          */
/* ---------------------------------------------------------------- */
.dest-v2 .dv2-hero {
   padding: 16px 0 24px;
   background: linear-gradient(180deg, #EEF3F9 0%, #FAFAFA 100%);
   border-bottom: 1px solid var(--dv2-border);
}

.dest-v2 .dv2-crumbs {
   display: flex;
   align-items: center;
   gap: 8px;
   font-size: 13px;
   color: var(--dv2-muted);
}

.dest-v2 .dv2-crumbs a {
   color: var(--dv2-slate);
   text-decoration: none;
}

.dest-v2 .dv2-crumbs a:hover {
   text-decoration: underline;
}

.dest-v2 .dv2-crumbs i {
   font-size: 9px;
}

.dest-v2 .dv2-hero-row {
   display: flex;
   align-items: center;
   gap: 16px;
   margin-top: 16px;
}

.dest-v2 .dv2-hero-flag {
   flex: 0 0 64px;
   width: 64px;
   height: 64px;
   border-radius: 50%;
   object-fit: cover;
   box-shadow: 0 6px 18px rgba(20, 24, 58, 0.16);
   background: #fff;
}

.dest-v2 .dv2-hero-copy {
   min-width: 0;
}

.dest-v2 .dv2-hero h1 {
   margin: 0;
   font-size: 26px;
   font-weight: 700;
   line-height: 1.2;
}

.dest-v2 .dv2-hero-sub {
   margin: 6px 0 0;
   font-size: 14px;
   line-height: 1.5;
   color: var(--dv2-body);
}

.dest-v2 .dv2-facts {
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
   list-style: none;
   margin: 18px 0 0;
   padding: 0;
}

.dest-v2 .dv2-facts li {
   display: inline-flex;
   align-items: center;
   gap: 6px;
   margin: 0;
   padding: 6px 12px;
   border-radius: 999px;
   background: #fff;
   border: 1px solid var(--dv2-border);
   font-size: 12.5px;
   font-weight: 500;
   color: var(--dv2-navy);
}

.dest-v2 .dv2-facts i {
   color: var(--dv2-slate);
   font-size: 12px;
}

@media (min-width: 768px) {
   .dest-v2 .dv2-hero {
      padding: 22px 0 32px;
   }

   .dest-v2 .dv2-hero-flag {
      flex-basis: 80px;
      width: 80px;
      height: 80px;
   }

   .dest-v2 .dv2-hero h1 {
      font-size: 36px;
   }

   .dest-v2 .dv2-hero-sub {
      font-size: 16px;
   }
}

/* ---------------------------------------------------------------- */
/* Sections and cards                                               */
/* ---------------------------------------------------------------- */
.dest-v2 .dv2-section {
   margin-top: 32px;
}

@media (min-width: 960px) {
   .dest-v2 .dv2-section {
      margin-top: 48px;
   }
}

.dest-v2 .dv2-section-head h2 {
   margin: 0;
   font-size: 22px;
   font-weight: 700;
   line-height: 1.25;
}

.dest-v2 .dv2-section-head p {
   margin: 8px 0 0;
   max-width: 860px;
   font-size: 14.5px;
   line-height: 1.6;
   color: var(--dv2-body);
}

@media (min-width: 960px) {
   .dest-v2 .dv2-section-head h2 {
      font-size: 28px;
   }
}

.dest-v2 .dv2-card {
   box-sizing: border-box;
   padding: 22px 20px;
   background: #fff;
   border: 1px solid rgba(20, 24, 58, 0.08);
   border-radius: 24px;
   box-shadow: var(--dv2-shadow);
}

@media (min-width: 960px) {
   .dest-v2 .dv2-card {
      padding: 32px;
   }
}

.dest-v2 .dv2-empty {
   margin-top: 16px;
   color: var(--dv2-body);
}

.dest-v2 .dv2-empty p {
   margin: 0;
}

/* Buttons */
.dest-v2 .dv2-btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   box-sizing: border-box;
   height: 44px;
   padding: 0 20px;
   border: 0;
   border-radius: 999px;
   font-family: inherit;
   font-size: 14px;
   font-weight: 600;
   text-decoration: none;
   white-space: nowrap;
   cursor: pointer;
   transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.dest-v2 .dv2-btn-primary {
   background: var(--dv2-pink);
   color: #fff;
}

.dest-v2 .dv2-btn-primary:hover {
   background: var(--dv2-pink-dark);
   color: #fff;
   text-decoration: none;
}

.dest-v2 .dv2-btn-ghost {
   background: #fff;
   border: 1.5px solid var(--dv2-border);
   color: var(--dv2-navy);
}

.dest-v2 .dv2-btn-ghost:hover {
   border-color: var(--dv2-navy);
   color: var(--dv2-navy);
   text-decoration: none;
}

.dest-v2 .dv2-btn-block {
   width: 100%;
   margin-top: 16px;
}

/* ---------------------------------------------------------------- */
/* Filters                                                          */
/* ---------------------------------------------------------------- */
/* Sticks under the site header (--dv2-sticky set by the page script).
   Margins cancel the 8px padding so the layout matches the unstuck design. */
.dest-v2 .dv2-filters {
   display: flex;
   flex-direction: column;
   gap: 10px;
   position: sticky;
   top: var(--dv2-sticky, 60px);
   z-index: 5;
   margin-top: 10px;
   margin-bottom: -8px;
   padding: 8px 0;
}

/* Full-bleed page-coloured strip behind the stuck bar; shadow only while stuck. */
.dest-v2 .dv2-filters::before,
.dest-v2-regional .rg-filters::before {
   content: "";
   position: absolute;
   top: 0;
   bottom: 0;
   left: 50%;
   width: 100vw;
   margin-left: -50vw;
   z-index: -1;
   background: #FAFAFA;
   transition: box-shadow 0.2s;
}

.dest-v2 .dv2-filters.is-stuck::before,
.dest-v2-regional .rg-filters.is-stuck::before {
   box-shadow: 0 6px 12px -6px rgba(20, 24, 58, 0.14);
}

.dest-v2 .dv2-seg {
   display: flex;
   gap: 4px;
   padding: 4px;
   border-radius: 999px;
   background: var(--dv2-neutral);
   border: 1px solid var(--dv2-border);
   overflow-x: auto;
   scrollbar-width: none;
   max-width: 100%;
   box-sizing: border-box;
   width: max-content;
}

.dest-v2 .dv2-seg::-webkit-scrollbar {
   display: none;
}

.dest-v2 .dv2-seg button {
   flex: 0 0 auto;
   height: 34px;
   padding: 0 14px;
   border: 0;
   border-radius: 999px;
   background: transparent;
   font-family: inherit;
   font-size: 13px;
   font-weight: 500;
   color: var(--dv2-slate);
   white-space: nowrap;
   cursor: pointer;
}

.dest-v2 .dv2-seg button:hover {
   color: var(--dv2-navy);
}

.dest-v2 .dv2-seg button.is-on {
   background: #fff;
   color: var(--dv2-navy);
   font-weight: 600;
   box-shadow: 0 2px 6px rgba(20, 24, 58, 0.10);
}

.dest-v2 .dv2-count {
   font-size: 13px;
   color: var(--dv2-muted);
}

.dest-v2 .dv2-break {
   display: none;
}

@media (min-width: 960px) {
   .dest-v2 .dv2-filters {
      flex-direction: row;
      flex-wrap: wrap;
      align-items: center;
   }

   .dest-v2 .dv2-count {
      margin-left: auto;
   }

   /* Plan type pills sit on their own row above data and validity */
   .dest-v2 .dv2-break {
      display: block;
      flex-basis: 100%;
      height: 0;
      margin-top: -10px;
   }
}

/* ---------------------------------------------------------------- */
/* Plan cards (the app's ProductCardV2)                             */
/* ---------------------------------------------------------------- */
.dest-v2 .dv2-grid {
   display: grid;
   grid-template-columns: minmax(0, 1fr);
   gap: 16px;
   margin-top: 18px;
}

@media (min-width: 640px) {
   .dest-v2 .dv2-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }
}

@media (min-width: 1100px) {
   .dest-v2 .dv2-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 20px;
   }
}

.dest-v2 .dv2-grid-more:not(.is-open) .dv2-extra {
   display: none;
}

.dest-v2 .dv2-more-row {
   margin-top: 18px;
   text-align: center;
}

.dest-v2 .dv2-plan {
   display: flex;
   flex-direction: column;
   min-width: 0;
   background: #fff;
   border: 1px solid var(--dv2-border);
   border-radius: 20px;
   box-shadow: 0 4px 12px rgba(20, 24, 58, 0.04);
   overflow: hidden;
}

.dest-v2 .dv2-plan[hidden] {
   display: none;
}

.dest-v2 .dv2-plan > * + * {
   border-top: 1px solid var(--dv2-border);
}

.dest-v2 .dv2-plan-head {
   display: flex;
   align-items: center;
   gap: 12px;
   padding: 14px 16px 12px;
}

.dest-v2 .dv2-plan-flag {
   flex: 0 0 40px;
   width: 40px;
   height: 40px;
   border-radius: 50%;
   object-fit: cover;
   box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}

.dest-v2 .dv2-plan-flag-icon {
   display: flex;
   align-items: center;
   justify-content: center;
   background: var(--dv2-neutral);
   color: var(--dv2-slate);
   box-shadow: none;
}

.dest-v2 .dv2-plan-title {
   flex: 1 1 auto;
   min-width: 0;
}

.dest-v2 .dv2-plan-title h3 {
   margin: 0;
   font-size: 15.5px;
   font-weight: 600;
   line-height: 1.3;
}

.dest-v2 .dv2-plan-title h3 a {
   color: var(--dv2-navy);
   text-decoration: none;
}

.dest-v2 .dv2-plan-title h3 a:hover {
   text-decoration: underline;
}

.dest-v2 .dv2-plan-scope {
   margin-top: 2px;
   font-size: 12px;
   color: var(--dv2-muted);
}

.dest-v2 .dv2-tag {
   flex: 0 0 auto;
   padding: 3px 9px;
   border-radius: 999px;
   background: var(--dv2-navy);
   font-size: 11px;
   font-weight: 600;
   color: #fff;
}

.dest-v2 .dv2-plan-main {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 12px;
   padding: 14px 16px 12px;
}

.dest-v2 .dv2-plan-data strong {
   font-size: 24px;
   font-weight: 700;
   line-height: 1.1;
   color: var(--dv2-navy);
}

.dest-v2 .dv2-plan-data span {
   margin-left: 6px;
   font-size: 13px;
   color: var(--dv2-muted);
}

.dest-v2 .dv2-plan-price {
   display: flex;
   flex-direction: column;
   align-items: flex-end;
   text-align: right;
}

.dest-v2 .dv2-plan-price s {
   font-size: 12.5px;
   color: var(--dv2-muted);
}

.dest-v2 .dv2-plan-price strong {
   font-size: 21px;
   font-weight: 700;
   line-height: 1.15;
   color: var(--dv2-navy);
}

.dest-v2 .dv2-plan-info {
   flex: 1 1 auto;
   list-style: none;
   margin: 0;
   padding: 12px 16px;
}

.dest-v2 .dv2-plan-info li {
   display: flex;
   align-items: center;
   gap: 8px;
   margin: 0 0 7px;
   font-size: 13px;
   color: var(--dv2-navy);
}

.dest-v2 .dv2-plan-info li:last-child {
   margin-bottom: 0;
}

.dest-v2 .dv2-plan-info i {
   width: 16px;
   color: var(--dv2-muted);
   text-align: center;
}

.dest-v2 .dv2-plan-info a {
   font-weight: 500;
   text-decoration: underline;
   text-underline-offset: 2px;
}

.dest-v2 .dv2-plan-info .dv2-plan-note {
   padding-left: 24px;
   font-size: 12px;
   color: var(--dv2-muted);
}

.dest-v2 .dv2-plan-chips {
   display: flex;
   flex-wrap: wrap;
   gap: 6px;
   padding: 10px 16px;
   border-top: 0 !important;
}

.dest-v2 .dv2-chip {
   display: inline-flex;
   align-items: center;
   gap: 5px;
   padding: 3px 10px;
   border-radius: 999px;
   background: var(--dv2-neutral);
   border: 1px solid var(--dv2-border);
   font-size: 11.5px;
   font-weight: 600;
   color: var(--dv2-slate);
   text-decoration: none;
}

.dest-v2 a.dv2-chip:hover {
   color: var(--dv2-navy);
   text-decoration: none;
}

.dest-v2 .dv2-plan-actions {
   display: flex;
   gap: 10px;
   padding: 12px 12px 14px;
}

.dest-v2 .dv2-plan-actions .dv2-btn {
   flex: 1 1 0;
   min-width: 0;
   padding: 0 10px;
}

/* Coverage modal (UIkit moves it to <body>, so it is styled unscoped by id prefix) */
.dv2-modal {
   border-radius: 20px;
   font-family: 'Poppins', sans-serif;
   color: #4A4F63;
}

.dv2-modal .uk-modal-title {
   font-size: 22px;
   font-weight: 700;
   color: #14183A;
}

.dv2-modal h4,
.dv2-modal .dv2-modal-sub {
   margin: 18px 0 8px;
   font-size: 15px;
   font-weight: 600;
   color: #14183A;
}

.dv2-modal-name {
   margin: 4px 0 0;
   font-weight: 600;
   color: #14183A;
}

.dv2-modal-countries,
.dv2-modal-ops {
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
   gap: 6px 12px;
   list-style: none;
   margin: 0;
   padding: 0;
   font-size: 13.5px;
}

.dv2-modal-countries a {
   display: flex;
   align-items: center;
   gap: 8px;
   color: #14183A;
   text-decoration: none;
}

.dv2-modal-countries a:hover {
   text-decoration: underline;
}

.dv2-modal-countries img {
   width: 18px;
   height: 18px;
   border-radius: 50%;
   object-fit: cover;
}

.dv2-modal-ops li {
   display: flex;
   align-items: center;
   gap: 8px;
   color: #14183A;
}

.dv2-modal-ops i {
   color: #5B6178;
   font-size: 11px;
}

.dv2-modal-facts {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 8px;
   margin-top: 18px;
}

.dv2-modal-facts div {
   display: flex;
   align-items: center;
   gap: 8px;
   padding: 10px 12px;
   border-radius: 12px;
   background: #F3F5F9;
   font-size: 13px;
   font-weight: 600;
   color: #14183A;
}

.dv2-modal-facts i {
   color: #5B6178;
}

/* ---------------------------------------------------------------- */
/* PPC value box                                                    */
/* ---------------------------------------------------------------- */
.dest-v2 .dv2-ppc {
   margin-top: 20px;
   padding: 18px 20px;
   border-radius: 20px;
   background: #fff;
   border: 1px solid var(--dv2-border);
   box-shadow: var(--dv2-shadow);
}

.dest-v2 .dv2-ppc[hidden] {
   display: none;
}

.dest-v2 .dv2-ppc-title {
   font-size: 15px;
   font-weight: 700;
   color: var(--dv2-navy);
}

.dest-v2 .dv2-ppc-list {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 12px 16px;
   list-style: none;
   margin: 12px 0 0;
   padding: 0;
}

.dest-v2 .dv2-ppc-list li {
   display: flex;
   gap: 10px;
   margin: 0;
   font-size: 12.5px;
   line-height: 1.4;
   color: var(--dv2-body);
}

.dest-v2 .dv2-ppc-list strong {
   display: block;
   color: var(--dv2-navy);
}

.dest-v2 .dv2-ppc-list i {
   flex: 0 0 30px;
   width: 30px;
   height: 30px;
   display: flex;
   align-items: center;
   justify-content: center;
   border-radius: 50%;
   background: var(--dv2-neutral);
   color: var(--dv2-slate);
   font-size: 12px;
}

.dest-v2 .dv2-ppc-tp {
   flex-direction: column;
}

.dest-v2 .ppc-tp-wrap {
   position: relative;
   width: 100%;
}

.dest-v2 .ppc-tp-overlay {
   position: absolute;
   top: 0;
   right: 0;
   bottom: 0;
   left: 0;
   z-index: 1;
}

@media (min-width: 960px) {
   .dest-v2 .dv2-ppc-list {
      grid-template-columns: repeat(4, minmax(0, 1fr));
   }
}

/* ---------------------------------------------------------------- */
/* Info sections                                                    */
/* ---------------------------------------------------------------- */
.dest-v2 .dv2-quick {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 12px;
}

@media (min-width: 960px) {
   .dest-v2 .dv2-quick {
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 20px;
   }
}

.dest-v2 .dv2-quick-item {
   padding: 18px 16px;
   border-radius: 20px;
   background: #fff;
   border: 1px solid var(--dv2-border);
   box-shadow: var(--dv2-shadow);
   text-align: center;
}

.dest-v2 .dv2-quick-item i {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 40px;
   height: 40px;
   border-radius: 12px;
   background: var(--dv2-neutral);
   color: var(--dv2-slate);
   font-size: 16px;
}

.dest-v2 .dv2-quick-item h3 {
   margin: 10px 0 2px;
   font-size: 14px;
   font-weight: 600;
}

.dest-v2 .dv2-quick-item p {
   margin: 0;
   font-size: 13.5px;
   color: var(--dv2-body);
   overflow-wrap: anywhere;
}

.dest-v2 .dv2-split {
   display: grid;
   grid-template-columns: minmax(0, 1fr);
   gap: 16px;
}

@media (min-width: 960px) {
   .dest-v2 .dv2-split {
      grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
      gap: 24px;
      align-items: start;
   }
}

.dest-v2 .dv2-three {
   display: grid;
   grid-template-columns: minmax(0, 1fr);
   gap: 16px;
   margin-top: 18px;
}

@media (min-width: 768px) {
   .dest-v2 .dv2-three {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 20px;
   }
}

.dest-v2 .dv2-prose {
   font-size: 15px;
   line-height: 1.7;
   color: var(--dv2-body);
   overflow-wrap: anywhere;
}

.dest-v2 .dv2-prose h2 {
   margin: 0 0 12px;
   font-size: 22px;
   font-weight: 700;
}

.dest-v2 .dv2-prose h3 {
   display: flex;
   align-items: center;
   gap: 10px;
   margin: 0 0 12px;
   font-size: 18px;
   font-weight: 700;
   line-height: 1.3;
}

.dest-v2 .dv2-prose h3 i {
   flex: 0 0 34px;
   width: 34px;
   height: 34px;
   display: flex;
   align-items: center;
   justify-content: center;
   border-radius: 10px;
   background: var(--dv2-neutral);
   color: var(--dv2-slate);
   font-size: 14px;
}

.dest-v2 .dv2-prose h4 {
   margin: 20px 0 8px;
   font-size: 16px;
   font-weight: 600;
}

.dest-v2 .dv2-prose p {
   margin: 0 0 12px;
}

.dest-v2 .dv2-prose img {
   max-width: 100%;
   height: auto;
   border-radius: 14px;
}

.dest-v2 .dv2-ticks {
   list-style: none;
   margin: 0 0 12px;
   padding: 0;
}

.dest-v2 .dv2-ticks li {
   display: flex;
   gap: 10px;
   margin: 0 0 9px;
   font-size: 14.5px;
   line-height: 1.55;
}

.dest-v2 .dv2-ticks i {
   flex: 0 0 20px;
   width: 20px;
   height: 20px;
   margin-top: 2px;
   display: flex;
   align-items: center;
   justify-content: center;
   border-radius: 50%;
   background: var(--dv2-neutral);
   color: var(--dv2-slate);
   font-size: 10px;
}

.dest-v2 .dv2-ticks strong {
   color: var(--dv2-navy);
}

.dest-v2 .dv2-glance h3,
.dest-v2 .dv2-facts-card h3 {
   margin: 0 0 14px;
   font-size: 18px;
   font-weight: 700;
}

.dest-v2 .dv2-glance dl {
   margin: 0;
}

.dest-v2 .dv2-glance dl > div {
   display: flex;
   justify-content: space-between;
   gap: 12px;
   padding: 10px 0;
   border-top: 1px solid var(--dv2-border);
   font-size: 14px;
}

.dest-v2 .dv2-glance dl > div:first-child {
   border-top: 0;
   padding-top: 0;
}

.dest-v2 .dv2-glance dt {
   color: var(--dv2-muted);
   font-weight: 500;
}

.dest-v2 .dv2-glance dd {
   margin: 0;
   color: var(--dv2-navy);
   font-weight: 600;
   text-align: right;
   overflow-wrap: anywhere;
}

.dest-v2 .dv2-facts-card {
   background: var(--dv2-neutral);
   box-shadow: none;
   border-color: var(--dv2-border);
}

/* FAQ */
.dest-v2 .dv2-faq .uk-accordion {
   margin: 18px 0 0;
}

.dest-v2 .dv2-faq .uk-accordion > li {
   margin-top: 10px;
   padding: 14px 18px;
   background: #fff;
   border: 1px solid var(--dv2-border);
   border-radius: 16px;
   box-shadow: var(--dv2-shadow);
}

.dest-v2 .dv2-faq .uk-accordion-title {
   font-size: 15px;
   font-weight: 600;
   color: var(--dv2-navy);
}

.dest-v2 .dv2-faq .uk-accordion-content {
   margin-top: 10px;
   color: var(--dv2-body);
}

.dest-v2 .dv2-faq .uk-accordion-content p {
   margin: 0;
}

.dest-v2 .dv2-links {
   margin-top: 16px;
   font-size: 14.5px;
}

.dest-v2 .dv2-links p {
   margin: 0 0 6px;
}

.dest-v2 .dv2-links a,
.dest-v2 .dv2-prose a {
   text-decoration: underline;
   text-underline-offset: 2px;
}

/* Related countries: round flags like the homepage */
.dest-v2 .dv2-flags {
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
   gap: 16px 8px;
   list-style: none;
   margin: 18px 0 0;
   padding: 0;
}

.dest-v2 .dv2-flags li {
   margin: 0;
   min-width: 0;
}

.dest-v2 .dv2-flags a {
   display: flex;
   flex-direction: column;
   align-items: center;
   text-align: center;
   color: var(--dv2-navy);
   text-decoration: none;
}

.dest-v2 .dv2-flag-img {
   width: 56px;
   height: 56px;
   border-radius: 50%;
   overflow: hidden;
   box-shadow: 0 3px 8px rgba(0, 0, 0, 0.10);
   transition: transform .15s ease;
}

.dest-v2 .dv2-flags a:hover .dv2-flag-img {
   transform: translateY(-2px);
}

.dest-v2 .dv2-flag-img img {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.dest-v2 .dv2-flag-name {
   margin-top: 6px;
   font-size: 12.5px;
   font-weight: 500;
   line-height: 1.25;
}

/* CTA */
.dest-v2 .dv2-cta {
   text-align: center;
}

.dest-v2 .dv2-cta h2 {
   margin: 0;
   font-size: 24px;
   font-weight: 700;
}

.dest-v2 .dv2-cta p {
   margin: 8px 0 18px;
   color: var(--dv2-body);
}

@media (prefers-reduced-motion: reduce) {
   .dest-v2 .dv2-btn,
   .dest-v2 .dv2-flag-img {
      transition: none;
   }
}

.dv2-modal-countries span {
   display: flex;
   align-items: center;
   gap: 8px;
   color: #14183A;
}

/* ---------------------------------------------------------------- */
/* Regional and global page (templates/default/regional_v2.php):    */
/* region rail + selected region's coverage card and compact rows.  */
/* ---------------------------------------------------------------- */
.dest-v2 .dv2-quick-gap {
   margin-top: 18px;
}

.dest-v2-regional .rg-hero h1 {
   margin: 14px 0 0;
}

.dest-v2-regional .rg-intro p {
   margin: 6px 0 0;
   max-width: 860px;
   font-size: 14.5px;
   line-height: 1.6;
   color: var(--dv2-body);
}

.dest-v2-regional .rg-intro.is-clamped:not(.is-open) p {
   display: -webkit-box;
   -webkit-line-clamp: 2;
   -webkit-box-orient: vertical;
   overflow: hidden;
}

.dest-v2-regional .rg-readmore {
   margin-top: 4px;
   padding: 0;
   border: 0;
   background: none;
   font-family: inherit;
   font-size: 13px;
   font-weight: 600;
   color: var(--dv2-navy);
   text-decoration: underline;
   text-underline-offset: 2px;
   cursor: pointer;
}

.dest-v2-regional .rg-readmore[hidden],
.dest-v2-regional .rg-intro:not(.is-clamped) .rg-readmore {
   display: none;
}

.dest-v2-regional .rg-planner {
   margin-top: 20px;
}

/* Rail: phone/tablet = sticky horizontal pill bar */
.dest-v2-regional .rg-rail {
   position: sticky;
   top: var(--rg-sticky, 60px);
   z-index: 5;
   margin: 0 calc(var(--dv2-gutter) * -1);
   padding: 8px var(--dv2-gutter);
   background: #FAFAFA;
}

.dest-v2-regional .rg-rail::after {
   content: "";
   position: absolute;
   top: 8px;
   right: 0;
   bottom: 8px;
   width: 32px;
   background: linear-gradient(to right, rgba(250, 250, 250, 0), #FAFAFA);
   pointer-events: none;
}

.dest-v2-regional .rg-rail-inner {
   display: flex;
   gap: 6px;
   overflow-x: auto;
   scrollbar-width: none;
   padding-right: 24px;
}

.dest-v2-regional .rg-rail-inner::-webkit-scrollbar {
   display: none;
}

.dest-v2-regional .rg-rail-head {
   display: none;
}

.dest-v2-regional .rg-rail-item {
   flex: 0 0 auto;
   display: flex;
   align-items: center;
   gap: 8px;
   padding: 6px 12px 6px 6px;
   border-radius: 999px;
   background: #fff;
   border: 1px solid var(--dv2-border);
   color: var(--dv2-navy);
   text-decoration: none;
   white-space: nowrap;
}

.dest-v2-regional .rg-rail-item:hover {
   color: var(--dv2-navy);
   text-decoration: none;
   border-color: #C9CFDB;
}

.dest-v2-regional .rg-rail-item.is-on {
   background: var(--dv2-navy);
   border-color: var(--dv2-navy);
   color: #fff;
}

.dest-v2-regional .rg-rail-item.is-on .rg-rail-meta {
   color: rgba(255, 255, 255, 0.75);
}

.dest-v2-regional .rg-rail-icon {
   display: inline-flex;
   align-items: center;
   flex: 0 0 auto;
}

.dest-v2-regional .rg-rail-icon img {
   width: 18px;
   height: 18px;
   border-radius: 50%;
   object-fit: cover;
   box-shadow: 0 0 0 2px #fff;
}

.dest-v2-regional .rg-rail-icon img + img {
   margin-left: -6px;
}

.dest-v2-regional .rg-rail-globe {
   width: 22px;
   height: 22px;
   justify-content: center;
   border-radius: 50%;
   background: var(--dv2-neutral);
   color: var(--dv2-slate);
   font-size: 12px;
}

.dest-v2-regional .rg-rail-text {
   display: flex;
   flex-direction: column;
   line-height: 1.2;
}

.dest-v2-regional .rg-rail-name {
   font-size: 13.5px;
   font-weight: 600;
}

.dest-v2-regional .rg-rail-meta {
   display: none;
   font-size: 12px;
   color: var(--dv2-muted);
}

/* Panels: without JS every region is stacked; with JS only the chosen one. */
.dest-v2-regional .rg-panel + .rg-panel {
   margin-top: 28px;
}

.dest-v2-regional.is-js .rg-panel {
   display: none;
   margin-top: 0;
}

.dest-v2-regional.is-js .rg-panel.is-active {
   display: block;
}

.dest-v2-regional .rg-anchor {
   display: block;
   position: relative;
   top: -120px;
}

.dest-v2-regional .rg-head {
   margin-top: 8px;
   padding: 20px;
}

.dest-v2-regional .rg-head-top {
   display: flex;
   align-items: baseline;
   justify-content: space-between;
   gap: 12px;
}

.dest-v2-regional .rg-head h2 {
   margin: 0;
   font-size: 22px;
   font-weight: 700;
}

.dest-v2-regional .rg-head-count {
   flex: 0 0 auto;
   font-size: 13px;
   color: var(--dv2-muted);
}

.dest-v2-regional .rg-head-text {
   margin: 6px 0 0;
   font-size: 14px;
   line-height: 1.55;
   color: var(--dv2-body);
}

.dest-v2-regional .rg-flags {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 6px;
   list-style: none;
   margin: 14px 0 0;
   padding: 0;
}

.dest-v2-regional .rg-flags li {
   margin: 0;
   line-height: 0;
}

.dest-v2-regional .rg-flags img {
   width: 22px;
   height: 22px;
   border-radius: 50%;
   object-fit: cover;
   box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

.dest-v2-regional .rg-flags-more {
   line-height: 1.2 !important;
   margin-left: 4px !important;
}

.dest-v2-regional .rg-flags-more a {
   font-size: 12.5px;
   font-weight: 600;
   color: var(--dv2-navy);
   text-decoration: underline;
   text-underline-offset: 2px;
}

.dest-v2-regional .rg-facts {
   display: flex;
   flex-wrap: wrap;
   gap: 6px;
   list-style: none;
   margin: 14px 0 0;
   padding: 0;
}

.dest-v2-regional .rg-facts li {
   display: inline-flex;
   align-items: center;
   gap: 6px;
   margin: 0;
   padding: 4px 10px;
   border-radius: 999px;
   background: var(--dv2-neutral);
   border: 1px solid var(--dv2-border);
   font-size: 12px;
   font-weight: 500;
   color: var(--dv2-navy);
}

.dest-v2-regional .rg-facts i {
   color: var(--dv2-slate);
   font-size: 11px;
}

/* Sticks under the header, or under the stuck region pill bar on phone
   (--rg-filter-top set by the page script). Strip and shadow shared with
   .dv2-filters above. */
.dest-v2-regional .rg-filters {
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
   position: sticky;
   top: var(--rg-filter-top, 60px);
   z-index: 4;
   margin-top: 6px;
   margin-bottom: -8px;
   padding: 8px 0;
}

.dest-v2-regional .rg-filters .dv2-seg button {
   height: 30px;
   padding: 0 12px;
   font-size: 12.5px;
}

/* Compact plan rows */
.dest-v2-regional .rg-rows {
   list-style: none;
   margin: 12px 0 0;
   padding: 0;
   background: #fff;
   border: 1px solid var(--dv2-border);
   border-radius: 20px;
   overflow: hidden;
   box-shadow: var(--dv2-shadow);
}

.dest-v2-regional .rg-row {
   display: flex;
   align-items: center;
   gap: 10px;
   box-sizing: border-box;
   min-height: 64px;
   margin: 0;
   padding: 10px 12px 10px 16px;
   border-top: 1px solid var(--dv2-border);
}

.dest-v2-regional .rg-row:first-child {
   border-top: 0;
}

.dest-v2-regional .rg-row[hidden] {
   display: none;
}

.dest-v2-regional .rg-row-main {
   flex: 1 1 auto;
   min-width: 0;
   display: flex;
   flex-direction: column;
   line-height: 1.25;
}

.dest-v2-regional .rg-row-main strong {
   font-size: 17px;
   font-weight: 700;
   color: var(--dv2-navy);
}

.dest-v2-regional .rg-row-main span {
   font-size: 12.5px;
   color: var(--dv2-muted);
}

.dest-v2-regional .rg-row-tag {
   flex: 0 0 auto;
   padding: 2px 8px;
   border-radius: 999px;
   background: var(--dv2-navy);
   font-size: 10.5px;
   font-weight: 600;
   color: #fff;
}

.dest-v2-regional .rg-row-price {
   flex: 0 0 auto;
   display: flex;
   flex-direction: column;
   align-items: flex-end;
   line-height: 1.2;
   text-align: right;
}

.dest-v2-regional .rg-row-price s {
   font-size: 11.5px;
   color: var(--dv2-muted);
}

.dest-v2-regional .rg-row-price strong {
   font-size: 16px;
   font-weight: 700;
   color: var(--dv2-navy);
}

.dest-v2-regional .rg-row-info {
   flex: 0 0 38px;
   width: 38px;
   height: 38px;
   box-sizing: border-box;
   display: flex;
   align-items: center;
   justify-content: center;
   border-radius: 50%;
   background: var(--dv2-neutral);
   border: 1px solid var(--dv2-border);
   color: var(--dv2-slate);
   font-size: 13px;
   text-decoration: none;
}

.dest-v2-regional .rg-row-info:hover {
   background: #fff;
   border-color: #C9CFDB;
   color: var(--dv2-navy);
   text-decoration: none;
}

/* Product lines within a region */
.dest-v2-regional .rg-line ~ .rg-line {
   margin-top: 36px;
}

.dest-v2-regional .rg-line[hidden] {
   display: none;
}

.dest-v2-regional .rg-line-head {
   margin-top: 20px;
   min-width: 0;
}

/* Lines after the first get a divider, like the country page families */
.dest-v2-regional .rg-line ~ .rg-line .rg-line-head {
   padding-top: 24px;
   border-top: 1px solid var(--dv2-border);
}

.dest-v2-regional .rg-line-title {
   display: flex;
   flex-wrap: wrap;
   align-items: baseline;
   justify-content: space-between;
   gap: 4px 12px;
}

.dest-v2-regional .rg-line-title h3 {
   margin: 0;
   min-width: 0;
   letter-spacing: -0.01em;
   font-size: 22px;
   font-weight: 700;
   line-height: 1.25;
   color: var(--dv2-navy);
   overflow-wrap: anywhere;
}

.dest-v2-regional .rg-line-title span {
   font-size: 14px;
   color: var(--dv2-muted);
}

.dest-v2-regional .rg-line-title a {
   font-weight: 600;
   color: var(--dv2-navy);
   text-decoration: underline;
   text-underline-offset: 2px;
}

.dest-v2-regional .rg-line-diff {
   margin: 8px 0 0;
   font-size: 15px;
   line-height: 1.6;
   color: var(--dv2-body);
   overflow-wrap: anywhere;
}

.dest-v2-regional .rg-line .rg-rows {
   margin-top: 16px;
}

.dest-v2-regional .rg-row-add {
   flex: 0 0 auto;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   height: 38px;
   min-width: 64px;
   padding: 0 16px;
   border-radius: 999px;
   background: var(--dv2-pink);
   font-size: 13.5px;
   font-weight: 600;
   color: #fff;
   text-decoration: none;
   white-space: nowrap;
}

.dest-v2-regional .rg-row-add:hover {
   background: var(--dv2-pink-dark);
   color: #fff;
   text-decoration: none;
}

.dest-v2-regional .rg-none {
   margin: 12px 0 0;
   font-size: 14px;
   color: var(--dv2-body);
}

@media (max-width: 479px) {
   .dest-v2-regional .rg-row {
      gap: 8px;
      padding-left: 14px;
   }

   .dest-v2-regional .rg-row-tag {
      display: none;
   }
}

/* Desktop: sticky vertical rail beside the selected region */
@media (min-width: 960px) {
   .dest-v2-regional .rg-planner {
      display: grid;
      grid-template-columns: 280px minmax(0, 1fr);
      gap: 28px;
      align-items: start;
      margin-top: 32px;
   }

   .dest-v2-regional .rg-rail {
      top: 100px;
      margin: 0;
      padding: 12px;
      max-height: calc(100vh - 120px);
      overflow-y: auto;
      border-radius: 20px;
      background: #F5F7FA;
      border: 1px solid var(--dv2-border);
      scrollbar-width: thin;
   }

   .dest-v2-regional .rg-rail::after {
      display: none;
   }

   /* Keep the filter strip inside the panel column so it never covers the rail. */
   .dest-v2-regional .rg-filters::before {
      left: -6px;
      right: -6px;
      width: auto;
      margin-left: 0;
   }

   .dest-v2-regional .rg-rail-inner {
      flex-direction: column;
      gap: 2px;
      overflow: visible;
      padding-right: 0;
   }

   .dest-v2-regional .rg-rail-head {
      display: block;
      margin: 8px 10px 6px;
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--dv2-slate);
   }

   .dest-v2-regional .rg-rail-head:first-child {
      margin-top: 2px;
   }

   .dest-v2-regional .rg-rail-item {
      gap: 10px;
      padding: 8px 10px;
      border-radius: 12px;
      background: transparent;
      border: 0;
      white-space: normal;
   }

   .dest-v2-regional .rg-rail-item:hover {
      background: #EBEEF4;
   }

   .dest-v2-regional .rg-rail-item.is-on {
      background: #fff;
      color: var(--dv2-navy);
      box-shadow: 0 2px 8px rgba(20, 24, 58, 0.08);
   }

   .dest-v2-regional .rg-rail-item.is-on .rg-rail-meta {
      color: var(--dv2-muted);
   }

   .dest-v2-regional .rg-rail-icon {
      min-width: 32px;
   }

   .dest-v2-regional .rg-rail-meta {
      display: block;
      margin-top: 2px;
   }

   .dest-v2-regional .rg-head {
      margin-top: 0;
      padding: 24px 28px;
   }

   .dest-v2-regional .rg-head h2 {
      font-size: 26px;
   }

   .dest-v2-regional .rg-row {
      padding: 10px 14px 10px 22px;
   }
}

/* Freshness line and quick answers (AEO) */
.dest-v2 .dv2-updated {
   margin: 6px 0 0 !important;
   font-size: 12.5px !important;
   color: var(--dv2-muted) !important;
}

.dest-v2 .dv2-answers h2 {
   margin: 0 0 12px;
   font-size: 20px;
   font-weight: 700;
}

.dest-v2 .dv2-answers dl {
   display: grid;
   grid-template-columns: minmax(0, 1fr);
   gap: 12px 28px;
   margin: 0;
}

@media (min-width: 960px) {
   .dest-v2 .dv2-answers dl {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }
}

.dest-v2 .dv2-answers dl > div {
   padding-top: 12px;
   border-top: 1px solid var(--dv2-border);
}

.dest-v2 .dv2-answers dt {
   font-size: 14.5px;
   font-weight: 600;
   color: var(--dv2-navy);
}

.dest-v2 .dv2-answers dd {
   margin: 4px 0 0;
   font-size: 14px;
   line-height: 1.55;
   color: var(--dv2-body);
}

.dest-v2-regional .rg-updated {
   margin-top: 16px !important;
}

/* ---------------------------------------------------------------- */
/* Deals page (templates/default/deals_v2.php)                      */
/* ---------------------------------------------------------------- */
.deals-v2 .dl-hero-copy h1 {
   margin: 14px 0 0;
   font-size: 26px;
   font-weight: 700;
   line-height: 1.2;
}

@media (min-width: 768px) {
   .deals-v2 .dl-hero-copy h1 {
      font-size: 36px;
   }
}

.deals-v2 .dl-hero-copy .dv2-hero-sub {
   max-width: 860px;
}

.deals-v2 .dl-item {
   display: flex;
   min-width: 0;
}

.deals-v2 .dl-item[hidden] {
   display: none;
}

.deals-v2 .dl-item > .dv2-plan {
   flex: 1 1 auto;
}

.deals-v2 .dl-picked-note {
   margin: 10px 0 0;
   font-size: 13px;
   color: var(--dv2-muted);
}

.deals-v2 .dl-empty {
   margin-top: 16px;
   text-align: center;
}

.deals-v2 .dl-empty h3 {
   margin: 0;
   font-size: 20px;
   font-weight: 700;
}

.deals-v2 .dl-empty p {
   max-width: 520px;
   margin: 8px auto 18px;
}

.deals-v2 .dl-empty-actions {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 10px;
}

.deals-v2 .dl-split {
   align-items: stretch;
}

@media (min-width: 960px) {
   .deals-v2 .dl-split {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }
}

.deals-v2 .dl-more {
   margin-top: 16px;
}

/* "What differs" chip on same-size twin plans */
.dest-v2 .dv2-chip-diff {
   background: #fff;
   color: var(--dv2-navy);
}

/* Plan family sections (v2PlanClass::FAMILIES): real section headers */
.dest-v2 .dv2-fam-section[hidden] {
   display: none;
}

.dest-v2 .dv2-fam {
   margin-top: 40px;
   padding-top: 24px;
   border-top: 1px solid var(--dv2-border);
   min-width: 0;
}

/* First visible family directly under the filters: no divider */
.dest-v2 .dv2-fam-section.is-first .dv2-fam {
   margin-top: 28px;
   padding-top: 0;
   border-top: 0;
}

.dest-v2 .dv2-fam-head {
   display: flex;
   align-items: center;
   flex-wrap: nowrap;
   gap: 6px 12px;
   min-width: 0;
}

.dest-v2 .dv2-fam-icon {
   flex: 0 0 36px;
   width: 36px;
   height: 36px;
   display: flex;
   align-items: center;
   justify-content: center;
   border-radius: 50%;
   background: var(--dv2-neutral);
   color: var(--dv2-slate);
   font-size: 14px;
}

.dest-v2 .dv2-fam-title {
   margin: 0;
   min-width: 0;
   font-size: 22px;
   font-weight: 700;
   line-height: 1.25;
   color: var(--dv2-navy);
   overflow-wrap: anywhere;
}

@media (min-width: 960px) {
   .dest-v2 .dv2-fam-title {
      font-size: 24px;
   }
}

.dest-v2 .dv2-fam-name {
   flex: 1 1 0;
   min-width: 0;
}

.dest-v2 .dv2-fam-name .dv2-fam-title {
   display: inline;
}

.dest-v2 .dv2-fam-name .dv2-fam-count {
   margin-left: 8px;
   white-space: nowrap;
}

.dest-v2 .dv2-fam-count {
   font-size: 14px;
   color: var(--dv2-muted);
}

.dest-v2 .dv2-fam p {
   margin: 6px 0 0;
   max-width: 860px;
   min-width: 0;
   font-size: 14px;
   line-height: 1.55;
   color: var(--dv2-body);
   overflow-wrap: anywhere;
}

.dest-v2 .dv2-fam + .dv2-local-grid {
   margin-top: 16px;
}

.dest-v2-regional .rg-line-fam {
   display: flex;
   align-items: center;
   gap: 10px;
   margin: 10px 0 0;
   min-width: 0;
   font-size: 15px;
   line-height: 1.6;
   color: var(--dv2-body);
   overflow-wrap: anywhere;
}

.dest-v2-regional .rg-line-fam i {
   flex: 0 0 32px;
   width: 32px;
   height: 32px;
   display: flex;
   align-items: center;
   justify-content: center;
   border-radius: 50%;
   background: var(--dv2-neutral);
   color: var(--dv2-slate);
   font-size: 13px;
}

.dest-v2-regional .rg-line-fam span {
   min-width: 0;
}
