:root{
  --cream:#FAF6EF;
  --ink:#2B2621;
  --blue:#1D4E77;
  --terracotta:#B8562F;
  --ochre:#D2A24C;
  --teal:#0F5C56;
  --line: rgba(43,38,33,.12);
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  line-height:1.5;
}
.hidden{display:none !important;}
h1,h2,h3{ font-family:'Fraunces', serif; font-weight:600; letter-spacing:-.01em;}
html[lang="ar"] body{ font-family:'Cairo', sans-serif; }
html[lang="ar"] h1, html[lang="ar"] h2, html[lang="ar"] h3, html[lang="ar"] .logo{ font-family:'Cairo', sans-serif; font-weight:700; letter-spacing:0; }
.mono{ font-family:'IBM Plex Mono', monospace; font-size:.75rem; letter-spacing:.06em; text-transform:uppercase;}
html[lang="ar"] .mono{ font-family:'Cairo', sans-serif; letter-spacing:0; text-transform:none; }
a{color:inherit; text-decoration:none;}
.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}
.zellige{
  height:14px;
  background-image:
    linear-gradient(45deg, var(--terracotta) 25%, transparent 25%, transparent 75%, var(--terracotta) 75%),
    linear-gradient(45deg, var(--terracotta) 25%, transparent 25%, transparent 75%, var(--terracotta) 75%);
  background-size:14px 14px;
  background-position:0 0, 7px 7px;
  background-color:var(--ochre);
}
header{
  position:sticky; top:0; z-index:20;
  background:var(--cream);
  border-bottom:1px solid var(--line);
}
section[id], footer[id]{
  scroll-margin-top:90px;
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 24px; gap:16px;
}
.logo{font-family:'Fraunces', serif; font-weight:700; font-size:1.25rem; color:var(--blue); white-space:nowrap; display:inline-flex; align-items:center;}
.logo span{color:var(--terracotta);}
.logo-img{max-height:32px; width:auto; display:block; opacity:.95;}
.nav-links{display:flex; gap:28px; font-size:.9rem;}
.nav-links a:hover{color:var(--terracotta);}
.nav-right{display:flex; align-items:center; gap:14px;}
.lang-switch{display:flex; gap:4px;}
.lang-switch button{
  background:none; border:1px solid var(--line); color:var(--ink);
  padding:5px 9px; font-size:.7rem; border-radius:2px; cursor:pointer;
  font-family:'IBM Plex Mono', monospace; letter-spacing:.04em; text-transform:uppercase;
}
.lang-switch button.active{background:var(--blue); color:var(--cream); border-color:var(--blue);}
.btn{
  background:var(--blue); color:var(--cream); padding:10px 20px;
  border-radius:2px; font-size:.85rem; font-weight:500;
  border:1px solid var(--blue); transition:.2s; white-space:nowrap;
}
.btn:hover{background:var(--cream); color:var(--blue);}
.hero{
  position:relative;
  padding:96px 24px 80px;
  background:
    radial-gradient(circle at 85% 20%, rgba(29,78,119,.08), transparent 55%),
    var(--cream);
  overflow:hidden;
}
.hero .wrap{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center;}
.eyebrow{color:var(--terracotta); margin-bottom:14px; display:block;}
.hero h1{font-size:3rem; line-height:1.05; margin-bottom:20px;}
.hero p.lead{font-size:1.05rem; max-width:46ch; color:rgba(43,38,33,.8); margin-bottom:28px;}
html[lang="ar"] .hero p.lead{max-width:100%;}
.hero-proof{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 24px;
}
.hero-proof-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:.78rem;
  font-family:'IBM Plex Mono', monospace;
  color:rgba(29,78,119,.92);
  padding:7px 10px;
  border:1px solid rgba(29,78,119,.25);
  border-radius:999px;
  background:rgba(255,255,255,.55);
}
.hero-actions{display:flex; gap:14px;}
.btn-outline{
  padding:10px 20px; border:1px solid var(--ink); border-radius:2px;
  font-size:.85rem; font-weight:500;
}
.hero-visual{
  position:relative;
  min-height:420px;
  border-radius:4px;
  overflow:hidden;
  background-color:#ece7dd;
  box-shadow:0 24px 55px rgba(43,38,33,.08);
}
.hero-visual::before{
  content:"";
  position:absolute; inset:0;
  background:radial-gradient(circle at 75% 20%, rgba(29,78,119,.12), transparent 50%),
    linear-gradient(180deg, rgba(0,0,0,.12), transparent 35%);
  pointer-events:none;
}
.carousel{
  position:relative;
  width:100%;
  min-height:420px;
}
.carousel-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  transition:opacity .65s ease;
  background-color:#ece7dd;
}
.carousel-slide img{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  display:block;
}
.carousel-slide.active{opacity:1;}
.carousel-dots{
  position:absolute;
  left:20px;
  bottom:20px;
  display:flex;
  gap:10px;
  z-index:2;
}
.carousel-dot{
  width:12px; height:12px;
  border-radius:50%;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(43,38,33,.18);
  cursor:pointer;
}
.carousel-dot.active{background:var(--blue);}
.hero-visual .cap{
  position:absolute; bottom:0; left:0; right:0; padding:20px;
  color:var(--cream); font-size:.85rem;
  background:linear-gradient(0deg, rgba(0,0,0,.45), transparent);
  z-index:2;
}
.hero-carousel-counter{
  position:absolute;
  top:20px;
  right:20px;
  z-index:3;
  background:rgba(0,0,0,.45);
  color:#fff;
  padding:10px 14px;
  border-radius:999px;
  font-size:.9rem;
  letter-spacing:.02em;
}
section{padding:72px 24px;}
.home-value-strip{
  padding:14px 24px 30px;
}
.home-value-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
}
.value-card{
  border:1px solid var(--line);
  border-radius:6px;
  background:#fff;
  padding:18px 18px 16px;
}
.value-kicker{
  color:var(--terracotta);
  margin-bottom:8px;
}
.value-card h3{
  font-size:1.1rem;
  margin-bottom:8px;
}
.value-card p{
  color:rgba(43,38,33,.74);
}

