.festive-hero .hero-overlay { background: linear-gradient(90deg, rgba(0,35,35,.85), rgba(0,35,35,.3)); }
.festive-hero .breadcrumb { display: flex; flex-wrap: wrap; gap: .65rem; color: var(--color-white); }
.festive-hero .breadcrumb a { color: var(--color-white); }
.festive-hero .hero-title { max-width: 950px; }
.festive-hero-dates { color: var(--color-white); margin: var(--space-lg) 0; font-weight: 600; }
.festive-main { min-width: 0; }
.festive-main h2 { color: var(--color-brand-teal); margin-bottom: var(--space-md); }
.festive-main > p { font-size: 1.05rem; line-height: 1.8; }
.festive-highlights { display: flex; flex-wrap: wrap; gap: .65rem; margin: var(--space-lg) 0; }
.festive-highlights span { background: var(--color-cream); border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: .6rem .85rem; font-size: .85rem; }
.festive-section-heading { margin-top: var(--space-3xl); margin-bottom: var(--space-xl); scroll-margin-top: 110px; }
.festive-day { margin-bottom: var(--space-xl); border: 1px solid var(--color-border); border-radius: var(--radius-lg); overflow: hidden; }
.festive-day > img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.festive-day-copy { padding: var(--space-xl); }
.festive-day h3 { color: var(--color-brand-teal); font-size: clamp(1.5rem, 3vw, 2rem); margin: .4rem 0 1rem; }
.festive-day p { line-height: 1.8; }
.festive-day-meta { display: flex; flex-wrap: wrap; gap: 1rem 2rem; border-top: 1px solid var(--color-border); margin-top: var(--space-lg); padding-top: var(--space-md); }
.festive-day-meta dt, .festive-booking-meta dt { font-size: .75rem; color: var(--color-muted); text-transform: uppercase; letter-spacing: .07em; }
.festive-day-meta dd { font-size: .9rem; margin-top: .25rem; }
.festive-inclusions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-lg); }
.festive-inclusions section { padding: var(--space-lg); border-radius: var(--radius-md); border: 1px solid var(--color-border); }
.festive-included { background: var(--color-cream); }
.festive-inclusions h3 { margin-bottom: var(--space-md); color: var(--color-brand-teal); }
.festive-inclusions ul { list-style: disc; padding-left: 1.2rem; }
.festive-inclusions li { margin-bottom: .8rem; line-height: 1.7; }
.festive-inclusions p, .festive-small { font-size: .85rem; line-height: 1.7; color: var(--color-muted); }
.festive-notes { margin: var(--space-xl) 0; padding: var(--space-lg); background: var(--color-cream); border-radius: var(--radius-md); }
.festive-notes h3 { margin-bottom: var(--space-md); }
.festive-notes p + p { margin-top: var(--space-md); }
.festive-booking h2 { color: var(--color-brand-teal); margin: var(--space-sm) 0 var(--space-lg); }
.festive-rates { background: var(--color-cream); padding: var(--space-md); border-radius: var(--radius-md); }
.festive-rates div { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: .4rem; }
.festive-rates div + div { border-top: 1px solid var(--color-border); padding-top: .8rem; margin-top: .8rem; }
.festive-rates strong { font-size: 1.7rem; color: var(--color-brand-teal); }
.festive-booking-meta div { padding: 1rem 0; border-bottom: 1px solid var(--color-border); }
.festive-booking-meta dd { margin-top: .3rem; font-weight: 600; }
.festive-flight-note { margin: var(--space-md) 0; font-size: .9rem; font-weight: 600; }
.festive-booking .festive-small { margin-top: var(--space-md); }
.festive-credits { font-size: .8rem; overflow-wrap: anywhere; }
.festive-credits summary { cursor: pointer; color: var(--color-brand-teal); padding: var(--space-md) 0; }
.festive-credits li { margin-bottom: .65rem; }
.festive-destination-offer { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2xl); align-items: center; }
.festive-offer-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-lg); }
.festive-destination-offer h2 { margin: var(--space-sm) 0 var(--space-md); color: var(--color-brand-teal); }
.festive-destination-offer p { margin-bottom: var(--space-md); }
.festive-offer-rate { color: var(--color-brand-teal); }
@media (max-width: 1024px) { .festive-layout { grid-template-columns: minmax(0, 1fr); } .festive-layout > aside { grid-row: 1; } .festive-booking { position: static; } }
@media (max-width: 640px) { .festive-inclusions, .festive-destination-offer { grid-template-columns: minmax(0, 1fr); } .festive-day-copy { padding: var(--space-lg); } .festive-hero .hero-title { font-size: clamp(2.4rem, 9vw, 3.5rem); } }

