/* Africa Endless Cruising: shared 2026 design system */
:root {
  --color-dark: #26372e;
  --color-mid: #526257;
  --color-light-bg: #f4f1e9;
  --color-cream: #fbf8f1;
  --color-border: #e4ded0;
  --color-accent: #a76331;
  --color-gold: #b98140;
  --color-btn: #26372e;
  --horizon-gradient: linear-gradient(90deg,#a76331,#e6b676,#a76331);
  --font-main: Georgia, 'Times New Roman', serif;
  --font-second: 'Inter', Arial, sans-serif;
}
body { background: #fbf8f1; color: #26372e; }
h1,h2,h3 { text-wrap: balance; }
p { line-height: 1.7; }
a,button,input,select,textarea { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #bf8044 !important; outline-offset: 3px; }
html { scroll-padding-top: 140px; }
.container-medium { max-width: 1320px; }
.button, .card-offer__button.button { border-radius: 100px; font-weight: 700; letter-spacing: .01em; background: #a76331; box-shadow: 0 8px 22px rgba(92,51,23,.15); transition: transform .2s, background .2s, box-shadow .2s; }
.button:hover, .card-offer__button.button:hover { background: #874a22; transform: translateY(-2px); opacity: 1; box-shadow: 0 13px 28px rgba(92,51,23,.22); }
.button--border-r { background: transparent; box-shadow: none; color: #a76331; border-color: #a76331; }
.button--border-r:hover { background: #a76331; color: #fff; }
.header { background: rgba(251,248,241,.97); box-shadow: 0 1px 0 rgba(38,55,46,.1) !important; }
.header.scrolled { box-shadow: 0 8px 30px rgba(30,41,32,.1) !important; }
.header__top { background: #26372e !important; }
.header__socials, .footer__socials { display:flex; align-items:center; gap:8px; }
.header__socials a, .header__socials .social-placeholder { display:grid; place-items:center; width:29px; height:29px; border:1px solid rgba(255,255,255,.2); border-radius:50%; color:#e9e2d7; font-size:1.3rem; transition:background .2s,color .2s,transform .2s; }
.header__socials a:hover { background:#a76331; color:#fff; transform:translateY(-2px); }
.header__socials .social-placeholder, .footer__socials .social-placeholder, .mobile-menu__socials .social-placeholder { opacity:.65; cursor:default; }
.mobile-menu__socials { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin-top:14px; }
.mobile-menu__socials a, .mobile-menu__socials .social-placeholder { display:grid; place-items:center; width:31px; height:31px; border:1px solid #d9d1c3; border-radius:50%; color:#365241; font-size:1.3rem; }
.mobile-menu__socials a:hover { background:#a76331; color:#fff; border-color:#a76331; }
.header-mobile { background: #fbf8f1 !important; box-shadow: 0 1px 0 rgba(38,55,46,.1) !important; }
.header__main { height: 76px; }
.header__logo img, .site-logo-img { max-height: 54px; }
@media (max-width:1100px) { .header-mobile { display:block !important; } .header, .header__top { display:none !important; } }
.footer__main { background: #26372e !important; }
.footer__cta { background: #e9dcc5 !important; }
.footer__cta h3, .footer__cta-text h3 { font-family: var(--font-main); letter-spacing: -.035em; }
.footer__cta-text h3, .footer__cta-text p { color:#26372e !important; }
.footer__cta-actions .button--border-r { color:#26372e !important; border-color:#26372e !important; }
.footer__cta-actions .button--border-r:hover { color:#fff !important; background:#26372e !important; }
.footer__grid { gap: 45px; }
.footer__links a { line-height: 1.8; }
.footer__contact a { color:#ead6b5; font-size:1.35rem; }
.footer__contact a:hover { color:#fff; }
.footer__socials { margin-top:21px; flex-wrap:wrap; }
.footer__socials a, .footer__socials .social-placeholder { display:grid; place-items:center; width:40px; height:40px; border:1px solid rgba(255,255,255,.24); border-radius:50%; color:#f3e8d9; font-size:1.55rem; transition:background .2s,border-color .2s,transform .2s; }
.footer__socials a:hover { background:#a76331; border-color:#a76331; transform:translateY(-3px); }

/* Shared editorial scale, spacing and imagery */
.section-title, .related-tours__header h2, .hero h1, .tours-hero h1, .safari__heading h1 { font-family: var(--font-main) !important; font-weight: 600 !important; letter-spacing: -.045em !important; }
.section-title { font-size: clamp(2.8rem,3vw,4.2rem); line-height: 1.12; }
.hero h1 { font-size: clamp(4.5rem,7vw,9rem) !important; line-height: 1.02 !important; max-width: 920px !important; }
.hero { min-height: min(860px,88vh); }
.hero__bg-overlay { background: linear-gradient(90deg,rgba(17,30,22,.76),rgba(17,30,22,.18) 80%),linear-gradient(0deg,rgba(17,30,22,.54),transparent 45%) !important; }
.hero__eyebrow, .tours-hero__eyebrow { border-radius: 100px; letter-spacing: .14em; }
.tours-hero { padding: 110px 0 90px; }
.tours-hero__bg { opacity: .58; }
.tours-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(19,39,28,.78),rgba(19,39,28,.12)); pointer-events:none; }
.tours-hero__inner { z-index:2; }
.tours-hero h1 { font-size: clamp(4.2rem,5vw,6.8rem); }
.safari__heading { margin: 8px 0 24px; }
.safari__heading h1 { font-size: clamp(3.6rem,4vw,6rem); line-height:1.08; max-width:900px; }
.breadcrumbs { padding-top: 24px; padding-bottom: 12px; }
.breadcrumbs__link { font-size: 1.25rem; }
.section-sep { border:0; border-top:1px solid #e4ded0; margin: 54px 0; }

/* Tour cards receive one visual language across home, category and related sections. */
.tour-card { border:1px solid #e3ded3 !important; border-radius:18px !important; box-shadow:0 8px 30px rgba(38,55,46,.07) !important; background:#fff !important; overflow:hidden; transition:transform .25s,box-shadow .25s !important; }
.tour-card:hover { transform:translateY(-6px) !important; box-shadow:0 22px 50px rgba(38,55,46,.14) !important; }
.tour-card__img-wrap, .tour-card__image, .tour-card__img { overflow:hidden; aspect-ratio: 4 / 3; }
.tour-card__img-wrap img, .tour-card__image img, img.tour-card__img { width:100%; height:100% !important; max-height:none !important; aspect-ratio:4 / 3; object-fit:cover; }
.tour-card__body { padding:24px !important; }
.tour-card__name { font-family:var(--font-main) !important; font-size:clamp(2rem,1.6vw,2.6rem) !important; font-weight:600 !important; line-height:1.16 !important; }
.tour-card__desc { line-height:1.65 !important; }
.tour-card__explore { color:#a76331 !important; font-weight:800 !important; }
.tour-card__badge { background:#26372e !important; border-radius:100px !important; }

/* Tour detail: the full story remains in a readable left column while the enquiry follows it. */
.tour-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,340px); gap:clamp(30px,4vw,64px); max-width:1320px; margin:0 auto; padding:10px 30px 90px; align-items:start; }
.tour-layout__main { min-width:0; }
.tour-layout__main > .container-medium { max-width:none; padding:0; }
.tour-layout__main .safari-intro { display:block; }
.tour-layout__main .safari-intro__slider { max-width:100%; width:100%; min-width:0; }
.tour-layout__main .slider-intro, .tour-layout__main .swiper { max-width:100%; min-width:0; }
.tour-layout__main .slider-intro__slide img { height:clamp(350px,40vw,570px); border-radius:18px; }
.tour-layout__main .slider-intro, .tour-layout__main .slider-intro__slider { border-radius:18px; }
.tour-layout__main .safari-nav { position:relative; top:auto; margin:34px 0 46px; height:auto; min-height:56px; border-radius:12px; }
.tour-layout__main .safari-nav .container-medium { padding:0 18px; }
.tour-layout__main .safari-nav__wrap { gap:30px; }
.tour-layout__main .details__parts { gap:36px; }
.tour-layout__main .details__part { width:min(32%,280px); }
.tour-layout__main .details__part--width { width:auto; min-width:0; }
.tour-layout__main .details__desc p { font-size:1.65rem; color:#526257; }
.tour-layout__main .advantages__item { background:#f4f1e9; border:1px solid #ebe5d8; }
.tour-layout__main .options-list__item { background:#eef0e9; border-radius:100px; }
.tour-layout__main .price-table { display:block; overflow-x:auto; }
.tour-layout__aside { position:sticky; top:105px; align-self:start; min-width:0; }
.tour-layout__aside .safari-intro__card { width:100%; max-width:none; }
.tour-layout__aside .card-offer { width:100%; min-width:0; overflow:hidden; border:1px solid #e8dfd0; box-shadow:0 24px 60px rgba(38,55,46,.13); padding:25px; border-radius:20px; }
.tour-layout__aside .card-offer__wrap, .tour-layout__aside .card-offer__line { min-width:0; }
.tour-layout__aside .trip-rating { flex-wrap:wrap; }
.tour-layout__aside .card-offer__price { font-family:var(--font-main); font-size:3.6rem; }
.tour-booking-head { margin-bottom:18px; padding-bottom:17px; border-bottom:1px solid #e8dfd0; }
.tour-booking-head__eyebrow, .booking-eyebrow { margin:0 0 6px; color:#a76331; font-size:1.15rem; letter-spacing:.14em; font-weight:800; text-transform:uppercase; }
.tour-booking-head h2 { margin:0; font:600 2.6rem/1.1 var(--font-main); }
.tour-facts { margin:20px 0; padding:17px 0; border-top:1px solid #e8dfd0; border-bottom:1px solid #e8dfd0; display:grid; gap:11px; }
.tour-fact { display:flex; gap:12px; justify-content:space-between; font-size:1.3rem; line-height:1.4; }
.tour-fact span { color:#6f7a70; }
.tour-fact strong { text-align:right; color:#26372e; font-weight:700; max-width:60%; overflow-wrap:anywhere; }
.tour-layout__aside .card-offer__button { width:100%; justify-content:center; }
.tour-plan-link { display:flex; justify-content:center; padding:13px 15px; margin-top:10px; border:1.5px solid #a76331; color:#8d4b24; border-radius:100px; font-weight:800; font-size:1.4rem; }
.tour-plan-link:hover { background:#f5ebe0; }
.tour-assurance { margin-top:14px; text-align:center; color:#68766b; font-size:1.18rem; line-height:1.5; }
.tour-faq { padding:45px 0 10px; }
.tour-faq h2 { font:600 clamp(2.8rem,3vw,4rem)/1.12 var(--font-main); margin-bottom:20px; }
.tour-faq details { border-top:1px solid #ddd9cf; padding:19px 0; }
.tour-faq details:last-child { border-bottom:1px solid #ddd9cf; }
.tour-faq summary { cursor:pointer; list-style:none; font-weight:700; font-size:1.6rem; display:flex; justify-content:space-between; gap:18px; }
.tour-faq summary::after { content:'+'; font-size:2.1rem; line-height:1; color:#a76331; }
.tour-faq details[open] summary::after { content:'−'; }
.tour-faq p { margin:11px 0 0; color:#526257; font-size:1.48rem; }
.tour-final-cta { margin:48px 0 0; padding:34px; border-radius:18px; background:#26372e; color:white; }
.tour-final-cta h2 { font:600 3.2rem/1.1 var(--font-main); margin-bottom:8px; }
.tour-final-cta p { color:#e2e6df; margin-bottom:20px; }
.tour-final-cta .button { display:inline-flex; }

/* Enquiry modal and dedicated planner */
.modal-overlay { z-index:20000; background:rgba(15,33,24,.74); backdrop-filter:blur(7px); }
.modal-box.booking-modal { max-width:790px; max-height:min(94vh,900px); border-radius:22px; padding:clamp(24px,4vw,42px); box-shadow:0 32px 90px rgba(0,0,0,.26); }
.booking-modal .modal-title { font:600 clamp(3rem,4vw,4.3rem)/1.05 var(--font-main); letter-spacing:-.04em; }
.booking-modal .modal-sub { max-width:560px; margin:10px 0 26px; }
.booking-fields, .planner-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.booking-fields label, .planner-fields label { display:flex; flex-direction:column; gap:7px; color:#26372e; font-size:1.3rem; font-weight:700; }
.booking-fields__wide, .planner-fields__wide { grid-column:1/-1; }
.booking-fields input, .booking-fields select, .booking-fields textarea, .planner-fields input, .planner-fields select, .planner-fields textarea { width:100%; min-height:46px; background:#fbf9f4; border:1px solid #d7dace; border-radius:10px; padding:11px 13px; font:400 1.45rem var(--font-second); color:#26372e; }
.booking-fields textarea, .planner-fields textarea { resize:vertical; min-height:105px; }
.booking-form .form__info { margin:16px 0; }
.booking-form .button { width:100%; justify-content:center; }
.website-check { position:absolute; left:-10000px; width:1px; height:1px; }
.planner-hero { position:relative; min-height:430px; display:flex; align-items:center; background:#26372e url('images/serengeti-game-drive.webp') center/cover; color:white; }
.planner-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(20,38,28,.86),rgba(20,38,28,.32)); }
.planner-hero__inner { position:relative; max-width:1220px; width:100%; margin:auto; padding:80px 30px; }
.planner-hero h1 { font:600 clamp(4.4rem,6vw,7.8rem)/1.04 var(--font-main); max-width:790px; letter-spacing:-.05em; }
.planner-hero p { margin-top:18px; max-width:570px; font-size:1.7rem; color:#e8ede6; }
.planner-shell { max-width:1220px; margin:-55px auto 100px; padding:0 30px; position:relative; display:grid; grid-template-columns:minmax(0,1fr) 290px; gap:30px; align-items:start; }
.planner-card, .planner-note { background:white; border:1px solid #e6e2d9; border-radius:20px; box-shadow:0 20px 50px rgba(38,55,46,.08); padding:clamp(26px,4vw,48px); }
.planner-card h2 { font:600 clamp(2.8rem,3vw,4rem)/1.12 var(--font-main); margin-bottom:9px; }
.planner-card > p { color:#526257; margin-bottom:28px; }
.planner-card .button { margin-top:22px; min-width:230px; justify-content:center; }
.planner-note { padding:30px; }
.planner-note h3 { font:600 2.4rem/1.2 var(--font-main); margin-bottom:14px; }
.planner-note ul { list-style:none; display:grid; gap:16px; padding:0; margin:0; color:#526257; font-size:1.4rem; }
.planner-note li::before { content:'✓'; display:inline-grid; place-items:center; width:22px; height:22px; border-radius:50%; background:#e4ede5; color:#276044; margin-right:8px; font-weight:800; }
.planner-note a { color:#a76331; font-weight:800; }

@media(max-width:1050px) {
  .tour-layout { grid-template-columns:minmax(0,1fr) 300px; gap:26px; }
  .tour-layout__main .details__parts { display:block; }
  .tour-layout__main .details__part { width:100%; margin-bottom:30px; }
}
@media(max-width:850px) {
  .tour-layout, .planner-shell { grid-template-columns:1fr; padding-left:20px; padding-right:20px; }
  .tour-layout__aside { position:static; grid-row:2; }
  .tour-layout__main { grid-row:1; }
  .tour-layout__main .safari__heading { margin-top:0; }
  .tour-layout__aside .card-offer__wrap { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 20px; }
  .tour-booking-head, .tour-facts, .tour-layout__aside .card-offer__info, .tour-plan-link, .tour-assurance { grid-column:1/-1; }
  .planner-shell { margin-top:-30px; }
}
@media(max-width:600px) {
  html { scroll-padding-top:75px; }
  .hero { min-height:680px; }
  .hero h1 { font-size:clamp(4.3rem,14vw,6.3rem) !important; }
  .tour-layout { padding:0 16px 65px; }
  body:has(.tour-layout) { padding-bottom:72px; }
  .tour-mobile-cta { position:fixed; bottom:0; left:0; right:0; z-index:12000; display:flex; gap:8px; padding:10px 16px max(10px,env(safe-area-inset-bottom)); background:rgba(251,248,241,.97); box-shadow:0 -5px 25px rgba(24,44,31,.15); }
  .tour-mobile-cta button, .tour-mobile-cta a { flex:1; display:flex; justify-content:center; align-items:center; min-height:46px; border-radius:100px; font-size:1.35rem; font-weight:800; }
  .tour-mobile-cta button, .tour-mobile-cta a { min-width:0; white-space:normal; text-align:center; }
  .tour-mobile-cta button { border:0; color:#fff; background:#a76331; }
  .tour-mobile-cta a { border:1px solid #a76331; color:#8d4b24; }
  .tour-layout__main .slider-intro__slide img { height:280px; }
  .tour-layout__main .safari-nav { margin:22px 0 34px; }
  .tour-layout__main .safari-nav__wrap { gap:24px; }
  .tour-layout__aside .card-offer__wrap { display:block; }
  .booking-fields,.planner-fields { grid-template-columns:1fr; }
  .booking-fields__wide,.planner-fields__wide { grid-column:auto; }
  .modal-box.booking-modal { padding:26px 18px; }
  .planner-hero { min-height:360px; }
  .planner-hero__inner { padding:55px 20px 85px; }
  .planner-shell { padding:0 16px; margin-bottom:65px; }
  .planner-card,.planner-note { padding:25px 20px; }
  .tour-final-cta { padding:27px 22px; }
  .tour-final-cta .button { width:100%; justify-content:center; }
}
@media(min-width:601px) { .tour-mobile-cta { display:none; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; } }