.featured-section{
  padding:8px 0 12px;
  background:rgba(210,162,76,.07);
}
.featured-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
  gap:24px;
}
.featured-card{
  display:block;
  text-decoration:none;
  color:inherit;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden;
  transition:box-shadow .15s ease, transform .15s ease;
}
.featured-card:hover{
  box-shadow:0 8px 24px rgba(43,38,33,.12);
  transform:translateY(-2px);
}
.featured-card-media{
  aspect-ratio:4/3;
  position:relative;
}
.featured-badge{
  position:absolute;
  top:14px;
  left:14px;
  background:var(--ochre);
  color:#fff;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.03em;
  text-transform:uppercase;
  padding:6px 12px;
  border-radius:100px;
  /* This badge is a static label for now (phase 1). Phase 2 will swap its text for
     live price/availability from Bokun without touching this styling. */
}
.featured-card .card-body{
  padding:20px;
}
.featured-card .card-body h3{
  font-size:1.15rem;
}

/* Tablet: force 2 columns instead of letting a lone card stretch full-width (which
   was making the image balloon to 500px+ tall on iPad-sized screens) and flatten the
   image ratio a bit so the card reads as a card, not a poster. */
@media (max-width:1024px){
  .featured-grid{
    grid-template-columns:repeat(2, 1fr);
    gap:18px;
  }
  .featured-card-media{ aspect-ratio:16/11; }
}