/* The expanded Egypt offer keeps the shared site shell and uses its own palette. */
.egypt-package {
  --color-brand-teal: #054142;
  --color-brand-gold: #D7AD60;
  --color-cream: #F5F5F5;
}
.offer-icons { position: absolute; width: 0; height: 0; overflow: hidden; }
.offer-icon { display: inline-block; width: 1.25rem; height: 1.25rem; flex: 0 0 1.25rem; vertical-align: middle; margin-right: .35rem; }
.egypt-package .festive-hero { min-height: 0; padding-top: 120px; padding-bottom: 38px; }
.egypt-package .festive-hero .hero-content { max-width: var(--container-max-width); }
.egypt-package .festive-hero .hero-title { font-size: clamp(2.35rem, 4.5vw, 4.1rem); max-width: 850px; line-height: 1.05; margin-bottom: 1rem; }
.egypt-package .festive-hero .hero-subtitle { font-size: 1rem; }
.egypt-package .festive-hero-dates { font-size: .9rem; margin-block: .9rem; }
.offer-jump-nav { background: #F5F5F5; border-bottom: 1px solid var(--color-border); }
.offer-jump-nav .container { display: flex; flex-wrap: wrap; gap: .35rem 1.25rem; padding-block: .8rem; }
.offer-jump-nav a { font-size: .85rem; padding-block: .4rem; color: #054142; }
.offer-jump-nav a:hover { text-decoration: underline; text-underline-offset: .3rem; }
.offer-section { margin-top: 3.25rem; scroll-margin-top: 100px; }
.offer-section > p { line-height: 1.75; margin-bottom: 1.2rem; }
.offer-section h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); }
.offer-place-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem 1rem; }
.offer-place { min-width: 0; }
.offer-place img { width: 100%; height: 136px; object-fit: cover; border-radius: 6px; }
.offer-place h3 { font-size: 1.25rem; margin: .65rem 0 .4rem; color: #054142; }
.offer-place p { font-size: .85rem; line-height: 1.65; }
.offer-stay-grid, .offer-activity-grid, .offer-season-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.offer-stay, .offer-activity { min-width: 0; border: 1px solid var(--color-border); border-radius: 8px; overflow: hidden; background: white; }
.offer-stay img, .offer-activity > img { display: block; width: 100%; height: 155px; object-fit: cover; }
.offer-stay figcaption { font-size: .7rem; color: var(--color-muted); padding: .5rem .85rem; background: #F5F5F5; }
.offer-card-copy { padding: 1rem; }
.offer-card-copy h3 { font-size: 1.3rem; color: #054142; margin-bottom: .7rem; }
.offer-card-copy p { font-size: .85rem; line-height: 1.75; margin-bottom: .75rem; }
.offer-card-copy a { font-size: .85rem; color: #054142; text-decoration: underline; text-underline-offset: .2rem; }
.offer-meal-label { border-top: 1px solid var(--color-border); padding-top: .75rem; }
.offer-star-rating { display: inline-block; color: #A37622; letter-spacing: .12em; white-space: nowrap; font-size: 1rem; vertical-align: middle; }
.offer-timeline { position: relative; padding-left: 2.5rem; }
.offer-timeline::before { content: ''; position: absolute; width: 1px; background: #D7AD60; top: 1.5rem; bottom: 1.5rem; left: .9rem; }
.offer-timeline .festive-day { position: relative; display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 1rem; border: 0; border-bottom: 1px solid var(--color-border); border-radius: 0; padding: 0 0 1.5rem; margin-bottom: 1.5rem; overflow: visible; }
.offer-timeline .festive-day > img { height: 96px; width: 112px; object-fit: cover; aspect-ratio: auto; border-radius: 6px; margin-top: .15rem; }
.offer-day-number { position: absolute; left: -2.5rem; top: 0; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: #054142; color: white; font-size: .8rem; border: 2px solid white; }
.offer-timeline .festive-day-copy { padding: 0; }
.offer-timeline .festive-day h3 { font-size: 1.4rem; margin-top: .3rem; scroll-margin-top: 110px; }
.offer-timeline .festive-day h3:focus-visible { outline: 2px solid #D7AD60; outline-offset: 4px; }
.offer-timeline .festive-day p { font-size: .9rem; line-height: 1.75; }
.offer-timeline .festive-day-meta { gap: .75rem 1rem; margin-top: 1rem; padding-top: .8rem; }
.offer-timeline .festive-day-meta dt { display: flex; align-items: center; font-size: .65rem; letter-spacing: .03em; }
.offer-timeline .festive-day-meta .offer-icon { width: 1rem; height: 1rem; flex-basis: 1rem; }
.offer-timeline .festive-day-meta dd { font-size: .8rem; }
.offer-transfer-row { flex-basis: 100%; }
.offer-map { height: 380px; width: 100%; position: relative; z-index: 0; background: #e6e9e5; border: 1px solid var(--color-border); border-radius: 8px; }
.offer-map > p { padding: 1rem; }
.offer-map-tools { display: flex; justify-content: flex-end; margin-bottom: .7rem; }
.offer-map-tools [hidden] { display: none; }
.offer-map-marker { background: transparent; border: 0; }
.offer-map-marker span { display: grid; place-items: center; width: 30px; height: 30px; background: #054142; color: white; border: 2px solid #fff; border-radius: 50%; font: 600 13px/1 Arial, sans-serif; box-shadow: 0 1px 5px #0004; }
.offer-map-marker:focus-visible { outline: 3px solid #D7AD60; outline-offset: 3px; border-radius: 50%; }
.offer-map-day-links { display: flex; flex-wrap: wrap; gap: .5rem; }
.offer-map-day-links a { display: inline-block; padding: .35rem; color: #054142; text-decoration: underline; }
.offer-map-legend { display: flex; gap: .6rem 1rem; flex-wrap: wrap; margin: .8rem 0; font-size: .75rem; }
.offer-map-legend i { display: inline-block; width: 24px; border-top: 3px solid; vertical-align: middle; margin-right: .3rem; }
.legend-road { border-color: #054142 !important; border-top-style: dotted !important; }
.legend-flight { border-color: #877453 !important; border-top-style: dashed !important; }
.legend-cruise { border-color: #D7AD60 !important; }
.offer-stop-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; gap: .5rem; margin-top: 1rem; }
.offer-stop-list a { display: block; padding: .8rem; border: 1px solid var(--color-border); border-radius: 5px; color: #054142; font-weight: 600; }
.offer-stop-list a[aria-current] { background: #F5F5F5; border-color: #054142; }
.offer-stop-list span { display: block; font-size: .75rem; font-weight: 400; margin-top: .2rem; }
.offer-season-grid article { padding: 1.1rem; background: #F5F5F5; border-top: 2px solid #D7AD60; }
.offer-season-grid h3 { font-size: 1.3rem; color: #054142; margin-bottom: .7rem; }
.offer-season-grid p { font-size: .9rem; line-height: 1.7; }
.offer-section > .festive-small { margin-top: .85rem; }
.offer-section .festive-small a { text-decoration: underline; text-underline-offset: .2rem; }
.egypt-package .festive-flight-note .offer-icon { color: #054142; }
.egypt-package .festive-inclusions h3 { display: flex; align-items: center; gap: .25rem; }
.egypt-package .festive-small { color: #526262; }
.egypt-package .festive-rates strong { font-size: 1.5rem; }
@media (max-width: 1100px) and (min-width: 1025px) { .egypt-package .festive-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 2rem; } .offer-place-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .egypt-package .festive-hero { padding-top: 100px; padding-bottom: 30px; }
  .offer-place-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offer-place img { height: 112px; }
  .offer-stay-grid, .offer-activity-grid, .offer-season-grid { grid-template-columns: minmax(0, 1fr); }
  .offer-stay img, .offer-activity > img { height: 165px; }
  .offer-timeline { padding-left: 2.25rem; }
  .offer-timeline .festive-day { grid-template-columns: 70px minmax(0, 1fr); gap: .7rem; }
  .offer-timeline .festive-day > img { width: 70px; height: 70px; }
  .offer-timeline .festive-day-copy { padding: 0; }
  .offer-day-number { left: -2.25rem; }
  .offer-timeline .festive-day h3 { font-size: 1.25rem; }
  .offer-timeline .festive-day-meta { flex-direction: column; }
  .offer-map { height: 330px; }
  .offer-stop-list { grid-template-columns: minmax(0, 1fr); }
  .offer-jump-nav .container { gap: .25rem 1rem; }
}
@media (prefers-reduced-motion: reduce) { .egypt-package { scroll-behavior: auto; } }

/* Each confirmed Egypt offer is a separate card in the destination collection. */
#egypt-packages { scroll-margin-top: 100px; }
.egypt-packages-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-xl); }
.egypt-package-card { min-width: 0; display: flex; flex-direction: column; border: 1px solid var(--color-border); border-radius: var(--radius-lg); overflow: hidden; background: var(--color-white); }
.egypt-package-card .festive-offer-image img { display: block; height: 220px; width: 100%; object-fit: cover; border-radius: 0; }
.egypt-package-card-body { padding: var(--space-xl); display: flex; flex-direction: column; align-items: flex-start; flex: 1; }
.egypt-package-card h3 { color: #054142; font-size: 1.8rem; margin: var(--space-sm) 0 var(--space-md); }
.egypt-package-card p { margin-bottom: var(--space-md); }
.egypt-package-card .btn { margin-top: auto; white-space: normal; }
@media (max-width: 768px) { .egypt-packages-grid { grid-template-columns: minmax(0, 1fr); } }
