/*
 * Les Tontons du Bled — habillage du thème (maquette « Proposition 1 »).
 *
 * Les blocs du moteur posent leurs styles EN LIGNE : ce qui doit les
 * contredire porte `!important`, et seulement ça. Les sections sont visées par
 * leur emplacement (`[data-v4-placement="…"]`), jamais par leur rang.
 *
 * Ordre : socle · en-tête · accueil (hero, réassurance, villes, circuit,
 * tour, emblématiques, histoire) · fiche produit · pied · mobile.
 */

/* ── Socle ──────────────────────────────────────────────────────────────── */
body.ttb-theme {
  background-color: var(--ttb-sable);
  background-image:
    radial-gradient(1200px 600px at 10% -10%, rgba(255, 250, 240, .7), transparent 60%),
    radial-gradient(900px 500px at 100% 30%, rgba(232, 214, 188, .35), transparent 70%);
  color: var(--color-text);
  font-family: var(--font-family-base);
  font-size: var(--font-size-base);
}
.ttb-theme .mnx-v4-page { background: transparent; }
.ttb-theme h1, .ttb-theme h2, .ttb-theme h3 { font-family: var(--font-family-heading); color: var(--ttb-encre); }
.ttb-theme .sws-container { max-width: var(--container-max-width); padding-inline: 20px; }
.ttb-theme a { color: inherit; }