/* Mobile: single column, compact card proportions and type scale. */
@media (max-width:640px){
  .featured-grid{
    grid-template-columns:1fr;
    gap:14px;
  }
  .featured-card-media{ aspect-ratio:16/10; }
  .featured-badge{
    font-size:.66rem;
    padding:5px 10px;
    top:10px;
    left:10px;
  }
  .featured-card .card-body{ padding:16px; }
  .featured-card .card-body h3{ font-size:1.05rem; }
  .featured-card .card-body p{ font-size:.92rem; }
}
.cookie-banner{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:50;
  background:rgba(43,38,33,.96);
  color:#fff;
  padding:16px 24px;
  border-top:1px solid rgba(255,255,255,.12);
}
.cookie-banner__content{max-width:1120px; margin:0 auto; display:flex; flex-wrap:wrap; gap:12px 16px; align-items:center; justify-content:space-between;}
.cookie-banner__content p{flex:1 1 420px; font-size:.95rem; color:rgba(255,255,255,.85);}
.cookie-banner__actions{display:flex; flex-wrap:wrap; align-items:center; gap:10px;}
.cookie-link{color:#f6d9b6; text-decoration:underline;}
.btn--small, .btn-outline--small{padding:8px 14px; font-size:.8rem;}
.btn-outline--small{background:transparent; color:#fff; border-color:#fff;}
.cookie-banner.is-hidden{display:none;}
.policy-page{padding:72px 24px 96px; max-width:860px; margin:0 auto;}
.policy-page h1{margin-bottom:16px; font-size:2.2rem;}
.policy-page p, .policy-page li{margin-bottom:12px; color:rgba(43,38,33,.8);} 
.policy-page ul{padding-left:1.2rem;}
.breadcrumb{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
  color:rgba(43,38,33,.72);
  font-size:.95rem;
}
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.breadcrumb-link{
  color:inherit;
  text-decoration:none;
  border-bottom:1px dashed rgba(43,38,33,.35);
}
.breadcrumb-link:hover{
  border-color:rgba(43,38,33,.6);
}
.breadcrumb-separator{
  opacity:.65;
}
.breadcrumb-current{
  font-weight:700;
}
.breadcrumb-desc{
  margin-bottom:24px;
  max-width:60ch;
  color:rgba(43,38,33,.65);
  font-size:.95rem;
}
.section-head{display:flex; justify-content:space-between; align-items:end; margin-bottom:36px; gap:24px; flex-wrap:wrap;}
.section-head h2{font-size:2rem;}
.section-head p{max-width:42ch; color:rgba(43,38,33,.7); font-size:.95rem;}
.grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:24px;}
.card{
  background:#fff; border:1px solid var(--line); border-radius:3px; overflow:hidden;
  display:flex; flex-direction:column;
}
.card-media{
  aspect-ratio:4/3;
  position:relative;
  background-size:cover;
  background-position:center;
  filter:brightness(.95);
}
.product-page-visual{
  aspect-ratio:16/9;
  max-height:320px;
  border-radius:6px;
  overflow:hidden;
}
.card-media--sahel{background-image:url('IMG_3877.webp');}
.card-media--desert{background-image:url('IMG_3875.webp');}
.card-media--guilene{background-image:url('produits/ghilene/8055a247536a1695c2d560078559cb347c176c0128ae9c21f4559575aac4f9ef.webp');}
.card-media--friguia{background-image:url('produits/friguia/81c866a953538c54e590519b11defd9980155658363bf4ce59b0293feb7e437e.avif');}
.card-media--monastir{background-image:url('IMG_3876.webp');}
.card-media--cruise{background-image:url('IMG_3879.webp');}
.card-media--tunis{background-image:url('IMG_3878.webp');}
.card-media--berbere{background-image:url('produits/berbere/f573adb653604bf3000e85287b0a50d0b76f26ee758acd381862ca77db596155.avif');}
.card-body{padding:20px; display:flex; flex-direction:column; gap:10px; flex:1;}
.product-page{
  padding:52px 0 0;
}
.product-page .wrap{
  display:grid;
  gap:28px;
}
.product-page .breadcrumb-desc{
  max-width:68ch;
  color:rgba(43,38,33,.68);
  font-size:.95rem;
}
.product-page-meta{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:14px;
  align-items:start;
}
.product-meta-item{
  border:1px solid var(--line);
  border-radius:6px;
  padding:18px;
  background:#fff;
}
.product-page-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:14px;
  align-items:start;
  max-width:520px;
}
.product-meta-item--link{
  display:block;
  text-decoration:none;
  color:inherit;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.product-meta-item--link:hover,
.product-meta-item--link:focus-visible{
  border-color:var(--teal);
  box-shadow:0 2px 10px rgba(15,92,86,.12);
}
.product-meta-gyg-value{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.gyg-icon{
  width:15px;
  height:15px;
  flex-shrink:0;
  fill:var(--teal);
}
.product-meta-gyg-sub{
  font-size:.82rem;
  font-weight:400;
  color:rgba(43,38,33,.58);
  margin-left:1px;
}
.product-meta-label{
  display:block;
  margin-bottom:8px;
  font-size:.82rem;
  color:rgba(43,38,33,.65);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.product-page-highlights ul{
  margin:0;
  padding-left:1.2rem;
  color:rgba(43,38,33,.75);
}
.product-page-highlights li{
  margin-bottom:.55rem;
  line-height:1.6;
}
.itinerary{
  max-width:68ch;
  margin:32px 0;
}
.itinerary-title{
  font-size:1.05rem;
  margin:0 0 24px;
  color:var(--blue);
}
.itinerary-step{
  display:flex;
  gap:18px;
  position:relative;
  padding-bottom:30px;
}
.itinerary-step:last-child{ padding-bottom:0; }
.itinerary-step:not(:last-child)::before{
  content:"";
  position:absolute;
  left:19px; top:42px; bottom:0;
  width:1px;
  background:var(--line);
}
.itinerary-step-marker{
  flex-shrink:0;
  width:40px; height:40px;
  border-radius:50%;
  background:var(--cream);
  border:1px solid var(--terracotta);
  color:var(--terracotta);
  font-family:'IBM Plex Mono', monospace;
  font-size:.82rem; font-weight:600;
  display:flex; align-items:center; justify-content:center;
  position:relative; z-index:1;
}
.itinerary-step-body{ padding-top:6px; }
.itinerary-step-body h4{
  font-size:1.05rem;
  margin:0 0 8px;
  color:var(--ink);
}
.itinerary-step-body p{
  color:rgba(43,38,33,.78);
  line-height:1.7;
  margin:0;
}
[dir="rtl"] .itinerary-step:not(:last-child)::before{ left:auto; right:19px; }
.product-page-includes{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:24px;
  margin:34px 0;
}
.includes-col{
  border:1px solid var(--line);
  border-radius:6px;
  padding:20px 22px;
  background:#fff;
}
.includes-col h3{
  font-size:1rem;
  margin:0 0 12px;
}
.includes-list{
  margin:0;
  padding:0;
  list-style:none;
}
.includes-list li{
  position:relative;
  padding-left:1.6em;
  margin-bottom:.6rem;
  line-height:1.55;
  color:rgba(43,38,33,.8);
}
.includes-list--yes li::before{
  content:"\2713";
  position:absolute; left:0;
  color:#2f6b4f;
  font-weight:700;
}
.includes-list--no li::before{
  content:"\2715";
  position:absolute; left:0;
  color:#a4432f;
  font-weight:700;
}
[dir="rtl"] .includes-list li{ padding-left:0; padding-right:1.6em; }
[dir="rtl"] .includes-list--yes li::before,
[dir="rtl"] .includes-list--no li::before{ left:auto; right:0; }
.product-page-gallery{
  margin:30px 0;
}
.product-page-gallery .product-gallery-title{
  font-size:1rem;
  font-weight:700;
  margin-bottom:14px;
}
.product-page-similar .product-gallery-title{
  font-size:1rem;
  font-weight:700;
  margin-bottom:18px;
}
.similar-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:20px;
}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
  gap:12px;
  justify-items:start;
}
.gallery-item{
  width:100%;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:4px;
  background:#fff;
}
.gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .25s ease;
}
.gallery-item:hover img{
  transform:scale(1.04);
}
.gallery-lightbox{
  position:fixed;
  inset:0;
  background:rgba(11,17,27,.92);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:30px;
  z-index:50;
}
.gallery-lightbox.hidden{display:none;}
.gallery-lightbox-content{
  max-width:90vw;
  max-height:80vh;
  width:100%;
  text-align:center;
  position:relative;
}
.gallery-lightbox img{
  max-width:100%;
  max-height:75vh;
  border-radius:6px;
  display:block;
  margin:0 auto;
}
.gallery-lightbox-caption{
  color:#fff;
  margin-top:12px;
  font-size:.95rem;
  opacity:.9;
}
.gallery-lightbox-close,
.gallery-lightbox-prev,
.gallery-lightbox-next{
  position:absolute;
  background:rgba(255,255,255,.12);
  border:none;
  color:#fff;
  font-size:1.6rem;
  width:44px;
  height:44px;
  border-radius:50%;
  cursor:pointer;
}
.gallery-lightbox-close{top:22px; right:22px;}
.gallery-lightbox-prev{left:22px;}
.gallery-lightbox-next{right:22px;}
.gallery-lightbox-close:hover,
.gallery-lightbox-prev:hover,
.gallery-lightbox-next:hover{
  background:rgba(255,255,255,.22);
}
.card h3{font-size:1.15rem;}
.card p{font-size:.9rem; color:rgba(43,38,33,.75); flex:1;}
.card-foot{display:flex; justify-content:space-between; align-items:center; margin-top:6px; gap:10px;}
.price{font-family:'IBM Plex Mono', monospace; font-size:.95rem; color:var(--blue);}
html[lang="ar"] .price{font-family:'Cairo', sans-serif;}
.price span{display:block; font-size:.7rem; color:rgba(43,38,33,.55); text-transform:uppercase;}
html[lang="ar"] .price span{text-transform:none;}
.link-arrow{font-size:.85rem; font-weight:500; border-bottom:1px solid var(--terracotta); padding-bottom:2px; white-space:nowrap;}
.booking-panels{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
}
.booking-panels .gyg-panel:first-child{
  grid-column:1 / -1;
  border:1px solid rgba(184,86,47,.45);
  box-shadow:0 18px 42px -28px rgba(43,38,33,.45);
  padding:32px;
}
.gyg-panel{
  background:#fff; border:1px solid var(--line); border-radius:3px;
  padding:28px; min-height:120px;
}
.gyg-panel + .gyg-panel{margin-top:20px;}
.gyg-note{font-size:.78rem; color:rgba(43,38,33,.55); margin-top:10px;}

