.roby-itinerary{--roby-active:#c3891b;--roby-inactive:#5d6268;--roby-nav-bg:#efefef;--roby-border:#d7d7d7;--roby-title:#171717;--roby-offset:0px;--roby-nav-height:104px;--roby-day-width:104px;width:100%;color:inherit}
.roby-itinerary *{box-sizing:border-box}
.roby-itinerary-heading{font:inherit;font-size:clamp(25px,3vw,38px);font-weight:700;color:var(--roby-title);margin:0 0 24px;line-height:1.15}

/* Sticky, horizontally moving itinerary timeline */
.roby-itinerary-nav-wrap{position:sticky;top:var(--roby-offset);z-index:50;width:100%;background:var(--roby-nav-bg);border:0;box-shadow:none}
.roby-itinerary-nav{width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;scroll-behavior:smooth;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.roby-itinerary-nav::-webkit-scrollbar{display:none}
.roby-itinerary-track{display:flex;align-items:stretch;width:max-content;min-width:100%;min-height:104px;background:var(--roby-nav-bg)}

/* Each itinerary stop is variable width, matching the reference timeline */
.roby-day-tab{appearance:none;-webkit-appearance:none;flex:0 0 auto;min-width:300px;max-width:520px;min-height:104px;padding:18px 16px;border:0;background:transparent;color:var(--roby-title);text-align:left;cursor:pointer;display:flex;align-items:center;gap:16px;transition:background .22s ease,color .22s ease}
.roby-day-tab:hover{background:rgba(255,255,255,.48)}
.roby-day-tab.is-active{background:#fff}
.roby-tab-circle{flex:0 0 46px;width:46px;height:46px;border:1.5px solid #222;border-radius:50%;display:grid;place-items:center;font-size:20px;line-height:1;font-weight:500;color:#171717;background:#fff;transition:background .22s ease,color .22s ease,border-color .22s ease}
.roby-day-tab.is-active .roby-tab-circle{background:#202020;border-color:#202020;color:#fff}
.roby-tab-copy{display:flex;flex-direction:column;justify-content:center;min-width:0;gap:4px}
.roby-tab-title{display:block;font-size:clamp(17px,1.35vw,25px);line-height:1.12;font-weight:400;letter-spacing:-.01em;white-space:normal}
.roby-tab-label{display:block;font-size:clamp(17px,1.22vw,22px);line-height:1.05;font-weight:700;color:#555;white-space:nowrap}
.roby-day-tab.is-active .roby-tab-label{color:#4e4e4e}

/* Thin timeline arrows between itinerary stops */
.roby-tab-connector{flex:0 0 72px;min-width:72px;display:flex;align-items:center;justify-content:center;position:relative;color:#aaa;pointer-events:none}
.roby-connector-line{display:block;width:48px;height:1px;background:#b9b9b9}
.roby-connector-arrow{position:absolute;right:9px;top:50%;transform:translateY(-53%);font-size:25px;font-weight:300;line-height:1;color:#aaa;background:var(--roby-nav-bg);padding-left:3px}

.roby-itinerary-content{position:relative;padding-top:18px}
.roby-itinerary-day{display:grid;grid-template-columns:minmax(82px,120px) minmax(0,1fr);gap:clamp(22px,4vw,54px);padding:clamp(34px,5vw,64px) 0;border-bottom:1px solid rgba(0,0,0,.09);scroll-margin-top:calc(104px + var(--roby-offset) + 24px)}
.roby-day-marker{position:relative;color:var(--roby-active);font-weight:700;font-size:13px;letter-spacing:.02em;padding-top:7px}
.roby-day-marker:after{content:"";display:block;width:38px;height:2px;background:var(--roby-active);margin-top:12px}
.roby-day-copy h3{color:var(--roby-title);font-size:clamp(22px,2.5vw,32px);line-height:1.22;margin:0 0 18px;font-weight:700}
.roby-day-text{font:inherit;color:inherit;font-size:inherit;line-height:inherit}
.roby-day-text p:first-child{margin-top:0}.roby-day-text p:last-child{margin-bottom:0}
.roby-day-text ul,.roby-day-text ol{padding-left:1.25em}
.roby-itinerary-notice{padding:16px;border:1px dashed #bbb;background:#fafafa}

@media(max-width:980px){
 .roby-itinerary-track{min-height:94px}
 .roby-day-tab{min-width:270px;max-width:390px;min-height:94px;padding:15px 14px;gap:13px}
 .roby-tab-circle{flex-basis:42px;width:42px;height:42px;font-size:18px}
 .roby-tab-connector{flex-basis:54px;min-width:54px}
 .roby-connector-line{width:36px}
 .roby-connector-arrow{right:5px}
}
@media(max-width:767px){
 .roby-itinerary-track{min-height:86px}
 .roby-day-tab{min-width:235px;max-width:310px;min-height:86px;padding:12px 12px;gap:11px}
 .roby-tab-circle{flex-basis:38px;width:38px;height:38px;font-size:16px}
 .roby-tab-title{font-size:16px;line-height:1.12}
 .roby-tab-label{font-size:16px}
 .roby-tab-connector{flex-basis:44px;min-width:44px}
 .roby-connector-line{width:29px}
 .roby-connector-arrow{font-size:20px;right:3px}
 .roby-itinerary-day{grid-template-columns:1fr;gap:13px;padding:34px 0;scroll-margin-top:calc(86px + var(--roby-offset) + 20px)}
 .roby-day-marker{padding-top:0}
 .roby-day-marker:after{width:30px;margin-top:8px}
 .roby-day-copy h3{margin-bottom:14px}
}
@media(prefers-reduced-motion:reduce){.roby-itinerary-nav{scroll-behavior:auto}.roby-day-tab,.roby-tab-circle{transition:none}}

/* v1.2 — vertical-scroll-driven horizontal journey track */
.roby-itinerary-nav{scroll-behavior:auto}
.roby-itinerary-track{will-change:transform}
.roby-day-tab{scroll-snap-align:none}
@media(prefers-reduced-motion:reduce){.roby-itinerary-nav{scroll-behavior:auto}}

/* v1.3 — synchronized sticky day visuals */
.roby-itinerary-layout{display:grid;grid-template-columns:minmax(0,56%) minmax(320px,44%);align-items:stretch;background:#fff}
.roby-itinerary-visuals{min-width:0;background:#f4f3f0;position:relative;height:100%}
.roby-visual-sticky{position:sticky;top:calc(var(--roby-offset) + 104px);height:calc(100vh - var(--roby-offset) - 104px);min-height:520px;overflow:hidden;padding:28px 24px 24px}
.roby-visual-day{position:absolute;inset:28px 24px 24px;opacity:0;visibility:hidden;transform:none;transition:opacity .32s ease,visibility 0s linear .32s;pointer-events:none}
.roby-visual-day.is-active{opacity:1;visibility:visible;transform:none;transition-delay:0s;pointer-events:auto}
.roby-day-map{width:100%;aspect-ratio:16/7.7;background:#dfe5dd;overflow:hidden}
.roby-day-map iframe{display:block;width:100%;height:100%;border:0}
.roby-map-placeholder{display:grid;place-items:center;color:#757575;font-size:14px;background:linear-gradient(135deg,#e8ece5,#d9dfd5)}
.roby-visual-title{font-size:17px;line-height:1.3;color:#686868;margin:13px 0 22px}
.roby-accommodation-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}
.roby-accommodation-gallery.roby-gallery-count-1{grid-template-columns:1fr}
.roby-accommodation-gallery.roby-gallery-count-3{grid-template-columns:repeat(2,minmax(0,1fr))}
.roby-accommodation-gallery.roby-gallery-count-3 figure:first-child{grid-row:span 2}
.roby-accommodation-gallery figure{margin:0;aspect-ratio:1.25/1;overflow:hidden;background:#ddd}
.roby-accommodation-gallery figure img{width:100%;height:100%;display:block;object-fit:cover}
.roby-accommodation-name{margin-top:13px;font-size:16px;line-height:1.35;color:#666;text-transform:uppercase;letter-spacing:.01em}
.roby-accommodation-name span{font-weight:500}
.roby-itinerary-content{padding:0 clamp(28px,4vw,64px)}
.roby-itinerary-day{grid-template-columns:1fr;gap:10px;min-height:58vh;padding:clamp(30px,4vw,58px) 0}
.roby-day-marker{font-size:16px;color:#666;font-weight:400;order:2;padding-top:0}
.roby-day-marker:after{display:none}
.roby-day-copy{display:flex;flex-direction:column}
.roby-day-copy h3{font-size:clamp(34px,3.2vw,56px);font-weight:400;letter-spacing:-.025em;line-height:1.08;margin:0 0 12px}
.roby-day-text{font-size:inherit;line-height:1.7;margin-top:28px}

@media(max-width:980px){
 .roby-itinerary-layout{grid-template-columns:minmax(280px,40%) minmax(0,60%)}
 .roby-visual-sticky{top:calc(var(--roby-offset) + 94px);height:calc(100vh - var(--roby-offset) - 94px);padding:20px 16px}
 .roby-visual-day{inset:20px 16px}
 .roby-itinerary-content{padding:0 28px}
}
@media(max-width:767px){
 .roby-itinerary-layout{display:block}
 .roby-itinerary-visuals{display:none}
 .roby-itinerary-content{padding:0}
 .roby-itinerary-day{min-height:auto}
 .roby-day-copy h3{font-size:30px}
}
@media(prefers-reduced-motion:reduce){.roby-visual-day{transition:none}}

/* v1.4 — premium accommodation gallery lightbox */
.roby-accommodation-gallery figure{position:relative}
.roby-gallery-open{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in;overflow:hidden;font:inherit;color:inherit}
.roby-gallery-open img{transition:transform .45s cubic-bezier(.2,.7,.2,1),filter .35s ease}
.roby-gallery-open:hover img{transform:scale(1.035);filter:brightness(.94)}
.roby-gallery-zoom{position:absolute;right:12px;bottom:12px;width:34px;height:34px;border-radius:999px;display:grid;place-items:center;background:rgba(255,255,255,.92);color:#151515;font-size:23px;font-weight:300;line-height:1;box-shadow:0 8px 24px rgba(0,0,0,.16);opacity:0;transform:translateY(5px);transition:.25s ease}
.roby-gallery-open:hover .roby-gallery-zoom,.roby-gallery-open:focus-visible .roby-gallery-zoom{opacity:1;transform:translateY(0)}
.roby-gallery-open:focus-visible{outline:2px solid var(--roby-active);outline-offset:2px}

.roby-lightbox{position:fixed;inset:0;z-index:999999;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:rgba(10,11,12,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity .28s ease,visibility 0s linear .28s;color:#fff;}
.roby-lightbox.is-open{opacity:1;visibility:visible;transition-delay:0s}
.roby-lightbox-top{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;border-bottom:1px solid rgba(255,255,255,.1)}
.roby-lightbox-counter{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.roby-lightbox-actions{display:flex;align-items:center;gap:10px}
.roby-lightbox-close{width:44px;height:44px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.06);color:#fff;font-size:28px;font-weight:200;line-height:1;cursor:pointer;transition:.2s ease}
.roby-lightbox-close:hover{background:#fff;color:#111;transform:rotate(4deg)}
.roby-lightbox-stage{position:relative;display:grid;place-items:center;min-height:0;padding:30px 96px 18px;overflow:hidden}
.roby-lightbox-figure{margin:0;max-width:min(1180px,82vw);max-height:calc(100vh - 190px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.roby-lightbox-image{display:block;max-width:100%;max-height:calc(100vh - 238px);width:auto;height:auto;object-fit:contain;border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.45);transform:scale(.985);opacity:.4;transition:opacity .22s ease,transform .35s cubic-bezier(.2,.7,.2,1)}
.roby-lightbox.is-open .roby-lightbox-image{opacity:1;transform:scale(1)}
.roby-lightbox-caption{font-size:14px;line-height:1.5;color:rgba(255,255,255,.72);text-align:center;max-width:760px;min-height:1.5em}
.roby-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:999px;border:1px solid rgba(255,255,255,.32);background:rgba(20,20,20,.45);color:#fff;display:grid;place-items:center;font-size:31px;line-height:1;cursor:pointer;transition:.22s ease;z-index:2}
.roby-lightbox-nav:hover{background:#fff;color:#111;transform:translateY(-50%) scale(1.04)}
.roby-lightbox-prev{left:26px}
.roby-lightbox-next{right:26px}
.roby-lightbox-bottom{padding:14px 20px 20px;border-top:1px solid rgba(255,255,255,.08);background:linear-gradient(to top,rgba(0,0,0,.28),transparent)}
.roby-lightbox-thumbs{display:flex;justify-content:center;gap:10px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;padding:2px 4px}
.roby-lightbox-thumbs::-webkit-scrollbar{display:none}
.roby-lightbox-thumb{flex:0 0 74px;width:74px;height:54px;border-radius:7px;overflow:hidden;border:2px solid transparent;padding:0;background:#222;opacity:.48;cursor:pointer;transition:.2s ease}
.roby-lightbox-thumb:hover{opacity:.8}
.roby-lightbox-thumb.is-active{opacity:1;border-color:#fff;transform:translateY(-2px)}
.roby-lightbox-thumb img{width:100%;height:100%;display:block;object-fit:cover}
body.roby-lightbox-open{overflow:hidden}

@media(max-width:767px){
 .roby-gallery-zoom{opacity:1;transform:none;width:30px;height:30px;right:8px;bottom:8px}
 .roby-lightbox{grid-template-rows:auto minmax(0,1fr) auto}
 .roby-lightbox-top{height:62px;padding:0 14px}
 .roby-lightbox-close{width:40px;height:40px;font-size:25px}
 .roby-lightbox-stage{padding:18px 12px 12px}
 .roby-lightbox-figure{max-width:100%;max-height:calc(100vh - 158px);gap:10px}
 .roby-lightbox-image{max-height:calc(100vh - 220px);border-radius:8px}
 .roby-lightbox-caption{font-size:13px;padding:0 22px}
 .roby-lightbox-nav{top:auto;bottom:18px;width:46px;height:46px;font-size:27px;background:rgba(20,20,20,.62)}
 .roby-lightbox-prev{left:16px}
 .roby-lightbox-next{right:16px}
 .roby-lightbox-bottom{padding:10px 10px 14px}
 .roby-lightbox-thumb{flex-basis:62px;width:62px;height:46px}
}
@media(prefers-reduced-motion:reduce){.roby-lightbox,.roby-lightbox-image,.roby-lightbox-nav,.roby-lightbox-thumb,.roby-gallery-open img{transition:none}}


/* v1.4.1 — true fixed/sticky visual panel: only the right itinerary scrolls.
   The left column stretches to the full itinerary height, giving position:sticky
   a containing block as tall as the scrolling day content. Its map/gallery stay
   stationary in the viewport; only the active visual layer crossfades. */
@media(min-width:768px){
  .roby-itinerary-layout{align-items:stretch}
  .roby-itinerary-visuals{align-self:stretch;height:auto;min-height:100%}
  .roby-visual-sticky{position:sticky;top:calc(var(--roby-offset) + 104px);align-self:start;transform:none}
  .roby-visual-day,.roby-visual-day.is-active{transform:none}
}
@media(min-width:768px) and (max-width:980px){
  .roby-visual-sticky{top:calc(var(--roby-offset) + 94px)}
}

/* v1.6 — Safari Hub activities shown inside the fixed day visual panel */
.roby-day-activities{margin-top:20px;padding-top:18px;border-top:1px solid rgba(0,0,0,.12)}
.roby-activities-heading{font-size:13px;line-height:1.2;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#4d4d4d;margin-bottom:12px}
.roby-activities-list{display:flex;flex-wrap:wrap;gap:8px 10px}
.roby-activity-item{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:7px 12px 7px 10px;border:1px solid rgba(0,0,0,.12);border-radius:999px;background:rgba(255,255,255,.68);color:#4e4e4e;font-size:13px;line-height:1.25;max-width:100%}
.roby-activity-icon{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:50%;background:var(--roby-active);color:#fff;font-size:12px;line-height:1}
@media(max-height:760px) and (min-width:768px){
 .roby-day-activities{margin-top:13px;padding-top:13px}
 .roby-activities-heading{margin-bottom:8px}
 .roby-activity-item{min-height:30px;padding:5px 10px 5px 8px;font-size:12px}
 .roby-activity-icon{width:18px;height:18px;flex-basis:18px;font-size:11px}
}

/* Safari Hub v1.7: rich daily activities */
.roby-day-activities .roby-activities-heading{font-weight:700;margin-bottom:10px;}
.roby-day-activities .roby-activities-content{font:inherit;color:inherit;line-height:inherit;}
.roby-day-activities .roby-activities-content > *:first-child{margin-top:0;}
.roby-day-activities .roby-activities-content > *:last-child{margin-bottom:0;}
.roby-day-activities .roby-activities-content ul,
.roby-day-activities .roby-activities-content ol{margin:8px 0 0 20px;padding:0;}
.roby-day-activities .roby-activities-content img{max-width:100%;height:auto;border-radius:10px;}



/* Safari Hub 1.9.1 — ONE SCROLLER ONLY */
.roby-day-image{width:100%;aspect-ratio:16/7.7;overflow:hidden;background:#dedbd2}
.roby-day-image img{display:block;width:100%;height:100%;object-fit:cover}
.roby-day-image-placeholder{display:grid;place-items:center;color:#777}

@media(min-width:768px){
  .roby-itinerary-layout{
    display:grid !important;
    grid-template-columns:minmax(0,56%) minmax(320px,44%) !important;
    height:680px !important;
    max-height:calc(100vh - 120px) !important;
    min-height:520px !important;
    overflow:hidden !important;
  }

  /* LEFT ITINERARY: THIS AND ONLY THIS SCROLLS */
  .roby-itinerary-content{
    grid-column:1 !important;
    grid-row:1 !important;
    height:100% !important;
    max-height:100% !important;
    min-height:0 !important;
    overflow-x:hidden !important;
    overflow-y:scroll !important;
    padding:0 48px !important;
    scrollbar-width:auto !important;
    scrollbar-color:#555 #e5e5e5 !important;
  }
  .roby-itinerary-content::-webkit-scrollbar{
    display:block !important;
    width:12px !important;
  }
  .roby-itinerary-content::-webkit-scrollbar-track{
    background:#e5e5e5 !important;
  }
  .roby-itinerary-content::-webkit-scrollbar-thumb{
    background:#555 !important;
    border-radius:8px !important;
    border:2px solid #e5e5e5 !important;
  }

  /* RIGHT: FIXED BOX. NO SCROLLING OF ANY KIND */
  .roby-itinerary-visuals{
    grid-column:2 !important;
    grid-row:1 !important;
    position:relative !important;
    height:100% !important;
    max-height:100% !important;
    min-height:0 !important;
    overflow:hidden !important;
  }
  .roby-visual-sticky{
    position:relative !important;
    top:0 !important;
    height:100% !important;
    max-height:100% !important;
    min-height:0 !important;
    overflow:hidden !important;
    padding:28px 24px 24px !important;
  }
  .roby-visual-day{
    position:absolute !important;
    inset:28px 24px 24px !important;
    height:auto !important;
    max-height:calc(100% - 52px) !important;
    overflow:hidden !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
  .roby-visual-day.is-active{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }
  .roby-day-activities,
  .roby-activities-content{
    height:auto !important;
    max-height:none !important;
    overflow:hidden !important;
    overflow-y:hidden !important;
    scrollbar-width:none !important;
  }
  .roby-day-activities::-webkit-scrollbar,
  .roby-activities-content::-webkit-scrollbar,
  .roby-itinerary-visuals::-webkit-scrollbar,
  .roby-visual-sticky::-webkit-scrollbar{
    display:none !important;
  }

  .roby-day-image{max-height:190px}
  .roby-accommodation-gallery{max-height:180px;overflow:hidden}
  .roby-accommodation-gallery figure{max-height:180px}

  /* Screenshot-style day title */
  .roby-itinerary-day{
    display:grid !important;
    grid-template-columns:130px minmax(0,1fr) !important;
    gap:42px !important;
    min-height:620px !important;
    padding:48px 0 !important;
  }
  .roby-day-number-block{display:block !important;padding:0 !important}
  .roby-day-number-block:after{display:none !important}
  .roby-day-big-number{
    display:block !important;
    font-size:70px !important;
    line-height:.9 !important;
    font-weight:600 !important;
    color:var(--roby-active) !important;
  }
  .roby-day-small-label{
    display:block !important;
    margin-top:10px !important;
    font-size:13px !important;
    font-weight:700 !important;
    letter-spacing:.2em !important;
    color:#6f675c !important;
  }
  .roby-day-copy{display:block !important}
  .roby-day-main-title{
    margin:0 0 24px !important;
    font-size:clamp(34px,4vw,56px) !important;
    line-height:1.08 !important;
    font-weight:500 !important;
    text-transform:uppercase !important;
  }
}

@media(max-width:767px){
  .roby-itinerary-layout{display:block !important;height:auto !important;max-height:none !important;overflow:visible !important}
  .roby-itinerary-visuals{display:none !important}
  .roby-itinerary-content{height:auto !important;max-height:none !important;overflow:visible !important;padding:0 !important}
}


/* Safari Hub v1.9.3 — safe width/image correction only */
@media(min-width:768px){

  /* LEFT ITINERARY:
     Give number/day label a compact fixed column,
     and let title + body use ALL remaining width. */
  .roby-itinerary-day{
    grid-template-columns:90px minmax(0,1fr) !important;
    column-gap:28px !important;
    width:100% !important;
  }

  .roby-day-number-block{
    width:90px !important;
    min-width:90px !important;
  }

  .roby-day-copy{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }

  .roby-day-copy .roby-day-main-title,
  .roby-day-copy .roby-day-text{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }

  .roby-day-copy .roby-day-main-title{
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
  }

  /* RIGHT DAY IMAGE:
     Restore the normal visible image block.
     It fills the full width and keeps a strong landscape height. */
  .roby-day-image{
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:220px !important;
    max-height:none !important;
    aspect-ratio:16 / 7.7 !important;
    overflow:hidden !important;
    flex:0 0 auto !important;
  }

  .roby-day-image img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:220px !important;
    object-fit:cover !important;
    object-position:center !important;
  }

  .roby-day-image-placeholder{
    min-height:220px !important;
  }
}

@media(min-width:768px) and (max-width:1100px){
  .roby-itinerary-day{
    grid-template-columns:78px minmax(0,1fr) !important;
    column-gap:20px !important;
  }
  .roby-day-number-block{
    width:78px !important;
    min-width:78px !important;
  }
}


/* Safari Hub v1.9.4 — exact itinerary grid-column correction only */
@media(min-width:768px){

  /* An older rule had .roby-day-marker { order:2 }, which swapped the
     grid items. Reset order and explicitly place both columns. */
  .roby-itinerary-day > .roby-day-number-block{
    order:0 !important;
    grid-column:1 !important;
    grid-row:1 !important;
    align-self:start !important;
  }

  .roby-itinerary-day > .roby-day-copy{
    order:0 !important;
    grid-column:2 !important;
    grid-row:1 !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
  }

  .roby-itinerary-day > .roby-day-copy > .roby-day-main-title,
  .roby-itinerary-day > .roby-day-copy > .roby-day-text{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
  }

  .roby-itinerary-day > .roby-day-copy > .roby-day-text,
  .roby-itinerary-day > .roby-day-copy > .roby-day-text p,
  .roby-itinerary-day > .roby-day-copy > .roby-day-text div,
  .roby-itinerary-day > .roby-day-copy > .roby-day-text ul,
  .roby-itinerary-day > .roby-day-copy > .roby-day-text ol{
    max-width:none !important;
  }
}


/* Safari Hub v1.9.5 — inherit site typography + softer itinerary scrollbar */
.roby-itinerary,
.roby-itinerary *,
.roby-itinerary button,
.roby-itinerary input,
.roby-itinerary textarea,
.roby-itinerary select{
}

@media(min-width:768px){
  .roby-itinerary-content{
    scrollbar-color:rgba(70,70,70,.25) rgba(0,0,0,.035) !important;
  }

  .roby-itinerary-content::-webkit-scrollbar-track{
    background:rgba(0,0,0,.035) !important;
  }

  .roby-itinerary-content::-webkit-scrollbar-thumb{
    background:rgba(70,70,70,.25) !important;
    border-color:transparent !important;
    background-clip:padding-box !important;
  }

  .roby-itinerary-content::-webkit-scrollbar-thumb:hover{
    background:rgba(70,70,70,.38) !important;
  }
}


/* Safari Hub v1.9.6 — site typography + natural capitalized itinerary titles */

/* Do not declare a plugin font. All Safari Hub text follows the font
   inherited from the surrounding website/theme. */
.roby-itinerary,
.roby-itinerary-nav,
.roby-itinerary-layout,
.roby-itinerary-content,
.roby-itinerary-visuals,
.roby-itinerary h1,
.roby-itinerary h2,
.roby-itinerary h3,
.roby-itinerary h4,
.roby-itinerary h5,
.roby-itinerary h6,
.roby-itinerary p,
.roby-itinerary span,
.roby-itinerary div,
.roby-itinerary a,
.roby-itinerary button,
.roby-itinerary li{
}

/* Preserve the title exactly as entered, instead of forcing ALL CAPS. */
.roby-itinerary .roby-day-main-title,
.roby-itinerary .roby-day-copy .roby-day-main-title{
  text-transform:none !important;
}


/* Safari Hub v1.9.8 — isolated typography; do not affect other Robylinks plugins */

/* Safari Hub inherits the website font naturally from its parent.
   No global .roby-* typography rules are introduced here. */
.safari-hub-itinerary{
}

/* Itinerary DAY label and TITLE are genuine H3 elements and use
   the site's H3 font, size, weight and line-height. */
.safari-hub-itinerary .roby-day-small-label,
.safari-hub-itinerary .roby-day-main-title{
  font-size:inherit !important;
  font-weight:inherit !important;
  font-style:inherit !important;
  line-height:inherit !important;
  text-transform:none !important;
}

/* Remove old Safari Hub display-heading sizing specifically from the title. */
.safari-hub-itinerary h3.roby-day-main-title{
  font-size:inherit !important;
  font-weight:inherit !important;
  line-height:inherit !important;
  letter-spacing:inherit !important;
  text-transform:none !important;
}

/* DAY label remains H3 but can keep compact spacing without changing typography. */
.safari-hub-itinerary h3.roby-day-small-label{
  letter-spacing:inherit !important;
  text-transform:none !important;
}

/* The large numeric 01 remains a visual marker and does not control
   the typography of the DAY heading/title. */
.safari-hub-itinerary .roby-day-big-number{
}

/* Keep all body copy using the site's body font without imposing
   any rules on other plugins. */
.safari-hub-itinerary .roby-day-text,
.safari-hub-itinerary .roby-day-text p,
.safari-hub-itinerary .roby-day-activities,
.safari-hub-itinerary .roby-activities-content,
.safari-hub-itinerary .roby-accommodation-name{
}

/* Safari Hub v1.9.12 - targeted spacing/font correction */
.safari-hub-itinerary,
.safari-hub-itinerary .roby-day-copy,
.safari-hub-itinerary .roby-day-text,
.safari-hub-itinerary .roby-day-text p,
.safari-hub-itinerary .roby-day-main-title,
.safari-hub-itinerary .roby-day-big-number,
.safari-hub-itinerary .roby-day-small-label{
}
@media(min-width:768px){
  .safari-hub-itinerary .roby-itinerary-day{
    min-height:0 !important;
    height:auto !important;
    padding-bottom:38px !important;
    margin-bottom:0 !important;
  }
  .safari-hub-itinerary .roby-day-copy,
  .safari-hub-itinerary .roby-day-text{
    padding-bottom:0 !important;
    margin-bottom:0 !important;
  }
  .safari-hub-itinerary .roby-day-text > :last-child{
    margin-bottom:0 !important;
  }
}

/* Safari Hub v1.9.13 — premium same-line day heading only */
@media(min-width:768px){
  .safari-hub-itinerary .roby-itinerary-day{
    grid-template-columns:112px minmax(0,1fr) !important;
    column-gap:28px !important;
  }

  .safari-hub-itinerary .roby-day-number-block{
    position:relative !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:flex-start !important;
    min-height:82px !important;
    padding:0 24px 0 0 !important;
    border-right:1px solid rgba(40,40,40,.18) !important;
  }

  .safari-hub-itinerary h3.roby-day-big-number{
    margin:0 !important;
    padding:0 !important;
    font-size:58px !important;
    line-height:.88 !important;
    font-weight:600 !important;
    letter-spacing:-2px !important;
  }

  .safari-hub-itinerary h3.roby-day-small-label{
    margin:10px 0 0 2px !important;
    padding:0 !important;
    font-size:11px !important;
    line-height:1 !important;
    font-weight:600 !important;
    letter-spacing:1.8px !important;
  }

  .safari-hub-itinerary .roby-day-copy{
    align-self:start !important;
    padding-top:8px !important;
  }

  .safari-hub-itinerary h3.roby-day-main-title{
    margin:0 0 24px !important;
    padding:0 !important;
    font-size:inherit !important;
    font-weight:inherit !important;
    line-height:inherit !important;
    letter-spacing:inherit !important;
    text-transform:none !important;
  }
}





/* Safari Hub v1.9.20 — typography controlled from Safari Hub Settings.
   These selectors are isolated to Safari Hub and do not affect other plugins. */
.safari-hub-itinerary[data-safari-fonts="ready"]{
  font-family:var(--safari-hub-body-font) !important;
}

.safari-hub-itinerary[data-safari-fonts="ready"] .roby-itinerary-heading,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-big-number,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-small-label,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-main-title,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-visual-title,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-heading{
  font-family:var(--safari-hub-heading-font) !important;
}

.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text *,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-itinerary-nav,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-itinerary-nav *,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-activities,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-activities *,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-accommodation-name{
  font-family:var(--safari-hub-body-font) !important;
}


/* Safari Hub v1.9.38 — single authoritative Journey Tabs colour system */

/* Journey bar: no unwanted top or bottom lines. */
.safari-hub-itinerary .roby-itinerary-nav-wrap,
.safari-hub-itinerary .roby-itinerary-nav,
.safari-hub-itinerary .roby-itinerary-nav-inner,
.safari-hub-itinerary .roby-itinerary-track,
.safari-hub-itinerary .roby-itinerary-track-wrap{
  background:var(--safari-journey-bar-bg) !important;
  border-top:0 !important;
  border-bottom:0 !important;
  box-shadow:none !important;
  outline:0 !important;
}

/* Whole rectangular tab. */
.safari-hub-itinerary .roby-day-tab{
  min-height:var(--roby-nav-height) !important;
  height:var(--roby-nav-height) !important;
  color:var(--safari-tab-title) !important;
  background:var(--safari-tab-inactive-bg) !important;
  border:1px solid var(--safari-border-inactive) !important;
  box-shadow:none !important;
  outline:0 !important;
}
.safari-hub-itinerary .roby-day-tab:hover:not(.is-active){
  color:var(--safari-tab-title) !important;
  background:var(--safari-tab-hover-bg) !important;
  border-color:var(--safari-border-hover) !important;
}
.safari-hub-itinerary .roby-day-tab.is-active{
  color:var(--safari-tab-title) !important;
  background:var(--safari-tab-active-bg) !important;
  border-color:var(--safari-border-active) !important;
}
.safari-hub-itinerary .roby-day-tab .roby-tab-title,
.safari-hub-itinerary .roby-day-tab:hover .roby-tab-title,
.safari-hub-itinerary .roby-day-tab.is-active .roby-tab-title{
  color:var(--safari-tab-title) !important;
}

/* Round number button — every state comes only from backend settings. */
.safari-hub-itinerary .roby-day-tab .roby-tab-circle{
  background:var(--safari-button-inactive) !important;
  color:var(--safari-number-inactive) !important;
  border:1.5px solid var(--safari-number-border-inactive) !important;
  box-shadow:none !important;
}
.safari-hub-itinerary .roby-day-tab:hover:not(.is-active) .roby-tab-circle{
  background:var(--safari-button-hover) !important;
  color:var(--safari-number-hover) !important;
  border-color:var(--safari-number-border-hover) !important;
}
.safari-hub-itinerary .roby-day-tab.is-active .roby-tab-circle{
  background:var(--safari-button-active) !important;
  color:var(--safari-number-active) !important;
  border-color:var(--safari-number-border-active) !important;
}

/* Itinerary main title. */
.safari-hub-itinerary .roby-day-main-title{
  color:var(--roby-title) !important;
}


/* Safari Hub v1.9.39 — inactive number border + centered connector arrow */

/* Inactive number-button border: explicit state selector so no older rule can override it. */
.safari-hub-itinerary .roby-day-tab:not(.is-active):not(:hover) .roby-tab-circle{
  border-width:1.5px !important;
  border-style:solid !important;
  border-color:var(--safari-number-border-inactive) !important;
}

/* Hover and active remain controlled independently. */
.safari-hub-itinerary .roby-day-tab:not(.is-active):hover .roby-tab-circle{
  border-color:var(--safari-number-border-hover) !important;
}
.safari-hub-itinerary .roby-day-tab.is-active .roby-tab-circle{
  border-color:var(--safari-number-border-active) !important;
}

/* Keep the connector/arrow exactly in the vertical middle of the tab row. */
.safari-hub-itinerary .roby-tab-connector{
  align-self:stretch !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  position:relative !important;
  height:var(--roby-nav-height) !important;
  min-height:var(--roby-nav-height) !important;
  margin:0 !important;
  padding:0 !important;
}

.safari-hub-itinerary .roby-connector-line{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  transform:none !important;
  margin:0 !important;
}

/* If the spear tip is drawn with a pseudo element, center it with the line. */
.safari-hub-itinerary .roby-connector-line::before,
.safari-hub-itinerary .roby-connector-line::after{
  top:50% !important;
  transform:translateY(-50%) !important;
}


/* v1.9.39.1 — actual itinerary day divider: extremely faint */
.safari-hub-itinerary .roby-itinerary-content > .roby-itinerary-day{
  border-bottom:1px solid rgba(0,0,0,.09) !important;
}
.safari-hub-itinerary .roby-itinerary-content > .roby-itinerary-day:last-child{
  border-bottom:none !important;
}


/* Safari Hub v1.9.39.3 — font family only.
   Sizes, weights, spacing, colours and layout are intentionally untouched. */
.safari-hub-itinerary[data-safari-fonts="ready"]{
  font-family:var(--safari-hub-body-font) !important;
}

.safari-hub-itinerary[data-safari-fonts="ready"] .roby-itinerary-heading,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-big-number,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-small-label,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-main-title,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-visual-title,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-heading{
  font-family:var(--safari-hub-heading-font) !important;
}

.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text *,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-itinerary-nav,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-itinerary-nav *,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-activities,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-activities *,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-accommodation-name{
  font-family:var(--safari-hub-body-font) !important;
}


/* Safari Hub v1.9.39.4 — keep day number on one line and make it more compact */
.safari-hub-itinerary h3.roby-day-big-number{
  white-space:nowrap !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
  font-size:46px !important;
  line-height:.95 !important;
  letter-spacing:-1px !important;
}


/* Safari Hub v1.9.39.5 — backend-controlled large itinerary day number colour */
.safari-hub-itinerary h3.roby-day-big-number{
  color:var(--safari-large-day-number, #c98a12) !important;
}


/* Safari Hub v1.9.39.6 — ensure the saved Activities WYSIWYG content is visible.
   The right visual panel itself remains fixed and does not become a scroller. */
.safari-hub-itinerary .roby-day-activities{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  height:auto !important;
  min-height:0 !important;
}

.safari-hub-itinerary .roby-activities-content{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  white-space:normal !important;
}

.safari-hub-itinerary .roby-activities-content p,
.safari-hub-itinerary .roby-activities-content ul,
.safari-hub-itinerary .roby-activities-content ol,
.safari-hub-itinerary .roby-activities-content li{
  visibility:visible !important;
  opacity:1 !important;
}


/* Safari Hub v1.9.39.7 — show the FULL Activities content without adding
   a scrollbar to the right panel. The left itinerary remains the only scroller. */
@media (min-width:768px){

  /* Let the overall two-column row grow if the right-hand content needs more room. */
  .safari-hub-itinerary .roby-itinerary-layout{
    height:auto !important;
    max-height:none !important;
    min-height:680px !important;
    overflow:visible !important;
    align-items:start !important;
  }

  /* Keep the itinerary column as the single scrolling area. */
  .safari-hub-itinerary .roby-itinerary-content{
    height:680px !important;
    max-height:calc(100vh - 120px) !important;
    min-height:520px !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
  }

  /* Right side grows naturally instead of clipping Activities. */
  .safari-hub-itinerary .roby-itinerary-visuals{
    height:auto !important;
    max-height:none !important;
    min-height:0 !important;
    overflow:visible !important;
  }

  .safari-hub-itinerary .roby-visual-sticky{
    position:relative !important;
    top:0 !important;
    height:auto !important;
    max-height:none !important;
    min-height:0 !important;
    overflow:visible !important;
  }

  /* Only the active day occupies space. Other day panels stay hidden. */
  .safari-hub-itinerary .roby-visual-day{
    position:static !important;
    inset:auto !important;
    display:none !important;
    height:auto !important;
    max-height:none !important;
    min-height:0 !important;
    overflow:visible !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  .safari-hub-itinerary .roby-visual-day.is-active{
    display:block !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .safari-hub-itinerary .roby-day-activities,
  .safari-hub-itinerary .roby-activities-content{
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }
}


/* Safari Hub v1.9.39.8 — remove the empty left gutter below each day header */
@media (min-width:768px){
  .safari-hub-itinerary .roby-itinerary-day{
    display:grid !important;
    grid-template-columns:112px minmax(0,1fr) !important;
    grid-template-rows:auto auto !important;
    column-gap:28px !important;
    row-gap:24px !important;
    align-items:start !important;
  }

  /* Header row: day number on left, title on right, separated by existing line. */
  .safari-hub-itinerary .roby-itinerary-day > .roby-day-number-block{
    grid-column:1 !important;
    grid-row:1 !important;
    margin:0 !important;
  }

  .safari-hub-itinerary .roby-itinerary-day > .roby-day-copy{
    grid-column:2 !important;
    grid-row:1 !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding-top:8px !important;
  }

  .safari-hub-itinerary .roby-itinerary-day > .roby-day-copy > .roby-day-main-title{
    margin:0 !important;
  }

  /* Body row: full width, starting at the same left edge as the large day number. */
  .safari-hub-itinerary .roby-itinerary-day > .roby-day-text{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
  }

  .safari-hub-itinerary .roby-itinerary-day > .roby-day-text > :first-child{
    margin-top:0 !important;
  }
}


/* Safari Hub v1.9.39.9
   1) Vertically center the itinerary title against the large day number.
   2) Treat H1-H6 inside itinerary/activities content as real site headings. */
@media (min-width:768px){
  .safari-hub-itinerary .roby-itinerary-day > .roby-day-copy{
    align-self:center !important;
    padding-top:0 !important;
  }

  .safari-hub-itinerary .roby-itinerary-day > .roby-day-copy > .roby-day-main-title{
    margin:0 !important;
  }
}

/* Rich-editor headings must use the site's detected heading font,
   while paragraph/list content continues using the site's body font. */
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h1,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h2,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h3,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h4,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h5,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h6,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h1,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h2,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h3,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h4,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h5,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h6{
  font-family:var(--safari-hub-heading-font) !important;
}

/* Preserve each heading's site/theme size, weight and spacing whenever possible.
   Do not force plugin-specific typography onto WYSIWYG headings. */
.safari-hub-itinerary .roby-day-text h1,
.safari-hub-itinerary .roby-day-text h2,
.safari-hub-itinerary .roby-day-text h3,
.safari-hub-itinerary .roby-day-text h4,
.safari-hub-itinerary .roby-day-text h5,
.safari-hub-itinerary .roby-day-text h6,
.safari-hub-itinerary .roby-activities-content h1,
.safari-hub-itinerary .roby-activities-content h2,
.safari-hub-itinerary .roby-activities-content h3,
.safari-hub-itinerary .roby-activities-content h4,
.safari-hub-itinerary .roby-activities-content h5,
.safari-hub-itinerary .roby-activities-content h6{
  text-transform:none !important;
}


/* Safari Hub v1.9.39.10 — match actual site typography metrics.
   The intentionally oversized day number remains a Safari Hub design element. */
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text p,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text li,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content p,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content li,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-accommodation-name{
  font-family:var(--safari-body-font, var(--safari-hub-body-font)) !important;
  font-size:var(--safari-body-size) !important;
  font-weight:var(--safari-body-weight) !important;
  line-height:var(--safari-body-line-height) !important;
  letter-spacing:var(--safari-body-letter-spacing) !important;
  font-style:var(--safari-body-style) !important;
}

/* Main itinerary title is an H3, so it uses the website's real H3 metrics. */
.safari-hub-itinerary[data-safari-fonts="ready"] h3.roby-day-main-title{
  font-family:var(--safari-h3-font, var(--safari-hub-heading-font)) !important;
  font-size:var(--safari-h3-size) !important;
  font-weight:var(--safari-h3-weight) !important;
  line-height:var(--safari-h3-line-height) !important;
  letter-spacing:var(--safari-h3-letter-spacing) !important;
  font-style:var(--safari-h3-style) !important;
}

/* Rich-editor H1–H6 retain their semantic website typography. */
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h1,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h1{
  font-family:var(--safari-h1-font) !important;
  font-size:var(--safari-h1-size) !important;
  font-weight:var(--safari-h1-weight) !important;
  line-height:var(--safari-h1-line-height) !important;
  letter-spacing:var(--safari-h1-letter-spacing) !important;
  font-style:var(--safari-h1-style) !important;
}
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h2,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h2{
  font-family:var(--safari-h2-font) !important;
  font-size:var(--safari-h2-size) !important;
  font-weight:var(--safari-h2-weight) !important;
  line-height:var(--safari-h2-line-height) !important;
  letter-spacing:var(--safari-h2-letter-spacing) !important;
  font-style:var(--safari-h2-style) !important;
}
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h3,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h3{
  font-family:var(--safari-h3-font) !important;
  font-size:var(--safari-h3-size) !important;
  font-weight:var(--safari-h3-weight) !important;
  line-height:var(--safari-h3-line-height) !important;
  letter-spacing:var(--safari-h3-letter-spacing) !important;
  font-style:var(--safari-h3-style) !important;
}
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h4,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h4{
  font-family:var(--safari-h4-font) !important;
  font-size:var(--safari-h4-size) !important;
  font-weight:var(--safari-h4-weight) !important;
  line-height:var(--safari-h4-line-height) !important;
  letter-spacing:var(--safari-h4-letter-spacing) !important;
  font-style:var(--safari-h4-style) !important;
}
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h5,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h5{
  font-family:var(--safari-h5-font) !important;
  font-size:var(--safari-h5-size) !important;
  font-weight:var(--safari-h5-weight) !important;
  line-height:var(--safari-h5-line-height) !important;
  letter-spacing:var(--safari-h5-letter-spacing) !important;
  font-style:var(--safari-h5-style) !important;
}
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h6,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h6{
  font-family:var(--safari-h6-font) !important;
  font-size:var(--safari-h6-size) !important;
  font-weight:var(--safari-h6-weight) !important;
  line-height:var(--safari-h6-line-height) !important;
  letter-spacing:var(--safari-h6-letter-spacing) !important;
  font-style:var(--safari-h6-style) !important;
}


/* Safari Hub v1.9.39.11 — slightly smaller Journey Tab title text only */
@media (min-width:768px){
  .safari-hub-itinerary .roby-day-tab .roby-tab-title{
    font-size:clamp(15px,1.15vw,21px) !important;
  }
}


/* Safari Hub v1.9.39.12 — restore WYSIWYG bullet and numbered lists.
   Applies only to itinerary and activities rich content. */
.safari-hub-itinerary .roby-day-text ul,
.safari-hub-itinerary .roby-activities-content ul{
  display:block !important;
  list-style-type:disc !important;
  list-style-position:outside !important;
  margin:0.8em 0 0.8em 1.35em !important;
  padding-left:1.15em !important;
}

.safari-hub-itinerary .roby-day-text ol,
.safari-hub-itinerary .roby-activities-content ol{
  display:block !important;
  list-style-type:decimal !important;
  list-style-position:outside !important;
  margin:0.8em 0 0.8em 1.35em !important;
  padding-left:1.15em !important;
}

.safari-hub-itinerary .roby-day-text li,
.safari-hub-itinerary .roby-activities-content li{
  display:list-item !important;
  list-style:inherit !important;
  margin:0 0 .45em 0 !important;
  padding:0 !important;
}

/* Preserve nested list styles. */
.safari-hub-itinerary .roby-day-text ul ul,
.safari-hub-itinerary .roby-activities-content ul ul{
  list-style-type:circle !important;
}

.safari-hub-itinerary .roby-day-text ul ul ul,
.safari-hub-itinerary .roby-activities-content ul ul ul{
  list-style-type:square !important;
}

.safari-hub-itinerary .roby-day-text ol ol,
.safari-hub-itinerary .roby-activities-content ol ol{
  list-style-type:lower-alpha !important;
}


/* Safari Hub v1.9.39.13 — taller itinerary scrolling viewport.
   Only increases the visible height of the left itinerary content area. */
@media (min-width:768px){
  .safari-hub-itinerary .roby-itinerary-layout{
    min-height:780px !important;
  }

  .safari-hub-itinerary .roby-itinerary-content{
    height:780px !important;
    max-height:calc(100vh - 70px) !important;
    min-height:620px !important;
  }
}


/* Safari Hub v1.9.39.15 — taller itinerary viewport */
@media (min-width:768px){
  .safari-hub-itinerary .roby-itinerary-layout{
    min-height:880px !important;
  }

  .safari-hub-itinerary .roby-itinerary-content{
    height:880px !important;
    max-height:calc(100vh - 35px) !important;
    min-height:700px !important;
  }
}


/* Safari Hub v1.9.39.10 — match actual site typography metrics.
   The intentionally oversized day number remains a Safari Hub design element. */
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text p,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text li,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content p,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content li,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-accommodation-name{
  font-family:var(--safari-body-font, var(--safari-hub-body-font)) !important;
  font-size:var(--safari-body-size) !important;
  font-weight:var(--safari-body-weight) !important;
  line-height:var(--safari-body-line-height) !important;
  letter-spacing:var(--safari-body-letter-spacing) !important;
  font-style:var(--safari-body-style) !important;
}

/* Main itinerary title is an H3, so it uses the website's real H3 metrics. */
.safari-hub-itinerary[data-safari-fonts="ready"] h3.roby-day-main-title{
  font-family:var(--safari-h3-font, var(--safari-hub-heading-font)) !important;
  font-size:var(--safari-h3-size) !important;
  font-weight:var(--safari-h3-weight) !important;
  line-height:var(--safari-h3-line-height) !important;
  letter-spacing:var(--safari-h3-letter-spacing) !important;
  font-style:var(--safari-h3-style) !important;
}

/* Rich-editor H1–H6 retain their semantic website typography. */
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h1,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h1{
  font-family:var(--safari-h1-font) !important;
  font-size:var(--safari-h1-size) !important;
  font-weight:var(--safari-h1-weight) !important;
  line-height:var(--safari-h1-line-height) !important;
  letter-spacing:var(--safari-h1-letter-spacing) !important;
  font-style:var(--safari-h1-style) !important;
}
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h2,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h2{
  font-family:var(--safari-h2-font) !important;
  font-size:var(--safari-h2-size) !important;
  font-weight:var(--safari-h2-weight) !important;
  line-height:var(--safari-h2-line-height) !important;
  letter-spacing:var(--safari-h2-letter-spacing) !important;
  font-style:var(--safari-h2-style) !important;
}
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h3,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h3{
  font-family:var(--safari-h3-font) !important;
  font-size:var(--safari-h3-size) !important;
  font-weight:var(--safari-h3-weight) !important;
  line-height:var(--safari-h3-line-height) !important;
  letter-spacing:var(--safari-h3-letter-spacing) !important;
  font-style:var(--safari-h3-style) !important;
}
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h4,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h4{
  font-family:var(--safari-h4-font) !important;
  font-size:var(--safari-h4-size) !important;
  font-weight:var(--safari-h4-weight) !important;
  line-height:var(--safari-h4-line-height) !important;
  letter-spacing:var(--safari-h4-letter-spacing) !important;
  font-style:var(--safari-h4-style) !important;
}
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h5,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h5{
  font-family:var(--safari-h5-font) !important;
  font-size:var(--safari-h5-size) !important;
  font-weight:var(--safari-h5-weight) !important;
  line-height:var(--safari-h5-line-height) !important;
  letter-spacing:var(--safari-h5-letter-spacing) !important;
  font-style:var(--safari-h5-style) !important;
}
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-day-text h6,
.safari-hub-itinerary[data-safari-fonts="ready"] .roby-activities-content h6{
  font-family:var(--safari-h6-font) !important;
  font-size:var(--safari-h6-size) !important;
  font-weight:var(--safari-h6-weight) !important;
  line-height:var(--safari-h6-line-height) !important;
  letter-spacing:var(--safari-h6-letter-spacing) !important;
  font-style:var(--safari-h6-style) !important;
}


/* Safari Hub v1.9.39.18 — site-font safeguard.
   In "Use Site Fonts" mode, the metrics detected from the actual website
   remain authoritative for body copy and semantic H1-H6 content. */
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-day-text,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-day-text p,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-day-text li,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-activities-content,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-activities-content p,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-activities-content li{
  font-family:var(--safari-body-font) !important;
  font-size:var(--safari-body-size) !important;
  font-weight:var(--safari-body-weight) !important;
  line-height:var(--safari-body-line-height) !important;
  letter-spacing:var(--safari-body-letter-spacing) !important;
  font-style:var(--safari-body-style) !important;
}


/* Safari Hub v1.9.39.19 — exact live-site typography metrics */
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-day-text,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-day-text p,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-day-text li,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-activities-content,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-activities-content p,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-activities-content li{
  font-family:var(--safari-body-font) !important;
  font-size:var(--safari-body-size) !important;
  font-weight:var(--safari-body-weight) !important;
  line-height:var(--safari-body-line-height) !important;
  letter-spacing:var(--safari-body-letter-spacing) !important;
  font-style:var(--safari-body-style) !important;
}

.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-day-text h1,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-activities-content h1{
  font-family:var(--safari-h1-font) !important;
  font-size:var(--safari-h1-size) !important;
  font-weight:var(--safari-h1-weight) !important;
  line-height:var(--safari-h1-line-height) !important;
  letter-spacing:var(--safari-h1-letter-spacing) !important;
  font-style:var(--safari-h1-style) !important;
}
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-day-text h2,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-activities-content h2{
  font-family:var(--safari-h2-font) !important;
  font-size:var(--safari-h2-size) !important;
  font-weight:var(--safari-h2-weight) !important;
  line-height:var(--safari-h2-line-height) !important;
  letter-spacing:var(--safari-h2-letter-spacing) !important;
  font-style:var(--safari-h2-style) !important;
}
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-day-text h3,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-activities-content h3,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] h3.roby-day-main-title{
  font-family:var(--safari-h3-font) !important;
  font-size:var(--safari-h3-size) !important;
  font-weight:var(--safari-h3-weight) !important;
  line-height:var(--safari-h3-line-height) !important;
  letter-spacing:var(--safari-h3-letter-spacing) !important;
  font-style:var(--safari-h3-style) !important;
}
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-day-text h4,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-activities-content h4{
  font-family:var(--safari-h4-font) !important;
  font-size:var(--safari-h4-size) !important;
  font-weight:var(--safari-h4-weight) !important;
  line-height:var(--safari-h4-line-height) !important;
  letter-spacing:var(--safari-h4-letter-spacing) !important;
  font-style:var(--safari-h4-style) !important;
}
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-day-text h5,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-activities-content h5{
  font-family:var(--safari-h5-font) !important;
  font-size:var(--safari-h5-size) !important;
  font-weight:var(--safari-h5-weight) !important;
  line-height:var(--safari-h5-line-height) !important;
  letter-spacing:var(--safari-h5-letter-spacing) !important;
  font-style:var(--safari-h5-style) !important;
}
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-day-text h6,
.safari-hub-itinerary[data-typography-mode="site"][data-safari-fonts="ready"] .roby-activities-content h6{
  font-family:var(--safari-h6-font) !important;
  font-size:var(--safari-h6-size) !important;
  font-weight:var(--safari-h6-weight) !important;
  line-height:var(--safari-h6-line-height) !important;
  letter-spacing:var(--safari-h6-letter-spacing) !important;
  font-style:var(--safari-h6-style) !important;
}


/* Safari Hub v1.9.39.23 — authoritative REAL SITE font families.
   This intentionally changes only font-family. */

/* Body / paragraph content */
.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-text,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-text p,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-text ul,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-text ol,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-text li,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-text blockquote,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-activities-content,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-activities-content p,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-activities-content ul,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-activities-content ol,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-activities-content li,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-activities-content blockquote{
  font-family:var(--safari-site-body-family) !important;
}

/* Each heading gets its OWN site/page-builder family. */
.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-text h1,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-activities-content h1{
  font-family:var(--safari-site-h1-family, var(--safari-site-body-family)) !important;
}

.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-text h2,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-activities-content h2{
  font-family:var(--safari-site-h2-family, var(--safari-site-body-family)) !important;
}

.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-main-title,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-text h3,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-activities-content h3{
  font-family:var(--safari-site-h3-family, var(--safari-site-body-family)) !important;
}

.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-text h4,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-activities-content h4{
  font-family:var(--safari-site-h4-family, var(--safari-site-body-family)) !important;
}

.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-text h5,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-activities-content h5{
  font-family:var(--safari-site-h5-family, var(--safari-site-body-family)) !important;
}

.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-text h6,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-activities-content h6{
  font-family:var(--safari-site-h6-family, var(--safari-site-body-family)) !important;
}

/* Plugin interface text follows the actual site body/heading family too. */
.safari-hub-itinerary[data-site-family-ready="1"] .roby-tab-title,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-tab-circle,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-activities-heading,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-accommodation-name,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-visual-title{
  font-family:var(--safari-site-body-family) !important;
}

.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-big-number,
.safari-hub-itinerary[data-site-family-ready="1"] .roby-day-small-label{
  font-family:var(--safari-site-h3-family, var(--safari-site-body-family)) !important;
}


/* Safari Hub v1.9.39.28 — hide inactive day content without changing
   the scroll height or the working v1.9.39.26 vertical scroller. */
@media (min-width:768px){
  .safari-hub-itinerary .roby-itinerary-content > .roby-itinerary-day:not(.is-active){
    visibility:hidden !important;
    pointer-events:none !important;
  }

  .safari-hub-itinerary .roby-itinerary-content > .roby-itinerary-day.is-active{
    visibility:visible !important;
    pointer-events:auto !important;
  }
}


/* Safari Hub v1.9.39.30 — last-day visual alignment only.
   Keep the existing vertical scroll track and all day spacing untouched.
   When the final tab is active, paint that day at the top of the itinerary
   viewport instead of leaving the large blank area above it. */
@media (min-width:768px){
  .safari-hub-itinerary .roby-itinerary-content > .roby-itinerary-day.is-active-last{
    transform:translateY(calc(-1 * var(--safari-last-day-lift, 0px))) !important;
  }
}


/* Safari Hub v1.9.39.31 — exact SITE font family only.
   These rules deliberately do NOT alter font-size, font-weight, line-height,
   letter-spacing, colours, layout, spacing or scrolling. */

/* Orange itinerary title is an H3 and must use the site's actual H3 family. */
.safari-hub-itinerary[data-exact-site-fonts="1"] h3.roby-day-main-title{
  font-family:var(--safari-exact-h3-font, var(--safari-exact-p-font)) !important;
}

/* WYSIWYG semantic headings each use their exact corresponding site family. */
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-day-text h1,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-activities-content h1{
  font-family:var(--safari-exact-h1-font, var(--safari-exact-p-font)) !important;
}

.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-day-text h2,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-activities-content h2{
  font-family:var(--safari-exact-h2-font, var(--safari-exact-p-font)) !important;
}

.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-day-text h3,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-activities-content h3{
  font-family:var(--safari-exact-h3-font, var(--safari-exact-p-font)) !important;
}

.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-day-text h4,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-activities-content h4{
  font-family:var(--safari-exact-h4-font, var(--safari-exact-p-font)) !important;
}

.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-day-text h5,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-activities-content h5{
  font-family:var(--safari-exact-h5-font, var(--safari-exact-p-font)) !important;
}

.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-day-text h6,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-activities-content h6{
  font-family:var(--safari-exact-h6-font, var(--safari-exact-p-font)) !important;
}

/* Ordinary itinerary and activity text use the site's real paragraph family. */
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-day-text,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-day-text p,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-day-text li,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-activities-content,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-activities-content p,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-activities-content li{
  font-family:var(--safari-exact-p-font) !important;
}


/* Safari Hub v1.9.39.32 — ADMIN WEBSITE FONT MAPPING.
   Highest font-family priority only. No geometry, sizing, scrolling,
   colours, weight or spacing are changed here. */

/* Website Typography mode */
.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text,
.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text p,
.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text li,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content p,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content li,
.safari-hub-itinerary[data-typography-mode="site"] .roby-tab-title,
.safari-hub-itinerary[data-typography-mode="site"] .roby-tab-circle,
.safari-hub-itinerary[data-typography-mode="site"] .roby-accommodation-name,
.safari-hub-itinerary[data-typography-mode="site"] .roby-visual-title{
  font-family:var(--safari-admin-body-font, var(--safari-exact-p-font, var(--safari-body-font, inherit))) !important;
}

.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text h1,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content h1{
  font-family:var(--safari-admin-h1-font, var(--safari-exact-h1-font, var(--safari-h1-font, inherit))) !important;
}

.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text h2,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content h2{
  font-family:var(--safari-admin-h2-font, var(--safari-exact-h2-font, var(--safari-h2-font, inherit))) !important;
}

.safari-hub-itinerary[data-typography-mode="site"] h3.roby-day-main-title,
.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text h3,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content h3,
.safari-hub-itinerary[data-typography-mode="site"] .roby-day-big-number,
.safari-hub-itinerary[data-typography-mode="site"] .roby-day-small-label{
  font-family:var(--safari-admin-h3-font, var(--safari-exact-h3-font, var(--safari-h3-font, inherit))) !important;
}

.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text h4,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content h4,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-heading{
  font-family:var(--safari-admin-h4-font, var(--safari-exact-h4-font, var(--safari-h4-font, inherit))) !important;
}

.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text h5,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content h5{
  font-family:var(--safari-admin-h5-font, var(--safari-exact-h5-font, var(--safari-h5-font, inherit))) !important;
}

.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text h6,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content h6{
  font-family:var(--safari-admin-h6-font, var(--safari-exact-h6-font, var(--safari-h6-font, inherit))) !important;
}

/* Custom Fonts mode — preserve the existing simple manual override. */
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-day-text,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-day-text p,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-day-text li,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-activities-content,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-activities-content p,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-activities-content li,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-tab-title,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-tab-circle,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-accommodation-name,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-visual-title{
  font-family:var(--safari-body-font, inherit) !important;
}

.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-day-main-title,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-day-big-number,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-day-small-label,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-activities-heading,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-day-text h1,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-day-text h2,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-day-text h3,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-day-text h4,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-day-text h5,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-day-text h6,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-activities-content h1,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-activities-content h2,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-activities-content h3,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-activities-content h4,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-activities-content h5,
.safari-hub-itinerary[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-activities-content h6{
  font-family:var(--safari-h3-font, var(--safari-hub-heading-font, inherit)) !important;
}


/* Safari Hub v1.9.39.35 — remove the blank area above the ACTIVE day only.
   Hidden days remain in the scroll flow, so the working vertical scroller
   and all existing day offsets remain untouched. */
@media (min-width:768px){
  .safari-hub-itinerary .roby-itinerary-content > .roby-itinerary-day.is-active{
    transform:translateY(calc(-1 * var(--safari-active-day-lift, 0px))) !important;
  }

  /*
   * v1.9.39.35 supersedes the special final-day transform with the same
   * general active-day alignment so every tab behaves consistently.
   */
  .safari-hub-itinerary .roby-itinerary-content > .roby-itinerary-day.is-active-last{
    transform:translateY(calc(-1 * var(--safari-active-day-lift, 0px))) !important;
  }
}


/* Safari Hub v1.9.39.39 — itinerary title font-family fix ONLY.
   The orange day title is a special Safari Hub H3 outside the WYSIWYG body,
   so give it the same final H3 font-family source as the website. */
.safari-hub-itinerary h3.roby-day-main-title,
.safari-hub-itinerary .roby-day-copy > h3.roby-day-main-title{
  font-family:
    var(--safari-admin-h3-font,
    var(--safari-exact-h3-font,
    var(--safari-site-h3-family,
    var(--safari-h3-font,
    var(--safari-hub-heading-font,
    inherit))))) !important;
}


/* Safari Hub v1.9.39.40 — TITLE FONT FAMILY ONLY.
   Do not force any H3 font variable on the orange itinerary title.
   Its parent already carries the correct website font, so inherit it directly. */
.safari-hub-itinerary .roby-day-copy > h3.roby-day-main-title,
.safari-hub-itinerary h3.roby-day-main-title{
  font-family:inherit !important;
}


/* Safari Hub v1.9.39.41 — H3/H4 website font-family authority ONLY.
   Uses real live website heading families captured outside Safari Hub. */

/* H3: itinerary title + WYSIWYG H3 content + large day heading text */
.safari-hub-itinerary h3.roby-day-main-title,
.safari-hub-itinerary .roby-day-text h3,
.safari-hub-itinerary .roby-activities-content h3,
.safari-hub-itinerary h3.roby-day-big-number,
.safari-hub-itinerary h3.roby-day-small-label{
  font-family:
    var(--safari-live-h3-font,
    var(--safari-admin-h3-font,
    var(--safari-exact-h3-font,
    inherit))) !important;
}

/* H4: WYSIWYG H4 content + activities heading */
.safari-hub-itinerary .roby-day-text h4,
.safari-hub-itinerary .roby-activities-content h4,
.safari-hub-itinerary .roby-activities-heading{
  font-family:
    var(--safari-live-h4-font,
    var(--safari-admin-h4-font,
    var(--safari-exact-h4-font,
    inherit))) !important;
}


/* Safari Hub v1.9.39.43 — WEBSITE HEADING FONT AUTHORITY ONLY.
   The saved fonts from Safari Hub > Typography are the final font-family
   source for the itinerary title and every semantic H1–H6 heading.
   No font size, weight, line-height, colour, spacing or layout is changed. */

.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text h1,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content h1{
  font-family:var(--safari-admin-h1-font, inherit) !important;
}

.safari-hub-itinerary[data-typography-mode="site"] h3.roby-day-main-title,
.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text h2,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content h2{
  font-family:var(--safari-admin-h2-font, inherit) !important;
}

/* The itinerary title is visually the site's heading title.
   Prefer the explicitly detected H3 mapping when present. */
.safari-hub-itinerary[data-typography-mode="site"] h3.roby-day-main-title{
  font-family:var(--safari-admin-h3-font, inherit) !important;
}

.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text h3,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content h3,
.safari-hub-itinerary[data-typography-mode="site"] h3.roby-day-big-number,
.safari-hub-itinerary[data-typography-mode="site"] h3.roby-day-small-label{
  font-family:var(--safari-admin-h3-font, inherit) !important;
}

.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text h4,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content h4,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-heading{
  font-family:var(--safari-admin-h4-font, inherit) !important;
}

.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text h5,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content h5{
  font-family:var(--safari-admin-h5-font, inherit) !important;
}

.safari-hub-itinerary[data-typography-mode="site"] .roby-day-text h6,
.safari-hub-itinerary[data-typography-mode="site"] .roby-activities-content h6{
  font-family:var(--safari-admin-h6-font, inherit) !important;
}


/* Safari Hub v1.9.39.44 — day heading top-space adjustment ONLY.
   Keep the existing day grid and content spacing; reduce only the empty
   space before the large day number/title row. */
@media (min-width:768px){
  .safari-hub-itinerary .roby-itinerary-content > .roby-itinerary-day{
    padding-top:18px !important;
  }
}


/* Robylinks Safari Itinerary v1.9.39.51
   Natural continuous itinerary flow:
   - less empty space above each day title/header
   - next day begins immediately after short content
   - no artificial blank gap from hidden inactive days
*/
@media (min-width:768px){

  .safari-hub-itinerary .roby-itinerary-content > .roby-itinerary-day{
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    padding-top:6px !important;
  }

  .safari-hub-itinerary .roby-itinerary-content > .roby-itinerary-day:not(.is-active),
  .safari-hub-itinerary .roby-itinerary-content > .roby-itinerary-day.is-active,
  .safari-hub-itinerary .roby-itinerary-content > .roby-itinerary-day.is-active-last{
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
  }

  .safari-hub-itinerary .roby-itinerary-content > .roby-itinerary-day + .roby-itinerary-day{
    margin-top:0 !important;
  }
}


/* Robylinks Safari Itinerary v1.9.39.52
   Smartphone/tablet day-heading spacing only.
   Remove the large mobile/tablet gap between the day number/label and title.
*/
@media (max-width:767px){
  .safari-hub-itinerary .roby-itinerary-day{
    padding-top:8px !important;
    row-gap:10px !important;
  }

  .safari-hub-itinerary .roby-itinerary-day > .roby-day-marker,
  .safari-hub-itinerary .roby-itinerary-day > .roby-day-number-block{
    margin-bottom:0 !important;
    padding-bottom:0 !important;
  }

  .safari-hub-itinerary .roby-itinerary-day > .roby-day-copy{
    margin-top:0 !important;
    padding-top:0 !important;
  }

  .safari-hub-itinerary .roby-itinerary-day > .roby-day-copy > .roby-day-main-title{
    margin-top:0 !important;
  }
}

/* Tablet portrait / compact tablet */
@media (min-width:768px) and (max-width:1024px){
  .safari-hub-itinerary .roby-itinerary-content > .roby-itinerary-day{
    padding-top:8px !important;
    row-gap:14px !important;
  }

  .safari-hub-itinerary .roby-itinerary-day > .roby-day-marker,
  .safari-hub-itinerary .roby-itinerary-day > .roby-day-copy{
    margin-top:0 !important;
    margin-bottom:0 !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
  }
}


/* Robylinks Safari Itinerary v1.9.39.55
   Activities + Meals now live in the left itinerary scroller.
   Right visual panel remains image + accommodation only.
*/
.safari-hub-itinerary .roby-day-left-section{
  grid-column:1 / -1;
  margin-top:18px;
}

.safari-hub-itinerary .roby-day-left-section-title{
  margin:0 0 10px !important;
}

.safari-hub-itinerary .roby-day-activities-content > *:first-child{
  margin-top:0 !important;
}

.safari-hub-itinerary .roby-day-activities-content > *:last-child{
  margin-bottom:0 !important;
}

.safari-hub-itinerary .roby-day-meals-list{
  margin:0 !important;
  padding-left:20px !important;
}

.safari-hub-itinerary .roby-day-meals-list li{
  margin:0 0 5px !important;
}

@media (max-width:767px){
  .safari-hub-itinerary .roby-day-left-section{
    margin-top:14px;
  }
}


/* Robylinks Safari Itinerary v1.9.39.57
   Activities + Meals cards:
   - H4 headings
   - tighter spacing below heading
   - soft #e9fdff box
*/
.safari-hub-itinerary .roby-day-left-activities,
.safari-hub-itinerary .roby-day-left-meals{
  padding:18px 20px !important;
  background:#e9fdff !important;
  border-radius:6px !important;
}

.safari-hub-itinerary .roby-day-left-activities > h4.roby-day-left-section-title,
.safari-hub-itinerary .roby-day-left-meals > h4.roby-day-left-section-title{
  margin:0 0 5px !important;
  padding:0 !important;
}

.safari-hub-itinerary .roby-day-left-activities .roby-day-activities-content{
  margin-top:0 !important;
  padding-top:0 !important;
}

.safari-hub-itinerary .roby-day-left-activities .roby-day-activities-content > *:first-child,
.safari-hub-itinerary .roby-day-left-meals .roby-day-meals-list{
  margin-top:0 !important;
}

@media (max-width:767px){
  .safari-hub-itinerary .roby-day-left-activities,
  .safari-hub-itinerary .roby-day-left-meals{
    padding:14px 16px !important;
  }
}

/* Robylinks Safari Itinerary v1.9.39.58 — Other Headings controls */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-left-section-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-left-activities h4,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-left-meals h4{
  font-family:var(--safari-other-heading-font, inherit) !important;
  color:var(--safari-other-heading-color, #171717) !important;
}


/* Robylinks Safari Itinerary v1.9.39.59
   Restore rich-editor list markers in itinerary/activities content.
*/
.safari-hub-itinerary .roby-day-text ul,
.safari-hub-itinerary .roby-day-activities-content ul{
  display:block !important;
  list-style:disc outside !important;
  margin:10px 0 14px !important;
  padding-left:24px !important;
}

.safari-hub-itinerary .roby-day-text ol,
.safari-hub-itinerary .roby-day-activities-content ol{
  display:block !important;
  list-style:decimal outside !important;
  margin:10px 0 14px !important;
  padding-left:24px !important;
}

.safari-hub-itinerary .roby-day-text ul li,
.safari-hub-itinerary .roby-day-activities-content ul li{
  display:list-item !important;
  list-style-type:disc !important;
  margin:0 0 6px !important;
  padding-left:2px !important;
}

.safari-hub-itinerary .roby-day-text ol li,
.safari-hub-itinerary .roby-day-activities-content ol li{
  display:list-item !important;
  list-style-type:decimal !important;
  margin:0 0 6px !important;
  padding-left:2px !important;
}


/* Robylinks Safari Itinerary v1.9.39.60
   Activities: warm #f4f3f0 card.
   Meals: no card, one horizontal row with tick icons.
*/
.safari-hub-itinerary .roby-day-left-activities{
  background:#f4f3f0 !important;
}

.safari-hub-itinerary .roby-day-left-meals{
  background:transparent !important;
  border-radius:0 !important;
  padding:0 !important;
}

.safari-hub-itinerary .roby-day-meals-row{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:8px 24px !important;
  margin:0 !important;
  padding:0 !important;
}

.safari-hub-itinerary .roby-meal-item{
  display:inline-flex !important;
  align-items:center !important;
  gap:7px !important;
  margin:0 !important;
  padding:0 !important;
}

.safari-hub-itinerary .roby-meal-tick{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:18px !important;
  height:18px !important;
  line-height:1 !important;
  font-size:13px !important;
  font-weight:700 !important;
  border:1px solid currentColor !important;
  border-radius:50% !important;
  flex:0 0 18px !important;
}


/* Robylinks Safari Itinerary v1.9.39.68
   Accommodation gallery lightbox — reference-style presentation only.
*/
.roby-lightbox{
  display:block !important;
  background:rgba(18,18,18,.92) !important;
  backdrop-filter:blur(4px) !important;
  -webkit-backdrop-filter:blur(4px) !important;
}

.roby-lightbox-counter{
  position:absolute !important;
  top:32px !important;
  left:34px !important;
  z-index:6 !important;
  padding:11px 20px !important;
  border-radius:999px !important;
  background:rgba(10,10,10,.72) !important;
  color:#fff !important;
  font-size:15px !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

.roby-lightbox-close{
  position:absolute !important;
  top:28px !important;
  right:34px !important;
  z-index:7 !important;
  width:52px !important;
  height:52px !important;
  border:0 !important;
  border-radius:50% !important;
  background:rgba(18,18,18,.82) !important;
  color:#fff !important;
  font-size:30px !important;
  line-height:1 !important;
  display:grid !important;
  place-items:center !important;
  box-shadow:none !important;
  cursor:pointer !important;
}

.roby-lightbox-close:hover{
  background:#2e2e2e !important;
  color:#fff !important;
  transform:none !important;
}

.roby-lightbox-stage{
  position:absolute !important;
  inset:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:92px 150px 116px !important;
  overflow:hidden !important;
}

.roby-lightbox-figure{
  margin:0 !important;
  width:auto !important;
  max-width:min(1020px,78vw) !important;
  max-height:calc(100vh - 190px) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.roby-lightbox-image{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:calc(100vh - 190px) !important;
  object-fit:contain !important;
  border-radius:5px !important;
  box-shadow:0 18px 50px rgba(0,0,0,.34) !important;
}

.roby-lightbox-caption{
  display:none !important;
}

.roby-lightbox-nav{
  position:absolute !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  z-index:6 !important;
  width:68px !important;
  height:68px !important;
  border:0 !important;
  border-radius:50% !important;
  background:rgba(73,73,73,.88) !important;
  color:#fff !important;
  font-size:48px !important;
  font-weight:200 !important;
  line-height:1 !important;
  display:grid !important;
  place-items:center !important;
  box-shadow:none !important;
}

.roby-lightbox-nav:hover{
  background:rgba(92,92,92,.96) !important;
  color:#fff !important;
  transform:translateY(-50%) !important;
}

.roby-lightbox-prev{left:34px !important}
.roby-lightbox-next{right:34px !important}

.roby-lightbox-controls{
  position:absolute !important;
  left:50% !important;
  bottom:28px !important;
  transform:translateX(-50%) !important;
  z-index:7 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:16px !important;
}

.roby-lightbox-control{
  min-width:112px !important;
  height:60px !important;
  padding:0 26px !important;
  border:0 !important;
  border-radius:999px !important;
  background:rgba(82,82,82,.94) !important;
  color:#fff !important;
  font:inherit !important;
  font-size:16px !important;
  font-weight:500 !important;
  line-height:1 !important;
  cursor:pointer !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:9px !important;
  box-shadow:none !important;
}

.roby-lightbox-control:hover{
  background:#686868 !important;
}

.roby-lightbox-control-close{
  min-width:108px !important;
}

.roby-lightbox-thumbs{
  display:none !important;
}

/* Make the clicked accommodation image clearly interactive. */
.roby-gallery-open{
  cursor:pointer !important;
}

@media(max-width:767px){
  .roby-lightbox-counter{
    top:14px !important;
    left:14px !important;
    padding:9px 14px !important;
    font-size:13px !important;
  }

  .roby-lightbox-close{
    top:12px !important;
    right:14px !important;
    width:44px !important;
    height:44px !important;
    font-size:26px !important;
  }

  .roby-lightbox-stage{
    padding:74px 14px 102px !important;
  }

  .roby-lightbox-figure{
    max-width:100% !important;
    max-height:calc(100vh - 176px) !important;
  }

  .roby-lightbox-image{
    max-height:calc(100vh - 176px) !important;
    border-radius:4px !important;
  }

  .roby-lightbox-nav{
    width:48px !important;
    height:48px !important;
    font-size:36px !important;
    top:50% !important;
    bottom:auto !important;
  }

  .roby-lightbox-prev{left:10px !important}
  .roby-lightbox-next{right:10px !important}

  .roby-lightbox-controls{
    bottom:16px !important;
    gap:8px !important;
    width:calc(100% - 24px) !important;
  }

  .roby-lightbox-control{
    flex:1 1 0 !important;
    min-width:0 !important;
    height:50px !important;
    padding:0 10px !important;
    font-size:14px !important;
  }
}


/* Robylinks Safari Itinerary v1.9.39.71
   Remove the large vertical gap before Activities / Meals in the left day flow.
   Layout, typography and all other frontend styling remain unchanged.
*/
.safari-hub-itinerary .roby-day-left-section{
  grid-column:1 / -1 !important;
  margin-top:18px !important;
  align-self:start !important;
}

.safari-hub-itinerary .roby-day-text + .roby-day-left-section{
  margin-top:18px !important;
}

.safari-hub-itinerary .roby-day-left-section + .roby-day-left-section{
  margin-top:14px !important;
}

.safari-hub-itinerary .roby-day-left-meals{
  margin-bottom:8px !important;
}

@media(max-width:767px){
  .safari-hub-itinerary .roby-day-left-section,
  .safari-hub-itinerary .roby-day-text + .roby-day-left-section{
    margin-top:14px !important;
  }

  .safari-hub-itinerary .roby-day-left-section + .roby-day-left-section{
    margin-top:12px !important;
  }
}


/* ============================================================
   Robylinks Safari Itinerary v1.9.39.80
   LUXURY TIMELINE — Premium Editorial Layout
   Classic Split CSS above is intentionally untouched.
   ============================================================ */

.roby-luxury-timeline{
  width:100%;
  max-width:1420px;
  margin:0 auto;
  padding:clamp(28px,4vw,62px) clamp(18px,4vw,62px);
  box-sizing:border-box;
  background:#fff;
  color:#171717;
}

.roby-luxury-timeline *,
.roby-luxury-timeline *::before,
.roby-luxury-timeline *::after{
  box-sizing:border-box;
}

.roby-luxury-heading{
  margin:0 0 clamp(42px,6vw,78px);
  padding-bottom:22px;
  border-bottom:1px solid rgba(0,0,0,.12);
}

.roby-luxury-kicker,
.roby-luxury-section-kicker{
  display:block;
  color:var(--roby-active,#c3891b);
  font-size:11px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.roby-luxury-heading h2{
  margin:8px 0 0 !important;
}

.roby-luxury-day{
  position:relative;
  margin:0 0 clamp(72px,9vw,120px);
  padding:0 0 clamp(72px,9vw,120px);
  border-bottom:1px solid rgba(0,0,0,.12);
}

.roby-luxury-day:last-child{
  margin-bottom:0;
}

.roby-luxury-day-head{
  display:grid;
  grid-template-columns:minmax(110px,150px) minmax(0,1fr);
  gap:clamp(24px,4vw,54px);
  align-items:center;
  margin:0 0 clamp(30px,4vw,46px);
}

.roby-luxury-number-wrap{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.roby-luxury-day-label{
  display:block;
  margin:0 0 8px;
  color:var(--roby-active,#c3891b);
  font-size:11px;
  line-height:1.2;
  letter-spacing:.18em;
  font-weight:700;
}

.roby-luxury-number{
  display:block;
  color:var(--safari-large-day-number,var(--roby-active,#c3891b));
  font-size:clamp(58px,7vw,88px);
  line-height:.82;
  font-weight:500;
  letter-spacing:-.055em;
}

.roby-luxury-title-wrap{
  min-width:0;
  padding-left:clamp(24px,4vw,52px);
  border-left:1px solid rgba(0,0,0,.18);
}

.roby-luxury-title-wrap h3{
  margin:0 !important;
  color:var(--roby-title,#171717) !important;
  text-transform:none !important;
}

.roby-luxury-timeline .roby-luxury-title-wrap h3{
  font-family:var(--safari-h3-family, var(--safari-hub-heading-font, inherit)) !important;
  font-size:var(--safari-h3-size, inherit) !important;
  font-weight:var(--safari-h3-weight, inherit) !important;
  line-height:var(--safari-h3-line-height, inherit) !important;
  letter-spacing:var(--safari-h3-letter-spacing, inherit) !important;
  font-style:var(--safari-h3-style, normal) !important;
}

/* Image of the Day + Accommodation */
.roby-luxury-feature-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  margin-bottom:clamp(34px,5vw,56px);
}

.roby-luxury-feature-card{
  min-width:0;
}

.roby-luxury-feature-heading,
.roby-luxury-section-heading{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 13px;
}

.roby-luxury-feature-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  min-width:22px;
  color:var(--roby-active,#c3891b);
  font-size:19px;
  line-height:1;
}

.roby-luxury-feature-heading h4,
.roby-luxury-section-heading h4{
  margin:0 !important;
  color:var(--safari-other-heading-color,#171717) !important;
  font-family:var(--safari-other-heading-font,inherit) !important;
  font-size:14px !important;
  line-height:1.25 !important;
  font-weight:700 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
}

.roby-luxury-feature-image{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  min-height:260px;
  overflow:hidden;
  background:#ece8df;
}

.roby-luxury-feature-image > img,
.roby-luxury-feature-image > button,
.roby-luxury-feature-image > button > img{
  display:block;
  width:100%;
  height:100%;
}

.roby-luxury-feature-image > img,
.roby-luxury-feature-image > button > img{
  object-fit:cover;
  object-position:center;
}

.roby-luxury-feature-image > button{
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  cursor:pointer;
}

.roby-luxury-accommodation-overlay{
  position:absolute;
  left:0;
  bottom:0;
  z-index:2;
  display:flex;
  align-items:center;
  gap:8px;
  max-width:88%;
  min-height:42px;
  padding:9px 15px;
  background:rgba(77,78,36,.92);
  color:#fff;
  pointer-events:none;
}

.roby-luxury-accommodation-overlay span{
  font-size:19px;
  line-height:1;
}

.roby-luxury-accommodation-overlay strong{
  font-size:13px;
  line-height:1.35;
  font-weight:700;
}

.roby-luxury-accommodation-name-only{
  min-height:260px;
  padding:28px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  background:#f6f3ed;
  border:1px solid rgba(0,0,0,.08);
}

.roby-luxury-accommodation-name-only strong{
  margin-top:8px;
  font-size:20px;
  line-height:1.3;
}

/* Itinerary */
.roby-luxury-itinerary-section{
  margin:0 0 clamp(34px,5vw,54px);
}

.roby-luxury-itinerary-copy{
  max-width:1080px;
  color:inherit;
  line-height:1.78;
}

.roby-luxury-itinerary-copy > *:first-child,
.roby-luxury-activities-copy > *:first-child{
  margin-top:0;
}

.roby-luxury-itinerary-copy > *:last-child,
.roby-luxury-activities-copy > *:last-child{
  margin-bottom:0;
}

.roby-luxury-itinerary-copy p{
  margin:0 0 1.25em;
}

.roby-luxury-itinerary-copy ul,
.roby-luxury-itinerary-copy ol,
.roby-luxury-activities-copy ul,
.roby-luxury-activities-copy ol{
  display:block !important;
  margin:12px 0 18px !important;
  padding-left:24px !important;
}

.roby-luxury-itinerary-copy ul,
.roby-luxury-activities-copy ul{
  list-style:disc outside !important;
}

.roby-luxury-itinerary-copy ol,
.roby-luxury-activities-copy ol{
  list-style:decimal outside !important;
}

.roby-luxury-itinerary-copy li,
.roby-luxury-activities-copy li{
  display:list-item !important;
  margin-bottom:7px;
}

/* Activities + Meals */
.roby-luxury-info-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  margin:0 0 clamp(38px,5vw,58px);
}

.roby-luxury-info-card{
  min-width:0;
  padding:24px 26px;
  background:#f7f5ef;
  border:1px solid rgba(0,0,0,.06);
}

.roby-luxury-info-card.roby-luxury-activities{
  margin:0 !important;
  border-left:1px solid rgba(0,0,0,.06) !important;
}

.roby-luxury-activities-copy{
  line-height:1.7;
}

.roby-luxury-meals{
  display:flex;
  flex-direction:column;
  gap:0;
}

.roby-luxury-meals span{
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  gap:10px;
  align-items:center;
  min-height:44px;
  padding:10px 0;
  border-bottom:1px solid rgba(0,0,0,.09);
}

.roby-luxury-meals span:last-child{
  border-bottom:0;
}

.roby-luxury-meals b{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  border:1px solid currentColor;
  border-radius:50%;
  font-size:11px;
  line-height:1;
  font-weight:700;
}

.roby-luxury-meals strong{
  font-weight:600;
}

/* Accommodation Gallery */
.roby-luxury-gallery-section{
  margin-top:8px;
}

.roby-luxury-gallery{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
  margin:0 !important;
}

.roby-luxury-gallery figure{
  position:relative;
  min-width:0;
  margin:0 !important;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#ece8df;
}

.roby-luxury-gallery .roby-gallery-open{
  display:block;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:transparent;
}

.roby-luxury-gallery .roby-gallery-open img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

@media(max-width:900px){
  .roby-luxury-feature-row,
  .roby-luxury-info-row{
    grid-template-columns:1fr;
  }

  .roby-luxury-feature-image{
    min-height:300px;
  }
}

@media(max-width:640px){
  .roby-luxury-timeline{
    padding:28px 16px 40px;
  }

  .roby-luxury-day-head{
    grid-template-columns:76px minmax(0,1fr);
    gap:16px;
    align-items:center;
  }

  .roby-luxury-title-wrap{
    padding-left:18px;
  }

  .roby-luxury-number{
    font-size:48px;
  }

  .roby-luxury-day-label{
    font-size:9px;
    letter-spacing:.12em;
  }

  .roby-luxury-feature-image{
    min-height:220px;
    aspect-ratio:4/3;
  }

  .roby-luxury-info-card{
    padding:20px 18px;
  }

  .roby-luxury-gallery{
    grid-template-columns:1fr !important;
  }
}


/* Robylinks Safari Itinerary v1.9.39.81
   Luxury Timeline only: vertical journey rail on the left.
   Classic Split remains untouched.
*/
.roby-luxury-timeline .roby-luxury-days{
  position:relative;
  padding-left:72px;
}

.roby-luxury-timeline .roby-luxury-days::before{
  content:"";
  position:absolute;
  left:26px;
  top:0;
  bottom:0;
  width:1px;
  background:#cfcfcf;
}

.roby-luxury-timeline .roby-luxury-day{
  position:relative;
}

.roby-luxury-timeline .roby-luxury-rail-marker{
  position:absolute;
  left:-72px;
  top:34px;
  width:52px;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  z-index:3;
}

.roby-luxury-timeline .roby-luxury-rail-dot{
  position:relative;
  display:block;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#fff;
  border:5px solid var(--roby-active,#c3891b);
  box-shadow:0 1px 4px rgba(0,0,0,.12);
}

.roby-luxury-timeline .roby-luxury-day:nth-child(3n+1) .roby-luxury-rail-dot{
  border-color:#12a7a2;
}

.roby-luxury-timeline .roby-luxury-day:nth-child(3n+2) .roby-luxury-rail-dot{
  border-color:#e3a21a;
}

.roby-luxury-timeline .roby-luxury-day:nth-child(3n+3) .roby-luxury-rail-dot{
  border-color:#e94c3d;
}

.roby-luxury-timeline .roby-luxury-day-head{
  position:relative;
}

/* Keep the rail elegant and compact on tablet/mobile. */
@media(max-width:900px){
  .roby-luxury-timeline .roby-luxury-days{
    padding-left:48px;
  }

  .roby-luxury-timeline .roby-luxury-days::before{
    left:17px;
  }

  .roby-luxury-timeline .roby-luxury-rail-marker{
    left:-48px;
    width:36px;
    top:28px;
  }

  .roby-luxury-timeline .roby-luxury-rail-dot{
    width:16px;
    height:16px;
    border-width:4px;
  }
}

@media(max-width:640px){
  .roby-luxury-timeline .roby-luxury-days{
    padding-left:38px;
  }

  .roby-luxury-timeline .roby-luxury-days::before{
    left:13px;
  }

  .roby-luxury-timeline .roby-luxury-rail-marker{
    left:-38px;
    width:28px;
    top:23px;
  }

  .roby-luxury-timeline .roby-luxury-rail-dot{
    width:14px;
    height:14px;
    border-width:4px;
  }
}


/* Robylinks Safari Itinerary v1.9.39.82
   Approved Luxury Timeline refinement.
   Classic Split is intentionally untouched.
*/

/* Smaller large day number */
.roby-luxury-timeline .roby-luxury-number{
  font-size:clamp(42px,5vw,62px) !important;
  line-height:.88 !important;
}

/* Timeline: one colour, every dot centered exactly on the vertical rail */
.roby-luxury-timeline{
  --roby-luxury-rail-color:#147f79;
}

.roby-luxury-timeline .roby-luxury-days::before{
  left:26px !important;
  background:var(--roby-luxury-rail-color) !important;
  opacity:.48;
}

.roby-luxury-timeline .roby-luxury-rail-marker{
  left:-55px !important;
  top:31px !important;
  width:18px !important;
  height:18px !important;
  justify-content:center !important;
}

.roby-luxury-timeline .roby-luxury-rail-dot,
.roby-luxury-timeline .roby-luxury-day:nth-child(3n+1) .roby-luxury-rail-dot,
.roby-luxury-timeline .roby-luxury-day:nth-child(3n+2) .roby-luxury-rail-dot,
.roby-luxury-timeline .roby-luxury-day:nth-child(3n+3) .roby-luxury-rail-dot{
  width:18px !important;
  height:18px !important;
  border:5px solid var(--roby-luxury-rail-color) !important;
  background:#fff !important;
  box-shadow:0 1px 4px rgba(0,0,0,.10) !important;
}

/* Image of the Day has no heading; both feature images remain balanced */
.roby-luxury-timeline .roby-luxury-day-photo-card,
.roby-luxury-timeline .roby-luxury-accommodation-card{
  align-self:stretch;
}

.roby-luxury-timeline .roby-luxury-day-photo,
.roby-luxury-timeline .roby-luxury-accommodation-feature{
  height:100%;
  min-height:320px;
  aspect-ratio:16/10;
}

/* Accommodation main image with two overlay thumbnails */
.roby-luxury-timeline .roby-luxury-accommodation-feature{
  position:relative;
}

.roby-luxury-timeline .roby-luxury-accommodation-main{
  position:absolute;
  inset:0;
  z-index:1;
}

.roby-luxury-timeline .roby-luxury-accommodation-overlay{
  top:16px;
  left:16px;
  bottom:auto !important;
  z-index:4;
  max-width:calc(100% - 32px);
  min-height:38px;
  background:rgba(20,70,64,.92);
}

.roby-luxury-timeline .roby-luxury-accommodation-thumbs{
  position:absolute;
  right:12px;
  bottom:12px;
  z-index:5;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  width:min(58%,280px);
  pointer-events:auto;
}

.roby-luxury-timeline .roby-luxury-accommodation-thumb{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:4/3;
  padding:0;
  margin:0;
  overflow:hidden;
  border:2px solid rgba(255,255,255,.92);
  background:#eee;
  cursor:pointer;
  box-shadow:0 2px 10px rgba(0,0,0,.20);
}

.roby-luxury-timeline .roby-luxury-accommodation-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Separate Accommodation Gallery is no longer used in Luxury Timeline */
.roby-luxury-timeline .roby-luxury-gallery-section{
  display:none !important;
}

@media(max-width:900px){
  .roby-luxury-timeline .roby-luxury-days::before{
    left:17px !important;
  }

  .roby-luxury-timeline .roby-luxury-rail-marker{
    left:-39px !important;
    top:25px !important;
    width:16px !important;
    height:16px !important;
  }

  .roby-luxury-timeline .roby-luxury-rail-dot,
  .roby-luxury-timeline .roby-luxury-day:nth-child(3n+1) .roby-luxury-rail-dot,
  .roby-luxury-timeline .roby-luxury-day:nth-child(3n+2) .roby-luxury-rail-dot,
  .roby-luxury-timeline .roby-luxury-day:nth-child(3n+3) .roby-luxury-rail-dot{
    width:16px !important;
    height:16px !important;
    border-width:4px !important;
  }
}

@media(max-width:640px){
  .roby-luxury-timeline .roby-luxury-days::before{
    left:13px !important;
  }

  .roby-luxury-timeline .roby-luxury-rail-marker{
    left:-32px !important;
    top:20px !important;
    width:14px !important;
    height:14px !important;
  }

  .roby-luxury-timeline .roby-luxury-rail-dot,
  .roby-luxury-timeline .roby-luxury-day:nth-child(3n+1) .roby-luxury-rail-dot,
  .roby-luxury-timeline .roby-luxury-day:nth-child(3n+2) .roby-luxury-rail-dot,
  .roby-luxury-timeline .roby-luxury-day:nth-child(3n+3) .roby-luxury-rail-dot{
    width:14px !important;
    height:14px !important;
    border-width:4px !important;
  }

  .roby-luxury-timeline .roby-luxury-accommodation-thumbs{
    width:min(66%,240px);
    right:8px;
    bottom:8px;
    gap:5px;
  }
}


/* Robylinks Safari Itinerary v1.9.39.83
   Luxury Timeline only.
   Classic Split is intentionally untouched.
*/

/* The large day number is now a real H2 and uses the site's complete H2 typography. */
.roby-luxury-timeline h2.roby-luxury-number{
  margin:0 !important;
  padding:0 !important;
  color:#111 !important;
  font-family:var(--safari-h2-family, inherit) !important;
  font-size:var(--safari-h2-size, inherit) !important;
  font-weight:var(--safari-h2-weight, inherit) !important;
  line-height:var(--safari-h2-line-height, inherit) !important;
  letter-spacing:var(--safari-h2-letter-spacing, inherit) !important;
  font-style:var(--safari-h2-style, normal) !important;
  text-transform:none !important;
}

/* Black timeline with solid black dots. */
.roby-luxury-timeline{
  --roby-luxury-rail-color:#111;
}

/*
 * Instead of one uninterrupted heavy line, each day draws its own faint rail
 * segment with a small fade/gap around the dot. This keeps the dot visually
 * crisp while the timeline remains continuous.
 */
.roby-luxury-timeline .roby-luxury-days::before{
  display:none !important;
}

.roby-luxury-timeline .roby-luxury-day::before,
.roby-luxury-timeline .roby-luxury-day::after{
  content:"";
  position:absolute;
  left:-46px;
  width:1px;
  background:linear-gradient(
    to bottom,
    rgba(17,17,17,.18),
    rgba(17,17,17,.38)
  );
  z-index:1;
}

.roby-luxury-timeline .roby-luxury-day::before{
  top:-1px;
  height:26px;
  background:linear-gradient(
    to bottom,
    rgba(17,17,17,.34),
    rgba(17,17,17,.08)
  );
}

.roby-luxury-timeline .roby-luxury-day::after{
  top:48px;
  bottom:0;
  background:linear-gradient(
    to bottom,
    rgba(17,17,17,.08),
    rgba(17,17,17,.30) 34px,
    rgba(17,17,17,.30)
  );
}

.roby-luxury-timeline .roby-luxury-day:first-child::before{
  top:0;
}

.roby-luxury-timeline .roby-luxury-day:last-child::after{
  bottom:0;
}

/* Dot sits exactly on the rail centre. */
.roby-luxury-timeline .roby-luxury-rail-marker{
  left:-55px !important;
  top:31px !important;
  width:18px !important;
  height:18px !important;
  z-index:4 !important;
}

.roby-luxury-timeline .roby-luxury-rail-dot,
.roby-luxury-timeline .roby-luxury-day:nth-child(3n+1) .roby-luxury-rail-dot,
.roby-luxury-timeline .roby-luxury-day:nth-child(3n+2) .roby-luxury-rail-dot,
.roby-luxury-timeline .roby-luxury-day:nth-child(3n+3) .roby-luxury-rail-dot{
  width:18px !important;
  height:18px !important;
  border:0 !important;
  border-radius:50% !important;
  background:#111 !important;
  box-shadow:none !important;
}

/* Remove the large empty space below Activities / Meals. */
.roby-luxury-timeline .roby-luxury-info-row{
  margin-bottom:0 !important;
}

.roby-luxury-timeline .roby-luxury-info-row + *{
  margin-top:24px !important;
}

.roby-luxury-timeline .roby-luxury-day{
  padding-bottom:clamp(34px,5vw,58px) !important;
  margin-bottom:clamp(34px,5vw,58px) !important;
}

@media(max-width:900px){
  .roby-luxury-timeline .roby-luxury-day::before,
  .roby-luxury-timeline .roby-luxury-day::after{
    left:-31px;
  }

  .roby-luxury-timeline .roby-luxury-day::before{
    height:21px;
  }

  .roby-luxury-timeline .roby-luxury-day::after{
    top:41px;
  }

  .roby-luxury-timeline .roby-luxury-rail-marker{
    left:-39px !important;
    top:25px !important;
    width:16px !important;
    height:16px !important;
  }

  .roby-luxury-timeline .roby-luxury-rail-dot,
  .roby-luxury-timeline .roby-luxury-day:nth-child(3n+1) .roby-luxury-rail-dot,
  .roby-luxury-timeline .roby-luxury-day:nth-child(3n+2) .roby-luxury-rail-dot,
  .roby-luxury-timeline .roby-luxury-day:nth-child(3n+3) .roby-luxury-rail-dot{
    width:16px !important;
    height:16px !important;
  }
}

@media(max-width:640px){
  .roby-luxury-timeline .roby-luxury-day::before,
  .roby-luxury-timeline .roby-luxury-day::after{
    left:-25px;
  }

  .roby-luxury-timeline .roby-luxury-day::before{
    height:17px;
  }

  .roby-luxury-timeline .roby-luxury-day::after{
    top:35px;
  }

  .roby-luxury-timeline .roby-luxury-rail-marker{
    left:-32px !important;
    top:20px !important;
    width:14px !important;
    height:14px !important;
  }

  .roby-luxury-timeline .roby-luxury-rail-dot,
  .roby-luxury-timeline .roby-luxury-day:nth-child(3n+1) .roby-luxury-rail-dot,
  .roby-luxury-timeline .roby-luxury-day:nth-child(3n+2) .roby-luxury-rail-dot,
  .roby-luxury-timeline .roby-luxury-day:nth-child(3n+3) .roby-luxury-rail-dot{
    width:14px !important;
    height:14px !important;
  }
}


/* Robylinks Safari Itinerary v1.9.39.85
   Luxury Timeline only: remove the large gap between day number and title.
   Classic Split is untouched.
*/
.roby-luxury-timeline .roby-luxury-day-head{
  grid-template-columns:auto minmax(0,1fr) !important;
  gap:0 !important;
}

.roby-luxury-timeline .roby-luxury-number-wrap{
  width:auto !important;
  min-width:0 !important;
  padding-right:28px !important;
}

.roby-luxury-timeline .roby-luxury-title-wrap{
  margin-left:0 !important;
  padding-left:28px !important;
}

@media(max-width:640px){
  .roby-luxury-timeline .roby-luxury-number-wrap{
    padding-right:16px !important;
  }

  .roby-luxury-timeline .roby-luxury-title-wrap{
    padding-left:16px !important;
  }
}


/* Robylinks Safari Itinerary v1.9.39.87
   Luxury Timeline only: premium gallery trigger.
   Reuses the exact existing Classic Split accommodation lightbox.
*/
.roby-luxury-timeline .roby-luxury-accommodation-main{
  overflow:hidden;
}

.roby-luxury-timeline .roby-luxury-gallery-plus{
  position:absolute;
  top:14px;
  right:14px;
  z-index:6;
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  box-shadow:0 3px 12px rgba(0,0,0,.16);
  pointer-events:none;
  transition:transform .2s ease, background-color .2s ease;
}

.roby-luxury-timeline .roby-luxury-gallery-plus::before,
.roby-luxury-timeline .roby-luxury-gallery-plus::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  background:#111;
  transform:translate(-50%,-50%);
}

.roby-luxury-timeline .roby-luxury-gallery-plus::before{
  width:14px;
  height:2px;
}

.roby-luxury-timeline .roby-luxury-gallery-plus::after{
  width:2px;
  height:14px;
}

.roby-luxury-timeline .roby-luxury-accommodation-main:hover .roby-luxury-gallery-plus{
  transform:scale(1.07);
  background:#fff;
}

.roby-luxury-timeline .roby-luxury-accommodation-thumb{
  position:relative;
}

.roby-luxury-timeline .roby-luxury-accommodation-thumb::after{
  content:"+";
  position:absolute;
  right:6px;
  bottom:6px;
  display:flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:50%;
  background:rgba(255,255,255,.92);
  color:#111;
  font-size:15px;
  line-height:1;
  font-weight:600;
  pointer-events:none;
}

@media(max-width:640px){
  .roby-luxury-timeline .roby-luxury-gallery-plus{
    width:34px;
    height:34px;
    top:10px;
    right:10px;
  }
}


/* Robylinks Safari Itinerary v1.9.39.88 — Day badge on Luxury Timeline day image */
.roby-luxury-timeline .roby-luxury-day-photo{position:relative}
.roby-luxury-timeline .roby-luxury-day-image-badge{
  position:absolute;top:14px;left:14px;z-index:5;
  display:inline-flex;align-items:center;min-height:34px;padding:0 12px;
  background:#111;color:#fff;font-size:12px;line-height:1;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;
}


/* Robylinks Safari Itinerary v1.9.39.95
   Luxury Timeline only:
   extend the two supporting accommodation photos to the lower-right edge
   of the main accommodation image.
*/
.roby-luxury-timeline .roby-luxury-accommodation-thumbs{
  right:0 !important;
  bottom:0 !important;
  width:min(64%,310px) !important;
  gap:0 !important;
}

.roby-luxury-timeline .roby-luxury-accommodation-thumb{
  border-width:2px 0 0 2px !important;
  box-shadow:none !important;
}

.roby-luxury-timeline .roby-luxury-accommodation-thumb:last-child{
  border-right:0 !important;
}

@media(max-width:640px){
  .roby-luxury-timeline .roby-luxury-accommodation-thumbs{
    right:0 !important;
    bottom:0 !important;
    width:min(70%,250px) !important;
    gap:0 !important;
  }
}


/* Robylinks Safari Itinerary v1.9.39.96
   Luxury Timeline only:
   - Day image and accommodation image equal height
   - 2 supporting accommodation images inset 10px from bottom/right
   - visible white borders
   - premium + gallery icons retained
   - Classic Split untouched
*/

/* Force both feature cards to share one equal row height. */
.roby-luxury-timeline .roby-luxury-feature-row{
  align-items:stretch !important;
}

.roby-luxury-timeline .roby-luxury-day-photo-card,
.roby-luxury-timeline .roby-luxury-accommodation-card{
  display:flex !important;
  min-width:0 !important;
  height:100% !important;
}

.roby-luxury-timeline .roby-luxury-day-photo,
.roby-luxury-timeline .roby-luxury-accommodation-feature{
  flex:1 1 auto !important;
  width:100% !important;
  height:100% !important;
  min-height:340px !important;
  aspect-ratio:16 / 10 !important;
  overflow:hidden !important;
}

.roby-luxury-timeline .roby-luxury-day-photo > img,
.roby-luxury-timeline .roby-luxury-accommodation-main,
.roby-luxury-timeline .roby-luxury-accommodation-main > img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}

/* Two supporting accommodation images: inset cleanly inside the main image. */
.roby-luxury-timeline .roby-luxury-accommodation-thumbs{
  position:absolute !important;
  right:10px !important;
  bottom:10px !important;
  z-index:7 !important;
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:8px !important;
  width:min(58%,290px) !important;
  padding:0 !important;
  margin:0 !important;
}

/* White border clearly visible around both small images. */
.roby-luxury-timeline .roby-luxury-accommodation-thumb{
  position:relative !important;
  display:block !important;
  width:100% !important;
  aspect-ratio:4 / 3 !important;
  padding:0 !important;
  margin:0 !important;
  overflow:hidden !important;
  border:2px solid #fff !important;
  border-radius:5px !important;
  background:#eee !important;
  box-shadow:0 2px 8px rgba(0,0,0,.18) !important;
}

.roby-luxury-timeline .roby-luxury-accommodation-thumb img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}

/* Premium + button on the main accommodation image. */
.roby-luxury-timeline .roby-luxury-gallery-plus{
  top:14px !important;
  right:14px !important;
  width:36px !important;
  height:36px !important;
  border:2px solid rgba(255,255,255,.95) !important;
  background:rgba(17,17,17,.72) !important;
  box-shadow:0 2px 8px rgba(0,0,0,.20) !important;
}

.roby-luxury-timeline .roby-luxury-gallery-plus::before,
.roby-luxury-timeline .roby-luxury-gallery-plus::after{
  background:#fff !important;
}

/* Premium + button on each supporting accommodation image. */
.roby-luxury-timeline .roby-luxury-accommodation-thumb::after{
  content:"+" !important;
  position:absolute !important;
  right:7px !important;
  bottom:7px !important;
  z-index:4 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:24px !important;
  height:24px !important;
  border:2px solid rgba(255,255,255,.95) !important;
  border-radius:50% !important;
  background:rgba(17,17,17,.72) !important;
  color:#fff !important;
  font-size:16px !important;
  line-height:1 !important;
  font-weight:500 !important;
  pointer-events:none !important;
}

@media(max-width:900px){
  .roby-luxury-timeline .roby-luxury-day-photo,
  .roby-luxury-timeline .roby-luxury-accommodation-feature{
    min-height:300px !important;
  }
}

@media(max-width:640px){
  .roby-luxury-timeline .roby-luxury-day-photo,
  .roby-luxury-timeline .roby-luxury-accommodation-feature{
    min-height:240px !important;
    aspect-ratio:4 / 3 !important;
  }

  .roby-luxury-timeline .roby-luxury-accommodation-thumbs{
    right:8px !important;
    bottom:8px !important;
    width:min(68%,230px) !important;
    gap:6px !important;
  }
}


/* Robylinks Safari Itinerary v1.9.39.97
   Luxury Timeline only:
   exact equal-height feature panels + fully visible thumbnail borders.
*/
.roby-luxury-timeline .roby-luxury-feature-row{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  align-items:stretch !important;
}

.roby-luxury-timeline .roby-luxury-feature-card{
  display:block !important;
  height:100% !important;
}

.roby-luxury-timeline .roby-luxury-day-photo,
.roby-luxury-timeline .roby-luxury-accommodation-feature{
  position:relative !important;
  width:100% !important;
  height:420px !important;
  min-height:420px !important;
  max-height:420px !important;
  aspect-ratio:auto !important;
  overflow:hidden !important;
}

.roby-luxury-timeline .roby-luxury-day-photo > img,
.roby-luxury-timeline .roby-luxury-accommodation-main,
.roby-luxury-timeline .roby-luxury-accommodation-main > img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:center !important;
}

/* Keep both small images comfortably inside the main image boundary. */
.roby-luxury-timeline .roby-luxury-accommodation-thumbs{
  right:12px !important;
  bottom:12px !important;
  width:min(56%,286px) !important;
  gap:8px !important;
  padding:0 !important;
  box-sizing:border-box !important;
}

.roby-luxury-timeline .roby-luxury-accommodation-thumb{
  box-sizing:border-box !important;
  border:2px solid #fff !important;
  border-radius:5px !important;
  overflow:hidden !important;
}

/* Ensure the outer-right white border is never clipped. */
.roby-luxury-timeline .roby-luxury-accommodation-thumb:last-child{
  margin-right:0 !important;
  border-right:2px solid #fff !important;
}

@media(max-width:1100px){
  .roby-luxury-timeline .roby-luxury-day-photo,
  .roby-luxury-timeline .roby-luxury-accommodation-feature{
    height:360px !important;
    min-height:360px !important;
    max-height:360px !important;
  }
}

@media(max-width:900px){
  .roby-luxury-timeline .roby-luxury-feature-row{
    grid-template-columns:1fr !important;
  }

  .roby-luxury-timeline .roby-luxury-day-photo,
  .roby-luxury-timeline .roby-luxury-accommodation-feature{
    height:340px !important;
    min-height:340px !important;
    max-height:340px !important;
  }
}

@media(max-width:640px){
  .roby-luxury-timeline .roby-luxury-day-photo,
  .roby-luxury-timeline .roby-luxury-accommodation-feature{
    height:260px !important;
    min-height:260px !important;
    max-height:260px !important;
  }

  .roby-luxury-timeline .roby-luxury-accommodation-thumbs{
    right:8px !important;
    bottom:8px !important;
    width:min(68%,230px) !important;
    gap:6px !important;
  }
}

/* v1.9.39.99 — Note Layout. Accommodation and meals intentionally omitted. */
.roby-note-layout{max-width:1320px;margin:0 auto;padding:12px 0 28px}
.roby-note-heading{margin:0 0 28px}.roby-note-heading>span{font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.roby-note-heading h2{margin:5px 0 0}
.roby-note-days{position:relative}.roby-note-days:before{content:"";position:absolute;left:78px;top:42px;bottom:42px;width:1px;background:#bfc5c2}
.roby-note-day{position:relative;display:grid;grid-template-columns:78px minmax(0,1fr);column-gap:36px;padding-bottom:28px}
.roby-note-side{grid-column:1;grid-row:1/span 2;text-align:center;padding-top:18px;position:relative}.roby-note-day-word{display:block;font-size:11px;font-weight:800;letter-spacing:.08em}.roby-note-side strong{display:block;font-size:34px;line-height:1;font-weight:800;margin-top:3px}
.roby-note-dot{position:absolute;right:-8px;top:39px;width:15px;height:15px;border-radius:50%;background:#0d4b3e;z-index:4}
.roby-note-summary{grid-column:2;width:100%;min-height:96px;padding:18px 24px;border:1px solid #e8e8e8;border-radius:7px;background:#fff;box-shadow:0 5px 18px rgba(0,0,0,.055);display:flex;align-items:center;gap:17px;text-align:left;color:inherit;font:inherit;cursor:pointer}
.roby-note-day.is-open .roby-note-summary{display:none}.roby-note-icon{width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#0d4b3e;color:#fff;display:inline-flex;align-items:center;justify-content:center}
.roby-note-summary-text{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.roby-note-summary-text>strong{font-size:18px}.roby-note-summary-text small{font-size:14px;line-height:1.5;opacity:.78}.roby-note-arrow{font-size:24px}
.roby-note-detail{grid-column:2;display:none}.roby-note-day.is-open .roby-note-detail{display:block}
.roby-note-feature{display:grid;grid-template-columns:minmax(320px,.88fr) minmax(0,1.12fr);min-height:430px;border:1px solid #e8e8e8;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.07)}.roby-note-feature.no-image{grid-template-columns:1fr}
.roby-note-image{position:relative;min-height:430px;overflow:hidden}.roby-note-image img{display:block;width:100%;height:100%;object-fit:cover}.roby-note-image>span{position:absolute;top:16px;left:16px;background:#111;color:#fff;padding:9px 12px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.roby-note-content{padding:34px 38px;align-self:center}.roby-note-title{display:flex;gap:16px;align-items:flex-start;margin-bottom:20px}.roby-note-title h3{margin:2px 0 0;font-family:var(--safari-hub-heading-font,inherit)}
.roby-note-story{font-family:var(--safari-hub-body-font,inherit)}.roby-note-activities{margin-top:24px;padding-top:20px;border-top:1px solid #ececec}.roby-note-activities h4{margin:0 0 12px}.roby-note-activities ul,.roby-note-activities ol{padding-left:22px}.roby-note-activities li{margin:7px 0}
@media(max-width:900px){.roby-note-days:before{left:52px}.roby-note-day{grid-template-columns:52px minmax(0,1fr);column-gap:20px}.roby-note-dot{right:-8px}.roby-note-side strong{font-size:26px}.roby-note-feature{grid-template-columns:1fr}.roby-note-image{min-height:320px}}
@media(max-width:600px){.roby-note-days:before,.roby-note-dot{display:none}.roby-note-day{display:block}.roby-note-side{text-align:left;padding:0 0 8px}.roby-note-day-word,.roby-note-side strong{display:inline;font-size:13px;margin-right:4px}.roby-note-summary{padding:15px}.roby-note-content{padding:24px 20px}.roby-note-image{min-height:250px}}


/* Robylinks Safari Itinerary v1.9.40.00 — Note Layout refinements only */
.roby-note-layout .roby-note-summary{
  transition:background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.roby-note-layout .roby-note-summary:hover,
.roby-note-layout .roby-note-summary:focus-visible{
  background:#f4eee1 !important;
}

/* Expanded content title has no icon; icon remains on the collapsed tab. */
.roby-note-layout .roby-note-title{
  display:block !important;
}

.roby-note-layout .roby-note-title h3{
  margin:0 !important;
}


/* v1.9.40.01 — Note Layout tab hover text */
.roby-note-layout .roby-note-summary:hover,
.roby-note-layout .roby-note-summary:focus-visible,
.roby-note-layout .roby-note-summary:hover .roby-note-summary-text,
.roby-note-layout .roby-note-summary:hover .roby-note-summary-text strong,
.roby-note-layout .roby-note-summary:hover .roby-note-summary-text small,
.roby-note-layout .roby-note-summary:hover .roby-note-arrow,
.roby-note-layout .roby-note-summary:focus-visible .roby-note-summary-text,
.roby-note-layout .roby-note-summary:focus-visible .roby-note-summary-text strong,
.roby-note-layout .roby-note-summary:focus-visible .roby-note-summary-text small,
.roby-note-layout .roby-note-summary:focus-visible .roby-note-arrow{
  color:#000 !important;
}


/* v1.9.40.02 — Note Layout: clean + icon on collapsed tabs only */
.roby-note-layout .roby-note-summary .roby-note-plus-icon{
  position:relative !important;
  width:28px !important;
  height:28px !important;
  flex:0 0 28px !important;
  border:1.5px solid currentColor !important;
  border-radius:50% !important;
  background:transparent !important;
  color:#111 !important;
}

.roby-note-layout .roby-note-summary .roby-note-plus-icon::before,
.roby-note-layout .roby-note-summary .roby-note-plus-icon::after{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  background:currentColor !important;
  transform:translate(-50%,-50%) !important;
  border-radius:1px !important;
}

.roby-note-layout .roby-note-summary .roby-note-plus-icon::before{
  width:10px !important;
  height:1.5px !important;
}

.roby-note-layout .roby-note-summary .roby-note-plus-icon::after{
  width:1.5px !important;
  height:10px !important;
}

/* Keep the + black on the cream hover state. */
.roby-note-layout .roby-note-summary:hover .roby-note-plus-icon,
.roby-note-layout .roby-note-summary:focus-visible .roby-note-plus-icon{
  color:#000 !important;
}


/* v1.9.40.03 — force a real visible + icon in Note Layout tabs */
.roby-note-layout .roby-note-summary .roby-note-plus-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  flex:0 0 30px !important;
  padding:0 !important;
  border:1.5px solid #111 !important;
  border-radius:50% !important;
  background:transparent !important;
  color:#111 !important;
  font-family:Arial,sans-serif !important;
  font-size:22px !important;
  font-weight:300 !important;
  line-height:1 !important;
  text-indent:0 !important;
}

/* Disable the older pseudo-element drawing so only the real + is visible. */
.roby-note-layout .roby-note-summary .roby-note-plus-icon::before,
.roby-note-layout .roby-note-summary .roby-note-plus-icon::after{
  content:none !important;
  display:none !important;
}

.roby-note-layout .roby-note-summary:hover .roby-note-plus-icon,
.roby-note-layout .roby-note-summary:focus-visible .roby-note-plus-icon{
  color:#000 !important;
  border-color:#000 !important;
  background:transparent !important;
}


/* =========================================================
   Robylinks Safari Itinerary v1.9.40.04
   Responsive refinement — Classic Split, Luxury Timeline,
   Note Layout. Desktop appearance intentionally preserved.
   ========================================================= */

/* Global protection against horizontal overflow */
.safari-hub-itinerary,
.safari-hub-itinerary *,
.roby-note-layout,
.roby-note-layout *{
  box-sizing:border-box;
}

.safari-hub-itinerary,
.roby-note-layout{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

.safari-hub-itinerary img,
.roby-note-layout img{
  max-width:100%;
}

/* ---------- TABLETS / SMALL LAPTOPS ---------- */
@media (max-width:1024px){

  /* Classic Split */
  .safari-hub-itinerary .roby-itinerary-layout{
    gap:24px !important;
  }

  .safari-hub-itinerary .roby-itinerary-content{
    max-height:none !important;
    min-height:0 !important;
  }

  .safari-hub-itinerary .roby-itinerary-day{
    column-gap:20px !important;
  }

  .safari-hub-itinerary .roby-day-marker{
    min-width:0 !important;
  }

  .safari-hub-itinerary h3.roby-day-big-number{
    font-size:40px !important;
  }

  .safari-hub-itinerary .roby-right-column,
  .safari-hub-itinerary .roby-day-visual{
    min-width:0 !important;
  }

  /* Luxury Timeline */
  .roby-luxury-timeline{
    width:100% !important;
  }

  .roby-luxury-timeline .roby-luxury-day{
    grid-template-columns:90px minmax(0,1fr) !important;
    column-gap:24px !important;
  }

  .roby-luxury-timeline .roby-luxury-feature-row{
    gap:16px !important;
  }

  .roby-luxury-timeline .roby-luxury-day-photo,
  .roby-luxury-timeline .roby-luxury-accommodation-feature{
    height:350px !important;
    min-height:350px !important;
    max-height:350px !important;
  }

  .roby-luxury-timeline .roby-luxury-accommodation-thumbs{
    width:min(60%,260px) !important;
  }

  /* Note Layout */
  .roby-note-layout .roby-note-day{
    grid-template-columns:66px minmax(0,1fr) !important;
    column-gap:24px !important;
  }

  .roby-note-layout .roby-note-days::before{
    left:66px !important;
  }

  .roby-note-layout .roby-note-dot{
    right:-8px !important;
  }

  .roby-note-layout .roby-note-feature{
    grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr) !important;
  }

  .roby-note-layout .roby-note-content{
    padding:28px !important;
  }
}

/* ---------- TABLETS ---------- */
@media (max-width:900px){

  /* Classic Split becomes single-column cleanly */
  .safari-hub-itinerary .roby-itinerary-layout{
    display:block !important;
    min-height:0 !important;
  }

  .safari-hub-itinerary .roby-itinerary-content{
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    min-height:0 !important;
    overflow:visible !important;
    padding-right:0 !important;
  }

  .safari-hub-itinerary .roby-right-column{
    width:100% !important;
    margin-top:24px !important;
    position:relative !important;
    top:auto !important;
  }

  .safari-hub-itinerary .roby-itinerary-day{
    grid-template-columns:88px minmax(0,1fr) !important;
    column-gap:18px !important;
    row-gap:18px !important;
  }

  .safari-hub-itinerary .roby-day-left-section{
    margin-top:14px !important;
  }

  /* Classic tabs stay usable */
  .safari-hub-itinerary .roby-itinerary-tabs{
    overflow-x:auto !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }

  .safari-hub-itinerary .roby-itinerary-tabs::-webkit-scrollbar{
    display:none;
  }

  .safari-hub-itinerary .roby-itinerary-tabs > *{
    flex:0 0 auto !important;
  }

  /* Luxury Timeline */
  .roby-luxury-timeline .roby-luxury-day{
    grid-template-columns:76px minmax(0,1fr) !important;
    column-gap:18px !important;
  }

  .roby-luxury-timeline .roby-luxury-feature-row{
    grid-template-columns:1fr !important;
  }

  .roby-luxury-timeline .roby-luxury-day-photo,
  .roby-luxury-timeline .roby-luxury-accommodation-feature{
    height:360px !important;
    min-height:360px !important;
    max-height:360px !important;
  }

  .roby-luxury-timeline .roby-luxury-number-wrap{
    padding-right:14px !important;
  }

  .roby-luxury-timeline .roby-luxury-title-wrap{
    padding-left:14px !important;
  }

  /* Note Layout */
  .roby-note-layout .roby-note-feature{
    grid-template-columns:1fr !important;
  }

  .roby-note-layout .roby-note-image{
    min-height:320px !important;
    height:320px !important;
  }

  .roby-note-layout .roby-note-content{
    padding:26px 24px !important;
  }
}

/* ---------- SMARTPHONES / PORTRAIT TABLETS ---------- */
@media (max-width:767px){

  .safari-hub-itinerary,
  .roby-luxury-timeline,
  .roby-note-layout{
    padding-left:0 !important;
    padding-right:0 !important;
  }

  /* Classic Split */
  .safari-hub-itinerary .roby-itinerary-day{
    display:grid !important;
    grid-template-columns:64px minmax(0,1fr) !important;
    column-gap:14px !important;
    row-gap:14px !important;
  }

  .safari-hub-itinerary h3.roby-day-big-number{
    font-size:34px !important;
    letter-spacing:-.5px !important;
  }

  .safari-hub-itinerary .roby-day-marker.roby-day-number-block{
    padding-left:0 !important;
  }

  .safari-hub-itinerary .roby-day-title,
  .safari-hub-itinerary .roby-day-text,
  .safari-hub-itinerary .roby-day-left-section{
    min-width:0 !important;
  }

  .safari-hub-itinerary .roby-day-text img{
    height:auto !important;
  }

  .safari-hub-itinerary .roby-accommodation-gallery,
  .safari-hub-itinerary .roby-day-visual{
    width:100% !important;
  }

  /* Luxury Timeline */
  .roby-luxury-timeline .roby-luxury-day{
    grid-template-columns:56px minmax(0,1fr) !important;
    column-gap:12px !important;
  }

  .roby-luxury-timeline .roby-luxury-day-head{
    display:block !important;
  }

  .roby-luxury-timeline .roby-luxury-number-wrap{
    width:auto !important;
    padding:0 0 10px !important;
  }

  .roby-luxury-timeline .roby-luxury-title-wrap{
    margin:0 !important;
    padding:0 !important;
  }

  .roby-luxury-timeline .roby-luxury-day-photo,
  .roby-luxury-timeline .roby-luxury-accommodation-feature{
    height:300px !important;
    min-height:300px !important;
    max-height:300px !important;
  }

  .roby-luxury-timeline .roby-luxury-accommodation-thumbs{
    right:8px !important;
    bottom:8px !important;
    width:min(70%,230px) !important;
    gap:6px !important;
  }

  .roby-luxury-timeline .roby-luxury-accommodation-thumb{
    border-width:2px !important;
  }

  .roby-luxury-timeline .roby-luxury-gallery-plus{
    width:32px !important;
    height:32px !important;
  }

  /* Note Layout */
  .roby-note-layout .roby-note-day{
    grid-template-columns:52px minmax(0,1fr) !important;
    column-gap:14px !important;
    padding-bottom:20px !important;
  }

  .roby-note-layout .roby-note-days::before{
    left:52px !important;
  }

  .roby-note-layout .roby-note-side strong{
    font-size:24px !important;
  }

  .roby-note-layout .roby-note-summary{
    min-height:84px !important;
    padding:14px 16px !important;
    gap:12px !important;
  }

  .roby-note-layout .roby-note-summary-text > strong{
    font-size:16px !important;
  }

  .roby-note-layout .roby-note-summary-text small{
    font-size:13px !important;
  }

  .roby-note-layout .roby-note-image{
    min-height:280px !important;
    height:280px !important;
  }

  .roby-note-layout .roby-note-content{
    padding:22px 18px !important;
  }

  .roby-note-layout .roby-note-title h3{
    overflow-wrap:anywhere;
  }
}

/* ---------- SMALL SMARTPHONES ---------- */
@media (max-width:560px){

  /* Classic Split */
  .safari-hub-itinerary .roby-itinerary-day{
    grid-template-columns:1fr !important;
    display:block !important;
    padding-bottom:28px !important;
  }

  .safari-hub-itinerary .roby-day-marker{
    margin-bottom:12px !important;
  }

  .safari-hub-itinerary h3.roby-day-big-number{
    display:inline-block !important;
    font-size:32px !important;
    margin-right:8px !important;
  }

  .safari-hub-itinerary .roby-itinerary-tabs{
    margin-left:-1px !important;
    margin-right:-1px !important;
  }

  .safari-hub-itinerary .roby-day-meals-row{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px 14px !important;
  }

  /* Luxury Timeline: remove rail squeeze and stack naturally */
  .roby-luxury-timeline .roby-luxury-day{
    display:block !important;
    padding-left:0 !important;
  }

  .roby-luxury-timeline .roby-luxury-day::before,
  .roby-luxury-timeline .roby-luxury-day::after,
  .roby-luxury-timeline .roby-luxury-dot{
    display:none !important;
  }

  .roby-luxury-timeline .roby-luxury-day-photo,
  .roby-luxury-timeline .roby-luxury-accommodation-feature{
    height:240px !important;
    min-height:240px !important;
    max-height:240px !important;
  }

  .roby-luxury-timeline .roby-luxury-accommodation-thumbs{
    width:min(72%,210px) !important;
  }

  .roby-luxury-timeline .roby-luxury-accommodation-thumb::after{
    width:21px !important;
    height:21px !important;
    font-size:14px !important;
    right:5px !important;
    bottom:5px !important;
  }

  /* Note Layout simplified for phones */
  .roby-note-layout .roby-note-days::before,
  .roby-note-layout .roby-note-dot{
    display:none !important;
  }

  .roby-note-layout .roby-note-day{
    display:block !important;
  }

  .roby-note-layout .roby-note-side{
    text-align:left !important;
    padding:0 0 8px !important;
  }

  .roby-note-layout .roby-note-day-word,
  .roby-note-layout .roby-note-side strong{
    display:inline-block !important;
    vertical-align:baseline !important;
    margin-right:5px !important;
  }

  .roby-note-layout .roby-note-side strong{
    font-size:18px !important;
  }

  .roby-note-layout .roby-note-summary{
    width:100% !important;
    border-radius:6px !important;
  }

  .roby-note-layout .roby-note-summary .roby-note-plus-icon{
    width:26px !important;
    height:26px !important;
    min-width:26px !important;
    flex-basis:26px !important;
    font-size:19px !important;
  }

  .roby-note-layout .roby-note-image{
    min-height:230px !important;
    height:230px !important;
  }

  .roby-note-layout .roby-note-image > span{
    top:10px !important;
    left:10px !important;
    padding:7px 9px !important;
  }

  .roby-note-layout .roby-note-content{
    padding:20px 16px !important;
  }
}

/* ---------- VERY SMALL PHONES ---------- */
@media (max-width:380px){
  .roby-luxury-timeline .roby-luxury-day-photo,
  .roby-luxury-timeline .roby-luxury-accommodation-feature{
    height:210px !important;
    min-height:210px !important;
    max-height:210px !important;
  }

  .roby-note-layout .roby-note-image{
    height:205px !important;
    min-height:205px !important;
  }

  .roby-note-layout .roby-note-summary{
    padding:12px !important;
  }

  .roby-note-layout .roby-note-summary-text small{
    display:none !important;
  }
}


/* v1.13.9 — Custom body typography enforcement */
.safari-hub-itinerary,
.safari-hub-itinerary p,
.safari-hub-itinerary li,
.safari-hub-itinerary ul,
.safari-hub-itinerary ol,
.safari-hub-itinerary .roby-content,
.safari-hub-itinerary .roby-activities,
.safari-hub-itinerary .roby-meals,
.safari-hub-itinerary .roby-accommodation,
.roby-luxury-timeline,
.roby-luxury-timeline p,
.roby-luxury-timeline li,
.roby-note-layout,
.roby-note-layout p,
.roby-note-layout li {
    font-family: var(--safari-custom-body-font, var(--safari-admin-body-font, inherit)) !important;
}


/* v1.13.10 — final custom body font authority */
.safari-hub-itinerary[data-typography-mode="custom"],
.safari-hub-itinerary[data-typography-mode="custom"] p,
.safari-hub-itinerary[data-typography-mode="custom"] li,
.safari-hub-itinerary[data-typography-mode="custom"] ul,
.safari-hub-itinerary[data-typography-mode="custom"] ol,
.safari-hub-itinerary[data-typography-mode="custom"] a,
.safari-hub-itinerary[data-typography-mode="custom"] button,
.safari-hub-itinerary[data-typography-mode="custom"] span:not(.roby-day-big-number):not(.roby-luxury-number),
.safari-hub-itinerary[data-typography-mode="custom"] .roby-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-itinerary-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-meals,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-accommodation {
    font-family: var(--safari-custom-body-font, var(--safari-hub-body-font, inherit)) !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.11
   SINGLE AUTHORITATIVE CUSTOM TYPOGRAPHY SYSTEM
   In custom mode these rules intentionally outrank all legacy
   theme/site typography donors.
   ========================================================== */

/* BODY FONT: descriptions, activities, tabs/navigation, meals,
   accommodation and normal interface/body copy. */
.safari-hub-itinerary[data-typography-mode="custom"],
.safari-hub-itinerary[data-typography-mode="custom"] p,
.safari-hub-itinerary[data-typography-mode="custom"] li,
.safari-hub-itinerary[data-typography-mode="custom"] ul,
.safari-hub-itinerary[data-typography-mode="custom"] ol,
.safari-hub-itinerary[data-typography-mode="custom"] blockquote,
.safari-hub-itinerary[data-typography-mode="custom"] a,
.safari-hub-itinerary[data-typography-mode="custom"] button,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-tab-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-tab-circle,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-accommodation-name,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-meals,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-day,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-day {
    font-family: var(--roby-font-body, inherit) !important;
}

/* MAIN HEADING FONT: itinerary main title/day title and primary
   heading presentation. */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-itinerary-heading,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-main-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-big-number,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-small-label,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-heading h2,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-title-wrap h3,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-number,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-heading h2,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-title h3 {
    font-family: var(--roby-font-heading, var(--roby-font-body, inherit)) !important;
}

/* OTHER HEADINGS: headings created inside itinerary/activity content. */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text h1,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text h2,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text h3,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text h4,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text h5,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text h6,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content h1,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content h2,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content h3,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content h4,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content h5,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content h6,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-heading,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-visual-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities h4 {
    font-family: var(--roby-font-other-heading, var(--roby-font-heading, var(--roby-font-body, inherit))) !important;
}

/* Legacy site-donor flags must have no typography authority in custom mode. */
.safari-hub-itinerary[data-typography-mode="custom"][data-site-family-ready="1"] {
    --safari-site-body-family: var(--roby-font-body, inherit);
    --safari-site-h1-family: var(--roby-font-other-heading, var(--roby-font-heading, inherit));
    --safari-site-h2-family: var(--roby-font-other-heading, var(--roby-font-heading, inherit));
    --safari-site-h3-family: var(--roby-font-heading, inherit);
    --safari-site-h4-family: var(--roby-font-other-heading, var(--roby-font-heading, inherit));
    --safari-site-h5-family: var(--roby-font-other-heading, var(--roby-font-heading, inherit));
    --safari-site-h6-family: var(--roby-font-other-heading, var(--roby-font-heading, inherit));
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.12
   CUSTOM BODY FAMILY + REAL WEBSITE BODY METRICS
   ========================================================== */
.safari-hub-itinerary[data-typography-mode="custom"],
.safari-hub-itinerary[data-typography-mode="custom"] p,
.safari-hub-itinerary[data-typography-mode="custom"] li,
.safari-hub-itinerary[data-typography-mode="custom"] ul,
.safari-hub-itinerary[data-typography-mode="custom"] ol,
.safari-hub-itinerary[data-typography-mode="custom"] blockquote,
.safari-hub-itinerary[data-typography-mode="custom"] a,
.safari-hub-itinerary[data-typography-mode="custom"] button,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-accommodation-name,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-meals,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story {
    font-family: var(--roby-font-body, inherit) !important;
    font-size: var(--safari-body-size, inherit) !important;
    font-weight: var(--safari-body-weight, inherit) !important;
    line-height: var(--safari-body-line-height, normal) !important;
    letter-spacing: var(--safari-body-letter-spacing, normal) !important;
    font-style: var(--safari-body-style, normal) !important;
}

/* Keep navigation compact: use body family/weight but preserve its established
   tab sizing/layout instead of forcing paragraph font-size onto the controls. */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-tab-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-tab-circle {
    font-family: var(--roby-font-body, inherit) !important;
    font-weight: var(--safari-body-weight, inherit) !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.13
   NORMAL BODY METRICS ONLY — no hero paragraph leakage
   ========================================================== */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text > p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text > ul,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text > ol,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text > blockquote,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content > p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content > ul,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content > ol,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story > p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story li {
    font-family: var(--roby-font-body, inherit) !important;
    font-size: var(--safari-body-size, 16px) !important;
    font-weight: var(--safari-body-weight, 400) !important;
    line-height: var(--safari-body-line-height, 1.6) !important;
    letter-spacing: var(--safari-body-letter-spacing, normal) !important;
    font-style: var(--safari-body-style, normal) !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.14
   ADMIN-CONTROLLED BODY TYPOGRAPHY — authoritative
   ========================================================== */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text ul,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text ol,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text blockquote,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content ul,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content ol,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-accommodation-name,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-meals,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story li {
    font-family: var(--roby-font-body, inherit) !important;
    font-size: var(--roby-body-size, 16px) !important;
    font-weight: var(--roby-body-weight, 400) !important;
    line-height: var(--roby-body-line-height, 1.6) !important;
    letter-spacing: var(--roby-body-letter-spacing, 0px) !important;
}

/* Navigation uses the selected body family/weight but keeps its established
   layout-specific size so journey tabs do not become oversized. */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-tab-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-tab-circle {
    font-family: var(--roby-font-body, inherit) !important;
    font-weight: var(--roby-body-weight, 400) !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.15
   COMPLETE TYPOGRAPHY CONTROL CENTER — final authority
   ========================================================== */

/* Main titles */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-main-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-itinerary-heading,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-heading h2,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-title-wrap h3,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-heading h2,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-title h3{
  font-family:var(--roby-font-heading,var(--roby-font-body,inherit)) !important;
  font-size:var(--roby-heading-size,34px) !important;
  font-weight:var(--roby-heading-weight,600) !important;
  line-height:var(--roby-heading-line-height,1.2) !important;
  letter-spacing:var(--roby-heading-letter-spacing,0px) !important;
}

/* Section headings */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-heading,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-visual-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities h4,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text h1,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text h2,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text h3,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text h4,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text h5,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text h6{
  font-family:var(--roby-font-other-heading,var(--roby-font-heading,inherit)) !important;
  font-size:var(--roby-other-heading-size,22px) !important;
  font-weight:var(--roby-other-heading-weight,600) !important;
  line-height:var(--roby-other-heading-line-height,1.3) !important;
  letter-spacing:var(--roby-other-heading-letter-spacing,0px) !important;
  color:var(--safari-other-heading-color,#171717);
}

/* Activity description text — explicitly separate from its heading */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content ul,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content ol,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content strong,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content b{
  font-family:var(--roby-font-activity,var(--roby-font-body,inherit)) !important;
  font-size:var(--roby-activity-size,var(--roby-body-size,16px)) !important;
  font-weight:var(--roby-activity-weight,var(--roby-body-weight,400)) !important;
  line-height:var(--roby-activity-line-height,var(--roby-body-line-height,1.6)) !important;
  letter-spacing:var(--roby-activity-letter-spacing,var(--roby-body-letter-spacing,0px)) !important;
}

/* Journey tabs */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-tab-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-tab-circle{
  font-family:var(--roby-font-tab,var(--roby-font-body,inherit)) !important;
  font-size:var(--roby-tab-size,16px) !important;
  font-weight:var(--roby-tab-weight,600) !important;
  letter-spacing:var(--roby-tab-letter-spacing,0px) !important;
}

/* Day number */
.safari-hub-itinerary[data-typography-mode="custom"] h3.roby-day-big-number,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-number{
  font-family:var(--roby-font-day-number,var(--roby-font-heading,inherit)) !important;
  font-size:var(--roby-day-number-size,58px) !important;
  font-weight:var(--roby-day-number-weight,600) !important;
}

/* Day label */
.safari-hub-itinerary[data-typography-mode="custom"] h3.roby-day-small-label,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-day-label{
  font-family:var(--roby-font-day-label,var(--roby-font-heading,inherit)) !important;
  font-size:var(--roby-day-label-size,11px) !important;
  font-weight:var(--roby-day-label-weight,600) !important;
  letter-spacing:var(--roby-day-label-letter-spacing,1.8px) !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.16
   WYSIWYG CONTENT = BODY TYPOGRAPHY
   Everything authored inside the Itinerary and Activities
   WYSIWYG editors uses the Body Text settings.
   ========================================================== */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text *,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content * {
    font-family: var(--roby-font-body, inherit) !important;
    font-size: var(--roby-body-size, 16px) !important;
    font-weight: var(--roby-body-weight, 400) !important;
    line-height: var(--roby-body-line-height, 1.6) !important;
    letter-spacing: var(--roby-body-letter-spacing, 0px) !important;
}

/* Preserve semantic emphasis without allowing an old heading/activities font
   system to replace the selected Body font. */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text strong,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text b,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content strong,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content b {
    font-family: var(--roby-font-body, inherit) !important;
}

/* The visible Activities section title is NOT WYSIWYG content, so it keeps
   the Section Headings typography. */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-heading {
    font-family: var(--roby-font-other-heading, var(--roby-font-heading, inherit)) !important;
    font-size: var(--roby-other-heading-size, 22px) !important;
    font-weight: var(--roby-other-heading-weight, 600) !important;
    line-height: var(--roby-other-heading-line-height, 1.3) !important;
    letter-spacing: var(--roby-other-heading-letter-spacing, 0px) !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.17
   CORRECT WYSIWYG BODY TYPOGRAPHY TARGETS
   The Classic layout uses .roby-day-activities-content,
   Luxury uses .roby-luxury-activities-copy, and Note uses
   .roby-note-activities. All WYSIWYG-authored content now
   follows Body Text typography.
   ========================================================== */

/* Classic Split — Itinerary WYSIWYG */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text *,

/* Classic Split — Activities WYSIWYG */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-activities-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-activities-content *,

/* Luxury Timeline — itinerary copy + activities WYSIWYG */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-day-copy,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-day-copy *,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-activities-copy,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-activities-copy *,

/* Note Layout — itinerary story */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story * {
    font-family: var(--roby-font-body, inherit) !important;
    font-size: var(--roby-body-size, 16px) !important;
    font-weight: var(--roby-body-weight, 400) !important;
    line-height: var(--roby-body-line-height, 1.6) !important;
    letter-spacing: var(--roby-body-letter-spacing, 0px) !important;
}

/* Note Layout activities: apply Body Text only to the actual WYSIWYG children,
   while the section title remains controlled by Section Headings. */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities > p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities > ul,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities > ol,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities > blockquote,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities > p *,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities > ul *,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities > ol *,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities > blockquote * {
    font-family: var(--roby-font-body, inherit) !important;
    font-size: var(--roby-body-size, 16px) !important;
    font-weight: var(--roby-body-weight, 400) !important;
    line-height: var(--roby-body-line-height, 1.6) !important;
    letter-spacing: var(--roby-body-letter-spacing, 0px) !important;
}

/* Section titles remain separate from WYSIWYG body content. */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-left-section-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-section-heading h4,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities > h4 {
    font-family: var(--roby-font-other-heading, var(--roby-font-heading, inherit)) !important;
    font-size: var(--roby-other-heading-size, 22px) !important;
    font-weight: var(--roby-other-heading-weight, 600) !important;
    line-height: var(--roby-other-heading-line-height, 1.3) !important;
    letter-spacing: var(--roby-other-heading-letter-spacing, 0px) !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.18
   TYPOGRAPHY COLOURS + NORMAL VISUAL LABELS
   ========================================================== */

/* Typography section colours */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-main-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-itinerary-heading,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-heading h2,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-title-wrap h3,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-heading h2,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-title h3{
    color:var(--roby-heading-color,#171717) !important;
}

.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text *,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-activities-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-activities-content *,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-day-copy,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-day-copy *,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-activities-copy,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-activities-copy *,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story *{
    color:var(--roby-body-color,#171717) !important;
}

.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-left-section-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-section-heading h4,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities > h4{
    color:var(--roby-section-heading-color,#171717) !important;
}

.safari-hub-itinerary[data-typography-mode="custom"] .roby-tab-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-tab-circle{
    color:var(--roby-tab-color,#171717);
}

.safari-hub-itinerary[data-typography-mode="custom"] h3.roby-day-big-number,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-number{
    color:var(--roby-day-number-color,#c98a12) !important;
}

.safari-hub-itinerary[data-typography-mode="custom"] h3.roby-day-small-label,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-day-label{
    color:var(--roby-day-label-color,#6f675f) !important;
}

/* Text under Safari Photo of Day */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-visual-title{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:400 !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-visual-label-color,#171717) !important;
    text-transform:none !important;
}

/* Text under Accommodation — normal Body font, but uppercase */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-accommodation-name{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:400 !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-visual-label-color,#171717) !important;
    text-transform:uppercase !important;
}
.safari-hub-itinerary[data-typography-mode="custom"] .roby-accommodation-name *{
    font:inherit !important;
    color:inherit !important;
    text-transform:uppercase !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.19
   CLASSIC SPLIT — PREMIUM ACTIVITIES CARD
   Classic only. Luxury Timeline and Note Layout untouched.
   ========================================================== */
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-activities{
    position:relative;
    margin-top:34px;
    padding:28px 30px 30px;
    overflow:hidden;
    border:1px solid rgba(23,23,23,.075);
    border-radius:8px;
    background:linear-gradient(135deg,rgba(244,238,225,.66) 0%,rgba(250,248,244,.94) 100%);
    box-shadow:0 10px 30px rgba(23,23,23,.035);
}

/* Fine premium accent — restrained, not decorative/heavy. */
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-activities::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:3px;
    height:100%;
    background:var(--safari-title-color,var(--roby-section-heading-color,#171717));
    opacity:.72;
}

/* Heading gets a compact accent rule and clear spacing. */
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-left-section-title{
    position:relative;
    display:flex;
    align-items:center;
    gap:12px;
    margin:0 0 18px !important;
    padding:0 !important;
    background:none !important;
    border:0 !important;
}
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-left-section-title::after{
    content:"";
    width:42px;
    height:1px;
    flex:0 0 42px;
    background:currentColor;
    opacity:.22;
}

/* WYSIWYG content stays governed entirely by Body Text settings. */
.safari-hub-itinerary[data-typography-mode="custom"]:not(.roby-layout-luxury):not(.roby-layout-note) .roby-day-activities-content,
.safari-hub-itinerary[data-typography-mode="custom"]:not(.roby-layout-luxury):not(.roby-layout-note) .roby-day-activities-content *{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-body-color,#171717) !important;
}
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-activities-content p:first-child{margin-top:0}
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-activities-content p:last-child{margin-bottom:0}
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-activities-content ul,
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-activities-content ol{
    margin-top:10px;
    margin-bottom:0;
    padding-left:20px;
}

/* Very restrained desktop interaction. */
@media (hover:hover) and (pointer:fine){
    .safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-activities{
        transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease;
    }
    .safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-activities:hover{
        border-color:rgba(23,23,23,.12);
        box-shadow:0 14px 34px rgba(23,23,23,.055);
        transform:translateY(-1px);
    }
}

/* Tablet/mobile remains compact and calm. */
@media (max-width:767px){
    .safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-activities{
        margin-top:26px;
        padding:22px 20px 23px;
        border-radius:7px;
        box-shadow:0 7px 22px rgba(23,23,23,.03);
    }
    .safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-left-section-title{
        gap:10px;
        margin-bottom:15px !important;
    }
    .safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-left-section-title::after{
        width:28px;
        flex-basis:28px;
    }
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.20
   CLASSIC SPLIT — COMPACT VISUAL GALLERY + ACTIVITY CARD
   ========================================================== */

/* CLASSIC: faint divider after Photo of Day label */
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-visual-title{
    margin-bottom:18px !important;
    padding-bottom:18px !important;
    border-bottom:1px solid rgba(23,23,23,.12) !important;
}

/* CLASSIC: compact two-photo accommodation gallery, centered beneath day image */
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-accommodation-gallery{
    width:min(86%,520px) !important;
    margin:0 auto !important;
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:12px !important;
    align-items:center !important;
    justify-content:center !important;
    max-height:none !important;
    overflow:visible !important;
}
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-accommodation-gallery.roby-gallery-count-1{
    grid-template-columns:minmax(0,1fr) !important;
    width:min(48%,260px) !important;
}
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-accommodation-gallery figure,
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-accommodation-gallery.roby-gallery-count-3 figure:first-child{
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    aspect-ratio:1.45/1 !important;
    grid-row:auto !important;
    margin:0 !important;
    border-radius:7px !important;
    overflow:hidden !important;
    background:#eee !important;
}
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-accommodation-gallery figure img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
}

/* CLASSIC: elegant, permanently visible + zoom control */
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-gallery-zoom{
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    right:auto !important;
    bottom:auto !important;
    width:42px !important;
    height:42px !important;
    display:grid !important;
    place-items:center !important;
    border:1px solid rgba(255,255,255,.78) !important;
    border-radius:50% !important;
    background:rgba(255,255,255,.94) !important;
    color:#171717 !important;
    font-family:Arial,sans-serif !important;
    font-size:27px !important;
    font-weight:300 !important;
    line-height:1 !important;
    box-shadow:0 7px 22px rgba(0,0,0,.16) !important;
    opacity:1 !important;
    transform:translate(-50%,-50%) !important;
    transition:transform .22s ease,background .22s ease,box-shadow .22s ease !important;
    pointer-events:none !important;
}
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-gallery-open:hover .roby-gallery-zoom,
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-gallery-open:focus-visible .roby-gallery-zoom{
    opacity:1 !important;
    transform:translate(-50%,-50%) scale(1.06) !important;
    background:#fff !important;
    box-shadow:0 9px 26px rgba(0,0,0,.20) !important;
}

/* CLASSIC: accommodation label centered under compact gallery */
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-accommodation-name{
    width:min(86%,520px) !important;
    margin:13px auto 0 !important;
    text-align:center !important;
}

/* CLASSIC: premium activity card — correct Classic markup target */
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-left-activities{
    position:relative !important;
    margin-top:34px !important;
    padding:27px 30px 29px !important;
    overflow:hidden !important;
    border:1px solid rgba(23,23,23,.075) !important;
    border-radius:8px !important;
    background:linear-gradient(135deg,rgba(244,238,225,.68),rgba(250,248,244,.95)) !important;
    box-shadow:0 10px 30px rgba(23,23,23,.035) !important;
}
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-left-activities::before{
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:3px;
    background:var(--roby-section-heading-color,var(--safari-title-color,#171717));
    opacity:.72;
}

/* No icon / decorative mark beside Safari Activities title. */
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-left-activities .roby-day-left-section-title{
    display:block !important;
    margin:0 0 17px !important;
    padding:0 !important;
    border:0 !important;
    background:none !important;
}
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-left-activities .roby-day-left-section-title::before,
.safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-left-activities .roby-day-left-section-title::after{
    content:none !important;
    display:none !important;
}

@media (hover:hover) and (pointer:fine){
    .safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-left-activities{
        transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease;
    }
    .safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-left-activities:hover{
        border-color:rgba(23,23,23,.12) !important;
        box-shadow:0 14px 34px rgba(23,23,23,.055) !important;
        transform:translateY(-1px);
    }
}

@media(max-width:767px){
    .safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-accommodation-gallery{
        width:100% !important;
        gap:8px !important;
    }
    .safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-accommodation-gallery.roby-gallery-count-1{
        width:70% !important;
    }
    .safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-gallery-zoom{
        width:36px !important;
        height:36px !important;
        font-size:23px !important;
    }
    .safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-accommodation-name{
        width:100% !important;
    }
    .safari-hub-itinerary:not(.roby-layout-luxury):not(.roby-layout-note):not(.roby-layout-cinematic-safari) .roby-day-left-activities{
        margin-top:26px !important;
        padding:22px 20px 23px !important;
    }
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.23
   CLASSIC — SMALL PHOTO HEIGHT ADJUSTMENT
   The right-column gallery remains fully inside the original
   Classic viewport. No gallery height or crop rules changed.
   ========================================================== */
@media(min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-day-image{
        height:var(--roby-classic-day-image-height,280px) !important;
        min-height:0 !important;
        max-height:none !important;
        aspect-ratio:auto !important;
        flex:0 0 auto !important;
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-day-image img{
        width:100% !important;
        height:100% !important;
        min-height:0 !important;
        object-position:var(--roby-classic-day-image-position,center center) !important;
    }
}

/* Keep mobile presentation compact and independent of desktop setting. */
@media(max-width:767px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-day-image{
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        aspect-ratio:16 / 9 !important;
    }
}

/* v1.13.24 — ADMIN TYPOGRAPHY APPLIES TO ALL LAYOUTS */

/* Main titles */
.safari-hub-itinerary :is(.roby-day-title,.roby-luxury-day-title,.roby-note-title){
font-family:var(--roby-heading-font)!important;font-size:var(--roby-heading-size)!important;font-weight:var(--roby-heading-weight)!important;line-height:var(--roby-heading-line-height)!important;letter-spacing:var(--roby-heading-letter-spacing)!important;color:var(--roby-heading-color)!important}

/* All WYSIWYG/body content */
.safari-hub-itinerary :is(.roby-day-text,.roby-day-activities-content,.roby-luxury-day-copy,.roby-luxury-activities-copy,.roby-note-story),
.safari-hub-itinerary :is(.roby-day-text,.roby-day-activities-content,.roby-luxury-day-copy,.roby-luxury-activities-copy,.roby-note-story) *,
.safari-hub-itinerary .roby-note-activities :is(p,ul,ol,blockquote,div),
.safari-hub-itinerary .roby-note-activities :is(p,ul,ol,blockquote,div) *{
font-family:var(--roby-body-font)!important;font-size:var(--roby-body-size)!important;font-weight:var(--roby-body-weight)!important;line-height:var(--roby-body-line-height)!important;letter-spacing:var(--roby-body-letter-spacing)!important;color:var(--roby-body-color)!important}

/* Section headings */
.safari-hub-itinerary :is(.roby-activities-title,.roby-luxury-activities-title,.roby-note-activities-title,.roby-meals-title,.roby-accommodation-title){
font-family:var(--roby-other-heading-font)!important;font-size:var(--roby-other-heading-size)!important;font-weight:var(--roby-other-heading-weight)!important;line-height:var(--roby-other-heading-line-height)!important;letter-spacing:var(--roby-other-heading-letter-spacing)!important;color:var(--roby-other-heading-color)!important}

/* Journey tabs */
.safari-hub-itinerary :is(.roby-tab,.roby-note-tab),
.safari-hub-itinerary :is(.roby-tab,.roby-note-tab) *{
font-family:var(--roby-tab-font)!important;font-size:var(--roby-tab-size)!important;font-weight:var(--roby-tab-weight)!important;letter-spacing:var(--roby-tab-letter-spacing)!important;color:var(--roby-tab-color)!important}

/* Day numbers */
.safari-hub-itinerary :is(.roby-day-number,.roby-luxury-day-number,.roby-note-day-number){
font-family:var(--roby-day-number-font)!important;font-size:var(--roby-day-number-size)!important;font-weight:var(--roby-day-number-weight)!important;color:var(--roby-day-number-color)!important}

/* Day labels */
.safari-hub-itinerary :is(.roby-day-label,.roby-luxury-day-label,.roby-note-day-label){
font-family:var(--roby-day-label-font)!important;font-size:var(--roby-day-label-size)!important;font-weight:var(--roby-day-label-weight)!important;letter-spacing:var(--roby-day-label-letter-spacing)!important;color:var(--roby-day-label-color)!important}

/* Photo/accommodation labels */
.safari-hub-itinerary :is(.roby-visual-title,.roby-accommodation-name,.roby-luxury-image-label,.roby-luxury-accommodation-name,.roby-note-image-label){
color:var(--roby-visual-label-color)!important}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.26
   LUXURY TIMELINE — EXACT BODY TYPOGRAPHY FIX
   Uses the actual Luxury Timeline markup/classes.
   ========================================================== */

/* Main itinerary WYSIWYG */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-copy,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-copy *,

/* Activities WYSIWYG */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-copy,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-copy *,

/* Meals/body text */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals *{
    font-family:var(--roby-body-font) !important;
    font-size:var(--roby-body-size) !important;
    font-weight:var(--roby-body-weight) !important;
    line-height:var(--roby-body-line-height) !important;
    letter-spacing:var(--roby-body-letter-spacing) !important;
    color:var(--roby-body-color) !important;
}

/* Luxury generated section headings keep Section Heading settings */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-section-heading{
    font-family:var(--roby-other-heading-font) !important;
    font-size:var(--roby-other-heading-size) !important;
    font-weight:var(--roby-other-heading-weight) !important;
    line-height:var(--roby-other-heading-line-height) !important;
    letter-spacing:var(--roby-other-heading-letter-spacing) !important;
    color:var(--roby-other-heading-color) !important;
}

/* Luxury main day heading */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-heading{
    font-family:var(--roby-heading-font) !important;
    font-size:var(--roby-heading-size) !important;
    font-weight:var(--roby-heading-weight) !important;
    line-height:var(--roby-heading-line-height) !important;
    letter-spacing:var(--roby-heading-letter-spacing) !important;
    color:var(--roby-heading-color) !important;
}

/* Luxury day number / label */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number{
    font-family:var(--roby-day-number-font) !important;
    font-size:var(--roby-day-number-size) !important;
    font-weight:var(--roby-day-number-weight) !important;
    color:var(--roby-day-number-color) !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-label,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-kicker{
    font-family:var(--roby-day-label-font) !important;
    font-size:var(--roby-day-label-size) !important;
    font-weight:var(--roby-day-label-weight) !important;
    letter-spacing:var(--roby-day-label-letter-spacing) !important;
    color:var(--roby-day-label-color) !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.27
   SECTION HEADINGS — NATURAL CASE ON ALL LAYOUTS
   ========================================================== */
.safari-hub-itinerary :is(
    .roby-activities-title,
    .roby-meals-title,
    .roby-accommodation-title,
    .roby-luxury-section-heading,
    .roby-luxury-activities-title,
    .roby-luxury-accommodation-title,
    .roby-luxury-meals-title,
    .roby-note-activities-title
){
    text-transform:none !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.28
   SEO HEADING TAGS — VISUAL STYLE STAYS CONTROLLED BY ADMIN
   ========================================================== */
.safari-hub-itinerary .roby-primary-itinerary-heading,
.safari-hub-itinerary .roby-day-title-heading{
    margin-top:0;
    margin-bottom:0;
}
.safari-hub-itinerary .roby-day-main-title.roby-day-title-heading,
.safari-hub-itinerary .roby-note-title .roby-day-title-heading,
.safari-hub-itinerary .roby-luxury-title-wrap .roby-day-title-heading{
    font-family:var(--roby-heading-font) !important;
    font-size:var(--roby-heading-size) !important;
    font-weight:var(--roby-heading-weight) !important;
    line-height:var(--roby-heading-line-height) !important;
    letter-spacing:var(--roby-heading-letter-spacing) !important;
    color:var(--roby-heading-color) !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.29
   LUXURY TIMELINE — SECTION HEADINGS NATURAL CAPITALIZATION
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-section-heading,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-section-heading h1,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-section-heading h2,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-section-heading h3,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-section-heading h4,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-section-heading h5,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-section-heading h6{
    text-transform:none !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.30
   LUXURY TIMELINE — DAY NUMBER & LABEL TYPOGRAPHY
   Uses the actual Timeline markup classes.
   ========================================================== */

/* Large 01 / 02 / 03 number */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number{
    font-family:var(--roby-day-number-font) !important;
    font-size:var(--roby-day-number-size) !important;
    font-weight:var(--roby-day-number-weight) !important;
    color:var(--roby-day-number-color) !important;
}

/* DAY 1 / DAY 2 label */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-label{
    font-family:var(--roby-day-label-font) !important;
    font-size:var(--roby-day-label-size) !important;
    font-weight:var(--roby-day-label-weight) !important;
    letter-spacing:var(--roby-day-label-letter-spacing) !important;
    color:var(--roby-day-label-color) !important;
}

/* Prevent inherited Timeline typography from overriding either element. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number *,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-label *{
    font-family:inherit !important;
    font-size:inherit !important;
    font-weight:inherit !important;
    letter-spacing:inherit !important;
    color:inherit !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.13.31
   LUXURY TIMELINE — DAY NUMBER & LABEL FONT FIX
   IMPORTANT: use the actual generated font variables:
   --roby-font-day-number and --roby-font-day-label.
   ========================================================== */

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number{
    font-family:var(--roby-font-day-number, var(--roby-font-heading, inherit)) !important;
    font-size:var(--roby-day-number-size) !important;
    font-weight:var(--roby-day-number-weight) !important;
    color:var(--roby-day-number-color) !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-label{
    font-family:var(--roby-font-day-label, var(--roby-font-heading, inherit)) !important;
    font-size:var(--roby-day-label-size) !important;
    font-weight:var(--roby-day-label-weight) !important;
    letter-spacing:var(--roby-day-label-letter-spacing) !important;
    color:var(--roby-day-label-color) !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number *,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-label *{
    font-family:inherit !important;
    font-size:inherit !important;
    font-weight:inherit !important;
    letter-spacing:inherit !important;
    color:inherit !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.14.1
   CLASSIC SPLIT — JOURNEY TAB TYPOGRAPHY
   The Classic markup uses .roby-tab-title and .roby-tab-circle.
   Apply the actual generated Journey Tabs variables directly.
   ========================================================== */

.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-day-tab .roby-tab-title{
    font-family:var(--roby-font-tab, var(--roby-font-body, inherit)) !important;
    font-size:var(--roby-tab-size,16px) !important;
    font-weight:var(--roby-tab-weight,600) !important;
    letter-spacing:var(--roby-tab-letter-spacing,0px) !important;
    color:var(--roby-tab-color, var(--safari-tab-title)) !important;
}

/* The round tab number belongs to Journey Tabs too. */
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-day-tab .roby-tab-circle{
    font-family:var(--roby-font-tab, var(--roby-font-body, inherit)) !important;
    font-size:var(--roby-tab-size,16px) !important;
    font-weight:var(--roby-tab-weight,600) !important;
    letter-spacing:var(--roby-tab-letter-spacing,0px) !important;
}

/* Keep the selected Journey Tab font authoritative after JS/site-font detection. */
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-day-tab .roby-tab-title,
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"][data-safari-fonts="ready"] .roby-day-tab .roby-tab-circle{
    font-family:var(--roby-font-tab, var(--roby-font-body, inherit)) !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.14.2
   CLASSIC SPLIT — CLEAN CONTINUOUS JOURNEY BAR
   ========================================================== */

/*
 * One continuous bar across the full Classic tab area.
 * Inactive tabs inherit the bar itself; only hover/active states
 * receive their configured backgrounds.
 */
.safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-nav-wrap,
.safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-nav,
.safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-nav-inner,
.safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-track,
.safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-track-wrap{
    background:var(--safari-journey-bar-bg) !important;
    min-height:74px !important;
    height:74px !important;
    border:0 !important;
    box-shadow:none !important;
}

/* Compact tabs, with no individual inactive card background. */
.safari-hub-itinerary.roby-layout-classic-split .roby-day-tab{
    min-height:74px !important;
    height:74px !important;
    padding:10px 16px !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
}

/* Hover and active colours continue to come directly from Settings. */
.safari-hub-itinerary.roby-layout-classic-split .roby-day-tab:hover:not(.is-active){
    background:var(--safari-tab-hover-bg) !important;
    border:0 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-day-tab.is-active{
    background:var(--safari-tab-active-bg) !important;
    border:0 !important;
}

/* Keep connectors inside exactly the same continuous bar. */
.safari-hub-itinerary.roby-layout-classic-split .roby-tab-connector{
    height:74px !important;
    min-height:74px !important;
    background:transparent !important;
    align-self:stretch !important;
}

/* Slightly more compact number circle to match the reduced bar height. */
.safari-hub-itinerary.roby-layout-classic-split .roby-tab-circle{
    width:44px !important;
    height:44px !important;
    flex-basis:44px !important;
}

/* Tablet */
@media (max-width:980px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-nav-wrap,
    .safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-nav,
    .safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-nav-inner,
    .safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-track,
    .safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-track-wrap,
    .safari-hub-itinerary.roby-layout-classic-split .roby-day-tab,
    .safari-hub-itinerary.roby-layout-classic-split .roby-tab-connector{
        min-height:68px !important;
        height:68px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-day-tab{
        padding:9px 13px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-tab-circle{
        width:40px !important;
        height:40px !important;
        flex-basis:40px !important;
    }
}

/* Mobile */
@media (max-width:767px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-nav-wrap,
    .safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-nav,
    .safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-nav-inner,
    .safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-track,
    .safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-track-wrap,
    .safari-hub-itinerary.roby-layout-classic-split .roby-day-tab,
    .safari-hub-itinerary.roby-layout-classic-split .roby-tab-connector{
        min-height:62px !important;
        height:62px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-day-tab{
        padding:8px 11px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-tab-circle{
        width:36px !important;
        height:36px !important;
        flex-basis:36px !important;
    }
}


/* Robylinks Safari Itinerary v1.14.3
   Classic Split: 10px breathing space below the Journey Tabs bar only. */
.safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-nav-wrap{
    margin-bottom:10px !important;
}


/* Robylinks Safari Itinerary v1.14.4
   Meals: normal font weight across every layout. */
.safari-hub-itinerary .roby-meals,
.safari-hub-itinerary .roby-meals *,
.safari-hub-itinerary .roby-luxury-meals,
.safari-hub-itinerary .roby-luxury-meals *,
.safari-hub-itinerary .roby-note-meals,
.safari-hub-itinerary .roby-note-meals *{
    font-weight:400 !important;
}


/* Robylinks Safari Itinerary v1.14.5
   Actual meal-name selectors across Classic and Luxury.
   Keep check/tick styling independent; only meal words are normal weight. */
.safari-hub-itinerary .roby-day-meals-row .roby-meal-item,
.safari-hub-itinerary .roby-day-meals-row .roby-meal-item .roby-meal-name,
.safari-hub-itinerary .roby-luxury-meals > span .roby-meal-name,
.safari-hub-itinerary .roby-luxury-meals > span strong{
    font-weight:400 !important;
}


/* ==========================================================
   Robylinks Safari Itinerary v1.14.6
   SAFARI ACTIVITIES — PREMIUM ICON GRID
   Existing WYSIWYG bullet lists automatically become this grid.
   ========================================================== */

.safari-hub-itinerary .roby-activity-icon-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    align-items:stretch !important;
    width:100% !important;
    margin:14px 0 0 !important;
    padding:0 !important;
}

.safari-hub-itinerary .roby-activity-icon-item{
    position:relative !important;
    min-width:0 !important;
    min-height:92px !important;
    padding:10px 20px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    text-align:center !important;
    background:transparent !important;
}

/* Elegant separators like the supplied reference. */
.safari-hub-itinerary .roby-activity-icon-item:not(:nth-child(3n+1))::before{
    content:"" !important;
    position:absolute !important;
    left:0 !important;
    top:18% !important;
    width:1px !important;
    height:64% !important;
    background:rgba(0,0,0,.10) !important;
}

.safari-hub-itinerary .roby-activity-icon{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:34px !important;
    height:34px !important;
    margin:0 !important;
    font-family:inherit !important;
    font-size:27px !important;
    line-height:1 !important;
    font-weight:400 !important;
    color:var(--safari-active,#9b4a22) !important;
}

.safari-hub-itinerary .roby-activity-name{
    display:block !important;
    margin:0 !important;
    padding:0 !important;
    font-family:var(--roby-body-font,inherit) !important;
    font-size:var(--roby-body-size,inherit) !important;
    font-weight:400 !important;
    line-height:1.3 !important;
    letter-spacing:var(--roby-body-letter-spacing,normal) !important;
    color:var(--roby-body-color,inherit) !important;
}

/* Rich paragraph-style activity content remains normal Body Text. */
.safari-hub-itinerary .roby-activity-richtext,
.safari-hub-itinerary .roby-activity-richtext *{
    font-family:var(--roby-body-font,inherit) !important;
    font-size:var(--roby-body-size,inherit) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,normal) !important;
    color:var(--roby-body-color,inherit) !important;
}

/* Tablet */
@media(max-width:900px){
    .safari-hub-itinerary .roby-activity-icon-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
    .safari-hub-itinerary .roby-activity-icon-item::before{
        display:none !important;
    }
    .safari-hub-itinerary .roby-activity-icon-item:nth-child(even)::before{
        display:block !important;
        content:"" !important;
        position:absolute !important;
        left:0 !important;
        top:18% !important;
        width:1px !important;
        height:64% !important;
        background:rgba(0,0,0,.10) !important;
    }
}

/* Phone: two compact activities per row, like a premium feature strip. */
@media(max-width:560px){
    .safari-hub-itinerary .roby-activity-icon-item{
        min-height:82px !important;
        padding:9px 10px !important;
        gap:6px !important;
    }
    .safari-hub-itinerary .roby-activity-icon{
        width:30px !important;
        height:30px !important;
        font-size:23px !important;
    }
}


/* ==========================================================
   Robylinks Safari Itinerary v1.14.7
   SAFARI ACTIVITIES — IMAGE TILES
   Images sit directly beside each other with a 1px gap.
   ========================================================== */

.safari-hub-itinerary .roby-activity-image-grid{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:1px !important;
    width:100% !important;
    margin:14px 0 0 !important;
    padding:0 !important;
    background:transparent !important;
}

.safari-hub-itinerary .roby-activity-image-card{
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
}

.safari-hub-itinerary .roby-activity-image-wrap{
    width:100% !important;
    aspect-ratio:4/3 !important;
    overflow:hidden !important;
    background:#ece9e2 !important;
}

.safari-hub-itinerary .roby-activity-image-wrap img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
}

.safari-hub-itinerary .roby-activity-image-card figcaption{
    display:block !important;
    margin:0 !important;
    padding:9px 6px 4px !important;
    text-align:center !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:400 !important;
    line-height:1.3 !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-body-color,inherit) !important;
}

/* Use the available width gracefully when fewer than four are supplied. */
.safari-hub-itinerary .roby-activity-image-grid.roby-activity-count-1{grid-template-columns:1fr !important}
.safari-hub-itinerary .roby-activity-image-grid.roby-activity-count-2{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.safari-hub-itinerary .roby-activity-image-grid.roby-activity-count-3{grid-template-columns:repeat(3,minmax(0,1fr)) !important}

@media(max-width:900px){
    .safari-hub-itinerary .roby-activity-image-grid,
    .safari-hub-itinerary .roby-activity-image-grid.roby-activity-count-3{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
}

@media(max-width:560px){
    .safari-hub-itinerary .roby-activity-image-grid,
    .safari-hub-itinerary .roby-activity-image-grid.roby-activity-count-2,
    .safari-hub-itinerary .roby-activity-image-grid.roby-activity-count-3{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
    .safari-hub-itinerary .roby-activity-image-card figcaption{
        padding:7px 4px 3px !important;
    }
}


/* v1.14.10 — Activity image lightbox + elegant plus */
.safari-hub-itinerary .roby-activity-image-wrap{
    position:relative !important;
    display:block !important;
    cursor:zoom-in !important;
    text-decoration:none !important;
}

.safari-hub-itinerary .roby-activity-image-plus{
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    transform:translate(-50%,-50%) !important;
    width:38px !important;
    height:38px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    border:1px solid rgba(255,255,255,.92) !important;
    border-radius:50% !important;
    background:rgba(0,0,0,.28) !important;
    color:#fff !important;
    font-family:Arial,sans-serif !important;
    font-size:25px !important;
    font-weight:300 !important;
    line-height:1 !important;
    pointer-events:none !important;
    transition:transform .18s ease, background .18s ease !important;
}

.safari-hub-itinerary .roby-activity-image-wrap:hover .roby-activity-image-plus{
    transform:translate(-50%,-50%) scale(1.08) !important;
    background:rgba(0,0,0,.42) !important;
}

/* Activity lightbox */
.roby-activity-lightbox{
    position:fixed;
    inset:0;
    z-index:999999;
    display:none;
    align-items:center;
    justify-content:center;
    padding:30px;
    background:rgba(0,0,0,.88);
}
.roby-activity-lightbox.is-open{display:flex}
.roby-activity-lightbox img{
    display:block;
    max-width:min(94vw,1400px);
    max-height:90vh;
    width:auto;
    height:auto;
    object-fit:contain;
    box-shadow:none;
}
.roby-activity-lightbox-close{
    position:absolute;
    top:18px;
    right:22px;
    width:42px;
    height:42px;
    padding:0;
    border:0;
    background:transparent;
    color:#fff;
    font-size:38px;
    font-weight:300;
    line-height:1;
    cursor:pointer;
}
@media(max-width:560px){
    .safari-hub-itinerary .roby-activity-image-plus{
        width:32px !important;
        height:32px !important;
        font-size:21px !important;
    }
    .roby-activity-lightbox{padding:16px}
}


/* v1.14.11 — Activity + icon: white, top-right */
.safari-hub-itinerary .roby-activity-image-plus{
    left:auto !important;
    top:10px !important;
    right:10px !important;
    transform:none !important;
    width:auto !important;
    height:auto !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    color:#fff !important;
    font-family:Arial,sans-serif !important;
    font-size:28px !important;
    font-weight:300 !important;
    line-height:1 !important;
    text-shadow:0 1px 4px rgba(0,0,0,.35) !important;
}
.safari-hub-itinerary .roby-activity-image-wrap:hover .roby-activity-image-plus{
    transform:none !important;
    background:transparent !important;
}
@media(max-width:560px){
    .safari-hub-itinerary .roby-activity-image-plus{
        top:8px !important;
        right:8px !important;
        font-size:24px !important;
    }
}


/* v1.14.12 — Premium white square + button, black icon */
.safari-hub-itinerary .roby-activity-image-plus{
    top:12px !important;
    right:12px !important;
    width:42px !important;
    height:42px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    background:#fff !important;
    color:#111 !important;
    border:1px solid rgba(0,0,0,.08) !important;
    border-radius:8px !important;
    box-shadow:0 5px 16px rgba(0,0,0,.16) !important;
    font-family:Arial,sans-serif !important;
    font-size:28px !important;
    font-weight:300 !important;
    line-height:1 !important;
    text-shadow:none !important;
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease !important;
}

.safari-hub-itinerary .roby-activity-image-wrap:hover .roby-activity-image-plus{
    transform:translateY(-1px) !important;
    background:#fff !important;
    box-shadow:0 7px 20px rgba(0,0,0,.20) !important;
}

@media(max-width:560px){
    .safari-hub-itinerary .roby-activity-image-plus{
        top:8px !important;
        right:8px !important;
        width:36px !important;
        height:36px !important;
        font-size:24px !important;
        border-radius:7px !important;
    }
}


/* v1.14.13 — Half-size Activity + box */
.safari-hub-itinerary .roby-activity-image-plus{
    top:8px !important;
    right:8px !important;
    width:22px !important;
    height:22px !important;
    border-radius:4px !important;
    font-size:17px !important;
    box-shadow:0 3px 9px rgba(0,0,0,.15) !important;
}
.safari-hub-itinerary .roby-activity-image-wrap:hover .roby-activity-image-plus{
    box-shadow:0 4px 11px rgba(0,0,0,.18) !important;
}
@media(max-width:560px){
    .safari-hub-itinerary .roby-activity-image-plus{
        top:6px !important;
        right:6px !important;
        width:20px !important;
        height:20px !important;
        font-size:15px !important;
        border-radius:4px !important;
    }
}


/* v1.14.20 — Nexa typography across Robylinks Safari Itinerary frontend.
   If Nexa is supplied by the website/browser it is used directly. */
.safari-hub-itinerary,
.safari-hub-itinerary *,
.roby-activity-lightbox,
.roby-activity-lightbox *{
    font-family:"Nexa","Nexa Text","Montserrat","Arial",sans-serif !important;
}


/* v1.14.21 — Poppins across the entire public itinerary. */
.safari-hub-itinerary,
.safari-hub-itinerary *,
.roby-activity-lightbox,
.roby-activity-lightbox *{
    font-family:"Poppins",Arial,sans-serif !important;
}


/* v1.14.22 — Poppins remains the plugin-wide public font. */
.safari-hub-itinerary,
.safari-hub-itinerary *,
.roby-activity-lightbox,
.roby-activity-lightbox *{
    font-family:"Poppins",Arial,sans-serif !important;
}


/* v1.14.23 — public itinerary remains Poppins. */
.safari-hub-itinerary,
.safari-hub-itinerary *,
.roby-activity-lightbox,
.roby-activity-lightbox *{
    font-family:"Poppins",Arial,sans-serif !important;
}

/* v1.14.25 — Classic inclusions/exclusions */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{width:100%;margin:46px 0 4px;padding:34px 0 0;border-top:1px solid rgba(0,0,0,.08)}
.safari-hub-itinerary .roby-inclusions-intro{position:relative;display:flex;align-items:center;justify-content:center;margin:0 0 26px;text-align:center}
.safari-hub-itinerary .roby-inclusions-intro>div{max-width:720px}
.safari-hub-itinerary .roby-inclusions-intro h3{margin:0 0 7px!important;font-size:clamp(26px,3vw,40px)!important;line-height:1.15!important}
.safari-hub-itinerary .roby-inclusions-intro p{margin:0!important;opacity:.72}
.safari-hub-itinerary .roby-inclusions-map{position:absolute;right:2%;top:50%;width:92px;opacity:.08;transform:translateY(-50%)}
.safari-hub-itinerary .roby-inclusions-map svg,.safari-hub-itinerary .roby-inclusion-africa svg{width:100%;height:auto;display:block;fill:currentColor}
.safari-hub-itinerary .roby-inclusion-panel{display:grid;grid-template-columns:minmax(210px,24%) 1fr;overflow:hidden;margin:0 0 16px;border:1px solid rgba(0,0,0,.10);border-radius:12px;background:#fff;box-shadow:0 7px 24px rgba(0,0,0,.045)}
.safari-hub-itinerary .roby-inclusion-side{position:relative;overflow:hidden;min-height:235px;padding:30px 28px;color:#fff}
.safari-hub-itinerary .roby-inclusion-panel-included .roby-inclusion-side{background:linear-gradient(145deg,#183f25,#245d34)}
.safari-hub-itinerary .roby-inclusion-panel-excluded .roby-inclusion-side{background:linear-gradient(145deg,#9a3714,#c55319)}
.safari-hub-itinerary .roby-inclusion-side-mark{display:flex;align-items:center;justify-content:center;width:42px;height:42px;margin-bottom:20px;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-family:Arial,sans-serif!important;font-size:25px}
.safari-hub-itinerary .roby-inclusion-side h4{position:relative;z-index:2;margin:0!important;color:#fff!important;font-size:25px!important;line-height:1.1!important}
.safari-hub-itinerary .roby-inclusion-accent{position:relative;z-index:2;display:block;width:46px;height:2px;margin:15px 0 16px;background:#d8a64f}
.safari-hub-itinerary .roby-inclusion-side p{position:relative;z-index:2;max-width:175px;margin:0!important;color:rgba(255,255,255,.86)!important;font-size:14px!important;line-height:1.55!important}
.safari-hub-itinerary .roby-inclusion-africa{position:absolute;right:-16px;bottom:-20px;width:140px;color:#fff;opacity:.075;transform:rotate(-4deg)}
.safari-hub-itinerary .roby-inclusion-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;column-gap:44px;padding:24px 34px}
.safari-hub-itinerary .roby-inclusion-item{display:flex;align-items:center;gap:13px;min-height:58px;padding:11px 0;border-bottom:1px dashed rgba(0,0,0,.10)}
.safari-hub-itinerary .roby-inclusion-icon{display:flex;flex:0 0 30px;width:30px;height:30px;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-family:Arial,sans-serif!important;font-size:18px;line-height:1}
.safari-hub-itinerary .roby-inclusion-panel-included .roby-inclusion-icon{background:#245d34}
.safari-hub-itinerary .roby-inclusion-panel-excluded .roby-inclusion-icon{background:#c55319}
.safari-hub-itinerary .roby-inclusion-item>span:last-child{font-family:var(--roby-font-body,inherit)!important;font-size:var(--roby-body-size,16px)!important;font-weight:400!important;line-height:1.45!important;color:var(--roby-body-color,inherit)!important}
@media(max-width:900px){.safari-hub-itinerary .roby-inclusion-panel{grid-template-columns:1fr}.safari-hub-itinerary .roby-inclusion-side{min-height:auto;padding:24px}.safari-hub-itinerary .roby-inclusion-side p{max-width:none}.safari-hub-itinerary .roby-inclusion-items{padding:18px 24px}}
@media(max-width:620px){.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{margin-top:30px;padding-top:24px}.safari-hub-itinerary .roby-inclusions-map{display:none}.safari-hub-itinerary .roby-inclusion-items{grid-template-columns:1fr;padding:14px 20px}.safari-hub-itinerary .roby-inclusion-side{padding:22px 20px}.safari-hub-itinerary .roby-inclusion-side h4{font-size:22px!important}}


/* ==========================================================
   v1.14.26 — CLASSIC INCLUSIONS REFINEMENT
   - side-panel arrow notch
   - three-column item grid on desktop
   - items always inherit Body Text typography
   ========================================================== */

/* Arrow notch connecting the colored side panel to the item area */
.safari-hub-itinerary .roby-inclusion-side::after{
    content:"" !important;
    position:absolute !important;
    top:50% !important;
    right:-22px !important;
    width:44px !important;
    height:44px !important;
    transform:translateY(-50%) rotate(45deg) !important;
    z-index:3 !important;
}

.safari-hub-itinerary .roby-inclusion-panel-included .roby-inclusion-side::after{
    background:#245d34 !important;
}

.safari-hub-itinerary .roby-inclusion-panel-excluded .roby-inclusion-side::after{
    background:#c55319 !important;
}

/* Keep side panel above the white content area so the notch is visible */
.safari-hub-itinerary .roby-inclusion-side{
    z-index:2 !important;
    overflow:visible !important;
}

.safari-hub-itinerary .roby-inclusion-items{
    position:relative !important;
    z-index:1 !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    column-gap:28px !important;
    row-gap:0 !important;
    padding:24px 34px 24px 48px !important;
}

/* Body typography authority for every list item */
.safari-hub-itinerary .roby-inclusion-item,
.safari-hub-itinerary .roby-inclusion-item > span:last-child{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-body-color,inherit) !important;
}

/* Slim vertical separators between the three columns */
.safari-hub-itinerary .roby-inclusion-items::before,
.safari-hub-itinerary .roby-inclusion-items::after{
    content:"" !important;
    position:absolute !important;
    top:28px !important;
    bottom:28px !important;
    width:1px !important;
    background:rgba(0,0,0,.08) !important;
    pointer-events:none !important;
}
.safari-hub-itinerary .roby-inclusion-items::before{left:33.333% !important;}
.safari-hub-itinerary .roby-inclusion-items::after{left:66.666% !important;}

/* Keep the item dividers light and refined */
.safari-hub-itinerary .roby-inclusion-item{
    min-height:62px !important;
    padding:12px 6px !important;
    border-bottom:1px dashed rgba(0,0,0,.10) !important;
}

/* Tablet: 2 columns, no third-column separator */
@media(max-width:1024px){
    .safari-hub-itinerary .roby-inclusion-items{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        padding-left:42px !important;
    }
    .safari-hub-itinerary .roby-inclusion-items::before{
        left:50% !important;
    }
    .safari-hub-itinerary .roby-inclusion-items::after{
        display:none !important;
    }
}

/* Stacked layout: remove notch and separators for clarity */
@media(max-width:900px){
    .safari-hub-itinerary .roby-inclusion-side::after{
        display:none !important;
    }
}

@media(max-width:620px){
    .safari-hub-itinerary .roby-inclusion-items{
        grid-template-columns:1fr !important;
        padding:14px 20px !important;
    }
    .safari-hub-itinerary .roby-inclusion-items::before,
    .safari-hub-itinerary .roby-inclusion-items::after{
        display:none !important;
    }
}


/* ==========================================================
   v1.14.27 — Inclusions intro typography
   Heading = Section Headings settings
   Description = Body Text settings
   ========================================================== */

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusions-intro h3{
    font-family:var(--roby-font-other-heading,inherit) !important;
    font-size:var(--roby-other-heading-size,inherit) !important;
    font-weight:var(--roby-other-heading-weight,inherit) !important;
    line-height:var(--roby-other-heading-line-height,inherit) !important;
    letter-spacing:var(--roby-other-heading-letter-spacing,inherit) !important;
    color:var(--roby-other-heading-color,inherit) !important;
    text-transform:none !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusions-intro p{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,inherit) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,inherit) !important;
    letter-spacing:var(--roby-body-letter-spacing,inherit) !important;
    color:var(--roby-body-color,inherit) !important;
    opacity:1 !important;
}


/* ==========================================================
   v1.14.28 — COLLAPSIBLE INCLUDED / NOT INCLUDED PANELS
   Circular + control replaces the arrow notch.
   ========================================================== */

/* Remove the previous diamond/arrow notch. */
.safari-hub-itinerary .roby-inclusion-side::after{
    content:none !important;
    display:none !important;
}

/* The list area is collapsed by default and slides open. */
.safari-hub-itinerary .roby-inclusion-items{
    max-height:0 !important;
    overflow:hidden !important;
    opacity:0 !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    transition:
        max-height .42s ease,
        opacity .28s ease,
        padding-top .42s ease,
        padding-bottom .42s ease !important;
}

/* Open state */
.safari-hub-itinerary .roby-inclusion-panel.is-open .roby-inclusion-items{
    max-height:1200px !important;
    opacity:1 !important;
    padding-top:24px !important;
    padding-bottom:24px !important;
}

/* Premium circular toggle positioned where the notch was. */
.safari-hub-itinerary .roby-inclusion-toggle{
    position:absolute !important;
    top:50% !important;
    right:-22px !important;
    z-index:8 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    min-height:44px !important;
    padding:0 !important;
    margin:0 !important;
    transform:translateY(-50%) !important;
    background:#fff !important;
    border:3px solid rgba(255,255,255,.96) !important;
    border-radius:50% !important;
    box-shadow:0 3px 12px rgba(0,0,0,.16) !important;
    cursor:pointer !important;
    appearance:none !important;
    -webkit-appearance:none !important;
    transition:background .2s ease, transform .2s ease, box-shadow .2s ease !important;
}

.safari-hub-itinerary .roby-inclusion-panel-included .roby-inclusion-toggle{
    color:#245d34 !important;
    box-shadow:0 0 0 1px rgba(36,93,52,.38),0 3px 12px rgba(0,0,0,.16) !important;
}

.safari-hub-itinerary .roby-inclusion-panel-excluded .roby-inclusion-toggle{
    color:#c55319 !important;
    box-shadow:0 0 0 1px rgba(197,83,25,.38),0 3px 12px rgba(0,0,0,.16) !important;
}

.safari-hub-itinerary .roby-inclusion-toggle span{
    display:block !important;
    color:currentColor !important;
    font-family:Arial,sans-serif !important;
    font-size:27px !important;
    font-weight:400 !important;
    line-height:1 !important;
    transform:translateY(-1px) !important;
}

/* Expanded: colored circle + white × */
.safari-hub-itinerary .roby-inclusion-panel-included.is-open .roby-inclusion-toggle{
    background:#245d34 !important;
    color:#fff !important;
}

.safari-hub-itinerary .roby-inclusion-panel-excluded.is-open .roby-inclusion-toggle{
    background:#c55319 !important;
    color:#fff !important;
}

.safari-hub-itinerary .roby-inclusion-panel.is-open .roby-inclusion-toggle span{
    font-size:0 !important;
}

.safari-hub-itinerary .roby-inclusion-panel.is-open .roby-inclusion-toggle span::before{
    content:"×" !important;
    display:block !important;
    color:#fff !important;
    font-family:Arial,sans-serif !important;
    font-size:25px !important;
    font-weight:400 !important;
    line-height:1 !important;
}

.safari-hub-itinerary .roby-inclusion-toggle:hover{
    transform:translateY(-50%) scale(1.06) !important;
}

.safari-hub-itinerary .roby-inclusion-toggle:focus-visible{
    outline:2px solid #2271b1 !important;
    outline-offset:3px !important;
}

/* Keep the colored side visible while its content is collapsed. */
.safari-hub-itinerary .roby-inclusion-panel{
    min-height:0 !important;
}

.safari-hub-itinerary .roby-inclusion-panel:not(.is-open){
    grid-template-columns:minmax(210px,24%) 1fr !important;
}

.safari-hub-itinerary .roby-inclusion-panel:not(.is-open) .roby-inclusion-side{
    min-height:210px !important;
}

/* 3 columns still apply when open. */
.safari-hub-itinerary .roby-inclusion-panel.is-open .roby-inclusion-items{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    padding-left:48px !important;
    padding-right:34px !important;
}

@media(max-width:1024px){
    .safari-hub-itinerary .roby-inclusion-panel.is-open .roby-inclusion-items{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        padding-left:42px !important;
    }
}

@media(max-width:900px){
    .safari-hub-itinerary .roby-inclusion-toggle{
        top:auto !important;
        right:20px !important;
        bottom:-22px !important;
        transform:none !important;
    }

    .safari-hub-itinerary .roby-inclusion-toggle:hover{
        transform:scale(1.06) !important;
    }

    .safari-hub-itinerary .roby-inclusion-panel:not(.is-open){
        grid-template-columns:1fr !important;
    }

    .safari-hub-itinerary .roby-inclusion-panel:not(.is-open) .roby-inclusion-side{
        min-height:auto !important;
    }

    .safari-hub-itinerary .roby-inclusion-panel.is-open .roby-inclusion-items{
        padding-top:30px !important;
    }
}

@media(max-width:620px){
    .safari-hub-itinerary .roby-inclusion-panel.is-open .roby-inclusion-items{
        grid-template-columns:1fr !important;
        padding:30px 20px 16px !important;
    }

    .safari-hub-itinerary .roby-inclusion-toggle{
        width:40px !important;
        height:40px !important;
        min-width:40px !important;
        min-height:40px !important;
        right:16px !important;
        bottom:-20px !important;
    }
}


/* ==========================================================
   v1.14.30 — SIDE-BY-SIDE HEADERS, SIDEWAYS OPENING
   Keeps the v1.14.28 sideways reveal behavior.
   ========================================================== */

/* The intro spans the full row. Included and Not Included sit side by side. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    column-gap:18px !important;
    row-gap:18px !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-intro{
    grid-column:1 / -1 !important;
    margin-bottom:8px !important;
}

/* Each half keeps the original v1.14.28 internal left-to-right structure. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel{
    display:grid !important;
    grid-template-columns:210px minmax(0,1fr) !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    overflow:visible !important;
    border-radius:12px !important;
    background:#fff !important;
}

/* The colored title block stays on the left. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side{
    position:relative !important;
    z-index:2 !important;
    width:auto !important;
    min-width:0 !important;
    min-height:220px !important;
    padding:28px 24px !important;
    box-sizing:border-box !important;
    overflow:visible !important;
    border-radius:12px 0 0 12px !important;
}

/* Remove yellow underline. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-accent{
    display:none !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side h4{
    margin-bottom:16px !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side p{
    max-width:165px !important;
}

/* Circular button remains on the side edge, exactly like the v1.14.28 concept. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle{
    top:50% !important;
    right:-22px !important;
    left:auto !important;
    bottom:auto !important;
    transform:translateY(-50%) !important;
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    min-height:44px !important;
    z-index:20 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle:hover{
    transform:translateY(-50%) scale(1.06) !important;
}

/* The list reveals SIDEWAYS, not below. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-items{
    display:grid !important;
    align-content:center !important;
    width:auto !important;
    min-width:0 !important;
    max-width:0 !important;
    max-height:none !important;
    overflow:hidden !important;
    opacity:0 !important;
    padding:24px 0 !important;
    margin:0 !important;
    box-sizing:border-box !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    column-gap:14px !important;
    transition:
        max-width .42s ease,
        opacity .28s ease,
        padding-left .42s ease,
        padding-right .42s ease !important;
}

/* Open state expands horizontally into the right-hand area. */
.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel.is-open .roby-inclusion-items{
    max-width:1400px !important;
    opacity:1 !important;
    padding:24px 18px 24px 34px !important;
}

/* Keep separators aligned to the three columns when open. */
.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel.is-open .roby-inclusion-items::before{
    left:33.333% !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel.is-open .roby-inclusion-items::after{
    left:66.666% !important;
}

/* Body typography remains authoritative for list items. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item > span:last-child{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-body-color,inherit) !important;
}

/* At medium widths use two list columns inside each half. */
@media(max-width:1280px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel{
        grid-template-columns:185px minmax(0,1fr) !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-inclusion-panel.is-open .roby-inclusion-items{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-inclusion-panel.is-open .roby-inclusion-items::before{
        left:50% !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-inclusion-panel.is-open .roby-inclusion-items::after{
        display:none !important;
    }
}

/* On tablet, stack Included and Not Included, but still open sideways. */
@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        grid-template-columns:1fr !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-intro{
        grid-column:1 !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel{
        grid-template-columns:210px minmax(0,1fr) !important;
    }
}

/* On phones only, switch to vertical expansion for usability. */
@media(max-width:620px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel{
        grid-template-columns:1fr !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side{
        border-radius:12px !important;
        min-height:auto !important;
        padding:22px 20px 34px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle{
        top:auto !important;
        right:16px !important;
        bottom:-20px !important;
        transform:none !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle:hover{
        transform:scale(1.06) !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-items{
        max-width:none !important;
        max-height:0 !important;
        grid-template-columns:1fr !important;
        padding:0 18px !important;
        transition:max-height .42s ease,opacity .28s ease,padding .42s ease !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-inclusion-panel.is-open .roby-inclusion-items{
        max-height:1200px !important;
        padding:30px 18px 16px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-inclusion-panel.is-open .roby-inclusion-items::before,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-inclusion-panel.is-open .roby-inclusion-items::after{
        display:none !important;
    }
}


/* ==========================================================
   v1.14.31 — FINAL COLLAPSED CARD POLISH
   - no blank list area before click
   - compact card height
   - 2 top-level columns
   - stronger visible safari artwork
   - large white + button, black icon, no border
   - + button bottom-right
   ========================================================== */

/* Two compact cards on one row. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    column-gap:20px !important;
    row-gap:20px !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-intro{
    grid-column:1 / -1 !important;
}

/* Collapsed panel must not reserve any list space. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    overflow:visible !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel:not(.is-open) .roby-inclusion-items{
    display:none !important;
    width:0 !important;
    max-width:0 !important;
    height:0 !important;
    max-height:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    opacity:0 !important;
    overflow:hidden !important;
}

/* Compact full-width colored card. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side{
    position:relative !important;
    display:block !important;
    width:100% !important;
    min-height:260px !important;
    height:auto !important;
    padding:34px 34px 46px !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
    border-radius:12px !important;
}

/* Make the safari/Africa artwork more visible, but still subtle. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-africa{
    right:5% !important;
    bottom:-34px !important;
    width:210px !important;
    opacity:.14 !important;
}

/* Keep heading clean — no yellow line. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-accent{
    display:none !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side h4{
    margin:0 0 20px !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side p{
    max-width:310px !important;
    margin:0 !important;
}

/* Large premium + control in the bottom-right corner. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle{
    top:auto !important;
    left:auto !important;
    right:18px !important;
    bottom:18px !important;
    transform:none !important;
    width:58px !important;
    height:58px !important;
    min-width:58px !important;
    min-height:58px !important;
    padding:0 !important;
    background:#fff !important;
    color:#111 !important;
    border:0 !important;
    outline:0 !important;
    border-radius:50% !important;
    box-shadow:0 5px 16px rgba(0,0,0,.16) !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle span{
    color:#111 !important;
    font-size:34px !important;
    font-weight:300 !important;
    line-height:1 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle:hover{
    transform:translateY(-1px) scale(1.04) !important;
    box-shadow:0 7px 20px rgba(0,0,0,.20) !important;
}

/* Open state: list appears directly under the card only after click.
   It does not affect the collapsed card's height. */
.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel.is-open .roby-inclusion-items{
    display:grid !important;
    width:100% !important;
    max-width:none !important;
    height:auto !important;
    max-height:1400px !important;
    opacity:1 !important;
    overflow:hidden !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    column-gap:24px !important;
    row-gap:0 !important;
    margin:0 !important;
    padding:30px 22px 18px !important;
    box-sizing:border-box !important;
    background:#fff !important;
    border:1px solid rgba(0,0,0,.08) !important;
    border-top:0 !important;
    border-radius:0 0 12px 12px !important;
}

/* Open button becomes colored with white ×, still bottom-right. */
.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel-included.is-open .roby-inclusion-toggle{
    background:#245d34 !important;
    color:#fff !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel-excluded.is-open .roby-inclusion-toggle{
    background:#c55319 !important;
    color:#fff !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel.is-open .roby-inclusion-toggle span{
    color:#fff !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel.is-open .roby-inclusion-toggle span::before{
    color:#fff !important;
}

/* Two columns for list items. */
.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel.is-open .roby-inclusion-items::before{
    left:50% !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel.is-open .roby-inclusion-items::after{
    display:none !important;
}

/* Body typography remains authoritative. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item > span:last-child{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-body-color,inherit) !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        grid-template-columns:1fr !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-intro{
        grid-column:1 !important;
    }
}

@media(max-width:620px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side{
        min-height:220px !important;
        padding:26px 24px 42px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle{
        right:14px !important;
        bottom:14px !important;
        width:50px !important;
        height:50px !important;
        min-width:50px !important;
        min-height:50px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle span{
        font-size:30px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-inclusion-panel.is-open .roby-inclusion-items{
        grid-template-columns:1fr !important;
        padding:22px 18px 14px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-inclusion-panel.is-open .roby-inclusion-items::before,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-inclusion-panel.is-open .roby-inclusion-items::after{
        display:none !important;
    }
}


/* ==========================================================
   v1.14.32 — CENTERED PREMIUM PACKAGE CARDS + SAFARI SCENE
   ========================================================== */

/* Make the entire package section narrower and centered. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
    width:min(1180px,calc(100% - 40px)) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    column-gap:18px !important;
}

/* Slightly shorter, more elegant cards. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side{
    min-height:235px !important;
    padding:30px 30px 42px !important;
}

/* The old Africa shape becomes very subtle behind the real scene. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-africa{
    width:155px !important;
    right:8% !important;
    bottom:-30px !important;
    opacity:.045 !important;
}

/* Safari scene is now visibly present like the approved mockup. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-scene{
    position:absolute !important;
    right:0 !important;
    bottom:0 !important;
    width:64% !important;
    height:auto !important;
    z-index:1 !important;
    pointer-events:none !important;
    opacity:.22 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-scene svg{
    display:block !important;
    width:100% !important;
    height:auto !important;
    overflow:visible !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-scene path{
    fill:currentColor !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel-included .roby-inclusion-scene{
    color:#071f10 !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel-excluded .roby-inclusion-scene{
    color:#6f1e07 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side-mark,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side h4,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side p,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle{
    position:relative !important;
    z-index:5 !important;
}

/* Keep the large white + at bottom-right. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle{
    position:absolute !important;
    right:16px !important;
    bottom:16px !important;
}

/* Open list stays two columns. */
.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel.is-open .roby-inclusion-items{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}

/* Smooth accommodation rendering while image downloads. */
.safari-hub-itinerary .roby-accommodation-gallery img,
.safari-hub-itinerary .roby-luxury-accommodation-feature img{
    background:#f1eee8 !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        width:min(760px,calc(100% - 28px)) !important;
    }
}

@media(max-width:620px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        width:100% !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side{
        min-height:215px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-scene{
        width:78% !important;
        opacity:.18 !important;
    }
}


/* ==========================================================
   v1.14.33 — Classic last-day cleanup + tighter inclusions
   ========================================================== */

/* When the active Classic day has no accommodation, do not paint a tall
   beige empty visual column below the day photo/title. The left scroller
   keeps its normal behavior, but the unused right-side space blends into
   the page instead of looking like missing content. */
@media(min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-visuals:has(.roby-visual-day.is-active.roby-visual-no-accommodation){
        background:transparent !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-visuals:has(.roby-visual-day.is-active.roby-visual-no-accommodation)
    .roby-visual-sticky{
        background:transparent !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-visual-day.is-active.roby-visual-no-accommodation{
        background:#f4f3f0 !important;
        padding-bottom:18px !important;
    }
}

/* Make Included / Not Included more compact and centered. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
    width:min(980px,calc(100% - 40px)) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    column-gap:16px !important;
}

/* Square-corner design throughout this section. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-items{
    border-radius:0 !important;
}

/* Slightly shorter cards. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side{
    min-height:215px !important;
    padding:28px 28px 38px !important;
}

/* Smaller white + button, still bottom-right. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle{
    right:14px !important;
    bottom:14px !important;
    width:46px !important;
    height:46px !important;
    min-width:46px !important;
    min-height:46px !important;
    border:0 !important;
    box-shadow:0 4px 12px rgba(0,0,0,.14) !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle span{
    font-size:27px !important;
}

/* Faster accommodation-image paint: keep a neutral placeholder while loading. */
.safari-hub-itinerary.roby-layout-classic-split .roby-accommodation-gallery img{
    content-visibility:auto;
    background:#f1eee8 !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        width:min(760px,calc(100% - 28px)) !important;
    }
}

@media(max-width:620px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        width:100% !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side{
        min-height:195px !important;
        padding:24px 22px 34px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle{
        width:42px !important;
        height:42px !important;
        min-width:42px !important;
        min-height:42px !important;
        right:12px !important;
        bottom:12px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle span{
        font-size:24px !important;
    }
}


/* ==========================================================
   v1.14.34 — REMOVE FINAL CLASSIC DAY EMPTY GAP
   The inclusions section rises into only the unused bottom area of the
   final itinerary viewport. The itinerary scroller itself is untouched.
   ========================================================== */
@media(min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        position:relative !important;
        z-index:8 !important;
        margin-top:calc(-1 * var(--roby-final-empty-gap, 0px)) !important;
        padding-top:18px !important;
        border-top:1px solid rgba(0,0,0,.10) !important;
        background:#fff !important;
        transition:margin-top .22s ease !important;
    }
}

/* Mobile/tablet flow stays natural. */
@media(max-width:767px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        margin-top:0 !important;
        padding-top:16px !important;
        border-top:1px solid rgba(0,0,0,.10) !important;
    }
}


/* ==========================================================
   v1.14.35 — TIMELINE MEALS WIDTH FIX
   Prevent meal names from collapsing into one-character columns.
   ========================================================== */

/* If only one info card exists (for example Meals without Activities),
   let it use the full available width rather than a half/implicit grid cell. */
.roby-luxury-timeline .roby-luxury-info-row:has(> .roby-luxury-info-card:only-child){
    grid-template-columns:minmax(0,1fr) !important;
}

/* Meals card must be allowed to occupy its grid column fully. */
.roby-luxury-timeline .roby-luxury-meals-card{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    box-sizing:border-box !important;
}

/* Each meal row: fixed tick column + flexible readable text column. */
.roby-luxury-timeline .roby-luxury-meals > span{
    display:grid !important;
    grid-template-columns:24px minmax(120px,1fr) !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    align-items:center !important;
    column-gap:12px !important;
    box-sizing:border-box !important;
}

/* Meal name itself must never inherit a narrow width or vertical word breaking. */
.roby-luxury-timeline .roby-luxury-meals .roby-meal-name{
    display:block !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    writing-mode:horizontal-tb !important;
    text-orientation:mixed !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:400 !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
}

/* Keep the check icon compact and independent from the meal-name width. */
.roby-luxury-timeline .roby-luxury-meals > span > b{
    width:20px !important;
    min-width:20px !important;
    height:20px !important;
    flex:0 0 20px !important;
}

/* Section heading should use the normal full card width. */
.roby-luxury-timeline .roby-luxury-meals-card .roby-luxury-section-heading,
.roby-luxury-timeline .roby-luxury-meals-card .roby-luxury-section-heading h4{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
}

/* Mobile/tablet remain readable. */
@media(max-width:900px){
    .roby-luxury-timeline .roby-luxury-meals > span{
        grid-template-columns:24px minmax(0,1fr) !important;
    }
}


/* ==========================================================
   v1.15.0 — AUTOMATIC CLASSIC ITINERARY ROUTE MAP
   ========================================================== */
.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-section{
    width:min(1180px,calc(100% - 40px));
    margin:34px auto 26px;
    padding-top:28px;
    border-top:1px solid rgba(0,0,0,.10);
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-heading{
    position:relative;
    text-align:center;
    margin:0 auto 24px;
    max-width:760px;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-kicker{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    margin-bottom:6px;
    font-size:22px;
    color:var(--safari-active,#b44a1b);
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-heading h3{
    margin:0 0 8px !important;
    font-family:var(--roby-font-other-heading,var(--roby-font-heading,inherit)) !important;
    font-size:var(--roby-other-heading-size,30px) !important;
    font-weight:var(--roby-other-heading-weight,600) !important;
    line-height:var(--roby-other-heading-line-height,1.3) !important;
    letter-spacing:var(--roby-other-heading-letter-spacing,0px) !important;
    color:var(--roby-other-heading-color,#171717) !important;
    text-transform:none !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-heading p,
.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-note p,
.safari-hub-itinerary.roby-layout-classic-split .roby-route-stop small{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-body-color,#171717) !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-shell{
    display:grid;
    grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr);
    min-height:520px;
    border:1px solid rgba(0,0,0,.10);
    background:#faf8f3;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-canvas-wrap{
    position:relative;
    min-width:0;
    background:#eee9df;
    border-right:1px solid rgba(0,0,0,.10);
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-canvas{
    position:absolute;
    inset:0 0 50px 0;
    overflow:hidden;
    background:
      radial-gradient(circle at 60% 45%,rgba(180,74,27,.08),transparent 35%),
      linear-gradient(135deg,#eee9df,#e5e1d7);
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-placeholder{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:30px;
    text-align:center;
    font-family:var(--roby-font-body,inherit);
    color:#777168;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-legend{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:50px;
    display:flex;
    align-items:center;
    gap:28px;
    padding:0 22px;
    background:#fff;
    border-top:1px solid rgba(0,0,0,.08);
    font-family:var(--roby-font-body,inherit);
    font-size:13px;
}

.roby-route-legend-line{
    display:inline-block;
    width:32px;
    border-top:2px dashed #b44a1b;
    margin-right:8px;
    vertical-align:middle;
}
.roby-route-legend-pin{
    display:inline-block;
    width:12px;height:12px;
    border-radius:50%;
    background:#b44a1b;
    margin-right:8px;
    vertical-align:middle;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-stops{
    display:flex;
    flex-direction:column;
    background:#fff;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-stop{
    flex:1 1 0;
    display:grid;
    grid-template-columns:44px minmax(0,1fr);
    gap:12px;
    align-items:center;
    padding:16px 18px;
    border-bottom:1px solid rgba(0,0,0,.08);
    cursor:pointer;
    transition:background .18s ease;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-stop:hover,
.safari-hub-itinerary.roby-layout-classic-split .roby-route-stop.is-active{
    background:#f6f0e7;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-stop-number{
    display:flex;
    align-items:center;
    justify-content:center;
    width:34px;height:34px;
    border-radius:50%;
    background:#b44a1b;
    color:#fff;
    font-family:var(--roby-font-body,inherit);
    font-size:15px;
    font-weight:600;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-stop-copy strong{
    display:block;
    margin-bottom:3px;
    font-family:var(--roby-font-other-heading,var(--roby-font-heading,inherit));
    font-size:17px;
    line-height:1.25;
    font-weight:600;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-stop-copy small{
    display:block;
    font-size:13px !important;
    opacity:.72;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-note{
    display:flex;
    align-items:center;
    gap:14px;
    margin-top:18px;
    padding:16px 18px;
    background:#f7f1e8;
    border:1px solid rgba(0,0,0,.06);
}

.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-note-icon{
    flex:0 0 34px;
    width:34px;height:34px;
    display:flex;align-items:center;justify-content:center;
    border-radius:50%;
    background:#b44a1b;
    color:#fff;
    font-weight:700;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-note p{margin:0 !important}

.roby-route-marker{
    width:34px;height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#b44a1b;
    color:#fff;
    border:2px solid #fff;
    box-shadow:0 2px 8px rgba(0,0,0,.25);
    font:600 14px/1 Arial,sans-serif;
    cursor:pointer;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-route-map-section{
        width:min(760px,calc(100% - 28px));
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-route-map-shell{
        grid-template-columns:1fr;
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-route-map-canvas-wrap{
        min-height:430px;
        border-right:0;
        border-bottom:1px solid rgba(0,0,0,.10);
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-route-map-stops{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:560px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-route-map-section{width:100%}
    .safari-hub-itinerary.roby-layout-classic-split .roby-route-map-canvas-wrap{min-height:360px}
    .safari-hub-itinerary.roby-layout-classic-split .roby-route-map-stops{grid-template-columns:1fr}
    .safari-hub-itinerary.roby-layout-classic-split .roby-route-map-legend{gap:14px;padding:0 12px}
}


/* v1.15.2 — route map setup notice for logged-in editors */
.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-setup-notice{
    width:min(980px,calc(100% - 40px));
    margin:24px auto;
    padding:14px 16px;
    border:1px solid rgba(180,74,27,.24);
    background:#fff8f2;
    color:#5d3322;
    font-family:var(--roby-font-body,inherit);
    font-size:14px;
    line-height:1.5;
}


/* v1.15.3 — OpenStreetMap / Leaflet */
.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-canvas .leaflet-container{
    font-family:var(--roby-font-body,inherit) !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-canvas{
    z-index:1;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-canvas .leaflet-pane,
.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-canvas .leaflet-control{
    z-index:auto;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-route-map-canvas .leaflet-popup-content{
    font-family:var(--roby-font-body,inherit);
    line-height:1.45;
}


/* ==========================================================
   v1.15.9 — REAL MAPBOX FRONTEND MAP
   ========================================================== */
.roby-route-map-canvas.roby-real-mapbox-canvas{
    position:relative;
    min-height:560px;
    background:#eee9df;
}
.roby-real-map-marker-wrap{
    position:relative;
    display:flex;
    align-items:center;
    pointer-events:none;
}
.roby-real-map-marker{
    width:34px;
    height:34px;
    border-radius:50%;
    background:#b44a1b;
    color:#fff;
    border:2px solid #fff;
    box-shadow:0 2px 8px rgba(0,0,0,.25);
    display:flex;
    align-items:center;
    justify-content:center;
    font:700 14px/1 Arial,sans-serif;
    flex:0 0 34px;
}
.roby-real-map-label{
    margin-left:7px;
    padding:4px 7px;
    background:rgba(255,255,255,.9);
    color:#1d1d1d;
    white-space:nowrap;
    font:600 12px/1.2 Arial,sans-serif;
    box-shadow:0 1px 4px rgba(0,0,0,.14);
}
.roby-map-style-toggle{
    position:absolute;
    z-index:5;
    right:12px;
    bottom:28px;
    border:0;
    background:#fff;
    color:#111;
    padding:8px 12px;
    font:600 12px/1 Arial,sans-serif;
    box-shadow:0 1px 5px rgba(0,0,0,.22);
    cursor:pointer;
}
.roby-map-coordinate-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}
@media(max-width:700px){
    .roby-route-map-canvas.roby-real-mapbox-canvas{min-height:430px;}
    .roby-real-map-label{font-size:10px;max-width:130px;white-space:normal;}
}


/* ==========================================================
   v1.15.10 — MAP FEATURE TEMPORARILY REMOVED
   ========================================================== */
.safari-hub-itinerary .roby-route-map-section,
.safari-hub-itinerary .roby-route-map-shell,
.safari-hub-itinerary .roby-route-map-canvas,
.safari-hub-itinerary .roby-route-image-section,
.safari-hub-itinerary .roby-route-image-setup-notice{
    display:none !important;
}


/* v1.15.12 — Classic Split strict scroll-lock support */
@media (min-width:768px){
  .roby-layout-classic-split .roby-itinerary-nav-wrap{
    position:relative;
    z-index:6;
  }
}


/* ==========================================================
   v1.15.14 — ALWAYS-VISIBLE INCLUDED / NOT INCLUDED
   No dropdown, no + button, no collapsed state.
   ========================================================== */

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:22px !important;
    width:100% !important;
    margin:42px 0 4px !important;
    padding:34px 0 0 !important;
    border-top:1px solid rgba(0,0,0,.08) !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-intro{
    grid-column:1 / -1 !important;
    margin:0 0 8px !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel{
    display:flex !important;
    flex-direction:column !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    background:#fff !important;
    border:1px solid rgba(0,0,0,.10) !important;
    border-radius:0 !important;
    box-shadow:0 8px 26px rgba(0,0,0,.045) !important;
}

/* Premium colored header */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side{
    position:relative !important;
    width:100% !important;
    min-width:0 !important;
    min-height:170px !important;
    padding:26px 28px !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
    border-radius:0 !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel-included .roby-inclusion-side{
    background:linear-gradient(145deg,#183f25,#245d34) !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel-excluded .roby-inclusion-side{
    background:linear-gradient(145deg,#9a3714,#c55319) !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side::after{
    content:none !important;
    display:none !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-toggle{
    display:none !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side-mark{
    width:38px !important;
    height:38px !important;
    margin:0 0 17px !important;
    border:1px solid rgba(255,255,255,.45) !important;
    border-radius:50% !important;
    background:rgba(255,255,255,.08) !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side h4{
    margin:0 0 9px !important;
    color:#fff !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-accent{
    display:none !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side p{
    max-width:330px !important;
    margin:0 !important;
    color:rgba(255,255,255,.88) !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-africa{
    right:-10px !important;
    bottom:-28px !important;
    width:150px !important;
    opacity:.10 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-scene{
    opacity:.16 !important;
}

/* Lists are permanently visible */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-items,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel.is-open .roby-inclusion-items,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel:not(.is-open) .roby-inclusion-items{
    display:grid !important;
    grid-template-columns:1fr !important;
    align-content:start !important;
    gap:0 !important;
    width:100% !important;
    max-width:none !important;
    max-height:none !important;
    height:auto !important;
    overflow:visible !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    padding:18px 28px 22px !important;
    margin:0 !important;
    box-sizing:border-box !important;
    transition:none !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item{
    display:flex !important;
    align-items:flex-start !important;
    gap:12px !important;
    min-height:0 !important;
    padding:12px 0 !important;
    border-bottom:1px solid rgba(0,0,0,.08) !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item:last-child{
    border-bottom:0 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-icon{
    flex:0 0 27px !important;
    width:27px !important;
    height:27px !important;
    margin-top:1px !important;
    font-size:15px !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel-included .roby-inclusion-icon{
    background:#245d34 !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel-excluded .roby-inclusion-icon{
    background:#c55319 !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        grid-template-columns:1fr !important;
        gap:18px !important;
    }
}

@media(max-width:620px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side{
        min-height:150px !important;
        padding:23px 20px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-items,
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel.is-open .roby-inclusion-items,
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel:not(.is-open) .roby-inclusion-items{
        padding:12px 20px 16px !important;
    }
}

/* v1.15.15 — simple premium always-visible Included / Not Included */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:28px!important;width:min(1180px,100%)!important;margin:46px auto 6px!important;padding:38px 0 0!important;border-top:1px solid rgba(0,0,0,.08)!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-intro{grid-column:1/-1!important;display:block!important;margin:0 0 10px!important;text-align:center!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-intro>div{max-width:820px!important;margin:0 auto!important}
.safari-hub-itinerary .roby-inclusions-kicker{display:flex!important;align-items:center!important;justify-content:center!important;gap:18px!important;margin:0 0 14px!important;color:#a87524!important;font-family:var(--roby-font-body,inherit)!important;font-size:12px!important;font-weight:600!important;letter-spacing:.24em!important}.safari-hub-itinerary .roby-inclusions-kicker:before,.safari-hub-itinerary .roby-inclusions-kicker:after{content:""!important;width:80px!important;height:1px!important;background:currentColor!important;opacity:.7!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-intro h3{margin:0 0 10px!important;font-size:clamp(28px,3vw,42px)!important;line-height:1.12!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-intro p{max-width:760px!important;margin:0 auto!important;opacity:.76!important}.safari-hub-itinerary .roby-inclusions-map{display:none!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel{display:flex!important;flex-direction:column!important;min-width:0!important;overflow:hidden!important;margin:0!important;padding:0!important;border-radius:16px!important;box-shadow:none!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-included{background:#f2f7ed!important;border:1px solid #dbe7d2!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-excluded{background:#fff8f1!important;border:1px solid #f0dcc8!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side{position:relative!important;min-height:138px!important;padding:26px 28px 22px 100px!important;overflow:hidden!important;color:inherit!important;background:transparent!important;border-bottom:1px solid rgba(0,0,0,.08)!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side-mark{position:absolute!important;top:27px!important;left:28px!important;display:flex!important;width:54px!important;height:54px!important;margin:0!important;align-items:center!important;justify-content:center!important;border:0!important;border-radius:50%!important;color:#fff!important;font-family:Arial,sans-serif!important;font-size:31px!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-included .roby-inclusion-side-mark{background:#315d2f!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-excluded .roby-inclusion-side-mark{background:#b94d12!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side h4{margin:2px 0 6px!important;font-size:clamp(24px,2.2vw,32px)!important;line-height:1.1!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-included .roby-inclusion-side h4{color:#244d2a!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-excluded .roby-inclusion-side h4{color:#a93d0d!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side p{max-width:none!important;margin:0!important;color:var(--roby-body-color,inherit)!important;opacity:.72!important;font-size:12px!important;font-weight:600!important;letter-spacing:.12em!important;text-transform:uppercase!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-accent,.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-africa{display:none!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-items,.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel.is-open .roby-inclusion-items,.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel:not(.is-open) .roby-inclusion-items{display:block!important;max-width:none!important;max-height:none!important;overflow:visible!important;opacity:1!important;visibility:visible!important;padding:14px 28px 72px!important;transition:none!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item{display:flex!important;align-items:center!important;gap:13px!important;min-height:0!important;padding:12px 0!important;border-bottom:0!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-icon{display:flex!important;flex:0 0 32px!important;width:32px!important;height:32px!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;background:rgba(255,255,255,.58)!important;font-family:Arial,sans-serif!important;font-size:17px!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-included .roby-inclusion-icon{color:#315d2f!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-excluded .roby-inclusion-icon{color:#b94d12!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-card-note{position:absolute!important;left:28px!important;bottom:18px!important;z-index:3!important;font-family:var(--roby-font-heading,inherit)!important;font-size:15px!important;font-style:italic!important;opacity:.82!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-included .roby-inclusion-card-note{color:#315d2f!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-excluded .roby-inclusion-card-note{color:#b94d12!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-scene{display:block!important;position:absolute!important;right:-15px!important;bottom:-10px!important;width:260px!important;opacity:.08!important;pointer-events:none!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-included .roby-inclusion-scene{color:#315d2f!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-excluded .roby-inclusion-scene{color:#b94d12!important}
@media(max-width:900px){.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{grid-template-columns:1fr!important;gap:18px!important}}@media(max-width:620px){.safari-hub-itinerary .roby-inclusions-kicker:before,.safari-hub-itinerary .roby-inclusions-kicker:after{width:42px!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side{min-height:124px!important;padding:22px 18px 18px 82px!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side-mark{left:18px!important;top:22px!important;width:48px!important;height:48px!important;font-size:27px!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-items,.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel.is-open .roby-inclusion-items,.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel:not(.is-open) .roby-inclusion-items{padding:10px 18px 62px!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-card-note{left:18px!important}.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-scene{width:190px!important}}


/* ==========================================================
   v1.15.16 — INCLUDED / NOT INCLUDED DISPLAY FIX
   Compact light cards, high contrast, no divider columns.
   ========================================================== */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
    gap:24px !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel{
    position:relative !important;
    display:flex !important;
    flex-direction:column !important;
    min-height:0 !important;
    height:auto !important;
    overflow:hidden !important;
    border-radius:14px !important;
    box-shadow:none !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-included{
    background:#f3f7ee !important;
    border:1px solid #d9e5d1 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-excluded{
    background:#fff8f1 !important;
    border:1px solid #efd9c5 !important;
}

/* Compact header: remove the large solid green/orange block. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-included .roby-inclusion-side,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-excluded .roby-inclusion-side{
    position:relative !important;
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    height:auto !important;
    padding:24px 24px 20px 94px !important;
    box-sizing:border-box !important;
    overflow:visible !important;
    background:transparent !important;
    background-image:none !important;
    border:0 !important;
    border-bottom:1px solid rgba(0,0,0,.075) !important;
    border-radius:0 !important;
    color:inherit !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side::before,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side::after,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-accent,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-africa{
    display:none !important;
    content:none !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side-mark{
    position:absolute !important;
    top:22px !important;
    left:24px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:52px !important;
    height:52px !important;
    margin:0 !important;
    border:0 !important;
    border-radius:50% !important;
    color:#fff !important;
    font-family:Arial,sans-serif !important;
    font-size:29px !important;
    font-weight:400 !important;
    line-height:1 !important;
    box-shadow:none !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-included .roby-inclusion-side-mark{
    background:#356333 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-excluded .roby-inclusion-side-mark{
    background:#c65316 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side h4{
    margin:0 0 7px !important;
    padding:0 !important;
    background:none !important;
    text-shadow:none !important;
    opacity:1 !important;
    font-family:var(--roby-font-other-heading,var(--roby-font-heading,inherit)) !important;
    font-size:clamp(24px,2.2vw,32px) !important;
    font-weight:var(--roby-other-heading-weight,600) !important;
    line-height:1.12 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-included .roby-inclusion-side h4{
    color:#244d2a !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-excluded .roby-inclusion-side h4{
    color:#a94312 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side p{
    display:block !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    opacity:1 !important;
    color:#343434 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:11px !important;
    font-weight:600 !important;
    line-height:1.45 !important;
    letter-spacing:.12em !important;
    text-transform:uppercase !important;
}

/* Remove decorative footer text that was getting lost in the card. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-card-note{
    display:none !important;
}

/* Keep a very subtle safari silhouette only. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-scene{
    display:block !important;
    position:absolute !important;
    right:-12px !important;
    bottom:-8px !important;
    width:220px !important;
    height:auto !important;
    opacity:.045 !important;
    pointer-events:none !important;
    z-index:0 !important;
}

/* Always-visible compact list. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-items,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel.is-open .roby-inclusion-items,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel:not(.is-open) .roby-inclusion-items{
    position:relative !important;
    z-index:1 !important;
    display:block !important;
    width:100% !important;
    max-width:none !important;
    max-height:none !important;
    min-height:0 !important;
    height:auto !important;
    margin:0 !important;
    padding:13px 24px 20px !important;
    overflow:visible !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    background:transparent !important;
    background-image:none !important;
    border:0 !important;
    columns:auto !important;
    column-count:1 !important;
    column-gap:0 !important;
    transition:none !important;
}

/* Kill old column/divider rules from previous versions. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-items::before,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-items::after{
    display:none !important;
    content:none !important;
    border:0 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    width:100% !important;
    min-height:0 !important;
    margin:0 !important;
    padding:9px 0 !important;
    border:0 !important;
    border-left:0 !important;
    border-right:0 !important;
    border-bottom:0 !important;
    break-inside:avoid !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item::before,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item::after{
    display:none !important;
    content:none !important;
    border:0 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-icon{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 31px !important;
    width:31px !important;
    height:31px !important;
    margin:0 !important;
    border:0 !important;
    border-radius:50% !important;
    color:#fff !important;
    font-family:Arial,sans-serif !important;
    font-size:15px !important;
    font-weight:700 !important;
    line-height:1 !important;
    opacity:1 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-included .roby-inclusion-icon{
    background:#2f683c !important;
    color:#fff !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-excluded .roby-inclusion-icon{
    background:#d55a16 !important;
    color:#fff !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item > span:last-child{
    display:block !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    color:#252525 !important;
    opacity:1 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:1.45 !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        grid-template-columns:1fr !important;
        gap:18px !important;
    }
}

@media(max-width:620px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side,
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-included .roby-inclusion-side,
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel-excluded .roby-inclusion-side{
        padding:20px 18px 17px 78px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side-mark{
        top:19px !important;
        left:18px !important;
        width:45px !important;
        height:45px !important;
        font-size:25px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-items,
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel.is-open .roby-inclusion-items,
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel:not(.is-open) .roby-inclusion-items{
        padding:10px 18px 16px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item{
        padding:8px 0 !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-scene{
        width:170px !important;
    }
}


/* ==========================================================
   v1.15.17 — INCLUDED / NOT INCLUDED REFINEMENT
   - title icon only
   - no list icons
   - no watermark artwork
   - 2-column lists on desktop
   - subtitles inherit site Body typography
   ========================================================== */

/* Main section subtitle uses site Body typography. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-intro p{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.5) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-body-color,inherit) !important;
}

/* Card subtitles also use the site Body font family/metrics. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side p{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.5) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    text-transform:none !important;
    color:var(--roby-body-color,inherit) !important;
    opacity:.78 !important;
}

/* Keep icon only in the card title/header area. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-icon{
    display:none !important;
}

/* Remove all watermark / decorative safari artwork. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-scene,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-africa,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-map{
    display:none !important;
    opacity:0 !important;
    visibility:hidden !important;
}

/* Two-column item list so long inclusions/exclusions stay compact. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-items,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel.is-open .roby-inclusion-items,
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel:not(.is-open) .roby-inclusion-items{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    column-gap:28px !important;
    row-gap:0 !important;
    padding:16px 24px 20px !important;
}

/* Without list icons, items align cleanly from the text edge. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item{
    display:block !important;
    width:100% !important;
    padding:10px 0 !important;
    margin:0 !important;
    border:0 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item > span:last-child{
    display:block !important;
    width:100% !important;
}

/* Tablet/mobile: one column for readability. */
@media(max-width:780px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-items,
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel.is-open .roby-inclusion-items,
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel:not(.is-open) .roby-inclusion-items{
        grid-template-columns:1fr !important;
        column-gap:0 !important;
    }
}


/* ==========================================================
   v1.15.18 — BODY TYPOGRAPHY ONLY
   IMPORTANT: This block changes typography only.
   No layout, spacing, tabs, scrolling, image, or grid rules.
   ========================================================== */

/* Classic itinerary body/WYSIWYG text */
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-day-text,
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-day-text p,
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-day-text li,
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-day-text ul,
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-day-text ol,
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-activities-content,
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-activities-content p,
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-activities-content li,
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-meal-name,
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-accommodation-name{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-body-color,inherit) !important;
}

/* Included / Not Included body copy uses the same saved Body Typography. */
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-inclusions-intro p,
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-inclusion-side p,
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-inclusion-item > span:last-child{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-body-color,inherit) !important;
}

/* Keep the card subtitles as normal body text, not uppercase UI text. */
.safari-hub-itinerary.roby-layout-classic-split[data-typography-mode="custom"] .roby-inclusion-side p{
    text-transform:none !important;
}


/* ==========================================================
   v1.15.19 — CUSTOM BODY FONT FINAL AUTHORITY
   Typography only. No layout/spacing/scroll changes.
   ========================================================== */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text blockquote,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activity-richtext,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activity-richtext p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activity-richtext li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-meal-name,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-accommodation-name,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusions-intro p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusion-side p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusion-item > span:last-child{
    font-family:var(--roby-font-body,inherit) !important;
}


/* ==========================================================
   v1.15.20 — CLASSIC INCLUSIONS SMALL REFINEMENTS ONLY
   ========================================================== */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-intro{
    margin-bottom:12px !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item{
    border-bottom:1px solid rgba(0,0,0,.075) !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item:last-child{
    border-bottom:0 !important;
}


/* ==========================================================
   v1.15.21 — FINAL CLASSIC EMPTY-SPACE FIX
   The locked itinerary keeps its existing height/scroll behavior.
   Included / Not Included is visually pulled into only unused final-day space.
   ========================================================== */
@media(min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        margin-top:calc(-1 * var(--roby-final-empty-gap, 0px)) !important;
    }
}


/* ==========================================================
   v1.15.22 — SAFE FINAL-DAY SPACING
   Never pull Included / Not Included over the itinerary.
   The previous negative-margin lift could overlap the final day's Meals,
   Activities or text. Keep normal document flow instead.
   ========================================================== */
@media(min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        margin-top:24px !important;
    }
}


/* ==========================================================
   v1.15.23 — REMOVE ONLY VERIFIED EMPTY FINAL-DAY SPACE
   ========================================================== */
@media(min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        margin-top:calc(24px - var(--roby-safe-final-gap, 0px)) !important;
    }
}


/* ==========================================================
   v1.15.24 — ONLY REQUESTED INCLUSION CARD CHANGES
   1. Smaller title icon
   2. Border increases by 1px on hover
   ========================================================== */

/* Reduce Included / Not Included title icon size only. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side-mark{
    width:44px !important;
    height:44px !important;
    font-size:24px !important;
}

/* Keep title alignment tidy after reducing only the icon. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side{
    padding-left:84px !important;
}

/* Existing card border is 1px; hover increases it by exactly 1px. */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-panel:hover{
    border-width:2px !important;
}

@media(max-width:620px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side-mark{
        width:39px !important;
        height:39px !important;
        font-size:21px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-side{
        padding-left:70px !important;
    }
}


/* ==========================================================
   v1.15.25 — ONLY REQUESTED CHANGE: LIST BULLETS
   ========================================================== */
.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item{
    position:relative !important;
    padding-left:20px !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-inclusion-item::before{
    content:"" !important;
    display:block !important;
    position:absolute !important;
    left:0 !important;
    top:50% !important;
    width:6px !important;
    height:6px !important;
    margin-top:-3px !important;
    border:0 !important;
    border-radius:50% !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel-included .roby-inclusion-item::before{
    background:#2f683c !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-inclusion-panel-excluded .roby-inclusion-item::before{
    background:#d55a16 !important;
}


/* ==========================================================
   v1.15.26 — ONLY REQUESTED CHANGE:
   Timeline + Note itinerary copy uses saved Body Font
   ========================================================== */

/* Luxury Timeline itinerary/WYSIWYG body copy */
.safari-hub-itinerary.roby-layout-luxury-timeline[data-typography-mode="custom"] .roby-luxury-itinerary-copy,
.safari-hub-itinerary.roby-layout-luxury-timeline[data-typography-mode="custom"] .roby-luxury-itinerary-copy p,
.safari-hub-itinerary.roby-layout-luxury-timeline[data-typography-mode="custom"] .roby-luxury-itinerary-copy li,
.safari-hub-itinerary.roby-layout-luxury-timeline[data-typography-mode="custom"] .roby-luxury-itinerary-copy ul,
.safari-hub-itinerary.roby-layout-luxury-timeline[data-typography-mode="custom"] .roby-luxury-itinerary-copy ol,
.safari-hub-itinerary.roby-layout-luxury-timeline[data-typography-mode="custom"] .roby-luxury-itinerary-copy blockquote{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-body-color,inherit) !important;
}

/* Note Layout itinerary/WYSIWYG body copy */
.safari-hub-itinerary.roby-layout-note-layout[data-typography-mode="custom"] .roby-note-content,
.safari-hub-itinerary.roby-layout-note-layout[data-typography-mode="custom"] .roby-note-content p,
.safari-hub-itinerary.roby-layout-note-layout[data-typography-mode="custom"] .roby-note-content li,
.safari-hub-itinerary.roby-layout-note-layout[data-typography-mode="custom"] .roby-note-content ul,
.safari-hub-itinerary.roby-layout-note-layout[data-typography-mode="custom"] .roby-note-content ol,
.safari-hub-itinerary.roby-layout-note-layout[data-typography-mode="custom"] .roby-note-content blockquote,
.safari-hub-itinerary.roby-layout-note-layout[data-typography-mode="custom"] .roby-note-itinerary,
.safari-hub-itinerary.roby-layout-note-layout[data-typography-mode="custom"] .roby-note-itinerary p,
.safari-hub-itinerary.roby-layout-note-layout[data-typography-mode="custom"] .roby-note-itinerary li{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-body-color,inherit) !important;
}


/* ==========================================================
   v1.15.27 — ONLY REQUESTED CHANGE:
   Included / Not Included also shown on Timeline + Note
   ========================================================== */
.safari-hub-itinerary.roby-inclusions-only{
    min-height:0 !important;
    height:auto !important;
    overflow:visible !important;
}

.safari-hub-itinerary.roby-inclusions-only .roby-inclusions-section{
    margin-top:36px !important;
}


/* ==========================================================
   v1.15.28 — SAME GLOBAL SETTINGS ACROSS ALL 3 LAYOUTS
   The layouts differ only in structure/design. Shared typography
   and global style settings use the same saved values everywhere.
   ========================================================== */

/* PRIMARY ITINERARY HEADING */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-primary-itinerary-heading,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-itinerary-heading{
    font-family:var(--roby-font-heading,var(--roby-font-body,inherit)) !important;
    font-size:var(--roby-heading-size,34px) !important;
    font-weight:var(--roby-heading-weight,600) !important;
    line-height:var(--roby-heading-line-height,1.2) !important;
    letter-spacing:var(--roby-heading-letter-spacing,0px) !important;
    color:var(--roby-heading-color,#171717) !important;
}

/* DAY TITLES — SAME SETTING IN CLASSIC, TIMELINE AND NOTE */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-main-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-title-heading,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-title-wrap .roby-day-title-heading,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-title .roby-day-title-heading{
    font-family:var(--roby-font-heading,var(--roby-font-body,inherit)) !important;
    font-size:var(--roby-heading-size,34px) !important;
    font-weight:var(--roby-heading-weight,600) !important;
    line-height:var(--roby-heading-line-height,1.2) !important;
    letter-spacing:var(--roby-heading-letter-spacing,0px) !important;
    color:var(--roby-heading-color,#171717) !important;
}

/* BODY / WYSIWYG — SAME SETTING IN ALL 3 LAYOUTS */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-itinerary-copy,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-itinerary-copy p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-itinerary-copy li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-meal-name,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-accommodation-name,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusions-intro p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusion-side p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusion-item > span:last-child{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-body-color,inherit) !important;
}

/* ACTIVITY BODY TEXT — SAME SETTING IN ALL 3 LAYOUTS */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-activities-copy,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-activities-copy p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-activities-copy li,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities li{
    font-family:var(--roby-font-activity,var(--roby-font-body,inherit)) !important;
    font-size:var(--roby-activity-size,var(--roby-body-size,16px)) !important;
    font-weight:var(--roby-activity-weight,var(--roby-body-weight,400)) !important;
    line-height:var(--roby-activity-line-height,var(--roby-body-line-height,1.6)) !important;
    letter-spacing:var(--roby-activity-letter-spacing,var(--roby-body-letter-spacing,0px)) !important;
    color:var(--roby-body-color,inherit) !important;
}

/* SECTION HEADINGS — SAME SETTING IN ALL 3 LAYOUTS */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-section-heading h4,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-feature-heading h4,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities h4,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-activities-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-meals-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusion-side h4{
    font-family:var(--roby-font-other-heading,var(--roby-font-heading,inherit)) !important;
    font-size:var(--roby-other-heading-size,22px) !important;
    font-weight:var(--roby-other-heading-weight,600) !important;
    line-height:var(--roby-other-heading-line-height,1.3) !important;
    letter-spacing:var(--roby-other-heading-letter-spacing,0px) !important;
    color:var(--roby-section-heading-color,#171717) !important;
}

/* DAY NUMBER — SAME SETTING WHERE EACH LAYOUT SHOWS A NUMBER */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-big-number,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-number,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-side strong{
    font-family:var(--roby-font-day-number,var(--roby-font-heading,inherit)) !important;
    font-size:var(--roby-day-number-size,58px) !important;
    font-weight:var(--roby-day-number-weight,600) !important;
    color:var(--roby-day-number-color,#c98a12) !important;
}

/* DAY LABEL — SAME SETTING WHERE EACH LAYOUT SHOWS A LABEL */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-small-label,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-day-label,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-day-word{
    font-family:var(--roby-font-day-label,var(--roby-font-heading,inherit)) !important;
    font-size:var(--roby-day-label-size,11px) !important;
    font-weight:var(--roby-day-label-weight,600) !important;
    letter-spacing:var(--roby-day-label-letter-spacing,1.8px) !important;
    color:var(--roby-day-label-color,#6f675f) !important;
}

/* TAB / JOURNEY LABEL TYPOGRAPHY — SAME SAVED TAB SETTING */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-tab-title,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-tab-label,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-summary{
    font-family:var(--roby-font-tab,var(--roby-font-body,inherit)) !important;
    font-size:var(--roby-tab-size,16px) !important;
    font-weight:var(--roby-tab-weight,600) !important;
    letter-spacing:var(--roby-tab-letter-spacing,0px) !important;
    color:var(--roby-tab-color,#171717) !important;
}


/* ==========================================================
   v1.15.29 — ONLY REQUESTED FIX:
   Classic Day 1 + last day visual-title left padding
   ========================================================== */
@media(min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-visual-day:first-child .roby-visual-title,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-visual-day:last-child .roby-visual-title{
        padding-left:8px !important;
        padding-right:8px !important;
    }
}


/* ==========================================================
   v1.15.30 — ONLY REQUESTED FIX:
   Classic first + last day image inset like middle days
   ========================================================== */
@media(min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-visual-day:first-child,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-visual-day:last-child{
        padding-left:24px !important;
        padding-right:24px !important;
        box-sizing:border-box !important;
    }

    /* The panel padding now provides the same inset for image and title,
       so remove the temporary title-only inset from v1.15.29. */
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-visual-day:first-child .roby-visual-title,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-visual-day:last-child .roby-visual-title{
        padding-left:0 !important;
        padding-right:0 !important;
    }
}


/* ==========================================================
   v1.15.31 — BODY FONT AUTHORITY ONLY
   The saved Body Font applies to body content, not titles.
   ========================================================== */

/* Classic itinerary + activities body */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text *,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content *,

/* Luxury Timeline itinerary + activities body */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-itinerary-copy,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-itinerary-copy *,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-activities-copy,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-activities-copy *,

/* Note itinerary + activities body */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story *,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-content *,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-itinerary,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-itinerary *,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities *,

/* Included / Not Included body content only */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusions-intro p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusion-side p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusion-item,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusion-item *{
    font-family:var(--roby-font-body, inherit) !important;
}


/* ==========================================================
   v1.15.35 — BODY FONT FINAL APPLICATION ONLY
   Saved Body Font is authoritative for itinerary prose,
   activities prose and Included / Not Included body content.
   Titles/headings remain controlled by their own typography.
   ========================================================== */
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-day-text :where(p,ul,ol,li,span,strong,em,a,blockquote),
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-activities-content :where(p,ul,ol,li,span,strong,em,a,blockquote),
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-itinerary-copy,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-itinerary-copy :where(p,ul,ol,li,span,strong,em,a,blockquote),
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-activities-copy,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-luxury-activities-copy :where(p,ul,ol,li,span,strong,em,a,blockquote),
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-story :where(p,ul,ol,li,span,strong,em,a,blockquote),
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-content,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-content :where(p,ul,ol,li,span,strong,em,a,blockquote),
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-itinerary,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-itinerary :where(p,ul,ol,li,span,strong,em,a,blockquote),
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-note-activities :where(p,ul,ol,li,span,strong,em,a,blockquote),
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusions-intro p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusion-side p,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusion-item,
.safari-hub-itinerary[data-typography-mode="custom"] .roby-inclusion-item :where(span,strong,em,a){
    font-family:var(--roby-font-body, var(--safari-custom-body-font, inherit)) !important;
}

/* v1.15.37 — CLASSIC LAST DAY ONLY */
@media (min-width:768px){
.safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-content .roby-itinerary-day:last-child{
 overflow:visible !important;padding-bottom:24px !important;min-height:max-content !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-content .roby-itinerary-day:last-child .roby-day-meals-row{
 display:flex !important;visibility:visible !important;opacity:1 !important;position:relative !important;z-index:2 !important;
}
.safari-hub-itinerary.roby-layout-classic-split:not(:has(.roby-inclusions-section)) .roby-itinerary-content{padding-bottom:0 !important;}
.safari-hub-itinerary.roby-layout-classic-split:not(:has(.roby-inclusions-section)) .roby-itinerary-day:last-child{margin-bottom:0 !important;}
}

/* ==========================================================
   v1.15.38 — NO-INCLUSIONS FINAL EMPTY SPACE ONLY
   Uses the existing safe final-day measurement. The reduction
   applies only when no Included / Not Included content exists.
   ========================================================== */
@media (min-width:768px){
.safari-hub-itinerary.roby-layout-classic-split.roby-no-inclusions:has(.roby-itinerary-day:last-child.is-active-last){
    margin-bottom:calc(-1 * var(--roby-no-inclusions-final-gap, 0px)) !important;
}
}


/* ==========================================================
   v1.15.39 — LONG FINAL DAY SCROLL SAFETY
   A long final Classic day must keep its natural content height
   inside the existing inner scroller. Short-day gap collapsing
   is still handled by the measured JS logic above.
   ========================================================== */
@media (min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content
    .roby-itinerary-day:last-child{
        min-height:0 !important;
        height:auto !important;
        overflow:visible !important;
        padding-bottom:24px !important;
    }
}


/* ==========================================================
   v1.15.40 — FINAL DAY SCROLLER MUST REACH TRUE CONTENT END
   Only a long, active final Classic day gets extra bottom
   scroll range. This keeps Activities / Meals fully reachable.
   ========================================================== */
@media (min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split.roby-long-final-day
    .roby-itinerary-content{
        padding-bottom:var(--roby-final-scroll-reserve, 140px) !important;
    }

    /* Never apply the no-inclusions negative pull while a long final
       day still needs its full scroll range. */
    .safari-hub-itinerary.roby-layout-classic-split.roby-long-final-day.roby-no-inclusions{
        margin-bottom:0 !important;
    }
}


/* ==========================================================
   v1.15.42 — ONLY REQUESTED RESPONSIVE VISUAL CHANGES
   1. Smaller accommodation-gallery + icon.
   2. Classic Safari Photo of the Day visible on tablet/mobile.
   ========================================================== */

/* Smaller accommodation image + icon on all devices. */
.safari-hub-itinerary .roby-accommodation-gallery .roby-gallery-zoom{
    width:28px !important;
    height:28px !important;
    font-size:18px !important;
}

/* Tablet / mobile Classic layout: restore the visual column that older
   responsive CSS hid completely. Only the active day's visual is shown. */
@media (max-width:900px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-itinerary-visuals{
        display:block !important;
        width:100% !important;
        height:auto !important;
        min-height:0 !important;
        margin-top:22px !important;
        overflow:visible !important;
        background:#f4f3f0 !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-visual-sticky{
        position:relative !important;
        top:auto !important;
        width:100% !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        padding:18px !important;
        overflow:visible !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-visual-day{
        position:static !important;
        inset:auto !important;
        display:none !important;
        width:100% !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        padding:0 !important;
        overflow:visible !important;
        opacity:0 !important;
        visibility:hidden !important;
        pointer-events:none !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-visual-day.is-active{
        display:block !important;
        opacity:1 !important;
        visibility:visible !important;
        pointer-events:auto !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-day-image{
        display:block !important;
        width:100% !important;
        height:auto !important;
        max-height:none !important;
        overflow:hidden !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-day-image img{
        display:block !important;
        width:100% !important;
        height:auto !important;
        max-height:none !important;
        object-fit:cover !important;
    }
}

@media (max-width:600px){
    .safari-hub-itinerary .roby-accommodation-gallery .roby-gallery-zoom{
        width:24px !important;
        height:24px !important;
        font-size:16px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-visual-sticky{
        padding:14px !important;
    }
}


/* ==========================================================
   v1.15.43 — RELIABLE MOBILE/TABLET SAFARI PHOTO OF THE DAY
   Each Classic day carries its own responsive Safari Photo on
   small screens instead of relying on the desktop visual panel.
   ========================================================== */
.roby-mobile-day-photo{display:none;}

@media (max-width:900px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-mobile-day-photo{
        display:block !important;
        grid-column:1 / -1 !important;
        width:100% !important;
        margin:16px 0 22px !important;
        overflow:hidden !important;
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-mobile-day-photo img{
        display:block !important;
        width:100% !important;
        height:auto !important;
        aspect-ratio:16 / 10;
        object-fit:cover !important;
    }
    /* Avoid showing the same Safari Photo twice on small screens. */
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-visuals .roby-day-image{
        display:none !important;
    }
}


/* ==========================================================
   v1.15.44 — MOBILE DAY NUMBER / DAY LABEL GAP ONLY
   Keep the large number and its DAY label as one compact unit.
   ========================================================== */
@media (max-width:767px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-day-number-block{
        display:flex !important;
        flex-direction:column !important;
        align-items:flex-start !important;
        justify-content:flex-start !important;
        gap:3px !important;
        height:auto !important;
        min-height:0 !important;
        margin:0 !important;
        padding:0 !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split h3.roby-day-big-number{
        margin:0 !important;
        padding:0 !important;
        line-height:.9 !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split h3.roby-day-small-label{
        margin:0 0 0 2px !important;
        padding:0 !important;
        line-height:1.1 !important;
    }
}


/* ==========================================================
   v1.15.45 — TIMELINE BODY FONT UNIFORMITY ONLY
   Timeline prose uses the same saved Body Font as all layouts.
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline[data-typography-mode="custom"] .roby-luxury-itinerary-copy,
.safari-hub-itinerary.roby-layout-luxury-timeline[data-typography-mode="custom"] .roby-luxury-itinerary-copy :where(p,ul,ol,li,span,strong,em,a,blockquote),
.safari-hub-itinerary.roby-layout-luxury-timeline[data-typography-mode="custom"] .roby-luxury-activities-copy,
.safari-hub-itinerary.roby-layout-luxury-timeline[data-typography-mode="custom"] .roby-luxury-activities-copy :where(p,ul,ol,li,span,strong,em,a,blockquote){
    font-family:var(--roby-font-body, var(--safari-custom-body-font, inherit)) !important;
}


/* ==========================================================
   v1.15.46 — LUXURY EDITORIAL TIMELINE REDESIGN ONLY
   Scoped entirely to Luxury Timeline. Classic + Note untouched.
   Existing global typography variables remain authoritative.
   ========================================================== */

.safari-hub-itinerary.roby-layout-luxury-timeline{
    --roby-timeline-ink:#1b1b1b;
    --roby-timeline-muted:#77736d;
    --roby-timeline-line:rgba(27,27,27,.15);
    --roby-timeline-surface:#f7f5f0;
}

/* Overall journey rhythm */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-timeline{
    position:relative;
    max-width:1180px;
    margin-left:auto;
    margin-right:auto;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
    position:relative !important;
    padding-top:54px !important;
    padding-bottom:72px !important;
    column-gap:42px !important;
}

/* Refined spine */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::before{
    opacity:.72 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::after{
    box-shadow:0 0 0 7px #fff !important;
}

/* Day number / label hierarchy */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number{
    line-height:.86 !important;
    letter-spacing:-.045em !important;
    margin-bottom:10px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-label{
    display:inline-block !important;
    margin-top:4px !important;
    text-transform:uppercase !important;
}

/* Editorial title area */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-title-wrap{
    padding-bottom:22px !important;
    margin-bottom:24px !important;
    border-bottom:1px solid var(--roby-timeline-line) !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-title-wrap .roby-day-title-heading{
    margin-top:0 !important;
    margin-bottom:0 !important;
    max-width:820px !important;
}

/* Body remains governed by the saved Body Font from v1.15.45 */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-copy{
    max-width:820px !important;
    margin-bottom:30px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-copy > :first-child,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-copy > :first-child{
    margin-top:0 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-copy > :last-child,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-copy > :last-child{
    margin-bottom:0 !important;
}

/* Safari Photo becomes a stronger editorial feature */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-image,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-visual,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-photo{
    overflow:hidden !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-image img,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-visual img,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-photo img{
    width:100% !important;
    object-fit:cover !important;
    transition:transform .45s ease !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-image:hover img,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-visual:hover img,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-photo:hover img{
    transform:scale(1.018) !important;
}

/* Activities: quiet premium section rather than a heavy box */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
    margin-top:34px !important;
    padding:25px 0 0 !important;
    border-top:1px solid var(--roby-timeline-line) !important;
    background:transparent !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-section-heading{
    margin:0 0 16px !important;
}

/* Meals: compact finishing detail */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals{
    margin-top:24px !important;
    padding-top:18px !important;
    border-top:1px solid rgba(27,27,27,.09) !important;
    gap:10px 18px !important;
}

/* Accommodation feels connected to the day's photography */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation{
    margin-top:28px !important;
    padding-top:0 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-name{
    margin-top:12px !important;
}

/* Tablet: preserve timeline identity without squeezing content */
@media (min-width:768px) and (max-width:1024px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        padding-top:42px !important;
        padding-bottom:58px !important;
        column-gap:24px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-title-wrap{
        padding-bottom:18px !important;
        margin-bottom:20px !important;
    }
}

/* Mobile: compact editorial timeline */
@media (max-width:767px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-timeline{
        padding-left:0 !important;
        padding-right:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        padding-top:34px !important;
        padding-bottom:48px !important;
        column-gap:14px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number{
        margin-bottom:5px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-label{
        margin-top:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-title-wrap{
        padding-bottom:15px !important;
        margin-bottom:18px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-copy{
        margin-bottom:24px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        margin-top:26px !important;
        padding-top:20px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals{
        margin-top:20px !important;
        padding-top:15px !important;
    }
}


/* ==========================================================
   v1.15.47 — TIMELINE PREMIUM TWO-COLUMN COMPOSITION ONLY
   Requested:
   - Itinerary + Safari Photo side by side
   - Activities + Accommodation side by side
   - Activities inner padding 10px
   - Meals are a simple Classic-style list, not a card
   ========================================================== */
@media (min-width:901px){
    /* The day content becomes a deliberate editorial two-column composition. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
        column-gap:28px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-head{
        grid-column:1 / -1 !important;
    }

    /* Existing feature row is split: Safari Photo sits in the right column.
       Accommodation remains available below as the partner to Activities. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-feature-row{
        display:contents !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card{
        grid-column:2 !important;
        grid-row:2 !important;
        margin:0 !important;
        align-self:stretch !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section{
        grid-column:1 !important;
        grid-row:2 !important;
        margin:0 !important;
        padding:10px 8px 10px 0 !important;
        align-self:stretch !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo{
        height:100% !important;
        min-height:340px !important;
        max-height:460px !important;
    }

    /* Activities + Accommodation form the second premium row. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-info-row{
        display:contents !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        grid-column:1 !important;
        grid-row:3 !important;
        margin-top:28px !important;
        align-self:stretch !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
        grid-column:2 !important;
        grid-row:3 !important;
        margin-top:28px !important;
        align-self:stretch !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-feature{
        height:100% !important;
        min-height:300px !important;
        max-height:390px !important;
    }

    /* Meals are a finishing line below both columns. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        grid-column:1 / -1 !important;
        grid-row:4 !important;
    }
}

/* Activities: exactly 10px inner padding on every side. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-info-card.roby-luxury-activities{
    padding:10px !important;
    box-sizing:border-box !important;
}

/* Meals: remove card treatment and present them like the Classic meal list. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    padding:0 !important;
    margin-top:24px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card .roby-luxury-section-heading{
    margin-bottom:10px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:10px 24px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals > span{
    display:inline-flex !important;
    width:auto !important;
    min-width:0 !important;
    min-height:0 !important;
    grid-template-columns:none !important;
    align-items:center !important;
    gap:8px !important;
    padding:0 !important;
    border:0 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals > span > b{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:auto !important;
    min-width:0 !important;
    height:auto !important;
    flex:0 0 auto !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    font-size:13px !important;
    line-height:1 !important;
}

@media (max-width:900px){
    /* Keep the premium flow readable on tablets/phones. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-info-card.roby-luxury-activities{
        padding:10px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals{
        flex-direction:row !important;
        gap:10px 18px !important;
    }
}


/* ==========================================================
   v1.15.48 — TIMELINE SIDE-BY-SIDE STRUCTURAL FIX ONLY
   v1.15.47 assigned grid positions but the day itself was not
   explicitly a grid container. This makes the requested pairs
   physically share the same desktop rows.
   ========================================================== */
@media (min-width:901px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
        grid-template-rows:auto auto auto auto !important;
        column-gap:28px !important;
        row-gap:0 !important;
        align-items:stretch !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-rail-marker{
        position:absolute !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-day-head{
        grid-column:1 / -1 !important;
        grid-row:1 !important;
        width:100% !important;
    }

    /* Flatten only the two legacy wrappers so their cards become direct
       participants in the day grid. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-feature-row,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-info-row{
        display:contents !important;
    }

    /* ROW 2: itinerary left + Safari Photo right */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-itinerary-section{
        grid-column:1 !important;
        grid-row:2 !important;
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        align-self:stretch !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card{
        grid-column:2 !important;
        grid-row:2 !important;
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        align-self:stretch !important;
    }

    /* ROW 3: activities left + accommodation right */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        grid-column:1 !important;
        grid-row:3 !important;
        width:100% !important;
        min-width:0 !important;
        margin:28px 0 0 !important;
        align-self:stretch !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
        grid-column:2 !important;
        grid-row:3 !important;
        width:100% !important;
        min-width:0 !important;
        margin:28px 0 0 !important;
        align-self:stretch !important;
    }

    /* Meals remain unboxed and span the full width underneath. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        grid-column:1 / -1 !important;
        grid-row:4 !important;
        width:100% !important;
    }
}


/* ==========================================================
   v1.15.49 — TIMELINE PREMIUM CONTENT ORDER ONLY
   Desktop composition:
   Row 2: Itinerary | Safari Photo
   Row 3: Meals under Itinerary
   Row 4: Accommodation | Activities
   ========================================================== */
@media (min-width:901px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        grid-template-rows:auto auto auto auto !important;
        column-gap:30px !important;
    }

    /* Itinerary left + Safari Photo right */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-itinerary-section{
        grid-column:1 !important;
        grid-row:2 !important;
        padding:12px 12px 12px 0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card{
        grid-column:2 !important;
        grid-row:2 !important;
    }

    /* Meals directly under the itinerary, left column only. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        grid-column:1 !important;
        grid-row:3 !important;
        align-self:start !important;
        margin:18px 0 0 !important;
        padding:16px 0 0 !important;
        border-top:1px solid rgba(27,27,27,.10) !important;
    }

    /* Accommodation LEFT + Activities RIGHT */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
        grid-column:1 !important;
        grid-row:4 !important;
        margin:34px 0 0 !important;
        align-self:stretch !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        grid-column:2 !important;
        grid-row:4 !important;
        margin:34px 0 0 !important;
        align-self:stretch !important;
    }

    /* Give the paired lower row a balanced premium presence. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        min-height:300px !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-feature{
        min-height:300px !important;
        height:100% !important;
        max-height:390px !important;
    }
}

/* Keep Activities neat with the requested 10px padding. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-info-card.roby-luxury-activities{
    padding:10px !important;
}

/* Refine the simple meal line without turning it back into a box. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
    background:transparent !important;
    box-shadow:none !important;
    border-left:0 !important;
    border-right:0 !important;
    border-bottom:0 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card .roby-luxury-section-heading h4{
    margin:0 !important;
}

@media (max-width:900px){
    /* Mobile/tablet keep a natural readable sequence. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        margin-top:18px !important;
        padding-top:14px !important;
        border-top:1px solid rgba(27,27,27,.10) !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-info-card.roby-luxury-activities{
        padding:10px !important;
    }
}


/* ==========================================================
   v1.15.50 — MEALS DIRECTLY UNDER ITINERARY ONLY
   Keep the existing Timeline composition; remove the grid-row
   separation so Meals visually continue immediately after the
   itinerary in the left column.
   ========================================================== */
@media (min-width:901px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        grid-template-rows:auto auto auto auto !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-itinerary-section{
        grid-column:1 !important;
        grid-row:2 !important;
        align-self:start !important;
        padding-bottom:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        grid-column:1 !important;
        grid-row:2 !important;
        align-self:end !important;
        position:relative !important;
        z-index:2 !important;
        margin:0 !important;
        padding:14px 0 0 !important;
        border-top:1px solid rgba(27,27,27,.10) !important;
    }

    /* Reserve only the actual meals area inside the same left-hand row,
       so it sits immediately below itinerary text rather than in a
       separate full-width grid band. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day:has(.roby-luxury-meals-card)
    > .roby-luxury-itinerary-section{
        padding-bottom:92px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
        grid-row:3 !important;
        margin-top:34px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        grid-row:3 !important;
        margin-top:34px !important;
    }
}


/* ==========================================================
   v1.15.51 — TIMELINE ACCOMMODATION + ICON ONLY
   White icon background with black +.
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus{
    background:#fff !important;
    color:#000 !important;
    border-color:#fff !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus::before,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus::after,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus span::before,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus span::after{
    background:#000 !important;
    border-color:#000 !important;
}


/* ==========================================================
   v1.15.52 — TIMELINE ITINERARY / MEALS COMPACT FLOW
   Implements the approved visual: Meals begin directly after
   itinerary copy in the left column, while Safari Photo stays
   alongside. No artificial reserved blank area.
   ========================================================== */
@media (min-width:901px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
        grid-template-rows:auto auto auto auto !important;
        column-gap:30px !important;
    }

    /* Left column: itinerary and meals share the same visual flow. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-itinerary-section{
        grid-column:1 !important;
        grid-row:2 !important;
        align-self:start !important;
        margin:0 !important;
        padding:12px 12px 0 0 !important;
    }

    /* Undo the old 92px reserve that created the visible blank gap. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day:has(.roby-luxury-meals-card)
    > .roby-luxury-itinerary-section{
        padding-bottom:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        grid-column:1 !important;
        grid-row:3 !important;
        align-self:start !important;
        margin:14px 0 0 !important;
        padding:14px 0 0 !important;
        border-top:1px solid rgba(27,27,27,.10) !important;
        background:transparent !important;
        min-height:0 !important;
    }

    /* Safari Photo remains alongside the itinerary area. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card{
        grid-column:2 !important;
        grid-row:2 / span 2 !important;
        align-self:stretch !important;
        margin:0 !important;
    }

    /* Lower premium pair remains Accommodation left / Activities right. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
        grid-column:1 !important;
        grid-row:4 !important;
        margin-top:32px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        grid-column:2 !important;
        grid-row:4 !important;
        margin-top:32px !important;
    }
}

/* Timeline accommodation gallery control:
   force an actual white control with a black plus. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    background:#fff !important;
    border:1px solid rgba(0,0,0,.12) !important;
    box-shadow:0 2px 8px rgba(0,0,0,.10) !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span{
    position:relative !important;
    display:block !important;
    width:12px !important;
    height:12px !important;
    background:transparent !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::before,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::after{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    background:#000 !important;
    transform:translate(-50%,-50%) !important;
    border:0 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::before{
    width:12px !important;
    height:2px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::after{
    width:2px !important;
    height:12px !important;
}


/* ==========================================================
   v1.15.53 — PREMIUM EDITORIAL TIMELINE
   Timeline Layout only.
   Design direction: clean, photographic, spacious, refined,
   square-edged, understated and safari-editorial.
   ========================================================== */

/* ---------- Main canvas ---------- */
.safari-hub-itinerary.roby-layout-luxury-timeline{
    --roby-premium-gold:var(--roby-active,#c3891b);
    --roby-premium-ink:#171717;
    --roby-premium-muted:#716d67;
    --roby-premium-rule:rgba(23,23,23,.13);
    --roby-premium-soft:#f7f5f0;
    background:#fff !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-heading{
    max-width:1180px !important;
    margin:0 auto 34px !important;
    padding-bottom:24px !important;
    border-bottom:1px solid var(--roby-premium-rule) !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-kicker{
    display:block !important;
    margin-bottom:8px !important;
    color:var(--roby-premium-gold) !important;
    letter-spacing:.16em !important;
    text-transform:uppercase !important;
}

/* ---------- Journey rail ---------- */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
    max-width:1180px !important;
    margin:0 auto !important;
    padding-left:72px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
    width:1px !important;
    left:26px !important;
    background:rgba(23,23,23,.16) !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
    left:-72px !important;
    width:52px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-dot{
    width:12px !important;
    height:12px !important;
    border:2px solid var(--roby-premium-gold) !important;
    background:#fff !important;
    box-shadow:0 0 0 6px #fff !important;
}

/* Remove older decorative pseudo dots so the rail has one visual language. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::before,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::after{
    display:none !important;
}

/* ---------- Each day ---------- */
@media (min-width:901px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
        grid-template-rows:auto auto auto auto !important;
        column-gap:34px !important;
        row-gap:0 !important;
        margin:0 0 56px !important;
        padding:46px 0 56px !important;
        border-bottom:1px solid var(--roby-premium-rule) !important;
        background:#fff !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day:last-child{
        margin-bottom:0 !important;
    }
}

/* ---------- Day header ---------- */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-head{
    grid-column:1 / -1 !important;
    grid-row:1 !important;
    display:grid !important;
    grid-template-columns:126px minmax(0,1fr) !important;
    gap:0 !important;
    align-items:center !important;
    margin:0 0 34px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number-wrap{
    padding:0 28px 0 0 !important;
    border-right:1px solid var(--roby-premium-rule) !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-label{
    margin:0 0 7px !important;
    color:var(--roby-premium-muted) !important;
    letter-spacing:.16em !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number{
    margin:0 !important;
    color:var(--safari-large-day-number,var(--roby-premium-gold)) !important;
    line-height:.82 !important;
    letter-spacing:-.045em !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-title-wrap{
    margin:0 !important;
    padding:4px 0 4px 34px !important;
    border:0 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-title-wrap .roby-day-title-heading{
    margin:0 !important;
    max-width:900px !important;
}

/* ---------- Row 1: itinerary + safari photograph ---------- */
@media (min-width:901px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-feature-row,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-info-row{
        display:contents !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section{
        grid-column:1 !important;
        grid-row:2 !important;
        align-self:start !important;
        margin:0 !important;
        padding:18px 10px 0 0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card{
        grid-column:2 !important;
        grid-row:2 / span 2 !important;
        width:100% !important;
        min-width:0 !important;
        align-self:stretch !important;
        margin:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo{
        height:100% !important;
        min-height:390px !important;
        max-height:520px !important;
        overflow:hidden !important;
        background:#eee !important;
    }
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-image-badge{
    top:18px !important;
    left:18px !important;
    padding:10px 16px !important;
    background:#111 !important;
    color:#fff !important;
    border-radius:0 !important;
    letter-spacing:.09em !important;
}

/* Section headings are quiet, elegant anchors. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-section-heading{
    margin:0 0 15px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-feature-icon{
    color:var(--roby-premium-gold) !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-copy{
    max-width:none !important;
    margin:0 !important;
}

/* ---------- Meals directly beneath itinerary ---------- */
@media (min-width:901px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        grid-column:1 !important;
        grid-row:3 !important;
        align-self:start !important;
        margin:18px 0 0 !important;
        padding:16px 10px 0 0 !important;
        border-top:1px solid var(--roby-premium-rule) !important;
        border-right:0 !important;
        border-bottom:0 !important;
        border-left:0 !important;
        background:transparent !important;
        min-height:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day:has(.roby-luxury-meals-card)
    > .roby-luxury-itinerary-section{
        padding-bottom:0 !important;
    }
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals{
    display:flex !important;
    flex-flow:row wrap !important;
    gap:9px 24px !important;
    margin:0 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals > span{
    display:inline-flex !important;
    width:auto !important;
    min-width:0 !important;
    min-height:0 !important;
    align-items:center !important;
    gap:8px !important;
    padding:0 !important;
    border:0 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals > span > b{
    width:auto !important;
    min-width:0 !important;
    height:auto !important;
    border:0 !important;
    background:transparent !important;
    color:var(--roby-premium-gold) !important;
    font-size:14px !important;
}

/* ---------- Row 2: accommodation LEFT + activities RIGHT ---------- */
@media (min-width:901px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
        grid-column:1 !important;
        grid-row:4 !important;
        width:100% !important;
        min-width:0 !important;
        min-height:320px !important;
        margin:38px 0 0 !important;
        align-self:stretch !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        grid-column:2 !important;
        grid-row:4 !important;
        width:100% !important;
        min-width:0 !important;
        min-height:320px !important;
        margin:38px 0 0 !important;
        padding:10px !important;
        align-self:stretch !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-feature{
        width:100% !important;
        height:100% !important;
        min-height:320px !important;
        max-height:430px !important;
    }
}

/* Accommodation: photography first, minimal overlays. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
    background:transparent !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-feature,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main img,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb img{
    border-radius:0 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-overlay{
    left:14px !important;
    bottom:14px !important;
    max-width:calc(100% - 28px) !important;
    padding:9px 12px !important;
    background:rgba(17,17,17,.88) !important;
    color:#fff !important;
    border-radius:0 !important;
}

/* Definitive white accommodation gallery control + black plus. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:28px !important;
    height:28px !important;
    background:#fff !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:0 2px 10px rgba(0,0,0,.14) !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span{
    position:relative !important;
    display:block !important;
    width:12px !important;
    height:12px !important;
    background:transparent !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::before,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::after{
    content:"" !important;
    position:absolute !important;
    top:50% !important;
    left:50% !important;
    background:#000 !important;
    transform:translate(-50%,-50%) !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::before{
    width:12px !important;
    height:2px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::after{
    width:2px !important;
    height:12px !important;
}

/* Activities: subtle premium panel, not a heavy card. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-info-card.roby-luxury-activities{
    padding:10px !important;
    background:var(--roby-premium-soft) !important;
    border:1px solid rgba(23,23,23,.08) !important;
    box-shadow:none !important;
    border-radius:0 !important;
}

/* ---------- Tablet/mobile ---------- */
@media (max-width:900px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
        padding-left:46px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
        left:16px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
        display:flex !important;
        left:-46px !important;
        width:36px !important;
        top:34px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        display:block !important;
        margin:0 0 40px !important;
        padding:32px 0 42px !important;
        border-bottom:1px solid var(--roby-premium-rule) !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-head{
        display:grid !important;
        grid-template-columns:82px minmax(0,1fr) !important;
        margin-bottom:24px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number-wrap{
        padding-right:16px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-title-wrap{
        padding:0 0 0 18px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-feature-row,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-info-row{
        display:flex !important;
        flex-direction:column !important;
        gap:20px !important;
        margin:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card{
        order:1 !important;
        margin:0 0 24px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section{
        margin:0 0 16px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        margin:14px 0 28px !important;
        padding:14px 0 0 !important;
        border-top:1px solid var(--roby-premium-rule) !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        margin-top:22px !important;
        min-height:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-info-card.roby-luxury-activities{
        padding:10px !important;
    }
}

@media (max-width:600px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
        padding-left:30px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
        left:9px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
        left:-30px !important;
        width:25px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-dot{
        width:10px !important;
        height:10px !important;
        box-shadow:0 0 0 4px #fff !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-head{
        grid-template-columns:68px minmax(0,1fr) !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number-wrap{
        padding-right:12px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-title-wrap{
        padding-left:14px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo{
        height:260px !important;
        min-height:260px !important;
        max-height:260px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals{
        gap:8px 16px !important;
    }
}


/* ==========================================================
   v1.15.54 — EDITORIAL ADVENTURE TIMELINE
   Timeline Layout only.
   Inspired by premium travel-editorial composition:
   framed Safari Photo LEFT, itinerary + meals RIGHT,
   Accommodation LEFT + Activities RIGHT below.
   ========================================================== */

@media (min-width:901px){

    /* Premium editorial proportions: slightly image-led. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr) !important;
        column-gap:54px !important;
        row-gap:0 !important;
        padding-top:52px !important;
        padding-bottom:66px !important;
    }

    /* Header stays full width above the editorial composition. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-day-head{
        grid-column:1 / -1 !important;
        grid-row:1 !important;
        margin-bottom:44px !important;
    }

    /* MAIN ROW — Safari Photo LEFT. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card{
        grid-column:1 !important;
        grid-row:2 / span 2 !important;
        position:relative !important;
        width:100% !important;
        margin:0 !important;
        padding:18px 0 0 18px !important;
        align-self:stretch !important;
        overflow:visible !important;
        box-sizing:border-box !important;
    }

    /* Fine offset frame inspired by the reference artwork. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card::before{
        content:"" !important;
        position:absolute !important;
        left:0 !important;
        top:0 !important;
        width:calc(100% - 18px) !important;
        height:calc(100% - 18px) !important;
        border:1px solid rgba(23,23,23,.34) !important;
        pointer-events:none !important;
        z-index:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo{
        position:relative !important;
        z-index:1 !important;
        width:100% !important;
        height:100% !important;
        min-height:430px !important;
        max-height:560px !important;
        overflow:hidden !important;
        background:#eceae5 !important;
    }

    /* MAIN ROW — Itinerary RIGHT. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section{
        grid-column:2 !important;
        grid-row:2 !important;
        align-self:start !important;
        margin:0 !important;
        padding:14px 0 0 !important;
    }

    /* Reference-like subtle horizontal rule from the heading. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section
    > .roby-luxury-section-heading{
        position:relative !important;
        padding-right:96px !important;
        margin-bottom:20px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section
    > .roby-luxury-section-heading::after{
        content:"" !important;
        position:absolute !important;
        right:0 !important;
        top:50% !important;
        width:72px !important;
        height:1px !important;
        background:rgba(23,23,23,.30) !important;
    }

    /* Meals sit naturally beneath the itinerary, in the same right column. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        grid-column:2 !important;
        grid-row:3 !important;
        align-self:start !important;
        margin:22px 0 0 !important;
        padding:17px 0 0 !important;
        border-top:1px solid rgba(23,23,23,.12) !important;
        background:transparent !important;
    }

    /* LOWER ROW — Accommodation LEFT. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
        grid-column:1 !important;
        grid-row:4 !important;
        width:100% !important;
        margin:46px 0 0 !important;
        align-self:stretch !important;
        min-height:330px !important;
        position:relative !important;
    }

    /* LOWER ROW — Activities RIGHT. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        grid-column:2 !important;
        grid-row:4 !important;
        width:100% !important;
        margin:46px 0 0 !important;
        padding:10px !important;
        align-self:stretch !important;
        min-height:330px !important;
        box-sizing:border-box !important;
    }
}

/* Day image badge: compact editorial label. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-image-badge{
    top:18px !important;
    left:18px !important;
    right:auto !important;
    bottom:auto !important;
    padding:9px 14px !important;
    background:rgba(17,17,17,.92) !important;
    color:#fff !important;
    border:1px solid rgba(255,255,255,.18) !important;
    border-radius:0 !important;
    font-size:11px !important;
    line-height:1 !important;
    letter-spacing:.12em !important;
    text-transform:uppercase !important;
}

/* More refined photo hover, still understated. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo img{
    transition:transform .55s ease, filter .55s ease !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card:hover img{
    transform:scale(1.025) !important;
}

/* Accommodation adopts the same square-edged editorial language. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-feature{
    position:relative !important;
    min-height:330px !important;
    background:#eceae5 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-overlay{
    padding:10px 13px !important;
    background:rgba(17,17,17,.90) !important;
    color:#fff !important;
}

/* Activities: light, quiet and magazine-like rather than boxed heavily. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-info-card.roby-luxury-activities{
    background:#f8f6f1 !important;
    border:1px solid rgba(23,23,23,.08) !important;
    box-shadow:none !important;
}

/* White gallery control + black plus retained definitively. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus{
    background:#fff !important;
    color:#000 !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:0 2px 10px rgba(0,0,0,.14) !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::before,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::after{
    background:#000 !important;
}

/* Tablet/mobile: preserve the editorial feeling without awkward overlap. */
@media (max-width:900px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card{
        position:relative !important;
        padding:14px 0 0 14px !important;
        margin-bottom:28px !important;
        overflow:visible !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card::before{
        content:"" !important;
        position:absolute !important;
        left:0 !important;
        top:0 !important;
        width:calc(100% - 14px) !important;
        height:calc(100% - 14px) !important;
        border:1px solid rgba(23,23,23,.28) !important;
        pointer-events:none !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo{
        position:relative !important;
        z-index:1 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section
    > .roby-luxury-section-heading{
        padding-right:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section
    > .roby-luxury-section-heading::after{
        display:none !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        margin-top:16px !important;
    }
}


/* ==========================================================
   v1.15.55 — TIMELINE OVERLAP FIX + COMPACT HOTEL LABEL ONLY
   Fixes the screenshot issue where the Safari Photo covered
   the itinerary at narrower desktop/tablet widths.
   ========================================================== */

/* Keep the premium two-column editorial composition down to
   tablet-landscape widths instead of switching too early. */
@media (min-width:768px) and (max-width:900px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        display:grid !important;
        grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr) !important;
        grid-template-rows:auto auto auto auto !important;
        column-gap:32px !important;
        row-gap:0 !important;
        padding:40px 0 52px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-day-head{
        grid-column:1 / -1 !important;
        grid-row:1 !important;
        display:grid !important;
        margin-bottom:32px !important;
    }

    /* Undo the older <=900 flex stacking for this width range. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-feature-row,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-info-row{
        display:contents !important;
    }

    /* Photo LEFT — cannot cover itinerary. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card{
        grid-column:1 !important;
        grid-row:2 / span 2 !important;
        position:relative !important;
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:14px 0 0 14px !important;
        align-self:stretch !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo{
        width:100% !important;
        height:100% !important;
        min-height:360px !important;
        max-height:500px !important;
    }

    /* Itinerary RIGHT. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section{
        grid-column:2 !important;
        grid-row:2 !important;
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:10px 0 0 !important;
        align-self:start !important;
    }

    /* Meals immediately under itinerary, same right column. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        grid-column:2 !important;
        grid-row:3 !important;
        width:100% !important;
        min-width:0 !important;
        margin:18px 0 0 !important;
        padding:14px 0 0 !important;
        align-self:start !important;
    }

    /* Accommodation LEFT + Activities RIGHT below. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
        grid-column:1 !important;
        grid-row:4 !important;
        width:100% !important;
        min-width:0 !important;
        margin:36px 0 0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        grid-column:2 !important;
        grid-row:4 !important;
        width:100% !important;
        min-width:0 !important;
        margin:36px 0 0 !important;
        padding:10px !important;
    }
}

/* Hotel name: restore a small elegant label instead of a large overlay. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-overlay{
    top:16px !important;
    left:16px !important;
    right:auto !important;
    bottom:auto !important;
    display:inline-flex !important;
    width:auto !important;
    max-width:72% !important;
    min-width:0 !important;
    min-height:0 !important;
    height:auto !important;
    padding:8px 11px !important;
    gap:7px !important;
    background:rgba(17,17,17,.88) !important;
    color:#fff !important;
    border:1px solid rgba(255,255,255,.12) !important;
    box-shadow:none !important;
    border-radius:0 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-overlay strong{
    font-size:12px !important;
    line-height:1.25 !important;
    font-weight:600 !important;
    white-space:normal !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-overlay > span{
    font-size:14px !important;
    line-height:1 !important;
}


/* ==========================================================
   v1.15.56 — TIMELINE TRUE GRID FIX
   The image/accommodation live inside .roby-luxury-feature-row
   and activities/meals inside .roby-luxury-info-row. Earlier
   display:contents rules were being defeated by older flex
   declarations at the user's viewport. Force the real wrapper
   structure to participate in the day grid, preventing the
   Safari Photo from ever covering the itinerary.
   ========================================================== */

/* Desktop/tablet landscape: exact two-column composition. */
@media (min-width:768px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        display:grid !important;
        grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr) !important;
        grid-template-rows:auto auto auto auto !important;
        column-gap:40px !important;
        row-gap:0 !important;
        align-items:start !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-day-head{
        grid-column:1 / -1 !important;
        grid-row:1 !important;
    }

    /* Critical: flatten the actual PHP wrappers. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-feature-row,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-info-row{
        display:contents !important;
        width:auto !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
    }

    /* Safari Photo LEFT. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-feature-row > .roby-luxury-day-photo-card{
        grid-column:1 !important;
        grid-row:2 / span 2 !important;
        position:relative !important;
        inset:auto !important;
        float:none !important;
        transform:none !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        box-sizing:border-box !important;
        overflow:visible !important;
        z-index:1 !important;
    }

    /* Itinerary RIGHT — independent grid cell. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-itinerary-section{
        grid-column:2 !important;
        grid-row:2 !important;
        position:relative !important;
        inset:auto !important;
        float:none !important;
        transform:none !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        box-sizing:border-box !important;
        z-index:2 !important;
        background:#fff !important;
    }

    /* Meals RIGHT, immediately under itinerary. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-info-row > .roby-luxury-meals-card{
        grid-column:2 !important;
        grid-row:3 !important;
        position:relative !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:18px 0 0 !important;
        z-index:2 !important;
    }

    /* Accommodation LEFT below. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-feature-row > .roby-luxury-accommodation-card{
        grid-column:1 !important;
        grid-row:4 !important;
        position:relative !important;
        inset:auto !important;
        float:none !important;
        transform:none !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:38px 0 0 !important;
        box-sizing:border-box !important;
    }

    /* Activities RIGHT below. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-info-row > .roby-luxury-activities{
        grid-column:2 !important;
        grid-row:4 !important;
        position:relative !important;
        inset:auto !important;
        float:none !important;
        transform:none !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:38px 0 0 !important;
        padding:10px !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo img{
        width:100% !important;
        max-width:100% !important;
    }
}

/* Phones alone stack naturally. */
@media (max-width:767px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        display:block !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-feature-row,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-info-row{
        display:flex !important;
        flex-direction:column !important;
        width:100% !important;
    }
}

/* Compact hotel label retained. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-overlay{
    display:inline-flex !important;
    width:auto !important;
    max-width:72% !important;
    min-height:0 !important;
    padding:7px 10px !important;
    background:rgba(17,17,17,.88) !important;
}


/* ==========================================================
   v1.15.57 — APPROVED PREMIUM TIMELINE COMPOSITION
   Exact requested direction:
   itinerary LEFT / Safari Photo RIGHT;
   meals directly under itinerary;
   accommodation LEFT / activities RIGHT below.
   Timeline only.
   ========================================================== */
@media (min-width:768px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        display:grid !important;
        grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr) !important;
        grid-template-rows:auto auto auto auto !important;
        column-gap:34px !important;
        row-gap:0 !important;
        align-items:start !important;
        padding:42px 0 58px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-day-head{
        grid-column:1 / -1 !important;
        grid-row:1 !important;
        margin-bottom:36px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-feature-row,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-info-row{
        display:contents !important;
    }

    /* Itinerary LEFT */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-itinerary-section{
        grid-column:1 !important;
        grid-row:2 !important;
        position:relative !important;
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:12px 0 0 !important;
        background:#fff !important;
        z-index:2 !important;
    }

    /* Safari Photo RIGHT */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-feature-row > .roby-luxury-day-photo-card{
        grid-column:2 !important;
        grid-row:2 / span 2 !important;
        position:relative !important;
        inset:auto !important;
        float:none !important;
        transform:none !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:14px 14px 0 0 !important;
        box-sizing:border-box !important;
        overflow:visible !important;
        z-index:1 !important;
    }

    /* Offset gold frame on the photo, like the approved mock-up. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card::before{
        content:"" !important;
        position:absolute !important;
        top:0 !important;
        right:0 !important;
        left:14px !important;
        bottom:14px !important;
        width:auto !important;
        height:auto !important;
        border:1px solid var(--roby-premium-gold,#c3891b) !important;
        pointer-events:none !important;
        z-index:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo{
        position:relative !important;
        z-index:1 !important;
        width:100% !important;
        height:100% !important;
        min-height:360px !important;
        max-height:500px !important;
    }

    /* Meals LEFT, immediately below itinerary */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-info-row > .roby-luxury-meals-card{
        grid-column:1 !important;
        grid-row:3 !important;
        width:100% !important;
        min-width:0 !important;
        margin:18px 0 0 !important;
        padding:15px 0 0 !important;
        border-top:1px solid rgba(23,23,23,.12) !important;
        background:transparent !important;
        align-self:start !important;
    }

    /* Accommodation LEFT below */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-feature-row > .roby-luxury-accommodation-card{
        grid-column:1 !important;
        grid-row:4 !important;
        width:100% !important;
        min-width:0 !important;
        margin:34px 0 0 !important;
        padding:14px !important;
        min-height:0 !important;
        background:#f8f6f1 !important;
        border:1px solid rgba(23,23,23,.09) !important;
        box-sizing:border-box !important;
    }

    /* Activities RIGHT below */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-info-row > .roby-luxury-activities{
        grid-column:2 !important;
        grid-row:4 !important;
        width:100% !important;
        min-width:0 !important;
        margin:34px 0 0 !important;
        padding:18px !important;
        min-height:100% !important;
        background:#f8f6f1 !important;
        border:1px solid rgba(23,23,23,.09) !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-feature{
        min-height:310px !important;
        height:310px !important;
        max-height:310px !important;
    }
}

/* Premium gold details from the approved reference. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-feature-icon,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals > span > b{
    color:var(--roby-premium-gold,#c3891b) !important;
}

/* Small, neat hotel label. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-overlay{
    top:auto !important;
    left:14px !important;
    right:auto !important;
    bottom:14px !important;
    display:inline-flex !important;
    width:auto !important;
    max-width:70% !important;
    min-height:0 !important;
    padding:8px 11px !important;
    background:rgba(17,17,17,.90) !important;
    color:#fff !important;
    border:0 !important;
    border-radius:0 !important;
}

/* Accommodation gallery: white control, black plus. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus{
    background:#fff !important;
    color:#000 !important;
    border:0 !important;
    border-radius:50% !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::before,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::after{
    background:#000 !important;
}

/* Activities bullets: understated gold editorial dots. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-copy li::marker{
    color:var(--roby-premium-gold,#c3891b) !important;
}

/* Phone: stack cleanly without overlap. */
@media (max-width:767px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        display:block !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-feature-row,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-info-row{
        display:flex !important;
        flex-direction:column !important;
        gap:20px !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section{
        margin-bottom:14px !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card{
        padding:12px 12px 0 0 !important;
        margin:0 0 24px !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        margin:14px 0 22px !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        margin-top:20px !important;
        min-height:0 !important;
    }
}


/* ==========================================================
   v1.15.58 — APPROVED TIMELINE MOCK-UP FINISH
   Timeline only. Matches the approved visual direction:
   itinerary LEFT / image RIGHT; meals below itinerary;
   accommodation gallery LEFT / activities RIGHT.
   ========================================================== */

@media (min-width:768px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        grid-template-columns:minmax(0,1.16fr) minmax(340px,.84fr) !important;
        column-gap:36px !important;
        padding:42px 0 60px !important;
    }

    /* Itinerary left, photo right. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-itinerary-section{
        grid-column:1 !important;
        grid-row:2 !important;
        padding:8px 0 0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-feature-row > .roby-luxury-day-photo-card{
        grid-column:2 !important;
        grid-row:2 / span 2 !important;
        padding:14px 14px 0 0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo{
        min-height:360px !important;
        height:100% !important;
        max-height:500px !important;
    }

    /* Meals remain immediately below itinerary. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-info-row > .roby-luxury-meals-card{
        grid-column:1 !important;
        grid-row:3 !important;
        margin:18px 0 0 !important;
        padding:15px 0 0 !important;
    }

    /* Lower row — equal premium panels. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-feature-row > .roby-luxury-accommodation-card,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-info-row > .roby-luxury-activities{
        margin-top:34px !important;
        min-height:0 !important;
        background:#fbf9f5 !important;
        border:1px solid rgba(23,23,23,.08) !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-feature-row > .roby-luxury-accommodation-card{
        grid-column:1 !important;
        grid-row:4 !important;
        padding:16px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day
    > .roby-luxury-info-row > .roby-luxury-activities{
        grid-column:2 !important;
        grid-row:4 !important;
        padding:18px !important;
    }
}

/* Accommodation heading like the approved image. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading{
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
    margin:0 0 14px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading h4{
    margin:0 !important;
    color:var(--safari-other-heading-color,#171717) !important;
    font-family:var(--safari-other-heading-font,inherit) !important;
    font-size:var(--safari-h4-size,inherit) !important;
    font-weight:var(--safari-h4-weight,inherit) !important;
    line-height:var(--safari-h4-line-height,inherit) !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading-icon{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    color:var(--roby-premium-gold,#c3891b) !important;
    font-size:22px !important;
    line-height:1 !important;
}

/* Exact accommodation gallery composition:
   one large image on the left, two stacked images on the right. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-feature{
    display:grid !important;
    grid-template-columns:minmax(0,2.35fr) minmax(120px,.92fr) !important;
    grid-template-rows:1fr 1fr !important;
    gap:8px !important;
    width:100% !important;
    height:310px !important;
    min-height:310px !important;
    max-height:310px !important;
    overflow:visible !important;
    background:transparent !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main{
    grid-column:1 !important;
    grid-row:1 / span 2 !important;
    position:relative !important;
    width:100% !important;
    height:100% !important;
    overflow:hidden !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main > img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumbs{
    position:static !important;
    grid-column:2 !important;
    grid-row:1 / span 2 !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-template-rows:1fr 1fr !important;
    width:100% !important;
    height:100% !important;
    gap:8px !important;
    margin:0 !important;
    padding:0 !important;
    transform:none !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb{
    position:relative !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    overflow:hidden !important;
    border:0 !important;
    padding:0 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
}

/* Hotel name in a small premium dark label over the main photo. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-overlay{
    top:auto !important;
    left:12px !important;
    right:auto !important;
    bottom:12px !important;
    width:auto !important;
    max-width:68% !important;
    min-height:0 !important;
    padding:8px 11px !important;
    background:rgba(17,17,17,.90) !important;
    color:#fff !important;
    border:0 !important;
    border-radius:0 !important;
}

/* Gallery + controls sit over the right-side thumbnails. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus{
    width:30px !important;
    height:30px !important;
    background:#fff !important;
    color:#000 !important;
    border:1px solid rgba(0,0,0,.18) !important;
    border-radius:50% !important;
    box-shadow:0 1px 5px rgba(0,0,0,.16) !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::before,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::after{
    background:#000 !important;
}

/* Activities card visual finish. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities .roby-luxury-section-heading{
    margin-bottom:14px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-copy ul{
    margin-top:6px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-copy li{
    margin-bottom:7px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-copy li::marker{
    color:var(--roby-premium-gold,#c3891b) !important;
}

/* Mobile: keep accommodation gallery readable, with thumbs below. */
@media (max-width:767px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-feature{
        display:grid !important;
        grid-template-columns:1fr 1fr !important;
        grid-template-rows:230px 110px !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        gap:8px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main{
        grid-column:1 / -1 !important;
        grid-row:1 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumbs{
        grid-column:1 / -1 !important;
        grid-row:2 !important;
        display:grid !important;
        grid-template-columns:1fr 1fr !important;
        grid-template-rows:1fr !important;
    }
}


/* ==========================================================
   v1.15.59 — ACCOMMODATION GALLERY PROPORTION MATCH
   Timeline only.
   Match approved visual:
   - much wider main accommodation image
   - narrow right thumbnail column
   - two thumbnails together exactly equal main image height
   ========================================================== */

@media (min-width:768px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-feature{
        display:grid !important;
        grid-template-columns:minmax(0,3.35fr) minmax(118px,1fr) !important;
        grid-template-rows:minmax(0,1fr) minmax(0,1fr) !important;
        gap:8px !important;
        width:100% !important;
        height:330px !important;
        min-height:330px !important;
        max-height:330px !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
        align-items:stretch !important;
    }

    /* Main accommodation image — dominant wide image. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main{
        grid-column:1 !important;
        grid-row:1 / 3 !important;
        position:relative !important;
        width:100% !important;
        height:330px !important;
        min-height:330px !important;
        max-height:330px !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main > img{
        display:block !important;
        width:100% !important;
        height:330px !important;
        min-height:330px !important;
        max-height:330px !important;
        object-fit:cover !important;
    }

    /* Right column occupies exactly the same 330px height. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumbs{
        grid-column:2 !important;
        grid-row:1 / 3 !important;
        position:static !important;
        display:grid !important;
        grid-template-columns:1fr !important;
        grid-template-rows:calc((330px - 8px)/2) calc((330px - 8px)/2) !important;
        gap:8px !important;
        width:100% !important;
        height:330px !important;
        min-height:330px !important;
        max-height:330px !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
        transform:none !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb{
        position:relative !important;
        display:block !important;
        width:100% !important;
        height:161px !important;
        min-width:0 !important;
        min-height:161px !important;
        max-height:161px !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb img{
        display:block !important;
        width:100% !important;
        height:161px !important;
        min-height:161px !important;
        max-height:161px !important;
        object-fit:cover !important;
    }

    /* Keep hotel label compact on the large image. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-overlay{
        left:12px !important;
        bottom:12px !important;
        top:auto !important;
        right:auto !important;
        width:auto !important;
        max-width:72% !important;
        padding:8px 11px !important;
    }
}

/* Slightly larger accommodation card width allocation within the lower row
   while keeping Activities beside it. */
@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        grid-template-columns:minmax(0,1.24fr) minmax(330px,.76fr) !important;
    }
}

/* Tablet keeps the same visual ratio without forcing oversized thumbnails. */
@media (min-width:768px) and (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-feature{
        grid-template-columns:minmax(0,2.8fr) minmax(105px,1fr) !important;
        height:290px !important;
        min-height:290px !important;
        max-height:290px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main > img,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumbs{
        height:290px !important;
        min-height:290px !important;
        max-height:290px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumbs{
        grid-template-rows:141px 141px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb img{
        height:141px !important;
        min-height:141px !important;
        max-height:141px !important;
    }
}


/* ==========================================================
   v1.15.60 — STRUCTURAL ACCOMMODATION GALLERY FIX
   Timeline only. Dedicated gallery wrapper prevents legacy
   accommodation CSS from controlling the new approved layout.
   ========================================================== */

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-feature{
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
    background:transparent !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
    display:grid !important;
    grid-template-columns:minmax(0,4.1fr) minmax(120px,1fr) !important;
    grid-template-rows:1fr !important;
    gap:8px !important;
    width:100% !important;
    height:330px !important;
    min-height:330px !important;
    max-height:330px !important;
    overflow:hidden !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap{
    position:relative !important;
    grid-column:1 !important;
    grid-row:1 !important;
    width:100% !important;
    height:330px !important;
    min-width:0 !important;
    min-height:330px !important;
    max-height:330px !important;
    overflow:hidden !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main{
    position:relative !important;
    display:block !important;
    width:100% !important;
    height:330px !important;
    min-width:0 !important;
    min-height:330px !important;
    max-height:330px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    overflow:hidden !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main > img{
    display:block !important;
    width:100% !important;
    height:330px !important;
    min-height:330px !important;
    max-height:330px !important;
    object-fit:cover !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
    position:static !important;
    grid-column:2 !important;
    grid-row:1 !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-template-rows:161px 161px !important;
    gap:8px !important;
    width:100% !important;
    height:330px !important;
    min-width:0 !important;
    min-height:330px !important;
    max-height:330px !important;
    margin:0 !important;
    padding:0 !important;
    right:auto !important;
    bottom:auto !important;
    transform:none !important;
    overflow:hidden !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb{
    position:relative !important;
    display:block !important;
    width:100% !important;
    height:161px !important;
    min-width:0 !important;
    min-height:161px !important;
    max-height:161px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    overflow:hidden !important;
    box-shadow:none !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb img{
    display:block !important;
    width:100% !important;
    height:161px !important;
    min-height:161px !important;
    max-height:161px !important;
    object-fit:cover !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout .roby-luxury-gallery-plus{
    position:absolute !important;
    right:10px !important;
    bottom:10px !important;
    width:30px !important;
    height:30px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    background:#fff !important;
    border:1px solid rgba(0,0,0,.18) !important;
    border-radius:50% !important;
    z-index:4 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-overlay{
    position:absolute !important;
    left:12px !important;
    bottom:12px !important;
    top:auto !important;
    right:auto !important;
    z-index:4 !important;
    width:auto !important;
    max-width:72% !important;
    padding:8px 11px !important;
}

/* Make Accommodation panel itself wider than Activities on large screens,
   matching the approved mock-up. */
@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr) !important;
    }
}

@media (min-width:768px) and (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
        grid-template-columns:minmax(0,3.4fr) minmax(105px,1fr) !important;
        height:290px !important;
        min-height:290px !important;
        max-height:290px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main > img,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        height:290px !important;
        min-height:290px !important;
        max-height:290px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        grid-template-rows:141px 141px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb img{
        height:141px !important;
        min-height:141px !important;
        max-height:141px !important;
    }
}

@media (max-width:767px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
        grid-template-columns:1fr 1fr !important;
        grid-template-rows:230px 105px !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap{
        grid-column:1 / -1 !important;
        grid-row:1 !important;
        height:230px !important;
        min-height:230px !important;
        max-height:230px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main > img{
        height:230px !important;
        min-height:230px !important;
        max-height:230px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        grid-column:1 / -1 !important;
        grid-row:2 !important;
        grid-template-columns:1fr 1fr !important;
        grid-template-rows:105px !important;
        height:105px !important;
        min-height:105px !important;
        max-height:105px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb img{
        height:105px !important;
        min-height:105px !important;
        max-height:105px !important;
    }
}


/* ==========================================================
   v1.15.61 — ACCOMMODATION PHOTO RATIO CORRECTION
   Timeline only.
   Screenshot correction:
   72% wide main photo + 28% narrow thumbnail strip.
   Both sides have exactly the same total height.
   Also removes legacy duplicate + icons.
   ========================================================== */

@media (min-width:768px){
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout{
        display:flex !important;
        flex-direction:row !important;
        align-items:stretch !important;
        gap:8px !important;
        width:100% !important;
        height:330px !important;
        min-height:330px !important;
        max-height:330px !important;
        overflow:hidden !important;
    }

    /* Large image is deliberately dominant. */
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap{
        flex:0 0 calc(72% - 4px) !important;
        width:calc(72% - 4px) !important;
        max-width:calc(72% - 4px) !important;
        height:330px !important;
        min-height:330px !important;
        max-height:330px !important;
        overflow:hidden !important;
    }

    /* Narrow thumbnail column. */
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        position:static !important;
        flex:0 0 calc(28% - 4px) !important;
        width:calc(28% - 4px) !important;
        max-width:calc(28% - 4px) !important;
        min-width:0 !important;
        height:330px !important;
        min-height:330px !important;
        max-height:330px !important;
        display:flex !important;
        flex-direction:column !important;
        gap:8px !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
        right:auto !important;
        bottom:auto !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb{
        flex:0 0 161px !important;
        width:100% !important;
        height:161px !important;
        min-height:161px !important;
        max-height:161px !important;
        aspect-ratio:auto !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb img{
        width:100% !important;
        height:161px !important;
        min-height:161px !important;
        max-height:161px !important;
        object-fit:cover !important;
    }
}

/* The screenshot showed the old generated + as well as the new button.
   Suppress the legacy pseudo controls in this new gallery only. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb::before,
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb::after,
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-main::before,
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-main::after{
    display:none !important;
    content:none !important;
}

/* Keep only one small white + on each supporting image. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-gallery-layout .roby-luxury-gallery-plus{
    position:absolute !important;
    right:9px !important;
    bottom:9px !important;
    width:28px !important;
    height:28px !important;
    min-width:28px !important;
    min-height:28px !important;
    padding:0 !important;
    background:#fff !important;
    border:1px solid rgba(0,0,0,.22) !important;
    border-radius:50% !important;
    box-shadow:0 1px 4px rgba(0,0,0,.16) !important;
}

/* Hotel label: small and horizontal like the reference. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-overlay{
    left:14px !important;
    bottom:14px !important;
    top:auto !important;
    right:auto !important;
    display:inline-flex !important;
    align-items:center !important;
    width:auto !important;
    max-width:calc(100% - 28px) !important;
    min-width:0 !important;
    padding:8px 11px !important;
    gap:7px !important;
    white-space:nowrap !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-overlay strong{
    display:block !important;
    width:auto !important;
    max-width:none !important;
    font-size:12px !important;
    line-height:1.2 !important;
    white-space:nowrap !important;
}

/* Tablet retains the same 72/28 visual relationship at a shorter height. */
@media (min-width:768px) and (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main > img,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        height:290px !important;
        min-height:290px !important;
        max-height:290px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb img{
        flex-basis:141px !important;
        height:141px !important;
        min-height:141px !important;
        max-height:141px !important;
    }
}


/* ==========================================================
   v1.15.62 — TIMELINE VISUAL TARGET MATCH
   Timeline only. Locks the layout to the approved screenshot:
   - Itinerary LEFT / Safari Photo RIGHT
   - Meals directly under itinerary
   - Accommodation LEFT / Activities RIGHT
   - Accommodation gallery = wide main image + narrow stacked thumbs
   ========================================================== */

@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        display:grid !important;
        grid-template-columns:minmax(0,1.65fr) minmax(390px,1fr) !important;
        grid-template-rows:auto auto auto auto !important;
        column-gap:34px !important;
        row-gap:0 !important;
        align-items:start !important;
        padding:42px 0 58px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-day-head{
        grid-column:1 / -1 !important;
        grid-row:1 !important;
        margin-bottom:34px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-feature-row,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-info-row{
        display:contents !important;
    }

    /* TOP LEFT — itinerary */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-itinerary-section{
        grid-column:1 !important;
        grid-row:2 !important;
        width:100% !important;
        margin:0 !important;
        padding:8px 0 0 !important;
        min-width:0 !important;
    }

    /* TOP RIGHT — image of the day */
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day > .roby-luxury-feature-row > .roby-luxury-day-photo-card{
        grid-column:2 !important;
        grid-row:2 / span 2 !important;
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:14px 14px 0 0 !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo{
        width:100% !important;
        height:410px !important;
        min-height:410px !important;
        max-height:410px !important;
    }

    /* meals directly under itinerary */
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day > .roby-luxury-info-row > .roby-luxury-meals-card{
        grid-column:1 !important;
        grid-row:3 !important;
        margin:18px 0 0 !important;
        padding:15px 0 0 !important;
        width:100% !important;
        min-width:0 !important;
    }

    /* LOWER LEFT — Accommodation, deliberately wider */
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day > .roby-luxury-feature-row > .roby-luxury-accommodation-card{
        grid-column:1 !important;
        grid-row:4 !important;
        width:100% !important;
        min-width:0 !important;
        margin:34px 0 0 !important;
        padding:16px !important;
        background:#fbf9f5 !important;
        border:1px solid rgba(23,23,23,.08) !important;
        box-sizing:border-box !important;
    }

    /* LOWER RIGHT — Activities */
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day > .roby-luxury-info-row > .roby-luxury-activities{
        grid-column:2 !important;
        grid-row:4 !important;
        width:100% !important;
        min-width:0 !important;
        margin:34px 0 0 !important;
        padding:18px !important;
        background:#fbf9f5 !important;
        border:1px solid rgba(23,23,23,.08) !important;
        box-sizing:border-box !important;
        align-self:stretch !important;
    }

    /* Exact accommodation gallery proportions from approved target. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
        display:grid !important;
        grid-template-columns:minmax(0,3.6fr) minmax(130px,1fr) !important;
        grid-template-rows:1fr !important;
        gap:8px !important;
        width:100% !important;
        height:304px !important;
        min-height:304px !important;
        max-height:304px !important;
        overflow:hidden !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap{
        grid-column:1 !important;
        grid-row:1 !important;
        width:100% !important;
        height:304px !important;
        min-height:304px !important;
        max-height:304px !important;
        overflow:hidden !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main > img{
        width:100% !important;
        height:304px !important;
        min-height:304px !important;
        max-height:304px !important;
        object-fit:cover !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        position:static !important;
        grid-column:2 !important;
        grid-row:1 !important;
        display:grid !important;
        grid-template-columns:1fr !important;
        grid-template-rows:148px 148px !important;
        gap:8px !important;
        width:100% !important;
        height:304px !important;
        min-height:304px !important;
        max-height:304px !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb img{
        width:100% !important;
        height:148px !important;
        min-height:148px !important;
        max-height:148px !important;
        object-fit:cover !important;
    }
}

/* Accommodation heading and hotel name styled exactly as a compact overlay. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading{
    margin:0 0 12px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-overlay{
    left:14px !important;
    bottom:14px !important;
    top:auto !important;
    right:auto !important;
    display:inline-flex !important;
    align-items:center !important;
    width:auto !important;
    max-width:72% !important;
    min-width:0 !important;
    padding:8px 11px !important;
    background:rgba(17,17,17,.90) !important;
    color:#fff !important;
    white-space:nowrap !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-overlay strong{
    white-space:nowrap !important;
}

/* Only one + icon on each small image. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb::before,
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb::after{
    display:none !important;
    content:none !important;
}

/* Tablet stays two-column but with shorter media. */
@media (min-width:768px) and (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr) !important;
        column-gap:26px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo{
        height:330px !important;
        min-height:330px !important;
        max-height:330px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main > img,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        height:270px !important;
        min-height:270px !important;
        max-height:270px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        grid-template-rows:131px 131px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb img{
        height:131px !important;
        min-height:131px !important;
        max-height:131px !important;
    }
}


/* ==========================================================
   v1.15.63 — ACCOMMODATION WIDTH ROOT-CAUSE FIX
   Timeline only.
   Old Timeline rules make .roby-luxury-accommodation-card a
   flex container and .roby-luxury-accommodation-feature a flex
   child. That was shrinking the entire new gallery. Reset those
   legacy rules first, then size the gallery from the card width.
   ========================================================== */

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-card{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:auto !important;
    min-height:0 !important;
    overflow:visible !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-card > .roby-luxury-accommodation-heading{
    display:flex !important;
    width:100% !important;
    max-width:none !important;
    box-sizing:border-box !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-card > .roby-luxury-accommodation-feature{
    display:block !important;
    flex:none !important;
    position:relative !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:auto !important;
    margin:0 !important;
    padding:0 !important;
    overflow:visible !important;
    box-sizing:border-box !important;
}

@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-card > .roby-luxury-accommodation-feature
    > .roby-luxury-accommodation-gallery-layout{
        display:grid !important;
        grid-template-columns:minmax(0,3.6fr) minmax(150px,1fr) !important;
        grid-template-rows:304px !important;
        gap:8px !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        height:304px !important;
        min-height:304px !important;
        max-height:304px !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-main-wrap{
        grid-column:1 !important;
        grid-row:1 !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        height:304px !important;
        min-height:304px !important;
        max-height:304px !important;
        flex:none !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        grid-column:2 !important;
        grid-row:1 !important;
        display:grid !important;
        grid-template-columns:1fr !important;
        grid-template-rows:148px 148px !important;
        gap:8px !important;
        position:static !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        height:304px !important;
        min-height:304px !important;
        max-height:304px !important;
        flex:none !important;
        margin:0 !important;
        padding:0 !important;
        transform:none !important;
    }
}

/* The main hotel photo must occupy the full dominant grid cell. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap > .roby-luxury-accommodation-main{
    display:block !important;
    position:relative !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    flex:none !important;
}

/* Keep the label compact and prevent it from changing gallery width. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap > .roby-luxury-accommodation-overlay{
    width:max-content !important;
    max-width:calc(100% - 28px) !important;
    min-width:0 !important;
}

/* Mobile remains intentionally stacked. */
@media (max-width:767px){
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-card > .roby-luxury-accommodation-feature{
        width:100% !important;
    }
}


/* ==========================================================
   v1.15.64 — PREMIUM TIMELINE RAIL + DOTS
   Timeline Layout only.
   Adds the visual journey line and day dots from the approved
   reference while preserving the current premium content layout.
   ========================================================== */

/* Main vertical journey rail */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
    position:relative !important;
    padding-left:74px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
    content:"" !important;
    position:absolute !important;
    left:27px !important;
    top:0 !important;
    bottom:0 !important;
    width:1px !important;
    background:var(--roby-premium-gold,#c3891b) !important;
    opacity:.72 !important;
    z-index:0 !important;
}

/* Day marker position */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
    position:absolute !important;
    left:-74px !important;
    top:40px !important;
    width:54px !important;
    height:22px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    z-index:5 !important;
}

/* Solid premium day dot */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-dot{
    display:block !important;
    width:16px !important;
    height:16px !important;
    min-width:16px !important;
    min-height:16px !important;
    border:3px solid #fff !important;
    border-radius:50% !important;
    background:var(--roby-premium-gold,#c3891b) !important;
    box-shadow:0 0 0 1px var(--roby-premium-gold,#c3891b) !important;
}

/* Make sure older Timeline pseudo markers stay hidden. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::before,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::after{
    display:none !important;
    content:none !important;
}

/* Refined dotted separator between days, inspired by reference. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
    border-bottom:0 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day:not(:last-child){
    position:relative !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day:not(:last-child) > .roby-luxury-day-head::after{
    content:"" !important;
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    bottom:-34px !important;
    height:1px !important;
    background-image:radial-gradient(circle, rgba(195,137,27,.55) 1.2px, transparent 1.3px) !important;
    background-size:8px 1px !important;
    background-repeat:repeat-x !important;
    pointer-events:none !important;
}

/* Header must be positioned for the dotted divider. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-head{
    position:relative !important;
}

/* Keep the large day number / label visually connected to the rail. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number-wrap{
    position:relative !important;
}

/* Tablet */
@media (min-width:768px) and (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
        padding-left:58px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
        left:20px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
        left:-58px !important;
        width:42px !important;
        top:36px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-dot{
        width:14px !important;
        height:14px !important;
        min-width:14px !important;
        min-height:14px !important;
    }
}

/* Mobile: keep a slimmer journey rail rather than removing it. */
@media (max-width:767px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
        padding-left:32px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
        display:block !important;
        left:10px !important;
        width:1px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
        display:flex !important;
        left:-32px !important;
        width:27px !important;
        top:31px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-dot{
        width:11px !important;
        height:11px !important;
        min-width:11px !important;
        min-height:11px !important;
        border-width:2px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day:not(:last-child) > .roby-luxury-day-head::after{
        bottom:-24px !important;
        background-size:7px 1px !important;
    }
}


/* ==========================================================
   v1.15.65 — GENERATED PREMIUM TIMELINE TARGET
   Timeline only. Implements the approved generated design.
   ========================================================== */

.safari-hub-itinerary.roby-layout-luxury-timeline{
    --roby-timeline-gold:#c88900;
    --roby-timeline-cream:#fbf8f2;
    --roby-timeline-line:#c88900;
}

/* Timeline rail is attached to the actual day stack. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
    position:relative !important;
    padding-left:104px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
    content:"" !important;
    display:block !important;
    position:absolute !important;
    left:73px !important;
    top:0 !important;
    bottom:0 !important;
    width:2px !important;
    background:var(--roby-timeline-line) !important;
    opacity:1 !important;
    z-index:3 !important;
}

/* Each day supplies a visible dot exactly over the rail. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
    position:relative !important;
    overflow:visible !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::before{
    content:"" !important;
    display:block !important;
    position:absolute !important;
    left:-39px !important;
    top:30px !important;
    width:18px !important;
    height:18px !important;
    border:0 !important;
    border-radius:50% !important;
    background:var(--roby-timeline-gold) !important;
    box-shadow:none !important;
    z-index:6 !important;
}

/* Disable the earlier marker so there is only one clean dot. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
    display:none !important;
}

/* Day header: date/number block beside title like generated target. */
@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        display:grid !important;
        grid-template-columns:minmax(0,1.45fr) minmax(360px,.85fr) !important;
        grid-template-rows:auto auto auto auto !important;
        column-gap:28px !important;
        row-gap:0 !important;
        padding:22px 0 38px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-head{
        grid-column:1 / -1 !important;
        grid-row:1 !important;
        margin:0 0 16px !important;
        padding:0 !important;
        min-height:58px !important;
    }

    /* Top composition */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section{
        grid-column:1 !important;
        grid-row:2 !important;
        padding:0 !important;
        margin:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day > .roby-luxury-feature-row,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day > .roby-luxury-info-row{
        display:contents !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day-photo-card{
        grid-column:2 !important;
        grid-row:2 / span 2 !important;
        width:100% !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
    }

    /* Remove the thin offset/frame around Safari Photo completely. */
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day-photo-card::before,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day-photo-card::after,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day-photo::before,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day-photo::after{
        display:none !important;
        content:none !important;
        border:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo{
        width:100% !important;
        height:330px !important;
        min-height:330px !important;
        max-height:330px !important;
        margin:0 !important;
        border:0 !important;
        outline:0 !important;
        box-shadow:none !important;
    }

    /* Meals sit immediately below itinerary. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        grid-column:1 !important;
        grid-row:3 !important;
        margin:12px 0 0 !important;
        padding:13px 0 0 !important;
        border-top:1px solid rgba(0,0,0,.10) !important;
        background:transparent !important;
        box-shadow:none !important;
    }

    /* Bottom composition */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
        grid-column:1 !important;
        grid-row:4 !important;
        margin:20px 0 0 !important;
        padding:14px !important;
        width:100% !important;
        background:var(--roby-timeline-cream) !important;
        border:0 !important;
        box-shadow:none !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        grid-column:2 !important;
        grid-row:4 !important;
        margin:20px 0 0 !important;
        padding:16px !important;
        width:100% !important;
        background:var(--roby-timeline-cream) !important;
        border:0 !important;
        box-shadow:none !important;
        align-self:stretch !important;
    }

    /* Accommodation gallery target: 74% main / 26% stacked thumbs. */
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-card > .roby-luxury-accommodation-feature{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        height:auto !important;
        flex:none !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout{
        display:grid !important;
        grid-template-columns:minmax(0,2.85fr) minmax(130px,1fr) !important;
        grid-template-rows:252px !important;
        gap:8px !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        height:252px !important;
        min-height:252px !important;
        max-height:252px !important;
        overflow:hidden !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main > img{
        width:100% !important;
        height:252px !important;
        min-height:252px !important;
        max-height:252px !important;
        object-fit:cover !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        position:static !important;
        display:grid !important;
        grid-template-columns:1fr !important;
        grid-template-rows:122px 122px !important;
        gap:8px !important;
        width:100% !important;
        height:252px !important;
        min-height:252px !important;
        max-height:252px !important;
        margin:0 !important;
        padding:0 !important;
        transform:none !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-thumb,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-thumb img{
        width:100% !important;
        height:122px !important;
        min-height:122px !important;
        max-height:122px !important;
        object-fit:cover !important;
    }
}

/* Day separator spans across the composition. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day:not(:last-child){
    border-bottom:2px dotted rgba(200,137,0,.45) !important;
}

/* No old separator attached to heading. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-day:not(:last-child) > .roby-luxury-day-head::after{
    display:none !important;
    content:none !important;
}

/* Compact hotel name label. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-overlay{
    left:12px !important;
    bottom:10px !important;
    top:auto !important;
    right:auto !important;
    width:max-content !important;
    max-width:calc(100% - 24px) !important;
    padding:7px 10px !important;
    background:rgba(10,10,10,.88) !important;
    color:#fff !important;
    white-space:nowrap !important;
}

/* Mobile/tablet: rail remains visible and compact. */
@media (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
        padding-left:44px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
        left:16px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::before{
        left:-36px !important;
        top:27px !important;
        width:14px !important;
        height:14px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card{
        border:0 !important;
        outline:0 !important;
        box-shadow:none !important;
        padding:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day-photo-card::before,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day-photo-card::after{
        display:none !important;
        content:none !important;
    }
}


/* ==========================================================
   v1.15.66 — EXACT APPROVED RED TIMELINE TARGET
   Timeline Layout only.
   No changes to Classic Split or Note Layout.
   ========================================================== */

.safari-hub-itinerary.roby-layout-luxury-timeline{
    --roby-approved-red:#d75454;
    --roby-approved-cream:#fbf8f3;
    --roby-approved-rule:rgba(215,84,84,.72);
}

/* ---------- LEFT TIMELINE ---------- */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
    position:relative !important;
    padding-left:104px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
    content:"" !important;
    display:block !important;
    position:absolute !important;
    left:72px !important;
    top:0 !important;
    bottom:0 !important;
    width:2px !important;
    background:var(--roby-approved-red) !important;
    opacity:1 !important;
    z-index:1 !important;
}

/* Exact dot shape from the approved image:
   red circular ring with a small white center. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::before{
    content:"" !important;
    display:block !important;
    position:absolute !important;
    left:-41px !important;
    top:24px !important;
    width:20px !important;
    height:20px !important;
    border:0 !important;
    border-radius:50% !important;
    background:
        radial-gradient(circle at center,
            #fff 0 3px,
            var(--roby-approved-red) 4px 100%) !important;
    box-shadow:none !important;
    z-index:5 !important;
}

/* Disable all legacy markers/dots so only the approved one remains. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-dot,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-dot,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::after{
    display:none !important;
    content:none !important;
}

/* ---------- DAY SEPARATOR ---------- */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
    border-bottom:0 !important;
    position:relative !important;
    overflow:visible !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day:not(:last-child){
    border-bottom:1px dashed var(--roby-approved-rule) !important;
}

/* Remove the decorative horizontal line beside ALL itinerary headings. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-itinerary-section > .roby-luxury-section-heading::after{
    display:none !important;
    content:none !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-itinerary-section > .roby-luxury-section-heading{
    padding-right:0 !important;
}

/* Remove any heading-attached separator from older versions. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-day:not(:last-child) > .roby-luxury-day-head::after{
    display:none !important;
    content:none !important;
}

/* ---------- APPROVED RED ACCENTS ---------- */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-feature-icon,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading-icon,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals > span > b{
    color:var(--roby-approved-red) !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-copy li::marker{
    color:var(--roby-approved-red) !important;
}

/* ---------- DESKTOP COMPOSITION — MATCH APPROVED IMAGE ---------- */
@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        display:grid !important;
        grid-template-columns:minmax(0,1.45fr) minmax(360px,.85fr) !important;
        grid-template-rows:auto auto auto auto !important;
        column-gap:28px !important;
        row-gap:0 !important;
        align-items:start !important;
        padding:22px 0 38px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-head{
        grid-column:1 / -1 !important;
        grid-row:1 !important;
        margin:0 0 16px !important;
        padding:0 !important;
        min-height:58px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day > .roby-luxury-feature-row,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-day > .roby-luxury-info-row{
        display:contents !important;
    }

    /* Itinerary left */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section{
        grid-column:1 !important;
        grid-row:2 !important;
        margin:0 !important;
        padding:0 !important;
        width:100% !important;
        min-width:0 !important;
    }

    /* Safari image right — no offset frame/border */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card{
        grid-column:2 !important;
        grid-row:2 / span 2 !important;
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        outline:0 !important;
        box-shadow:none !important;
        background:transparent !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card::before,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card::after,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo::before,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo::after{
        display:none !important;
        content:none !important;
        border:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo{
        width:100% !important;
        height:330px !important;
        min-height:330px !important;
        max-height:330px !important;
        border:0 !important;
        outline:0 !important;
        box-shadow:none !important;
    }

    /* Meals directly below itinerary */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        grid-column:1 !important;
        grid-row:3 !important;
        margin:12px 0 0 !important;
        padding:13px 0 0 !important;
        border-top:1px solid rgba(0,0,0,.10) !important;
        background:transparent !important;
        box-shadow:none !important;
    }

    /* Accommodation left / Activities right */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
        grid-column:1 !important;
        grid-row:4 !important;
        width:100% !important;
        min-width:0 !important;
        margin:20px 0 0 !important;
        padding:14px !important;
        background:var(--roby-approved-cream) !important;
        border:0 !important;
        box-shadow:none !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        grid-column:2 !important;
        grid-row:4 !important;
        width:100% !important;
        min-width:0 !important;
        margin:20px 0 0 !important;
        padding:16px !important;
        background:var(--roby-approved-cream) !important;
        border:0 !important;
        box-shadow:none !important;
        align-self:stretch !important;
    }

    /* Accommodation gallery */
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-card > .roby-luxury-accommodation-feature{
        display:block !important;
        flex:none !important;
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
        height:auto !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout{
        display:grid !important;
        grid-template-columns:minmax(0,2.85fr) minmax(130px,1fr) !important;
        grid-template-rows:252px !important;
        gap:8px !important;
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
        height:252px !important;
        min-height:252px !important;
        max-height:252px !important;
        overflow:hidden !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-main > img{
        width:100% !important;
        height:252px !important;
        min-height:252px !important;
        max-height:252px !important;
        object-fit:cover !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        position:static !important;
        display:grid !important;
        grid-template-columns:1fr !important;
        grid-template-rows:122px 122px !important;
        gap:8px !important;
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
        height:252px !important;
        min-height:252px !important;
        max-height:252px !important;
        margin:0 !important;
        padding:0 !important;
        transform:none !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-thumb,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-thumb img{
        width:100% !important;
        height:122px !important;
        min-height:122px !important;
        max-height:122px !important;
        object-fit:cover !important;
    }
}

/* ---------- TABLET / MOBILE ---------- */
@media (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
        padding-left:46px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
        left:15px !important;
        width:2px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::before{
        left:-40px !important;
        top:24px !important;
        width:16px !important;
        height:16px !important;
        background:
            radial-gradient(circle at center,
                #fff 0 2.5px,
                var(--roby-approved-red) 3.5px 100%) !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card{
        padding:0 !important;
        border:0 !important;
        outline:0 !important;
        box-shadow:none !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card::before,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card::after{
        display:none !important;
        content:none !important;
    }
}


/* ==========================================================
   v1.15.67 — EXACT BLACK TIMELINE TARGET
   Timeline Layout only.
   Matches the approved generated image:
   faint black rail, centered black hollow dots,
   black icons, black meal checks, black activity bullets.
   ========================================================== */

.safari-hub-itinerary.roby-layout-luxury-timeline{
    --roby-approved-black:#111;
    --roby-approved-black-faint:rgba(17,17,17,.34);
}

/* Faint black vertical line. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
    background:var(--roby-approved-black) !important;
    opacity:.34 !important;
}

/* Black ring dot with white centre, centered exactly on the line. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::before{
    left:-42px !important;
    top:24px !important;
    width:20px !important;
    height:20px !important;
    border-radius:50% !important;
    background:
        radial-gradient(circle at center,
            #fff 0 3px,
            var(--roby-approved-black) 4px 100%) !important;
    box-shadow:none !important;
    z-index:5 !important;
}

/* Approved image uses black visual accents. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-feature-icon,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading-icon,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals > span > b{
    color:var(--roby-approved-black) !important;
}

/* Meal checks black. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals > span > b{
    background:transparent !important;
    border:0 !important;
}

/* Activity bullets black. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-copy li::marker{
    color:var(--roby-approved-black) !important;
}

/* Dotted day separator becomes faint black/grey like approved image. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day:not(:last-child){
    border-bottom:1px dashed rgba(17,17,17,.32) !important;
}

/* Keep all itinerary heading decorative lines removed. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-itinerary-section > .roby-luxury-section-heading::after,
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-day:not(:last-child) > .roby-luxury-day-head::after{
    display:none !important;
    content:none !important;
}

/* Tablet/mobile: align dot centre exactly over each rail. */
@media (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
        background:var(--roby-approved-black) !important;
        opacity:.34 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::before{
        left:-40px !important;
        top:24px !important;
        width:16px !important;
        height:16px !important;
        background:
            radial-gradient(circle at center,
                #fff 0 2.5px,
                var(--roby-approved-black) 3.5px 100%) !important;
    }
}


/* ==========================================================
   v1.15.68 — TIMELINE DOT CENTERING + HOTEL LABEL ONLY
   Timeline Layout only.
   ========================================================== */

/* Centre every hollow day dot exactly over the faint vertical rail.
   The day content begins 104px after the .roby-luxury-days edge,
   while the rail sits at 72px, so its centre is -32px from the day. */
@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::before{
        left:-32px !important;
        transform:translateX(-50%) !important;
        transform-origin:center !important;
    }
}

/* Tablet/mobile use their own rail position; centre by the same method. */
@media (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::before{
        left:-31px !important;
        transform:translateX(-50%) !important;
        transform-origin:center !important;
    }
}

/* Hotel name must sit ON the main accommodation image:
   white compact box, black name. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap{
    position:relative !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap > .roby-luxury-accommodation-overlay{
    position:absolute !important;
    left:14px !important;
    bottom:14px !important;
    top:auto !important;
    right:auto !important;
    z-index:8 !important;
    display:inline-flex !important;
    align-items:center !important;
    width:auto !important;
    max-width:calc(100% - 28px) !important;
    min-width:0 !important;
    padding:8px 11px !important;
    gap:7px !important;
    background:#fff !important;
    color:#000 !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:0 2px 8px rgba(0,0,0,.12) !important;
    white-space:nowrap !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap > .roby-luxury-accommodation-overlay strong,
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap > .roby-luxury-accommodation-overlay span{
    color:#000 !important;
}


/* ==========================================================
   v1.15.69 — EXACT TIMELINE CENTRE + IMAGE LABEL FIX
   Timeline Layout only.
   ========================================================== */

/* Use one shared coordinate for BOTH the rail and the dot.
   This guarantees the dot centre crosses the vertical line. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
    --roby-rail-x:72px;
    position:relative !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
    left:var(--roby-rail-x) !important;
    width:1px !important;
    background:#111 !important;
    opacity:.34 !important;
    transform:translateX(-50%) !important;
}

/* Day starts 104px from the days container.
   Dot centre = rail x (72px), therefore 72 - 104 = -32px. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::before{
    left:calc(var(--roby-rail-x) - 104px) !important;
    top:24px !important;
    width:20px !important;
    height:20px !important;
    transform:translateX(-50%) !important;
    border-radius:50% !important;
    background:radial-gradient(circle at center,#fff 0 3px,#111 4px 100%) !important;
    z-index:10 !important;
}

/* HOTEL LABEL — force it INSIDE the main image, never below it. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap{
    position:relative !important;
    overflow:hidden !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap > .roby-luxury-accommodation-overlay{
    position:absolute !important;
    left:14px !important;
    bottom:14px !important;
    top:auto !important;
    right:auto !important;
    z-index:20 !important;
    display:inline-flex !important;
    align-items:center !important;
    width:max-content !important;
    max-width:calc(100% - 28px) !important;
    margin:0 !important;
    padding:8px 12px !important;
    background:#fff !important;
    color:#000 !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:0 2px 8px rgba(0,0,0,.14) !important;
    transform:none !important;
    white-space:nowrap !important;
    box-sizing:border-box !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap > .roby-luxury-accommodation-overlay strong{
    color:#000 !important;
    white-space:nowrap !important;
}

/* Remove the small crosshair/locator icon from the hotel label
   to match the approved image. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap > .roby-luxury-accommodation-overlay > span{
    display:none !important;
}

/* Mobile/tablet use their own shared rail coordinate. */
@media (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
        --roby-rail-x:15px;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::before{
        left:calc(var(--roby-rail-x) - 46px) !important;
        width:16px !important;
        height:16px !important;
        background:radial-gradient(circle at center,#fff 0 2.5px,#111 3.5px 100%) !important;
    }
}


/* ==========================================================
   v1.15.70 — STRUCTURAL DOT + HOTEL LABEL FIX
   Timeline Layout only.
   Uses the REAL rail-marker element for the dot and places the
   hotel label physically inside the main-image button.
   ========================================================== */

/* Disable pseudo-dot completely. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::before{
    display:none !important;
    content:none !important;
}

/* Desktop rail: line at x=72px inside .roby-luxury-days. */
@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
        position:relative !important;
        padding-left:104px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
        left:72px !important;
        width:1px !important;
        transform:none !important;
        background:#111 !important;
        opacity:.34 !important;
        z-index:1 !important;
    }

    /* Article begins at x=104. Marker left -42 + half 20 = x=72.
       Therefore the line passes through the EXACT dot centre. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
        display:block !important;
        position:absolute !important;
        left:-42px !important;
        top:24px !important;
        width:20px !important;
        height:20px !important;
        margin:0 !important;
        padding:0 !important;
        z-index:20 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-dot{
        display:block !important;
        position:absolute !important;
        inset:0 !important;
        width:20px !important;
        height:20px !important;
        min-width:20px !important;
        min-height:20px !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        border-radius:50% !important;
        background:radial-gradient(circle at center,#fff 0 3px,#111 4px 100%) !important;
        box-shadow:none !important;
        transform:none !important;
    }
}

/* Tablet/mobile rail + real marker share exact coordinates. */
@media (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
        position:relative !important;
        padding-left:46px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days::before{
        left:15px !important;
        width:1px !important;
        transform:none !important;
        background:#111 !important;
        opacity:.34 !important;
    }

    /* Article begins x=46. Marker left -39 + half 16 = x=15. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
        display:block !important;
        position:absolute !important;
        left:-39px !important;
        top:24px !important;
        width:16px !important;
        height:16px !important;
        margin:0 !important;
        padding:0 !important;
        z-index:20 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-dot{
        display:block !important;
        position:absolute !important;
        inset:0 !important;
        width:16px !important;
        height:16px !important;
        min-width:16px !important;
        min-height:16px !important;
        border:0 !important;
        border-radius:50% !important;
        background:radial-gradient(circle at center,#fff 0 2.5px,#111 3.5px 100%) !important;
        box-shadow:none !important;
        transform:none !important;
    }
}

/* Hotel label is now a CHILD of the image button itself. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main{
    position:relative !important;
    overflow:hidden !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay{
    position:absolute !important;
    left:14px !important;
    bottom:14px !important;
    top:auto !important;
    right:auto !important;
    z-index:30 !important;
    display:inline-flex !important;
    align-items:center !important;
    width:auto !important;
    max-width:calc(100% - 28px) !important;
    margin:0 !important;
    padding:8px 12px !important;
    background:#fff !important;
    color:#000 !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:0 2px 8px rgba(0,0,0,.14) !important;
    transform:none !important;
    white-space:nowrap !important;
    box-sizing:border-box !important;
    pointer-events:none !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay strong{
    display:block !important;
    color:#000 !important;
    line-height:1.2 !important;
    white-space:nowrap !important;
}


/* ==========================================================
   v1.15.71 — TIMELINE CROSS-INTERSECTION ONLY
   Timeline Layout only.
   Horizontal dotted separator now crosses through the exact
   centre of each real timeline dot, matching the approved image.
   ========================================================== */

/* Remove the old bottom-border separator. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day:not(:last-child){
    border-bottom:0 !important;
}

/* Draw the dotted separator at the SAME Y coordinate as the dot centre.
   Dot top = 24px, dot height = 20px, so centre = 34px. */
@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        position:relative !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day:not(:first-child)::after{
        content:"" !important;
        display:block !important;
        position:absolute !important;
        left:-104px !important;
        right:0 !important;
        top:34px !important;
        height:1px !important;
        border-top:1px dashed rgba(17,17,17,.28) !important;
        pointer-events:none !important;
        z-index:2 !important;
    }

    /* Real dot stays above both lines. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
        z-index:20 !important;
    }
}

/* Tablet/mobile: dot centre = top 24px + 8px = 32px. */
@media (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day:not(:first-child)::after{
        content:"" !important;
        display:block !important;
        position:absolute !important;
        left:-46px !important;
        right:0 !important;
        top:32px !important;
        height:1px !important;
        border-top:1px dashed rgba(17,17,17,.28) !important;
        pointer-events:none !important;
        z-index:2 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
        z-index:20 !important;
    }
}


/* ==========================================================
   v1.15.72 — REAL TIMELINE CROSS LINE
   Timeline Layout only.
   Uses a real DOM element so the dotted horizontal line MUST
   cross through the exact centre of the real timeline dot.
   ========================================================== */

/* Disable earlier pseudo-element cross-lines completely. */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day::after{
    display:none !important;
    content:none !important;
}

/* Desktop:
   real dot top 24px + 10px radius = centre at 34px.
   Cross-line is placed at exactly 34px. */
@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        position:relative !important;
        overflow:visible !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-cross-line{
        display:block !important;
        position:absolute !important;
        left:-104px !important;
        right:0 !important;
        top:34px !important;
        height:0 !important;
        border-top:1px dashed rgba(17,17,17,.28) !important;
        margin:0 !important;
        padding:0 !important;
        pointer-events:none !important;
        z-index:2 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
        z-index:20 !important;
    }
}

/* Tablet/mobile:
   real dot top 24px + 8px radius = centre at 32px. */
@media (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        position:relative !important;
        overflow:visible !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-cross-line{
        display:block !important;
        position:absolute !important;
        left:-46px !important;
        right:0 !important;
        top:32px !important;
        height:0 !important;
        border-top:1px dashed rgba(17,17,17,.28) !important;
        margin:0 !important;
        padding:0 !important;
        pointer-events:none !important;
        z-index:2 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
        z-index:20 !important;
    }
}


/* ==========================================================
   v1.15.73 — TIMELINE ORGANISATION CLEANUP
   Timeline Layout only.
   Purpose: restore clear visual hierarchy and alignment without
   changing Classic Split or Note Layout.
   ========================================================== */

@media (min-width:1000px){

    /* Keep each day compact and deliberately structured. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
        display:grid !important;
        grid-template-columns:minmax(0,1.45fr) minmax(360px,.85fr) !important;
        grid-template-rows:auto auto auto auto !important;
        column-gap:34px !important;
        row-gap:0 !important;
        padding:30px 0 42px !important;
        margin:0 !important;
        align-items:start !important;
    }

    /* Day header: fixed day-number column + title column. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-head{
        grid-column:1 / -1 !important;
        grid-row:1 !important;
        display:grid !important;
        grid-template-columns:170px minmax(0,1fr) !important;
        gap:0 !important;
        align-items:center !important;
        min-height:92px !important;
        margin:0 0 30px !important;
        padding:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number-wrap{
        display:flex !important;
        flex-direction:column !important;
        justify-content:center !important;
        align-items:flex-start !important;
        min-height:92px !important;
        margin:0 !important;
        padding:0 28px 0 0 !important;
        border-right:1px solid rgba(17,17,17,.12) !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-label{
        margin:0 0 6px !important;
        line-height:1 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number{
        margin:0 !important;
        line-height:.82 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-title-wrap{
        display:flex !important;
        align-items:center !important;
        min-height:92px !important;
        margin:0 !important;
        padding:0 0 0 36px !important;
        border:0 !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-title-wrap .roby-day-title-heading{
        margin:0 !important;
        padding:0 !important;
    }

    /* Content starts immediately below the day header. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section{
        grid-column:1 !important;
        grid-row:2 !important;
        margin:0 !important;
        padding:0 !important;
        align-self:start !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo-card{
        grid-column:2 !important;
        grid-row:2 / span 2 !important;
        margin:0 !important;
        padding:0 !important;
        align-self:start !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-photo{
        height:360px !important;
        min-height:360px !important;
        max-height:360px !important;
    }

    /* Meals remain directly beneath the itinerary with no large void. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-meals-card{
        grid-column:1 !important;
        grid-row:3 !important;
        margin:18px 0 0 !important;
        padding:15px 0 0 !important;
        border-top:1px solid rgba(17,17,17,.10) !important;
        align-self:start !important;
    }

    /* Lower row stays clean and balanced. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
        grid-column:1 !important;
        grid-row:4 !important;
        margin:30px 0 0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        grid-column:2 !important;
        grid-row:4 !important;
        margin:30px 0 0 !important;
    }

    /* Separator crosses the real dot, but sits at the top boundary of a day,
       not through the title or main content. */
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-cross-line{
        top:0 !important;
        left:-104px !important;
        right:0 !important;
        border-top:1px dashed rgba(17,17,17,.24) !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
        top:-10px !important;
    }
}

/* Tablet: keep the same hierarchy, just tighter. */
@media (min-width:768px) and (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-head{
        display:grid !important;
        grid-template-columns:120px minmax(0,1fr) !important;
        min-height:76px !important;
        margin-bottom:24px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number-wrap{
        min-height:76px !important;
        padding-right:20px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-title-wrap{
        min-height:76px !important;
        padding-left:24px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-cross-line{
        top:0 !important;
        left:-46px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
        top:-8px !important;
    }
}

/* Phone: no awkward giant header gaps. */
@media (max-width:767px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-head{
        display:grid !important;
        grid-template-columns:76px minmax(0,1fr) !important;
        gap:0 !important;
        align-items:center !important;
        margin-bottom:22px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number-wrap{
        min-height:64px !important;
        padding:0 12px 0 0 !important;
        border-right:1px solid rgba(17,17,17,.12) !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-title-wrap{
        min-height:64px !important;
        padding:0 0 0 14px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-cross-line{
        top:0 !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-rail-marker{
        top:-7px !important;
    }
}


/* ==========================================================
   v1.15.74 — ACCOMMODATION FINISH ONLY
   Timeline Layout only.
   - Hotel name uppercase using saved Body Font
   - More space between the two supporting accommodation images
   - Remove accommodation title icon
   ========================================================== */

/* Remove the icon beside Accommodation title. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-heading-icon{
    display:none !important;
}

/* Keep heading alignment clean after icon removal. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-heading{
    gap:0 !important;
}

/* Hotel name: uppercase, but use the saved Body Font settings. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay strong{
    text-transform:uppercase !important;
    font-family:var(--roby-font-body, var(--safari-custom-body-font, inherit)) !important;
    font-size:var(--roby-body-size, inherit) !important;
    font-weight:var(--roby-body-weight, 400) !important;
    line-height:var(--roby-body-line-height, 1.3) !important;
    letter-spacing:var(--roby-body-letter-spacing, normal) !important;
}

/* Add a clearer gap between the two small accommodation images. */
@media (min-width:768px){
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        gap:12px !important;
    }
}

/* Rebalance their heights so the combined thumbnail column
   still matches the height of the main accommodation image. */
@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        grid-template-rows:120px 120px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-thumb,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-thumb img{
        height:120px !important;
        min-height:120px !important;
        max-height:120px !important;
    }
}

@media (min-width:768px) and (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        grid-template-rows:129px 129px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-thumb,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-thumb img{
        height:129px !important;
        min-height:129px !important;
        max-height:129px !important;
    }
}


/* ==========================================================
   v1.15.75 — ACCOMMODATION THUMB GAP + SMALLER HOTEL NAME
   Timeline Layout only.
   ========================================================== */

/* Smaller hotel name while keeping uppercase + saved Body Font. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay strong{
    font-family:var(--roby-font-body, var(--safari-custom-body-font, inherit)) !important;
    font-size:12px !important;
    font-weight:var(--roby-body-weight, 400) !important;
    line-height:1.2 !important;
    letter-spacing:var(--roby-body-letter-spacing, normal) !important;
    text-transform:uppercase !important;
}

/* Make the hotel label itself more compact to match the approved target. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay{
    padding:7px 10px !important;
}

/* Force a genuinely visible gap between the two supporting images.
   Using row-gap + calc heights prevents old fixed heights from closing it. */
@media (min-width:768px){
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        display:grid !important;
        grid-template-columns:1fr !important;
        grid-template-rows:repeat(2, minmax(0, 1fr)) !important;
        row-gap:14px !important;
        column-gap:0 !important;
        overflow:visible !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-thumb{
        width:100% !important;
        height:100% !important;
        min-height:0 !important;
        max-height:none !important;
        margin:0 !important;
        overflow:hidden !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-thumb img{
        display:block !important;
        width:100% !important;
        height:100% !important;
        min-height:0 !important;
        max-height:none !important;
        margin:0 !important;
        object-fit:cover !important;
    }
}

/* Desktop total remains exactly aligned with the 252px main image. */
@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        height:252px !important;
        min-height:252px !important;
        max-height:252px !important;
    }
}


/* ==========================================================
   v1.15.76 — EXACT APPROVED ACCOMMODATION GALLERY
   Timeline Layout only.
   Matches the approved generated image:
   - one dominant main image
   - two equal stacked images on the right
   - 10px horizontal + vertical gap
   - all images share the same total height
   - compact white hotel label on main image
   ========================================================== */

/* Remove accommodation title icon completely. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-heading-icon{
    display:none !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-heading{
    gap:0 !important;
}

/* Reset all older accommodation sizing so this layout is authoritative. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-card,
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-card > .roby-luxury-accommodation-feature,
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-gallery-layout,
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main-wrap,
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main,
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-thumbs,
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-thumb{
    box-sizing:border-box !important;
}

/* Desktop exact composition from approved mock-up. */
@media (min-width:1000px){

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-card > .roby-luxury-accommodation-feature{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        margin:0 !important;
        padding:0 !important;
        overflow:visible !important;
        flex:none !important;
        aspect-ratio:auto !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout{
        display:grid !important;
        grid-template-columns:minmax(0,3.25fr) minmax(180px,1fr) !important;
        grid-template-rows:360px !important;
        column-gap:10px !important;
        row-gap:0 !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        height:360px !important;
        min-height:360px !important;
        max-height:360px !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
        align-items:stretch !important;
    }

    /* Large image — dominant and same total height as thumbnail stack. */
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap{
        grid-column:1 !important;
        grid-row:1 !important;
        position:relative !important;
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
        height:360px !important;
        min-height:360px !important;
        max-height:360px !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main{
        display:block !important;
        position:relative !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        height:360px !important;
        min-height:360px !important;
        max-height:360px !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        overflow:hidden !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main > img{
        display:block !important;
        width:100% !important;
        height:360px !important;
        min-height:360px !important;
        max-height:360px !important;
        object-fit:cover !important;
        margin:0 !important;
    }

    /* Right column — two equal images with an exact 10px gap. */
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        grid-column:2 !important;
        grid-row:1 !important;
        position:static !important;
        display:grid !important;
        grid-template-columns:1fr !important;
        grid-template-rows:175px 175px !important;
        column-gap:0 !important;
        row-gap:10px !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        height:360px !important;
        min-height:360px !important;
        max-height:360px !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
        transform:none !important;
        align-content:start !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-thumb{
        position:relative !important;
        display:block !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        height:175px !important;
        min-height:175px !important;
        max-height:175px !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        border-radius:0 !important;
        overflow:hidden !important;
        box-shadow:none !important;
        aspect-ratio:auto !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-thumb img{
        display:block !important;
        width:100% !important;
        height:175px !important;
        min-height:175px !important;
        max-height:175px !important;
        object-fit:cover !important;
        margin:0 !important;
    }
}

/* Hotel name exactly like approved mock-up:
   small uppercase Body Font, white box, black text, over main image. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay{
    position:absolute !important;
    left:16px !important;
    bottom:16px !important;
    top:auto !important;
    right:auto !important;
    z-index:30 !important;
    display:inline-flex !important;
    align-items:center !important;
    width:auto !important;
    max-width:calc(100% - 32px) !important;
    margin:0 !important;
    padding:8px 12px !important;
    background:#fff !important;
    color:#000 !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:0 2px 8px rgba(0,0,0,.12) !important;
    white-space:nowrap !important;
    pointer-events:none !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay strong{
    font-family:var(--roby-font-body, var(--safari-custom-body-font, inherit)) !important;
    font-size:11px !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:1.15 !important;
    letter-spacing:var(--roby-body-letter-spacing,normal) !important;
    text-transform:uppercase !important;
    color:#000 !important;
    white-space:nowrap !important;
}

/* Tablet: preserve the exact 10px gap and equal total height. */
@media (min-width:768px) and (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout{
        display:grid !important;
        grid-template-columns:minmax(0,2.9fr) minmax(130px,1fr) !important;
        grid-template-rows:300px !important;
        column-gap:10px !important;
        width:100% !important;
        height:300px !important;
        min-height:300px !important;
        max-height:300px !important;
        overflow:hidden !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main > img{
        height:300px !important;
        min-height:300px !important;
        max-height:300px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        display:grid !important;
        grid-template-columns:1fr !important;
        grid-template-rows:145px 145px !important;
        row-gap:10px !important;
        height:300px !important;
        min-height:300px !important;
        max-height:300px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-thumb,
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-thumb img{
        height:145px !important;
        min-height:145px !important;
        max-height:145px !important;
    }
}


/* ==========================================================
   v1.15.77 — EXACT ACCOMMODATION IMAGE MATCH
   Timeline Layout only.
   Approved target:
   - large main image LEFT
   - two equal images RIGHT
   - 10px gap between columns
   - 10px gap between the two small images
   - right stack total height EXACTLY equals main image height
   - white circular gallery buttons with black +
   ========================================================== */

@media (min-width:768px){

    /* One authoritative gallery frame. The aspect ratio allows
       the entire composition to scale while keeping both sides
       exactly the same total height. */
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout{
        display:grid !important;
        grid-template-columns:minmax(0,2.15fr) minmax(180px,1fr) !important;
        grid-template-rows:1fr !important;
        column-gap:10px !important;
        row-gap:0 !important;
        width:100% !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        aspect-ratio:2.75 / 1 !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
        align-items:stretch !important;
        box-sizing:border-box !important;
    }

    /* MAIN IMAGE */
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-main-wrap{
        grid-column:1 !important;
        grid-row:1 !important;
        position:relative !important;
        width:100% !important;
        height:100% !important;
        min-width:0 !important;
        min-height:0 !important;
        max-width:none !important;
        max-height:none !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap > .roby-luxury-accommodation-main{
        display:block !important;
        position:relative !important;
        width:100% !important;
        height:100% !important;
        min-width:0 !important;
        min-height:0 !important;
        max-width:none !important;
        max-height:none !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        overflow:hidden !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-main-wrap > .roby-luxury-accommodation-main > img{
        display:block !important;
        width:100% !important;
        height:100% !important;
        min-width:0 !important;
        min-height:0 !important;
        max-width:none !important;
        max-height:none !important;
        margin:0 !important;
        object-fit:cover !important;
    }

    /* TWO SMALL IMAGES — one shared column, exact 10px gap. */
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
        grid-column:2 !important;
        grid-row:1 !important;
        position:static !important;
        display:grid !important;
        grid-template-columns:1fr !important;
        grid-template-rows:minmax(0,1fr) minmax(0,1fr) !important;
        column-gap:0 !important;
        row-gap:10px !important;
        width:100% !important;
        height:100% !important;
        min-width:0 !important;
        min-height:0 !important;
        max-width:none !important;
        max-height:none !important;
        margin:0 !important;
        padding:0 !important;
        right:auto !important;
        bottom:auto !important;
        transform:none !important;
        overflow:hidden !important;
        box-sizing:border-box !important;
        align-content:stretch !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb{
        position:relative !important;
        display:block !important;
        width:100% !important;
        height:100% !important;
        min-width:0 !important;
        min-height:0 !important;
        max-width:none !important;
        max-height:none !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        border-radius:0 !important;
        overflow:hidden !important;
        box-shadow:none !important;
        aspect-ratio:auto !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb img{
        display:block !important;
        width:100% !important;
        height:100% !important;
        min-width:0 !important;
        min-height:0 !important;
        max-width:none !important;
        max-height:none !important;
        margin:0 !important;
        object-fit:cover !important;
    }
}

/* Gallery controls: white circular button, black plus. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-gallery-layout .roby-luxury-gallery-plus{
    position:absolute !important;
    right:10px !important;
    bottom:10px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:32px !important;
    height:32px !important;
    min-width:32px !important;
    min-height:32px !important;
    padding:0 !important;
    background:#fff !important;
    border:1px solid rgba(0,0,0,.18) !important;
    border-radius:50% !important;
    box-shadow:0 1px 5px rgba(0,0,0,.15) !important;
    z-index:6 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-gallery-layout .roby-luxury-gallery-plus > span{
    position:relative !important;
    display:block !important;
    width:13px !important;
    height:13px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-gallery-layout .roby-luxury-gallery-plus > span::before,
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-gallery-layout .roby-luxury-gallery-plus > span::after{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    background:#000 !important;
    transform:translate(-50%,-50%) !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-gallery-layout .roby-luxury-gallery-plus > span::before{
    width:13px !important;
    height:2px !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-gallery-layout .roby-luxury-gallery-plus > span::after{
    width:2px !important;
    height:13px !important;
}

/* Hotel label stays inside the main image. */
.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay{
    left:16px !important;
    bottom:16px !important;
    background:#fff !important;
    color:#000 !important;
}

.safari-hub-itinerary.roby-layout-luxury-timeline
.roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay strong{
    color:#000 !important;
    font-size:11px !important;
    text-transform:uppercase !important;
}

/* Mobile keeps a clean stacked gallery. */
@media (max-width:767px){
    .safari-hub-itinerary.roby-layout-luxury-timeline
    .roby-luxury-accommodation-gallery-layout{
        aspect-ratio:auto !important;
    }
}


/* ==========================================================
   v1.15.78 — TIMELINE DAY HEADER GAP ONLY
   Reduce only the horizontal space between the large day-number
   block/divider and the day title.
   ========================================================== */

@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-head{
        grid-template-columns:145px minmax(0,1fr) !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number-wrap{
        padding-right:16px !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-title-wrap{
        padding-left:20px !important;
    }
}


/* ==========================================================
   v1.15.79 — DAY NUMBER / DIVIDER / TITLE COMPACT GAP
   Timeline Layout desktop only.
   Previous change reduced the grid column but older width rules
   still preserved the visible gap. This override removes those
   inherited widths and controls the spacing directly.
   ========================================================== */
@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day-head{
        display:grid !important;
        grid-template-columns:112px minmax(0,1fr) !important;
        column-gap:0 !important;
        width:100% !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-number-wrap{
        width:112px !important;
        min-width:112px !important;
        max-width:112px !important;
        padding:0 10px 0 0 !important;
        margin:0 !important;
        box-sizing:border-box !important;
        border-right:1px solid rgba(17,17,17,.12) !important;
    }

    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-title-wrap{
        width:auto !important;
        min-width:0 !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 0 0 18px !important;
        box-sizing:border-box !important;
    }
}


/* ==========================================================
   v1.15.81 — CINEMATIC SAFARI / PHOTOGRAPHY-FIRST LAYOUT
   Fourth layout only. Existing three layouts are untouched.
   ========================================================== */
.roby-layout-cinematic-safari{width:100%;max-width:none;margin:0 auto;color:var(--roby-body-color,#171717);font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit))}
.roby-cinematic-heading{max-width:1280px;margin:0 auto 54px;padding:0 28px}
.roby-cinematic-heading>span,.roby-cinematic-kicker{display:block;text-transform:uppercase;letter-spacing:.18em;font-size:11px;line-height:1.2;margin:0 0 10px;opacity:.62;font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit))}
.roby-cinematic-heading .roby-primary-itinerary-heading{margin:0}
.roby-cinematic-day{margin:0 0 96px}
.roby-cinematic-hero{position:relative;width:100%;height:min(78vh,760px);min-height:520px;overflow:hidden;background:#111}
.roby-cinematic-hero>img{width:100%;height:100%;object-fit:cover;display:block}
.roby-cinematic-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04) 36%,rgba(0,0,0,.68) 100%)}
.roby-cinematic-hero-copy{position:absolute;left:max(5vw,34px);right:18%;bottom:54px;color:#fff;z-index:2}
.roby-cinematic-hero-copy>span{font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit));font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.roby-cinematic-hero-copy .roby-day-title-heading{color:#fff!important;margin:12px 0 0!important;max-width:1000px;font-size:clamp(34px,4vw,66px)!important;line-height:1.02!important}
.roby-cinematic-count{position:absolute;right:max(4vw,28px);bottom:38px;z-index:2;color:rgba(255,255,255,.72);font-size:clamp(42px,6vw,88px);line-height:1;font-family:var(--roby-font-heading,inherit)}
.roby-cinematic-day-title{max-width:1180px;margin:0 auto;padding:42px 28px 28px}
.roby-cinematic-day-title>span{letter-spacing:.18em;text-transform:uppercase;font-size:11px}
.roby-cinematic-day-title .roby-day-title-heading{margin:10px 0 0}
.roby-cinematic-story-copy{display:grid;grid-template-columns:180px minmax(0,760px);gap:40px;max-width:1120px;margin:64px auto;padding:0 28px}
.roby-cinematic-story-copy .roby-cinematic-kicker{padding-top:7px}
.roby-cinematic-body,.roby-cinematic-body :where(p,ul,ol,li,span,strong,em,a,blockquote){font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit))!important}
.roby-cinematic-body p:first-child{margin-top:0}.roby-cinematic-body p:last-child{margin-bottom:0}
.roby-cinematic-photo-story{max-width:1280px;margin:62px auto;padding:0 28px}
.roby-cinematic-story-grid{display:grid;grid-template-columns:1.45fr 1fr;grid-auto-rows:260px;gap:10px}
.roby-cinematic-story-image{position:relative;border:0;padding:0;margin:0;background:#111;overflow:hidden;cursor:pointer}
.roby-cinematic-story-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.roby-cinematic-story-image:hover img{transform:scale(1.025)}
.roby-cinematic-story-image:first-child{grid-row:span 2}
.roby-cinematic-story-count-1 .roby-cinematic-story-image:first-child{grid-column:1/-1;grid-row:span 2}
.roby-cinematic-story-count-4,.roby-cinematic-story-count-5{grid-template-columns:1.5fr 1fr 1fr}
.roby-cinematic-story-count-4 .roby-cinematic-story-image:first-child,.roby-cinematic-story-count-5 .roby-cinematic-story-image:first-child{grid-row:span 2}
.roby-cinematic-photo-plus{position:absolute;right:14px;bottom:14px;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;color:#000;font:400 22px/1 Arial,sans-serif;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.roby-cinematic-details{max-width:1120px;margin:64px auto;display:grid;grid-template-columns:1.4fr .6fr;gap:70px;padding:0 28px}
.roby-cinematic-detail{border-top:1px solid rgba(17,17,17,.14);padding-top:22px}
.roby-cinematic-detail h4{margin:0 0 18px}
.roby-cinematic-activities ul{margin:0;padding-left:20px}
.roby-cinematic-meal-list{display:flex;flex-wrap:wrap;gap:10px 24px;font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit))}
.roby-cinematic-stay{max-width:1280px;margin:68px auto 0;padding:0 28px}
.roby-cinematic-stay-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin:0 0 18px}
.roby-cinematic-stay-head h4{margin:0}
.roby-cinematic-stay-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;height:380px}
.roby-cinematic-stay-gallery button{position:relative;border:0;padding:0;background:#111;overflow:hidden;cursor:pointer}
.roby-cinematic-stay-gallery img{display:block;width:100%;height:100%;object-fit:cover}
.roby-cinematic-stay-gallery button span{position:absolute;right:12px;bottom:12px;width:32px;height:32px;border-radius:50%;background:#fff;color:#000;display:flex;align-items:center;justify-content:center;font:400 20px/1 Arial,sans-serif}
.roby-cinematic-stay-gallery button:only-child{grid-column:1/-1}
.roby-layout-preview-cinematic{position:relative;display:block!important;overflow:hidden;background:#171717!important}
.roby-cinematic-preview-hero{position:absolute;inset:8px 8px 38%;background:linear-gradient(135deg,#2c392c,#7f684a)}
.roby-cinematic-preview-copy{position:absolute;left:14px;bottom:43%;width:52%;height:4px;background:#fff}
.roby-cinematic-preview-grid{position:absolute;left:8px;right:8px;bottom:8px;height:25%;background:linear-gradient(90deg,#6e5d49 0 56%,transparent 56% 58%,#9a866c 58%)}

.roby-photo-story-preview{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.roby-photo-story-preview-image{position:relative;width:92px;height:72px;background:#eee;overflow:hidden}
.roby-photo-story-preview-image img{width:100%;height:100%;object-fit:cover;display:block}
.roby-remove-photo-story{position:absolute;top:4px;right:4px;width:22px;height:22px;border:0;border-radius:50%;background:#fff;color:#111;cursor:pointer;line-height:20px}

@media(max-width:767px){
 .roby-cinematic-day{margin-bottom:62px}
 .roby-cinematic-hero{height:66vh;min-height:430px}
 .roby-cinematic-hero-copy{left:22px;right:22px;bottom:34px}
 .roby-cinematic-count{right:20px;top:20px;bottom:auto;font-size:40px}
 .roby-cinematic-story-copy{display:block;margin:38px auto;padding:0 22px}
 .roby-cinematic-story-copy .roby-cinematic-kicker{margin-bottom:14px}
 .roby-cinematic-photo-story{margin:38px auto;padding:0 22px}
 .roby-cinematic-story-grid,.roby-cinematic-story-count-4,.roby-cinematic-story-count-5{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:190px;gap:8px}
 .roby-cinematic-story-image:first-child{grid-column:1/-1;grid-row:auto;height:300px}
 .roby-cinematic-details{display:block;margin:42px auto;padding:0 22px}
 .roby-cinematic-detail+.roby-cinematic-detail{margin-top:34px}
 .roby-cinematic-stay{margin-top:42px;padding:0 22px}
 .roby-cinematic-stay-head{display:block}
 .roby-cinematic-stay-gallery{height:auto;grid-template-columns:1fr 1fr;grid-auto-rows:180px;gap:8px}
 .roby-cinematic-stay-gallery button:first-child{grid-column:1/-1;height:280px}
}


/* ==========================================================
   v1.15.82 — CINEMATIC SAFARI: 3-PHOTO DAY GALLERY ONLY
   Each Cinematic day uses a maximum of three Safari Photos.
   Desktop: one dominant landscape + two stacked supporting images.
   Mobile: one large image + two equal supporting images.
   ========================================================== */
.roby-layout-cinematic-safari .roby-cinematic-photo-story{
    max-width:1280px !important;
    margin:54px auto 64px !important;
    padding:0 28px !important;
}

.roby-layout-cinematic-safari .roby-cinematic-story-grid{
    display:grid !important;
    grid-template-columns:minmax(0,1.75fr) minmax(250px,.75fr) !important;
    grid-template-rows:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
    height:560px !important;
}

.roby-layout-cinematic-safari .roby-cinematic-story-grid .roby-cinematic-story-image{
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    grid-column:auto !important;
    grid-row:auto !important;
}

.roby-layout-cinematic-safari .roby-cinematic-story-grid .roby-cinematic-story-image:first-child{
    grid-column:1 !important;
    grid-row:1 / 3 !important;
}

.roby-layout-cinematic-safari .roby-cinematic-story-grid .roby-cinematic-story-image:nth-child(2){
    grid-column:2 !important;
    grid-row:1 !important;
}

.roby-layout-cinematic-safari .roby-cinematic-story-grid .roby-cinematic-story-image:nth-child(3){
    grid-column:2 !important;
    grid-row:2 !important;
}

.roby-layout-cinematic-safari .roby-cinematic-story-grid .roby-cinematic-story-image img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
}

/* Graceful presentation when a day has only one or two selected photos. */
.roby-layout-cinematic-safari .roby-cinematic-story-count-1{
    grid-template-columns:1fr !important;
    grid-template-rows:1fr !important;
}
.roby-layout-cinematic-safari .roby-cinematic-story-count-1 .roby-cinematic-story-image:first-child{
    grid-column:1 !important;
    grid-row:1 !important;
}
.roby-layout-cinematic-safari .roby-cinematic-story-count-2{
    grid-template-columns:1.5fr 1fr !important;
    grid-template-rows:1fr !important;
}
.roby-layout-cinematic-safari .roby-cinematic-story-count-2 .roby-cinematic-story-image:first-child{
    grid-column:1 !important;
    grid-row:1 !important;
}
.roby-layout-cinematic-safari .roby-cinematic-story-count-2 .roby-cinematic-story-image:nth-child(2){
    grid-column:2 !important;
    grid-row:1 !important;
}

@media(max-width:767px){
    .roby-layout-cinematic-safari .roby-cinematic-photo-story{
        margin:36px auto 46px !important;
        padding:0 20px !important;
    }

    .roby-layout-cinematic-safari .roby-cinematic-story-grid,
    .roby-layout-cinematic-safari .roby-cinematic-story-count-2{
        grid-template-columns:1fr 1fr !important;
        grid-template-rows:280px 170px !important;
        gap:8px !important;
        height:auto !important;
    }

    .roby-layout-cinematic-safari .roby-cinematic-story-grid .roby-cinematic-story-image:first-child{
        grid-column:1 / 3 !important;
        grid-row:1 !important;
    }

    .roby-layout-cinematic-safari .roby-cinematic-story-grid .roby-cinematic-story-image:nth-child(2){
        grid-column:1 !important;
        grid-row:2 !important;
    }

    .roby-layout-cinematic-safari .roby-cinematic-story-grid .roby-cinematic-story-image:nth-child(3){
        grid-column:2 !important;
        grid-row:2 !important;
    }

    .roby-layout-cinematic-safari .roby-cinematic-story-count-1{
        display:block !important;
        height:auto !important;
    }
    .roby-layout-cinematic-safari .roby-cinematic-story-count-1 .roby-cinematic-story-image:first-child{
        display:block !important;
        height:300px !important;
    }
}


/* ==========================================================
   v1.15.83 — CINEMATIC SAFARI VISUAL-MASTER REBUILD
   Matches the approved generated concept: sticky journey rail,
   photographic cover, editorial rows, 3-photo story, lodge story,
   meals and photographic next-day transition.
   ========================================================== */
.roby-cinematic-v2{--cine-gold:#c98708;--cine-ink:#151515;--cine-cream:#f7f4ed;--cine-line:rgba(21,21,21,.14);background:#fff;color:var(--cine-ink);width:100%;max-width:none!important}
.roby-cine-shell{display:grid;grid-template-columns:250px minmax(0,1fr);max-width:1540px;margin:0 auto;background:#fff}
.roby-cine-journey{background:var(--cine-cream);position:relative;border-right:1px solid rgba(21,21,21,.06)}
.roby-cine-journey-sticky{position:sticky;top:24px;padding:44px 26px 48px;min-height:720px}
.roby-cine-eyebrow,.roby-cine-section-kicker{font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit));font-size:10px;line-height:1.2;font-weight:600;letter-spacing:.22em;text-transform:uppercase}
.roby-cine-gold-rule{display:block;width:48px;height:2px;background:var(--cine-gold);margin:20px 0 26px}
.roby-cine-day-nav{position:relative}
.roby-cine-day-nav:before{content:"";position:absolute;left:20px;top:21px;bottom:21px;width:1px;background:rgba(21,21,21,.17)}
.roby-cine-day-nav a{position:relative;display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;text-decoration:none!important;color:var(--cine-ink)!important;margin:0 0 24px}
.roby-cine-nav-number{position:relative;z-index:1;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e8e4da;font:500 11px/1 var(--roby-font-body,inherit)}
.roby-cine-day-nav a.is-active .roby-cine-nav-number{background:var(--cine-gold);color:#fff}
.roby-cine-nav-copy strong{display:block;font:600 12px/1.25 var(--roby-font-body,inherit)}
.roby-cine-nav-copy small{display:block;margin-top:3px;font:400 10px/1.3 var(--roby-font-body,inherit);opacity:.62}
.roby-cine-sidebar-signoff{text-align:center;margin-top:78px;color:#8d7555}
.roby-cine-sidebar-signoff span{display:block;font-size:28px}.roby-cine-sidebar-signoff em{font:italic 16px/1.45 var(--roby-font-heading,serif)}
.roby-cine-main{min-width:0}
.roby-cine-cover{position:relative;height:420px;overflow:hidden;background:#1a2117}
.roby-cine-cover>img{display:block;width:100%;height:100%;object-fit:cover}
.roby-cine-cover-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,14,8,.66),rgba(8,14,8,.08) 65%,rgba(8,14,8,.18))}
.roby-cine-cover-copy{position:absolute;left:48px;top:50%;transform:translateY(-50%);max-width:620px;color:#fff}
.roby-cine-cover-copy>span,.roby-cine-cover-copy>small{display:block;font:600 10px/1.4 var(--roby-font-body,inherit);letter-spacing:.26em;text-transform:uppercase}
.roby-cine-cover-copy .roby-primary-itinerary-heading{color:#fff!important;font-size:clamp(38px,4vw,66px)!important;line-height:1.02!important;margin:12px 0 20px!important;max-width:620px}
.roby-cine-day{scroll-margin-top:30px;padding-top:48px}
.roby-cine-day-intro{display:grid;grid-template-columns:118px 1fr;gap:34px;align-items:center;padding:0 48px 34px}
.roby-cine-day-number{border-right:1px solid rgba(201,135,8,.5);padding-right:24px}
.roby-cine-day-number span{display:block;font:600 10px/1.2 var(--roby-font-body,inherit);letter-spacing:.2em;text-transform:uppercase;margin-bottom:4px}
.roby-cine-day-number strong{display:block;color:var(--cine-gold);font:400 clamp(52px,5vw,76px)/.9 var(--roby-font-heading,serif)}
.roby-cine-day-heading .roby-day-title-heading{margin:0!important;font-size:clamp(30px,3vw,48px)!important;line-height:1.08!important}
.roby-cine-day-heading p{margin:9px 0 0;font-family:var(--roby-font-body,inherit);font-size:14px;line-height:1.5;opacity:.65}
.roby-cine-editorial-row{display:grid;grid-template-columns:minmax(280px,.68fr) minmax(0,1.55fr);min-height:390px;margin:0 32px 12px;background:#f8f6f1}
.roby-cine-editorial-copy{padding:38px 34px}
.roby-cine-editorial-copy h4,.roby-cine-section-title h4,.roby-cine-stay-title h4{margin:10px 0 18px}
.roby-cine-body,.roby-cine-body :where(p,ul,ol,li,span,strong,em,a,blockquote){font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit))!important}
.roby-cine-feature-photo{margin:0;min-height:390px;overflow:hidden}.roby-cine-feature-photo img{display:block;width:100%;height:100%;object-fit:cover}
.roby-cine-safari-gallery{margin:12px 32px 0!important;padding:0!important;max-width:none!important}
.roby-cine-safari-gallery-grid{height:430px;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:10px}
.roby-cine-safari-gallery-grid button{position:relative;border:0;padding:0;background:#111;overflow:hidden;cursor:pointer}
.roby-cine-safari-gallery-grid button img{width:100%;height:100%;display:block;object-fit:cover}
.roby-cine-safari-gallery-grid button span,.roby-cine-stay-gallery button>span{position:absolute;right:12px;top:12px;width:34px;height:34px;border-radius:50%;background:#fff;color:#000;display:flex;align-items:center;justify-content:center;font:400 22px/1 Arial}
.roby-cine-gallery-count-1{grid-template-columns:1fr}.roby-cine-gallery-count-2{grid-template-columns:1.5fr 1fr}
.roby-cine-experiences{display:grid;grid-template-columns:.7fr 1.3fr;gap:50px;margin:50px 48px;padding:34px 0;border-top:1px solid var(--cine-line);border-bottom:1px solid var(--cine-line)}
.roby-cine-activity-list ul{columns:2;column-gap:34px;margin:0;padding-left:20px}.roby-cine-activity-list li{break-inside:avoid;margin:0 0 10px}
.roby-cine-stay{margin:0 32px 18px;padding:34px;background:var(--cine-cream)}
.roby-cine-stay-title{margin-bottom:18px}
.roby-cine-stay-gallery{height:430px;display:grid;grid-template-columns:1.75fr .65fr;grid-template-rows:1fr 1fr;gap:10px}
.roby-cine-stay-gallery button{position:relative;border:0;padding:0;background:#111;overflow:hidden}
.roby-cine-stay-gallery button:first-child{grid-row:1/3}
.roby-cine-stay-gallery img{display:block;width:100%;height:100%;object-fit:cover}
.roby-cine-stay-gallery button b{position:absolute;left:18px;bottom:18px;background:#fff;color:#111;padding:12px 18px;font:500 11px/1.2 var(--roby-font-body,inherit);letter-spacing:.08em}
.roby-cine-meals{margin:0 48px 50px;padding:26px 0;border-bottom:1px solid var(--cine-line)}
.roby-cine-meal-list{display:flex;flex-wrap:wrap;gap:28px;margin-top:16px}
.roby-cine-meal-list>span{display:flex;align-items:center;gap:9px;font-family:var(--roby-font-body,inherit)}
.roby-cine-meal-list i{font-style:normal;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--cine-gold);color:#fff;font-size:12px}
.roby-cine-next-day{position:relative;display:grid;grid-template-columns:120px 1fr 48px;gap:26px;align-items:center;min-height:180px;padding:30px 48px;color:#fff!important;text-decoration:none!important;overflow:hidden;background:#182117}
.roby-cine-next-day>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.roby-cine-next-shade{position:absolute;inset:0;background:rgba(8,12,7,.58)}
.roby-cine-next-number,.roby-cine-next-title,.roby-cine-next-arrow{position:relative;z-index:1}
.roby-cine-next-number{font:400 54px/1 var(--roby-font-heading,serif);border-right:1px solid rgba(255,255,255,.5)}
.roby-cine-next-number small,.roby-cine-next-title small{display:block;font:600 9px/1.3 var(--roby-font-body,inherit);letter-spacing:.2em;text-transform:uppercase;margin-bottom:5px}
.roby-cine-next-title strong{display:block;font:400 25px/1.15 var(--roby-font-heading,serif)}
.roby-cine-next-arrow{width:42px;height:42px;border:1px solid #fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px}
.roby-cine-inclusions{padding:40px 32px}

@media(max-width:900px){
 .roby-cine-shell{display:block}.roby-cine-journey{display:none}
 .roby-cine-cover{height:360px}.roby-cine-cover-copy{left:26px;right:26px}
 .roby-cine-day-intro{padding:34px 22px 26px;grid-template-columns:88px 1fr;gap:18px}
 .roby-cine-day-number{padding-right:14px}
 .roby-cine-editorial-row{margin:0 20px 10px;display:flex;flex-direction:column-reverse}
 .roby-cine-feature-photo{min-height:300px;height:46vw}.roby-cine-editorial-copy{padding:28px 24px}
 .roby-cine-safari-gallery{margin:10px 20px 0!important}
 .roby-cine-safari-gallery-grid{height:auto;grid-template-columns:1fr 1fr;grid-template-rows:300px 170px;gap:8px}
 .roby-cine-safari-gallery-grid button:first-child{grid-column:1/3}
 .roby-cine-gallery-count-1,.roby-cine-gallery-count-2{grid-template-columns:1fr;grid-template-rows:auto}
 .roby-cine-gallery-count-1 button,.roby-cine-gallery-count-2 button{height:260px}.roby-cine-gallery-count-2 button:first-child{grid-column:auto}
 .roby-cine-experiences{display:block;margin:34px 22px;padding:26px 0}.roby-cine-activity-list ul{columns:1}
 .roby-cine-stay{margin:0 20px 14px;padding:22px}
 .roby-cine-stay-gallery{height:auto;grid-template-columns:1fr 1fr;grid-template-rows:280px 150px;gap:8px}
 .roby-cine-stay-gallery button:first-child{grid-column:1/3;grid-row:1}
 .roby-cine-meals{margin:0 22px 34px}
 .roby-cine-next-day{grid-template-columns:88px 1fr 40px;padding:24px 22px;min-height:150px}
 .roby-cine-next-number{font-size:42px}.roby-cine-next-title strong{font-size:19px}
}


/* ==========================================================
   v1.15.84 — CINEMATIC TOP JOURNEY TABS + REMOVE NEXT DAY
   Cinematic only. Other layouts remain untouched.
   ========================================================== */
.roby-cinematic-v2 .roby-cine-shell{
    display:block !important;
    max-width:1540px !important;
}
.roby-cinematic-v2 .roby-cine-journey{
    display:none !important;
}
.roby-cinematic-v2 .roby-cine-main{
    width:100% !important;
    min-width:0 !important;
}
.roby-cinematic-v2 .roby-cine-top-tabs{
    position:sticky;
    top:0;
    z-index:40;
    display:flex;
    align-items:stretch;
    gap:0;
    width:100%;
    padding:0 28px;
    overflow-x:auto;
    scrollbar-width:none;
    background:rgba(255,255,255,.97);
    border-bottom:1px solid rgba(21,21,21,.12);
    box-sizing:border-box;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}
.roby-cinematic-v2 .roby-cine-top-tabs::-webkit-scrollbar{display:none}
.roby-cinematic-v2 .roby-cine-top-tabs a{
    position:relative;
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:11px;
    min-height:68px;
    padding:0 24px;
    color:var(--cine-ink,#151515) !important;
    text-decoration:none !important;
    border-right:1px solid rgba(21,21,21,.08);
    box-sizing:border-box;
}
.roby-cinematic-v2 .roby-cine-top-tabs a:first-child{
    border-left:1px solid rgba(21,21,21,.08);
}
.roby-cinematic-v2 .roby-cine-top-tabs a:after{
    content:"";
    position:absolute;
    left:24px;
    right:24px;
    bottom:0;
    height:2px;
    background:transparent;
}
.roby-cinematic-v2 .roby-cine-top-tabs a.is-active:after{
    background:var(--cine-gold,#c98708);
}
.roby-cinematic-v2 .roby-cine-top-tabs a span{
    display:flex;
    align-items:center;
    justify-content:center;
    width:30px;
    height:30px;
    border-radius:50%;
    background:#f1eee7;
    font:600 10px/1 var(--roby-font-body,inherit);
    transition:.2s ease;
}
.roby-cinematic-v2 .roby-cine-top-tabs a.is-active span{
    background:var(--cine-gold,#c98708);
    color:#fff;
}
.roby-cinematic-v2 .roby-cine-top-tabs a strong{
    max-width:190px;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
    font:600 11px/1.2 var(--roby-font-body,inherit);
    letter-spacing:.04em;
}
.roby-cinematic-v2 .roby-cine-next-day{
    display:none !important;
}

@media(max-width:767px){
    .roby-cinematic-v2 .roby-cine-top-tabs{
        padding:0 12px;
    }
    .roby-cinematic-v2 .roby-cine-top-tabs a{
        min-height:58px;
        padding:0 16px;
    }
    .roby-cinematic-v2 .roby-cine-top-tabs a strong{
        max-width:130px;
    }
    .roby-cinematic-v2 .roby-cine-top-tabs a:after{
        left:16px;
        right:16px;
    }
}


/* ==========================================================
   v1.15.85 — CINEMATIC DAY TITLE ONLY + NEXT ARROW
   Cinematic Safari only.
   Removes the short description under each day title and adds
   a clean arrow that jumps to the next day.
   ========================================================== */
.roby-cinematic-v2 .roby-cine-day-heading{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:24px !important;
}

.roby-cinematic-v2 .roby-cine-day-heading .roby-day-title-heading{
    flex:1 1 auto !important;
    min-width:0 !important;
}

.roby-cinematic-v2 .roby-cine-day-heading > p{
    display:none !important;
}

.roby-cinematic-v2 .roby-cine-day-title-next{
    flex:0 0 46px !important;
    width:46px !important;
    height:46px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    border:1px solid rgba(21,21,21,.28) !important;
    border-radius:50% !important;
    color:var(--cine-ink,#151515) !important;
    text-decoration:none !important;
    font:400 22px/1 Arial,sans-serif !important;
    transition:background .2s ease,color .2s ease,border-color .2s ease !important;
}

.roby-cinematic-v2 .roby-cine-day-title-next:hover{
    background:var(--cine-gold,#c98708) !important;
    border-color:var(--cine-gold,#c98708) !important;
    color:#fff !important;
}

@media(max-width:767px){
    .roby-cinematic-v2 .roby-cine-day-heading{
        gap:14px !important;
    }
    .roby-cinematic-v2 .roby-cine-day-title-next{
        flex-basis:38px !important;
        width:38px !important;
        height:38px !important;
        font-size:18px !important;
    }
}


/* ==========================================================
   v1.15.86 — CINEMATIC 40/60 STORY + OVERLAY PHOTOS
   Cinematic Safari only.
   Left itinerary copy = 40%, main Safari image = 60%.
   Two supporting Safari photos sit on the main image.
   ========================================================== */

@media(min-width:901px){
    .roby-cinematic-v2 .roby-cine-editorial-row{
        grid-template-columns:minmax(0,40%) minmax(0,60%) !important;
        min-height:420px !important;
    }
}

/* Main Safari image is now the visual canvas. */
.roby-cinematic-v2 .roby-cine-feature-photo{
    position:relative !important;
    margin:0 !important;
    overflow:hidden !important;
    min-height:420px !important;
    background:#111 !important;
}

.roby-cinematic-v2 .roby-cine-main-safari-photo{
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:420px !important;
    border:0 !important;
    padding:0 !important;
    margin:0 !important;
    background:transparent !important;
    cursor:pointer !important;
}

.roby-cinematic-v2 .roby-cine-main-safari-photo > img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:420px !important;
    object-fit:cover !important;
}

/* Two supporting Safari photos over the main photo. */
.roby-cinematic-v2 .roby-cine-photo-overlays{
    position:absolute !important;
    right:18px !important;
    bottom:18px !important;
    z-index:5 !important;
    display:flex !important;
    gap:10px !important;
    pointer-events:none !important;
}

.roby-cinematic-v2 .roby-cine-overlay-photo{
    position:relative !important;
    width:138px !important;
    height:92px !important;
    padding:0 !important;
    margin:0 !important;
    overflow:hidden !important;
    border:2px solid #fff !important;
    border-radius:0 !important;
    background:#111 !important;
    box-shadow:0 3px 12px rgba(0,0,0,.22) !important;
    cursor:pointer !important;
    pointer-events:auto !important;
}

.roby-cinematic-v2 .roby-cine-overlay-photo img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
}

/* Small white plus icon on each supporting photo. */
.roby-cinematic-v2 .roby-cine-overlay-photo > span{
    position:absolute !important;
    top:8px !important;
    right:8px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:24px !important;
    height:24px !important;
    color:#fff !important;
    background:rgba(0,0,0,.22) !important;
    border:1px solid rgba(255,255,255,.9) !important;
    border-radius:50% !important;
    font:400 18px/1 Arial,sans-serif !important;
    text-shadow:0 1px 3px rgba(0,0,0,.45) !important;
}

/* Old separate Safari story gallery is no longer part of this layout. */
.roby-cinematic-v2 .roby-cine-safari-gallery{
    display:none !important;
}

@media(max-width:900px){
    .roby-cinematic-v2 .roby-cine-feature-photo{
        min-height:320px !important;
        height:58vw !important;
    }

    .roby-cinematic-v2 .roby-cine-main-safari-photo,
    .roby-cinematic-v2 .roby-cine-main-safari-photo > img{
        min-height:320px !important;
        height:100% !important;
    }

    .roby-cinematic-v2 .roby-cine-photo-overlays{
        right:10px !important;
        bottom:10px !important;
        gap:7px !important;
    }

    .roby-cinematic-v2 .roby-cine-overlay-photo{
        width:96px !important;
        height:66px !important;
    }

    .roby-cinematic-v2 .roby-cine-overlay-photo > span{
        width:20px !important;
        height:20px !important;
        top:5px !important;
        right:5px !important;
        font-size:15px !important;
    }
}


/* ==========================================================
   v1.15.87 — CINEMATIC FULL 40/60 EDITORIAL WIDTH
   Cinematic Safari only.
   Remove the unused outer right space and let both the
   itinerary copy and Safari image fully occupy their columns.
   ========================================================== */
@media(min-width:901px){
    .roby-cinematic-v2 .roby-cine-editorial-row{
        width:calc(100% - 64px) !important;
        max-width:none !important;
        grid-template-columns:minmax(0,40%) minmax(0,60%) !important;
        align-items:stretch !important;
    }

    .roby-cinematic-v2 .roby-cine-editorial-copy{
        width:100% !important;
        max-width:none !important;
        box-sizing:border-box !important;
    }

    .roby-cinematic-v2 .roby-cine-feature-photo{
        width:100% !important;
        max-width:none !important;
        height:100% !important;
        box-sizing:border-box !important;
    }

    .roby-cinematic-v2 .roby-cine-main-safari-photo,
    .roby-cinematic-v2 .roby-cine-main-safari-photo > img{
        width:100% !important;
        max-width:none !important;
        height:100% !important;
    }
}


/* ==========================================================
   v1.15.88 — CINEMATIC TRUE FULL-WIDTH 40/60 ROW
   Fixes the visible unused right space and removes the black
   area inside the main Safari image.
   Cinematic Safari only.
   ========================================================== */
@media(min-width:901px){
    .roby-cinematic-v2 .roby-cine-editorial-row{
        width:100% !important;
        max-width:none !important;
        margin-left:0 !important;
        margin-right:0 !important;
        grid-template-columns:minmax(0,40%) minmax(0,60%) !important;
    }

    .roby-cinematic-v2 .roby-cine-editorial-copy{
        width:100% !important;
        max-width:none !important;
        padding-left:48px !important;
        padding-right:48px !important;
    }

    .roby-cinematic-v2 .roby-cine-feature-photo{
        position:relative !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        height:100% !important;
        background:transparent !important;
    }

    .roby-cinematic-v2 .roby-cine-main-safari-photo{
        position:absolute !important;
        inset:0 !important;
        display:block !important;
        width:100% !important;
        height:100% !important;
        min-width:100% !important;
        max-width:none !important;
        min-height:100% !important;
        overflow:hidden !important;
        background:transparent !important;
    }

    .roby-cinematic-v2 .roby-cine-main-safari-photo > img{
        position:absolute !important;
        inset:0 !important;
        display:block !important;
        width:100% !important;
        height:100% !important;
        min-width:100% !important;
        max-width:none !important;
        min-height:100% !important;
        object-fit:cover !important;
        object-position:center center !important;
        background:transparent !important;
    }
}


/* ==========================================================
   v1.15.89 — CINEMATIC EXACT FULL ROW + 15PX GAP
   Cinematic Safari only.
   Follows the marked screenshot:
   - itinerary fills its whole left column
   - exactly 15px between itinerary and image
   - image fills its whole right column to the far right edge
   ========================================================== */
@media(min-width:901px){

    /* Use flex here instead of the accumulated grid rules so the
       two widths and the 15px gap are physically authoritative. */
    .roby-cinematic-v2 .roby-cine-editorial-row{
        display:flex !important;
        flex-direction:row !important;
        align-items:stretch !important;
        gap:15px !important;
        width:100% !important;
        max-width:none !important;
        margin:0 0 12px 0 !important;
        padding:0 !important;
        box-sizing:border-box !important;
    }

    .roby-cinematic-v2 .roby-cine-editorial-copy{
        flex:0 0 calc(40% - 7.5px) !important;
        width:calc(40% - 7.5px) !important;
        max-width:none !important;
        min-width:0 !important;
        padding:38px 18px 38px 48px !important;
        margin:0 !important;
        box-sizing:border-box !important;
    }

    /* Let WYSIWYG itinerary text use the full available left column. */
    .roby-cinematic-v2 .roby-cine-editorial-copy .roby-cine-body,
    .roby-cinematic-v2 .roby-cine-editorial-copy .roby-cine-body :where(p,ul,ol,li,div,span){
        width:100% !important;
        max-width:none !important;
        box-sizing:border-box !important;
    }

    .roby-cinematic-v2 .roby-cine-feature-photo{
        flex:0 0 calc(60% - 7.5px) !important;
        width:calc(60% - 7.5px) !important;
        max-width:none !important;
        min-width:0 !important;
        height:auto !important;
        min-height:420px !important;
        margin:0 !important;
        padding:0 !important;
        box-sizing:border-box !important;
        overflow:hidden !important;
        background:transparent !important;
    }

    /* Fill the complete image column — no blank strip on the right. */
    .roby-cinematic-v2 .roby-cine-main-safari-photo{
        position:absolute !important;
        inset:0 !important;
        width:100% !important;
        height:100% !important;
        max-width:none !important;
        min-width:100% !important;
        min-height:100% !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        overflow:hidden !important;
        background:transparent !important;
    }

    .roby-cinematic-v2 .roby-cine-main-safari-photo > img{
        position:absolute !important;
        inset:0 !important;
        display:block !important;
        width:100% !important;
        height:100% !important;
        max-width:none !important;
        min-width:100% !important;
        min-height:100% !important;
        margin:0 !important;
        object-fit:cover !important;
        object-position:center center !important;
    }
}


/* ==========================================================
   v1.15.90 — CINEMATIC NO TABS + PREMIUM ACTIVITY/STAY ROW
   Cinematic Safari only.
   ========================================================== */
.roby-cinematic-v2 .roby-cine-top-tabs{
    display:none !important;
}

.roby-cinematic-v2 .roby-cine-experience-stay-row{
    display:grid !important;
    grid-template-columns:minmax(0,40%) minmax(0,60%) !important;
    gap:15px !important;
    width:100% !important;
    margin:15px 0 0 !important;
    padding:0 !important;
    align-items:stretch !important;
    box-sizing:border-box !important;
}

.roby-cinematic-v2 .roby-cine-experience-stay-row > .roby-cine-experiences,
.roby-cinematic-v2 .roby-cine-experience-stay-row > .roby-cine-stay{
    width:100% !important;
    max-width:none !important;
    height:100% !important;
    margin:0 !important;
    box-sizing:border-box !important;
}

/* Activities — clean editorial card. */
.roby-cinematic-v2 .roby-cine-experience-stay-row > .roby-cine-experiences{
    padding:36px 42px !important;
    background:#f6f3ed !important;
    border:1px solid rgba(21,21,21,.10) !important;
}

/* Accommodation — premium visual card aligned with Activities. */
.roby-cinematic-v2 .roby-cine-experience-stay-row > .roby-cine-stay{
    padding:36px 42px 42px !important;
    background:#fff !important;
    border:1px solid rgba(21,21,21,.10) !important;
}

.roby-cinematic-v2 .roby-cine-experience-stay-row .roby-cine-section-kicker{
    display:block !important;
    margin-bottom:8px !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:10px !important;
    font-weight:600 !important;
    line-height:1.2 !important;
    letter-spacing:.18em !important;
    text-transform:uppercase !important;
    opacity:.65 !important;
}

.roby-cinematic-v2 .roby-cine-experience-stay-row h4{
    margin-top:0 !important;
}

/* Keep the accommodation imagery prominent in its wider 60% column. */
.roby-cinematic-v2 .roby-cine-experience-stay-row .roby-cine-stay-gallery{
    width:100% !important;
    max-width:none !important;
}

@media(max-width:900px){
    .roby-cinematic-v2 .roby-cine-experience-stay-row{
        grid-template-columns:1fr !important;
        gap:12px !important;
    }
    .roby-cinematic-v2 .roby-cine-experience-stay-row > .roby-cine-experiences,
    .roby-cinematic-v2 .roby-cine-experience-stay-row > .roby-cine-stay{
        padding:26px 22px !important;
    }
}


/* ==========================================================
   v1.15.91 — CINEMATIC REMOVE COVER + PREMIUM ESSENTIALS
   Cinematic Safari only.
   - removes the large top hero/cover image
   - Accommodation becomes the photographic focal point
   - Activities become a refined editorial panel
   - Meals become a clean full-width footer strip
   ========================================================== */

/* Top cover removed at markup level; keep historical cover CSS inert. */
.roby-cinematic-v2 .roby-cine-cover{
    display:none !important;
}

/* Premium essentials wrapper */
.roby-cinematic-v2 .roby-cine-essentials{
    width:100% !important;
    margin:15px 0 54px !important;
    padding:0 !important;
    background:#f7f4ed !important;
    border-top:1px solid rgba(21,21,21,.10) !important;
    border-bottom:1px solid rgba(21,21,21,.10) !important;
}

/* Accommodation 60% / Activities 40% */
.roby-cinematic-v2 .roby-cine-essentials-main{
    display:grid !important;
    grid-template-columns:minmax(0,60%) minmax(0,40%) !important;
    gap:0 !important;
    align-items:stretch !important;
}

.roby-cinematic-v2 .roby-cine-essentials-main.roby-cine-no-stay,
.roby-cinematic-v2 .roby-cine-essentials-main.roby-cine-no-activities{
    grid-template-columns:1fr !important;
}

/* Accommodation panel */
.roby-cinematic-v2 .roby-cine-premium-stay{
    min-width:0 !important;
    padding:34px 34px 36px 48px !important;
    background:#f7f4ed !important;
    box-sizing:border-box !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-head{
    display:flex !important;
    align-items:flex-end !important;
    justify-content:space-between !important;
    gap:24px !important;
    margin:0 0 18px !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-head h4,
.roby-cinematic-v2 .roby-cine-premium-activities-head h4{
    margin:6px 0 0 !important;
}

/* Premium lodge gallery: large image + two equal supporting images */
.roby-cinematic-v2 .roby-cine-premium-stay-gallery{
    display:grid !important;
    grid-template-columns:minmax(0,2.25fr) minmax(150px,.75fr) !important;
    grid-template-rows:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
    width:100% !important;
    height:360px !important;
    overflow:hidden !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-image{
    position:relative !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    background:#111 !important;
    overflow:hidden !important;
    cursor:pointer !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-image:first-child{
    grid-column:1 !important;
    grid-row:1 / 3 !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-image:nth-child(2){
    grid-column:2 !important;
    grid-row:1 !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-image:nth-child(3){
    grid-column:2 !important;
    grid-row:2 !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-image img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
}

/* Hotel label on main lodge image */
.roby-cinematic-v2 .roby-cine-premium-stay-image > b{
    position:absolute !important;
    left:14px !important;
    bottom:14px !important;
    z-index:4 !important;
    max-width:calc(100% - 28px) !important;
    padding:9px 12px !important;
    background:#fff !important;
    color:#111 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:10px !important;
    line-height:1.15 !important;
    font-weight:500 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
}

/* White gallery plus controls */
.roby-cinematic-v2 .roby-cine-premium-stay-image > span{
    position:absolute !important;
    right:10px !important;
    top:10px !important;
    z-index:4 !important;
    width:30px !important;
    height:30px !important;
    border-radius:50% !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    background:#fff !important;
    color:#000 !important;
    border:1px solid rgba(0,0,0,.16) !important;
    box-shadow:0 2px 7px rgba(0,0,0,.14) !important;
    font:400 20px/1 Arial,sans-serif !important;
}

/* Activities panel */
.roby-cinematic-v2 .roby-cine-premium-activities{
    min-width:0 !important;
    padding:34px 48px 36px 38px !important;
    background:#fff !important;
    border-left:1px solid rgba(21,21,21,.10) !important;
    box-sizing:border-box !important;
}

.roby-cinematic-v2 .roby-cine-premium-activities-head{
    margin:0 0 20px !important;
}

.roby-cinematic-v2 .roby-cine-premium-activity-list{
    border-top:1px solid rgba(21,21,21,.10) !important;
    padding-top:20px !important;
}

.roby-cinematic-v2 .roby-cine-premium-activity-list ul{
    list-style:none !important;
    padding:0 !important;
    margin:0 !important;
    counter-reset:roby-cine-activity !important;
}

.roby-cinematic-v2 .roby-cine-premium-activity-list li{
    position:relative !important;
    counter-increment:roby-cine-activity !important;
    display:grid !important;
    grid-template-columns:34px 1fr !important;
    gap:12px !important;
    align-items:start !important;
    padding:11px 0 !important;
    margin:0 !important;
    border-bottom:1px solid rgba(21,21,21,.08) !important;
}

.roby-cinematic-v2 .roby-cine-premium-activity-list li::before{
    content:counter(roby-cine-activity, decimal-leading-zero) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:28px !important;
    height:28px !important;
    border:1px solid rgba(201,135,8,.55) !important;
    border-radius:50% !important;
    color:var(--cine-gold,#c98708) !important;
    font:600 9px/1 var(--roby-font-body,inherit) !important;
}

/* Meals: elegant full-width strip under Accommodation + Activities */
.roby-cinematic-v2 .roby-cine-premium-meals{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:30px !important;
    min-height:84px !important;
    padding:18px 48px !important;
    background:#171717 !important;
    color:#fff !important;
    box-sizing:border-box !important;
}

.roby-cinematic-v2 .roby-cine-premium-meals .roby-cine-section-kicker{
    color:#fff !important;
    opacity:.68 !important;
    margin:0 !important;
}

.roby-cinematic-v2 .roby-cine-premium-meal-list{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:18px 34px !important;
}

.roby-cinematic-v2 .roby-cine-premium-meal-list > span{
    display:flex !important;
    align-items:center !important;
    gap:9px !important;
    font-family:var(--roby-font-body,inherit) !important;
}

.roby-cinematic-v2 .roby-cine-premium-meal-list i{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:24px !important;
    height:24px !important;
    border-radius:50% !important;
    background:#fff !important;
    color:#111 !important;
    font-style:normal !important;
    font-size:11px !important;
}

.roby-cinematic-v2 .roby-cine-premium-meal-list strong{
    color:#fff !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-weight:400 !important;
}

/* Mobile/tablet */
@media(max-width:900px){
    .roby-cinematic-v2 .roby-cine-essentials-main{
        grid-template-columns:1fr !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay,
    .roby-cinematic-v2 .roby-cine-premium-activities{
        padding:26px 22px !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-activities{
        border-left:0 !important;
        border-top:1px solid rgba(21,21,21,.10) !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-gallery{
        height:300px !important;
        grid-template-columns:minmax(0,2fr) minmax(100px,.8fr) !important;
        gap:8px !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-meals{
        display:block !important;
        min-height:0 !important;
        padding:22px !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-meal-list{
        margin-top:16px !important;
        gap:14px 20px !important;
    }
}


/* ==========================================================
   v1.15.92 — CINEMATIC MEALS UNDER ACCOMMODATION ONLY
   Cinematic Safari only.
   - removes the black meals bar
   - keeps Meals directly below Accommodation in the same 60% column
   ========================================================== */
.roby-cinematic-v2 .roby-cine-premium-stay > .roby-cine-premium-meals{
    display:block !important;
    width:100% !important;
    min-height:0 !important;
    margin:22px 0 0 !important;
    padding:18px 0 0 !important;
    background:transparent !important;
    color:inherit !important;
    border-top:1px solid rgba(21,21,21,.10) !important;
    box-sizing:border-box !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay > .roby-cine-premium-meals .roby-cine-section-kicker{
    display:block !important;
    margin:0 0 12px !important;
    color:inherit !important;
    opacity:.65 !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay > .roby-cine-premium-meals .roby-cine-premium-meal-list{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:12px 30px !important;
    margin:0 !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay > .roby-cine-premium-meals .roby-cine-premium-meal-list > span{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    color:inherit !important;
    font-family:var(--roby-font-body,inherit) !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay > .roby-cine-premium-meals .roby-cine-premium-meal-list i{
    display:inline !important;
    width:auto !important;
    height:auto !important;
    border-radius:0 !important;
    background:transparent !important;
    color:#111 !important;
    font-style:normal !important;
    font-size:13px !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay > .roby-cine-premium-meals .roby-cine-premium-meal-list strong{
    color:inherit !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-weight:400 !important;
}


/* ==========================================================
   v1.15.93 — CINEMATIC CLEAN ACCOMMODATION GALLERY
   Cinematic Safari only.
   Matches the latest approved visual:
   - no large accommodation name heading
   - no hotel-name box over the main image
   - gallery begins flush on the left of its column
   - main image is wider and fills the accommodation column
   - two support images remain stacked on the right
   ========================================================== */

.roby-cinematic-v2 .roby-cine-premium-stay{
    padding:34px 0 36px 0 !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-head{
    padding:0 0 0 0 !important;
    margin:0 0 18px !important;
    display:block !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-head h4{
    display:none !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-gallery{
    width:100% !important;
    max-width:none !important;
    height:410px !important;
    display:grid !important;
    grid-template-columns:minmax(0,1.7fr) minmax(220px,1fr) !important;
    grid-template-rows:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-image:first-child{
    grid-column:1 !important;
    grid-row:1 / 3 !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-image:nth-child(2){
    grid-column:2 !important;
    grid-row:1 !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-image:nth-child(3){
    grid-column:2 !important;
    grid-row:2 !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-image,
.roby-cinematic-v2 .roby-cine-premium-stay-image img{
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:none !important;
    max-height:none !important;
}

.roby-cinematic-v2 .roby-cine-premium-stay-image img{
    object-fit:cover !important;
}

/* Main-image hotel label removed in markup; suppress any inherited styling. */
.roby-cinematic-v2 .roby-cine-premium-stay-image > b{
    display:none !important;
}

/* Meals remain directly below Accommodation in the same 60% column. */
.roby-cinematic-v2 .roby-cine-premium-stay > .roby-cine-premium-meals{
    margin-top:20px !important;
}

/* Mobile/tablet keeps the same visual relationship with a compact height. */
@media(max-width:900px){
    .roby-cinematic-v2 .roby-cine-premium-stay{
        padding:26px 0 !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-head{
        padding:0 22px !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-gallery{
        height:320px !important;
        grid-template-columns:minmax(0,1.65fr) minmax(110px,.85fr) !important;
        gap:8px !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay > .roby-cine-premium-meals{
        margin:18px 22px 0 !important;
        width:auto !important;
    }
}


/* ==========================================================
   v1.15.94 — CINEMATIC BACKGROUND CONTINUITY + NO ITINERARY RULE
   Cinematic Safari only.
   - Itinerary through Accommodation shares one continuous cream background
   - Activities alone keeps the white background
   - Removes faint separator below itinerary + Safari image
   ========================================================== */

/* Continuous cream visual language from itinerary into accommodation. */
.roby-cinematic-v2 .roby-cine-editorial-row,
.roby-cinematic-v2 .roby-cine-editorial-copy,
.roby-cinematic-v2 .roby-cine-feature-photo,
.roby-cinematic-v2 .roby-cine-essentials,
.roby-cinematic-v2 .roby-cine-premium-stay{
    background:#f7f4ed !important;
}

/* Activities remains the only white panel. */
.roby-cinematic-v2 .roby-cine-premium-activities{
    background:#fff !important;
}

/* Remove faint separators below the itinerary + Safari image area. */
.roby-cinematic-v2 .roby-cine-editorial-row{
    border-bottom:0 !important;
    box-shadow:none !important;
}

.roby-cinematic-v2 .roby-cine-editorial-row::after,
.roby-cinematic-v2 .roby-cine-editorial-row::before,
.roby-cinematic-v2 .roby-cine-feature-photo::after,
.roby-cinematic-v2 .roby-cine-feature-photo::before{
    display:none !important;
    content:none !important;
    border:0 !important;
}

/* Remove the top border previously starting the essentials section,
   so itinerary/photo and accommodation feel like one continuous section. */
.roby-cinematic-v2 .roby-cine-essentials{
    border-top:0 !important;
}

/* Keep a clean edge only after the complete essentials area. */
.roby-cinematic-v2 .roby-cine-essentials{
    border-bottom:1px solid rgba(21,21,21,.08) !important;
}


/* ==========================================================
   v1.15.95 — CINEMATIC ESSENTIALS EXACT VISUAL MATCH
   Cinematic Safari only.
   Matches the approved reference:
   - 60% cream Accommodation/Meals left
   - 40% white Activities right
   - consistent left padding
   - Staying Tonight and gallery share the same left edge
   - no large empty space before accommodation images
   - wide main accommodation image + 2 stacked supporting images
   ========================================================== */

@media(min-width:901px){

    .roby-cinematic-v2 .roby-cine-essentials{
        width:100% !important;
        margin:15px 0 54px !important;
        padding:0 !important;
        background:#f7f4ed !important;
        border:0 !important;
        box-sizing:border-box !important;
    }

    .roby-cinematic-v2 .roby-cine-essentials-main{
        display:grid !important;
        grid-template-columns:minmax(0,60%) minmax(0,40%) !important;
        gap:0 !important;
        width:100% !important;
        align-items:stretch !important;
    }

    /* LEFT: Accommodation + Meals */
    .roby-cinematic-v2 .roby-cine-premium-stay{
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:34px 20px 30px 20px !important;
        background:#f7f4ed !important;
        box-sizing:border-box !important;
    }

    /* Heading and gallery start on the same left line. */
    .roby-cinematic-v2 .roby-cine-premium-stay-head{
        display:block !important;
        width:100% !important;
        margin:0 0 18px !important;
        padding:0 !important;
        box-sizing:border-box !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-head .roby-cine-section-kicker{
        margin:0 !important;
    }

    /* Gallery fills the left column directly below Staying Tonight. */
    .roby-cinematic-v2 .roby-cine-premium-stay-gallery{
        display:grid !important;
        grid-template-columns:minmax(0,1.85fr) minmax(210px,1fr) !important;
        grid-template-rows:repeat(2,minmax(0,1fr)) !important;
        gap:10px !important;
        width:100% !important;
        max-width:none !important;
        height:420px !important;
        min-height:420px !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
        box-sizing:border-box !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-image{
        position:relative !important;
        display:block !important;
        width:100% !important;
        height:100% !important;
        min-width:0 !important;
        min-height:0 !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        border-radius:4px !important;
        overflow:hidden !important;
        background:#111 !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-image:first-child{
        grid-column:1 !important;
        grid-row:1 / 3 !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-image:nth-child(2){
        grid-column:2 !important;
        grid-row:1 !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-image:nth-child(3){
        grid-column:2 !important;
        grid-row:2 !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-image img{
        display:block !important;
        width:100% !important;
        height:100% !important;
        object-fit:cover !important;
        margin:0 !important;
    }

    /* Meals directly below gallery, same left alignment. */
    .roby-cinematic-v2 .roby-cine-premium-stay > .roby-cine-premium-meals{
        width:100% !important;
        margin:22px 0 0 !important;
        padding:18px 0 0 !important;
        background:transparent !important;
        border-top:0 !important;
        box-sizing:border-box !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay > .roby-cine-premium-meals .roby-cine-section-kicker{
        margin:0 0 14px !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay > .roby-cine-premium-meals .roby-cine-premium-meal-list{
        display:flex !important;
        align-items:center !important;
        flex-wrap:wrap !important;
        gap:12px 34px !important;
        margin:0 !important;
    }

    /* RIGHT: Activities only */
    .roby-cinematic-v2 .roby-cine-premium-activities{
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:34px 28px 36px 28px !important;
        background:#fff !important;
        border-left:1px solid rgba(21,21,21,.10) !important;
        box-sizing:border-box !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-activities-head{
        margin:0 0 22px !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-activity-list{
        padding-top:18px !important;
        border-top:1px solid rgba(21,21,21,.10) !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-activity-list li{
        padding:13px 0 !important;
    }
}

@media(max-width:900px){
    .roby-cinematic-v2 .roby-cine-essentials-main{
        grid-template-columns:1fr !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay{
        padding:26px 18px 28px !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-gallery{
        height:320px !important;
        grid-template-columns:minmax(0,1.7fr) minmax(110px,.85fr) !important;
        gap:8px !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-activities{
        padding:26px 20px 30px !important;
        border-left:0 !important;
        border-top:1px solid rgba(21,21,21,.10) !important;
    }
}


/* ==========================================================
   v1.15.96 — CINEMATIC APPROVED ACCOMMODATION LOCK
   Cinematic Safari only.
   Exact approved structure:
   - no gap below itinerary/Safari image row
   - cream background continues into Accommodation/Meals
   - Activities only is white
   - Accommodation begins at left edge with consistent padding
   - large accommodation image dominates left
   - 2 equal support images stacked right
   - exact 10px horizontal and vertical gaps
   - main image total height equals support stack total height
   ========================================================== */

@media(min-width:901px){

    /* Remove the vertical space below itinerary + Safari image. */
    .roby-cinematic-v2 .roby-cine-editorial-row{
        margin-bottom:0 !important;
    }

    .roby-cinematic-v2 .roby-cine-essentials{
        margin-top:0 !important;
        padding-top:0 !important;
        border-top:0 !important;
        background:#f7f4ed !important;
    }

    /* Exact 60 / 40 row */
    .roby-cinematic-v2 .roby-cine-essentials-main{
        display:grid !important;
        grid-template-columns:minmax(0,60%) minmax(0,40%) !important;
        gap:0 !important;
        width:100% !important;
        align-items:stretch !important;
        background:#f7f4ed !important;
    }

    /* LEFT column — Accommodation + Meals */
    .roby-cinematic-v2 .roby-cine-premium-stay{
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:28px 20px 28px 20px !important;
        background:#f7f4ed !important;
        box-sizing:border-box !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-head{
        width:100% !important;
        margin:0 0 16px !important;
        padding:0 !important;
        display:block !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-head .roby-cine-section-kicker{
        margin:0 !important;
        padding:0 !important;
    }

    /* Exact accommodation gallery geometry. */
    .roby-cinematic-v2 .roby-cine-premium-stay-gallery{
        display:grid !important;
        grid-template-columns:minmax(0,2.15fr) minmax(180px,.85fr) !important;
        grid-template-rows:repeat(2,minmax(0,1fr)) !important;
        column-gap:10px !important;
        row-gap:10px !important;
        width:100% !important;
        max-width:none !important;
        height:420px !important;
        min-height:420px !important;
        max-height:420px !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
        box-sizing:border-box !important;
        align-items:stretch !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-image{
        position:relative !important;
        display:block !important;
        width:100% !important;
        height:100% !important;
        min-width:0 !important;
        min-height:0 !important;
        max-width:none !important;
        max-height:none !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        border-radius:4px !important;
        overflow:hidden !important;
        background:#111 !important;
        box-sizing:border-box !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-image:first-child{
        grid-column:1 !important;
        grid-row:1 / 3 !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-image:nth-child(2){
        grid-column:2 !important;
        grid-row:1 !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-image:nth-child(3){
        grid-column:2 !important;
        grid-row:2 !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-image img{
        display:block !important;
        width:100% !important;
        height:100% !important;
        min-width:100% !important;
        min-height:100% !important;
        max-width:none !important;
        max-height:none !important;
        margin:0 !important;
        object-fit:cover !important;
    }

    /* Meals directly under Accommodation, same cream column. */
    .roby-cinematic-v2 .roby-cine-premium-stay > .roby-cine-premium-meals{
        width:100% !important;
        margin:20px 0 0 !important;
        padding:16px 0 0 !important;
        background:transparent !important;
        border:0 !important;
    }

    /* RIGHT column — Activities only. */
    .roby-cinematic-v2 .roby-cine-premium-activities{
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:28px 28px 34px !important;
        background:#fff !important;
        border-left:1px solid rgba(21,21,21,.10) !important;
        box-sizing:border-box !important;
    }
}

@media(max-width:900px){
    .roby-cinematic-v2 .roby-cine-editorial-row{
        margin-bottom:0 !important;
    }

    .roby-cinematic-v2 .roby-cine-essentials{
        margin-top:0 !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay{
        padding:22px 16px 24px !important;
    }

    .roby-cinematic-v2 .roby-cine-premium-stay-gallery{
        height:320px !important;
        min-height:320px !important;
        max-height:320px !important;
        grid-template-columns:minmax(0,1.9fr) minmax(105px,.9fr) !important;
        column-gap:8px !important;
        row-gap:8px !important;
    }
}


/* ==========================================================
   v1.15.97 — CINEMATIC MOCK-UP EXACT ESSENTIALS REBUILD
   Cinematic Safari only.
   Uses new isolated class names so old overrides cannot interfere.
   ========================================================== */

/* Remove ALL visible space between itinerary/photo and essentials. */
.roby-cinematic-v2 .roby-cine-editorial-row{
    margin-bottom:0 !important;
}
.roby-cinematic-v2 .roby-cine-approved-essentials{
    margin-top:0 !important;
}

/* Exact two-column visual from approved mock-up. */
.roby-cinematic-v2 .roby-cine-approved-essentials{
    display:grid !important;
    grid-template-columns:minmax(0,64%) minmax(0,36%) !important;
    gap:0 !important;
    width:100% !important;
    padding:0 !important;
    background:#f7f4ed !important;
    box-sizing:border-box !important;
    align-items:stretch !important;
}

/* LEFT cream panel */
.roby-cinematic-v2 .roby-cine-approved-left{
    min-width:0 !important;
    padding:28px 20px 30px !important;
    background:#f7f4ed !important;
    box-sizing:border-box !important;
}

.roby-cinematic-v2 .roby-cine-approved-stay{
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
}

.roby-cinematic-v2 .roby-cine-approved-kicker{
    margin:0 0 18px !important;
    padding:0 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:10px !important;
    line-height:1.2 !important;
    font-weight:600 !important;
    letter-spacing:.20em !important;
    text-transform:uppercase !important;
    color:#171717 !important;
}

/* Accommodation gallery starts on SAME left edge as Staying Tonight. */
.roby-cinematic-v2 .roby-cine-approved-gallery{
    display:grid !important;
    grid-template-columns:minmax(0,2.35fr) minmax(190px,.85fr) !important;
    grid-template-rows:repeat(2,minmax(0,1fr)) !important;
    column-gap:10px !important;
    row-gap:10px !important;
    width:100% !important;
    height:420px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
}

.roby-cinematic-v2 .roby-cine-approved-gallery-image{
    position:relative !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:4px !important;
    overflow:hidden !important;
    background:#111 !important;
    cursor:pointer !important;
}

.roby-cinematic-v2 .roby-cine-approved-gallery-image:first-child{
    grid-column:1 !important;
    grid-row:1 / 3 !important;
}
.roby-cinematic-v2 .roby-cine-approved-gallery-image:nth-child(2){
    grid-column:2 !important;
    grid-row:1 !important;
}
.roby-cinematic-v2 .roby-cine-approved-gallery-image:nth-child(3){
    grid-column:2 !important;
    grid-row:2 !important;
}

.roby-cinematic-v2 .roby-cine-approved-gallery-image img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-width:100% !important;
    min-height:100% !important;
    max-width:none !important;
    max-height:none !important;
    object-fit:cover !important;
    margin:0 !important;
}

/* White + control exactly on the two supporting images. */
.roby-cinematic-v2 .roby-cine-approved-gallery-image > span{
    position:absolute !important;
    top:10px !important;
    right:10px !important;
    z-index:3 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:30px !important;
    height:30px !important;
    border-radius:50% !important;
    background:#fff !important;
    color:#000 !important;
    border:1px solid rgba(0,0,0,.15) !important;
    box-shadow:0 2px 7px rgba(0,0,0,.14) !important;
    font:400 20px/1 Arial,sans-serif !important;
}

/* Meals directly under gallery, same cream column. */
.roby-cinematic-v2 .roby-cine-approved-meals{
    margin:24px 0 0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
}
.roby-cinematic-v2 .roby-cine-approved-meals .roby-cine-approved-kicker{
    margin-bottom:14px !important;
}
.roby-cinematic-v2 .roby-cine-approved-meal-list{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:12px 34px !important;
    font-family:var(--roby-font-body,inherit) !important;
}
.roby-cinematic-v2 .roby-cine-approved-meal-list span{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
}
.roby-cinematic-v2 .roby-cine-approved-meal-list i{
    font-style:normal !important;
    color:#111 !important;
}

/* RIGHT white panel */
.roby-cinematic-v2 .roby-cine-approved-activities{
    min-width:0 !important;
    margin:0 !important;
    padding:28px 28px 34px !important;
    background:#fff !important;
    border-left:1px solid rgba(21,21,21,.10) !important;
    box-sizing:border-box !important;
}
.roby-cinematic-v2 .roby-cine-approved-activities h4{
    margin:0 0 22px !important;
}
.roby-cinematic-v2 .roby-cine-approved-activity-list{
    padding-top:18px !important;
    border-top:1px solid rgba(21,21,21,.10) !important;
}
.roby-cinematic-v2 .roby-cine-approved-activity-list ul{
    list-style:none !important;
    margin:0 !important;
    padding:0 !important;
    counter-reset:roby-approved-activity !important;
}
.roby-cinematic-v2 .roby-cine-approved-activity-list li{
    counter-increment:roby-approved-activity !important;
    display:grid !important;
    grid-template-columns:36px 1fr !important;
    gap:12px !important;
    align-items:center !important;
    padding:13px 0 !important;
    margin:0 !important;
    border-bottom:1px solid rgba(21,21,21,.08) !important;
}
.roby-cinematic-v2 .roby-cine-approved-activity-list li::before{
    content:counter(roby-approved-activity,decimal-leading-zero) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:28px !important;
    height:28px !important;
    border:1px solid rgba(201,135,8,.58) !important;
    border-radius:50% !important;
    color:var(--cine-gold,#c98708) !important;
    font:600 9px/1 var(--roby-font-body,inherit) !important;
}

@media(max-width:900px){
    .roby-cinematic-v2 .roby-cine-approved-essentials{
        grid-template-columns:1fr !important;
    }
    .roby-cinematic-v2 .roby-cine-approved-left{
        padding:22px 16px 24px !important;
    }
    .roby-cinematic-v2 .roby-cine-approved-gallery{
        height:320px !important;
        grid-template-columns:minmax(0,1.95fr) minmax(105px,.85fr) !important;
        column-gap:8px !important;
        row-gap:8px !important;
    }
    .roby-cinematic-v2 .roby-cine-approved-activities{
        padding:24px 20px 28px !important;
        border-left:0 !important;
        border-top:1px solid rgba(21,21,21,.10) !important;
    }
}


/* ==========================================================
   v1.15.98 — ACCOMMODATION MAIN IMAGE WIDTH + LEFT ALIGNMENT ONLY
   Cinematic Safari only.
   - main accommodation image is wider
   - gallery starts on the exact same vertical line as STAYING TONIGHT
   - no other Cinematic sections changed
   ========================================================== */

@media(min-width:901px){

    /* Make STAYING TONIGHT and the gallery share the exact same left edge. */
    .roby-cinematic-v2 .roby-cine-approved-stay,
    .roby-cinematic-v2 .roby-cine-approved-kicker,
    .roby-cinematic-v2 .roby-cine-approved-gallery{
        margin-left:0 !important;
        padding-left:0 !important;
        left:auto !important;
        transform:none !important;
    }

    .roby-cinematic-v2 .roby-cine-approved-gallery{
        justify-self:stretch !important;
        align-self:stretch !important;
        width:100% !important;
        max-width:none !important;
        margin-right:0 !important;
        padding-right:0 !important;

        /* Wider dominant main image, narrower support column. */
        grid-template-columns:minmax(0,3.15fr) minmax(165px,.85fr) !important;
        column-gap:10px !important;
        row-gap:10px !important;
    }

    /* Force the main image to consume its complete grid column. */
    .roby-cinematic-v2 .roby-cine-approved-gallery-image:first-child{
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        margin-left:0 !important;
        margin-right:0 !important;
        justify-self:stretch !important;
    }

    .roby-cinematic-v2 .roby-cine-approved-gallery-image:first-child img{
        width:100% !important;
        max-width:none !important;
        min-width:100% !important;
        height:100% !important;
        object-fit:cover !important;
    }
}

@media(max-width:900px){
    .roby-cinematic-v2 .roby-cine-approved-stay,
    .roby-cinematic-v2 .roby-cine-approved-kicker,
    .roby-cinematic-v2 .roby-cine-approved-gallery{
        margin-left:0 !important;
        padding-left:0 !important;
    }

    .roby-cinematic-v2 .roby-cine-approved-gallery{
        grid-template-columns:minmax(0,2.35fr) minmax(95px,.75fr) !important;
    }
}


/* ==========================================================
   v1.15.99 — CINEMATIC ACCOMMODATION STRUCTURAL WIDTH FIX
   Cinematic Safari only.
   The lightbox wrapper is separated from the actual gallery grid
   so historical .roby-accommodation-gallery rules cannot resize it.
   ========================================================== */

@media(min-width:901px){

    /* Same left edge for STAYING TONIGHT and accommodation imagery. */
    .roby-cinematic-v2 .roby-cine-approved-left{
        padding-left:20px !important;
        padding-right:20px !important;
    }

    .roby-cinematic-v2 .roby-cine-approved-stay,
    .roby-cinematic-v2 .roby-cine-approved-stay > .roby-cine-approved-kicker,
    .roby-cinematic-v2 .roby-cine-approved-gallery-lightbox,
    .roby-cinematic-v2 .roby-cine-approved-gallery-grid{
        width:100% !important;
        max-width:none !important;
        margin-left:0 !important;
        margin-right:0 !important;
        padding-left:0 !important;
        padding-right:0 !important;
        box-sizing:border-box !important;
    }

    /* The wrapper exists only for the existing lightbox JS. */
    .roby-cinematic-v2 .roby-cine-approved-gallery-lightbox{
        display:block !important;
        height:430px !important;
        min-height:430px !important;
        max-height:430px !important;
        overflow:visible !important;
    }

    /* Exact approved composition:
       large main image occupies 76%, support stack 24%. */
    .roby-cinematic-v2 .roby-cine-approved-gallery-grid{
        display:grid !important;
        grid-template-columns:minmax(0,76%) minmax(0,24%) !important;
        grid-template-rows:repeat(2,minmax(0,1fr)) !important;
        column-gap:10px !important;
        row-gap:10px !important;
        height:430px !important;
        min-height:430px !important;
        max-height:430px !important;
        overflow:hidden !important;
        align-items:stretch !important;
    }

    .roby-cinematic-v2 .roby-cine-approved-gallery-grid > .roby-cine-approved-gallery-image{
        position:relative !important;
        display:block !important;
        width:100% !important;
        height:100% !important;
        min-width:0 !important;
        min-height:0 !important;
        max-width:none !important;
        max-height:none !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        overflow:hidden !important;
        background:#111 !important;
        box-sizing:border-box !important;
        appearance:none !important;
        -webkit-appearance:none !important;
    }

    .roby-cinematic-v2 .roby-cine-approved-gallery-grid > .roby-cine-approved-gallery-image:first-child{
        grid-column:1 !important;
        grid-row:1 / 3 !important;
    }

    .roby-cinematic-v2 .roby-cine-approved-gallery-grid > .roby-cine-approved-gallery-image:nth-child(2){
        grid-column:2 !important;
        grid-row:1 !important;
    }

    .roby-cinematic-v2 .roby-cine-approved-gallery-grid > .roby-cine-approved-gallery-image:nth-child(3){
        grid-column:2 !important;
        grid-row:2 !important;
    }

    .roby-cinematic-v2 .roby-cine-approved-gallery-grid > .roby-cine-approved-gallery-image > img{
        display:block !important;
        width:100% !important;
        height:100% !important;
        min-width:100% !important;
        min-height:100% !important;
        max-width:none !important;
        max-height:none !important;
        margin:0 !important;
        object-fit:cover !important;
    }
}

@media(max-width:900px){
    .roby-cinematic-v2 .roby-cine-approved-gallery-lightbox,
    .roby-cinematic-v2 .roby-cine-approved-gallery-grid{
        width:100% !important;
        max-width:none !important;
    }

    .roby-cinematic-v2 .roby-cine-approved-gallery-lightbox{
        height:320px !important;
        min-height:320px !important;
        max-height:320px !important;
    }

    .roby-cinematic-v2 .roby-cine-approved-gallery-grid{
        display:grid !important;
        grid-template-columns:minmax(0,72%) minmax(0,28%) !important;
        grid-template-rows:repeat(2,minmax(0,1fr)) !important;
        gap:8px !important;
        height:320px !important;
        min-height:320px !important;
        max-height:320px !important;
        overflow:hidden !important;
    }
}


/* ==========================================================
   v1.15.100 — CINEMATIC ACCOMMODATION ROOT-CAUSE FIX
   Cinematic Safari only.
   Historical Classic gallery CSS no longer applies to Cinematic.
   This allows the approved full-width accommodation composition
   to finally use the complete left column.
   ========================================================== */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-left{
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-stay{
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-gallery-lightbox{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        margin:0 !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-gallery-grid{
        display:grid !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        grid-template-columns:minmax(0,72%) minmax(0,28%) !important;
        grid-template-rows:repeat(2,minmax(0,1fr)) !important;
        column-gap:10px !important;
        row-gap:10px !important;
        height:430px !important;
        margin:0 !important;
    }
}
\n\n/* ==========================================================\n   v1.15.101 — CINEMATIC DAY LABEL / NUMBER ALIGNMENT ONLY\n   DAY sits directly above the two-digit day number on one left edge.\n   ========================================================== */\n.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-day-number{\n    display:flex !important;\n    flex-direction:column !important;\n    align-items:flex-start !important;\n    justify-content:center !important;\n}\n.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-day-number > span,\n.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-day-number > strong{\n    width:auto !important;\n    margin-left:0 !important;\n    padding-left:0 !important;\n    text-align:left !important;\n    align-self:flex-start !important;\n}\n.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-day-number > span{\n    margin-bottom:8px !important;\n}\n

/* ==========================================================
   v1.15.102 — CLASSIC DAY LABEL / NUMBER FORMAT ONLY
   Classic Split: DAY directly above 01, 02, 03... on one left edge.
   ========================================================== */
.safari-hub-itinerary.roby-layout-classic-split .roby-day-number-block{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:4px !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-day-number-block > .roby-day-small-label,
.safari-hub-itinerary.roby-layout-classic-split .roby-day-number-block > .roby-day-big-number{
    width:auto !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    text-align:left !important;
    align-self:flex-start !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-day-number-block > .roby-day-small-label{
    order:1 !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-day-number-block > .roby-day-big-number{
    order:2 !important;
    margin-top:0 !important;
}


/* ==========================================================
   v1.15.103 — CLASSIC ACTIVITIES NUMBERED JOURNEY STYLE ONLY
   Classic Split WYSIWYG activity lists only.
   ========================================================== */
.safari-hub-itinerary.roby-layout-classic-split
.roby-day-activities-content .roby-activity-richtext > ul{
    list-style:none !important;
    margin:0 !important;
    padding:0 !important;
    counter-reset:roby-classic-activity !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-day-activities-content .roby-activity-richtext > ul > li{
    position:relative !important;
    display:grid !important;
    grid-template-columns:54px minmax(0,1fr) !important;
    column-gap:18px !important;
    align-items:center !important;
    min-height:74px !important;
    margin:0 !important;
    padding:10px 0 !important;
    border-bottom:1px solid rgba(17,17,17,.10) !important;
    list-style:none !important;
    counter-increment:roby-classic-activity !important;
    box-sizing:border-box !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-day-activities-content .roby-activity-richtext > ul > li::before{
    content:counter(roby-classic-activity, decimal-leading-zero) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:52px !important;
    height:52px !important;
    border:1.5px solid #d89b32 !important;
    border-radius:50% !important;
    color:#b97800 !important;
    background:transparent !important;
    font-family:var(--roby-font-body, var(--safari-custom-body-font, inherit)) !important;
    font-size:14px !important;
    font-weight:500 !important;
    line-height:1 !important;
    box-sizing:border-box !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-day-activities-content .roby-activity-richtext > ul > li:last-child{
    border-bottom:0 !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-day-activities-content .roby-activity-richtext > ul > li::marker{
    content:"" !important;
}

@media(max-width:767px){
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-day-activities-content .roby-activity-richtext > ul > li{
        grid-template-columns:44px minmax(0,1fr) !important;
        column-gap:14px !important;
        min-height:64px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-day-activities-content .roby-activity-richtext > ul > li::before{
        width:42px !important;
        height:42px !important;
        font-size:12px !important;
    }
}


/* ==========================================================
   v1.15.104 — CLASSIC ACTIVITY CIRCLE SIZE ONLY
   ========================================================== */
.safari-hub-itinerary.roby-layout-classic-split
.roby-day-activities-content .roby-activity-richtext > ul > li{
    grid-template-columns:40px minmax(0,1fr) !important;
    column-gap:14px !important;
    min-height:58px !important;
}

.safari-hub-itinerary.roby-layout-classic-split
.roby-day-activities-content .roby-activity-richtext > ul > li::before{
    width:38px !important;
    height:38px !important;
    font-size:12px !important;
}

@media(max-width:767px){
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-day-activities-content .roby-activity-richtext > ul > li{
        grid-template-columns:36px minmax(0,1fr) !important;
        column-gap:12px !important;
        min-height:54px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-day-activities-content .roby-activity-richtext > ul > li::before{
        width:34px !important;
        height:34px !important;
        font-size:11px !important;
    }
}


/* ==========================================================
   v1.15.105 — GLOBAL IMAGE FOCAL POSITION ONLY
   All itinerary frontend images crop from top center.
   ========================================================== */
.safari-hub-itinerary img,
.roby-note-layout img{
    object-position:top center !important;
}


/* ==========================================================
   v1.15.106 — CINEMATIC STORY 50/50 + SAFARI PHOTO HEIGHT ONLY
   Cinematic Safari desktop only.
   ========================================================== */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-approved-story{
        grid-template-columns:minmax(0,50%) minmax(0,50%) !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-approved-photo{
        min-height:560px !important;
        height:560px !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-approved-photo > img{
        width:100% !important;
        height:100% !important;
        object-fit:cover !important;
        object-position:top center !important;
    }
}


/* ==========================================================
   v1.15.107 — CINEMATIC MAIN SAFARI PHOTO HEADROOM ONLY
   Uses the actual Cinematic main-photo classes.
   Keeps the 50/50 layout, overlays and all other layouts unchanged.
   ========================================================== */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-editorial-row{
        grid-template-columns:minmax(0,50%) minmax(0,50%) !important;
        min-height:590px !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-feature-photo{
        min-height:590px !important;
        height:590px !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main-safari-photo,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main-safari-photo > img{
        width:100% !important;
        height:100% !important;
        min-height:590px !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main-safari-photo > img{
        object-fit:cover !important;
        object-position:top center !important;
    }
}


/* ==========================================================
   v1.15.109 — CLASSIC INCLUSIONS DESIGN ACROSS ALL LAYOUTS
   The approved Classic Split Included / Not Included cards are
   now the single shared presentation for every itinerary layout.
   ========================================================== */
.safari-hub-itinerary.roby-shared-classic-inclusions{
    width:100% !important;
    max-width:none !important;
}


/* ==========================================================
   v1.15.112 — CINEMATIC MAIN SAFARI PHOTO HEIGHT ONLY
   Requested fixed height: 550px. All other Cinematic layout
   proportions, overlays and image focal position stay unchanged.
   ========================================================== */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-editorial-row{
        min-height:550px !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-feature-photo{
        min-height:550px !important;
        height:550px !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main-safari-photo,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main-safari-photo > img{
        height:550px !important;
        min-height:550px !important;
    }
}


/* ==========================================================
   v1.15.113 — CINEMATIC TRUE 550PX STORY ROW
   Root-cause fix: the flex row was still stretching to the
   itinerary text height. The entire desktop story row is now
   exactly 550px, so the main Safari photo is visibly 550px.
   ========================================================== */
@media(min-width:901px){
    .roby-cinematic-v2.safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-editorial-row{
        height:550px !important;
        min-height:550px !important;
        max-height:550px !important;
        align-items:stretch !important;
    }

    .roby-cinematic-v2.safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-editorial-copy{
        height:550px !important;
        min-height:0 !important;
        max-height:550px !important;
        overflow:auto !important;
    }

    .roby-cinematic-v2.safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-feature-photo{
        height:550px !important;
        min-height:550px !important;
        max-height:550px !important;
        align-self:stretch !important;
    }

    .roby-cinematic-v2.safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main-safari-photo,
    .roby-cinematic-v2.safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main-safari-photo > img{
        height:100% !important;
        min-height:100% !important;
        max-height:100% !important;
    }

    .roby-cinematic-v2.safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main-safari-photo > img{
        object-fit:cover !important;
        object-position:top center !important;
    }
}


/* ==========================================================
   v1.15.114 — CINEMATIC 550PX DIRECT RENDER FIX
   The 550px size is now also written directly into Cinematic
   markup. This rule only protects that rendered size from old
   accumulated layout overrides.
   ========================================================== */
@media(min-width:901px){
    section[id].roby-cinematic-v2.roby-layout-cinematic-safari > .roby-cine-shell
    .roby-cine-editorial-row[style]{
        height:550px !important;
        min-height:550px !important;
        max-height:550px !important;
    }

    section[id].roby-cinematic-v2.roby-layout-cinematic-safari > .roby-cine-shell
    .roby-cine-editorial-row[style] > .roby-cine-editorial-copy[style],
    section[id].roby-cinematic-v2.roby-layout-cinematic-safari > .roby-cine-shell
    .roby-cine-editorial-row[style] > .roby-cine-feature-photo[style]{
        height:550px !important;
        max-height:550px !important;
    }

    section[id].roby-cinematic-v2.roby-layout-cinematic-safari > .roby-cine-shell
    .roby-cine-editorial-row[style] > .roby-cine-feature-photo[style]{
        min-height:550px !important;
    }

    section[id].roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-main-safari-photo,
    section[id].roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-main-safari-photo > img{
        height:550px !important;
        min-height:550px !important;
        max-height:550px !important;
    }
}

/* v1.15.115 — Cinematic photo height is controlled by the inline saved setting. */
@media(min-width:901px){
 .roby-cinematic-v2.roby-layout-cinematic-safari .roby-cine-editorial-row[style],
 .roby-cinematic-v2.roby-layout-cinematic-safari .roby-cine-editorial-copy[style],
 .roby-cinematic-v2.roby-layout-cinematic-safari .roby-cine-feature-photo[style]{
   height:var(--roby-cinematic-height,inherit);
 }
 .roby-cinematic-v2.roby-layout-cinematic-safari .roby-cine-main-safari-photo,
 .roby-cinematic-v2.roby-layout-cinematic-safari .roby-cine-main-safari-photo>img{
   height:100% !important;min-height:100% !important;max-height:100% !important;
 }
}


/* ==========================================================
   v1.15.120 — SETTINGS ARE AUTHORITATIVE ON THE FRONTEND
   The shared 01–04 settings now win consistently across:
   Classic Split, Luxury Timeline, Note Layout, Cinematic Safari.
   ========================================================== */

/* 01 MAIN TITLES */
.safari-hub-itinerary[data-typography-mode="custom"] :is(
    .roby-day-title-heading,
    .roby-day-main-title,
    .roby-cine-day-heading .roby-day-title-heading,
    .roby-luxury-title-wrap .roby-day-title-heading,
    .roby-note-title .roby-day-title-heading,
    .roby-primary-itinerary-heading,
    .roby-itinerary-heading
){
    font-family:var(--roby-font-heading,inherit) !important;
    font-size:var(--roby-heading-size,34px) !important;
    font-weight:var(--roby-heading-weight,600) !important;
    line-height:var(--roby-heading-line-height,1.2) !important;
    letter-spacing:var(--roby-heading-letter-spacing,0px) !important;
    color:var(--roby-heading-color,#171717) !important;
}

/* 02 BODY TEXT — includes normal WYSIWYG output, meals and prose. */
.safari-hub-itinerary[data-typography-mode="custom"] :is(
    .roby-day-text,
    .roby-day-text p,
    .roby-day-text li,
    .roby-cine-body,
    .roby-cine-body p,
    .roby-cine-body li,
    .roby-luxury-copy,
    .roby-luxury-copy p,
    .roby-luxury-copy li,
    .roby-note-copy,
    .roby-note-copy p,
    .roby-note-copy li,
    .roby-activity-richtext,
    .roby-activity-richtext p,
    .roby-activity-richtext li,
    .roby-activities-content,
    .roby-activities-content p,
    .roby-activities-content li,
    .roby-note-activities,
    .roby-note-activities p,
    .roby-note-activities li,
    .roby-meals,
    .roby-meals li,
    .roby-cine-approved-meals,
    .roby-cine-approved-meals li,
    .roby-inclusion-item,
    .roby-inclusion-item > span:last-child
){
    font-family:var(--roby-font-body,var(--roby-body-font,inherit)) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-body-color,#171717) !important;
}

/* 03 SECTION HEADINGS */
.safari-hub-itinerary[data-typography-mode="custom"] :is(
    .roby-section-heading,
    .roby-activities-title,
    .roby-meals-title,
    .roby-accommodation-title,
    .roby-luxury-section-title,
    .roby-luxury-section-heading,
    .roby-note-section-title,
    .roby-cine-approved-kicker + h4,
    .roby-cine-approved-activities h4,
    .roby-cine-approved-meals h4,
    .roby-cine-editorial-copy h4,
    .roby-inclusion-side h4,
    .roby-inclusions-intro h3
){
    font-family:var(--roby-font-other-heading,var(--roby-font-heading,inherit)) !important;
    font-size:var(--roby-other-heading-size,22px) !important;
    font-weight:var(--roby-other-heading-weight,600) !important;
    line-height:var(--roby-other-heading-line-height,1.3) !important;
    letter-spacing:var(--roby-other-heading-letter-spacing,0px) !important;
    color:var(--roby-section-heading-color,#171717) !important;
}

/* 04 DAY NUMBER */
.safari-hub-itinerary[data-typography-mode="custom"] :is(
    .roby-day-big-number,
    .roby-luxury-number,
    .roby-note-side strong,
    .roby-cine-day-number strong
){
    font-family:var(--roby-font-day-number,var(--roby-font-heading,inherit)) !important;
    font-size:var(--roby-day-number-size,58px) !important;
    font-weight:var(--roby-day-number-weight,600) !important;
    line-height:1 !important;
    color:var(--roby-day-number-color,#c98a12) !important;
}

/* 04 DAY LABEL */
.safari-hub-itinerary[data-typography-mode="custom"] :is(
    .roby-day-small-label,
    .roby-luxury-day-label,
    .roby-note-day-word,
    .roby-cine-day-number span
){
    font-family:var(--roby-font-day-label,var(--roby-font-heading,inherit)) !important;
    font-size:var(--roby-day-label-size,11px) !important;
    font-weight:var(--roby-day-label-weight,600) !important;
    letter-spacing:var(--roby-day-label-letter-spacing,1.8px) !important;
    color:var(--roby-day-label-color,#6f675f) !important;
}

/* Keep the Cinematic photo-height setting authoritative too. */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-editorial-row[style],
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-editorial-copy[style],
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-feature-photo[style]{
        box-sizing:border-box !important;
    }
}


/* ==========================================================
   v1.15.121 — CINEMATIC FINAL DAY WITHOUT ACCOMMODATION
   ONLY the final itinerary day is adjusted when it has no stay.
   Earlier Cinematic days remain exactly on the approved layout.
   ========================================================== */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-approved-essentials.roby-cine-last-day-no-stay{
    grid-template-columns:1fr !important;
    background:#fff !important;
}

/* Activities become the intentional full-width final-day feature. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-last-day-no-stay > .roby-cine-approved-activities{
    grid-column:1 / -1 !important;
    grid-row:1 !important;
    width:100% !important;
    max-width:none !important;
    border-left:0 !important;
    border-top:0 !important;
}

/* If the final day has meals, place them neatly below Activities. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-last-day-no-stay > .roby-cine-approved-left{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100% !important;
    max-width:none !important;
    padding:22px 28px 26px !important;
    border-top:1px solid rgba(21,21,21,.10) !important;
}

/* No accommodation + no meals = no empty cream area at all. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-last-day-no-stay > .roby-cine-approved-left:empty{
    display:none !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-last-day-no-stay > .roby-cine-approved-left{
        padding:20px 16px 22px !important;
    }
}


/* ==========================================================
   v1.15.122 — CINEMATIC SMALL VISUAL ADJUSTMENTS ONLY
   1. Reduce space between DAY/number and the main title.
   2. Show accommodation name on main accommodation image.
   ========================================================== */

/* Keep the approved design; only tighten the title gap. */
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-day-intro{
    gap:18px !important;
}
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-day-number{
    padding-right:14px !important;
}

/* Main accommodation image label. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-approved-gallery-image-1{
    position:relative !important;
}
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-accommodation-name{
    position:absolute !important;
    left:16px !important;
    bottom:16px !important;
    z-index:3 !important;
    display:block !important;
    max-width:calc(100% - 32px) !important;
    padding:9px 13px !important;
    margin:0 !important;
    background:#fff !important;
    color:#000 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:13px !important;
    font-weight:600 !important;
    line-height:1.25 !important;
    letter-spacing:0 !important;
    text-transform:none !important;
    text-align:left !important;
    box-shadow:none !important;
    border:0 !important;
    border-radius:0 !important;
    pointer-events:none !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-day-intro{
        gap:12px !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-day-number{
        padding-right:10px !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-accommodation-name{
        left:10px !important;
        bottom:10px !important;
        max-width:calc(100% - 20px) !important;
        padding:8px 10px !important;
        font-size:12px !important;
    }
}


/* ==========================================================
   v1.15.123 — CINEMATIC SELECTED MEALS + UPPERCASE LODGE NAME
   Only meals actually selected in the day editor are rendered.
   Their visual treatment matches the approved pill reference.
   ========================================================== */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-approved-meal-list{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:14px !important;
    margin-top:12px !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-approved-meal-list > span{
    display:inline-flex !important;
    align-items:center !important;
    gap:10px !important;
    width:auto !important;
    min-width:0 !important;
    margin:0 !important;
    padding:9px 18px 9px 10px !important;
    background:#fff !important;
    border:0 !important;
    border-radius:999px !important;
    color:#171717 !important;
    box-shadow:none !important;
    white-space:nowrap !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-approved-meal-list > span > i{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 28px !important;
    width:28px !important;
    height:28px !important;
    margin:0 !important;
    padding:0 !important;
    border-radius:50% !important;
    background:#315b49 !important;
    color:#fff !important;
    font-family:Arial,sans-serif !important;
    font-size:16px !important;
    font-style:normal !important;
    font-weight:700 !important;
    line-height:1 !important;
}

/* Visual uppercase safeguard for the accommodation badge. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-accommodation-name{
    text-transform:uppercase !important;
}


/* v1.15.125 — smaller Cinematic selected-meal check circle only */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-approved-meal-list > span > i{
    flex-basis:22px !important;
    width:22px !important;
    height:22px !important;
    font-size:12px !important;
}


/* ==========================================================
   v1.15.126 — CINEMATIC FINAL DAY TRAVEL EXPERT
   Final day only: Activities + Travel Expert, with no empty stay.
   ========================================================== */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-approved-essentials.roby-cine-last-day-no-stay{
        grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
        background:var(--cine-cream,#f8f3e9) !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-last-day-no-stay > .roby-cine-approved-left{
        grid-column:1 !important;
        grid-row:1 !important;
        padding:0 !important;
        border-top:0 !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-last-day-no-stay > .roby-cine-approved-activities{
        grid-column:2 !important;
        grid-row:1 !important;
        border-left:1px solid rgba(21,21,21,.10) !important;
    }
}
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert{
    height:100%;
    background:var(--cine-cream,#f8f3e9);
}
.roby-cine-travel-expert-photo{
    width:100%;
    aspect-ratio:16/9;
    overflow:hidden;
    background:#eee;
}
.roby-cine-travel-expert-photo img{
    display:block;width:100%;height:100%;object-fit:cover;object-position:top center;
}
.roby-cine-travel-expert-copy{padding:28px 30px 30px}
.roby-cine-travel-expert-copy h4{margin:8px 0 12px}
.roby-cine-travel-expert-copy p{margin:0 0 20px;font-family:var(--roby-font-body,inherit);line-height:1.6}
.roby-cine-travel-expert-name{display:block;font-family:var(--roby-font-body,inherit);font-size:14px;line-height:1.3;color:#171717}
.roby-cine-travel-expert-role{display:block;margin-top:3px;font-family:var(--roby-font-body,inherit);font-size:12px;opacity:.62}
.roby-cine-travel-expert-button{
    display:inline-flex;align-items:center;gap:14px;margin-top:22px;padding:12px 18px;
    background:#171717;color:#fff!important;text-decoration:none!important;
    font-family:var(--roby-font-body,inherit);font-size:12px;font-weight:600;letter-spacing:.04em;
}
.roby-cine-travel-expert-button:hover{color:#fff!important;opacity:.88}
@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-last-day-no-stay > .roby-cine-approved-left{
        padding:0 !important;
    }
}


/* ==========================================================
   v1.15.128 — APPROVED CINEMATIC TRAVEL EXPERT CARD
   Editorial portrait card based on the approved reference.
   Final day only. No other itinerary design is changed.
   ========================================================== */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert{
    position:relative !important;
    min-height:100% !important;
    padding:30px 30px 34px !important;
    background:#f2f0ec !important;
    overflow:visible !important;
}

/* Small editorial square accent. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert::before{
    content:"" !important;
    position:absolute !important;
    left:16px !important;
    top:44px !important;
    width:10px !important;
    height:10px !important;
    background:#222 !important;
}

/* Portrait intentionally sits wider than the copy below it. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-photo{
    position:relative !important;
    z-index:2 !important;
    width:86% !important;
    aspect-ratio:1 / 1 !important;
    margin:-8px 0 0 14% !important;
    overflow:hidden !important;
    background:#222 !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-photo img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:top center !important;
}

/* Copy starts under the portrait, like the approved editorial card. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-copy{
    padding:28px 8px 0 !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-copy > .roby-cine-approved-kicker{
    display:none !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-copy h4{
    margin:0 0 14px !important;
    font-family:var(--roby-font-other-heading,var(--roby-font-heading,inherit)) !important;
}

/* Expert name: first name bold, remaining name lighter and spaced. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-name{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:baseline !important;
    gap:8px !important;
    margin:0 0 5px !important;
    color:#171717 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:18px !important;
    line-height:1.25 !important;
    letter-spacing:.14em !important;
    text-transform:uppercase !important;
}
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-name b{
    font:inherit !important;
    font-weight:700 !important;
}
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-name span{
    font:inherit !important;
    font-weight:400 !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-role{
    margin:0 0 18px !important;
    font-size:9px !important;
    font-weight:600 !important;
    line-height:1.4 !important;
    letter-spacing:.30em !important;
    text-transform:uppercase !important;
    opacity:.72 !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-copy p{
    margin:0 0 20px !important;
}

/* Refined dark call-to-action, kept within the existing card. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-button{
    display:flex !important;
    width:100% !important;
    justify-content:space-between !important;
    align-items:center !important;
    gap:16px !important;
    margin-top:20px !important;
    padding:13px 16px !important;
    background:#173f36 !important;
    color:#fff !important;
    border:0 !important;
    border-radius:0 !important;
    text-decoration:none !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert{
        padding:24px 20px 28px !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-photo{
        width:88% !important;
        margin:0 0 0 12% !important;
    }
}


/* ==========================================================
   v1.15.129 — CINEMATIC FINAL DAY REFINEMENT ONLY
   - Smaller expert portrait
   - Softer faint scenic editorial card tone
   - Final-day meals sit below Activities in the same column
   ========================================================== */

/* Softer scenic/faint editorial background while keeping the approved overlap look. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert{
    background:rgba(239,244,239,.72) !important;
}

/* Reduce portrait size without changing the editorial composition. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-photo{
    width:68% !important;
    margin:-4px 0 0 24% !important;
}

/* Keep the copy aligned naturally under the smaller portrait. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-copy{
    padding-top:24px !important;
}

/* On the final day, Meals live below Safari Activities in the same right column. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-final-day-meals{
    margin-top:28px !important;
    padding-top:22px !important;
    border-top:1px solid rgba(21,21,21,.10) !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-photo{
        width:74% !important;
        margin:0 0 0 20% !important;
    }
}


/* ==========================================================
   v1.15.130 — CINEMATIC EXPERT: PORTRAIT + LOWER NAME BOX
   Final-day expert card only. Two overlapping boxes:
   portrait above, faint information/name panel underneath.
   ========================================================== */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert{
    position:relative !important;
    padding:26px 22px 30px !important;
    background:#fff !important;
    overflow:visible !important;
}

/* Top portrait box. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-photo{
    position:relative !important;
    z-index:3 !important;
    width:68% !important;
    aspect-ratio:1 / 1 !important;
    margin:0 0 -42px 25% !important;
    overflow:hidden !important;
    background:#222 !important;
}

/* Second box starts behind portrait and carries the expert identity. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-info-box{
    position:relative !important;
    z-index:1 !important;
    width:82% !important;
    margin:0 auto 0 0 !important;
    padding:68px 24px 25px !important;
    background:rgba(236,240,236,.78) !important;
    box-sizing:border-box !important;
}

/* Name belongs in the lower box — never on the image. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-info-box > .roby-cine-travel-expert-name{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:baseline !important;
    gap:8px !important;
    margin:0 0 7px !important;
    color:#171717 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:17px !important;
    line-height:1.2 !important;
    letter-spacing:.14em !important;
    text-transform:uppercase !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-info-box > .roby-cine-travel-expert-role{
    display:block !important;
    margin:0 !important;
    font-size:9px !important;
    font-weight:600 !important;
    line-height:1.4 !important;
    letter-spacing:.28em !important;
    text-transform:uppercase !important;
    opacity:.68 !important;
}

/* Supporting content remains inside the same lower panel, below the identity. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-info-box > .roby-cine-travel-expert-copy{
    padding:24px 0 0 !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-photo{
        width:72% !important;
        margin:0 0 -34px 22% !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-info-box{
        width:88% !important;
        padding:58px 18px 22px !important;
    }
}


/* ==========================================================
   v1.15.131 — CINEMATIC EXPERT LOWER BOX EXTENDS UPWARD
   The faint second box now rises behind the portrait to the
   upper-left area, while the name/content remain below image.
   ========================================================== */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-info-box{
    margin-top:-54% !important;
    padding-top:calc(54% + 68px) !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-info-box{
        margin-top:-50% !important;
        padding-top:calc(50% + 58px) !important;
    }
}


/* ==========================================================
   v1.15.132 — ONLY EXPERT NAME INSIDE THE SECOND BOX
   The faint overlapping box contains the expert name only.
   Role, heading, description and CTA sit outside below it.
   ========================================================== */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-info-box{
    padding-bottom:22px !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-copy-outside{
    position:relative !important;
    z-index:2 !important;
    width:82% !important;
    margin:0 auto 0 0 !important;
    padding:22px 8px 0 !important;
    background:transparent !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-copy-outside > .roby-cine-travel-expert-role{
    display:block !important;
    margin:0 0 18px !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-copy-outside{
        width:88% !important;
        padding:20px 0 0 !important;
    }
}


/* ==========================================================
   v1.15.133 — EXPERT NAME BOX FINAL DETAIL
   - Less space above expert name
   - Second faint box contains NAME + TRAVEL EXPERT only
   - Other Travel Expert content remains outside below
   ========================================================== */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-info-box{
    padding-top:calc(54% + 38px) !important;
    padding-bottom:20px !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-role-in-box{
    display:block !important;
    margin:8px 0 0 !important;
    color:#171717 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:9px !important;
    font-weight:600 !important;
    line-height:1.3 !important;
    letter-spacing:.30em !important;
    text-transform:uppercase !important;
    opacity:.62 !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-info-box{
        padding-top:calc(50% + 32px) !important;
    }
}


/* ==========================================================
   v1.15.134 — EXPERT COMPANY NAME + ADMIN PHOTO PREVIEW
   ========================================================== */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-info-box{
    padding-left:58px !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-company{
    position:absolute !important;
    left:17px !important;
    top:50% !important;
    transform:translateY(-50%) rotate(180deg) !important;
    writing-mode:vertical-rl !important;
    color:#171717 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:10px !important;
    font-weight:600 !important;
    line-height:1 !important;
    letter-spacing:.22em !important;
    text-transform:uppercase !important;
    white-space:nowrap !important;
    opacity:.55 !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-info-box{
        padding-left:46px !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-company{
        left:13px !important;
        font-size:9px !important;
    }
}


/* ==========================================================
   v1.15.135 — EXPERT SECOND BOX + COMPANY NAME ONLY
   ========================================================== */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-info-box{
    background:#f7f4ed !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-company{
    top:37% !important;
    font-size:13px !important;
    font-weight:600 !important;
    letter-spacing:.24em !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-company{
        top:35% !important;
        font-size:11px !important;
    }
}


/* ==========================================================
   v1.15.136 — APPROVED CINEMATIC EXPERT EDITORIAL LAYOUT
   Implements the approved reference:
   - large vertical company name immediately beside portrait
   - portrait remains dominant
   - faint #F7F4ED lower/background panel
   - expert name + TRAVEL EXPERT remain in lower panel
   ========================================================== */

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert{
    position:relative !important;
    background:#fff !important;
}

/* Keep the approved faint editorial panel. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-info-box{
    background:#f7f4ed !important;
    overflow:visible !important;
}

/* Company name runs vertically in the narrow strip immediately
   to the left of the portrait, matching the approved reference. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-company{
    position:absolute !important;
    z-index:4 !important;
    left:auto !important;
    right:calc(75% + 14px) !important;
    top:17% !important;
    transform:none !important;
    writing-mode:vertical-rl !important;
    text-orientation:mixed !important;
    color:#5f5f5b !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:17px !important;
    font-weight:500 !important;
    line-height:1 !important;
    letter-spacing:.20em !important;
    text-transform:uppercase !important;
    white-space:nowrap !important;
    opacity:.82 !important;
}

/* Preserve the portrait position from the approved composition. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-photo{
    z-index:5 !important;
}

/* Keep identity clearly within the lower faint panel. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-info-box > .roby-cine-travel-expert-name{
    position:relative !important;
    z-index:2 !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-role-in-box{
    position:relative !important;
    z-index:2 !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-company{
        right:calc(78% + 8px) !important;
        top:18% !important;
        font-size:13px !important;
        letter-spacing:.16em !important;
    }
}


/* ==========================================================
   v1.15.137 — CINEMATIC EXPERT CONTENT + CTA SAME ROW
   Heading remains above. Description and button form one
   balanced editorial row beneath it.
   ========================================================== */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-action-row{
    display:grid !important;
    grid-template-columns:minmax(0,1.45fr) minmax(220px,.55fr) !important;
    align-items:center !important;
    gap:28px !important;
    margin-top:18px !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-action-row > p{
    margin:0 !important;
    max-width:680px !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-action-row > .roby-cine-travel-expert-button{
    width:100% !important;
    min-height:58px !important;
    margin:0 !important;
    padding:0 20px !important;
    box-sizing:border-box !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-action-row{
        grid-template-columns:1fr !important;
        gap:18px !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-action-row > .roby-cine-travel-expert-button{
        width:100% !important;
    }
}


/* ==========================================================
   v1.15.138 — EXPERT CTA MOVED INTO SECOND BOX
   - Name + TRAVEL EXPERT stay left
   - Enquire button sits beside them in the same row
   - Button has transparent background and 1px black border
   - Supporting content below stretches to the full card width
   ========================================================== */

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-identity-row{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(190px,34%) !important;
    align-items:center !important;
    gap:24px !important;
    width:100% !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-identity{
    min-width:0 !important;
}

/* CTA inside the faint second box. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-button-in-box{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100% !important;
    min-height:54px !important;
    margin:0 !important;
    padding:0 18px !important;
    background:transparent !important;
    color:#171717 !important;
    border:1px solid #171717 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    text-decoration:none !important;
    box-sizing:border-box !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-button-in-box:hover{
    background:transparent !important;
    color:#171717 !important;
}

/* Content below the second box uses the full available width. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-copy-outside{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:28px 0 0 !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-copy-outside > p{
    width:100% !important;
    max-width:none !important;
    margin:12px 0 0 !important;
}

/* Old action row is no longer used here. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-travel-expert-copy-outside .roby-cine-travel-expert-action-row{
    display:block !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-identity-row{
        grid-template-columns:1fr !important;
        gap:16px !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-travel-expert-button-in-box{
        width:100% !important;
    }
}


/* ==========================================================
   v1.15.139 — CLASSIC SPLIT FINAL-DAY TRAVEL EXPERT
   Same approved Travel Expert design, final Classic day only.
   ========================================================== */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert{
    position:relative;margin-top:18px;background:#fff;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-photo{
    position:relative;z-index:3;width:72%;aspect-ratio:1/1;margin:0 0 -38px 24%;overflow:hidden;background:#222;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-photo img{
    display:block;width:100%;height:100%;object-fit:cover;object-position:top center;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-info{
    position:relative;z-index:1;width:100%;padding:64px 22px 22px 54px;background:#f7f4ed;box-sizing:border-box;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-company{
    position:absolute;left:16px;top:22%;writing-mode:vertical-rl;transform:rotate(180deg);
    color:#5f5f5b;font-family:var(--roby-font-body,inherit);font-size:13px;font-weight:500;
    line-height:1;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;opacity:.82;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-identity-row{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,34%);align-items:center;gap:18px;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-name{
    display:flex;flex-wrap:wrap;align-items:baseline;gap:7px;margin:0 0 6px;color:#171717;
    font-family:var(--roby-font-body,inherit);font-size:16px;line-height:1.2;letter-spacing:.13em;text-transform:uppercase;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-name b{font:inherit;font-weight:700}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-name span{font:inherit;font-weight:400}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-role{
    display:block;font-family:var(--roby-font-body,inherit);font-size:9px;font-weight:600;
    letter-spacing:.28em;text-transform:uppercase;opacity:.62;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-button{
    display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:48px;padding:0 14px;
    background:transparent!important;color:#171717!important;border:1px solid #171717;border-radius:0;
    text-decoration:none!important;font-family:var(--roby-font-body,inherit);font-size:12px;box-sizing:border-box;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-button:hover{
    background:transparent!important;color:#171717!important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-copy{width:100%;padding:24px 0 0}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-copy h4{margin:0 0 12px}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-copy p{
    width:100%;max-width:none;margin:0;font-family:var(--roby-font-body,inherit);line-height:1.6;
}
@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-photo{width:74%;margin:0 0 -32px 22%}
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-info{padding:56px 18px 20px 46px}
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-identity-row{grid-template-columns:1fr;gap:14px}
}


/* ==========================================================
   v1.15.140 — CINEMATIC MOBILE SINGLE-COLUMN LAYOUT
   Mobile only (<=900px). Desktop Cinematic design untouched.
   ========================================================== */
@media(max-width:900px){

    /* Day heading: keep DAY/number compact and give title room. */
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-day{
        padding-top:28px !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-day-intro{
        display:grid !important;
        grid-template-columns:62px minmax(0,1fr) !important;
        gap:12px !important;
        align-items:center !important;
        padding:0 14px 20px !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-day-number{
        padding-right:10px !important;
    }

    /* Story area becomes one clean mobile column:
       Safari Photo first, itinerary copy directly below. */
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-editorial-row{
        display:flex !important;
        flex-direction:column !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        margin:0 12px 14px !important;
        background:#f8f6f1 !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-feature-photo{
        order:1 !important;
        width:100% !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        aspect-ratio:4 / 3 !important;
        margin:0 !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-feature-photo > img,
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-main-safari-photo,
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-main-safari-photo > img{
        width:100% !important;
        height:100% !important;
        min-height:0 !important;
        max-height:none !important;
        object-fit:cover !important;
        object-position:top center !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-editorial-copy{
        order:2 !important;
        width:100% !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        overflow:visible !important;
        padding:22px 18px 24px !important;
        box-sizing:border-box !important;
    }

    /* Supporting Safari images use the full mobile width. */
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-safari-gallery{
        margin:10px 12px 0 !important;
        width:auto !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-safari-gallery-grid{
        width:100% !important;
        height:auto !important;
        display:grid !important;
        grid-template-columns:1fr 1fr !important;
        grid-template-rows:auto !important;
        gap:8px !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-safari-gallery-grid button{
        min-width:0 !important;
        height:auto !important;
        aspect-ratio:4 / 3 !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-safari-gallery-grid button:first-child{
        grid-column:1 / -1 !important;
        aspect-ratio:16 / 10 !important;
    }

    /* Accommodation / Activities becomes a clean single column. */
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-essentials{
        display:flex !important;
        flex-direction:column !important;
        margin:14px 12px 22px !important;
        background:transparent !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-left{
        order:1 !important;
        width:100% !important;
        max-width:none !important;
        padding:0 !important;
        background:var(--cine-cream,#f8f3e9) !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-stay{
        width:100% !important;
        padding:18px 14px 16px !important;
        box-sizing:border-box !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-gallery-lightbox,
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-gallery-grid{
        width:100% !important;
        max-width:none !important;
    }

    /* Accommodation gallery: dominant main photo + two useful supporting photos. */
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-gallery-grid{
        display:grid !important;
        grid-template-columns:1.55fr .75fr !important;
        grid-template-rows:1fr 1fr !important;
        gap:8px !important;
        height:330px !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-gallery-image-1{
        grid-column:1 !important;
        grid-row:1 / 3 !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-gallery-image-2{
        grid-column:2 !important;
        grid-row:1 !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-gallery-image-3{
        grid-column:2 !important;
        grid-row:2 !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-gallery-image{
        width:100% !important;
        min-width:0 !important;
        height:100% !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-gallery-image img{
        width:100% !important;
        height:100% !important;
        object-fit:cover !important;
        object-position:top center !important;
    }

    /* Meals sit directly below accommodation and remain compact. */
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-meals{
        padding:16px 14px 18px !important;
        margin:0 !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-meal-list{
        gap:10px !important;
    }

    /* Activities full width after accommodation/meals. */
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-activities{
        order:2 !important;
        width:100% !important;
        max-width:none !important;
        padding:22px 14px 24px !important;
        border-left:0 !important;
        border-top:1px solid rgba(21,21,21,.10) !important;
        box-sizing:border-box !important;
        background:#fff !important;
    }

    /* Final-day expert remains full-width and readable on mobile. */
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-last-day-no-stay{
        display:flex !important;
        flex-direction:column !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-last-day-no-stay > .roby-cine-approved-left,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-last-day-no-stay > .roby-cine-approved-activities{
        width:100% !important;
        max-width:none !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert{
        width:100% !important;
        max-width:none !important;
        box-sizing:border-box !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-photo{
        width:76% !important;
        margin:0 0 -30px 20% !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-info-box{
        width:100% !important;
        padding-left:46px !important;
        box-sizing:border-box !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-copy-outside{
        width:100% !important;
        padding:22px 0 0 !important;
    }
}


/* ==========================================================
   v1.15.141 — CINEMATIC MOBILE EDGE-TO-EDGE MAIN PHOTOS
   Mobile only:
   - Safari Photo of Day stretches fully across the section.
   - Main accommodation image stretches fully across the section.
   - Supporting accommodation images remain below.
   ========================================================== */
@media(max-width:900px){

    /* Safari Photo of Day: remove the side inset from its story row. */
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-editorial-row{
        margin-left:0 !important;
        margin-right:0 !important;
        width:100% !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-feature-photo,
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-main-safari-photo{
        width:100% !important;
        max-width:none !important;
    }

    /* Accommodation gallery: main image spans the complete gallery width.
       The two supporting images sit below it instead of narrowing the main image. */
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-gallery-grid{
        display:grid !important;
        grid-template-columns:1fr 1fr !important;
        grid-template-rows:minmax(300px,1fr) 120px !important;
        gap:8px !important;
        width:100% !important;
        height:auto !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-gallery-image-1{
        grid-column:1 / -1 !important;
        grid-row:1 !important;
        width:100% !important;
        height:100% !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-gallery-image-2{
        grid-column:1 !important;
        grid-row:2 !important;
        width:100% !important;
        height:120px !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-approved-gallery-image-3{
        grid-column:2 !important;
        grid-row:2 !important;
        width:100% !important;
        height:120px !important;
    }
}


/* ==========================================================
   v1.15.142 — AUTHORITATIVE CINEMATIC MOBILE FULL-WIDTH PHOTOS
   Fixes older gallery rules that were still keeping the main
   Safari and accommodation photos narrow on mobile.
   ========================================================== */
@media(max-width:900px){

    /* PHOTO OF THE DAY — the main image itself must fill the entire row.
       Supporting photos remain overlaid at the lower-right. */
    section.roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-editorial-row > figure.roby-cine-feature-photo[style]{
        position:relative !important;
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        aspect-ratio:4 / 3 !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
    }

    section.roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-feature-photo > button.roby-cine-main-safari-photo{
        position:absolute !important;
        inset:0 !important;
        display:block !important;
        width:100% !important;
        max-width:none !important;
        height:100% !important;
        min-height:0 !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
    }

    section.roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-feature-photo > button.roby-cine-main-safari-photo > img{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        height:100% !important;
        min-height:0 !important;
        object-fit:cover !important;
        object-position:top center !important;
    }

    section.roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-feature-photo > .roby-cine-photo-overlays{
        position:absolute !important;
        z-index:4 !important;
        right:10px !important;
        bottom:10px !important;
        left:auto !important;
        top:auto !important;
        display:flex !important;
        width:auto !important;
        height:68px !important;
        gap:7px !important;
        margin:0 !important;
    }

    section.roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-photo-overlays > .roby-cine-overlay-photo{
        position:relative !important;
        width:82px !important;
        height:68px !important;
        min-width:82px !important;
        margin:0 !important;
    }

    /* ACCOMMODATION — main photo spans the entire width.
       The two supporting images sit as equal thumbnails underneath. */
    section.roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-approved-stay{
        width:100% !important;
        max-width:none !important;
    }

    section.roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-approved-gallery-lightbox{
        display:block !important;
        width:100% !important;
        max-width:none !important;
    }

    section.roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-approved-gallery-lightbox > .roby-cine-approved-gallery-grid{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
        grid-template-rows:320px 105px !important;
        width:100% !important;
        max-width:none !important;
        height:auto !important;
        gap:8px !important;
        margin:0 !important;
    }

    section.roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-approved-gallery-grid > .roby-cine-approved-gallery-image{
        position:relative !important;
        display:block !important;
        min-width:0 !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
    }

    section.roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-approved-gallery-grid > .roby-cine-approved-gallery-image-1{
        grid-column:1 / 3 !important;
        grid-row:1 !important;
        width:100% !important;
        height:320px !important;
    }

    section.roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-approved-gallery-grid > .roby-cine-approved-gallery-image-2{
        grid-column:1 !important;
        grid-row:2 !important;
        width:100% !important;
        height:105px !important;
    }

    section.roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-approved-gallery-grid > .roby-cine-approved-gallery-image-3{
        grid-column:2 !important;
        grid-row:2 !important;
        width:100% !important;
        height:105px !important;
    }

    section.roby-cinematic-v2.roby-layout-cinematic-safari
    .roby-cine-approved-gallery-grid > .roby-cine-approved-gallery-image > img{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        height:100% !important;
        object-fit:cover !important;
        object-position:top center !important;
    }
}

/* ==========================================================
   v1.15.143 — CLASSIC FINAL-DAY EXPERT COMPACT FIX
   Classic only. Cinematic remains untouched.
   ========================================================== */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert{width:100%!important;max-width:100%!important;margin:18px 0 0!important;overflow:visible!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-photo{width:68%!important;height:260px!important;aspect-ratio:auto!important;margin:0 0 -30px 27%!important;overflow:hidden!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-photo img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:top center!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-info{position:relative!important;width:100%!important;min-height:118px!important;padding:48px 18px 18px 52px!important;background:#f7f4ed!important;overflow:hidden!important;box-sizing:border-box!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-company{left:17px!important;top:50%!important;bottom:auto!important;max-height:92px!important;transform:translateY(-50%) rotate(180deg)!important;writing-mode:vertical-rl!important;overflow:hidden!important;font-size:10px!important;line-height:1!important;letter-spacing:.14em!important;white-space:nowrap!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-identity-row{display:grid!important;grid-template-columns:minmax(0,1fr) 132px!important;align-items:center!important;gap:14px!important;width:100%!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-name{margin:0 0 5px!important;font-size:14px!important;line-height:1.2!important;letter-spacing:.10em!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-role{font-size:8px!important;line-height:1.2!important;letter-spacing:.22em!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-button{width:132px!important;min-height:42px!important;padding:0 12px!important;margin:0!important;background:transparent!important;color:#171717!important;border:1px solid #171717!important;box-sizing:border-box!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-copy{position:relative!important;display:block!important;width:100%!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;padding:22px 0 4px!important;margin:0!important;box-sizing:border-box!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-copy h4{margin:0 0 10px!important;padding:0!important;font-family:var(--roby-font-heading,inherit)!important;font-size:var(--roby-other-heading-size,inherit)!important;font-weight:var(--roby-other-heading-weight,inherit)!important;line-height:var(--roby-other-heading-line-height,inherit)!important;letter-spacing:var(--roby-other-heading-letter-spacing,inherit)!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-copy p{display:block!important;width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;overflow:visible!important;margin:0!important;padding:0!important;font-family:var(--roby-font-body,inherit)!important;font-size:var(--roby-body-size,inherit)!important;font-weight:var(--roby-body-weight,inherit)!important;line-height:var(--roby-body-line-height,1.6)!important;letter-spacing:var(--roby-body-letter-spacing,inherit)!important}
@media(max-width:900px){
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-photo{width:72%!important;height:235px!important;margin:0 0 -26px 24%!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-info{padding:42px 14px 16px 44px!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-company{left:14px!important;max-height:82px!important;font-size:9px!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-identity-row{grid-template-columns:minmax(0,1fr) 116px!important;gap:10px!important}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-button{width:116px!important;min-height:40px!important;padding:0 10px!important;font-size:11px!important}
}


/* ==========================================================
   v1.15.144 — CLASSIC EXPERT PANEL + GLOBAL EXPERT SETTINGS
   Classic visual refinements only; Cinematic frontend untouched.
   ========================================================== */

/* Stretch the #F7F4ED second box much farther upward behind the portrait. */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-photo{
    margin-bottom:0 !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-info{
    margin-top:-155px !important;
    min-height:250px !important;
    padding:176px 22px 22px 58px !important;
    background:#f7f4ed !important;
    overflow:hidden !important;
}

/* Keep the vertical company name fully inside the taller second box. */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-company{
    left:18px !important;
    top:45% !important;
    max-height:150px !important;
    font-size:11px !important;
    letter-spacing:.15em !important;
}

/* Give the outlined CTA enough width so its text stays on one line. */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-identity-row{
    grid-template-columns:minmax(0,1fr) 176px !important;
    gap:18px !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-button{
    width:176px !important;
    min-width:176px !important;
    min-height:44px !important;
    padding:0 16px !important;
    white-space:nowrap !important;
}

/* Add comfortable side padding to the content below the second box. */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-copy{
    padding:24px 22px 8px !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-copy h4,
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-copy p{
    padding-left:0 !important;
    padding-right:0 !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-info{
        margin-top:-125px !important;
        min-height:222px !important;
        padding:145px 16px 18px 48px !important;
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-company{
        left:15px !important;
        max-height:128px !important;
        font-size:9px !important;
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-identity-row{
        grid-template-columns:minmax(0,1fr) 150px !important;
        gap:12px !important;
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-button{
        width:150px !important;
        min-width:150px !important;
        white-space:nowrap !important;
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-copy{
        padding:22px 16px 8px !important;
    }
}


/* ==========================================================
   v1.15.145 — UNIFIED TRAVEL EXPERT DESIGN
   Applies to BOTH Classic Split and Cinematic Safari.
   Only the company/name/button panel has a different colour.
   Everything below it remains white.
   ========================================================== */

/* ---------- COMMON OUTER CARD ---------- */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert{
    position:relative !important;
    width:100% !important;
    max-width:100% !important;
    margin:18px 0 0 !important;
    padding:0 !important;
    background:#fff !important;
    overflow:visible !important;
    box-sizing:border-box !important;
}

/* ---------- PORTRAIT ---------- */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-photo,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-photo{
    position:relative !important;
    z-index:4 !important;
    width:76% !important;
    height:auto !important;
    aspect-ratio:1.18 / 1 !important;
    margin:0 0 -72px 24% !important;
    overflow:hidden !important;
    background:#eee !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-photo img,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-photo img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:top center !important;
}

/* ---------- ONLY COLOURED BOX ---------- */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-info,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-info-box{
    position:relative !important;
    z-index:1 !important;
    width:90% !important;
    max-width:90% !important;
    min-height:250px !important;
    margin:0 auto 0 0 !important;
    padding:168px 28px 28px 112px !important;
    background:#f7f4ed !important;
    overflow:visible !important;
    box-sizing:border-box !important;
}

/* ---------- VERTICAL COMPANY NAME ---------- */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-company,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-company{
    position:absolute !important;
    z-index:3 !important;
    left:34px !important;
    top:34px !important;
    bottom:34px !important;
    width:auto !important;
    max-height:none !important;
    transform:none !important;
    writing-mode:vertical-rl !important;
    text-orientation:mixed !important;
    color:#68665f !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:15px !important;
    font-weight:500 !important;
    line-height:1 !important;
    letter-spacing:.18em !important;
    text-transform:uppercase !important;
    white-space:nowrap !important;
    opacity:.88 !important;
}

/* ---------- NAME + BUTTON SAME ROW ---------- */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-identity-row,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-identity-row{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(190px,34%) !important;
    align-items:center !important;
    gap:28px !important;
    width:100% !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-name,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-name{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:baseline !important;
    gap:8px !important;
    margin:0 0 8px !important;
    color:#171717 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:18px !important;
    line-height:1.2 !important;
    letter-spacing:.12em !important;
    text-transform:uppercase !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-name b,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-name b{
    font:inherit !important;
    font-weight:700 !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-name span,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-name span{
    font:inherit !important;
    font-weight:400 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-role,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-role-in-box{
    display:block !important;
    margin:0 !important;
    color:#171717 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:9px !important;
    font-weight:600 !important;
    line-height:1.3 !important;
    letter-spacing:.28em !important;
    text-transform:uppercase !important;
    opacity:.62 !important;
}

/* ---------- OUTLINED BUTTON ---------- */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-button,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-button-in-box{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:18px !important;
    width:100% !important;
    min-width:190px !important;
    min-height:54px !important;
    margin:0 !important;
    padding:0 18px !important;
    background:transparent !important;
    color:#171717 !important;
    border:1px solid #171717 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    text-decoration:none !important;
    white-space:nowrap !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-button:hover,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-button-in-box:hover{
    background:transparent !important;
    color:#171717 !important;
}

/* ---------- WHITE CONTENT BELOW ---------- */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-copy,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-copy-outside{
    position:relative !important;
    z-index:2 !important;
    display:block !important;
    width:100% !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:34px 28px 12px !important;
    background:#fff !important;
    overflow:visible !important;
    box-sizing:border-box !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-copy h4,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-copy-outside h4{
    margin:0 0 14px !important;
    padding:0 !important;
}

.safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-copy p,
.safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-copy-outside p{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    overflow:visible !important;
}

/* ---------- MOBILE ---------- */
@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-photo,
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-photo{
        width:78% !important;
        margin:0 0 -48px 22% !important;
        aspect-ratio:1.08 / 1 !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-info,
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-info-box{
        width:94% !important;
        max-width:94% !important;
        min-height:220px !important;
        padding:126px 16px 22px 64px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-company,
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-company{
        left:20px !important;
        top:24px !important;
        bottom:24px !important;
        font-size:11px !important;
        letter-spacing:.15em !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-identity-row,
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-identity-row{
        grid-template-columns:1fr !important;
        gap:16px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-button,
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-button-in-box{
        width:100% !important;
        min-width:0 !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-travel-expert-copy,
    .safari-hub-itinerary.roby-layout-cinematic-safari .roby-cine-travel-expert-copy-outside{
        padding:26px 16px 10px !important;
    }
}


/* ==========================================================
   v1.15.146 — CLASSIC FINAL-DAY EXPERT FULL-VIEW SCROLL
   Only the final Classic visual that contains the Travel Expert
   can scroll internally. All earlier Classic visual days remain
   fixed exactly as before.
   ========================================================== */
@media(min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-visual-sticky > .roby-visual-day:last-child.roby-visual-no-accommodation{
        overflow-y:auto !important;
        overflow-x:hidden !important;
        overscroll-behavior:contain !important;
        scrollbar-width:thin !important;
        padding-bottom:28px !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-visual-sticky > .roby-visual-day:last-child.roby-visual-no-accommodation::-webkit-scrollbar{
        width:5px;
    }
}


/* ==========================================================
   v1.15.147 — CLASSIC USES CINEMATIC EXPERT DESIGN
   The Classic expert is outside the sticky visual area so its
   full lower content is always visible and normally scrollable.
   ========================================================== */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:30px clamp(24px,4vw,64px) 36px !important;
    background:#fff !important;
    box-sizing:border-box !important;
    overflow:visible !important;
}

/* Apply the approved Cinematic expert geometry verbatim to Classic. */
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert{
    position:relative !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
    overflow:visible !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-photo{
    position:relative !important;
    z-index:4 !important;
    width:76% !important;
    height:auto !important;
    aspect-ratio:1.18 / 1 !important;
    margin:0 0 -72px 24% !important;
    overflow:hidden !important;
    background:#eee !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-photo img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:top center !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-info-box{
    position:relative !important;
    z-index:1 !important;
    width:90% !important;
    max-width:90% !important;
    min-height:250px !important;
    margin:0 auto 0 0 !important;
    padding:168px 28px 28px 112px !important;
    background:#f7f4ed !important;
    overflow:visible !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-company{
    position:absolute !important;
    z-index:3 !important;
    left:34px !important;
    top:34px !important;
    bottom:34px !important;
    transform:none !important;
    writing-mode:vertical-rl !important;
    text-orientation:mixed !important;
    color:#68665f !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:15px !important;
    font-weight:500 !important;
    line-height:1 !important;
    letter-spacing:.18em !important;
    text-transform:uppercase !important;
    white-space:nowrap !important;
    opacity:.88 !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-identity-row{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(190px,34%) !important;
    align-items:center !important;
    gap:28px !important;
    width:100% !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-name{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:baseline !important;
    gap:8px !important;
    margin:0 0 8px !important;
    color:#171717 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:18px !important;
    line-height:1.2 !important;
    letter-spacing:.12em !important;
    text-transform:uppercase !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-name b{
    font:inherit !important;font-weight:700 !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-name span{
    font:inherit !important;font-weight:400 !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-role-in-box{
    display:block !important;
    margin:0 !important;
    color:#171717 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:9px !important;
    font-weight:600 !important;
    line-height:1.3 !important;
    letter-spacing:.28em !important;
    text-transform:uppercase !important;
    opacity:.62 !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-button-in-box{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:18px !important;
    width:100% !important;
    min-width:190px !important;
    min-height:54px !important;
    margin:0 !important;
    padding:0 18px !important;
    background:transparent !important;
    color:#171717 !important;
    border:1px solid #171717 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    text-decoration:none !important;
    white-space:nowrap !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-copy-outside{
    position:relative !important;
    z-index:2 !important;
    display:block !important;
    width:100% !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:34px 28px 12px !important;
    background:#fff !important;
    overflow:visible !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-copy-outside h4{
    margin:0 0 14px !important;
}
.safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-copy-outside p{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    overflow:visible !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert{
        padding:22px 14px 28px !important;
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-photo{
        width:78% !important;
        margin:0 0 -48px 22% !important;
        aspect-ratio:1.08 / 1 !important;
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-info-box{
        width:94% !important;
        max-width:94% !important;
        min-height:220px !important;
        padding:126px 16px 22px 64px !important;
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-company{
        left:20px !important;
        top:24px !important;
        bottom:24px !important;
        font-size:11px !important;
        letter-spacing:.15em !important;
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-identity-row{
        grid-template-columns:1fr !important;
        gap:16px !important;
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-button-in-box{
        width:100% !important;
        min-width:0 !important;
    }
    .safari-hub-itinerary.roby-layout-classic-split .roby-classic-shared-expert .roby-cine-travel-expert-copy-outside{
        padding:26px 16px 10px !important;
    }
}

/* v1.15.148 — shared final-day expert visual master */
.roby-final-expert-panel{width:100%;background:#fff;box-sizing:border-box;overflow:hidden}
.roby-final-expert-upper{display:grid;grid-template-columns:38% 62%;min-height:560px;background:#fbfaf7}
.roby-final-expert-profile{padding:52px 40px 34px;display:flex;flex-direction:column;justify-content:center}
.roby-final-expert-company{margin-bottom:44px;color:#b44b18;font-size:12px;font-weight:600;letter-spacing:.3em;text-transform:uppercase}
.roby-final-expert-name{color:#0d3028;text-transform:uppercase;line-height:.92}
.roby-final-expert-name strong{display:block;font-family:var(--safari-admin-h2-font,inherit);font-size:62px;font-weight:700}
.roby-final-expert-name span{display:block;font-size:46px;font-weight:300;letter-spacing:.08em}
.roby-final-expert-role{margin-top:12px;color:#7a7a7a;font-size:11px;font-weight:700;letter-spacing:.34em}
.roby-final-expert-intro{margin:34px 0 24px!important;color:#26303a!important;font-size:17px!important;line-height:1.55!important}
.roby-final-expert-benefits{display:grid;gap:16px}.roby-final-expert-benefits>div{display:flex;align-items:center;gap:14px}.roby-final-expert-benefits b{width:32px;color:#b44b18;font-size:28px}.roby-final-expert-benefits span{display:flex;flex-direction:column}.roby-final-expert-benefits strong{font-size:14px}.roby-final-expert-benefits small{font-size:12px;color:#777}
.roby-final-expert-photo{margin:0!important;min-height:560px;overflow:hidden}.roby-final-expert-photo img{display:block;width:100%!important;height:100%!important;min-height:560px;object-fit:cover!important;object-position:center!important}
.roby-final-expert-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:32px;padding:38px 40px;background:#fff}.roby-final-expert-cta h4{margin:0 0 8px!important;color:#b44b18!important;font-family:var(--safari-admin-h3-font,inherit)!important;font-size:34px!important;line-height:1.1!important}.roby-final-expert-cta p{margin:0!important;font-size:15px!important}.roby-final-expert-cta a{display:flex;align-items:center;justify-content:space-between;gap:36px;min-width:220px;padding:19px 25px;background:#b44b18;color:#fff!important;text-decoration:none!important;font-weight:600;white-space:nowrap}
.roby-cine-last-day-no-stay .roby-cine-travel-expert{display:none!important}

/* Classic final day: left remains itinerary/meals, shared expert fills right visual. */
.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel{height:100%;overflow:auto}
.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-upper{grid-template-columns:42% 58%;min-height:440px}
.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-profile{padding:28px 22px}.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-company{margin-bottom:22px;font-size:8px}.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-name strong{font-size:36px}.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-name span{font-size:26px}.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-intro{margin:20px 0 14px!important;font-size:12px!important}.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-benefits{gap:8px}.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-benefits b{font-size:19px;width:22px}.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-benefits strong{font-size:10px}.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-benefits small{font-size:9px}.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-photo,.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-photo img{min-height:440px}.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-cta{padding:20px}.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-cta h4{font-size:21px!important}.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-cta p{font-size:11px!important}.roby-layout-classic-split .roby-visual-day:last-child>.roby-final-expert-panel .roby-final-expert-cta a{min-width:130px;padding:13px 15px;font-size:12px}

/* Cinematic/Luxury/Note: expert shares the final day row with itinerary/meals. */
@media(min-width:901px){
.roby-layout-cinematic-safari .roby-cine-day:last-of-type,.roby-layout-luxury-timeline .roby-luxury-day:last-child,.roby-note-layout .roby-note-day:last-child .roby-note-detail{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:34px!important;align-items:start!important}
.roby-layout-cinematic-safari .roby-cine-day:last-of-type>.roby-cine-day-intro,.roby-layout-cinematic-safari .roby-cine-day:last-of-type>.roby-cine-editorial-row,.roby-layout-cinematic-safari .roby-cine-day:last-of-type>.roby-cine-approved-essentials{grid-column:1!important}.roby-layout-cinematic-safari .roby-cine-day:last-of-type>.roby-final-expert-panel{grid-column:2!important;grid-row:1/span 20}
.roby-layout-cinematic-safari .roby-cine-day:last-of-type>.roby-cine-editorial-row,.roby-layout-cinematic-safari .roby-cine-day:last-of-type>.roby-cine-editorial-row>.roby-cine-editorial-copy{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
.roby-layout-luxury-timeline .roby-luxury-day:last-child>.roby-final-expert-panel{grid-column:2!important;grid-row:1/span 20}
.roby-note-layout .roby-note-day:last-child .roby-note-feature{grid-column:1!important}.roby-note-layout .roby-note-day:last-child .roby-final-expert-panel{grid-column:2!important}
}
@media(max-width:900px){.roby-final-expert-upper{grid-template-columns:1fr;min-height:0}.roby-final-expert-profile{padding:32px 22px}.roby-final-expert-name strong{font-size:44px}.roby-final-expert-name span{font-size:32px}.roby-final-expert-photo,.roby-final-expert-photo img{min-height:340px}.roby-final-expert-cta{grid-template-columns:1fr;padding:26px 22px}.roby-final-expert-cta h4{font-size:27px!important}.roby-final-expert-cta a{width:100%;box-sizing:border-box}}


/* ==========================================================
   v1.15.149 — APPROVED SHARED TRAVEL EXPERT MASTER
   Exact composition used in Classic, Cinematic, Luxury & Note:
   vertical company label + faint compass + dominant photo +
   bottom identity strip + orange Enquire button.
   ========================================================== */

.roby-final-expert-panel.roby-final-expert-master{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    background:#f7f4ed !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
}

.roby-final-expert-master .roby-final-expert-main{
    display:grid !important;
    grid-template-columns:26% 74% !important;
    min-height:560px !important;
    background:#f7f4ed !important;
}

.roby-final-expert-master .roby-final-expert-brand{
    position:relative !important;
    min-height:560px !important;
    overflow:hidden !important;
    background:#f7f4ed !important;
}

.roby-final-expert-master .roby-final-expert-company{
    position:absolute !important;
    z-index:3 !important;
    right:18px !important;
    top:50% !important;
    transform:translateY(-50%) rotate(180deg) !important;
    writing-mode:vertical-rl !important;
    text-orientation:mixed !important;
    color:#b44b18 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:18px !important;
    font-weight:500 !important;
    line-height:1 !important;
    letter-spacing:.28em !important;
    text-transform:uppercase !important;
    white-space:nowrap !important;
}

/* Faint compass watermark — drawn in CSS so no extra image asset is required. */
.roby-final-expert-master .roby-final-expert-compass{
    position:absolute !important;
    left:-38px !important;
    bottom:28px !important;
    width:250px !important;
    height:250px !important;
    border:2px solid rgba(180,75,24,.08) !important;
    border-radius:50% !important;
    box-sizing:border-box !important;
}
.roby-final-expert-master .roby-final-expert-compass::before,
.roby-final-expert-master .roby-final-expert-compass::after{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    width:2px !important;
    height:300px !important;
    background:rgba(180,75,24,.08) !important;
    transform-origin:center !important;
}
.roby-final-expert-master .roby-final-expert-compass::before{
    transform:translate(-50%,-50%) rotate(0deg) !important;
}
.roby-final-expert-master .roby-final-expert-compass::after{
    transform:translate(-50%,-50%) rotate(90deg) !important;
}
.roby-final-expert-master .roby-final-expert-brand::after{
    content:"" !important;
    position:absolute !important;
    left:47px !important;
    bottom:84px !important;
    width:145px !important;
    height:145px !important;
    border-left:2px solid rgba(180,75,24,.08) !important;
    border-top:2px solid rgba(180,75,24,.08) !important;
    transform:rotate(45deg) !important;
}

.roby-final-expert-master .roby-final-expert-photo{
    margin:0 !important;
    width:100% !important;
    min-height:560px !important;
    overflow:hidden !important;
    background:#ddd !important;
}
.roby-final-expert-master .roby-final-expert-photo img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:560px !important;
    object-fit:cover !important;
    object-position:center !important;
}

/* Bottom identity strip exactly under the image/brand area. */
.roby-final-expert-master .roby-final-expert-bottom{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:center !important;
    gap:28px !important;
    min-height:118px !important;
    padding:26px 38px !important;
    background:#f7f4ed !important;
    box-sizing:border-box !important;
}

.roby-final-expert-master .roby-final-expert-identity{
    display:flex !important;
    align-items:center !important;
    flex-wrap:wrap !important;
    gap:18px !important;
    min-width:0 !important;
}

.roby-final-expert-master .roby-final-expert-name{
    display:flex !important;
    align-items:baseline !important;
    gap:10px !important;
    margin:0 !important;
    color:#0d3028 !important;
    line-height:1 !important;
    text-transform:uppercase !important;
    white-space:nowrap !important;
}
.roby-final-expert-master .roby-final-expert-name strong{
    font-family:var(--roby-font-heading,inherit) !important;
    font-size:48px !important;
    font-weight:700 !important;
    letter-spacing:.01em !important;
}
.roby-final-expert-master .roby-final-expert-name span{
    font-family:var(--roby-font-body,inherit) !important;
    font-size:34px !important;
    font-weight:300 !important;
    letter-spacing:.08em !important;
}

.roby-final-expert-master .roby-final-expert-divider{
    display:block !important;
    width:1px !important;
    height:44px !important;
    background:rgba(13,48,40,.38) !important;
}

.roby-final-expert-master .roby-final-expert-role{
    color:#777 !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:12px !important;
    font-weight:700 !important;
    line-height:1 !important;
    letter-spacing:.32em !important;
    text-transform:uppercase !important;
    white-space:nowrap !important;
}

.roby-final-expert-master .roby-final-expert-button{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:34px !important;
    min-width:230px !important;
    min-height:68px !important;
    padding:0 26px !important;
    background:#b44b18 !important;
    color:#fff !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    text-decoration:none !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:18px !important;
    font-weight:600 !important;
    white-space:nowrap !important;
    box-sizing:border-box !important;
}

/* The old text/benefit/CTA composition must never show. */
.roby-final-expert-master .roby-final-expert-intro,
.roby-final-expert-master .roby-final-expert-benefits,
.roby-final-expert-master .roby-final-expert-cta{
    display:none !important;
}

/* Classic keeps the final-day expert inside the right visual column. */
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master{
    height:100% !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
}
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-main{
    grid-template-columns:26% 74% !important;
    min-height:420px !important;
}
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-brand,
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-photo,
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-photo img{
    min-height:420px !important;
}
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-company{
    font-size:12px !important;
    right:12px !important;
}
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-compass{
    width:180px !important;
    height:180px !important;
}
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-bottom{
    min-height:92px !important;
    padding:18px 20px !important;
    gap:14px !important;
}
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-name strong{
    font-size:30px !important;
}
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-name span{
    font-size:22px !important;
}
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-divider{
    height:32px !important;
}
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-role{
    font-size:9px !important;
    letter-spacing:.24em !important;
}
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-button{
    min-width:145px !important;
    min-height:50px !important;
    padding:0 16px !important;
    font-size:13px !important;
    gap:18px !important;
}

/* All non-Classic layouts keep the final day in two columns:
   itinerary + meals on the left, approved expert master on the right. */
@media(min-width:901px){
    .roby-layout-cinematic-safari .roby-cine-day:last-of-type > .roby-final-expert-master,
    .roby-layout-luxury-timeline .roby-luxury-day:last-child > .roby-final-expert-master{
        grid-column:2 !important;
        grid-row:1 / span 20 !important;
    }
    .roby-note-layout .roby-note-day:last-child .roby-final-expert-master{
        grid-column:2 !important;
    }
}

@media(max-width:900px){
    .roby-final-expert-master .roby-final-expert-main{
        grid-template-columns:30% 70% !important;
        min-height:360px !important;
    }
    .roby-final-expert-master .roby-final-expert-brand,
    .roby-final-expert-master .roby-final-expert-photo,
    .roby-final-expert-master .roby-final-expert-photo img{
        min-height:360px !important;
    }
    .roby-final-expert-master .roby-final-expert-company{
        right:10px !important;
        font-size:11px !important;
        letter-spacing:.20em !important;
    }
    .roby-final-expert-master .roby-final-expert-compass{
        width:150px !important;
        height:150px !important;
        left:-48px !important;
    }
    .roby-final-expert-master .roby-final-expert-bottom{
        grid-template-columns:1fr !important;
        gap:18px !important;
        padding:22px 18px !important;
    }
    .roby-final-expert-master .roby-final-expert-name strong{
        font-size:36px !important;
    }
    .roby-final-expert-master .roby-final-expert-name span{
        font-size:25px !important;
    }
    .roby-final-expert-master .roby-final-expert-divider{
        height:30px !important;
    }
    .roby-final-expert-master .roby-final-expert-role{
        font-size:9px !important;
    }
    .roby-final-expert-master .roby-final-expert-button{
        width:100% !important;
        min-width:0 !important;
    }
}


/* ==========================================================
   v1.15.150 — APPROVED FINAL-DAY COMPOSITION
   1. Classic last-day itinerary uses the full left-column width.
   2. Expert role sits directly below the expert name.
   3. Enquire button stays on the same horizontal line, but shorter.
   4. Assistance sentence sits below the name/button row and uses
      the plugin Body Text typography.
   ========================================================== */

/* Identity: name + TRAVEL EXPERT stacked together. */
.roby-final-expert-master .roby-final-expert-identity{
    display:grid !important;
    grid-template-columns:auto !important;
    align-items:start !important;
    justify-items:start !important;
    gap:7px !important;
}
.roby-final-expert-master .roby-final-expert-divider{
    display:none !important;
}
.roby-final-expert-master .roby-final-expert-role{
    display:block !important;
    margin:0 !important;
    padding:0 !important;
    line-height:1.15 !important;
}

/* Keep name/role on the left and button on the same row at the far right. */
.roby-final-expert-master .roby-final-expert-bottom{
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:center !important;
    gap:28px !important;
    min-height:0 !important;
    padding:25px 38px 13px !important;
}

/* Shorter approved button. */
.roby-final-expert-master .roby-final-expert-button{
    min-height:50px !important;
    height:50px !important;
    padding:0 24px !important;
}

/* Approved sentence directly below the identity/button row.
   It inherits the plugin/site Body Text settings. */
.roby-final-expert-master .roby-final-expert-question{
    display:block !important;
    margin:0 !important;
    padding:0 38px 28px !important;
    color:var(--roby-body-color,inherit) !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,inherit) !important;
    font-weight:var(--roby-body-weight,inherit) !important;
    line-height:var(--roby-body-line-height,inherit) !important;
    letter-spacing:var(--roby-body-letter-spacing,inherit) !important;
    box-sizing:border-box !important;
}

/* Classic final day: remove old narrow-content behaviour.
   The itinerary and meals now occupy the complete left column. */
.roby-layout-classic-split .roby-itinerary-content .roby-day-content:last-child,
.roby-layout-classic-split .roby-itinerary-content .roby-day:last-child,
.roby-layout-classic-split .roby-itinerary-content .roby-day-panel:last-child{
    width:100% !important;
    max-width:none !important;
}
.roby-layout-classic-split .roby-itinerary-content .roby-day-content:last-child > *,
.roby-layout-classic-split .roby-itinerary-content .roby-day:last-child > *,
.roby-layout-classic-split .roby-itinerary-content .roby-day-panel:last-child > *{
    max-width:none !important;
}

/* The actual Classic content column must not inherit a historical
   half-width/max-width on its final day text wrappers. */
.roby-layout-classic-split .roby-itinerary-content > *:last-child .roby-day-description,
.roby-layout-classic-split .roby-itinerary-content > *:last-child .roby-itinerary-text,
.roby-layout-classic-split .roby-itinerary-content > *:last-child .roby-day-copy,
.roby-layout-classic-split .roby-itinerary-content > *:last-child .roby-content,
.roby-layout-classic-split .roby-itinerary-content > *:last-child .roby-wysiwyg{
    width:100% !important;
    max-width:none !important;
}

/* Classic expert card remains compact enough for its right visual column. */
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-bottom{
    padding:17px 20px 9px !important;
    gap:12px !important;
}
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-button{
    min-height:42px !important;
    height:42px !important;
    min-width:145px !important;
    padding:0 15px !important;
}
.roby-layout-classic-split .roby-visual-day:last-child > .roby-final-expert-master .roby-final-expert-question{
    padding:0 20px 18px !important;
    font-family:var(--roby-font-body,inherit) !important;
    font-size:var(--roby-body-size,inherit) !important;
    font-weight:var(--roby-body-weight,inherit) !important;
    line-height:var(--roby-body-line-height,inherit) !important;
    letter-spacing:var(--roby-body-letter-spacing,inherit) !important;
}

/* Mobile keeps the same information order while stacking cleanly. */
@media(max-width:900px){
    .roby-final-expert-master .roby-final-expert-bottom{
        grid-template-columns:minmax(0,1fr) auto !important;
        gap:12px !important;
        padding:20px 18px 10px !important;
    }
    .roby-final-expert-master .roby-final-expert-button{
        width:auto !important;
        min-width:135px !important;
        height:44px !important;
        min-height:44px !important;
        padding:0 14px !important;
        font-size:14px !important;
    }
    .roby-final-expert-master .roby-final-expert-question{
        padding:0 18px 22px !important;
    }
}


/* ==========================================================
   v1.15.151 — CLASSIC FINAL-DAY WIDTH CORRECTION
   Fixes the final Classic itinerary body becoming artificially
   narrow. No other layout is changed.
   ========================================================== */
@media(min-width:768px){

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child{
        display:grid !important;
        grid-template-columns:90px minmax(0,1fr) !important;
        column-gap:28px !important;
        width:100% !important;
        max-width:none !important;
        box-sizing:border-box !important;
    }

    /* Title row stays exactly as Classic: DAY number left, title right. */
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-number-block{
        grid-column:1 !important;
        grid-row:1 !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-copy{
        grid-column:2 !important;
        grid-row:1 !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
    }

    /* Itinerary content must span the complete left Classic column. */
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-text{
        grid-column:1 / -1 !important;
        grid-row:2 !important;
        display:block !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        margin:0 !important;
        padding:0 !important;
        box-sizing:border-box !important;
    }

    /* Remove theme/editor max-widths from the saved WYSIWYG content. */
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-text > p,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-text > div,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-text > ul,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-text > ol,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-text > blockquote,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-text > h1,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-text > h2,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-text > h3,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-text > h4,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-text > h5,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-text > h6{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        box-sizing:border-box !important;
    }

    /* Meals also span the same full left-column width. */
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child > .roby-day-left-meals{
        grid-column:1 / -1 !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        box-sizing:border-box !important;
    }

    /* Prevent any historical active-day visual lift from changing width. */
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child{
        left:auto !important;
        right:auto !important;
    }
}


/* ==========================================================
   v1.15.152 — CLASSIC LAST-DAY TRUE FULL-WIDTH CONTENT
   Uses the real Classic markup. The body and meals span the
   complete left itinerary column. Manual <br> wrapping is also
   normalized in PHP for the final day only.
   ========================================================== */
@media(min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > article.roby-itinerary-day:last-child{
        display:grid !important;
        grid-template-columns:90px minmax(0,1fr) !important;
        grid-auto-rows:auto !important;
        column-gap:28px !important;
        row-gap:22px !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > article.roby-itinerary-day:last-child
    > .roby-day-marker{
        grid-column:1 !important;
        grid-row:1 !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > article.roby-itinerary-day:last-child
    > .roby-day-copy{
        grid-column:2 !important;
        grid-row:1 !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > article.roby-itinerary-day:last-child
    > .roby-day-text{
        grid-column:1 / -1 !important;
        grid-row:2 !important;
        display:block !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        margin:0 !important;
        padding:0 !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > article.roby-itinerary-day:last-child
    > .roby-day-text p{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        margin-left:0 !important;
        margin-right:0 !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > article.roby-itinerary-day:last-child
    > .roby-day-left-meals{
        grid-column:1 / -1 !important;
        grid-row:auto !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        margin-left:0 !important;
        margin-right:0 !important;
    }
}


/* ==========================================================
   v1.15.153 — CLASSIC FINAL DAY: FORCE REAL CONTENT WIDTH
   The final-day WYSIWYG now also carries inline full-width
   rules. This CSS is only a matching Classic safeguard.
   ========================================================== */
@media(min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child
    > .roby-day-text,
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > .roby-itinerary-day:last-child
    > .roby-day-text > *{
        inline-size:100% !important;
        width:100% !important;
        max-inline-size:none !important;
        max-width:none !important;
        min-width:0 !important;
        float:none !important;
        clear:both !important;
        white-space:normal !important;
        word-break:normal !important;
        overflow-wrap:normal !important;
        box-sizing:border-box !important;
    }
}


/* ==========================================================
   v1.15.154 — CLASSIC FINAL DAY CONTENT FLOW ROOT FIX
   The real Classic renderer now removes manual single-line
   breaks. These selectors make the resulting paragraphs fill
   the full itinerary column.
   ========================================================== */
@media(min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > article.roby-itinerary-day:last-child
    > .roby-day-text{
        columns:auto !important;
        column-count:1 !important;
        column-width:auto !important;
        text-align:left !important;
    }

    .safari-hub-itinerary.roby-layout-classic-split
    .roby-itinerary-content > article.roby-itinerary-day:last-child
    > .roby-day-text > p{
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        min-width:100% !important;
        white-space:normal !important;
        word-break:normal !important;
        overflow-wrap:normal !important;
    }
}


/* ==========================================================
   v1.15.155 — CINEMATIC FINAL-DAY FULL-WIDTH ITINERARY
   Final Cinematic day has no Safari Photo, Activities or Stay.
   Therefore its itinerary copy must use the entire left column
   beside the shared Travel Expert panel.
   ========================================================== */
@media(min-width:901px){

    /* The final day story row must stop reserving a missing photo column. */
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day:last-of-type
    > .roby-cine-editorial-row{
        display:block !important;
        grid-template-columns:1fr !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        margin-left:0 !important;
        margin-right:0 !important;
        box-sizing:border-box !important;
    }

    /* Itinerary panel fills all of the final day's left column. */
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day:last-of-type
    > .roby-cine-editorial-row
    > .roby-cine-editorial-copy{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        overflow:visible !important;
        box-sizing:border-box !important;
    }

    /* The saved WYSIWYG content itself also gets the whole width. */
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day:last-of-type
    .roby-cine-body,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day:last-of-type
    .roby-cine-body > *{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        box-sizing:border-box !important;
        white-space:normal !important;
        word-break:normal !important;
        overflow-wrap:normal !important;
    }

    /* Meals stay below the full-width itinerary in the same left column. */
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day:last-of-type
    > .roby-cine-approved-essentials{
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        box-sizing:border-box !important;
    }
}


/* ==========================================================
   v1.15.156 — CINEMATIC LAST DAY MATCHED COLUMN BACKGROUNDS
   Requested only:
   - Left itinerary/meals and right Travel Expert use same cream.
   - 15px separation between them stays pure white.
   ========================================================== */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day:last-of-type{
        --roby-final-day-panel-bg:#f7f4ed;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day:last-of-type
    > .roby-final-day-master-row{
        gap:15px !important;
        column-gap:15px !important;
        background:#fff !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day:last-of-type
    > .roby-final-day-master-row
    > .roby-final-day-left,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day:last-of-type
    > .roby-final-day-master-row
    > .roby-final-expert-master{
        background:var(--roby-final-day-panel-bg) !important;
    }

    /* Keep nested final-day itinerary/meals surfaces visually continuous
       with the left cream column. */
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day:last-of-type
    .roby-final-day-left .roby-cine-editorial-copy,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day:last-of-type
    .roby-final-day-left .roby-cine-approved-essentials,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day:last-of-type
    .roby-final-day-left .roby-cine-approved-left,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day:last-of-type
    .roby-final-day-left .roby-cine-approved-meals{
        background:var(--roby-final-day-panel-bg) !important;
    }
}


/* ==========================================================
   v1.15.157 — CINEMATIC FINAL DAY DEDICATED TWO-COLUMN MASTER
   This replaces the old final-day layout with the exact requested
   composition: two equal cream panels separated by a 15px WHITE gap.
   ========================================================== */
@media(min-width:901px){

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
        gap:15px !important;
        column-gap:15px !important;
        width:100% !important;
        max-width:none !important;
        align-items:stretch !important;
        background:#fff !important;
        box-sizing:border-box !important;
        margin:0 !important;
        padding:0 !important;
    }

    /* LEFT COLUMN */
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left{
        display:flex !important;
        flex-direction:column !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        height:100% !important;
        padding:44px 42px !important;
        margin:0 !important;
        background:#f7f4ed !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left > h4{
        margin:10px 0 26px !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-itinerary,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-itinerary > *{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        box-sizing:border-box !important;
        white-space:normal !important;
        word-break:normal !important;
        overflow-wrap:normal !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-meals{
        margin-top:auto !important;
        padding-top:34px !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-meals > h4{
        margin:0 0 18px !important;
    }

    /* RIGHT COLUMN: same cream as left, no white card within it. */
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master{
        width:100% !important;
        max-width:none !important;
        height:100% !important;
        margin:0 !important;
        background:#f7f4ed !important;
        align-self:stretch !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master
    .roby-final-expert-main,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master
    .roby-final-expert-brand,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master
    .roby-final-expert-bottom{
        background:#f7f4ed !important;
    }
}

/* Mobile: stack the two panels cleanly, keep same cream treatment. */
@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row{
        display:block !important;
        width:100% !important;
        background:#fff !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left{
        width:100% !important;
        padding:28px 18px !important;
        background:#f7f4ed !important;
        box-sizing:border-box !important;
        margin-bottom:15px !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master{
        width:100% !important;
        background:#f7f4ed !important;
    }
}


/* ==========================================================
   v1.15.158 — CINEMATIC FINAL DAY HEADER INSIDE LEFT COLUMN
   DAY number + day title now sit inside the same cream left
   column above the itinerary content, matching the approved reference.
   ========================================================== */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-day > .roby-cine-final-day-outside-header{
        display:none !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left{
        padding:0 !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left-header{
        display:grid !important;
        grid-template-columns:96px minmax(0,1fr) !important;
        align-items:center !important;
        gap:22px !important;
        width:100% !important;
        padding:26px 42px 24px !important;
        border-bottom:1px solid rgba(0,0,0,.06) !important;
        box-sizing:border-box !important;
        background:#f7f4ed !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left-header .roby-cine-day-number{
        margin:0 !important;
        padding:0 18px 0 0 !important;
        border-right:1px solid rgba(180,75,24,.35) !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left-header .roby-cine-day-heading{
        width:100% !important;
        min-width:0 !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left-header .roby-day-title-heading{
        margin:0 !important;
        width:100% !important;
        max-width:none !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left-content{
        width:100% !important;
        padding:38px 42px 44px !important;
        box-sizing:border-box !important;
        background:#f7f4ed !important;
    }
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-day > .roby-cine-final-day-outside-header{
        display:none !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left{
        padding:0 !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left-header{
        display:grid !important;
        grid-template-columns:64px minmax(0,1fr) !important;
        gap:14px !important;
        align-items:center !important;
        padding:20px 18px !important;
        background:#f7f4ed !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left-content{
        padding:26px 18px 30px !important;
        background:#f7f4ed !important;
        box-sizing:border-box !important;
    }
}


/* ==========================================================
   v1.15.159 — CINEMATIC FINAL DAY TRUE 50 / 50 FULL ROW
   Root cause fix:
   an older rule was turning the final Cinematic ARTICLE itself
   into a 2-column grid, so the new final row occupied only half
   of the available width. Reset that article and let the final
   master row span the entire Cinematic content width.
   ========================================================== */
@media(min-width:901px){

    /* Final day article must occupy the complete main content width. */
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day.roby-cine-final-day:last-of-type{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        grid-template-columns:none !important;
        grid-template-rows:none !important;
        column-gap:0 !important;
        row-gap:0 !important;
        box-sizing:border-box !important;
    }

    /* The actual final row stretches from the left edge to the right edge. */
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day.roby-cine-final-day:last-of-type
    > .roby-cine-final-master-row{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
        grid-column:1 / -1 !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        gap:15px !important;
        column-gap:15px !important;
        align-items:stretch !important;
        margin:0 !important;
        padding:0 !important;
        background:#fff !important;
        box-sizing:border-box !important;
    }

    /* Both panels are exact equal-width grid children. */
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-cine-final-left,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master{
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        margin:0 !important;
        box-sizing:border-box !important;
        background:#f7f4ed !important;
    }

    /* Remove any older final-day positioning that could shrink either side. */
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master{
        grid-column:auto !important;
        grid-row:auto !important;
        justify-self:stretch !important;
        align-self:stretch !important;
    }
}


/* ==========================================================
   v1.15.162 — FINAL-DAY MEALS SPACING + FAINT CONTACT ICONS
   Baseline: v1.15.159
   ========================================================== */

/* Remove the large artificial gap above Meals on the Cinematic final day. */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left{
        justify-content:flex-start !important;
        align-content:flex-start !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-meals{
        margin-top:28px !important;
        padding-top:0 !important;
        position:static !important;
        top:auto !important;
        bottom:auto !important;
        transform:none !important;
    }
}

/* Remove the old compass drawing completely. */
.roby-final-expert-master .roby-final-expert-compass{
    display:none !important;
}

/* Faint chat + contact icon artwork behind the vertical company name. */
.roby-final-expert-master .roby-final-expert-contact-icons{
    position:absolute !important;
    left:18px !important;
    top:50% !important;
    width:210px !important;
    height:250px !important;
    transform:translateY(-50%) !important;
    opacity:.085 !important;
    pointer-events:none !important;
    z-index:1 !important;
}

/* Large outline chat bubble. */
.roby-final-expert-master .roby-final-expert-contact-icons::before{
    content:"" !important;
    position:absolute !important;
    left:14px !important;
    top:26px !important;
    width:126px !important;
    height:92px !important;
    border:3px solid #b44b18 !important;
    border-radius:22px !important;
    box-sizing:border-box !important;
}
.roby-final-expert-master .roby-final-expert-contact-icons::after{
    content:"" !important;
    position:absolute !important;
    left:34px !important;
    top:108px !important;
    width:28px !important;
    height:28px !important;
    border-left:3px solid #b44b18 !important;
    border-bottom:3px solid #b44b18 !important;
    transform:skew(-24deg) rotate(-18deg) !important;
    background:transparent !important;
}

/* Three faint chat dots. */
.roby-final-expert-master .roby-final-expert-contact-icons > i{
    position:absolute !important;
    left:43px !important;
    top:69px !important;
    width:9px !important;
    height:9px !important;
    border-radius:50% !important;
    background:#b44b18 !important;
    box-shadow:25px 0 0 #b44b18, 50px 0 0 #b44b18 !important;
}

/* Contact/user icon underneath the chat bubble. */
.roby-final-expert-master .roby-final-expert-contact-icons > b{
    position:absolute !important;
    right:14px !important;
    bottom:28px !important;
    width:62px !important;
    height:62px !important;
    border:3px solid #b44b18 !important;
    border-radius:50% !important;
    box-sizing:border-box !important;
}
.roby-final-expert-master .roby-final-expert-contact-icons > b::before{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:12px !important;
    width:17px !important;
    height:17px !important;
    border:3px solid #b44b18 !important;
    border-radius:50% !important;
    transform:translateX(-50%) !important;
    box-sizing:border-box !important;
}
.roby-final-expert-master .roby-final-expert-contact-icons > b::after{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    bottom:9px !important;
    width:34px !important;
    height:18px !important;
    border:3px solid #b44b18 !important;
    border-bottom:0 !important;
    border-radius:22px 22px 0 0 !important;
    transform:translateX(-50%) !important;
    box-sizing:border-box !important;
}

/* Keep vertical company label above the faint artwork. */
.roby-final-expert-master .roby-final-expert-company{
    z-index:3 !important;
}

@media(max-width:900px){
    .roby-final-expert-master .roby-final-expert-contact-icons{
        left:-12px !important;
        width:150px !important;
        height:190px !important;
        opacity:.07 !important;
    }
}


/* ==========================================================
   v1.15.165 — SPEAK TO EXPERT: REMOVE WATERMARK ARTWORK
   No faint icons / compass / decorative watermark.
   ========================================================== */
.roby-final-expert-master .roby-final-expert-contact-icons,
.roby-final-expert-master .roby-final-expert-compass{
    display:none !important;
}

/* ==========================================================
   v1.15.166 — FINAL-DAY LEFT COLUMN WHITE BACKGROUND
   Requested only: keep the Cinematic final-day left-hand
   itinerary/meals column pure white. All other styling stays.
   ========================================================== */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-cine-final-left,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-cine-final-left .roby-cine-editorial-copy,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-cine-final-left .roby-cine-approved-essentials,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-cine-final-left .roby-cine-approved-left,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-cine-final-left .roby-cine-approved-meals,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-cine-final-left .roby-cine-final-meals{
        background:#fff !important;
    }
}

/* ==========================================================
   v1.15.167 — CINEMATIC FINAL LEFT COLUMN: WHITE + ACTIVITIES
   Final-day left column now stays pure white throughout and may
   show Itinerary, Safari Activities, then Meals in that order.
   ========================================================== */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-final-master-row > .roby-cine-final-left,
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-final-left-header,
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-final-left-content,
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-final-activities,
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-final-meals,
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-final-meals .roby-cine-approved-meal-list,
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-final-meals .roby-cine-approved-meal-list > span{
    background:#fff !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-final-activities{
    margin-top:28px !important;
    padding:0 !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-final-activities > h4{
    margin:0 0 18px !important;
}

.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-final-activity-list{
    margin:0 !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-cine-final-left,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left-header,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-left-content,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-activities,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-meals{
        background:#fff !important;
    }
}

/* ==========================================================
   v1.15.171 — CINEMATIC FINAL-DAY RESPONSIVE COLUMN BALANCE
   Desktop: 60% itinerary / 40% Travel Expert.
   Tablet landscape: 55% / 45%.
   Mobile remains stacked by the existing <=900px rules.
   No internal panel styling is changed here.
   ========================================================== */
@media (min-width:1101px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day.roby-cine-final-day:last-of-type
    > .roby-cine-final-master-row{
        grid-template-columns:minmax(0,3fr) minmax(0,2fr) !important;
    }
}

@media (min-width:901px) and (max-width:1100px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-main > article.roby-cine-day.roby-cine-final-day:last-of-type
    > .roby-cine-final-master-row{
        grid-template-columns:minmax(0,11fr) minmax(0,9fr) !important;
    }
}

/* ==========================================================
   v1.15.172 — CINEMATIC TRAVEL EXPERT PHOTO HEIGHT
   Cinematic only: reduce the approved Travel Expert image area
   by 10% (560px -> 504px). Keep the vertical company label
   centered against the image and preserve the existing crop quality.
   ========================================================== */
@media (min-width:901px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master
    .roby-final-expert-main{
        min-height:504px !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master
    .roby-final-expert-brand,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master
    .roby-final-expert-photo,
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master
    .roby-final-expert-photo img{
        min-height:504px !important;
        height:504px !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master
    .roby-final-expert-photo img{
        object-fit:cover !important;
        object-position:center !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master
    .roby-final-expert-company{
        top:50% !important;
        transform:translateY(-50%) rotate(180deg) !important;
    }
}


/* ==========================================================
   v1.15.173 — CINEMATIC FINAL-DAY ACTIVITIES + TYPOGRAPHY + EXPERT CTA
   Requested only:
   - Last-day Activities use the same numbered 01, 02, 03... treatment.
   - Last-day Itinerary / Activities / Meals headings use the configured
     section-heading typography, matching other Cinematic itinerary days.
   - Travel Expert CTA sits below name + role and matches the photo width.
   - Long expert names can wrap without changing CTA width.
   ========================================================== */

/* Final-day section headings: use the same configured typography as the
   equivalent headings elsewhere in the Cinematic layout. */
.safari-hub-itinerary.roby-layout-cinematic-safari[data-typography-mode="custom"]
.roby-cine-final-left-content > h4,
.safari-hub-itinerary.roby-layout-cinematic-safari[data-typography-mode="custom"]
.roby-cine-final-activities > h4,
.safari-hub-itinerary.roby-layout-cinematic-safari[data-typography-mode="custom"]
.roby-cine-final-meals > h4{
    font-family:var(--roby-font-other-heading,var(--roby-font-heading,inherit)) !important;
    font-size:var(--roby-other-heading-size,22px) !important;
    font-weight:var(--roby-other-heading-weight,600) !important;
    line-height:var(--roby-other-heading-line-height,1.3) !important;
    letter-spacing:var(--roby-other-heading-letter-spacing,0px) !important;
    color:var(--roby-section-heading-color,#171717) !important;
}

/* Last-day activity list: exact numbered-circle language used by the normal
   Cinematic Activities panel. */
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-final-activity-list ul{
    list-style:none !important;
    margin:0 !important;
    padding:0 !important;
    counter-reset:roby-cine-final-activity !important;
}
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-final-activity-list li{
    counter-increment:roby-cine-final-activity !important;
    display:grid !important;
    grid-template-columns:36px minmax(0,1fr) !important;
    gap:12px !important;
    align-items:center !important;
    padding:13px 0 !important;
    margin:0 !important;
    border-bottom:1px solid rgba(21,21,21,.08) !important;
}
.safari-hub-itinerary.roby-layout-cinematic-safari
.roby-cine-final-activity-list li::before{
    content:counter(roby-cine-final-activity,decimal-leading-zero) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:28px !important;
    height:28px !important;
    border:1px solid rgba(201,135,8,.58) !important;
    border-radius:50% !important;
    color:var(--cine-gold,#c98708) !important;
    font:600 9px/1 var(--roby-font-body,inherit) !important;
    box-sizing:border-box !important;
}

/* Desktop/tablet Cinematic expert panel: the photo occupies the right 74%
   of the panel, so align identity + CTA to that same exact width. */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master
    .roby-final-expert-bottom{
        display:grid !important;
        grid-template-columns:1fr !important;
        align-items:start !important;
        gap:16px !important;
        width:100% !important;
        padding:24px 0 0 26% !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master
    .roby-final-expert-identity{
        width:100% !important;
        min-width:0 !important;
        padding:0 22px 0 0 !important;
        box-sizing:border-box !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master
    .roby-final-expert-name{
        width:100% !important;
        min-width:0 !important;
        white-space:normal !important;
        flex-wrap:wrap !important;
        row-gap:4px !important;
    }

    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master
    .roby-final-expert-button{
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
        margin:0 !important;
        box-sizing:border-box !important;
    }
}

/* On mobile the panel is stacked already; keep the CTA full-width below the
   identity without forcing the desktop 26% photo alignment. */
@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-final-expert-master .roby-final-expert-bottom{
        grid-template-columns:1fr !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-final-expert-master .roby-final-expert-name{
        white-space:normal !important;
        flex-wrap:wrap !important;
    }
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-final-expert-master .roby-final-expert-button{
        width:100% !important;
        min-width:0 !important;
    }
}

/* ==========================================================
   v1.15.175 — CINEMATIC EXPERT QUESTION ALIGNMENT
   Keep the approved question beneath the CTA and align its
   left edge exactly with the image/button alignment.
   ========================================================== */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-cinematic-safari
    .roby-cine-final-master-row > .roby-final-expert-master
    .roby-final-expert-question{
        padding:10px 22px 28px 26% !important;
        margin:0 !important;
        box-sizing:border-box !important;
    }
}


/* ==========================================================
   v1.15.176 — NOTE LAYOUT ONLY
   1) Activities use the approved numbered journey style.
   2) Closed day tabs show title only and use the Main Titles font family.
   ========================================================== */
.safari-hub-itinerary.roby-layout-note-layout
.roby-note-activities .roby-activity-richtext > ul{
    list-style:none !important;
    margin:0 !important;
    padding:0 !important;
    counter-reset:roby-note-activity !important;
}

.safari-hub-itinerary.roby-layout-note-layout
.roby-note-activities .roby-activity-richtext > ul > li{
    position:relative !important;
    display:grid !important;
    grid-template-columns:40px minmax(0,1fr) !important;
    column-gap:14px !important;
    align-items:center !important;
    min-height:58px !important;
    margin:0 !important;
    padding:10px 0 !important;
    border-bottom:1px solid rgba(17,17,17,.10) !important;
    list-style:none !important;
    counter-increment:roby-note-activity !important;
    box-sizing:border-box !important;
}

.safari-hub-itinerary.roby-layout-note-layout
.roby-note-activities .roby-activity-richtext > ul > li::before{
    content:counter(roby-note-activity, decimal-leading-zero) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:38px !important;
    height:38px !important;
    border:1.5px solid #d89b32 !important;
    border-radius:50% !important;
    color:#b97800 !important;
    background:transparent !important;
    font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit)) !important;
    font-size:12px !important;
    font-weight:500 !important;
    line-height:1 !important;
    box-sizing:border-box !important;
}

.safari-hub-itinerary.roby-layout-note-layout
.roby-note-activities .roby-activity-richtext > ul > li:last-child{
    border-bottom:0 !important;
}

.safari-hub-itinerary.roby-layout-note-layout
.roby-note-activities .roby-activity-richtext > ul > li::marker{
    content:"" !important;
}

.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary-text > strong{
    font-family:var(--roby-font-heading,var(--safari-hub-heading-font,inherit)) !important;
}

@media(max-width:767px){
    .safari-hub-itinerary.roby-layout-note-layout
    .roby-note-activities .roby-activity-richtext > ul > li{
        grid-template-columns:36px minmax(0,1fr) !important;
        column-gap:12px !important;
        min-height:54px !important;
    }

    .safari-hub-itinerary.roby-layout-note-layout
    .roby-note-activities .roby-activity-richtext > ul > li::before{
        width:34px !important;
        height:34px !important;
        font-size:11px !important;
    }
}


/* ==========================================================
   v1.15.177 — NOTE LAYOUT ACTIVITY FLOW + TAB END ICON
   Note Layout only.
   - Activities use the same numbered journey treatment as Classic.
   - The + control sits at the far end of each closed title tab.
   - The + uses the same gold circular outline language as activity numbers.
   ========================================================== */
.safari-hub-itinerary.roby-layout-note-layout
.roby-note-activities .roby-activity-richtext > ul{
    list-style:none !important;
    margin:0 !important;
    padding:0 !important;
    counter-reset:roby-note-activity !important;
}

.safari-hub-itinerary.roby-layout-note-layout
.roby-note-activities .roby-activity-richtext > ul > li{
    position:relative !important;
    display:grid !important;
    grid-template-columns:40px minmax(0,1fr) !important;
    column-gap:14px !important;
    align-items:center !important;
    min-height:58px !important;
    margin:0 !important;
    padding:10px 0 !important;
    border-bottom:1px solid rgba(17,17,17,.10) !important;
    list-style:none !important;
    counter-increment:roby-note-activity !important;
    box-sizing:border-box !important;
}

.safari-hub-itinerary.roby-layout-note-layout
.roby-note-activities .roby-activity-richtext > ul > li::before{
    content:counter(roby-note-activity,decimal-leading-zero) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:38px !important;
    height:38px !important;
    border:1.5px solid #d89b32 !important;
    border-radius:50% !important;
    color:#b97800 !important;
    background:transparent !important;
    font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit)) !important;
    font-size:12px !important;
    font-weight:500 !important;
    line-height:1 !important;
    box-sizing:border-box !important;
}

.safari-hub-itinerary.roby-layout-note-layout
.roby-note-activities .roby-activity-richtext > ul > li:last-child{
    border-bottom:0 !important;
}

/* Title first; + icon at the far right edge of the tab. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary{
    display:flex !important;
    align-items:center !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary-text{
    order:1 !important;
    flex:1 1 auto !important;
    min-width:0 !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon{
    order:3 !important;
    margin-left:auto !important;
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    flex:0 0 38px !important;
    border:1.5px solid #d89b32 !important;
    color:#b97800 !important;
    background:transparent !important;
    border-radius:50% !important;
    font-size:24px !important;
    font-weight:300 !important;
    line-height:1 !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary:hover .roby-note-plus-icon,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary:focus-visible .roby-note-plus-icon{
    border-color:#d89b32 !important;
    color:#b97800 !important;
    background:transparent !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-arrow{
    display:none !important;
}

@media(max-width:767px){
    .safari-hub-itinerary.roby-layout-note-layout
    .roby-note-activities .roby-activity-richtext > ul > li{
        grid-template-columns:36px minmax(0,1fr) !important;
        column-gap:12px !important;
        min-height:54px !important;
    }
    .safari-hub-itinerary.roby-layout-note-layout
    .roby-note-activities .roby-activity-richtext > ul > li::before,
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon{
        width:34px !important;
        height:34px !important;
        min-width:34px !important;
        flex-basis:34px !important;
    }
}


/* ==========================================================
   v1.15.178 — NOTE LAYOUT: enforced activity numbering + end + icon
   Important: cache-busting plugin VERSION is also 1.15.178.
   ========================================================== */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext{
    counter-reset:roby-note-activity !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ul,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ol{
    list-style:none !important;
    margin:0 !important;
    padding:0 !important;
    counter-reset:roby-note-activity !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ul > li,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ol > li,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > p{
    position:relative !important;
    display:grid !important;
    grid-template-columns:56px minmax(0,1fr) !important;
    column-gap:26px !important;
    align-items:center !important;
    min-height:110px !important;
    margin:0 !important;
    padding:14px 0 !important;
    border:0 !important;
    border-bottom:1px solid rgba(17,17,17,.10) !important;
    list-style:none !important;
    counter-increment:roby-note-activity !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ul > li::before,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ol > li::before,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > p::before{
    content:counter(roby-note-activity,decimal-leading-zero) !important;
    position:static !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:56px !important;
    height:56px !important;
    margin:0 !important;
    padding:0 !important;
    border:1.5px solid #e4ae52 !important;
    border-radius:50% !important;
    background:transparent !important;
    color:#c57b00 !important;
    font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit)) !important;
    font-size:16px !important;
    font-weight:500 !important;
    line-height:1 !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ul > li:last-child,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ol > li:last-child,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > p:last-child{
    border-bottom:0 !important;
}

/* Keep the title first and force the + control to the extreme right of the tab. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary{
    position:relative !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    width:100% !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary-text{
    order:1 !important;
    flex:1 1 auto !important;
    min-width:0 !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon{
    position:relative !important;
    inset:auto !important;
    order:99 !important;
    margin:0 0 0 auto !important;
    padding:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    flex:0 0 38px !important;
    border:1.5px solid #e4ae52 !important;
    border-radius:50% !important;
    background:transparent !important;
    color:#c57b00 !important;
    font-size:0 !important;
    line-height:1 !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon::before,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon::after{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    margin:0 !important;
    padding:0 !important;
    background:#c57b00 !important;
    transform:translate(-50%,-50%) !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon::before{width:12px !important;height:1.5px !important;}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon::after{width:1.5px !important;height:12px !important;}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-arrow{display:none !important;}

@media(max-width:767px){
 .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ul > li,
 .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ol > li,
 .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > p{
   grid-template-columns:46px minmax(0,1fr) !important;column-gap:16px !important;min-height:82px !important;
 }
 .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ul > li::before,
 .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ol > li::before,
 .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > p::before{
   width:46px !important;height:46px !important;font-size:14px !important;
 }
}


/* ==========================================================
   v1.15.179 — NOTE LAYOUT IMAGE + ACCORDION POLISH
   Note Layout only.
   - Day image keeps a controlled 4:3 crop and no longer stretches
     to the height of the right-side content.
   - Open/closed tabs keep a visible end control (+ / −).
   - Activity number circles are reduced for better balance.
   - Expanded content starts 10px below its tab.
   ========================================================== */

/* Keep the tab visible when its day is open so the − control remains usable. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-day.is-open .roby-note-summary{
    display:flex !important;
}

/* Add the requested breathing room between an open tab and its content. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-day.is-open .roby-note-detail{
    margin-top:10px !important;
}

/* The day photo has its own ratio; it must never inherit the right-content height. */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-feature{
        align-items:start !important;
        min-height:0 !important;
    }
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-image{
        align-self:start !important;
        width:100% !important;
        height:auto !important;
        min-height:0 !important;
        aspect-ratio:4 / 3 !important;
        overflow:hidden !important;
    }
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-image img{
        display:block !important;
        width:100% !important;
        height:100% !important;
        object-fit:cover !important;
        object-position:center center !important;
    }
}

/* Smaller, cleaner activity numbering. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ul > li,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ol > li,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > p{
    grid-template-columns:40px minmax(0,1fr) !important;
    column-gap:16px !important;
    min-height:74px !important;
    padding:10px 0 !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ul > li::before,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ol > li::before,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > p::before{
    width:40px !important;
    height:40px !important;
    font-size:12px !important;
    border-width:1.25px !important;
}

/* Keep the end icon visible. Open day = minus, closed day = plus. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon{
    display:inline-flex !important;
    visibility:visible !important;
    opacity:1 !important;
    width:36px !important;
    height:36px !important;
    min-width:36px !important;
    flex:0 0 36px !important;
    z-index:2 !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-day.is-open .roby-note-summary .roby-note-plus-icon::after{
    display:none !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-day:not(.is-open) .roby-note-summary .roby-note-plus-icon::after{
    display:block !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-image{
        align-self:start !important;
        width:100% !important;
        height:auto !important;
        min-height:0 !important;
        aspect-ratio:4 / 3 !important;
        overflow:hidden !important;
    }
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-image img{
        width:100% !important;
        height:100% !important;
        object-fit:cover !important;
    }
}

@media(max-width:767px){
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ul > li,
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ol > li,
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > p{
        grid-template-columns:36px minmax(0,1fr) !important;
        column-gap:13px !important;
        min-height:64px !important;
    }
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ul > li::before,
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ol > li::before,
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > p::before{
        width:36px !important;
        height:36px !important;
        font-size:11px !important;
    }
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon{
        width:34px !important;
        height:34px !important;
        min-width:34px !important;
        flex-basis:34px !important;
    }
}

/* ==========================================================
   v1.15.180 — NOTE LAYOUT ACCORDION + MEALS + ACCOMMODATION
   Note Layout only.
   ========================================================== */

/* Closed = +, open = −. Keep the control visible at the far right. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon{
    display:inline-flex !important;
    visibility:visible !important;
    opacity:1 !important;
    border:1.25px solid #e4ae52 !important;
    color:#c57b00 !important;
    background:transparent !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon::before{
    width:11px !important;
    height:1.25px !important;
    background:#c57b00 !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon::after{
    width:1.25px !important;
    height:11px !important;
    background:#c57b00 !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-day.is-open .roby-note-summary .roby-note-plus-icon::after{
    display:none !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-day:not(.is-open) .roby-note-summary .roby-note-plus-icon::after{
    display:block !important;
}

/* Every expanded panel, including the final day, starts 10px below its tab. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-day.is-open > .roby-note-detail{
    margin-top:10px !important;
}

/* The left media column has an independent image ratio and the stay below it. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-media{
    align-self:start !important;
    min-width:0 !important;
    background:#fff !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-media .roby-note-image{
    width:100% !important;
    aspect-ratio:4 / 3 !important;
    height:auto !important;
    min-height:0 !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-media .roby-note-image img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation{
    padding:18px 18px 20px !important;
    border-top:1px solid rgba(17,17,17,.08) !important;
    background:#fff !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-name{
    margin:0 0 12px !important;
    font-family:var(--roby-font-heading,var(--safari-hub-heading-font,inherit)) !important;
    font-size:18px !important;
    line-height:1.3 !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-gallery{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:8px !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-gallery.count-2{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-thumb{
    display:block !important;
    width:100% !important;
    aspect-ratio:4 / 3 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:3px !important;
    overflow:hidden !important;
    background:transparent !important;
    cursor:pointer !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-thumb img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
}

/* Meals sit directly under the day's itinerary/story and before activities. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-meals{
    margin-top:20px !important;
    padding-top:18px !important;
    border-top:1px solid #ececec !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-meals h4{
    margin:0 0 10px !important;
}

/* Slightly tighter activity rhythm and smaller number circles. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ul > li,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ol > li,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > p{
    grid-template-columns:34px minmax(0,1fr) !important;
    column-gap:13px !important;
    min-height:58px !important;
    padding:6px 0 !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ul > li::before,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ol > li::before,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > p::before{
    width:34px !important;
    height:34px !important;
    font-size:11px !important;
}

@media(max-width:900px){
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation{padding:16px !important;}
}
@media(max-width:600px){
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-gallery{gap:6px !important;}
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ul > li,
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ol > li,
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > p{
        grid-template-columns:32px minmax(0,1fr) !important;
        column-gap:11px !important;
        min-height:54px !important;
        padding:5px 0 !important;
    }
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ul > li::before,
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > ol > li::before,
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-activities .roby-activity-richtext > p::before{
        width:32px !important;
        height:32px !important;
        font-size:10px !important;
    }
}

/* ==========================================================
   v1.15.181 — NOTE LAYOUT ACCOMMODATION / MEALS / ACCORDION
   Note Layout only.
   ========================================================== */

/* End control: closed = +, open = −. Draw it with CSS so the
   symbol remains reliable regardless of text/font rendering. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon{
    position:relative !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    visibility:visible !important;
    opacity:1 !important;
    font-size:0 !important;
    color:transparent !important;
    width:36px !important;
    height:36px !important;
    min-width:36px !important;
    flex:0 0 36px !important;
    border:1.25px solid #e4ae52 !important;
    border-radius:50% !important;
    background:#fff !important;
    overflow:visible !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon::before,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon::after{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    display:block !important;
    background:#c57b00 !important;
    transform:translate(-50%,-50%) !important;
    border:0 !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon::before{
    width:12px !important;
    height:1.5px !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary .roby-note-plus-icon::after{
    width:1.5px !important;
    height:12px !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-day.is-open .roby-note-summary .roby-note-plus-icon::after{
    display:none !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-day:not(.is-open) .roby-note-summary .roby-note-plus-icon::after{
    display:block !important;
}

/* Accommodation gallery: exactly two equal thumbnails. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-gallery{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-thumb{
    position:relative !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-gallery-plus{
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    transform:translate(-50%,-50%) !important;
    width:34px !important;
    height:34px !important;
    border:2px solid #fff !important;
    border-radius:50% !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    color:#fff !important;
    font-size:24px !important;
    font-weight:300 !important;
    line-height:1 !important;
    background:rgba(0,0,0,.20) !important;
    pointer-events:none !important;
    box-sizing:border-box !important;
}

/* Meals belong to the left media column, directly below the stay. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-meals-under-accommodation,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-meals-under-image{
    margin:16px 0 0 !important;
    padding:16px 18px 18px !important;
    border-top:1px solid rgba(17,17,17,.08) !important;
    background:#fff !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation .roby-note-meals-under-accommodation{
    margin-left:-18px !important;
    margin-right:-18px !important;
    margin-bottom:-20px !important;
}

/* The final day intentionally has no accommodation/photo. Its meals
   remain with its final-day content, while the tab starts closed unless
   the visitor explicitly opens it. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-final-meals{
    margin-top:18px !important;
}

/* Keep the requested breathing room for every opened panel, including
   the true final day. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-day.is-open > .roby-note-detail{
    margin-top:10px !important;
}


/* ==========================================================
   v1.15.182 — NOTE LAYOUT TYPOGRAPHY / ACCOMMODATION ALIGNMENT
   Note Layout only.
   ========================================================== */

/* Safari Activities and Meals both use the configured Title Section typography. */
.safari-hub-itinerary.roby-layout-note-layout[data-typography-mode="custom"] .roby-note-activities > h4,
.safari-hub-itinerary.roby-layout-note-layout[data-typography-mode="custom"] .roby-note-meals h4{
    font-family:var(--roby-font-other-heading,var(--roby-font-heading,inherit)) !important;
    font-size:var(--roby-other-heading-size,22px) !important;
    font-weight:var(--roby-other-heading-weight,600) !important;
    line-height:var(--roby-other-heading-line-height,1.3) !important;
    letter-spacing:var(--roby-other-heading-letter-spacing,0px) !important;
    color:var(--roby-section-heading-color,#171717) !important;
}

/* Accommodation name: uppercase, but deliberately uses Body Font settings. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-name{
    margin:0 0 12px !important;
    padding:0 !important;
    font-family:var(--roby-font-body,var(--roby-body-font,inherit)) !important;
    font-size:var(--roby-body-size,16px) !important;
    font-weight:var(--roby-body-weight,400) !important;
    line-height:var(--roby-body-line-height,1.6) !important;
    letter-spacing:var(--roby-body-letter-spacing,0px) !important;
    color:var(--roby-body-color,#171717) !important;
    text-transform:uppercase !important;
}

/* Keep accommodation name, images and meals on one clean left edge. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation{
    padding-left:18px !important;
    padding-right:18px !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-name,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-gallery,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation .roby-note-meals-under-accommodation{
    margin-left:0 !important;
    margin-right:0 !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation .roby-note-meals-under-accommodation{
    padding-left:0 !important;
    padding-right:0 !important;
    margin-bottom:0 !important;
}

/* White + overlay is shown on both accommodation thumbnails. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-thumb .roby-note-gallery-plus{
    display:flex !important;
}


/* ==========================================================
   v1.15.183 — NOTE LAYOUT ACCOMMODATION LEFT-EDGE ALIGNMENT
   Keep accommodation name, both photos and Meals on the exact
   same left edge. Note Layout only.
   ========================================================== */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation{
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-name,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-gallery,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation .roby-note-meals-under-accommodation{
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    width:100% !important;
    max-width:none !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-gallery{
    justify-items:stretch !important;
    align-items:stretch !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-thumb{
    margin:0 !important;
    padding:0 !important;
    width:100% !important;
    max-width:none !important;
    justify-self:stretch !important;
    box-sizing:border-box !important;
}

/* ==========================================================
   v1.15.184 — NOTE LAYOUT TRUE LEFT-EDGE ALIGNMENT
   Accommodation name, accommodation photos and Meals all start
   from the exact same left edge of the media column.
   Note Layout only.
   ========================================================== */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-name,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-gallery,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation .roby-note-meals-under-accommodation{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    transform:none !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-gallery{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    justify-content:stretch !important;
    justify-items:stretch !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-thumb{
    margin:0 !important;
    padding:0 !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    transform:none !important;
    justify-self:stretch !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation .roby-note-meals-under-accommodation{
    margin-top:16px !important;
    margin-bottom:0 !important;
}

/* ==========================================================
   v1.15.185 — NOTE LAYOUT CONSISTENT 10PX LEFT INSET
   Accommodation name, both accommodation images, divider,
   Meals title and meal items share one 10px left edge.
   Note Layout only.
   ========================================================== */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding-left:10px !important;
    padding-right:10px !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-name,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-gallery,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation .roby-note-meals-under-accommodation{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    transform:none !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-gallery{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:12px !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation-thumb{
    margin:0 !important;
    padding:0 !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation .roby-note-meals-under-accommodation{
    margin-top:16px !important;
    margin-bottom:0 !important;
    border-top:1px solid rgba(17,17,17,.08) !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation .roby-note-meals-under-accommodation > *{
    margin-left:0 !important;
}


/* ==========================================================
   v1.15.186 — NOTE LAYOUT ACCOMMODATION GALLERY HARD ALIGNMENT
   Force the gallery itself and its first thumbnail to begin on
   the same 10px inset line as accommodation name and Meals.
   Note Layout only.
   ========================================================== */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation{
    padding-left:10px !important;
    padding-right:10px !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation > .roby-note-accommodation-name,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation > .roby-note-accommodation-gallery,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation > .roby-note-meals-under-accommodation{
    margin-inline:0 !important;
    padding-inline:0 !important;
    inset-inline:0 !important;
    left:0 !important;
    right:auto !important;
    transform:none !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation > .roby-note-accommodation-gallery{
    position:relative !important;
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:12px !important;
    justify-content:start !important;
    justify-items:stretch !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation > .roby-note-accommodation-gallery > .roby-note-accommodation-thumb{
    margin:0 !important;
    padding:0 !important;
    left:0 !important;
    transform:none !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    justify-self:stretch !important;
}

/* ==========================================================
   v1.15.187 — NOTE LAYOUT MEDIA WIDTH / DEFAULT DAY STATE
   Keep Day image and the two accommodation images on the same
   10px inset and exact visual width. Note Layout only.
   ========================================================== */

/* The Day image and accommodation block share the same 10px inset,
   so the two 50/50 accommodation thumbnails together span exactly
   the same width as the Day image. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-media > .roby-note-image{
    width:calc(100% - 20px) !important;
    max-width:calc(100% - 20px) !important;
    margin-left:10px !important;
    margin-right:10px !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation{
    padding-left:10px !important;
    padding-right:10px !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation > .roby-note-accommodation-gallery{
    width:100% !important;
    max-width:100% !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:12px !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-accommodation > .roby-note-accommodation-gallery > .roby-note-accommodation-thumb{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    box-sizing:border-box !important;
}


/* ==========================================================
   v1.15.188 — NOTE LAYOUT ACCOMMODATION WIDTH STRUCTURAL FIX
   Make the accommodation block use the exact same 10px inset
   and usable width as the Day image. The two thumbnails split
   that full width 50/50 with only the gallery gap between them.
   ========================================================== */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-media > .roby-note-accommodation{
    width:calc(100% - 20px) !important;
    max-width:calc(100% - 20px) !important;
    margin-left:10px !important;
    margin-right:10px !important;
    padding-left:0 !important;
    padding-right:0 !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-media > .roby-note-accommodation > .roby-note-accommodation-name,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-media > .roby-note-accommodation > .roby-note-accommodation-gallery,
.safari-hub-itinerary.roby-layout-note-layout .roby-note-media > .roby-note-accommodation > .roby-note-meals-under-accommodation{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-media > .roby-note-accommodation > .roby-note-accommodation-gallery{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:12px !important;
    justify-content:stretch !important;
    align-items:stretch !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-media > .roby-note-accommodation > .roby-note-accommodation-gallery > .roby-note-accommodation-thumb{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
}


/* ==========================================================
   v1.15.189 — NOTE LAYOUT TAB ELEVATION / DEFAULT OPEN / DAY TYPE
   Note Layout only.
   ========================================================== */
/* Give each day tab a clear 10px elevation without changing its size. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-summary{
    box-shadow:0 10px 20px rgba(0,0,0,.08) !important;
    position:relative !important;
    z-index:2 !important;
}

/* DAY label and large day number always honour the saved Day Number & Label fonts. */
.safari-hub-itinerary.roby-layout-note-layout .roby-note-side > strong{
    font-family:var(--roby-font-day-number,var(--roby-font-heading,inherit)) !important;
    font-size:var(--roby-day-number-size,58px) !important;
    font-weight:var(--roby-day-number-weight,600) !important;
    color:var(--roby-day-number-color,#c98a12) !important;
}
.safari-hub-itinerary.roby-layout-note-layout .roby-note-day-word{
    font-family:var(--roby-font-day-label,var(--roby-font-heading,inherit)) !important;
    font-size:var(--roby-day-label-size,11px) !important;
    font-weight:var(--roby-day-label-weight,600) !important;
    letter-spacing:var(--roby-day-label-letter-spacing,1.8px) !important;
    color:var(--roby-day-label-color,#6f675f) !important;
}

/* ==========================================================
   v1.15.190 — NOTE LAYOUT TRUE DEFAULT ACCORDION STATE
   Fix an older final-day expert grid rule that forced the last
   Note Layout panel visible even when the tab was closed.
   Day 1 is the only panel open on initial load.
   ========================================================== */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-day:last-child:not(.is-open) > .roby-note-detail{
        display:none !important;
    }
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-day:last-child.is-open > .roby-note-detail{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
        gap:34px !important;
        align-items:start !important;
    }
}


/* ==========================================================
   v1.15.191 — MOBILE EXPERT STACK + NOTE DESKTOP DAY LABEL
   1) On mobile, keep expert identity above the CTA button so
      long expert names can never be covered by the button.
   2) On desktop Note Layout, show the side marker as DAY 01
      on one line while preserving saved typography variables.
   ========================================================== */

/* Shared final-day Travel Expert: mobile identity first, button second. */
@media(max-width:900px){
    .roby-final-expert-master .roby-final-expert-bottom{
        display:flex !important;
        flex-direction:column !important;
        align-items:stretch !important;
        gap:14px !important;
        width:100% !important;
        box-sizing:border-box !important;
    }
    .roby-final-expert-master .roby-final-expert-identity{
        display:flex !important;
        flex-direction:column !important;
        align-items:flex-start !important;
        gap:8px !important;
        width:100% !important;
        min-width:0 !important;
        box-sizing:border-box !important;
    }
    .roby-final-expert-master .roby-final-expert-name{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        white-space:normal !important;
        flex-wrap:wrap !important;
        overflow:visible !important;
    }
    .roby-final-expert-master .roby-final-expert-divider{
        display:none !important;
    }
    .roby-final-expert-master .roby-final-expert-role{
        width:100% !important;
        margin:0 !important;
    }
    .roby-final-expert-master .roby-final-expert-button{
        position:static !important;
        display:flex !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        box-sizing:border-box !important;
        clear:both !important;
    }
}

/* Note Layout desktop side label: DAY 01 on one line. */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-side{
        display:flex !important;
        flex-direction:row !important;
        align-items:center !important;
        justify-content:center !important;
        gap:7px !important;
        white-space:nowrap !important;
        padding-top:18px !important;
    }
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-day-word,
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-side > strong{
        display:inline-block !important;
        margin:0 !important;
        line-height:1 !important;
    }
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-day-word{
        font-family:var(--roby-font-day-label,var(--roby-font-heading,inherit)) !important;
        font-size:var(--roby-day-label-size,11px) !important;
        font-weight:var(--roby-day-label-weight,600) !important;
        letter-spacing:var(--roby-day-label-letter-spacing,1.8px) !important;
        color:var(--roby-day-label-color,#6f675f) !important;
    }
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-side > strong{
        font-family:var(--roby-font-day-number,var(--roby-font-heading,inherit)) !important;
        font-size:var(--roby-day-number-size,34px) !important;
        font-weight:var(--roby-day-number-weight,600) !important;
        color:var(--roby-day-number-color,#c98a12) !important;
    }
}

/* v1.15.192 — one shared Included / Not Included design across every layout.
   Classic Split, Luxury Timeline, Note Layout and Cinematic all render the
   same approved inclusion/exclusion block without layout-specific overrides. */
.safari-hub-itinerary.roby-universal-inclusions .roby-inclusions-section{
    box-sizing:border-box!important;
    width:min(1180px,100%)!important;
    max-width:1180px!important;
    margin-left:auto!important;
    margin-right:auto!important;
}
.safari-hub-itinerary.roby-universal-inclusions .roby-inclusions-section,
.safari-hub-itinerary.roby-universal-inclusions .roby-inclusion-panel,
.safari-hub-itinerary.roby-universal-inclusions .roby-inclusion-side,
.safari-hub-itinerary.roby-universal-inclusions .roby-inclusion-items,
.safari-hub-itinerary.roby-universal-inclusions .roby-inclusion-item{
    font-family:var(--roby-font-body,inherit);
}
.safari-hub-itinerary.roby-universal-inclusions .roby-inclusion-side h4{
    font-family:var(--roby-font-other-heading,var(--roby-font-heading,inherit))!important;
}
/* Do not let Luxury/Note/Cinematic parent layout rules hide or squeeze the shared block. */
.safari-hub-itinerary.roby-universal-inclusions{
    clear:both!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    overflow:visible!important;
}


/* ==========================================================
   v1.15.193 — NOTE LAYOUT DESKTOP STACKED DAY MARKER
   Restore desktop marker to DAY above 02 while preserving
   the saved Day Label and Day Number typography settings.
   ========================================================== */
@media(min-width:901px){
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-side{
        display:flex !important;
        flex-direction:column !important;
        align-items:center !important;
        justify-content:flex-start !important;
        gap:3px !important;
        white-space:normal !important;
        padding-top:18px !important;
    }
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-day-word,
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-side > strong{
        display:block !important;
        margin:0 !important;
        text-align:center !important;
    }
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-day-word{
        font-family:var(--roby-font-day-label,var(--roby-font-heading,inherit)) !important;
        font-size:var(--roby-day-label-size,11px) !important;
        font-weight:var(--roby-day-label-weight,600) !important;
        line-height:1.2 !important;
        letter-spacing:var(--roby-day-label-letter-spacing,1.8px) !important;
        color:var(--roby-day-label-color,#6f675f) !important;
    }
    .safari-hub-itinerary.roby-layout-note-layout .roby-note-side > strong{
        font-family:var(--roby-font-day-number,var(--roby-font-heading,inherit)) !important;
        font-size:var(--roby-day-number-size,58px) !important;
        font-weight:var(--roby-day-number-weight,600) !important;
        line-height:1 !important;
        color:var(--roby-day-number-color,#c98a12) !important;
    }
}

/* v1.15.196 — shared spacing system. Values come from Settings > Global Spacing. */
.safari-hub-itinerary { --roby-section-spacing:32px; --roby-day-spacing:36px; --roby-activity-spacing:10px; --roby-mobile-spacing:20px; }
.safari-hub-itinerary .roby-note-day,
.safari-hub-itinerary .roby-luxury-day,
.safari-hub-itinerary .roby-day-section,
.safari-hub-itinerary .roby-cinematic-day { margin-bottom:var(--roby-day-spacing); }
.safari-hub-itinerary .roby-note-activities,
.safari-hub-itinerary .roby-luxury-activities,
.safari-hub-itinerary .roby-day-left-section,
.safari-hub-itinerary .roby-cinematic-activities { margin-top:var(--roby-section-spacing); }
.safari-hub-itinerary .roby-activity-numbered-row,
.safari-hub-itinerary .roby-cinematic-activity-item,
.safari-hub-itinerary .roby-note-activity-item { margin-bottom:var(--roby-activity-spacing); }
@media (max-width:767px){
  .safari-hub-itinerary .roby-note-day,
  .safari-hub-itinerary .roby-luxury-day,
  .safari-hub-itinerary .roby-day-section,
  .safari-hub-itinerary .roby-cinematic-day { margin-bottom:var(--roby-mobile-spacing); }
}

/* v1.15.201 — Safari Overview + Route Map */
.roby-safari-overview{margin:0 0 34px;background:#fff;border:1px solid rgba(20,20,20,.08);border-radius:14px;overflow:hidden;box-shadow:0 14px 34px rgba(0,0,0,.055);font-family:var(--safari-custom-body-font,var(--safari-admin-body-font,inherit));color:var(--roby-overview-dark,#171717)}
.roby-safari-overview-head{display:flex;justify-content:space-between;gap:28px;align-items:flex-end;padding:26px 28px 18px;border-bottom:1px solid rgba(20,20,20,.08)}
.roby-overview-kicker{display:block;color:var(--roby-overview-accent);font-size:11px;line-height:1.2;font-weight:700;letter-spacing:1.8px;margin-bottom:7px}
.roby-safari-overview h2{margin:0;font-family:var(--safari-other-heading-font,var(--safari-admin-h2-font,inherit));font-size:clamp(26px,3vw,40px);line-height:1.12;color:var(--roby-overview-dark)}
.roby-overview-route-summary{max-width:55%;font-size:14px;line-height:1.5;text-align:right;color:rgba(20,20,20,.7)}
.roby-overview-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid rgba(20,20,20,.08)}
.roby-overview-fact{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:10px;padding:18px 22px;border-right:1px solid rgba(20,20,20,.08)}
.roby-overview-fact:last-child{border-right:0}
.roby-overview-fact-icon{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:color-mix(in srgb,var(--roby-overview-accent) 12%,#fff);color:var(--roby-overview-accent);font-size:18px;font-weight:700}
.roby-overview-fact strong{font-size:15px;line-height:1.25}.roby-overview-fact small{font-size:12px;line-height:1.35;color:#777;margin-top:3px}
.roby-overview-grid{display:grid;grid-template-columns:minmax(260px,31%) 1fr;min-height:420px}.roby-overview-grid.roby-overview-no-map{grid-template-columns:1fr}
.roby-route-stops{padding:18px 20px;background:color-mix(in srgb,var(--roby-overview-accent) 4%,#fff);overflow:auto}
.roby-route-stop{position:relative;display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start;padding:10px 0}
.roby-route-stop:not(:last-child):after{content:"";position:absolute;left:20px;top:46px;bottom:-8px;width:1px;background:color-mix(in srgb,var(--roby-overview-accent) 45%,#ddd)}
.roby-route-stop-number{position:relative;z-index:1;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--roby-overview-accent);color:#fff;font-size:12px;font-weight:700;letter-spacing:.5px}
.roby-route-stop strong{display:block;font-size:15px;line-height:1.35;margin-top:2px}.roby-route-stop small{display:block;color:#777;font-size:12px;line-height:1.4;margin-top:3px}
.roby-route-map-wrap{position:relative;min-height:420px;background:#eee}.roby-safari-route-map{width:100%;height:100%;min-height:420px;z-index:1}
.roby-map-legend{position:absolute;z-index:500;left:16px;bottom:16px;display:flex;gap:14px;flex-wrap:wrap;background:rgba(255,255,255,.94);padding:9px 12px;border-radius:8px;box-shadow:0 5px 18px rgba(0,0,0,.12);font-size:11px}
.roby-map-legend span{display:flex;align-items:center;gap:6px}.roby-map-dot{width:9px;height:9px;border-radius:50%;background:var(--roby-overview-accent)}.roby-map-line{width:21px;height:0;border-top:2px dashed var(--roby-overview-accent)}
.roby-route-marker{display:grid!important;place-items:center!important;width:32px!important;height:32px!important;border-radius:50%!important;background:var(--marker-accent,#c3891b)!important;color:#fff!important;border:2px solid #fff!important;box-shadow:0 3px 10px rgba(0,0,0,.25)!important;font-size:12px!important;font-weight:700!important}

/* v1.15.201 — Safari Overview typography follows the plugin Site Fonts settings. */
.roby-safari-overview :where(p,small,span,div){font-family:var(--safari-custom-body-font,var(--safari-admin-body-font,inherit))}
.roby-safari-overview :where(h2,h3,h4,.roby-route-stop strong){font-family:var(--safari-other-heading-font,var(--safari-admin-h2-font,inherit))}
.roby-overview-kicker,.roby-route-stop-number,.roby-overview-fact strong{font-family:var(--safari-custom-body-font,var(--safari-admin-body-font,inherit))}
@media(max-width:900px){.roby-safari-overview-head{align-items:flex-start;flex-direction:column}.roby-overview-route-summary{max-width:none;text-align:left}.roby-overview-grid{grid-template-columns:1fr}.roby-route-stops{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.roby-route-stop:not(:last-child):after{display:none}.roby-route-map-wrap,.roby-safari-route-map{min-height:360px}}
@media(max-width:640px){.roby-safari-overview{border-radius:10px}.roby-safari-overview-head{padding:20px 18px 15px}.roby-overview-facts{grid-template-columns:1fr}.roby-overview-fact{border-right:0;border-bottom:1px solid rgba(20,20,20,.08);padding:14px 18px}.roby-overview-fact:last-child{border-bottom:0}.roby-route-stops{grid-template-columns:1fr;padding:12px 16px}.roby-route-map-wrap,.roby-safari-route-map{min-height:320px}.roby-overview-route-summary{font-size:13px}}


/* v1.15.202 — Safari Overview typography uses the exact plugin font settings even when the overview sits outside a layout wrapper. */
.roby-safari-overview,
.roby-safari-overview :where(p,small,span,div,li,a){
  font-family:var(--roby-font-body,var(--safari-custom-body-font,var(--safari-admin-body-font,inherit))) !important;
}
.roby-safari-overview :where(h1,h2,h3,h4,h5,h6,.roby-route-stop strong){
  font-family:var(--roby-font-heading,var(--roby-font-other-heading,var(--safari-other-heading-font,var(--safari-admin-h2-font,inherit)))) !important;
}
.roby-safari-overview .roby-overview-kicker,
.roby-safari-overview .roby-route-stop-number,
.roby-safari-overview .roby-overview-fact strong{
  font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit)) !important;
}


/* v1.15.203 — premium safari route-map presentation */
.roby-safari-route-map .leaflet-control-layers{
  border:0!important;
  border-radius:7px!important;
  box-shadow:0 4px 14px rgba(0,0,0,.16)!important;
  overflow:hidden;
  padding:0!important;
  background:#fff!important;
}
.roby-safari-route-map .leaflet-control-layers-list{display:flex!important;margin:0!important;padding:0!important}
.roby-safari-route-map .leaflet-control-layers-base label{display:inline-flex!important;align-items:center;margin:0!important;padding:7px 12px!important;font-size:12px!important;font-weight:700!important;cursor:pointer}
.roby-safari-route-map .leaflet-control-layers-base label:has(input:checked){background:var(--roby-overview-dark,#173f36)!important;color:#fff!important}
.roby-safari-route-map .leaflet-control-layers-base input{display:none!important}
.roby-safari-route-map .leaflet-control-layers-separator{display:none!important}
.roby-safari-route-map .leaflet-control-zoom{border:0!important;box-shadow:0 4px 14px rgba(0,0,0,.15)!important}
.roby-safari-route-map .leaflet-control-zoom a{width:32px!important;height:32px!important;line-height:30px!important;border-color:#eee!important;color:#111!important}
.roby-route-marker-wrap{background:transparent!important;border:0!important;overflow:visible!important;white-space:nowrap!important}
.roby-route-marker-wrap .roby-route-marker{display:inline-grid!important;vertical-align:middle!important}
.roby-route-marker-label{display:inline-block!important;vertical-align:middle!important;margin-left:8px!important;padding:4px 7px!important;border-radius:4px!important;background:rgba(255,255,255,.82)!important;color:#161616!important;box-shadow:0 1px 4px rgba(0,0,0,.10)!important;font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit))!important;font-size:12px!important;font-weight:400!important;line-height:1.15!important}
.roby-route-plane-wrap{background:transparent!important;border:0!important}
.roby-route-plane{display:grid!important;place-items:center!important;width:28px!important;height:28px!important;color:#111!important;font-size:21px!important;line-height:1!important;filter:drop-shadow(0 2px 2px rgba(255,255,255,.9))}
.roby-map-plane{font-style:normal;font-size:15px;line-height:1;color:#111}
.roby-map-legend{gap:12px!important}
.roby-map-legend span{font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit))!important}
@media(max-width:640px){
  .roby-route-marker-label{font-size:10px!important;margin-left:5px!important;padding:3px 5px!important;max-width:105px!important;overflow:hidden;text-overflow:ellipsis}
  .roby-safari-route-map .leaflet-control-layers-base label{padding:6px 9px!important;font-size:11px!important}
}

/* v1.15.204 — Mapbox-first Safari Overview styling */
.roby-safari-route-map .mapboxgl-canvas{outline:0}
.roby-safari-route-map .mapboxgl-ctrl-top-right{top:12px;right:12px}
.roby-safari-route-map .mapboxgl-ctrl-group{border-radius:8px!important;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.16)!important}
.roby-safari-route-map .mapboxgl-ctrl-group button{width:34px!important;height:34px!important}
.roby-safari-route-map .mapboxgl-popup-content{font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit));font-size:13px;border-radius:8px;padding:10px 12px;box-shadow:0 7px 24px rgba(0,0,0,.16)}
.roby-mapbox-marker-wrap{display:flex;align-items:center;gap:8px;white-space:nowrap;cursor:pointer;transform:translateY(-1px)}
.roby-mapbox-route-marker{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--marker-accent,#c3891b);color:#fff;border:2px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.25);font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit));font-size:12px;font-weight:800;letter-spacing:.3px;flex:0 0 38px}
.roby-mapbox-route-label{display:inline-block;max-width:185px;padding:5px 8px;border-radius:5px;background:rgba(255,255,255,.9);color:var(--roby-overview-dark,#171717);box-shadow:0 2px 7px rgba(0,0,0,.08);font-family:var(--roby-font-heading,var(--safari-other-heading-font,inherit));font-size:12px;font-weight:400;line-height:1.2;white-space:normal}
.roby-mapbox-plane{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#fff;color:var(--roby-overview-dark,#171717);box-shadow:0 3px 10px rgba(0,0,0,.22);font-size:15px;line-height:1;pointer-events:none}
.roby-mapbox-style-toggle{position:absolute;z-index:5;top:12px;left:12px;display:flex;background:#fff;border-radius:7px;box-shadow:0 4px 14px rgba(0,0,0,.16);overflow:hidden}
.roby-mapbox-style-toggle button{appearance:none;border:0;background:#fff;color:#222;padding:8px 13px;font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit));font-size:12px;font-weight:700;cursor:pointer}
.roby-mapbox-style-toggle button.is-active{background:var(--roby-overview-dark,#173f36);color:#fff}
.roby-mapbox-style-toggle button+button{border-left:1px solid #ececec}
@media(max-width:640px){
  .roby-mapbox-route-label{max-width:125px;font-size:11px;padding:4px 6px}
  .roby-mapbox-route-marker{width:34px;height:34px;flex-basis:34px;font-size:11px}
  .roby-mapbox-style-toggle{top:10px;left:10px}
  .roby-mapbox-style-toggle button{padding:7px 10px;font-size:11px}
}


/* v1.15.213 — Mapbox-only configuration state */
.roby-safari-route-map.roby-mapbox-required{display:grid;place-items:center;min-height:430px;background:#f7f4ee;border:1px solid rgba(0,0,0,.08);}
.roby-mapbox-required-inner{max-width:520px;padding:34px;text-align:center;font-family:var(--roby-font-body,var(--safari-custom-body-font,inherit));color:#252525;}
.roby-mapbox-required-inner strong{display:block;margin-bottom:8px;font-family:var(--roby-font-heading,var(--safari-other-heading-font,inherit));font-size:20px;line-height:1.25;}
.roby-mapbox-required-inner span{display:block;font-size:14px;line-height:1.6;color:#666;}

/* =========================================================
   v1.15.214 — Safari Overview route connector refinement
   Shared by every itinerary layout. The connector runs on the
   exact vertical centre axis of the numbered day circles and is
   rendered as a light dotted accent rail rather than a solid line.
   ========================================================= */
.roby-safari-overview .roby-route-stop:not(:last-child)::after{
  content:"" !important;
  position:absolute !important;
  left:20px !important;
  top:20px !important;
  bottom:-20px !important;
  width:1px !important;
  background:repeating-linear-gradient(
    to bottom,
    color-mix(in srgb,var(--roby-overview-accent) 72%,transparent) 0 2px,
    transparent 2px 7px
  ) !important;
  z-index:0 !important;
  transform:translateX(-.5px) !important;
}
.roby-safari-overview .roby-route-stop-number{
  z-index:2 !important;
}
@media(max-width:900px){
  .roby-safari-overview .roby-route-stop:not(:last-child)::after{
    display:block !important;
  }
}
@media(max-width:640px){
  .roby-safari-overview .roby-route-stop:not(:last-child)::after{
    left:20px !important;
  }
}

/* =========================================================
   v1.15.215 — Safari Overview connector axis correction
   Keep the thin dotted rail exactly on the centre axis of the
   40px day badge. It exists only BETWEEN badges: nothing above
   Day 01 and nothing below the final day.
   ========================================================= */
.roby-safari-overview .roby-route-stop{
  grid-template-columns:40px minmax(0,1fr) !important;
}
.roby-safari-overview .roby-route-stop-number{
  width:40px !important;
  height:40px !important;
  margin-left:0 !important;
  margin-right:0 !important;
  position:relative !important;
  z-index:2 !important;
}
.roby-safari-overview .roby-route-stop::after{
  content:none !important;
}
.roby-safari-overview .roby-route-stop:not(:last-child)::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  left:19.5px !important;
  top:50px !important;
  bottom:-10px !important;
  width:1px !important;
  background:repeating-linear-gradient(
    to bottom,
    color-mix(in srgb,var(--roby-overview-accent) 68%,transparent) 0 2px,
    transparent 2px 7px
  ) !important;
  transform:none !important;
  z-index:0 !important;
  pointer-events:none !important;
}
.roby-safari-overview .roby-route-stop:first-child::before,
.roby-safari-overview .roby-route-stop:last-child::before{
  content:none !important;
}
@media(max-width:900px){
  .roby-safari-overview .roby-route-stop:not(:last-child)::after{
    display:block !important;
    left:19.5px !important;
    top:50px !important;
    bottom:-10px !important;
  }
}


/* =========================================================
   v1.15.216 — Safari Overview route list uniformity
   Prevent layout-specific itinerary styles (especially Classic/Cinematic
   wrappers) from shifting the route badge away from the connector axis.
   Keep one identical route-list geometry in every itinerary layout.
   ========================================================= */
.safari-hub-itinerary .roby-safari-overview .roby-route-stop{
  position:relative !important;
  display:grid !important;
  grid-template-columns:40px minmax(0,1fr) !important;
  gap:12px !important;
  align-items:start !important;
  padding:10px 0 !important;
  margin:0 !important;
  border-bottom:0 !important;
  cursor:default !important;
  transition:none !important;
  background:transparent !important;
}
.safari-hub-itinerary .roby-safari-overview .roby-route-stop:hover,
.safari-hub-itinerary .roby-safari-overview .roby-route-stop.is-active{
  background:transparent !important;
}
.safari-hub-itinerary .roby-safari-overview .roby-route-stop-number{
  display:grid !important;
  place-items:center !important;
  justify-self:start !important;
  align-self:start !important;
  width:40px !important;
  height:40px !important;
  min-width:40px !important;
  min-height:40px !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
  border-radius:50% !important;
  position:relative !important;
  z-index:2 !important;
}
.safari-hub-itinerary .roby-safari-overview .roby-route-stop::after{
  content:none !important;
}
.safari-hub-itinerary .roby-safari-overview .roby-route-stop:not(:last-child)::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  left:19.5px !important;
  top:50px !important;
  bottom:-10px !important;
  width:1px !important;
  background:repeating-linear-gradient(
    to bottom,
    color-mix(in srgb,var(--roby-overview-accent) 68%,transparent) 0 2px,
    transparent 2px 7px
  ) !important;
  transform:none !important;
  z-index:0 !important;
  pointer-events:none !important;
}
.safari-hub-itinerary .roby-safari-overview .roby-route-stop:first-child::before,
.safari-hub-itinerary .roby-safari-overview .roby-route-stop:last-child::before{
  content:none !important;
}

/* =========================================================
   v1.15.217 — Safari Overview height independence
   The route-day list no longer determines the map height. Long
   itineraries scroll inside the route list while the map keeps a
   controlled, premium viewing height across every itinerary layout.
   ========================================================= */
.safari-hub-itinerary .roby-safari-overview .roby-overview-grid{
  align-items:start !important;
  min-height:0 !important;
}
.safari-hub-itinerary .roby-safari-overview .roby-route-stops{
  height:520px !important;
  max-height:520px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:auto;
  scrollbar-width:thin;
}
.safari-hub-itinerary .roby-safari-overview .roby-route-map-wrap,
.safari-hub-itinerary .roby-safari-overview .roby-safari-route-map{
  height:520px !important;
  min-height:520px !important;
  max-height:520px !important;
}
@media(max-width:900px){
  .safari-hub-itinerary .roby-safari-overview .roby-route-stops{
    height:420px !important;
    max-height:420px !important;
  }
  .safari-hub-itinerary .roby-safari-overview .roby-route-map-wrap,
  .safari-hub-itinerary .roby-safari-overview .roby-safari-route-map{
    height:420px !important;
    min-height:420px !important;
    max-height:420px !important;
  }
}
@media(max-width:640px){
  .safari-hub-itinerary .roby-safari-overview .roby-route-stops{
    height:360px !important;
    max-height:360px !important;
  }
  .safari-hub-itinerary .roby-safari-overview .roby-route-map-wrap,
  .safari-hub-itinerary .roby-safari-overview .roby-safari-route-map{
    height:360px !important;
    min-height:360px !important;
    max-height:360px !important;
  }
}

/* =========================================================
   v1.15.218 — Safari Overview map height truly independent
   The overview may render outside .safari-hub-itinerary, so these rules
   intentionally target the overview directly. The day list scrolls on its
   own and can never stretch the map, including 15–20+ day itineraries.
   ========================================================= */
.roby-safari-overview .roby-overview-grid{
  align-items:start !important;
  min-height:0 !important;
}
.roby-safari-overview .roby-route-stops{
  height:520px !important;
  max-height:520px !important;
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:auto;
  scrollbar-width:thin;
  align-self:start !important;
}
.roby-safari-overview .roby-route-map-wrap{
  height:520px !important;
  min-height:520px !important;
  max-height:520px !important;
  align-self:start !important;
  overflow:hidden !important;
}
.roby-safari-overview .roby-safari-route-map{
  width:100% !important;
  height:520px !important;
  min-height:520px !important;
  max-height:520px !important;
}
@media(max-width:900px){
  .roby-safari-overview .roby-route-stops{
    height:420px !important;
    max-height:420px !important;
  }
  .roby-safari-overview .roby-route-map-wrap,
  .roby-safari-overview .roby-safari-route-map{
    height:420px !important;
    min-height:420px !important;
    max-height:420px !important;
  }
}
@media(max-width:640px){
  .roby-safari-overview .roby-route-stops{
    height:360px !important;
    max-height:360px !important;
  }
  .roby-safari-overview .roby-route-map-wrap,
  .roby-safari-overview .roby-safari-route-map{
    height:360px !important;
    min-height:360px !important;
    max-height:360px !important;
  }
}

/* =========================================================
   v1.15.219 — Clickable Safari Overview route + map sync
   Keep the existing approved geometry; add only restrained
   interaction feedback for route rows and Mapbox day dots.
   ========================================================= */
.roby-safari-overview .roby-route-stop[data-roby-overview-day]{
  cursor:pointer !important;
  border-radius:6px;
  transition:background-color .18s ease,opacity .18s ease !important;
  outline:none;
}
.roby-safari-overview .roby-route-stop[data-roby-overview-day]:hover,
.roby-safari-overview .roby-route-stop[data-roby-overview-day]:focus-visible,
.roby-safari-overview .roby-route-stop[data-roby-overview-day].is-active{
  background:color-mix(in srgb,var(--roby-overview-accent) 7%,transparent) !important;
}
.roby-safari-overview .roby-route-stop[data-roby-overview-day]:focus-visible{
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--roby-overview-accent) 45%,transparent);
}
.roby-mapbox-marker-wrap[data-roby-map-day]{
  cursor:pointer;
  outline:none;
}
.roby-mapbox-marker-wrap[data-roby-map-day] .roby-mapbox-route-marker{
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.roby-mapbox-marker-wrap[data-roby-map-day]:hover .roby-mapbox-route-marker,
.roby-mapbox-marker-wrap[data-roby-map-day]:focus-visible .roby-mapbox-route-marker,
.roby-mapbox-marker-wrap[data-roby-map-day].is-active .roby-mapbox-route-marker{
  transform:scale(1.08);
  border-color:#fff;
  box-shadow:0 5px 16px rgba(0,0,0,.32),0 0 0 3px color-mix(in srgb,var(--marker-accent,#c3891b) 28%,transparent);
}
@media(prefers-reduced-motion:reduce){
  .roby-safari-overview .roby-route-stop[data-roby-overview-day],
  .roby-mapbox-marker-wrap[data-roby-map-day] .roby-mapbox-route-marker{transition:none !important;}
}


/* =========================================================
   v1.15.220 — Subtle Safari Overview route animation
   Route draws once when the map enters view; numbered dots
   appear progressively. Reduced-motion users see it instantly.
   ========================================================= */
.roby-mapbox-marker-wrap[data-roby-map-day]{
  opacity:0;
  transform:scale(.82);
  transition:opacity .28s ease,transform .32s cubic-bezier(.2,.75,.25,1) !important;
}
.roby-mapbox-marker-wrap[data-roby-map-day].is-route-visible{
  opacity:1;
  transform:scale(1);
}
@media(prefers-reduced-motion:reduce){
  .roby-mapbox-marker-wrap[data-roby-map-day]{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

/* =========================================================
   v1.15.222 — Dedicated PDF-ready itinerary document.
   Hidden on screen; printed from a temporary body-level stage.
   ========================================================= */
.roby-pdf-document{display:none !important;}
.roby-pdf-export-toolbar{display:flex;justify-content:flex-end;margin:0 0 18px;padding:0;}
.roby-pdf-export-button{appearance:none;border:1px solid color-mix(in srgb,var(--roby-active,#c3891b) 42%,#d8d2c9);background:#fff;color:#1b1b1b;min-height:44px;padding:10px 16px;display:inline-flex;align-items:center;gap:9px;font:inherit;font-weight:600;cursor:pointer;border-radius:3px;transition:background .18s ease,border-color .18s ease,transform .18s ease;}
.roby-pdf-export-button:hover,.roby-pdf-export-button:focus-visible{background:#faf7f2;border-color:var(--roby-active,#c3891b);outline:none;}
.roby-pdf-export-button:active{transform:translateY(1px);}
.roby-pdf-export-icon{font-size:18px;line-height:1;color:var(--roby-active,#c3891b);}
.roby-pdf-print-stage{display:none;}
@media(max-width:640px){.roby-pdf-export-toolbar{justify-content:stretch}.roby-pdf-export-button{width:100%;justify-content:center}}

@media print{
  @page{size:A4;margin:14mm 13mm 16mm;}
  body.roby-pdf-exporting{background:#fff !important;}
  body.roby-pdf-exporting > *:not(.roby-pdf-print-stage){display:none !important;}
  body.roby-pdf-exporting .roby-pdf-print-stage{display:block !important;position:static !important;width:100% !important;margin:0 !important;padding:0 !important;background:#fff !important;}
  body.roby-pdf-exporting .roby-pdf-document.is-print-copy{display:block !important;color:#171717 !important;font-family:Arial,Helvetica,sans-serif !important;font-size:10.5pt;line-height:1.52;--roby-pdf-accent:#c3891b;}
  .roby-pdf-cover{padding:8mm 0 9mm;border-bottom:1.5px solid var(--roby-pdf-accent);margin-bottom:8mm;break-after:avoid;}
  .roby-pdf-kicker{display:block;font-size:8pt;letter-spacing:2px;font-weight:700;color:var(--roby-pdf-accent);margin-bottom:3mm;}
  .roby-pdf-cover h1{font-size:26pt;line-height:1.1;margin:0 0 5mm;color:#171717;font-family:Georgia,'Times New Roman',serif;font-weight:600;}
  .roby-pdf-summary{display:flex;gap:5mm;align-items:flex-start;font-size:9.5pt;color:#57514b;}
  .roby-pdf-summary strong{color:#171717;white-space:nowrap;}
  .roby-pdf-day{padding:0 0 8mm;margin:0 0 8mm;border-bottom:1px solid #ddd7cf;break-inside:auto;}
  .roby-pdf-day-head{display:grid;grid-template-columns:14mm 1fr;gap:4mm;align-items:start;margin-bottom:4mm;break-after:avoid;}
  .roby-pdf-day-number{width:12mm;height:12mm;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--roby-pdf-accent);color:#fff;font-weight:700;font-size:9pt;}
  .roby-pdf-day-head small{display:block;font-size:7.5pt;letter-spacing:1.2px;color:#746c65;margin:0 0 1mm;}
  .roby-pdf-day-head h2{font-size:17pt;line-height:1.18;margin:0;color:#171717;font-family:Georgia,'Times New Roman',serif;font-weight:600;}
  .roby-pdf-day-photo{margin:0 0 5mm;break-inside:avoid;}
  .roby-pdf-day-photo img{display:block;width:100%;height:68mm;object-fit:cover;border-radius:1.5mm;}
  .roby-pdf-copy p{margin:0 0 3.2mm;}
  .roby-pdf-copy ul,.roby-pdf-list-section ul{margin:2mm 0 0 5mm;padding:0;}
  .roby-pdf-copy li,.roby-pdf-list-section li{margin:0 0 1.7mm;}
  .roby-pdf-subsection{margin-top:5mm;break-inside:avoid-page;}
  .roby-pdf-subsection h3,.roby-pdf-info-card h3{font-size:10pt;letter-spacing:.6px;text-transform:uppercase;margin:0 0 2.5mm;color:var(--roby-pdf-accent);}
  .roby-pdf-info-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:5mm;margin-top:5mm;break-inside:avoid;}
  .roby-pdf-info-card{border-top:1px solid #d8d1c8;padding-top:3mm;}
  .roby-pdf-info-card strong{display:block;margin-bottom:2.5mm;}
  .roby-pdf-accommodation-images{display:grid;grid-template-columns:repeat(3,1fr);gap:2mm;margin-top:3mm;}
  .roby-pdf-accommodation-images img{width:100%;height:27mm;object-fit:cover;display:block;border-radius:1mm;}
  .roby-pdf-list-section{margin:8mm 0;padding:6mm;border:1px solid #ddd7cf;break-inside:avoid;}
  .roby-pdf-list-section h2{font-size:15pt;margin:0 0 3mm;font-family:Georgia,'Times New Roman',serif;}
  .roby-pdf-expert{margin-top:10mm;padding-top:5mm;border-top:1.5px solid var(--roby-pdf-accent);display:grid;gap:1mm;break-inside:avoid;}
  .roby-pdf-expert span{font-size:7pt;letter-spacing:1.6px;color:var(--roby-pdf-accent);font-weight:700;}
  .roby-pdf-expert strong{font-size:13pt;}
  .roby-pdf-expert small{font-size:8.5pt;color:#69615a;}
  a{color:inherit !important;text-decoration:none !important;}
}

/* =========================================================
   v1.15.223 — Share Itinerary
   Shared utility controls for WhatsApp, email and Copy Link.
   ========================================================= */
.roby-itinerary-utility-bar{
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  gap:12px;
  flex-wrap:wrap;
  margin:0 0 18px;
}
.roby-itinerary-utility-bar .roby-pdf-export-toolbar{margin:0;padding:0;}
.roby-share-itinerary{
  --roby-share-accent:#c3891b;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
  position:relative;
  font:inherit;
}
.roby-share-itinerary-label{
  font-size:12px;
  line-height:1.2;
  font-weight:600;
  letter-spacing:.04em;
  color:#5f5952;
  margin-right:2px;
}
.roby-share-itinerary-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.roby-share-action{
  appearance:none;
  text-decoration:none !important;
  border:1px solid #d8d2c9;
  background:#fff;
  color:#1b1b1b !important;
  min-height:44px;
  padding:9px 13px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  font:inherit;
  font-size:13px;
  line-height:1;
  font-weight:600;
  cursor:pointer;
  border-radius:3px;
  box-shadow:none;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
.roby-share-action:hover,.roby-share-action:focus-visible{
  background:#faf7f2;
  border-color:var(--roby-share-accent);
  color:#1b1b1b !important;
  outline:none;
}
.roby-share-action:active{transform:translateY(1px);}
.roby-share-action-icon{
  min-width:18px;
  color:var(--roby-share-accent);
  font-size:12px;
  font-weight:700;
  line-height:1;
  text-align:center;
}
.roby-share-copy-status{
  position:absolute;
  right:0;
  top:calc(100% + 4px);
  min-height:14px;
  color:#5f5952;
  font-size:11px;
  line-height:1.2;
}
@media(max-width:760px){
  .roby-itinerary-utility-bar{display:grid;grid-template-columns:1fr;width:100%;}
  .roby-itinerary-utility-bar .roby-pdf-export-toolbar{width:100%;}
  .roby-share-itinerary{justify-content:flex-start;width:100%;}
  .roby-share-itinerary-label{width:100%;margin:0 0 2px;}
  .roby-share-itinerary-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;}
  .roby-share-action{width:100%;padding-left:8px;padding-right:8px;}
}
@media(max-width:460px){
  .roby-share-itinerary-actions{grid-template-columns:1fr;}
}

/* v1.15.224 — official WhatsApp icon inside the Share Itinerary action. */
.roby-share-whatsapp-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:19px;
  width:19px;
  height:19px;
}
.roby-share-whatsapp-icon svg{
  display:block;
  width:19px;
  height:19px;
}

/* =========================================================
   v1.15.225 — Premium itinerary action/share bar.
   Keeps utility controls on the site body font, fixes theme
   hover colour conflicts, and gives the actions one unified UI.
   ========================================================= */
.roby-itinerary-utility-bar{
  --roby-utility-accent:var(--roby-active,var(--roby-share-accent,#c3891b));
  width:100%;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
  margin:0 0 22px;
  padding:14px 16px;
  background:#fbfaf7;
  border:1px solid #e6e0d8;
  border-radius:4px;
  font-family:var(--roby-font-body,inherit) !important;
}
.roby-itinerary-utility-bar *{
  font-family:var(--roby-font-body,inherit) !important;
  box-sizing:border-box;
}
.roby-itinerary-utility-bar .roby-pdf-export-toolbar{
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
}
.roby-itinerary-utility-bar .roby-pdf-export-button,
.roby-itinerary-utility-bar .roby-share-action{
  min-height:48px;
  padding:11px 17px;
  border:1px solid #d8d1c8;
  border-radius:3px;
  background:#fff !important;
  color:#26231f !important;
  font-family:var(--roby-font-body,inherit) !important;
  font-size:15px;
  line-height:1.15;
  font-weight:600 !important;
  letter-spacing:0;
  box-shadow:0 1px 0 rgba(25,20,15,.02);
  transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.roby-itinerary-utility-bar .roby-pdf-export-button > *,
.roby-itinerary-utility-bar .roby-share-action > *{
  color:inherit;
}
.roby-itinerary-utility-bar .roby-pdf-export-button:hover,
.roby-itinerary-utility-bar .roby-pdf-export-button:focus-visible,
.roby-itinerary-utility-bar .roby-share-action:hover,
.roby-itinerary-utility-bar .roby-share-action:focus-visible{
  background:#fff !important;
  color:#26231f !important;
  border-color:var(--roby-utility-accent) !important;
  box-shadow:0 5px 16px rgba(32,25,17,.07);
  outline:none !important;
}
.roby-itinerary-utility-bar .roby-pdf-export-button:hover *,
.roby-itinerary-utility-bar .roby-pdf-export-button:focus-visible *,
.roby-itinerary-utility-bar .roby-share-action:hover *,
.roby-itinerary-utility-bar .roby-share-action:focus-visible *{
  color:inherit !important;
  opacity:1 !important;
  visibility:visible !important;
}
.roby-itinerary-utility-bar .roby-pdf-export-button:active,
.roby-itinerary-utility-bar .roby-share-action:active{
  transform:translateY(1px);
  box-shadow:none;
}
.roby-itinerary-utility-bar .roby-pdf-export-icon,
.roby-itinerary-utility-bar .roby-share-action-icon{
  color:var(--roby-utility-accent) !important;
  font-weight:600 !important;
}
.roby-itinerary-utility-bar .roby-pdf-export-icon{
  font-size:20px;
  margin-right:1px;
}
.roby-itinerary-utility-bar .roby-share-whatsapp-icon{
  color:var(--roby-utility-accent) !important;
}
.roby-itinerary-utility-bar .roby-share-itinerary{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  flex:1 1 auto;
  font-family:var(--roby-font-body,inherit) !important;
}
.roby-itinerary-utility-bar .roby-share-itinerary-label{
  margin:0 2px 0 0;
  color:#6e675f;
  font-size:11px;
  line-height:1;
  font-weight:600 !important;
  letter-spacing:.12em;
  text-transform:uppercase;
  white-space:nowrap;
}
.roby-itinerary-utility-bar .roby-share-itinerary-actions{
  gap:8px;
}
.roby-itinerary-utility-bar .roby-share-copy-status{
  top:calc(100% + 7px);
  font-family:var(--roby-font-body,inherit) !important;
}
@media(max-width:900px){
  .roby-itinerary-utility-bar{
    align-items:stretch;
    padding:13px;
  }
  .roby-itinerary-utility-bar .roby-pdf-export-toolbar{width:100%;}
  .roby-itinerary-utility-bar .roby-pdf-export-button{width:100%;justify-content:center;}
  .roby-itinerary-utility-bar .roby-share-itinerary{width:100%;justify-content:flex-start;}
}
@media(max-width:760px){
  .roby-itinerary-utility-bar{display:grid;grid-template-columns:1fr;gap:11px;}
  .roby-itinerary-utility-bar .roby-share-itinerary{display:grid;grid-template-columns:1fr;gap:8px;}
  .roby-itinerary-utility-bar .roby-share-itinerary-label{width:auto;margin:0;}
  .roby-itinerary-utility-bar .roby-share-itinerary-actions{grid-template-columns:repeat(3,minmax(0,1fr));}
  .roby-itinerary-utility-bar .roby-pdf-export-button,
  .roby-itinerary-utility-bar .roby-share-action{font-size:14px;}
}
@media(max-width:520px){
  .roby-itinerary-utility-bar{padding:11px;}
  .roby-itinerary-utility-bar .roby-share-itinerary-actions{grid-template-columns:1fr;}
}


/* v1.15.231 — Safari Overview must never trap page scrolling.
   The route list may scroll internally, but once it reaches either boundary
   the wheel/trackpad gesture chains naturally back to the page. */
.roby-safari-overview .roby-route-stops,
.safari-hub-itinerary .roby-safari-overview .roby-route-stops{
  overscroll-behavior-y:auto !important;
}


/* ==========================================================
   v1.15.236 — CLASSIC FINAL-DAY TO INCLUSIONS SPACING
   Reduce only the visual breathing space after the completed
   Classic itinerary. The locked itinerary dimensions and all
   other layouts remain unchanged.
   ========================================================== */
@media (min-width:768px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        margin-top:calc(10px - var(--roby-safe-final-gap, 0px)) !important;
        padding-top:14px !important;
    }
}
@media (max-width:767px){
    .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
        margin-top:8px !important;
        padding-top:12px !important;
    }
}


/* ==========================================================
   v1.15.237 — CLASSIC TRUE END-OF-ROW GAP COLLAPSE
   The measured unused portion of the final Classic row is removed
   before the shared inclusions block. This does not change the
   sticky/tab scroll mechanics or any other layout.
   ========================================================== */
@media (min-width:768px){
  .safari-hub-itinerary.roby-layout-classic-split .roby-inclusions-section{
    margin-top:calc(12px - var(--roby-safe-final-gap, 0px)) !important;
  }
}

/* ==========================================================
   v1.15.238 — LUXURY TIMELINE ACCOMMODATION PRESENTATION
   Wider main accommodation photograph with a clear full-width
   lodge name overlay. Scoped strictly to Luxury Timeline.
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-feature{
  width:100% !important;
  min-height:0 !important;
  height:auto !important;
  aspect-ratio:auto !important;
  overflow:visible !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
  display:grid !important;
  grid-template-columns:minmax(0, 2.15fr) minmax(150px, .85fr) !important;
  gap:14px !important;
  width:100% !important;
  height:430px !important;
  min-height:430px !important;
  align-items:stretch !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap{
  position:relative !important;
  width:100% !important;
  height:430px !important;
  min-width:0 !important;
  overflow:hidden !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap > .roby-luxury-accommodation-main,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap > .roby-luxury-accommodation-main > img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap > .roby-luxury-accommodation-main > img{
  object-fit:cover !important;
  object-position:center !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
  display:grid !important;
  grid-template-columns:1fr !important;
  grid-template-rows:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
  width:100% !important;
  height:430px !important;
  min-width:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb{
  position:relative !important;
  overflow:hidden !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout .roby-luxury-accommodation-thumb img{
  object-fit:cover !important;
  object-position:center !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-overlay{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:100% !important;
  max-width:none !important;
  min-height:64px !important;
  padding:18px 22px !important;
  display:flex !important;
  align-items:flex-end !important;
  background:linear-gradient(to top,rgba(0,0,0,.78),rgba(0,0,0,.48),rgba(0,0,0,0)) !important;
  color:#fff !important;
  box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-overlay strong{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  color:#fff !important;
  font-size:18px !important;
  line-height:1.3 !important;
  font-weight:700 !important;
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  word-break:normal !important;
}
@media (max-width:900px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
    grid-template-columns:minmax(0, 1.8fr) minmax(120px, .8fr) !important;
    height:380px !important;
    min-height:380px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
    height:380px !important;
  }
}
@media (max-width:640px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
    grid-template-columns:1fr !important;
    grid-template-rows:auto auto !important;
    height:auto !important;
    min-height:0 !important;
    gap:10px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap{
    height:auto !important;
    aspect-ratio:4/3 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-rows:1fr !important;
    height:130px !important;
    gap:10px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-overlay{
    min-height:58px !important;
    padding:16px 18px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-overlay strong{
    font-size:16px !important;
  }
}

/* ==========================================================
   v1.15.239 — LUXURY TIMELINE: WHERE TO STAY TONIGHT
   Premium full-width accommodation gallery. Luxury only.
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
  grid-column:1 / -1 !important;
  width:100% !important;
  margin-top:8px !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading{
  display:block !important;
  margin:0 0 22px !important;
  padding:0 !important;
  border:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading::before,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading::after{
  display:none !important;
  content:none !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading h4{
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  text-transform:none !important;
  letter-spacing:var(--safari-h4-letter-spacing, normal) !important;
  color:var(--safari-other-heading-color,#171717) !important;
  font-family:var(--safari-other-heading-font,inherit) !important;
  font-size:clamp(28px,3.2vw,46px) !important;
  line-height:1.12 !important;
  font-weight:var(--safari-h4-weight,600) !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
  grid-template-columns:minmax(0,2fr) minmax(260px,1fr) !important;
  gap:14px !important;
  height:520px !important;
  min-height:520px !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
  height:520px !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb{
  border-radius:8px !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus{
  position:absolute !important;
  top:16px !important;
  right:16px !important;
  z-index:5 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:48px !important;
  height:48px !important;
  border-radius:50% !important;
  background:#fff !important;
  box-shadow:0 2px 10px rgba(0,0,0,.14) !important;
  pointer-events:none !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::before{
  content:"" !important;
  position:absolute !important;
  width:18px !important;
  height:2px !important;
  background:#171717 !important;
  border-radius:2px !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span::before{
  transform:rotate(90deg) !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-overlay{
  left:26px !important;
  right:auto !important;
  bottom:24px !important;
  width:auto !important;
  max-width:calc(100% - 52px) !important;
  min-height:0 !important;
  padding:16px 22px !important;
  background:#fff !important;
  color:#171717 !important;
  border-radius:4px !important;
  box-shadow:0 4px 16px rgba(0,0,0,.12) !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-overlay::before,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-overlay::after{
  display:none !important;
  content:none !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-overlay strong{
  color:#171717 !important;
  font-size:17px !important;
  line-height:1.25 !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-meals{
  margin:28px 0 0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-meals h4{
  margin:0 0 16px !important;
  padding:0 !important;
  border:0 !important;
  font-family:var(--safari-other-heading-font,inherit) !important;
  font-size:13px !important;
  line-height:1.3 !important;
  font-weight:700 !important;
  letter-spacing:.16em !important;
  text-transform:uppercase !important;
  color:var(--safari-other-heading-color,#171717) !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-meal-pills{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:12px !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-meal-pills > span{
  display:inline-flex !important;
  align-items:center !important;
  gap:11px !important;
  min-height:50px !important;
  padding:7px 20px 7px 8px !important;
  border-radius:999px !important;
  background:#fff !important;
  border:1px solid rgba(0,0,0,.06) !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-meal-pills b{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:36px !important;
  height:36px !important;
  border-radius:50% !important;
  background:var(--roby-active,#c3891b) !important;
  color:#fff !important;
  font-size:16px !important;
}
@media(max-width:900px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
    height:440px !important;
    min-height:440px !important;
    grid-template-columns:minmax(0,1.65fr) minmax(210px,.85fr) !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
    height:440px !important;
  }
}
@media(max-width:640px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading h4{
    font-size:30px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
    height:auto !important;
    min-height:0 !important;
    grid-template-columns:1fr !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap{
    height:auto !important;
    aspect-ratio:4/3 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout > .roby-luxury-accommodation-thumbs{
    height:145px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus{
    width:42px !important;
    height:42px !important;
    top:12px !important;
    right:12px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap .roby-luxury-accommodation-overlay{
    left:14px !important;
    bottom:14px !important;
    max-width:calc(100% - 28px) !important;
    padding:13px 16px !important;
  }
}

/* ==========================================================
   v1.15.240 — LUXURY ACCOMMODATION DEFINITIVE LAYOUT
   Luxury Timeline only. Replaces legacy narrow accommodation
   constraints with the approved full-width premium gallery.
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading{
    margin:0 0 22px !important;
    padding:0 !important;
    border:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading h4{
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    font-family:var(--safari-h4-font-family,inherit) !important;
    font-size:clamp(28px,3vw,42px) !important;
    line-height:1.08 !important;
    font-weight:var(--safari-h4-font-weight,700) !important;
    letter-spacing:var(--safari-h4-letter-spacing,normal) !important;
    text-transform:none !important;
    color:var(--safari-h4-color,#171717) !important;
}
@media (min-width:1000px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
        grid-column:1 / -1 !important;
        grid-row:4 !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        min-height:0 !important;
        margin:34px 0 0 !important;
        padding:0 !important;
        background:transparent !important;
        border:0 !important;
        box-shadow:none !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities{
        grid-column:1 / -1 !important;
        grid-row:5 !important;
        margin-top:28px !important;
        min-height:0 !important;
    }
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card > .roby-luxury-accommodation-feature{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    overflow:visible !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
    display:grid !important;
    grid-template-columns:minmax(0,2fr) minmax(260px,1fr) !important;
    grid-template-rows:480px !important;
    gap:14px !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:480px !important;
    min-height:480px !important;
    max-height:480px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout.roby-luxury-gallery-count-1{
    grid-template-columns:1fr !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main{
    position:relative !important;
    display:block !important;
    width:100% !important;
    height:480px !important;
    min-height:480px !important;
    max-height:480px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    border:0 !important;
    border-radius:8px !important;
    background:transparent !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main > img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
    object-fit:cover !important;
    border-radius:8px !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumbs{
    position:static !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-template-rows:repeat(2,minmax(0,1fr)) !important;
    gap:14px !important;
    width:100% !important;
    height:480px !important;
    min-height:480px !important;
    max-height:480px !important;
    margin:0 !important;
    padding:0 !important;
    transform:none !important;
    overflow:hidden !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-count-2 .roby-luxury-accommodation-thumbs{
    grid-template-rows:1fr !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb{
    position:relative !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    border:0 !important;
    border-radius:8px !important;
    background:transparent !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
    object-fit:cover !important;
    border-radius:8px !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus{
    position:absolute !important;
    top:16px !important;
    right:16px !important;
    z-index:40 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:46px !important;
    height:46px !important;
    padding:0 !important;
    background:#fff !important;
    border:1px solid rgba(0,0,0,.12) !important;
    border-radius:50% !important;
    box-shadow:0 3px 12px rgba(0,0,0,.14) !important;
    pointer-events:none !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay{
    position:absolute !important;
    left:22px !important;
    right:auto !important;
    bottom:20px !important;
    top:auto !important;
    z-index:40 !important;
    display:block !important;
    width:auto !important;
    max-width:calc(100% - 44px) !important;
    min-height:0 !important;
    margin:0 !important;
    padding:14px 20px !important;
    background:#fff !important;
    color:#171717 !important;
    border:0 !important;
    border-radius:4px !important;
    box-shadow:0 3px 12px rgba(0,0,0,.12) !important;
    white-space:normal !important;
    overflow:visible !important;
    transform:none !important;
    box-sizing:border-box !important;
    pointer-events:none !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay strong{
    display:block !important;
    color:#171717 !important;
    font-size:17px !important;
    line-height:1.25 !important;
    font-weight:700 !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
    text-transform:uppercase !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-meals{
    margin:26px 0 0 !important;
    padding:0 !important;
    border:0 !important;
}
@media (max-width:999px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
        width:100% !important;
        margin-top:24px !important;
        padding:0 !important;
        background:transparent !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
        grid-template-columns:minmax(0,1.7fr) minmax(190px,.8fr) !important;
        grid-template-rows:400px !important;
        height:400px !important;
        min-height:400px !important;
        max-height:400px !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumbs{
        height:400px !important;
        min-height:400px !important;
        max-height:400px !important;
    }
}
@media (max-width:640px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading h4{
        font-size:28px !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
        display:grid !important;
        grid-template-columns:1fr !important;
        grid-template-rows:auto auto !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        gap:10px !important;
        overflow:visible !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main{
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        aspect-ratio:4/3 !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumbs{
        display:grid !important;
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        grid-template-rows:150px !important;
        height:150px !important;
        min-height:150px !important;
        max-height:150px !important;
        gap:10px !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-count-2 .roby-luxury-accommodation-thumbs{
        grid-template-columns:1fr !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay{
        left:12px !important;
        bottom:12px !important;
        max-width:calc(100% - 24px) !important;
        padding:11px 14px !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus{
        width:40px !important;
        height:40px !important;
        top:10px !important;
        right:10px !important;
    }
}

/* ==========================================================
   v1.15.241 — LUXURY WHERE TO STAY: FULL-WIDTH MAIN IMAGE
   Final override for Luxury Timeline only.
   Main accommodation image spans the complete content width.
   Supporting images sit beneath it in two equal columns.
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card{
    grid-column:1 / -1 !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-heading h4{
    font-size:var(--safari-h4-font-size,inherit) !important;
    line-height:var(--safari-h4-line-height,inherit) !important;
    font-family:var(--safari-h4-font-family,inherit) !important;
    font-weight:var(--safari-h4-font-weight,inherit) !important;
    letter-spacing:var(--safari-h4-letter-spacing,normal) !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-card > .roby-luxury-accommodation-feature,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
    display:flex !important;
    flex-direction:column !important;
    grid-template-columns:none !important;
    grid-template-rows:none !important;
    gap:12px !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:16 / 7 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main > img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumbs{
    position:static !important;
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-rows:none !important;
    gap:12px !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    overflow:visible !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-count-2 .roby-luxury-accommodation-thumbs{
    grid-template-columns:1fr !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:16 / 6 !important;
    border-radius:8px !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay{
    left:20px !important;
    right:auto !important;
    bottom:20px !important;
    width:auto !important;
    max-width:calc(100% - 40px) !important;
    padding:13px 20px !important;
    white-space:normal !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay strong{
    white-space:normal !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
}
@media (max-width:767px){
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap,
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main{
        aspect-ratio:4 / 3 !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumbs{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:8px !important;
    }
    .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb{
        aspect-ratio:4 / 3 !important;
    }
}

/* ==========================================================
   v1.15.242 — LUXURY ACCOMMODATION FINAL FULL-WIDTH GALLERY
   Accommodation spans the complete Luxury day grid.
   Desktop: wide main image + two vertically stacked images.
   ========================================================== */
@media (min-width:1000px){
  .safari-hub-itinerary.roby-layout-luxury-timeline
  .roby-luxury-day > .roby-luxury-feature-row > .roby-luxury-accommodation-card{
    grid-column:1 / -1 !important;
    grid-row:4 !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:34px 0 0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    overflow:visible !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline
  .roby-luxury-accommodation-card > .roby-luxury-accommodation-feature{
    width:100% !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:auto !important;
    overflow:visible !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline
  .roby-luxury-accommodation-gallery-layout{
    display:grid !important;
    grid-template-columns:minmax(0,2.2fr) minmax(280px,1fr) !important;
    grid-template-rows:520px !important;
    gap:14px !important;
    width:100% !important;
    max-width:none !important;
    height:520px !important;
    min-height:520px !important;
    overflow:hidden !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline
  .roby-luxury-accommodation-main-wrap,
  .safari-hub-itinerary.roby-layout-luxury-timeline
  .roby-luxury-accommodation-main{
    grid-column:1 !important;
    grid-row:1 !important;
    display:block !important;
    width:100% !important;
    max-width:none !important;
    height:520px !important;
    min-height:520px !important;
    max-height:520px !important;
    aspect-ratio:auto !important;
    overflow:hidden !important;
    border-radius:8px !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline
  .roby-luxury-accommodation-main > img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    object-fit:cover !important;
    object-position:center !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline
  .roby-luxury-accommodation-thumbs{
    grid-column:2 !important;
    grid-row:1 !important;
    position:static !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-template-rows:repeat(2,minmax(0,1fr)) !important;
    gap:14px !important;
    width:100% !important;
    height:520px !important;
    min-height:520px !important;
    max-height:520px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline
  .roby-luxury-accommodation-thumb{
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:auto !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:8px !important;
    overflow:hidden !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline
  .roby-luxury-accommodation-thumb img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline
  .roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay{
    left:20px !important;
    right:auto !important;
    bottom:20px !important;
    width:max-content !important;
    max-width:calc(100% - 40px) !important;
    padding:14px 20px !important;
    white-space:nowrap !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline
  .roby-luxury-accommodation-main > .roby-luxury-accommodation-overlay strong{
    display:block !important;
    white-space:nowrap !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
  }

  /* Activities follow the full-width stay section instead of sharing its row. */
  .safari-hub-itinerary.roby-layout-luxury-timeline
  .roby-luxury-day > .roby-luxury-info-row > .roby-luxury-activities{
    grid-column:1 / -1 !important;
    grid-row:5 !important;
  }
}

@media (min-width:768px) and (max-width:999px){
  .safari-hub-itinerary.roby-layout-luxury-timeline
  .roby-luxury-day > .roby-luxury-feature-row > .roby-luxury-accommodation-card{
    grid-column:1 / -1 !important;
    width:100% !important;
    max-width:none !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-gallery-layout{
    display:grid !important;
    grid-template-columns:minmax(0,2fr) minmax(220px,1fr) !important;
    grid-template-rows:440px !important;
    gap:12px !important;
    width:100% !important;
    height:440px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main-wrap,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-main{
    width:100% !important;height:440px !important;min-height:440px !important;max-height:440px !important;aspect-ratio:auto !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumbs{
    position:static !important;display:grid !important;grid-template-columns:1fr !important;grid-template-rows:repeat(2,minmax(0,1fr)) !important;gap:12px !important;width:100% !important;height:440px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-accommodation-thumb{
    width:100% !important;height:100% !important;aspect-ratio:auto !important;
  }
}


/* ==========================================================
   v1.15.243 — LUXURY STAY HARD RESET
   This unique block deliberately neutralizes the accumulated
   legacy accommodation rules. Desktop gallery uses the full
   Luxury day width: 70% main image + 30% stacked side images.
   ========================================================== */
@media (min-width:1000px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-feature-row{
    display:contents !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-feature-row > .roby-luxury-accommodation-card.roby-luxury-stay-v243{
    display:block !important;
    grid-column:1 / -1 !important;
    grid-row:4 !important;
    justify-self:stretch !important;
    align-self:start !important;
    position:relative !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:34px 0 0 !important;
    padding:0 !important;
    inset:auto !important;
    transform:none !important;
    background:transparent !important;
    border:0 !important;
    overflow:visible !important;
    box-sizing:border-box !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v243 .roby-luxury-accommodation-heading{
    display:block !important;
    width:100% !important;
    margin:0 0 20px !important;
    padding:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v243 .roby-luxury-accommodation-heading h4{
    margin:0 !important;
    padding:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v243 > .roby-luxury-accommodation-feature{
    display:block !important;
    position:relative !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    aspect-ratio:auto !important;
    overflow:visible !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v243 .roby-luxury-accommodation-gallery-layout{
    display:grid !important;
    position:relative !important;
    grid-template-columns:minmax(0,7fr) minmax(0,3fr) !important;
    grid-template-rows:520px !important;
    gap:14px !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:520px !important;
    min-height:520px !important;
    max-height:520px !important;
    margin:0 !important;
    padding:0 !important;
    transform:none !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v243 .roby-luxury-accommodation-main-wrap{
    grid-column:1 !important;
    grid-row:1 !important;
    position:relative !important;
    display:block !important;
    width:100% !important;
    height:520px !important;
    min-width:0 !important;
    min-height:520px !important;
    max-width:none !important;
    max-height:520px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v243 .roby-luxury-accommodation-main{
    position:relative !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:8px !important;
    aspect-ratio:auto !important;
    overflow:hidden !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v243 .roby-luxury-accommodation-main > img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-width:100% !important;
    max-width:none !important;
    object-fit:cover !important;
    object-position:center !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v243 .roby-luxury-accommodation-thumbs{
    grid-column:2 !important;
    grid-row:1 !important;
    position:relative !important;
    inset:auto !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-template-rows:repeat(2,minmax(0,1fr)) !important;
    gap:14px !important;
    width:100% !important;
    height:520px !important;
    min-width:0 !important;
    min-height:520px !important;
    max-width:none !important;
    max-height:520px !important;
    margin:0 !important;
    padding:0 !important;
    transform:none !important;
    overflow:hidden !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v243 .roby-luxury-accommodation-thumb{
    position:relative !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:8px !important;
    aspect-ratio:auto !important;
    overflow:hidden !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v243 .roby-luxury-accommodation-thumb img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    object-fit:cover !important;
    object-position:center !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v243 .roby-luxury-accommodation-overlay{
    top:auto !important;
    left:20px !important;
    right:auto !important;
    bottom:20px !important;
    display:block !important;
    width:max-content !important;
    max-width:calc(100% - 40px) !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:14px 20px !important;
    background:#fff !important;
    color:#171717 !important;
    border:0 !important;
    border-radius:4px !important;
    transform:none !important;
    overflow:visible !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v243 .roby-luxury-accommodation-overlay strong{
    display:block !important;
    color:#171717 !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v243 .roby-luxury-stay-meals{
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:26px 0 0 !important;
    padding:0 !important;
  }
}


/* ==========================================================
   v1.15.244 — LUXURY STAY RESPONSIVE WIDTH FIX
   The prior hard reset only started at 1000 CSS px. On many
   desktop/tablet/browser-zoom combinations the itinerary content
   viewport is below that threshold, so legacy narrow rules won.
   This block owns the stay layout from 768px upward.
   ========================================================== */
@media (min-width:768px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
    min-width:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-feature-row{
    display:contents !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-feature-row > .roby-luxury-accommodation-card.roby-luxury-stay-v244{
    display:block !important;
    grid-column:1 / -1 !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:30px 0 0 !important;
    padding:0 !important;
    position:relative !important;
    inset:auto !important;
    transform:none !important;
    align-self:start !important;
    justify-self:stretch !important;
    background:transparent !important;
    border:0 !important;
    overflow:visible !important;
    box-sizing:border-box !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-accommodation-heading,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 > .roby-luxury-accommodation-feature{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    position:relative !important;
    inset:auto !important;
    transform:none !important;
    aspect-ratio:auto !important;
    overflow:visible !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-accommodation-heading{
    margin-top:0 !important;
    margin-bottom:18px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-accommodation-gallery-layout{
    display:grid !important;
    grid-template-columns:minmax(0,7fr) minmax(220px,3fr) !important;
    grid-template-rows:520px !important;
    gap:14px !important;
    width:100% !important;
    min-width:100% !important;
    max-width:none !important;
    height:520px !important;
    min-height:520px !important;
    max-height:520px !important;
    margin:0 !important;
    padding:0 !important;
    position:relative !important;
    inset:auto !important;
    transform:none !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-accommodation-main-wrap{
    grid-column:1 !important; grid-row:1 !important;
    width:100% !important; height:520px !important;
    min-width:0 !important; min-height:520px !important;
    max-width:none !important; max-height:520px !important;
    margin:0 !important; padding:0 !important;
    position:relative !important; inset:auto !important;
    transform:none !important; overflow:hidden !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-accommodation-main{
    display:block !important; position:relative !important;
    width:100% !important; height:100% !important;
    min-width:0 !important; min-height:0 !important;
    max-width:none !important; max-height:none !important;
    margin:0 !important; padding:0 !important;
    border:0 !important; border-radius:8px !important;
    aspect-ratio:auto !important; overflow:hidden !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-accommodation-main > img{
    display:block !important; width:100% !important; height:100% !important;
    min-width:100% !important; max-width:none !important;
    object-fit:cover !important; object-position:center !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-accommodation-thumbs{
    grid-column:2 !important; grid-row:1 !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-template-rows:repeat(2,minmax(0,1fr)) !important;
    gap:14px !important;
    width:100% !important; height:520px !important;
    min-width:0 !important; min-height:520px !important;
    max-width:none !important; max-height:520px !important;
    margin:0 !important; padding:0 !important;
    position:relative !important; inset:auto !important;
    transform:none !important; overflow:hidden !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-accommodation-thumb{
    display:block !important; position:relative !important;
    width:100% !important; height:100% !important;
    min-width:0 !important; min-height:0 !important;
    max-width:none !important; max-height:none !important;
    margin:0 !important; padding:0 !important;
    border:0 !important; border-radius:8px !important;
    aspect-ratio:auto !important; overflow:hidden !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-accommodation-thumb img{
    display:block !important; width:100% !important; height:100% !important;
    max-width:none !important; object-fit:cover !important; object-position:center !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-accommodation-overlay{
    position:absolute !important; left:20px !important; right:auto !important;
    top:auto !important; bottom:20px !important;
    display:block !important; width:auto !important;
    max-width:calc(100% - 40px) !important; height:auto !important;
    min-width:0 !important; min-height:0 !important;
    margin:0 !important; padding:13px 18px !important;
    background:#fff !important; color:#171717 !important;
    border:0 !important; border-radius:4px !important;
    transform:none !important; overflow:visible !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-accommodation-overlay strong{
    display:block !important; color:#171717 !important;
    white-space:normal !important; word-break:normal !important; overflow-wrap:normal !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-stay-meals{
    display:block !important; width:100% !important; height:auto !important;
    min-height:0 !important; margin:24px 0 0 !important; padding:0 !important;
  }
}
@media (min-width:768px) and (max-width:999px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-accommodation-gallery-layout{
    grid-template-columns:minmax(0,2fr) minmax(190px,1fr) !important;
    grid-template-rows:420px !important;
    height:420px !important; min-height:420px !important; max-height:420px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-accommodation-main-wrap,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v244 .roby-luxury-accommodation-thumbs{
    height:420px !important; min-height:420px !important; max-height:420px !important;
  }
}


/* ==========================================================
   v1.15.245 — LUXURY STAY TRUE FULL-WIDTH BREAKOUT
   The Luxury day grid constrains the old feature-row track.
   This version deliberately breaks the stay card out to the
   itinerary viewport, then builds a 70/30 gallery inside it.
   ========================================================== */
@media (min-width:768px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245{
    display:block !important;
    position:relative !important;
    box-sizing:border-box !important;
    width:calc(100vw - 48px) !important;
    max-width:calc(100vw - 48px) !important;
    min-width:0 !important;
    height:auto !important;
    min-height:0 !important;
    margin-top:30px !important;
    margin-right:0 !important;
    margin-bottom:0 !important;
    margin-left:calc(50% - 50vw + 24px) !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    overflow:visible !important;
    transform:none !important;
    inset:auto !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 .roby-luxury-accommodation-heading,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 > .roby-luxury-accommodation-feature,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 .roby-luxury-accommodation-gallery-layout{
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 .roby-luxury-accommodation-heading{
    display:block !important;
    height:auto !important;
    margin:0 0 20px !important;
    padding:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 .roby-luxury-accommodation-heading h4{
    margin:0 !important;
    padding:0 !important;
    white-space:normal !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 > .roby-luxury-accommodation-feature{
    display:block !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    padding:0 !important;
    overflow:visible !important;
    aspect-ratio:auto !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 .roby-luxury-accommodation-gallery-layout{
    display:grid !important;
    grid-template-columns:minmax(0,7fr) minmax(240px,3fr) !important;
    grid-template-rows:520px !important;
    gap:14px !important;
    height:520px !important;
    min-height:520px !important;
    max-height:520px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 .roby-luxury-accommodation-main-wrap{
    grid-column:1 !important;
    grid-row:1 !important;
    width:100% !important;
    height:520px !important;
    min-width:0 !important;
    min-height:520px !important;
    max-width:none !important;
    max-height:520px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 .roby-luxury-accommodation-main{
    display:block !important;
    position:relative !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:8px !important;
    overflow:hidden !important;
    aspect-ratio:auto !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 .roby-luxury-accommodation-main > img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    object-fit:cover !important;
    object-position:center !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 .roby-luxury-accommodation-thumbs{
    grid-column:2 !important;
    grid-row:1 !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-template-rows:repeat(2,minmax(0,1fr)) !important;
    gap:14px !important;
    position:static !important;
    width:100% !important;
    height:520px !important;
    min-width:0 !important;
    min-height:520px !important;
    max-width:none !important;
    max-height:520px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 .roby-luxury-accommodation-thumb{
    display:block !important;
    position:relative !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:8px !important;
    overflow:hidden !important;
    aspect-ratio:auto !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 .roby-luxury-accommodation-thumb img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    object-fit:cover !important;
    object-position:center !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 .roby-luxury-accommodation-overlay{
    position:absolute !important;
    left:20px !important;
    right:auto !important;
    top:auto !important;
    bottom:20px !important;
    display:block !important;
    width:auto !important;
    max-width:calc(100% - 40px) !important;
    height:auto !important;
    min-width:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:13px 20px !important;
    background:#fff !important;
    color:#171717 !important;
    border:0 !important;
    border-radius:4px !important;
    overflow:visible !important;
    transform:none !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 .roby-luxury-accommodation-overlay strong{
    display:block !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245 .roby-luxury-stay-meals{
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:24px 0 0 !important;
    padding:0 !important;
  }
}
@media (max-width:767px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v245{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
  }
}

/* ==========================================================
   v1.15.246 — LUXURY ACCOMMODATION STRUCTURAL REBUILD
   The stay section is now a DIRECT child of .roby-luxury-day.
   It no longer lives inside .roby-luxury-feature-row, so the
   old feature-row column sizing cannot narrow the gallery.
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-stay-v246{
  display:block !important;
  grid-column:1 / -1 !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  height:auto !important;
  min-height:0 !important;
  margin:34px 0 0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  position:relative !important;
  overflow:visible !important;
  box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 > .roby-luxury-accommodation-heading{
  display:block !important;
  width:100% !important;
  margin:0 0 20px !important;
  padding:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 > .roby-luxury-accommodation-heading h4{
  margin:0 !important;
  padding:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 > .roby-luxury-accommodation-feature{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  aspect-ratio:auto !important;
  overflow:visible !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-accommodation-gallery-layout{
  display:grid !important;
  grid-template-columns:minmax(0,7fr) minmax(0,3fr) !important;
  grid-template-rows:520px !important;
  gap:14px !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  height:520px !important;
  min-height:520px !important;
  max-height:520px !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-accommodation-main-wrap{
  grid-column:1 !important;
  grid-row:1 !important;
  width:100% !important;
  height:520px !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-accommodation-main{
  display:block !important;
  position:relative !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:8px !important;
  overflow:hidden !important;
  aspect-ratio:auto !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-accommodation-main > img,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-accommodation-thumb > img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  object-fit:cover !important;
  object-position:center !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-accommodation-thumbs{
  grid-column:2 !important;
  grid-row:1 !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  grid-template-rows:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
  position:static !important;
  width:100% !important;
  height:520px !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-accommodation-thumb{
  display:block !important;
  position:relative !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:8px !important;
  overflow:hidden !important;
  aspect-ratio:auto !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-accommodation-overlay{
  position:absolute !important;
  left:20px !important;
  right:auto !important;
  top:auto !important;
  bottom:20px !important;
  display:block !important;
  width:auto !important;
  max-width:calc(100% - 40px) !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:13px 20px !important;
  background:#fff !important;
  color:#171717 !important;
  border:0 !important;
  border-radius:4px !important;
  transform:none !important;
  overflow:visible !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-accommodation-overlay strong{
  display:block !important;
  color:#171717 !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-stay-meals{
  display:block !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  margin:24px 0 0 !important;
  padding:0 !important;
}
@media (max-width:767px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-accommodation-gallery-layout{
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-template-rows:auto auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    gap:10px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-accommodation-main-wrap,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-accommodation-main{
    width:100% !important;
    height:auto !important;
    aspect-ratio:4 / 3 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-accommodation-thumbs{
    grid-column:1 !important;
    grid-row:2 !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-rows:1fr !important;
    width:100% !important;
    height:auto !important;
    gap:10px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v246 .roby-luxury-accommodation-thumb{
    height:auto !important;
    aspect-ratio:4 / 3 !important;
  }
}

/* ==========================================================
   v1.15.247 — LUXURY STAY CLEAN-SLATE LAYOUT
   New markup intentionally avoids all legacy Luxury feature/
   accommodation sizing classes. Luxury Timeline only.
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-stay-v247{
  display:block !important;
  grid-column:1 / -1 !important;
  grid-row:auto !important;
  justify-self:stretch !important;
  align-self:start !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  height:auto !important;
  min-height:0 !important;
  margin:34px 0 0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  background:transparent !important;
  border:0 !important;
  overflow:visible !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-heading{
  display:block !important;
  width:100% !important;
  margin:0 0 20px !important;
  padding:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-heading h4{
  margin:0 !important;
  padding:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-gallery{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  aspect-ratio:auto !important;
  box-sizing:border-box !important;
  overflow:visible !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-grid{
  display:grid !important;
  grid-template-columns:minmax(0, 7fr) minmax(0, 3fr) !important;
  grid-template-rows:520px !important;
  gap:14px !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:520px !important;
  min-height:520px !important;
  max-height:520px !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-main-wrap{
  display:block !important;
  grid-column:1 !important;
  grid-row:1 !important;
  width:100% !important;
  min-width:0 !important;
  height:520px !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-main,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-thumb{
  appearance:none !important;
  -webkit-appearance:none !important;
  display:block !important;
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:8px !important;
  background:transparent !important;
  overflow:hidden !important;
  aspect-ratio:auto !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-main > img,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-thumb > img{
  display:block !important;
  width:100% !important;
  min-width:100% !important;
  max-width:none !important;
  height:100% !important;
  min-height:100% !important;
  max-height:none !important;
  margin:0 !important;
  object-fit:cover !important;
  object-position:center !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-thumbs{
  display:grid !important;
  grid-column:2 !important;
  grid-row:1 !important;
  grid-template-columns:1fr !important;
  grid-template-rows:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:520px !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-name{
  position:absolute !important;
  left:20px !important;
  right:auto !important;
  top:auto !important;
  bottom:20px !important;
  display:block !important;
  width:auto !important;
  min-width:0 !important;
  max-width:calc(100% - 40px) !important;
  height:auto !important;
  margin:0 !important;
  padding:13px 20px !important;
  background:#fff !important;
  color:#171717 !important;
  border:0 !important;
  border-radius:4px !important;
  transform:none !important;
  box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-name strong{
  display:block !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-meals{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:auto !important;
  min-height:0 !important;
  margin:24px 0 0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-meal-pills{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:12px !important;
}
@media (max-width:767px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-stay-v247{
    grid-column:1 / -1 !important;
    width:100% !important;
    margin-top:24px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-grid{
    grid-template-columns:1fr !important;
    grid-template-rows:auto auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    gap:10px !important;
    overflow:visible !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-main-wrap,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-main{
    grid-column:1 !important;
    grid-row:1 !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:4 / 3 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-thumbs{
    grid-column:1 !important;
    grid-row:2 !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-rows:1fr !important;
    width:100% !important;
    height:auto !important;
    gap:10px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v247-thumb{
    height:auto !important;
    aspect-ratio:4 / 3 !important;
  }
}


/* ==========================================================
   v1.15.248 — LUXURY STAY FULL-WIDTH GALLERY FIX
   The lightbox hook now lives on the full stay section instead
   of the visual gallery wrapper. This prevents the historical
   .roby-accommodation-gallery two-column grid from halving the
   actual visual gallery. Luxury Timeline only.
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-stay-v248{
  display:block !important;
  grid-column-start:1 !important;
  grid-column-end:-1 !important;
  justify-self:stretch !important;
  width:100% !important;
  min-width:100% !important;
  max-width:none !important;
  height:auto !important;
  min-height:0 !important;
  margin:34px 0 0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  overflow:visible !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v248 > .roby-luxury-stay-v247-heading,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v248 > .roby-luxury-stay-v248-gallery,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v248 > .roby-luxury-stay-v247-meals{
  grid-column:auto !important;
  width:100% !important;
  min-width:100% !important;
  max-width:none !important;
  box-sizing:border-box !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v248-gallery{
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v248-gallery > .roby-luxury-stay-v247-grid{
  display:grid !important;
  grid-template-columns:minmax(0,7fr) minmax(0,3fr) !important;
  width:100% !important;
  min-width:100% !important;
  max-width:none !important;
  margin:0 !important;
}


/* ==========================================================
   v1.15.250 — LUXURY STAY FINAL 70/30 COMPOSITION
   Dedicated Luxury-only structure. No legacy accommodation
   gallery class participates in layout.
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-stay-v250{
  display:block !important;
  grid-column:1 / -1 !important;
  grid-row:auto !important;
  justify-self:stretch !important;
  align-self:start !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:auto !important;
  min-height:0 !important;
  margin:34px 0 0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  overflow:visible !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 > .roby-luxury-stay-v247-heading{
  display:block !important;
  width:100% !important;
  margin:0 0 20px !important;
  padding:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250-gallery{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250-grid{
  display:grid !important;
  grid-template-columns:minmax(0, 7fr) minmax(0, 3fr) !important;
  grid-template-rows:520px !important;
  gap:14px !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:520px !important;
  min-height:520px !important;
  max-height:520px !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250-grid > .roby-luxury-stay-v247-main-wrap{
  display:block !important;
  grid-column:1 !important;
  grid-row:1 !important;
  width:100% !important;
  height:520px !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250-grid > .roby-luxury-stay-v247-thumbs{
  display:grid !important;
  grid-column:2 !important;
  grid-row:1 !important;
  grid-template-columns:1fr !important;
  grid-template-rows:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
  width:100% !important;
  height:520px !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 .roby-luxury-stay-v247-main,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 .roby-luxury-stay-v247-thumb{
  display:block !important;
  position:relative !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:10px !important;
  overflow:hidden !important;
  background:transparent !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 .roby-luxury-stay-v247-main > img,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 .roby-luxury-stay-v247-thumb > img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  min-height:100% !important;
  max-width:none !important;
  object-fit:cover !important;
  object-position:center !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 > .roby-luxury-stay-v247-meals{
  display:block !important;
  width:100% !important;
  margin:24px 0 0 !important;
  padding:0 !important;
  height:auto !important;
  min-height:0 !important;
}
@media (max-width:767px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250-grid{
    grid-template-columns:1fr !important;
    grid-template-rows:auto auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    gap:10px !important;
    overflow:visible !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250-grid > .roby-luxury-stay-v247-main-wrap{
    grid-column:1 !important;
    grid-row:1 !important;
    height:auto !important;
    aspect-ratio:4 / 3 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250-grid > .roby-luxury-stay-v247-thumbs{
    grid-column:1 !important;
    grid-row:2 !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-rows:1fr !important;
    height:auto !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 .roby-luxury-stay-v247-thumb{
    height:auto !important;
    aspect-ratio:4 / 3 !important;
  }
}


/* ==========================================================
   v1.15.251 — LUXURY MEALS POLISH ONLY
   Keeps the approved v1.15.250 accommodation gallery intact.
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 > .roby-luxury-stay-v247-meals{
  display:block !important;
  width:100% !important;
  margin:26px 0 0 !important;
  padding:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 > .roby-luxury-stay-v247-meals > h4{
  margin:0 0 14px !important;
  padding:0 !important;
  font-family:inherit !important;
  font-size:24px !important;
  line-height:1.25 !important;
  font-weight:700 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  color:var(--safari-other-heading-color,#171717) !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 .roby-luxury-stay-v247-meal-pills{
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:12px !important;
  margin:0 !important;
  padding:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 .roby-luxury-stay-v247-meal-pills > span{
  display:inline-flex !important;
  align-items:center !important;
  gap:11px !important;
  min-height:52px !important;
  margin:0 !important;
  padding:7px 20px 7px 8px !important;
  border:1px solid rgba(23,23,23,.10) !important;
  border-radius:999px !important;
  background:#fff !important;
  box-shadow:0 8px 22px rgba(23,23,23,.045) !important;
  color:var(--roby-body,#202020) !important;
  font-family:inherit !important;
  font-size:16px !important;
  line-height:1.2 !important;
  font-weight:500 !important;
  white-space:nowrap !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 .roby-luxury-stay-v247-meal-pills > span > b{
  display:inline-flex !important;
  flex:0 0 38px !important;
  align-items:center !important;
  justify-content:center !important;
  width:38px !important;
  height:38px !important;
  margin:0 !important;
  padding:0 !important;
  border-radius:50% !important;
  background:var(--roby-active,#c3891b) !important;
  color:#fff !important;
  font-family:Arial,sans-serif !important;
  font-size:18px !important;
  line-height:1 !important;
  font-weight:700 !important;
}
@media(max-width:767px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 > .roby-luxury-stay-v247-meals{
    margin-top:20px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 > .roby-luxury-stay-v247-meals > h4{
    font-size:21px !important;
    margin-bottom:12px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 .roby-luxury-stay-v247-meal-pills > span{
    min-height:48px !important;
    padding:6px 16px 6px 7px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-stay-v250 .roby-luxury-stay-v247-meal-pills > span > b{
    flex-basis:34px !important;
    width:34px !important;
    height:34px !important;
    font-size:16px !important;
  }
}

/* ==========================================================
   v1.15.252 — LUXURY ACCOMMODATION + ACTIVITIES PAIRING
   Itinerary first; accommodation/meals and activities side by side.
   ========================================================== */
@media (min-width:1000px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-lower-grid-v252{
    grid-column:1 / -1 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr) !important;
    gap:24px !important;
    align-items:stretch !important;
    width:100% !important;
    min-width:0 !important;
    margin:32px 0 0 !important;
    padding:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v252:not(.has-both){
    grid-template-columns:1fr !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v252 > .roby-luxury-stay-v250{
    grid-column:auto !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:22px !important;
    border:1px solid rgba(23,23,23,.08) !important;
    border-radius:16px !important;
    background:#fff !important;
    box-shadow:0 14px 40px rgba(23,23,23,.045) !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v252 .roby-luxury-stay-v250-grid{
    grid-template-rows:390px !important;
    height:390px !important;
    min-height:390px !important;
    max-height:390px !important;
    gap:10px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v252 .roby-luxury-stay-v250-grid > .roby-luxury-stay-v247-main-wrap,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v252 .roby-luxury-stay-v250-grid > .roby-luxury-stay-v247-thumbs{
    height:390px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v252 .roby-luxury-stay-v250 > .roby-luxury-stay-v247-heading{
    margin:0 0 16px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v252 .roby-luxury-stay-v250 > .roby-luxury-stay-v247-heading h4,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-v252 .roby-luxury-section-heading h4{
    margin:0 !important;
    font-size:22px !important;
    line-height:1.25 !important;
    font-weight:700 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v252 .roby-luxury-stay-v247-meals{
    margin-top:20px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v252 .roby-luxury-stay-v247-meals > h4{
    font-size:18px !important;
    margin-bottom:12px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v252 .roby-luxury-stay-v247-meal-pills > span{
    min-height:44px !important;
    padding:5px 15px 5px 6px !important;
    font-size:14px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v252 .roby-luxury-stay-v247-meal-pills > span > b{
    width:32px !important;
    height:32px !important;
    flex-basis:32px !important;
    font-size:15px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-v252{
    display:flex !important;
    flex-direction:column !important;
    width:100% !important;
    min-width:0 !important;
    height:100% !important;
    margin:0 !important;
    padding:24px !important;
    border:1px solid rgba(23,23,23,.08) !important;
    border-radius:16px !important;
    background:#fbfaf7 !important;
    box-shadow:0 14px 40px rgba(23,23,23,.04) !important;
    box-sizing:border-box !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-v252 .roby-luxury-section-heading{
    margin:0 0 18px !important;
    padding:0 0 16px !important;
    border-bottom:1px solid rgba(23,23,23,.09) !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-v252 .roby-luxury-activities-copy{
    flex:1 1 auto !important;
    margin:0 !important;
    padding:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-v252 .roby-luxury-activities-copy ul,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-v252 .roby-luxury-activities-copy ol{
    margin:0 !important;
    padding-left:20px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-v252 .roby-luxury-activities-copy li{
    margin:0 0 11px !important;
    line-height:1.55 !important;
  }
}
@media (max-width:999px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v252{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
    width:100% !important;
    margin:24px 0 0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v252 > .roby-luxury-stay-v250,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-v252{
    width:100% !important;
    margin:0 !important;
  }
}


/* ==========================================================
   v1.15.254 - LUXURY CONTENT FLOW
   Full-width itinerary, then accommodation + activities side by side.
   ========================================================== */
@media (min-width:1000px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-itinerary-section{
    grid-column:1 / -1 !important;
    grid-row:auto !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:26px 0 0 !important;
    box-sizing:border-box !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-lower-grid-v253{
    grid-column:1 / -1 !important;
    grid-row:auto !important;
    display:grid !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:30px 0 0 !important;
    padding:0 !important;
    gap:24px !important;
    align-items:stretch !important;
    box-sizing:border-box !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-lower-grid-v253.has-both{
    grid-template-columns:minmax(0,1.55fr) minmax(340px,1fr) !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-lower-grid-v253:not(.has-both){
    grid-template-columns:minmax(0,1fr) !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v253 > .roby-luxury-stay-v250,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v253 > .roby-luxury-activities-v253{
    grid-column:auto !important;
    grid-row:auto !important;
    position:relative !important;
    inset:auto !important;
    float:none !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:100% !important;
    margin:0 !important;
    box-sizing:border-box !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v253 > .roby-luxury-stay-v250{
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v253 .roby-luxury-stay-v250-grid{
    display:grid !important;
    grid-template-columns:minmax(0,7fr) minmax(0,3fr) !important;
    grid-template-rows:390px !important;
    width:100% !important;
    height:390px !important;
    min-height:390px !important;
    max-height:390px !important;
    gap:10px !important;
    margin:0 !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v253 .roby-luxury-stay-v247-main-wrap,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-lower-grid-v253 .roby-luxury-stay-v247-thumbs{
    height:390px !important;
    min-height:390px !important;
    max-height:390px !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-v253{
    display:flex !important;
    flex-direction:column !important;
    padding:26px !important;
    border:1px solid rgba(23,23,23,.09) !important;
    border-radius:14px !important;
    background:#fbfaf7 !important;
    box-shadow:0 12px 30px rgba(23,23,23,.045) !important;
  }

  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-v253 .roby-luxury-section-heading{
    margin:0 0 18px !important;
    padding:0 0 14px !important;
    border-bottom:1px solid rgba(23,23,23,.09) !important;
  }
}

@media (max-width:999px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-itinerary-section,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-lower-grid-v253{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-lower-grid-v253,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-lower-grid-v253.has-both{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:20px !important;
    margin:24px 0 0 !important;
  }
}


/* ==========================================================
   v1.15.255 — LUXURY TIMELINE FULL-WIDTH SHELL
   Match the end-to-end outer width behaviour of Cinematic.
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
@media (min-width:1000px){
  .safari-hub-itinerary.roby-layout-luxury-timeline{
    padding-left:28px !important;
    padding-right:28px !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day{
    width:100% !important;
    max-width:none !important;
  }
}


/* ==========================================================
   v1.15.256 — LUXURY ITINERARY + SAFARI PHOTO SIDE BY SIDE
   Itinerary left, Safari Photo right. Lower stay/activity grid unchanged.
   ========================================================== */
@media (min-width:1000px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-day-photo-row{
    display:block !important;
    grid-column:2 !important;
    grid-row:2 !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:100% !important;
    margin:26px 0 0 !important;
    padding:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-day-photo-row > .roby-luxury-day-photo-card{
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    margin:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-day-photo-row .roby-luxury-day-photo{
    width:100% !important;
    height:100% !important;
    min-height:360px !important;
    aspect-ratio:auto !important;
    border-radius:14px !important;
    overflow:hidden !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-day-photo-row .roby-luxury-day-photo img{
    width:100% !important;
    height:100% !important;
    min-height:360px !important;
    object-fit:cover !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-itinerary-section{
    grid-column:1 !important;
    grid-row:2 !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:100% !important;
    margin:26px 0 0 !important;
    box-sizing:border-box !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-lower-grid-v253{
    grid-column:1 / -1 !important;
    grid-row:3 !important;
  }
}
@media (max-width:999px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-day-photo-row,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-itinerary-section{
    width:100% !important;
    max-width:none !important;
  }
}

/* ==========================================================
   v1.15.257 — LUXURY LAST DAY: LEFT CONTENT STACK
   Last day left: Itinerary -> Activities -> Meals.
   Safari photo remains on the right and spans the left stack.
   ========================================================== */
@media (min-width:1000px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day > .roby-luxury-itinerary-section{
    grid-column:1 !important;
    grid-row:2 !important;
    height:auto !important;
    align-self:start !important;
    margin-bottom:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day > .roby-luxury-day-photo-row{
    grid-column:2 !important;
    grid-row:2 / span 2 !important;
    height:100% !important;
    align-self:stretch !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day > .roby-luxury-info-row{
    grid-column:1 !important;
    grid-row:3 !important;
    display:flex !important;
    flex-direction:column !important;
    gap:18px !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:18px 0 0 !important;
    padding:0 !important;
    align-self:start !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day > .roby-luxury-info-row > .roby-luxury-info-card{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    box-sizing:border-box !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day > .roby-luxury-info-row > .roby-luxury-activities{
    padding:22px 24px !important;
    border:1px solid rgba(23,23,23,.09) !important;
    border-radius:12px !important;
    background:#fbfaf7 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day > .roby-luxury-info-row > .roby-luxury-meals-card{
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
  }
}


/* ==========================================================
   v1.15.258 — LUXURY LAST-DAY POLISH
   Premium last-day meals, compact ending, true + gallery icons.
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus{
  font-family:Arial,sans-serif !important;
  font-size:34px !important;
  font-weight:300 !important;
  line-height:1 !important;
  color:#171717 !important;
  text-align:center !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus > span,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus::before,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-gallery-plus::after{
  display:none !important;
  content:none !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-last-day .roby-luxury-meals-card{
  padding:20px 22px !important;
  border:1px solid rgba(23,23,23,.08) !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:0 10px 28px rgba(23,23,23,.045) !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-last-day .roby-luxury-meals-card .roby-luxury-section-heading{
  margin:0 0 14px !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-last-day .roby-luxury-meals{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  margin:0 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-last-day .roby-luxury-meals > span{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  min-height:44px !important;
  padding:5px 16px 5px 6px !important;
  border:1px solid rgba(23,23,23,.10) !important;
  border-radius:999px !important;
  background:#fff !important;
  box-shadow:0 5px 16px rgba(23,23,23,.04) !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-last-day .roby-luxury-meals > span > b{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:32px !important;
  height:32px !important;
  flex:0 0 32px !important;
  border-radius:50% !important;
  background:#c98a12 !important;
  color:#fff !important;
  font-size:17px !important;
  line-height:1 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-last-day .roby-luxury-meals .roby-meal-name{
  font-family:var(--roby-font-body,inherit) !important;
  font-size:14px !important;
  font-weight:500 !important;
  color:#171717 !important;
}
@media (min-width:1000px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day{
    padding-bottom:14px !important;
    margin-bottom:0 !important;
    min-height:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day > .roby-luxury-day-photo-row{
    height:auto !important;
    min-height:0 !important;
    align-self:start !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day > .roby-luxury-day-photo-row > .roby-luxury-day-photo-card,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day > .roby-luxury-day-photo-row .roby-luxury-day-photo{
    height:auto !important;
    min-height:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day > .roby-luxury-day-photo-row .roby-luxury-day-photo img{
    height:auto !important;
    min-height:0 !important;
    aspect-ratio:16 / 10 !important;
    object-fit:cover !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
    padding-bottom:0 !important;
    margin-bottom:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline + .safari-hub-itinerary.roby-universal-inclusions,
  .safari-hub-itinerary.roby-layout-luxury-timeline ~ .safari-hub-itinerary.roby-universal-inclusions{
    margin-top:14px !important;
  }
}


/* ==========================================================
   v1.15.259 — LUXURY FINAL DAY GAP FIX
   The shared expert master used grid-row:1/span 20, which created
   implicit grid tracks below the real final-day content. Keep the
   expert beside the final-day content but limit it to the actual rows.
   ========================================================== */
@media (min-width:1000px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day{
    grid-template-rows:auto auto auto !important;
    grid-auto-rows:0 !important;
    row-gap:0 !important;
    margin-bottom:0 !important;
    padding-bottom:14px !important;
    min-height:0 !important;
    height:auto !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day > .roby-final-expert-panel,
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day > .roby-final-expert-master{
    grid-column:2 !important;
    grid-row:1 / 4 !important;
    align-self:start !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day > .roby-luxury-info-row{
    margin-bottom:0 !important;
    padding-bottom:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day.roby-luxury-last-day::after{
    display:none !important;
    content:none !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-days{
    padding-bottom:0 !important;
    margin-bottom:0 !important;
  }
}

/* ==========================================================
   v1.15.260 — TYPOGRAPHY SETTINGS AUTHORITY
   Semantic Day Title and Section Heading tags use the site's
   matching H1–H6 font family captured from the live website.
   ========================================================== */
.safari-hub-itinerary[data-exact-site-fonts="1"] h1.roby-day-title-heading{font-family:var(--safari-exact-h1-font,inherit)!important}
.safari-hub-itinerary[data-exact-site-fonts="1"] h2.roby-day-title-heading{font-family:var(--safari-exact-h2-font,inherit)!important}
.safari-hub-itinerary[data-exact-site-fonts="1"] h3.roby-day-title-heading{font-family:var(--safari-exact-h3-font,inherit)!important}
.safari-hub-itinerary[data-exact-site-fonts="1"] h4.roby-day-title-heading{font-family:var(--safari-exact-h4-font,inherit)!important}
.safari-hub-itinerary[data-exact-site-fonts="1"] h5.roby-day-title-heading{font-family:var(--safari-exact-h5-font,inherit)!important}
.safari-hub-itinerary[data-exact-site-fonts="1"] h6.roby-day-title-heading{font-family:var(--safari-exact-h6-font,inherit)!important}

.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-section-heading > h1,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-stay-v247-heading > h1,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-stay-v247-meals > h1{font-family:var(--safari-exact-h1-font,inherit)!important}
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-section-heading > h2,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-stay-v247-heading > h2,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-stay-v247-meals > h2{font-family:var(--safari-exact-h2-font,inherit)!important}
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-section-heading > h3,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-stay-v247-heading > h3,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-stay-v247-meals > h3{font-family:var(--safari-exact-h3-font,inherit)!important}
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-section-heading > h4,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-stay-v247-heading > h4,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-stay-v247-meals > h4{font-family:var(--safari-exact-h4-font,inherit)!important}
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-section-heading > h5,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-stay-v247-heading > h5,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-stay-v247-meals > h5{font-family:var(--safari-exact-h5-font,inherit)!important}
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-section-heading > h6,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-stay-v247-heading > h6,
.safari-hub-itinerary[data-exact-site-fonts="1"] .roby-luxury-stay-v247-meals > h6{font-family:var(--safari-exact-h6-font,inherit)!important}

/* ==========================================================
   v1.15.261 — CINEMATIC TYPOGRAPHY IS THE GLOBAL AUTHORITY
   All layouts now use the same typography variable mapping that
   makes Cinematic correct. Layout changes are intentionally none.
   ========================================================== */

/* Main itinerary/day titles — same typography contract as Cinematic. */
.safari-hub-itinerary[data-typography-mode="custom"] :is(
  .roby-primary-itinerary-heading,
  .roby-itinerary-heading,
  .roby-day-title-heading,
  .roby-day-main-title,
  .roby-luxury-title-wrap .roby-day-title-heading,
  .roby-note-title .roby-day-title-heading,
  .roby-cine-day-heading .roby-day-title-heading
){
  font-family:var(--roby-font-heading,inherit)!important;
  font-size:var(--roby-heading-size,34px)!important;
  font-weight:var(--roby-heading-weight,600)!important;
  line-height:var(--roby-heading-line-height,1.2)!important;
  letter-spacing:var(--roby-heading-letter-spacing,0)!important;
  color:var(--roby-heading-color,#171717)!important;
}

/* Section headings — use the exact same 'Other Headings' typography used by Cinematic. */
.safari-hub-itinerary[data-typography-mode="custom"] :is(
  .roby-section-heading,
  .roby-section-heading > h1,.roby-section-heading > h2,.roby-section-heading > h3,.roby-section-heading > h4,.roby-section-heading > h5,.roby-section-heading > h6,
  .roby-luxury-section-heading > h1,.roby-luxury-section-heading > h2,.roby-luxury-section-heading > h3,.roby-luxury-section-heading > h4,.roby-luxury-section-heading > h5,.roby-luxury-section-heading > h6,
  .roby-luxury-stay-v247-heading > h1,.roby-luxury-stay-v247-heading > h2,.roby-luxury-stay-v247-heading > h3,.roby-luxury-stay-v247-heading > h4,.roby-luxury-stay-v247-heading > h5,.roby-luxury-stay-v247-heading > h6,
  .roby-luxury-stay-v247-meals > h1,.roby-luxury-stay-v247-meals > h2,.roby-luxury-stay-v247-meals > h3,.roby-luxury-stay-v247-meals > h4,.roby-luxury-stay-v247-meals > h5,.roby-luxury-stay-v247-meals > h6,
  .roby-activities-title,.roby-meals-title,.roby-accommodation-title,
  .roby-note-section-title,
  .roby-cine-approved-kicker + h4,.roby-cine-approved-activities h4,.roby-cine-approved-meals h4,.roby-cine-editorial-copy h4
){
  font-family:var(--roby-font-other-heading,var(--roby-font-heading,inherit))!important;
  font-size:var(--roby-other-heading-size,22px)!important;
  font-weight:var(--roby-other-heading-weight,600)!important;
  line-height:var(--roby-other-heading-line-height,1.3)!important;
  letter-spacing:var(--roby-other-heading-letter-spacing,0)!important;
  color:var(--roby-section-heading-color,#171717)!important;
}

/* Body/WYSIWYG copy — same Body typography used by Cinematic. */
.safari-hub-itinerary[data-typography-mode="custom"] :is(
  .roby-day-text,.roby-day-text p,.roby-day-text li,
  .roby-cine-body,.roby-cine-body p,.roby-cine-body li,
  .roby-luxury-copy,.roby-luxury-copy p,.roby-luxury-copy li,
  .roby-note-copy,.roby-note-copy p,.roby-note-copy li,
  .roby-meals,.roby-meals li,
  .roby-luxury-stay-meals,.roby-luxury-stay-meals span,
  .roby-luxury-stay-v247-meals,.roby-luxury-stay-v247-meals span
){
  font-family:var(--roby-font-body,var(--roby-body-font,inherit))!important;
  font-size:var(--roby-body-size,16px)!important;
  font-weight:var(--roby-body-weight,400)!important;
  line-height:var(--roby-body-line-height,1.6)!important;
  letter-spacing:var(--roby-body-letter-spacing,0)!important;
  color:var(--roby-body-color,#171717)!important;
}

/* Activities retain the dedicated activity controls, identically in every layout. */
.safari-hub-itinerary[data-typography-mode="custom"] :is(
  .roby-activity-richtext,.roby-activity-richtext p,.roby-activity-richtext li,
  .roby-activities-content,.roby-activities-content p,.roby-activities-content li,
  .roby-note-activities,.roby-note-activities p,.roby-note-activities li,
  .roby-cine-approved-activity-list,.roby-cine-approved-activity-list p,.roby-cine-approved-activity-list li
){
  font-family:var(--roby-font-activity,var(--roby-font-body,inherit))!important;
  font-size:var(--roby-activity-size,var(--roby-body-size,16px))!important;
  font-weight:var(--roby-activity-weight,400)!important;
  line-height:var(--roby-activity-line-height,1.6)!important;
  letter-spacing:var(--roby-activity-letter-spacing,0)!important;
  color:var(--roby-body-color,#171717)!important;
}

/* Day number / DAY label — same controls across Classic, Luxury, Note and Cinematic. */
.safari-hub-itinerary[data-typography-mode="custom"] :is(.roby-day-big-number,.roby-luxury-number,.roby-note-side strong,.roby-cine-day-number strong){
  font-family:var(--roby-font-day-number,var(--roby-font-heading,inherit))!important;
  font-size:var(--roby-day-number-size,58px)!important;
  font-weight:var(--roby-day-number-weight,600)!important;
  color:var(--roby-day-number-color,#c98a12)!important;
}
.safari-hub-itinerary[data-typography-mode="custom"] :is(.roby-day-label,.roby-luxury-day-label,.roby-note-day-label,.roby-cine-day-number span){
  font-family:var(--roby-font-day-label,var(--roby-font-heading,inherit))!important;
  font-size:var(--roby-day-label-size,11px)!important;
  font-weight:var(--roby-day-label-weight,600)!important;
  letter-spacing:var(--roby-day-label-letter-spacing,1.8px)!important;
  color:var(--roby-day-label-color,#6f675f)!important;
}

/* v1.15.260 semantic site-font mapping must not override the shared Cinematic typography settings. */
.safari-hub-itinerary[data-typography-mode="custom"][data-exact-site-fonts="1"] :is(h1,h2,h3,h4,h5,h6).roby-day-title-heading{
  font-family:var(--roby-font-heading,inherit)!important;
}
.safari-hub-itinerary[data-typography-mode="custom"][data-exact-site-fonts="1"] :is(
 .roby-luxury-section-heading,.roby-luxury-stay-v247-heading,.roby-luxury-stay-v247-meals
) > :is(h1,h2,h3,h4,h5,h6){
  font-family:var(--roby-font-other-heading,var(--roby-font-heading,inherit))!important;
}


/* ==========================================================
   v1.15.264 — LUXURY HEADING ALIGNMENT + COMPACT ACTIVITIES
   ========================================================== */
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section > .roby-luxury-section-heading{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:14px !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section > .roby-luxury-section-heading > .roby-luxury-feature-icon{
  flex:0 0 auto !important;
  margin:0 !important;
  line-height:1 !important;
  align-self:center !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section > .roby-luxury-section-heading > h1,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section > .roby-luxury-section-heading > h2,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section > .roby-luxury-section-heading > h3,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section > .roby-luxury-section-heading > h4,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section > .roby-luxury-section-heading > h5,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-itinerary-section > .roby-luxury-section-heading > h6{
  margin:0 !important;
  padding:0 !important;
  line-height:1.2 !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities .roby-luxury-section-heading,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-v252 .roby-luxury-section-heading,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities-v253 .roby-luxury-section-heading{
  margin:0 0 8px !important;
  padding:0 0 8px !important;
}
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities .roby-luxury-section-heading > h1,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities .roby-luxury-section-heading > h2,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities .roby-luxury-section-heading > h3,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities .roby-luxury-section-heading > h4,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities .roby-luxury-section-heading > h5,
.safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-activities .roby-luxury-section-heading > h6{
  margin:0 !important;
  padding:0 !important;
}

/* ==========================================================
   v1.15.265 — LUXURY COMPACT HEADER + TYPOGRAPHY MODE FIX
   Typography mode is fixed in PHP; these rules only tighten the
   marked Luxury day-header spacing without changing other layouts.
   ========================================================== */
@media (min-width:1000px){
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-day-head{
    grid-template-columns:96px minmax(0,1fr) !important;
    column-gap:0 !important;
    margin:0 0 14px !important;
    padding:0 !important;
    align-items:center !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-day-head .roby-luxury-number-wrap{
    width:96px !important;
    min-width:96px !important;
    max-width:96px !important;
    padding:0 8px 0 0 !important;
    margin:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-day-head .roby-luxury-title-wrap{
    padding:0 0 0 12px !important;
    margin:0 !important;
  }
  .safari-hub-itinerary.roby-layout-luxury-timeline .roby-luxury-day > .roby-luxury-itinerary-section{
    margin-top:14px !important;
  }
}