/* Bouton terracotta « pilule » à flèche — tous les appels à l'action. */
.ttb-theme .sws-v4-cta--plein,
.ttb-theme .sws-v4-feature-grid__more a,
.ttb-theme .mnx-section__more a,
.ttb-theme .sws-btn-primary {
  display: inline-flex !important; align-items: center; gap: .6em;
  padding: 11px 26px !important;
  border: 0 !important; border-radius: 999px !important;
  background: linear-gradient(180deg, #B04529 0%, #962F19 100%) !important;
  color: #fff !important; text-decoration: none !important;
  font-family: var(--font-family-heading); font-weight: 400 !important; font-size: 16px !important;
  box-shadow: 0 2px 0 rgba(90, 30, 15, .25), 0 6px 14px rgba(150, 47, 25, .22);
  transition: filter .15s ease, transform .15s ease;
}
.ttb-theme .sws-v4-cta--plein::after,
.ttb-theme .sws-v4-feature-grid__more a::after { content: '→'; font-family: var(--font-family-base); }
.ttb-theme .sws-v4-cta--plein:hover,
.ttb-theme .sws-v4-feature-grid__more a:hover,
.ttb-theme .sws-btn-primary:hover { filter: brightness(1.08); transform: translateY(-1px); }
.ttb-theme :focus-visible { outline: 2px solid var(--ttb-or); outline-offset: 2px; }

/* Panneau « papier » commun aux sections de l'accueil. */
.ttb-theme [data-v4-placement="villes"] > section,
.ttb-theme [data-v4-placement="emblematiques"] > section,
.ttb-theme [data-v4-placement="histoire"] > section,
.ttb-theme [data-v4-placement="circuit"] > section,
.ttb-theme [data-v4-placement="tour"] > section {
  background-color: var(--ttb-papier) !important;
  border: 1px solid var(--ttb-filet);
  border-radius: var(--border-radius-lg);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 8px 22px rgba(110, 80, 50, .07);
}

/* ── En-tête ────────────────────────────────────────────────────────────── */
.ttb-header {
  position: sticky; top: 0; z-index: 60;
  background: rgba(245, 237, 224, .96);
  border-bottom: 1px solid var(--ttb-filet);
  backdrop-filter: blur(6px);
}
.ttb-header__inner {
  max-width: var(--container-max-width); margin: 0 auto; padding: 0 20px;
  height: var(--header-height); display: flex; align-items: center; gap: 28px;
}
.ttb-logo { position: relative; display: flex; align-items: center; flex: 0 0 auto; text-decoration: none; }
.ttb-logo__croquis { position: absolute; left: -62px; bottom: -6px; width: 84px; height: 66px; color: #B08F72; opacity: .55; pointer-events: none; }
.ttb-logo__img { display: block; height: 58px; width: auto; mix-blend-mode: multiply; }
.ttb-logo__name { font-family: var(--font-family-heading); font-size: 26px; color: var(--ttb-encre); }
.ttb-nav { flex: 1 1 auto; display: flex; justify-content: center; }
.ttb-nav__list { display: flex; gap: clamp(18px, 2.6vw, 40px); list-style: none; margin: 0; padding: 0; }
.ttb-nav .mnx-nav__link {
  font-family: var(--font-family-heading); font-size: 15.5px; color: var(--ttb-encre);
  text-decoration: none; padding: 6px 0; border-bottom: 1px solid transparent;
}
.ttb-nav .mnx-nav__link:hover, .ttb-nav .active > .mnx-nav__link { border-bottom-color: var(--ttb-terre); color: var(--ttb-terre); }
.ttb-header__actions { display: flex; align-items: center; gap: 18px; flex: 0 0 auto; }
.ttb-icon-btn { background: none; border: 0; padding: 4px; cursor: pointer; color: var(--ttb-encre); }
.ttb-icon-btn svg, .ttb-cart__sac { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.ttb-cart { position: relative; width: 30px; height: 30px; display: grid; place-items: center; color: var(--ttb-encre); }
.ttb-cart__sac { stroke: var(--ttb-terre); }
.ttb-cart .mnx-header__cart-btn { position: absolute; inset: 0; font-size: 0; color: transparent; background: none !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; }
.ttb-cart .mnx-header__cart-btn .fa, .ttb-cart .mnx-cart-label { display: none; }
.ttb-cart .countcart {
  position: absolute; top: -3px; right: -6px; min-width: 17px; height: 17px; padding: 0 4px;
  border-radius: 999px; background: var(--ttb-rouge); color: #fff;
  font: 600 11px/17px var(--font-family-base); text-align: center;
}
.ttb-lang { font-family: var(--font-family-heading); font-size: 15px; color: var(--ttb-encre); }
.ttb-burger { display: none; background: none; border: 0; width: 34px; height: 34px; padding: 6px; cursor: pointer; }
.ttb-burger span { display: block; height: 1.6px; margin: 5px 0; background: var(--ttb-encre); border-radius: 2px; }
.ttb-search { border-top: 1px solid var(--ttb-filet); background: var(--ttb-papier); }
.ttb-search__form { max-width: 720px; margin: 0 auto; padding: 14px 20px; display: flex; gap: 10px; }
.ttb-search__input { flex: 1; min-width: 0; border: 1px solid var(--ttb-filet); border-radius: 999px; padding: 10px 18px; background: #fff; font: inherit; }
.ttb-search__btn { border: 0; border-radius: 999px; padding: 10px 20px; background: var(--ttb-terre); color: #fff; font: inherit; cursor: pointer; }
.ttb-annonce { display: flex; justify-content: center; gap: 28px; padding: 7px 16px; background: var(--ttb-encre); color: #F5EDE0; font-size: 14px; }

/* ── Accueil · hero ─────────────────────────────────────────────────────── */
.ttb-theme [data-v4-placement="hero"] { max-width: var(--container-max-width); margin: 18px auto 0; padding-inline: 20px; }
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero {
  min-height: clamp(380px, 40vw, 560px) !important;
  align-items: center !important;
  padding: 0 clamp(24px, 4vw, 64px) !important;
  border-radius: var(--border-radius-lg);
  background-color: #E7D3B3 !important;
  background-size: auto 100% !important;
  background-position: right center !important;
  background-repeat: no-repeat !important;
  box-shadow: 0 10px 30px rgba(90, 60, 30, .14);
}
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero__veil {
  background: linear-gradient(90deg, #E9D7BA 0%, #E9D7BA 34%, rgba(233, 215, 186, .85) 44%, rgba(233, 215, 186, 0) 60%) !important;
}
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero__inner { margin: 0 !important; max-width: 520px !important; color: var(--color-text) !important; }
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero__title {
  color: #7E2615 !important; font-weight: 400 !important;
  font-size: clamp(36px, 4.3vw, 60px) !important; line-height: 1.04 !important; margin: 0 0 .45em !important;
  text-shadow: 0 1px 0 rgba(255, 245, 230, .5);
}
.ttb-theme .ttb-hero__encre { display: block; color: var(--ttb-encre); }
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero__lead { color: #3A2E26 !important; font-size: clamp(16px, 1.35vw, 19px) !important; max-width: 30ch !important; line-height: 1.4 !important; }
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero__eyebrow { display: none; }

/* ── Accueil · réassurance ──────────────────────────────────────────────── */
.ttb-theme [data-v4-placement="reassurance"] .mnx-perks { background: transparent !important; padding-block: 16px !important; }
.ttb-theme [data-v4-placement="reassurance"] .mnx-perks__inner {
  display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 0 !important;
}
.ttb-theme [data-v4-placement="reassurance"] .mnx-perks__item {
  display: flex !important; align-items: center; justify-content: center; gap: 12px;
  padding: 6px 12px; border-left: 1px solid var(--ttb-filet);
}
.ttb-theme [data-v4-placement="reassurance"] .mnx-perks__item:first-child { border-left: 0; }
.ttb-theme [data-v4-placement="reassurance"] .mnx-perks__item > div { font-size: 26px !important; color: var(--ttb-terre) !important; }
.ttb-theme [data-v4-placement="reassurance"] .fa-whatsapp { color: var(--ttb-whatsapp); }
.ttb-theme [data-v4-placement="reassurance"] .mnx-perks__label > span { font-family: var(--font-family-heading) !important; font-weight: 400 !important; font-size: 14px !important; color: var(--ttb-encre) !important; }
.ttb-theme [data-v4-placement="reassurance"] .mnx-perks__sub { font-size: 14px !important; opacity: 1 !important; color: var(--ttb-encre) !important; font-family: var(--font-family-heading); }

/* ── Accueil · les 6 villes ─────────────────────────────────────────────── */
.ttb-theme [data-v4-placement="villes"],
.ttb-theme [data-v4-placement="emblematiques"],
.ttb-theme [data-v4-placement="histoire"] { max-width: var(--container-max-width); margin: 0 auto 22px; padding-inline: 20px; }
.ttb-theme [data-v4-placement="villes"] > section {
  position: relative; overflow: hidden;
  padding: 26px 24px 30px !important;
  background-image: url('../../images/villes.svg') !important;
  background-repeat: no-repeat !important; background-position: center 92px !important; background-size: 96% auto !important;
}
.ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__title,
.ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__title { font-weight: 400 !important; font-size: clamp(28px, 2.8vw, 40px) !important; margin: 0 0 .15em !important; text-align: center; color: var(--ttb-encre); }
.ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__lead { opacity: 1 !important; color: var(--ttb-encre) !important; font-family: var(--font-family-heading); font-size: 17px; margin-bottom: 18px !important; }
.ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__items {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important; gap: 14px !important;
}
.ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__item {
  background: linear-gradient(180deg, rgba(250, 245, 236, 0) 0%, rgba(250, 245, 236, 0) 55%, rgba(244, 233, 216, .95) 56%) !important;
  border: 0 !important; border-radius: 10px !important; padding: 0 0 12px !important; text-align: center;
  transition: transform .2s ease;
}
.ttb-theme [data-v4-placement="villes"] a.sws-v4-feature-grid__item:hover { transform: translateY(-3px); }
.ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__item img {
  aspect-ratio: 9 / 15; object-fit: cover; object-position: center 30%;
  margin: 0 0 8px !important; border-radius: 10px 10px 0 0;
  -webkit-mask-image: linear-gradient(180deg, #000 82%, transparent 100%); mask-image: linear-gradient(180deg, #000 82%, transparent 100%);
}
.ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__item h3 { font-weight: 400 !important; font-size: 18px !important; margin: 0 !important; color: var(--ttb-encre); }
.ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__item p { color: var(--ttb-terre) !important; font-family: var(--font-family-heading); font-size: 14px; }
.ttb-theme .sws-v4-feature-grid__more { text-align: center; margin: 20px 0 0 !important; }

/* ── Accueil · Circuit | Tour du Maroc ──────────────────────────────────── */
.ttb-theme .mnx-v4-cols--tontons { gap: 22px !important; padding-block: 0 22px !important; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr) !important; }
.ttb-theme .mnx-v4-cols--tontons > .mnx-v4-slot > section { height: 100%; padding: 24px 26px !important; overflow: hidden; position: relative; }
.ttb-theme .sws-v4-entity-showcase__inner { gap: 18px !important; align-items: stretch !important; max-width: none !important; }
.ttb-theme .sws-v4-entity-showcase__title { font-weight: 400 !important; font-size: clamp(28px, 2.6vw, 38px) !important; margin: 0 !important; line-height: 1.05; }
.ttb-theme .sws-v4-entity-showcase__eyebrow { order: 2; margin: 2px 0 6px !important; font-family: var(--font-family-heading); font-size: 19px; color: var(--ttb-encre); letter-spacing: 0 !important; text-transform: none !important; }
.ttb-theme .sws-v4-entity-showcase__text { display: flex; flex-direction: column; align-items: flex-start; }
.ttb-theme .sws-v4-entity-showcase__title { order: 1; }
.ttb-theme .sws-v4-entity-showcase__body { order: 3; color: var(--color-text); font-size: 16.5px; line-height: 1.35; }
.ttb-theme .sws-v4-entity-showcase__body p { margin: 0; }
.ttb-theme .sws-v4-entity-showcase__price { order: 4; margin: 14px 0 12px !important; color: var(--ttb-rouge); font-family: var(--font-family-heading); font-size: clamp(26px, 2.3vw, 34px); line-height: 1; }
.ttb-theme .sws-v4-entity-showcase__price .currency { margin-left: .15em; }
.ttb-theme .sws-v4-entity-showcase__note { order: 5; }
.ttb-theme .sws-v4-entity-showcase__cta { order: 6; }

/* Le Circuit : trio à gauche, texte + carte à droite. */
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__inner { flex-wrap: nowrap !important; }
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__media { flex: 0 0 46% !important; align-self: flex-end; margin: 0 0 -24px -10px; }
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__media img { -webkit-mask-image: radial-gradient(120% 100% at 50% 60%, #000 62%, transparent 82%); mask-image: radial-gradient(120% 100% at 50% 60%, #000 62%, transparent 82%); }
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__text {
  flex: 1 1 auto !important; padding-top: 4px;
  background: url('../../images/circuit.svg') no-repeat right 4px top 0 / 62% auto;
}
.ttb-theme [data-v4-placement="circuit"] > section::after {
  content: ''; position: absolute; left: -10px; top: 20px; width: 120px; height: 180px; pointer-events: none;
  background: url('../../images/palmier.svg') no-repeat center / contain; opacity: .45;
}

/* Le Tour du Maroc : texte en haut, coffret en bas à droite. */
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__inner { flex-direction: column-reverse !important; flex-wrap: nowrap !important; height: 100%; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media { flex: 1 1 auto !important; display: flex; align-items: flex-end; justify-content: flex-end; margin: -40px -26px -24px 0; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media img { width: 72% !important; border-radius: 10px 0 12px 0; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__text { flex: 0 0 auto !important; position: relative; z-index: 1; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__eyebrow { margin-bottom: 0 !important; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__body { font-family: var(--font-family-heading); font-size: 17px; color: var(--ttb-encre); }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__cta { padding: 9px 22px !important; font-size: 15px !important; }

/* ── Accueil · les Emblématiques ────────────────────────────────────────── */
.ttb-theme [data-v4-placement="emblematiques"] > section {
  padding: 22px 26px 26px !important; position: relative; overflow: hidden;
  display: grid; grid-template-columns: auto 1fr; column-gap: 34px; align-items: end;
  background-image: url('../../images/palmier.svg'), url('../../images/palmier.svg') !important;
  background-repeat: no-repeat !important;
  background-position: left 8px bottom 10px, right 10px bottom 6px !important;
  background-size: 70px auto, 110px auto !important;
}
.ttb-theme [data-v4-placement="emblematiques"] > section > * { grid-column: 1 / -1; }
.ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__title { grid-column: 1; grid-row: 1; text-align: left !important; }
.ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__eyebrow {
  grid-column: 1; grid-row: 2; text-align: left !important; text-transform: none !important; letter-spacing: 0 !important;
  font-family: var(--font-family-heading); font-size: 18px !important; color: var(--ttb-encre) !important; margin: 0 !important;
}
.ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__lead { grid-column: 2; grid-row: 2; margin: 0 !important; text-align: left !important; opacity: 1 !important; font-size: 15px; color: var(--color-text) !important; }
.ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__items {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 16px !important; margin: 18px 60px 0 70px;
}
.ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__item {
  background: #EFE6D8 !important; border: 1px solid #E2D4BF !important; border-radius: 10px !important;
  padding: 0 0 10px !important; text-align: center;
}
.ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__item img { aspect-ratio: 1 / .8; object-fit: cover; margin: 0 0 8px !important; }
.ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__item h3 { font-size: 15.5px !important; font-weight: 700 !important; margin: 0 !important; color: var(--ttb-encre); }
.ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__item p { font-size: 14px; color: var(--color-text) !important; }
.ttb-theme [data-v4-placement="emblematiques"] a.sws-v4-feature-grid__item:last-child {
  display: flex !important; flex-direction: column; justify-content: center; align-items: center; gap: 6px;
  padding: 18px 14px !important; background: #EADBC4 !important;
}
.ttb-theme [data-v4-placement="emblematiques"] a.sws-v4-feature-grid__item:last-child h3 { font-size: 19px !important; font-weight: 400 !important; line-height: 1.2; }
.ttb-theme [data-v4-placement="emblematiques"] a.sws-v4-feature-grid__item:last-child p { font-family: var(--font-family-heading); font-size: 15px; }
.ttb-theme [data-v4-placement="emblematiques"] a.sws-v4-feature-grid__item:last-child::after {
  content: 'Voir toute Emblématiques  →'; margin-top: 10px; padding: 7px 14px; border-radius: 999px;
  background: linear-gradient(180deg, #B04529 0%, #962F19 100%); color: #fff; font-family: var(--font-family-heading); font-size: 12.5px; white-space: nowrap;
}

/* ── Accueil · notre histoire ───────────────────────────────────────────── */
.ttb-theme [data-v4-placement="histoire"] > section { padding: 0 !important; overflow: hidden; position: relative; }
.ttb-theme [data-v4-placement="histoire"] .sws-v4-text-media > div { gap: 0 !important; align-items: stretch !important; max-width: none !important; flex-wrap: nowrap !important; }
.ttb-theme [data-v4-placement="histoire"] .sws-v4-text-media__media { flex: 0 0 44% !important; }
.ttb-theme [data-v4-placement="histoire"] .sws-v4-text-media__media img { height: 100% !important; object-fit: cover; border-radius: 0 !important; }
.ttb-theme [data-v4-placement="histoire"] .sws-v4-text-media__text {
  flex: 1 1 auto !important; padding: 34px 30% 34px 40px; position: relative;
  background: url('../../images/sofia.jpg') no-repeat right center / auto 100%;
}
.ttb-theme [data-v4-placement="histoire"] .sws-v4-text-media__text::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, var(--ttb-papier) 0%, var(--ttb-papier) 62%, rgba(250, 245, 236, 0) 78%);
}
.ttb-theme [data-v4-placement="histoire"] .sws-v4-text-media__text > * { position: relative; }
.ttb-theme [data-v4-placement="histoire"] .sws-v4-text-media__title { font-weight: 400 !important; font-size: clamp(26px, 2.4vw, 34px) !important; margin: 0 0 .5em !important; }
.ttb-theme [data-v4-placement="histoire"] .sws-v4-text-media__text > div { color: var(--color-text) !important; font-size: 16.5px; max-width: 46ch; }

/* ── Fiche produit ──────────────────────────────────────────────────────── */
.ttb-theme .mnx-breadcrumb { max-width: var(--container-max-width); margin: 0 auto; padding: 14px 20px 0; font-size: 14.5px; color: var(--ttb-encre); }
.ttb-theme .mnx-breadcrumb a { color: var(--ttb-encre); text-decoration: none; }
.ttb-theme .mnx-v4-page--product .mnx-v4-cols--tontons { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important; gap: 34px !important; padding-block: 16px 26px !important; }
.ttb-theme .mnx-pdp__gallery { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; }
.ttb-theme .mnx-pdp__thumbs { display: flex; flex-direction: column; gap: 10px; }
.ttb-theme .mnx-pdp__thumb { border: 1px solid var(--ttb-filet) !important; border-radius: 8px !important; overflow: hidden; padding: 0 !important; background: var(--ttb-papier) !important; }
.ttb-theme .mnx-pdp__thumb--active { border-color: var(--ttb-terre) !important; box-shadow: 0 0 0 1px var(--ttb-terre); }
.ttb-theme .mnx-pdp__thumb img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.ttb-theme .mnx-pdp__main-wrap { border-radius: 12px; overflow: hidden; background: var(--ttb-papier-2); box-shadow: var(--ttb-ombre); }
.ttb-theme .mnx-pdp__main-wrap img { display: block; width: 100%; max-height: 640px; object-fit: cover; }

.ttb-theme .mnx-pdp__info { position: relative; padding-top: 4px; }
.ttb-theme .mnx-pdp__info::before {
  content: ''; position: absolute; right: -6px; top: -10px; width: 120px; height: 120px; pointer-events: none;
  background: url('../../images/minaret.svg') no-repeat center / contain; opacity: .35;
}
.ttb-theme .ttb-pdp__eyebrow { margin: 0 0 4px; color: var(--ttb-terre); font-family: var(--font-family-heading); font-size: 15.5px; }
.ttb-theme .mnx-pdp__title { font-weight: 400 !important; font-size: clamp(32px, 3vw, 44px) !important; color: var(--ttb-encre) !important; margin: 0 0 4px !important; line-height: 1.05; }
.ttb-theme .ttb-pdp__histoire { color: var(--color-text); font-size: 16.5px; line-height: 1.45; max-width: 46ch; }
.ttb-theme .ttb-pdp__histoire p:first-child { margin: 0 0 14px; font-family: var(--font-family-heading); font-size: 19px; color: var(--ttb-encre); }
.ttb-theme .ttb-pdp__histoire p:first-child strong { font-weight: 400; }
.ttb-theme .ttb-pdp__histoire p { margin: 0 0 10px; }
.ttb-theme .mnx-pdp__price-block { margin: 16px 0 10px !important; }
.ttb-theme .mnx-pdp__price { font-family: var(--font-family-heading) !important; font-size: clamp(30px, 2.6vw, 38px) !important; color: var(--ttb-rouge) !important; font-weight: 400 !important; }
.ttb-theme .mnx-pdp__meta { display: none; }
.ttb-theme .mnx-pdp__buy-row { display: flex; gap: 12px; align-items: stretch; margin: 6px 0 12px; }
.ttb-theme .mnx-pdp__qty { display: flex; align-items: center; border: 1px solid var(--ttb-filet); border-radius: 999px; background: #fff; overflow: hidden; }
.ttb-theme .mnx-pdp__qty-btn { background: none; border: 0; width: 38px; height: 46px; font-size: 18px; color: var(--ttb-encre); cursor: pointer; }
.ttb-theme .mnx-pdp__qty-input { width: 40px; border: 0; text-align: center; font: inherit; background: transparent; -moz-appearance: textfield; }
.ttb-theme .mnx-pdp__add-btn { flex: 1 1 auto; justify-content: center; font-size: 17px !important; padding: 12px 24px !important; }
.ttb-theme .ttb-pdp__whatsapp {
  display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%;
  padding: 13px 22px; border-radius: 999px; text-decoration: none;
  background: linear-gradient(180deg, #23963F 0%, #1A7A32 100%); color: #fff !important;
  font-family: var(--font-family-heading); font-size: 18px;
  box-shadow: 0 2px 0 rgba(15, 70, 30, .25), 0 6px 14px rgba(26, 122, 50, .25);
}
.ttb-theme .ttb-pdp__whatsapp svg { width: 26px; height: 26px; fill: none; stroke: #fff; stroke-width: 1.5; }
.ttb-theme .ttb-pdp__promesses { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ttb-theme .ttb-pdp__promesses li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; line-height: 1.25; color: var(--ttb-encre); }
.ttb-theme .ttb-pdp__promesses svg { flex: 0 0 auto; width: 28px; height: 28px; fill: none; stroke: var(--ttb-terre); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.ttb-theme .mnx-pdp__actions, .ttb-theme .mnx-pdp-shipping, .ttb-theme .mnx-pdp__reassurance { display: none !important; }

/* Un tonton plein de détails */
.ttb-theme [data-v4-placement="details"] { max-width: var(--container-max-width); margin: 0 auto 22px; padding-inline: 20px; }
.ttb-details__title { font-weight: 400; font-size: clamp(24px, 2.2vw, 30px); margin: 0 0 12px; }
.ttb-details__photos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.ttb-details__photos li { margin: 0; text-align: center; }
.ttb-details__photos img { display: block; width: 100%; aspect-ratio: 1.12; object-fit: cover; border-radius: 8px; box-shadow: var(--ttb-ombre); }
.ttb-details__photos span { display: block; margin-top: 8px; font-size: 14px; color: var(--ttb-encre); }
.ttb-details__specs {
  list-style: none; margin: 16px 0 0; padding: 14px 10px; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr));
  background: var(--ttb-papier); border: 1px solid var(--ttb-filet); border-radius: 10px;
}
.ttb-details__specs li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 3px; padding: 4px 10px; border-left: 1px solid var(--ttb-filet); font-size: 13.5px; line-height: 1.25; }
.ttb-details__specs li:first-child { border-left: 0; }
.ttb-details__specs svg { width: 28px; height: 28px; fill: none; stroke: var(--ttb-terre); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; margin-bottom: 4px; }
.ttb-details__specs strong { font-family: var(--font-family-heading); font-weight: 400; color: var(--ttb-encre); font-size: 14.5px; }

/* Coffret | valise */
.ttb-theme .mnx-v4-page--product .mnx-v4-cols--tontons:nth-of-type(2),
.ttb-theme [data-v4-placement="coffret"], .ttb-theme [data-v4-placement="valise"] { min-width: 0; }
.ttb-theme [data-v4-placement="coffret"] > section,
.ttb-theme [data-v4-placement="valise"] > section {
  height: 100%; padding: 18px 20px !important; background: var(--ttb-papier) !important;
  border: 1px solid var(--ttb-filet); border-radius: var(--border-radius-lg);
}
.ttb-theme [data-v4-placement="coffret"] .sws-v4-text-media > div { flex-direction: column-reverse; align-items: stretch !important; gap: 12px !important; }
.ttb-theme [data-v4-placement="coffret"] .sws-v4-text-media__text { flex: 0 0 auto !important; }
.ttb-theme [data-v4-placement="coffret"] .sws-v4-text-media__title,
.ttb-theme [data-v4-placement="valise"] h2 { font-weight: 400 !important; font-size: clamp(22px, 1.9vw, 26px) !important; margin: 0 !important; }
.ttb-theme [data-v4-placement="coffret"] .sws-v4-text-media__text > div { display: none; }
.ttb-theme [data-v4-placement="coffret"] img { border-radius: 8px !important; }

/* Il te manque… */
.ttb-theme [data-v4-placement="related"] { max-width: var(--container-max-width); margin: 0 auto; padding: 4px 20px 30px; }
.ttb-theme [data-v4-placement="related"] .mnx-section__title { font-family: var(--font-family-heading); font-weight: 400; font-size: clamp(24px, 2.2vw, 30px); color: var(--ttb-encre); }
.ttb-theme [data-v4-placement="related"] .mnx-section__sub { font-family: var(--ttb-font-script); color: var(--ttb-encre); font-size: 20px; }

/* ── Pied de page ───────────────────────────────────────────────────────── */
.ttb-footer { margin-top: 26px; border-top: 1px solid var(--ttb-filet); background: rgba(250, 245, 236, .7); color: var(--ttb-encre); }
.ttb-footer__grid {
  max-width: var(--container-max-width); margin: 0 auto; padding: 26px 20px 14px;
  display: grid; grid-template-columns: auto 1fr auto auto; gap: 30px; align-items: start;
}
.ttb-footer__brand img { display: block; height: 62px; width: auto; mix-blend-mode: multiply; }
.ttb-footer__cols { display: flex; gap: 46px; }
.ttb-footer__col-title { margin: 0 0 4px; font-family: var(--font-family-heading); font-size: 15px; }
.ttb-footer__col ul { list-style: none; margin: 0; padding: 0; }
.ttb-footer__col li { font-size: 14px; line-height: 1.45; }
.ttb-footer__col a { text-decoration: none; color: #4B3F36; }
.ttb-footer__col a:hover { color: var(--ttb-terre); }
.ttb-footer__social { display: flex; gap: 14px; padding-top: 18px; }
.ttb-footer__social svg { width: 22px; height: 22px; fill: none; stroke: var(--ttb-encre); stroke-width: 1.6; }
.ttb-footer__script { margin: 8px 0 0; font-family: var(--ttb-font-script); font-size: 22px; line-height: 1.3; max-width: 13em; text-align: right; display: flex; align-items: flex-end; gap: 10px; }
.ttb-footer__script svg { flex: 0 0 auto; width: 26px; height: 26px; fill: none; stroke: var(--ttb-encre); stroke-width: 1.3; }
.ttb-footer__bar {
  max-width: var(--container-max-width); margin: 0 auto; padding: 10px 20px 18px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; border-top: 1px solid var(--ttb-filet);
  font-size: 13.5px; color: #5B4C40;
}
.ttb-footer__bar p { margin: 0; }
.ttb-footer__sep { margin: 0 10px; opacity: .6; }
.ttb-footer__legal { display: flex; gap: 16px; }
.ttb-footer__legal a { color: inherit; text-decoration: none; }
.ttb-footer__fabrique { margin-left: auto !important; display: flex; align-items: center; gap: 8px; }
.ttb-footer__fabrique svg { width: 22px; height: 22px; color: #C0703A; }

/* ── Tablette / mobile ──────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .ttb-burger { display: block; }
  .ttb-nav { display: none; }
  .ttb-header__inner { gap: 12px; height: 70px; }
  .ttb-logo { margin-right: auto; }
  .ttb-logo__croquis { display: none; }
  .ttb-logo__img { height: 46px; }
  .ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__items { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__items { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; margin: 18px 0 0; }
  .ttb-theme .mnx-v4-cols--tontons { grid-template-columns: 1fr !important; }
  .ttb-theme .mnx-v4-page--product .mnx-v4-cols--tontons { grid-template-columns: 1fr !important; }
  .ttb-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
  .ttb-header__actions { gap: 10px; }
  .ttb-theme [data-v4-placement="hero"] { padding-inline: 12px; margin-top: 10px; }
  .ttb-theme [data-v4-placement="hero"] .sws-v4-hero {
    min-height: 520px !important; align-items: flex-end !important; padding: 0 18px 22px !important;
    background-size: cover !important; background-position: 70% center !important;
  }
  .ttb-theme [data-v4-placement="hero"] .sws-v4-hero__veil { background: linear-gradient(0deg, rgba(40, 24, 14, .82) 0%, rgba(40, 24, 14, .55) 42%, rgba(40, 24, 14, 0) 70%) !important; }
  .ttb-theme [data-v4-placement="hero"] .sws-v4-hero__inner { text-align: center !important; max-width: none !important; width: 100%; }
  .ttb-theme [data-v4-placement="hero"] .sws-v4-hero__title { color: #fff !important; font-size: 30px !important; text-shadow: 0 1px 6px rgba(0, 0, 0, .35); }
  .ttb-theme .ttb-hero__encre { display: inline; color: #fff; }
  .ttb-theme [data-v4-placement="hero"] .sws-v4-hero__lead { display: none; }
  .ttb-theme [data-v4-placement="hero"] .sws-v4-cta--plein { width: 100%; justify-content: center; }
  .ttb-theme [data-v4-placement="reassurance"] .mnx-perks__inner { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
  .ttb-theme [data-v4-placement="reassurance"] .mnx-perks__item { flex-direction: column; text-align: center; gap: 4px; padding: 4px 2px; }
  .ttb-theme [data-v4-placement="reassurance"] .mnx-perks__label > span,
  .ttb-theme [data-v4-placement="reassurance"] .mnx-perks__sub { font-size: 11px !important; line-height: 1.2 !important; }
  .ttb-theme [data-v4-placement="villes"], .ttb-theme [data-v4-placement="emblematiques"], .ttb-theme [data-v4-placement="histoire"],
  .ttb-theme [data-v4-placement="details"], .ttb-theme [data-v4-placement="related"] { padding-inline: 12px; }
  .ttb-theme [data-v4-placement="villes"] > section { padding: 20px 12px 22px !important; background-position: center 80px !important; }
  .ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__items { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px !important; }
  .ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__item h3 { font-size: 15px !important; }
  .ttb-theme .mnx-v4-cols--tontons { padding-inline: 12px !important; }
  .ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__inner { flex-wrap: wrap !important; }
  .ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__media { flex: 1 1 100% !important; margin: 0; order: 2; }
  .ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media { margin: 0; }
  .ttb-theme [data-v4-placement="emblematiques"] > section { display: block; padding: 20px 14px !important; }
  .ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__items { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .ttb-theme [data-v4-placement="emblematiques"] a.sws-v4-feature-grid__item:last-child { grid-column: 1 / -1; }
  .ttb-theme [data-v4-placement="histoire"] .sws-v4-text-media > div { flex-wrap: wrap !important; }
  .ttb-theme [data-v4-placement="histoire"] .sws-v4-text-media__media { flex: 1 1 100% !important; }
  .ttb-theme [data-v4-placement="histoire"] .sws-v4-text-media__text { padding: 22px 18px; background: none; }
  .ttb-theme [data-v4-placement="histoire"] .sws-v4-text-media__text::before { display: none; }
  .ttb-theme .mnx-pdp__gallery { grid-template-columns: 1fr; }
  .ttb-theme .mnx-pdp__thumbs { order: 2; flex-direction: row; overflow-x: auto; }
  .ttb-theme .mnx-pdp__thumb { flex: 0 0 58px; }
  .ttb-theme .mnx-v4-page--product .mnx-v4-cols--tontons { padding-inline: 12px !important; gap: 16px !important; }
  .ttb-theme .mnx-pdp__info::before { width: 80px; height: 80px; }
  .ttb-details__photos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ttb-details__specs { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 12px; }
  .ttb-details__specs li:nth-child(3n + 1) { border-left: 0; }
  .ttb-theme .ttb-pdp__promesses li { flex-direction: column; text-align: center; font-size: 12px; }
  .ttb-footer__grid { grid-template-columns: 1fr; gap: 18px; }
  .ttb-footer__cols { flex-wrap: wrap; gap: 22px 34px; }
  .ttb-footer__script { text-align: left; }
  .ttb-footer__fabrique { margin-left: 0 !important; }
}

/* ══ Passe 2 — écarts relevés contre la maquette ═══════════════════════════ */

/* Réassurance : pas de filets pleine largeur, pictos au trait sans pastille. */
.ttb-theme [data-v4-placement="reassurance"] .mnx-perks { border: 0 !important; }
.ttb-theme [data-v4-placement="reassurance"] .mnx-perks__item i {
  width: auto !important; height: auto !important; flex: 0 0 auto !important;
  background: none !important; color: var(--ttb-terre) !important; font-size: 28px !important;
}
.ttb-theme [data-v4-placement="reassurance"] .mnx-perks__item i.fa-whatsapp { color: var(--ttb-whatsapp) !important; }

/* Les boutons ne se coupent pas. */
.ttb-theme .sws-v4-cta--plein { white-space: nowrap; }

/* Le Circuit : grille — texte en haut à gauche, trio dessous ; carte, prix, bouton à droite. */
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__inner {
  display: grid !important; height: 100%;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  grid-template-rows: auto auto auto 1fr auto auto;
  column-gap: 10px !important; row-gap: 0 !important;
}
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__text { display: contents !important; background: none; }
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__title   { grid-column: 1 / -1; grid-row: 1; position: relative; z-index: 1; }
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__eyebrow { grid-column: 1 / -1; grid-row: 2; position: relative; z-index: 1; }
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__body    { grid-column: 1; grid-row: 3; max-width: 22ch; position: relative; z-index: 1; }
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__media   { grid-column: 1; grid-row: 4 / 7; margin: 6px 0 -24px -12px !important; align-self: end; flex: none !important; }
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__price   { grid-column: 2; grid-row: 5; margin: 0 0 12px !important; }
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__cta     { grid-column: 2; grid-row: 6; justify-self: start; }
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__note    { grid-column: 2; grid-row: 7; }
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__inner::before {
  content: ''; grid-column: 2; grid-row: 1 / 5; min-height: 170px; margin: -6px -10px 8px 0;
  background: url('../../images/circuit.svg') no-repeat center / contain;
}

/* Le Tour du Maroc : texte à gauche, coffret en bas à droite. */
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__inner {
  display: grid !important; height: 100%;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  grid-template-rows: auto auto auto auto auto 1fr;
  column-gap: 0 !important; row-gap: 0 !important;
}
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__text { display: contents !important; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__title   { grid-column: 1 / -1; grid-row: 1; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__eyebrow { grid-column: 1 / -1; grid-row: 2; margin: 4px 0 0 !important; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__body    { grid-column: 1 / -1; grid-row: 3; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__price   { grid-column: 1; grid-row: 4; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__cta     { grid-column: 1; grid-row: 5; justify-self: start; align-self: start; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media {
  grid-column: 1 / -1; grid-row: 4 / 7; margin: 0 -26px -24px 0 !important; display: flex; justify-content: flex-end; align-items: flex-end; flex: none !important;
}
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media img { width: 62% !important; border-radius: 12px 0 12px 0; }

/* Emblématiques : « Les Emblématiques — » puis « Bientôt au Passeport » et la phrase sur la même ligne. */
.ttb-theme [data-v4-placement="emblematiques"] > section { display: block !important; }
.ttb-theme [data-v4-placement="emblematiques"] > section > .sws-container {
  display: grid; grid-template-columns: auto 1fr; column-gap: 40px; align-items: baseline; max-width: none; padding: 0;
}
.ttb-theme [data-v4-placement="emblematiques"] > section > .sws-container > * { grid-column: 1 / -1; }
.ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__title   { grid-column: 1 / -1 !important; grid-row: 1; }
.ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__eyebrow { grid-column: 1 !important; grid-row: 2; }
.ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__lead    { grid-column: 2 !important; grid-row: 2; }
.ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__items   { grid-row: 3; margin: 16px 70px 0 80px !important; }

@media (max-width: 767px) {
  .ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__inner,
  .ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__inner { grid-template-columns: 1fr 1fr; }
  .ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__media { grid-column: 1 / -1; grid-row: 7; margin: 12px 0 -20px !important; }
  .ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__inner::before { grid-row: 3 / 7; min-height: 120px; }
  .ttb-theme [data-v4-placement="emblematiques"] > section > .sws-container { display: block; }
  .ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__items { margin: 14px 0 0 !important; }
}
.ttb-theme [data-v4-placement="circuit"] > section::after { top: auto; bottom: 40px; left: -18px; width: 100px; height: 150px; opacity: .35; z-index: 0; }
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__media { position: relative; z-index: 1; }
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__body { max-width: 32ch; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media { grid-row: 3 / 7; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media img { width: 74% !important; }

/* ══ Passe 3 — fiche produit ═══════════════════════════════════════════════ */
.ttb-theme .mnx-breadcrumb__deals { display: none !important; }
.ttb-theme .mnx-pdp__info .sws-reassurance { display: none !important; }
.ttb-theme .mnx-pdp__thumbs { overflow: visible !important; max-height: none !important; scrollbar-width: none; }
.ttb-theme .mnx-pdp__thumbs::-webkit-scrollbar { display: none; }
.ttb-theme .mnx-pdp__main-wrap { aspect-ratio: .8; max-height: 620px; }
.ttb-theme .mnx-pdp__main-wrap .mnx-viewer-gallery,
.ttb-theme .mnx-pdp__main-wrap .mnx-viewer-img { width: 100% !important; height: 100% !important; max-height: none !important; }
.ttb-theme .mnx-pdp__main-wrap .mnx-viewer-img { object-fit: cover !important; object-position: center 35%; }

/* La valise : petite image à gauche, liste cochée à droite. */
.ttb-theme [data-v4-placement="valise"] .sws-v4-pack > div { display: grid !important; grid-template-columns: 40% 1fr !important; gap: 18px !important; align-items: center !important; }
.ttb-theme [data-v4-placement="valise"] .sws-v4-pack__media { grid-column: 1; grid-row: 1 / span 2; width: auto !important; max-width: none !important; }
.ttb-theme [data-v4-placement="valise"] .sws-v4-pack__media img { width: 100% !important; aspect-ratio: .82; object-fit: cover; border-radius: 8px !important; }
.ttb-theme [data-v4-placement="valise"] .sws-v4-pack__text { grid-column: 2; }
.ttb-theme [data-v4-placement="valise"] ul { list-style: none !important; padding: 0 !important; margin: 12px 0 0 !important; }
.ttb-theme [data-v4-placement="valise"] li { position: relative; padding-left: 28px !important; margin: 0 0 10px !important; font-size: 15px; color: var(--ttb-encre); }
.ttb-theme [data-v4-placement="valise"] li::before {
  content: ''; position: absolute; left: 0; top: 2px; width: 17px; height: 17px; border: 1.4px solid var(--ttb-encre); border-radius: 50%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 8.5 2.6 2.4L12 5.5' fill='none' stroke='%231F2B49' stroke-width='1.6'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.ttb-theme [data-v4-placement="valise"] li::marker { content: none; }
.ttb-theme [data-v4-placement="coffret"] .sws-v4-text-media__media img { aspect-ratio: 2.1; object-fit: cover; }

/* Il te manque… : timbres compacts, sans bouton d'achat (la maquette montre une collection, pas un rayon). */
.ttb-theme [data-v4-placement="related"] .mnx-section__subtitle { font-family: var(--ttb-font-script) !important; font-size: 21px !important; color: var(--ttb-encre) !important; }
.ttb-theme [data-v4-placement="related"] .mnx-product-grid { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 16px !important; }
.ttb-theme [data-v4-placement="related"] .sws-product-card { background: #EFE6D8 !important; border: 1px solid #E2D4BF !important; border-radius: 10px !important; box-shadow: none !important; padding: 0 0 10px !important; text-align: center; }
.ttb-theme [data-v4-placement="related"] .sws-product-card__image-wrap { aspect-ratio: 1; overflow: hidden; }
.ttb-theme [data-v4-placement="related"] .sws-product-card__image { width: 100%; height: 100%; object-fit: cover; }
.ttb-theme [data-v4-placement="related"] .sws-product-card__actions,
.ttb-theme [data-v4-placement="related"] .sws-product-card__wishlist,
.ttb-theme [data-v4-placement="related"] .sws-product-card__footer,
.ttb-theme [data-v4-placement="related"] .sws-product-card__cta,
.ttb-theme [data-v4-placement="related"] form,
.ttb-theme [data-v4-placement="related"] .addtocart,
.ttb-theme [data-v4-placement="related"] button { display: none !important; }
.ttb-theme [data-v4-placement="related"] .sws-product-card__title { font-family: var(--font-family-heading) !important; font-weight: 400 !important; font-size: 15px !important; color: var(--ttb-encre) !important; }
.ttb-theme [data-v4-placement="related"] .sws-product-card__price { color: var(--ttb-terre) !important; font-family: var(--font-family-heading); font-size: 14px !important; }
.ttb-theme [data-v4-placement="related"] .mnx-section__more { text-align: right; }
@media (max-width: 767px) {
  .ttb-theme [data-v4-placement="related"] .mnx-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px !important; }
  .ttb-theme [data-v4-placement="valise"] .sws-v4-pack > div { grid-template-columns: 34% 1fr !important; }
}
.ttb-theme [data-v4-placement="coffret"] > section, .ttb-theme [data-v4-placement="valise"] > section { height: auto; }
.ttb-theme .mnx-v4-page--product .mnx-v4-cols--tontons { align-items: start; }
.ttb-theme [data-v4-placement="coffret"] .sws-v4-text-media > div, .ttb-theme [data-v4-placement="valise"] .sws-v4-pack > div { min-height: 0 !important; }
.ttb-theme .sws-v4-product-pick__more { text-align: right; margin: 6px 0 0 !important; }
.ttb-theme .sws-v4-product-pick__more a {
  display: inline-flex; align-items: center; gap: .6em; padding: 9px 22px; border-radius: 999px; text-decoration: none;
  background: linear-gradient(180deg, #B04529 0%, #962F19 100%); color: #fff !important; font-family: var(--font-family-heading); font-size: 15px;
}
.ttb-theme .sws-v4-product-pick__more a::after { content: '→'; }

/* ══ Passe 4 — mobile et hauteur des cartes en colonne ═════════════════════ */
/* En colonne, le `flex: 1 1 22em` du bloc devient une HAUTEUR de 22em : vide sous l'image. */
.ttb-theme [data-v4-placement="coffret"] .sws-v4-text-media__media,
.ttb-theme [data-v4-placement="coffret"] .sws-v4-text-media__text { flex: 0 0 auto !important; }
.ttb-theme .mnx-pdp__gallery, .ttb-theme [data-v4-placement="gallery"], .ttb-theme [data-v4-placement="main"] { min-width: 0; }
.ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__item h3 { overflow-wrap: normal; word-break: keep-all; hyphens: none; }

@media (max-width: 767px) {
  .ttb-theme .mnx-pdp__thumbs { overflow-x: auto !important; max-width: 100%; }
  .ttb-theme .mnx-pdp__main-wrap { aspect-ratio: .9; }
  .ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__item h3 { font-size: 13.5px !important; }
  /* Circuit et Tour : une seule colonne, l'image en dernier, la carte du trajet au repos. */
  .ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__inner,
  .ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__inner { display: flex !important; flex-direction: column !important; }
  .ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__inner::before { display: none; }
  .ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__media,
  .ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media { order: 9; margin: 14px -14px -24px !important; justify-content: center; }
  .ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media img { width: 100% !important; border-radius: 0 0 12px 12px; }
  .ttb-theme .mnx-v4-cols--tontons > .mnx-v4-slot > section { padding: 20px 18px !important; }
  .ttb-theme [data-v4-placement="circuit"] > section::after { display: none; }
}
/* Cartes produit (rubriques, recherche) : texte blanc sur terracotta. */
.ttb-theme .sws-product-card__add { color: #fff !important; background: linear-gradient(180deg, #B04529 0%, #962F19 100%) !important; border: 0 !important; border-radius: 999px !important; }
.ttb-theme .sws-product-card__add .fa { color: #fff !important; }
.ttb-theme .sws-product-card__title { font-family: var(--font-family-heading); font-weight: 400; color: var(--ttb-encre); }

/* ══ Passe 5 — retour Mohamed : angles droits, pleine largeur, sections serrées ══
   La maquette occupe ~95 % de la largeur (gouttière ≈ 2,6 vw) et ses sections se
   touchent presque (≈ 10 px). Aucun arrondi sur le hero ni sur les panneaux ;
   les boutons restent en pilule, comme sur la maquette. */
.ttb-theme .sws-container,
.ttb-header__inner, .ttb-footer__grid, .ttb-footer__bar, .ttb-theme .mnx-breadcrumb,
.ttb-theme [data-v4-placement="hero"], .ttb-theme [data-v4-placement="villes"],
.ttb-theme [data-v4-placement="emblematiques"], .ttb-theme [data-v4-placement="histoire"],
.ttb-theme [data-v4-placement="details"], .ttb-theme [data-v4-placement="related"] {
  padding-inline: var(--ttb-gouttiere) !important;
}
.ttb-theme .mnx-v4-page > .sws-container { padding-inline: var(--ttb-gouttiere) !important; }

.ttb-theme [data-v4-placement="hero"] { margin: 8px auto 0 !important; }
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero {
  border-radius: 0 !important; box-shadow: none !important;
  min-height: clamp(380px, 42vw, 760px) !important;
  padding: 0 clamp(24px, 4.5vw, 90px) !important;
}
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero__inner { max-width: min(560px, 42%) !important; }
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero__title { font-size: clamp(36px, 4.4vw, 84px) !important; }
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero__lead { font-size: clamp(16px, 1.3vw, 24px) !important; }

.ttb-theme [data-v4-placement="reassurance"] .mnx-perks { padding-block: 12px !important; }

.ttb-theme [data-v4-placement="villes"] > section,
.ttb-theme [data-v4-placement="emblematiques"] > section,
.ttb-theme [data-v4-placement="histoire"] > section,
.ttb-theme [data-v4-placement="circuit"] > section,
.ttb-theme [data-v4-placement="tour"] > section,
.ttb-theme [data-v4-placement="coffret"] > section,
.ttb-theme [data-v4-placement="valise"] > section,
.ttb-details__specs, .ttb-theme .mnx-pdp__main-wrap {
  border-radius: 0 !important; box-shadow: none !important;
}
.ttb-theme [data-v4-placement="villes"], .ttb-theme [data-v4-placement="emblematiques"],
.ttb-theme [data-v4-placement="histoire"], .ttb-theme [data-v4-placement="details"] { margin: 0 auto var(--ttb-ecart) !important; }
.ttb-theme .mnx-v4-cols--tontons { gap: var(--ttb-ecart) !important; padding-block: 0 var(--ttb-ecart) !important; }
.ttb-theme .mnx-v4-page--product .mnx-v4-cols--tontons { gap: clamp(20px, 2.4vw, 44px) !important; padding-block: 10px var(--ttb-ecart) !important; }

/* Cartes intérieures : à peine adoucies, comme les vignettes de la maquette. */
.ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__item,
.ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__item img,
.ttb-theme [data-v4-placement="emblematiques"] .sws-v4-feature-grid__item,
.ttb-theme [data-v4-placement="related"] .sws-product-card,
.ttb-details__photos img, .ttb-theme .mnx-pdp__thumb,
.ttb-theme [data-v4-placement="coffret"] img, .ttb-theme [data-v4-placement="valise"] img,
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media img { border-radius: 3px !important; }
.ttb-details__photos img { box-shadow: none; }

.ttb-footer { margin-top: var(--ttb-ecart); }
/* Le titre fixe la largeur de sa colonne (en `em`) : jamais de mot coupé. */
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero__inner { max-width: none !important; width: auto; }
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero__title { max-width: 8.4em; word-break: normal !important; overflow-wrap: normal !important; hyphens: none !important; }
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero__lead { max-width: 28ch !important; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media img { width: 82% !important; }
/* Fiche : galerie ≈ 42 % comme la maquette, visuel qui remplit sa colonne. */
.ttb-theme .mnx-v4-page--product .mnx-v4-cols--tontons:first-of-type { grid-template-columns: minmax(0, .74fr) minmax(0, 1fr) !important; }
.ttb-theme .mnx-pdp__gallery { grid-template-columns: clamp(56px, 4.6vw, 84px) minmax(0, 1fr); }
.ttb-theme .mnx-pdp__main-wrap { aspect-ratio: .76; max-height: none; width: 100%; }
@media (max-width: 1024px) { .ttb-theme .mnx-v4-page--product .mnx-v4-cols--tontons:first-of-type { grid-template-columns: 1fr !important; } .ttb-theme .mnx-pdp__main-wrap { max-height: 640px; } }
@media (max-width: 767px) {
  .ttb-theme .mnx-pdp__gallery { grid-template-columns: minmax(0, 1fr); }
  .ttb-theme .mnx-pdp__main-wrap { aspect-ratio: .85; }
}

/* ══ Passe 6 — images HD ════════════════════════════════════════════════════ */
/* Hero : la photo du riad en pleine image ; voile clair à gauche pour l'encre du titre. */
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero {
  background-color: #C9A77D !important;
  background-size: cover !important;
  background-position: center 40% !important;
}
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero__veil {
  background: linear-gradient(90deg, rgba(243, 228, 202, .92) 0%, rgba(243, 228, 202, .78) 26%, rgba(243, 228, 202, .35) 40%, rgba(243, 228, 202, 0) 52%) !important;
}

/* Les 6 villes : panorama croqué sur parchemin ; les vignettes s'y fondent. */
.ttb-theme [data-v4-placement="villes"] > section {
  background-color: #F6E8CF !important;
  background-image: url('../../images/panorama.jpg') !important;
  background-size: 100% auto !important;
  background-position: center 40px !important;
}
.ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__item { background: linear-gradient(180deg, rgba(246, 232, 207, 0) 0%, rgba(246, 232, 207, 0) 58%, rgba(240, 224, 197, .96) 59%) !important; }
.ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__item img { mix-blend-mode: multiply; }

/* Le Circuit : la carte illustrée, fondue dans le papier. */
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__inner::before {
  background: url('../../images/carte-circuit.jpg') no-repeat center / cover !important;
  min-height: 220px; margin: -24px -26px 10px 0 !important;
  -webkit-mask-image: radial-gradient(120% 100% at 70% 40%, #000 55%, transparent 85%);
  mask-image: radial-gradient(120% 100% at 70% 40%, #000 55%, transparent 85%);
}

/* Le Tour du Maroc : le coffret HD occupe la moitié droite. */
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media { grid-column: 2; grid-row: 1 / 7; align-items: flex-end; margin: -24px -26px -24px 0 !important; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media img { width: 100% !important; height: 100%; object-fit: cover; object-position: 30% center; border-radius: 0 !important; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__title,
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__eyebrow,
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__body { grid-column: 1 !important; position: relative; z-index: 1; }

/* Fiche : tampon de la ville (Marrakech seulement tant que les autres n'ont pas le leur). */
.ttb-theme .mnx-pdp__info[data-ttb-ville="marrakech"]::before {
  background: url('../../images/tampon-marrakech.webp') no-repeat right top / contain;
  width: clamp(150px, 15vw, 250px); height: clamp(175px, 17.5vw, 290px); right: -10px; top: -14px; opacity: 1;
  mix-blend-mode: multiply;
  -webkit-mask-image: radial-gradient(90% 90% at 60% 45%, #000 60%, transparent 95%);
  mask-image: radial-gradient(90% 90% at 60% 45%, #000 60%, transparent 95%);
}
.ttb-theme .mnx-pdp__info[data-ttb-ville] .ttb-pdp__histoire { max-width: min(46ch, calc(100% - 140px)); }
@media (max-width: 767px) {
  .ttb-theme [data-v4-placement="hero"] .sws-v4-hero { background-position: 62% center !important; }
  .ttb-theme [data-v4-placement="villes"] > section { background-size: 220% auto !important; background-position: center 60px !important; }
  .ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media { margin: 14px -18px -20px !important; }
  .ttb-theme .mnx-pdp__info[data-ttb-ville="marrakech"]::before { width: 110px; height: 128px; }
  .ttb-theme .mnx-pdp__info[data-ttb-ville] .ttb-pdp__histoire { max-width: none; }
}
/* Passe 6b — tontons opaques, titre dégagé, carte entière, coffret à droite. */
.ttb-theme [data-v4-placement="villes"] .sws-v4-feature-grid__item img { mix-blend-mode: normal; }
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero__title { font-size: clamp(36px, 3.9vw, 74px) !important; }
.ttb-theme [data-v4-placement="hero"] .sws-v4-hero__veil {
  background: linear-gradient(90deg, rgba(243, 228, 202, .94) 0%, rgba(243, 228, 202, .82) 30%, rgba(243, 228, 202, .4) 44%, rgba(243, 228, 202, 0) 54%) !important;
}
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__inner::before {
  background-size: contain !important; background-position: center top !important; min-height: 250px; margin: -14px -16px 8px 0 !important;
  -webkit-mask-image: radial-gradient(75% 80% at 50% 45%, #000 70%, transparent 100%);
  mask-image: radial-gradient(75% 80% at 50% 45%, #000 70%, transparent 100%);
}
.ttb-theme [data-v4-placement="tour"] > section { position: relative; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__inner { grid-template-columns: minmax(0, 1fr) !important; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__title,
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__eyebrow,
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__body,
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__price,
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__cta { grid-column: 1 !important; position: relative; z-index: 1; }
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media {
  position: absolute !important; right: 0; bottom: 0; width: 60%; height: 74%; margin: 0 !important; z-index: 0;
}
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media img {
  width: 100% !important; height: 100% !important; object-fit: cover; object-position: 20% 30%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 22%); mask-image: linear-gradient(90deg, transparent 0%, #000 22%);
}
@media (max-width: 767px) {
  .ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media { position: static !important; width: auto; height: auto; margin: 14px -18px -20px !important; }
  .ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media img { -webkit-mask-image: none; mask-image: none; height: auto !important; }
}
@media (max-width: 767px) {
  .ttb-theme [data-v4-placement="hero"] .sws-v4-hero { min-height: 560px !important; background-position: 62% top !important; }
  .ttb-theme [data-v4-placement="hero"] .sws-v4-hero__veil { background: linear-gradient(0deg, rgba(38, 22, 12, .92) 0%, rgba(38, 22, 12, .78) 38%, rgba(38, 22, 12, .25) 58%, rgba(38, 22, 12, 0) 70%) !important; }
}
.ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media > a { display: block; width: 100%; height: 100%; }
@media (max-width: 767px) { .ttb-theme [data-v4-placement="tour"] .sws-v4-entity-showcase__media > a { height: auto; } }
/* Fondus resserrés : le papier des illustrations disparaît dans celui de la page. */
.ttb-theme .mnx-pdp__info[data-ttb-ville="marrakech"]::before {
  -webkit-mask-image: radial-gradient(ellipse closest-side at 55% 50%, #000 62%, transparent 100%);
  mask-image: radial-gradient(ellipse closest-side at 55% 50%, #000 62%, transparent 100%);
}
.ttb-theme [data-v4-placement="circuit"] .sws-v4-entity-showcase__inner::before {
  -webkit-mask-image: radial-gradient(ellipse closest-side at 50% 50%, #000 76%, transparent 100%);
  mask-image: radial-gradient(ellipse closest-side at 50% 50%, #000 76%, transparent 100%);
}
.ttb-theme .mnx-pdp__info[data-ttb-ville="marrakech"]::before {
  right: 0;
  -webkit-mask-image: radial-gradient(ellipse closest-side at 50% 50%, #000 74%, transparent 100%);
  mask-image: radial-gradient(ellipse closest-side at 50% 50%, #000 74%, transparent 100%);
}
/* Tampon détouré (PNG transparent) : ni masque ni fusion, le texte manuscrit reste entier. */
.ttb-theme .mnx-pdp__info[data-ttb-ville="marrakech"]::before {
  background-image: url('../../images/tampon-marrakech.webp') !important;
  mix-blend-mode: normal; -webkit-mask-image: none; mask-image: none;
}