.reviews{
  background:linear-gradient(180deg, rgba(15,92,86,.06), rgba(15,92,86,.015));
}
.reviews-grid{
  display:grid;
  grid-template-columns:340px 1fr;
  gap:22px;
  align-items:start;
}
.reviews-summary{
  border:1px solid rgba(15,92,86,.25);
  background:#fff;
  border-radius:8px;
  padding:24px;
}
.reviews-badge{
  color:var(--teal);
  margin-bottom:8px;
}
.reviews-score{
  font-family:'Fraunces', serif;
  font-size:3rem;
  line-height:1;
  color:var(--ink);
  margin-bottom:10px;
}
.reviews-score span{
  font-size:1.1rem;
  color:rgba(43,38,33,.58);
  margin-left:4px;
}
.reviews-summary p{
  color:rgba(43,38,33,.74);
  margin-bottom:16px;
}

/* The TripAdvisor "rated" widget is a small logo+stars badge — much lighter than the
   old verbose widget, but still not ours to fully control, so keep the same
   never-let-it-overflow safety net. Sized/positioned to sit where the "4.8/5" number
   sits in the GetYourGuide card next to it, for visual parity between the two. */
.reviews-summary--tripadvisor{
  overflow:hidden;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.reviews-ta-widget{
  margin:1px 0 16px;
  min-height:54px; /* roughly matches the GYG score's line-height, avoids layout jump while the widget script loads */
}
.reviews-ta-widget .TA_rated,
.reviews-ta-widget ul{
  margin:0;
  padding:0;
  list-style:none;
}
.reviews-ta-widget img{
  max-width:220px;
  width:auto;
  height:auto;
  display:block;
}

.faq-section{ padding-top:8px; }
.product-page-faq{ margin:8px 0; }
.faq-list{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
  gap:14px;
  align-items:start;
  width:100%;
}
.faq-item{
  border:1px solid var(--line);
  border-radius:6px;
  background:#fff;
  padding:16px 20px;
}
.faq-item summary{
  cursor:pointer;
  font-weight:600;
  color:var(--ink);
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:"+";
  font-size:1.3rem;
  line-height:1;
  color:var(--teal);
  flex-shrink:0;
  transition:transform .15s ease;
}
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-item p{
  margin-top:12px;
  color:rgba(43,38,33,.74);
  line-height:1.6;
}

/* ---- Articles / Guides ---- */
.article-page{ padding:52px 0 60px; }
.article-page-head{ margin-bottom:28px; }
.article-page-head h1{ margin-top:10px; }
.article-page-meta-line{
  color:rgba(43,38,33,.58);
  font-size:.82rem;
  margin-top:10px;
}
.article-page-excerpt{
  max-width:68ch;
  color:rgba(43,38,33,.74);
  font-size:1.05rem;
  margin-top:14px;
}
.article-page-body{
  max-width:68ch;
  color:var(--ink);
  line-height:1.75;
  font-size:1.02rem;
}
.article-page-body h2{
  font-family:'Fraunces', serif;
  font-size:1.4rem;
  margin:32px 0 14px;
}
.article-page-body p{ margin-bottom:16px; }
.article-page-body ul{
  margin:0 0 16px;
  padding-left:22px;
}
.article-page-body li{ margin-bottom:8px; }
.article-page-related{ margin-top:44px; }
.article-ad-slot{
  min-height:2px;
  margin:36px 0;
  text-align:center;
  overflow:hidden;
}
.related-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:20px;
  margin-top:16px;
}
.related-card{ text-decoration:none; color:inherit; }
.related-card .card-body h3{ font-size:1.05rem; }
.guides-index{ padding:52px 0 60px; }
.guides-grid{ margin-top:28px; }
.article-card{ text-decoration:none; color:inherit; }
.article-card .tag{ margin-bottom:2px; }
.article-card p{
  color:rgba(43,38,33,.7);
  font-size:.92rem;
}
.article-card-media{
  aspect-ratio:4/3;
  overflow:hidden;
  filter:brightness(.95);
}
.article-card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.article-page-cover{
  aspect-ratio:16/7;
  border-radius:6px;
  margin-bottom:32px;
  overflow:hidden;
}
.article-page-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:brightness(.97);
}
.article-page-inline-image{
  margin:24px 0;
}
.article-page-inline-image img{
  width:100%;
  border-radius:6px;
  display:block;
}
.article-page-inline-image figcaption{
  font-size:.82rem;
  color:rgba(43,38,33,.58);
  margin-top:8px;
  text-align:center;
}
.reviews-widget-panel{
  min-height:350px;
  border:1px solid rgba(15,92,86,.25);
}

