.safari-calculator{width:100%;max-width:none;margin:2rem auto;box-sizing:border-box}
.safari-calculator h2{margin-bottom:.6rem}.safari-calculator p{line-height:1.5}
.sc-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0}
.sc-form label{display:flex;flex-direction:column;gap:.45rem;font-weight:600;font-size:.95rem;min-width:0}
.sc-form input,.sc-form select{font:inherit;min-height:46px;width:100%;padding:.6rem;border:1px solid #c9d6de;border-radius:8px;background:#fff;color:#172e42;box-sizing:border-box}
.sc-form small{font-size:.8rem;font-weight:400;color:#4c6273}
.sc-form button{align-self:start;min-height:46px;padding:.7rem 1rem;background:#076653;color:white;border:0;border-radius:8px;font:inherit;font-weight:700;cursor:pointer}
.sc-form :focus-visible,.sc-offer a:focus-visible{outline:3px solid #00856d;outline-offset:3px}
.sc-offers{display:grid;gap:1rem}.sc-offer{padding:1.2rem;border:1px solid #d2dfe4;border-radius:12px;background:#fff;min-width:0}
.sc-offer.is-recommended{border:2px solid #08765e;background:#f8fcfa}.sc-offer-heading{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}.sc-offer h4{font-size:1.15rem;line-height:1.45;margin:.8rem 0;color:#183449}
.sc-tags{display:flex;flex-wrap:wrap;gap:.4rem}.sc-tags span{padding:.3rem .6rem;border-radius:6px;background:#eef4f6;font-size:.85rem}.sc-time{font-size:.95rem;color:#4c6273}
.sc-breakdown{display:flex;flex-direction:column;font-size:.85rem;gap:.4rem;color:#4c6273;margin-bottom:1rem}
.sc-total{display:flex;gap:1rem;justify-content:space-between;align-items:center}.sc-total>div{display:flex;flex-direction:column;gap:.25rem}.sc-total strong{font-size:1.65rem;color:#08765e}.sc-total a{padding:.7rem 1rem;min-height:44px;box-sizing:border-box;background:#076653;color:white;text-decoration:none;border-radius:7px;font-weight:600}
.sc-error{color:#a82f2f;padding:.8rem;background:#fff2ef;border-radius:8px}.sc-conditions{margin-top:1rem;font-size:.85rem}.sc-conditions summary{cursor:pointer;padding:.4rem 0}.sc-conditions p{white-space:pre-line}.sc-teaser{padding:1.5rem;border:1px solid #d2dfe4;border-radius:12px;background:#f8fcfa}.sc-teaser a{display:inline-block;background:#076653;color:white;border-radius:7px;padding:.8rem 1rem;text-decoration:none}
@media(max-width:650px){.sc-form{grid-template-columns:repeat(2,minmax(0,1fr))}.sc-children{grid-column:1/-1}.sc-total{align-items:flex-start;flex-direction:column}.sc-total a{width:100%;text-align:center}.sc-offer{padding:1rem}}


/* Shared month grid: first choose a day, then refine the group and programme. */
.safari-calculator .lc-heading{margin-bottom:24px}
.safari-calculator .lc-heading h2{margin:0 0 8px!important}
.safari-calculator .lc-heading p{margin:0!important}
.safari-calculator .lc-selected-date{margin:24px 0 16px!important;font-size:20px}
.safari-calculator .sc-form{padding:20px;background:#f6f8fa;border-radius:12px;margin:0 0 24px}
.safari-calculator .sc-form button{background:#203149}
@media(min-width:1025px){
 .safari-calculator .lc-months{position:relative}
 .safari-calculator .lc-month-next{position:absolute;top:0;inset-inline-end:0;width:44px}
 .safari-calculator .lc-month-next-single{display:none}
 .safari-calculator .lc-day{font-size:20px}
}
@media(max-width:650px){
 .safari-calculator{padding:12px}
 .safari-calculator .sc-form{padding:16px;gap:16px}
}
@media(max-width:650px){
 .safari-calculator .sc-form{grid-template-columns:minmax(0,1fr)}
 .safari-calculator .sc-children{grid-column:auto}
}
@media(max-width:360px){.safari-calculator .lc-day small{font-size:11px;letter-spacing:-.03em}}

/* Apply selects automatically, with an explicit pending state beside the filters. */
.sc-form-actions{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px}
.sc-form-actions button{display:inline-flex;align-items:center;justify-content:center;gap:12px}
.sc-party-hint[hidden],.sc-loading-label,.sc-spinner{display:none}
.light-calendar .sc-party-hint{margin:0!important;font-size:14px;color:#805719}
.sc-form.has-party-changes button{box-shadow:0 0 0 3px #dfb86e}
.safari-calculator[aria-busy=true]{opacity:1}
.safari-calculator[aria-busy=true] .sc-offers{opacity:.5;pointer-events:none}
.safari-calculator[aria-busy=true] .sc-compare-label{display:none}
.safari-calculator[aria-busy=true] .sc-loading-label{display:inline}
.safari-calculator[aria-busy=true] .sc-spinner{display:inline-block;width:18px;height:18px;border:2px solid #ffffff60;border-top-color:#fff;border-radius:50%;animation:sc-spin .7s linear infinite}
@keyframes sc-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.safari-calculator[aria-busy=true] .sc-spinner{animation:none}}

/* Comparable offer rows, with detailed fare names and restrictions on demand. */
.safari-calculator .sc-offers{padding:0;margin:0;list-style:none;gap:12px}
.safari-calculator .sc-offer{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:0 24px;padding:18px 20px;list-style:none;margin:0}
.sc-offer-main{min-width:0}
.safari-calculator .sc-offer h4{font-size:17px;margin:6px 0 10px;line-height:1.4}
.sc-offer-heading{font-size:14px}
.safari-calculator .sc-tags span{font-size:13px;padding:3px 7px}
.safari-calculator .sc-time{margin:8px 0 0!important;font-size:14px}
.safari-calculator .sc-total{flex-direction:column;align-items:flex-end;justify-content:center;gap:10px}
.safari-calculator .sc-total>div{align-items:flex-end;text-align:end}
.safari-calculator .sc-total strong{font-size:24px;line-height:1.3}
.safari-calculator .sc-total small{font-size:12px}
.safari-calculator .sc-total a{font-size:14px;padding:10px 14px}
.safari-calculator .sc-conditions{grid-column:1/-1;margin-top:8px}
.safari-calculator .sc-conditions summary{font-size:14px;min-height:44px;padding:10px 0}
.sc-conditions .sc-breakdown{margin:8px 0}
@media(max-width:700px){
 .safari-calculator .sc-offer{grid-template-columns:minmax(0,1fr);padding:16px}
 .safari-calculator .sc-total{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:12px}
 .safari-calculator .sc-total>div{align-items:flex-start;text-align:start}
 .safari-calculator .sc-total a{width:auto}
 .sc-form-actions button{width:100%}
}
.sc-offer-image{float:inline-start;width:112px;height:84px;object-fit:cover;border-radius:8px;margin-inline-end:16px;margin-bottom:8px}
.sc-offer-main:after{content:"";display:table;clear:both}
.safari-calculator .sc-photo-credit{font-size:12px;color:#627184}
@media(max-width:700px){.sc-offer-image{width:88px;height:66px;margin-inline-end:12px}}
.sc-conditions summary::after{content:"+";margin-inline-start:8px;font-size:18px}
.sc-conditions[open] summary::after{content:"−"}
@media(max-width:700px){
 .sc-offer-main:has(.sc-offer-image){display:grid;grid-template-columns:76px minmax(0,1fr);column-gap:12px;align-items:start}
 .sc-offer-main .sc-offer-image{float:none;grid-column:1;grid-row:1/span 2;width:76px;height:64px;margin:0}
 .sc-offer-main:has(.sc-offer-image) .sc-offer-heading{grid-column:2}
 .sc-offer-main:has(.sc-offer-image) h4{grid-column:2}
 .sc-offer-main:has(.sc-offer-image) .sc-tags,.sc-offer-main:has(.sc-offer-image) .sc-time{grid-column:1/-1}
 .sc-offer-main:after{display:none}
 .safari-calculator .sc-total{flex-wrap:nowrap;gap:10px}
 .safari-calculator .sc-total a{white-space:nowrap;padding:10px}
}
.sc-offer-heading{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.sc-popular{background:#fff0c2;color:#715016;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:600;line-height:1.4}
.sc-rating{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:14px;line-height:1.5;margin:0 0 10px;color:#536477}
.sc-rating>span:first-child{color:#ad760b}.sc-rating strong{color:#20334b}
@media(max-width:700px){.sc-offer-main:has(.sc-offer-image) .sc-rating{grid-column:1/-1;margin-top:4px}}
/* One hero image: beside the introduction on desktop, after its heading on mobile. */
.intro.safari-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"heading photo" "copy photo";column-gap:clamp(32px,5vw,80px);row-gap:20px;align-items:start}
.safari-intro h1{grid-area:heading;margin:0!important;align-self:end}
.safari-intro-image{grid-area:photo;min-width:0;align-self:center}
.safari-intro-image img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:16px;max-width:520px;margin-inline:auto}
.safari-intro-copy{grid-area:copy;min-width:0}
.safari-intro-copy p{margin:0;line-height:1.6}
.faq-section.safari-faq>.second-column{width:100%;max-width:1000px;margin-inline:auto}
@media(max-width:700px){
 .intro.safari-intro{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "photo" "copy";gap:24px}
 .safari-intro-image img{max-width:480px}
}
.sc-form-actions .sc-reset{background:#fff;color:#20334b;border:1px solid #c9d6de;box-shadow:none}
.sc-form-actions .sc-reset:hover{background:#eef4f6}
@media(max-width:700px){
 .sc-form-actions{gap:10px}
 .sc-form-actions button{width:auto;flex:1 1 140px;font-size:14px;padding:12px 10px;align-self:stretch}
 .sc-form-actions .sc-party-hint{flex-basis:100%}
}
/* Mobile spacing follows the real, wrapping menu height instead of two fixed offsets. */
@media(max-width:1024px){
 body:has(.safari-intro)>header{position:sticky;left:auto;transform:none;height:auto}
 body:has(.safari-intro)>.wrapper{padding-top:0}
 .intro.safari-intro{margin-top:24px}
}
@media(max-width:1024px){
 body:has(.safari-intro) .navigation-breadcrumbs li:last-child{background-color:transparent}
}
/* Keep secondary action readable despite the general form button background. */
.safari-calculator .sc-form .sc-reset{background:#fff;color:#20334b;border:1px solid #a8b7c5;box-shadow:none}
.safari-calculator .sc-form .sc-reset:hover{background:#e9eff4}
.safari-calculator .sc-offer-heading .sc-rating{display:inline-flex;gap:4px;margin:0;white-space:nowrap;font-size:14px}
.safari-calculator .sc-offer h4{font-weight:600}
.safari-calculator .sc-conditions summary{font-weight:400}
.safari-calculator .sc-inclusions{margin-top:10px}
.safari-calculator .sc-logistics{font-size:14px;margin:8px 0!important;line-height:1.5}
.sc-exclusions{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:14px;color:#596575}
.safari-calculator .sc-total .sc-party-composition{font-size:14px;line-height:1.5}
@media(max-width:700px){
 .sc-offer-main:has(.sc-offer-image) .sc-popular,.sc-offer-main:has(.sc-offer-image) .sc-logistics,.sc-offer-main:has(.sc-offer-image) .sc-exclusions{grid-column:1/-1}
 .sc-offer-main>.sc-popular{justify-self:start}
 .safari-calculator .sc-total{flex-wrap:wrap;gap:12px}
 .safari-calculator .sc-total a{white-space:normal}
}
/* Product first, with one secondary metadata line and provider at the booking action. */
.safari-calculator .sc-offer h4{font-weight:600;color:#183449;margin-top:0}
.safari-calculator .sc-offer-heading{font-size:14px;color:#536477;margin-bottom:10px;gap:6px 10px}
.sc-offer-heading>span+span::before{content:"·";margin-inline-end:10px;color:#738191}
.safari-calculator .sc-logistics a{color:#536477;text-underline-offset:3px;font-size:14px}
.sc-inclusions span{color:#285644}
@media(max-width:700px){
 .sc-offer-main .sc-offer-image{grid-row:1/span 2}
 .sc-offer-main:has(.sc-offer-image) h4{grid-row:1}
 .sc-offer-main:has(.sc-offer-image) .sc-offer-heading{grid-column:1/-1;grid-row:3;margin-top:8px}
}
/* Larger previews, with a dedicated text column instead of wrapping around a float. */
.safari-calculator .sc-offer-main:has(.sc-offer-image){display:grid;grid-template-columns:224px minmax(0,1fr);column-gap:20px;align-content:start;align-items:start}
.safari-calculator .sc-offer-main .sc-offer-image{float:none;grid-column:1;grid-row:1/span 5;width:224px;height:168px;margin:0;object-fit:cover;border-radius:10px}
.safari-calculator .sc-offer-main:has(.sc-offer-image)>:not(.sc-offer-image){grid-column:2;grid-row:auto}
.safari-calculator .sc-offer-main:after{display:none}
@media(max-width:1000px){
 .safari-calculator .sc-offer-main:has(.sc-offer-image){grid-template-columns:152px minmax(0,1fr);column-gap:16px}
 .safari-calculator .sc-offer-main .sc-offer-image{width:152px;height:128px}
}
@media(max-width:700px){
 .safari-calculator .sc-offer-main .sc-offer-image{grid-row:1}
 .safari-calculator .sc-offer-main:has(.sc-offer-image)>:not(.sc-offer-image):not(h4){grid-column:1/-1}
 .safari-calculator .sc-offer-main:has(.sc-offer-image) h4{grid-column:2;grid-row:1}
}
@media(max-width:374px){
 .safari-calculator .sc-offer-main:has(.sc-offer-image){grid-template-columns:minmax(0,1fr)}
 .safari-calculator .sc-offer-main .sc-offer-image{width:100%;height:auto;aspect-ratio:2/1;grid-column:1;grid-row:auto;margin-bottom:12px}
 .safari-calculator .sc-offer-main:has(.sc-offer-image) h4{grid-column:1;grid-row:auto}
}
@media(max-width:374px){
 .safari-calculator .sc-offer-main:has(.sc-offer-image)>:not(.sc-offer-image){grid-column:1;grid-row:auto}
}