.product-page-top{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 380px;
  gap:24px;
  align-items:start;
  margin-top:12px;
}
.product-page-top-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.booking-sidebar{
  background:linear-gradient(180deg, rgba(210,162,76,.14), rgba(210,162,76,.05));
  border:1px solid rgba(184,86,47,.35);
  border-radius:6px;
  padding:22px 22px 20px;
  position:sticky;
  top:100px;
}
.booking-sidebar-badge{
  display:inline-flex; align-items:center; gap:7px;
  font-family:'IBM Plex Mono', monospace; font-size:.68rem;
  letter-spacing:.04em; text-transform:uppercase;
  color:var(--teal); margin-bottom:10px;
}
html[lang="ar"] .booking-sidebar-badge{ font-family:'Cairo', sans-serif; text-transform:none; letter-spacing:0; }
.booking-sidebar h2{
  font-size:1.15rem;
  margin:0 0 14px;
}
.booking-sidebar .gyg-panel{
  padding:18px;
  min-height:220px;
  border-color:rgba(184,86,47,.25);
}
@media (max-width:860px){
  .product-page-top{ grid-template-columns:1fr; }
  .booking-sidebar{ position:static; }
}

.why-choose{
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  padding:22px;
  margin:10px 0 6px;
}
.why-choose h3{
  font-size:1.35rem;
  margin-bottom:8px;
}
.why-choose-lead{
  color:rgba(43,38,33,.72);
  margin-bottom:16px;
}
.why-choose-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}
.why-choose-item{
  border:1px solid rgba(29,78,119,.18);
  border-radius:6px;
  padding:14px;
  background:linear-gradient(180deg, rgba(29,78,119,.06), rgba(29,78,119,.015));
}
.why-choose-item h4{
  margin:0 0 6px;
  font-size:1rem;
}
.why-choose-item p{
  margin:0;
  color:rgba(43,38,33,.76);
  font-size:.95rem;
}

.booking-highlight{
  background:linear-gradient(180deg, rgba(210,162,76,.14), rgba(210,162,76,.05));
  border:1px solid rgba(184,86,47,.35);
  border-radius:6px;
  padding:30px 30px 26px;
  margin:32px 0 40px;
  box-shadow:0 10px 30px -18px rgba(43,38,33,.35);
  scroll-margin-top:90px;
}
.booking-highlight-badge{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'IBM Plex Mono', monospace; font-size:.72rem;
  letter-spacing:.04em; text-transform:uppercase;
  color:var(--teal); margin-bottom:12px;
}
html[lang="ar"] .booking-highlight-badge{ font-family:'Cairo', sans-serif; text-transform:none; letter-spacing:0; }
.booking-highlight-dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--teal);
  box-shadow:0 0 0 0 rgba(15,92,86,.55);
  animation:booking-pulse 2s infinite;
}
@keyframes booking-pulse{
  0%{box-shadow:0 0 0 0 rgba(15,92,86,.45);}
  70%{box-shadow:0 0 0 8px rgba(15,92,86,0);}
  100%{box-shadow:0 0 0 0 rgba(15,92,86,0);}
}
.booking-highlight h2{
  font-size:1.5rem; margin:0 0 8px;
}
.booking-highlight > p{
  color:rgba(43,38,33,.75); max-width:56ch; margin:0 0 20px;
}
.booking-highlight .gyg-panel{
  border-color:rgba(184,86,47,.25);
}
.booking-highlight--compact{
  margin:44px 0 30px;
  padding:24px 26px 22px;
}
.booking-highlight--compact h2{
  font-size:1.2rem;
  margin:0 0 16px;
}

.cta-inline{
  display:flex; justify-content:center;
  margin:36px 0;
}

.sticky-book-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:40;
  background:var(--blue); color:var(--cream);
  transform:translateY(100%); opacity:0;
  transition:transform .25s ease, opacity .25s ease;
  box-shadow:0 -8px 24px -12px rgba(0,0,0,.35);
}
.sticky-book-bar.is-visible{ transform:translateY(0); opacity:1; }
.sticky-book-bar-inner{
  max-width:1080px; margin:0 auto;
  padding:14px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.sticky-book-bar-title{
  font-family:'Fraunces', serif; font-size:.95rem;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.sticky-book-bar .btn{ flex-shrink:0; }

.booking{background:#fff;}
.booking .wrap > p{max-width:56ch; color:rgba(43,38,33,.75); margin-bottom:28px;}
html[lang="ar"] .booking .wrap > p{max-width:100%;}
.badge-wrapper{background:#fff; border-bottom:1px solid var(--line); padding:10px 24px; display:flex; justify-content:center;}
.badge-link img{border:1px solid #c6c8d0;}
.footer-desc{margin-top:10px; max-width:32ch; font-size:.9rem; color:rgba(250,246,239,.75);}
.footer-link{color:rgba(250,246,239,.9); text-decoration:underline;}
.footer-social{
  display:flex; gap:12px; margin-top:18px;
}
.footer-social-link{
  width:34px; height:34px; display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(250,246,239,.3); border-radius:50%;
  color:rgba(250,246,239,.85);
  transition:.2s;
}
.footer-social-link svg{ width:17px; height:17px; }
.footer-social-link:hover{
  background:var(--ochre); border-color:var(--ochre); color:var(--ink);
}
.contact-info{color:rgba(250,246,239,.75);}
footer{
  background:var(--blue); color:var(--cream); padding:48px 24px 28px;
}
footer .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px;}
footer .logo{color:var(--cream);}
footer .logo span{color:var(--ochre);}
.foot-bottom{
  margin-top:32px; padding-top:20px; border-top:1px solid rgba(250,246,239,.15);
  font-size:.8rem; color:rgba(250,246,239,.6);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;
}
@media (max-width:860px){
  .hero .wrap{grid-template-columns:1fr;}
  .grid{grid-template-columns:1fr;}
  .home-value-grid{grid-template-columns:1fr;}
  .reviews-grid{grid-template-columns:1fr;}
  .booking-panels{grid-template-columns:1fr;}
  .booking-panels .gyg-panel:first-child{grid-column:auto; padding:24px;}
  .why-choose-grid{grid-template-columns:1fr;}
  .nav-links{display:none;}
  .hero h1{font-size:2.2rem;}
}

/* auto-generated product card-media rules */
.card-media--ancienne-facette-de-la-tunisie-voyage-en-famille-tunis-hammamet{background-image:url('/produits/ancienne-facette-de-la-tunisie-voyage-en-famille-tunis-hammamet/d561ee75e63b6abdf0d840f556f249236502d232c2505e81de9cf971197c78a7.webp');}
.card-media--sousse-et-monastir-visite-d-une-journee-avec-ribat-et-medina{background-image:url('/produits/sousse-et-monastir-visite-d-une-journee-avec-ribat-et-medina/c1cb029fdeb50e1c69aea822501d9d9c1bc85a9a39630b7ac331930f959c2d34.webp');}
.card-media--visite-d-une-demi-journee-a-monastir-medina-ribat-et-mausolee-bourguiba{background-image:url('/produits/visite-d-une-demi-journee-a-monastir-medina-ribat-et-mausolee-bourguiba/adf5ac018ee756d5650ef56caf3f66be79aa1d927f0a5e7ed1db6efb587823b4.webp');}
.card-media--patrimoine-de-sousse-medina-ribat-et-musees-demi-journee{background-image:url('/produits/patrimoine-de-sousse-medina-ribat-et-musees-demi-journee/0398b0d751dd4777eab3081148ef0432becc1d5633a963f630ca008b4c4077ba.webp');}
.card-media--excursion-a-el-jem-et-mahdia-avec-demonstration-de-mosaique{background-image:url('/produits/excursion-a-el-jem-et-mahdia-avec-demonstration-de-mosaique/00b1964472ab466aefd903e1254ff74ad0cccded17e3397571ad4352da728e82.webp');}
.card-media--visite-culturelle-d-une-demi-journee-a-kairouan-medina-mosquee-et-degustation{background-image:url('/produits/visite-culturelle-d-une-demi-journee-a-kairouan-medina-mosquee-et-degustation/764969a14834a5ef9e11aeced4dbe7721dc0d1e4b007b073c7e104d2251f6351.webp');}
.card-media--excursion-a-kairouan-et-el-jem-avec-prise-en-charge{background-image:url('/produits/excursion-a-kairouan-et-el-jem-avec-prise-en-charge/a2fe6d1d1e923932b84ebe632b97d53139247a2dfd28f85bfe51a707d020077b.webp');}
.card-media--monastir-croisiere-pirate-sur-l-ile-de-kuriat-avec-boissons{background-image:url('/produits/monastir-croisiere-pirate-sur-l-ile-de-kuriat-avec-boissons/2f1d707ad26312cb5f820827ec48a3712f17e01edadcae70399a04735dcfca14.webp');}
.card-media--el-djem-express-arene-romaine-et-experience-locale{background-image:url('/produits/el-djem-express-arene-romaine-et-experience-locale/65875828db7d2af5344b5271d8ed607d91ced964f4ec74e7bda093f7e73c14b2.webp');}
.card-media--decouverte-du-sahara-experience-dans-le-desert-du-sud-de-la-tunisie{background-image:url('/produits/decouverte-du-sahara-experience-dans-le-desert-du-sud-de-la-tunisie/558f3f701fd76e96f57623b7b009bf18a0bbf70f1c85faebc7e6b83db0ddfcab.webp');}
.card-media--monastir-ou-sousse-excursion-a-tunis-et-a-sidi-bou-said{background-image:url('/produits/monastir-ou-sousse-excursion-a-tunis-et-a-sidi-bou-said/c336ff5f23bde792c68ec2a10d15e06c37056231573acc45a301c15ab5f605f4.webp');}
.card-media--experience-de-la-vie-nocturne-de-sousse-a-monastir{background-image:url('/produits/experience-de-la-vie-nocturne-de-sousse-a-monastir/0c2fa91e07fcd99a69fd235f996bf99cc881b1cdc0b13b877164baaa8d429c98.webp');}
.card-media--monastir-transfert-vers-hammamet-avec-arrets-culturels{background-image:url('/produits/monastir-transfert-vers-hammamet-avec-arrets-culturels/2fb223ba83f4fbe7014d877586fbf81092e4c0df5136e06e215e5e7cceed65eb.webp');}
.card-media--monastir-promenade-en-caleche-avec-prise-en-charge-a-l-hotel{background-image:url('/produits/monastir-promenade-en-caleche-avec-prise-en-charge-a-l-hotel/91811a4ce42ba33584abe909cf07ca21feabcd6e428d8e9994f6f219a26295ae.webp');}
.card-media--tunis-visite-de-2-jours-dans-le-sahara-avec-campement-et-repas{background-image:url('/produits/tunis-visite-de-2-jours-dans-le-sahara-avec-campement-et-repas/7e1b23562e3e60f0febd510bab6cef6a790cbfbb7e4488d39da8ddd8ddc20501.webp');}
.card-media--monastir-et-sousse-visite-en-scooter-electrique-avec-prise-en-charge{background-image:url('/produits/monastir-et-sousse-visite-en-scooter-electrique-avec-prise-en-charge/0843dc351055b3df77a7640b7bee3031fde56731b3d6745bb6dada2ef34b46a0.webp');}
.card-media--sousse-croisiere-avec-spectacle-baignade-et-prise-en-charge{background-image:url('/produits/sousse-croisiere-avec-spectacle-baignade-et-prise-en-charge/ea6be1fcfa0757a734580de4739cc8c2885ded7f8093742f3bc49f81ab78ad3d.webp');}
.card-media--depuis-soussemonastir-massage-hammam-et-atelier-de-maroquinerie{background-image:url('/produits/depuis-soussemonastir-massage-hammam-et-atelier-de-maroquinerie/5ac3228df18abe3f06e3f9b6333aeff89486ab652745a4370b38408e5a58cb6e.webp');}
.card-media--excursion-express-de-2-jours-a-ksar-ghilane-avec-nuit-sous-tente{background-image:url('/produits/excursion-express-de-2-jours-a-ksar-ghilane-avec-nuit-sous-tente/10c5b6bb4f261768e89105b2b057617050bbdb16dfe425230edfc1a6e0a3f05f.webp');}
.card-media--depuis-tozeur-excursion-en-4x4-star-wars-et-sahara{background-image:url('/produits/depuis-tozeur-excursion-en-4x4-star-wars-et-sahara/d763b69eafb2bbe3a3a9fdc7af0cd2d38ade34c86f6a444e80dfc04ac5c3aad3.webp');}
.card-media--voyage-express-dans-le-desert-en-visite-d-une-journee-ksar-ghilane{background-image:url('/produits/voyage-express-dans-le-desert-en-visite-d-une-journee-ksar-ghilane/10c5b6bb4f261768e89105b2b057617050bbdb16dfe425230edfc1a6e0a3f05f.webp');}
.card-media--tunis-carthage-et-musee-du-bardo-un-voyage-a-travers-l-histoire{background-image:url('/produits/tunis-carthage-et-musee-du-bardo-un-voyage-a-travers-l-histoire/c336ff5f23bde792c68ec2a10d15e06c37056231573acc45a301c15ab5f605f4.webp');}
.card-media--hammamet-visite-guidee-de-la-medina-et-du-marche{background-image:url('/produits/hammamet-visite-guidee-de-la-medina-et-du-marche/73a492912647ce487e76b9484f988990f4232963a1b150bd53fdeaa9f84ac71b.webp');}
.card-media--ghar-el-melh-excursion-a-la-plage-de-coco-avec-transfert-en-bateau{background-image:url('/produits/ghar-el-melh-excursion-a-la-plage-de-coco-avec-transfert-en-bateau/7e1ba5e560c9e67239843fa72bbe553a6081f4aa8b1afb8c1fdb2dc60dd876f4.webp');}
