/* Pages entreprises (B2B) — styles scopés sous .ent
   Charte Adelante : encre, sable, orange ; motif du trajet en pointillés du logo. */
.ent{
  --ink:#1d1d1b;
  --text:#2b2824;
  --stone:#6b645c;
  --sand:#f7f1e8;
  --line:#e7ded1;
  --orange:#d86727;
  --orange-dark:#b9541b;
  --amber:#f2b45a;
  color:var(--text);
  background:#fff;
}
.ent *, .ent *::before, .ent *::after{ box-sizing:border-box; }
.ent-wrap{ max-width:72rem; margin:0 auto; padding:0 1.25rem; }
.ent-section{ padding:6rem 0; }
.ent h2{ font-size:clamp(1.9rem,3.6vw,3rem); line-height:1.12; font-weight:800; letter-spacing:-.02em; color:var(--ink); max-width:24ch; hyphens:manual; text-wrap:balance; }
.ent-lead{ font-size:1.08rem; line-height:1.7; color:var(--stone); max-width:40rem; margin-top:1.1rem; }

/* Boutons */
.ent-btn{ display:inline-flex; align-items:center; gap:.6rem; padding:1rem 1.6rem; border-radius:999px; font-weight:700; font-size:1rem; text-decoration:none; transition:background-color .2s, color .2s; }
.ent-btn:focus-visible{ outline:3px solid var(--amber); outline-offset:3px; }
.ent-btn-orange{ background:var(--orange); color:#fff; }
.ent-btn-orange:hover{ background:var(--orange-dark); }
.ent-btn-ghost{ border:1.5px solid rgba(255,255,255,.7); color:#fff; }
.ent-btn-ghost:hover{ background:#fff; color:var(--ink); }

/* Hero : la photo du groupe porte la page */
.ent-hero{ position:relative; min-height:min(88vh,52rem); display:flex; align-items:flex-end; color:#fff; overflow:hidden; background:var(--ink); }
.ent-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 62%; }
.ent-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(29,29,27,.1) 15%, rgba(29,29,27,.6) 50%, rgba(29,29,27,.94) 100%); }
.ent-hero .ent-wrap{ position:relative; z-index:1; width:100%; padding-top:8rem; padding-bottom:4rem; }
.ent .ent-hero h1{ font-size:clamp(2.5rem,6vw,5rem); line-height:1.02; font-weight:800; letter-spacing:-.035em; color:#fff; max-width:15ch; margin:0; hyphens:manual; text-wrap:balance; text-shadow:0 2px 24px rgba(0,0,0,.35); }
.ent-hero-text{ margin-top:1.5rem; font-size:1.15rem; line-height:1.65; color:rgba(255,255,255,.9); max-width:36rem; }
.ent-actions{ display:flex; flex-wrap:wrap; gap:.85rem; margin-top:2rem; }
.ent-facts{ display:flex; flex-wrap:wrap; gap:.6rem 2rem; margin-top:3rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.25); font-size:.95rem; color:rgba(255,255,255,.85); list-style:none; }
.ent-facts i{ color:var(--amber); margin-right:.5rem; }

/* Formats : trois colonnes séparées par des filets, pas de cartes */
.ent-formats{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:3.5rem; border-top:2px solid var(--ink); }
.ent-format{ padding:2rem 2rem 0 0; }
.ent-format + .ent-format{ padding-left:2rem; border-left:1px solid var(--line); }
.ent-format h3{ font-size:1.35rem; font-weight:800; color:var(--ink); letter-spacing:-.01em; }
.ent-format p{ margin-top:.85rem; line-height:1.7; color:var(--text); }
.ent-format ul{ margin-top:1.25rem; list-style:none; padding:0; }
.ent-format li{ padding:.55rem 0; border-top:1px solid var(--line); font-size:.95rem; color:var(--stone); }
.ent-format li::before{ content:""; display:inline-block; width:.45rem; height:.45rem; border-radius:50%; background:var(--orange); margin-right:.7rem; vertical-align:middle; }

/* Méthode : bandeau sombre avec la photo de départ */
.ent-method{ position:relative; color:#fff; background:var(--ink); overflow:hidden; }
.ent-method-photo{ position:relative; height:clamp(16rem,38vw,30rem); }
.ent-method-photo img{ width:100%; height:100%; object-fit:cover; object-position:center 45%; display:block; }
.ent-method-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(29,29,27,0) 55%, var(--ink) 100%); }
.ent-method .ent-wrap{ position:relative; padding-top:1rem; padding-bottom:6rem; }
.ent .ent-method h2{ color:#fff; }
.ent-steps{ list-style:none; padding:0; margin-top:3rem; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2rem; counter-reset:step; }
.ent-steps li{ counter-increment:step; border-top:2px solid var(--orange); padding-top:1.25rem; }
.ent-steps li::before{ content:counter(step); display:block; font-size:2.75rem; font-weight:800; line-height:1; color:var(--orange); letter-spacing:-.03em; margin-bottom:1rem; }
.ent-steps h3{ font-size:1.15rem; font-weight:700; color:#fff; }
.ent-steps p{ margin-top:.6rem; line-height:1.65; color:rgba(255,255,255,.75); font-size:.97rem; }

/* Ce que vous n'avez plus à gérer */
.ent-sand{ background:var(--sand); }
.ent-tasks{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:4rem; margin-top:3rem; }
.ent-task{ display:grid; grid-template-columns:2.25rem 1fr; gap:1rem; padding:1.4rem 0; border-top:1px solid var(--line); }
.ent-task i{ color:var(--orange); font-size:1.25rem; margin-top:.15rem; }
.ent-task strong{ display:block; font-weight:700; color:var(--ink); }
.ent-task span{ display:block; margin-top:.25rem; color:var(--stone); line-height:1.6; }

/* Pourquoi Adelante */
.ent-why{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:4rem; align-items:start; }
.ent-why dl{ margin:0; }
.ent-why dt{ font-weight:800; font-size:1.15rem; color:var(--ink); padding-top:1.5rem; border-top:1px solid var(--line); }
.ent-why dt:first-child{ border-top:2px solid var(--ink); }
.ent-why dd{ margin:.5rem 0 1.5rem; line-height:1.7; color:var(--text); }

/* FAQ */
.ent-faq{ max-width:48rem; margin-top:2.5rem; }
.ent-faq details{ border-top:1px solid var(--line); }
.ent-faq details:last-child{ border-bottom:1px solid var(--line); }
.ent-faq summary{ display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.35rem 0; font-weight:700; color:var(--ink); cursor:pointer; list-style:none; }
.ent-faq summary::-webkit-details-marker{ display:none; }
.ent-faq summary:focus-visible{ outline:3px solid var(--orange); outline-offset:4px; }
.ent-faq summary i{ color:var(--orange); transition:transform .2s; }
.ent-faq details[open] summary i{ transform:rotate(45deg); }
.ent-faq details p{ padding:0 0 1.5rem; line-height:1.7; color:var(--stone); max-width:42rem; }

/* Brief */
.ent-brief{ display:grid; grid-template-columns:minmax(0,4fr) minmax(0,7fr); gap:4rem; align-items:start; }
.ent-brief-aside{ position:sticky; top:7rem; }
.ent-contact{ margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--line); line-height:1.8; color:var(--stone); }
.ent-contact a{ color:var(--ink); font-weight:700; text-decoration:none; }
.ent-contact a:hover{ color:var(--orange); }
.ent-panel{ background:#fff; border:1px solid var(--line); border-radius:24px; padding:2.5rem; }
.ent-form{ display:grid; gap:1.5rem; }
.ent-form fieldset{ border:0; padding:0; margin:0; }
.ent-form legend, .ent-form label.ent-label{ display:block; font-weight:700; font-size:.95rem; color:var(--ink); margin-bottom:.6rem; }
.ent-grid2{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.ent-choices{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
.ent-choice{ display:flex; align-items:center; gap:.7rem; padding:.9rem 1rem; border:1.5px solid var(--line); border-radius:14px; cursor:pointer; font-weight:600; color:var(--ink); transition:border-color .15s, background-color .15s; }
.ent-choice:hover{ border-color:var(--orange); }
.ent-choice:has(input:checked){ border-color:var(--orange); background:#fff7f1; }
.ent-choice input{ accent-color:var(--orange); width:1.05rem; height:1.05rem; }
.ent-field{ width:100%; padding:.85rem 1rem; border:1.5px solid var(--line); border-radius:12px; background:#fff; color:var(--ink); font-size:1rem; }
.ent-field:focus{ outline:none; border-color:var(--orange); box-shadow:0 0 0 3px rgba(216,103,39,.18); }
textarea.ent-field{ resize:vertical; }
.ent-form-sub{ padding-top:1.5rem; border-top:1px solid var(--line); font-size:1.2rem; font-weight:800; color:var(--ink); }
.ent-error{ border-radius:12px; background:#fdecea; color:#a3261b; padding:.85rem 1rem; font-size:.95rem; }
.ent-submit{ justify-self:start; border:0; cursor:pointer; }
.ent-submit:disabled{ opacity:.7; cursor:wait; }
.ent-note{ font-size:.88rem; color:var(--stone); }
.ent-success{ text-align:left; padding:1rem 0; }
.ent-success:focus{ outline:none; }
.ent-success i{ font-size:2rem; color:var(--orange); }
.ent-success h3{ margin-top:1rem; font-size:1.6rem; font-weight:800; color:var(--ink); }
.ent-success p{ margin-top:.6rem; color:var(--stone); line-height:1.7; }

@media (max-width:1023px){
  .ent-steps{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ent-why, .ent-brief{ grid-template-columns:1fr; gap:2.5rem; }
  .ent-brief-aside{ position:static; }
}
@media (max-width:767px){
  .ent-section{ padding:4rem 0; }
  .ent-hero .ent-wrap{ padding-bottom:3rem; }
  .ent-hero::after{ background:linear-gradient(180deg, rgba(29,29,27,.45) 0%, rgba(29,29,27,.7) 40%, rgba(29,29,27,.95) 100%); }
  .ent-formats{ grid-template-columns:1fr; }
  .ent-format, .ent-format + .ent-format{ padding:2rem 0 0; border-left:0; }
  .ent-format + .ent-format{ margin-top:1rem; border-top:1px solid var(--line); }
  .ent-steps{ grid-template-columns:1fr; }
  .ent-tasks, .ent-grid2, .ent-choices{ grid-template-columns:1fr; }
  .ent-panel{ padding:1.5rem; border-radius:18px; }
}

/* ---------- Sous-pages : héros encre + photo à coin asymétrique ---------- */
.ent-sub{ background:var(--ink); color:#fff; overflow:hidden; }
.ent-sub-grid{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:3.5rem; align-items:center; padding-top:3.5rem; padding-bottom:4rem; }
.ent-crumb{ display:inline-flex; align-items:center; gap:.5rem; font-size:.92rem; font-weight:600; color:rgba(255,255,255,.75); text-decoration:none; margin-bottom:1.25rem; }
.ent-crumb:hover{ color:#fff; }
.ent-crumb:focus-visible{ outline:3px solid var(--amber); outline-offset:3px; }
.ent .ent-sub h1{ font-size:clamp(2.3rem,5vw,4.2rem); line-height:1.04; font-weight:800; letter-spacing:-.035em; color:#fff; max-width:16ch; margin:0; text-wrap:balance; }
.ent-sub .ent-hero-text{ color:rgba(255,255,255,.8); }
.ent-sub-photo{ position:relative; }
.ent-sub-photo img{ width:100%; aspect-ratio:4/4.4; object-fit:cover; border-radius:28px 28px 28px 120px; display:block; }
/* Moment animé de la page : le trajet en pointillés se dessine autour de la photo */
.ent-sub-route{ position:absolute; left:-24%; bottom:-6%; width:36%; overflow:visible; pointer-events:none; }
.ent-sub-route .r-path{ fill:none; stroke:var(--amber); stroke-width:3; stroke-dasharray:2 11; stroke-linecap:round; }
.ent-sub-route .r-mask{ fill:none; stroke:#fff; stroke-width:14; stroke-dasharray:1; stroke-dashoffset:1; animation:ent-draw 2s .4s cubic-bezier(.65,0,.35,1) forwards; }
.ent-sub-route .r-pin{ fill:var(--orange); stroke:var(--ink); stroke-width:4; opacity:0; animation:ent-pop .45s 2.2s cubic-bezier(.34,1.56,.64,1) forwards; transform-box:fill-box; transform-origin:center; }
@keyframes ent-draw{ to{ stroke-dashoffset:0; } }
@keyframes ent-pop{ from{ opacity:0; transform:scale(.3); } to{ opacity:1; transform:scale(1); } }

/* ---------- Orientation par besoin (vue d'ensemble) ---------- */
.ent-needs{ list-style:none; padding:0; margin:3rem 0 0; border-top:2px solid var(--ink); }
.ent-need a{ display:grid; grid-template-columns:3rem minmax(0,1fr) auto; gap:1.5rem; align-items:center; padding:1.6rem 0; border-bottom:2px dashed var(--line); text-decoration:none; color:var(--text); }
.ent-need i.ent-need-icon{ font-size:1.5rem; color:var(--orange); text-align:center; }
.ent-need h3{ font-size:1.35rem; font-weight:800; color:var(--ink); letter-spacing:-.015em; margin:0; }
.ent-need p{ margin:.35rem 0 0; color:var(--stone); line-height:1.6; max-width:52ch; }
.ent-need-go{ display:inline-flex; align-items:center; gap:.5rem; font-weight:700; color:var(--ink); white-space:nowrap; }
.ent-need-go i{ transition:transform .25s ease; }
.ent-need a:hover h3, .ent-need a:hover .ent-need-go{ color:var(--orange); }
.ent-need a:hover .ent-need-go i{ transform:translateX(4px); }
.ent-need a:focus-visible{ outline:3px solid var(--amber); outline-offset:4px; border-radius:6px; }
.ent-extra{ display:flex; flex-wrap:wrap; gap:.85rem; margin-top:2rem; }

/* ---------- Confiance ---------- */
.ent-trust{ display:grid; grid-template-columns:minmax(0,6fr) minmax(0,5fr); gap:4rem; align-items:start; }
.ent-proofs{ list-style:none; padding:0; margin:2rem 0 0; }
.ent-proofs li{ display:grid; grid-template-columns:2.25rem 1fr; gap:1rem; padding:1.15rem 0; border-top:1px solid var(--line); }
.ent-proofs li:first-child{ border-top:2px solid var(--ink); }
.ent-proofs i{ color:var(--orange); font-size:1.15rem; margin-top:.2rem; }
.ent-proofs strong{ display:block; color:var(--ink); font-weight:700; }
.ent-proofs span{ display:block; color:var(--stone); line-height:1.6; margin-top:.15rem; }
.ent-people{ display:grid; gap:1.25rem; }
.ent-person{ display:grid; grid-template-columns:5.5rem 1fr; gap:1.25rem; align-items:center; background:#fff; border:1px solid var(--line); border-radius:24px 24px 24px 60px; padding:1rem 1.25rem 1rem 1rem; }
.ent-person img{ width:5.5rem; height:5.5rem; border-radius:50%; object-fit:cover; }
.ent-person strong{ display:block; font-size:1.1rem; color:var(--ink); }
.ent-person span{ display:block; color:var(--stone); font-size:.93rem; }
.ent-person a{ color:var(--ink); font-weight:700; text-decoration:none; }
.ent-person a:hover{ color:var(--orange); }
.ent-myway{ display:flex; align-items:center; gap:1rem; margin-top:1.5rem; color:var(--stone); font-size:.92rem; }
.ent-myway img{ height:3.25rem; width:auto; }

/* ---------- Références clients (alimentées par _data/b2b_references.yml) ---------- */
.ent-logos{ display:flex; flex-wrap:wrap; gap:2.5rem 3.5rem; align-items:center; margin-top:2.5rem; }
.ent-logos img{ height:2.75rem; width:auto; filter:grayscale(1); opacity:.75; transition:filter .2s, opacity .2s; }
.ent-logos img:hover{ filter:none; opacity:1; }
.ent-cases{ display:grid; grid-template-columns:repeat(auto-fit, minmax(17rem,1fr)); gap:2.5rem; margin-top:3rem; }
.ent-case{ border-top:2px solid var(--orange); padding-top:1.25rem; }
.ent-case h3{ font-size:1.2rem; font-weight:800; color:var(--ink); }
.ent-case dl{ display:flex; flex-wrap:wrap; gap:.4rem 1.5rem; margin:.85rem 0 0; font-size:.92rem; color:var(--stone); }
.ent-case dt{ font-weight:700; color:var(--ink); }
.ent-case dd{ margin:0 0 0 -1.1rem; }
.ent-case p{ margin-top:.85rem; line-height:1.7; }
.ent-case blockquote{ margin:1rem 0 0; padding-left:1rem; border-left:3px solid var(--amber); font-style:italic; color:var(--text); }

/* ---------- Formats de séminaire : programmes jour par jour ---------- */
.ent-ideas{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3rem; margin-top:3rem; }
.ent-idea{ background:#fff; border:1px solid var(--line); border-radius:28px 28px 28px 90px; padding:2.25rem 2.25rem 2.5rem; }
.ent-idea h3{ font-size:1.45rem; font-weight:800; color:var(--ink); letter-spacing:-.02em; }
.ent-idea > p{ margin-top:.6rem; color:var(--stone); line-height:1.65; }
.ent-days{ list-style:none; padding:0 0 0 2.5rem; margin:1.75rem 0 0; position:relative; }
.ent-days::before{ content:""; position:absolute; left:11px; top:6px; bottom:6px; border-left:2px dashed var(--orange); }
.ent-days li{ position:relative; padding-bottom:1.1rem; }
.ent-days li:last-child{ padding-bottom:0; }
.ent-days li::before{ content:""; position:absolute; left:-2.5rem; top:.35rem; width:24px; height:24px; border-radius:50%; background:var(--sand); border:2px solid var(--orange); }
.ent-days strong{ display:block; color:var(--ink); }
.ent-days span{ color:var(--stone); line-height:1.6; }
.ent-price-note{ margin-top:1.5rem; padding-top:1.1rem; border-top:2px dashed var(--line); font-weight:700; color:var(--ink); }

/* ---------- CSE : séjours de groupe ---------- */
.ent-trips{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2.75rem 2rem; margin-top:2.5rem; }
.ent-trip{ display:flex; flex-direction:column; text-decoration:none; color:var(--text); }
.ent-trip-img{ display:block; aspect-ratio:4/3.2; border-radius:28px 28px 28px 110px; overflow:hidden; background:var(--line); }
.ent-trip-img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.ent-trip:hover .ent-trip-img img, .ent-trip:focus-visible .ent-trip-img img{ transform:scale(1.05); }
.ent-trip:focus-visible{ outline:3px solid var(--amber); outline-offset:4px; border-radius:28px; }
.ent-trip h3{ margin-top:1.15rem; font-size:1.25rem; font-weight:800; color:var(--ink); letter-spacing:-.015em; }
.ent-trip-meta{ margin-top:.4rem; color:var(--stone); font-size:.93rem; }
.ent-trip-meta i{ color:var(--orange); margin-right:.35rem; }
.ent-trip-price{ margin-top:1rem; font-size:.88rem; color:var(--stone); }
.ent-trip-price strong{ display:block; font-size:1.45rem; font-weight:800; color:var(--ink); letter-spacing:-.02em; }
.ent-empty{ margin-top:2.5rem; padding:2.5rem; border:1.5px dashed var(--line); border-radius:28px; background:#fff; }
.ent-empty h3{ font-size:1.3rem; font-weight:800; color:var(--ink); }
.ent-empty p{ margin-top:.6rem; color:var(--stone); line-height:1.7; max-width:46rem; }

/* ---------- Congrès : schéma du principe ---------- */
.ent-flow{ list-style:none; padding:0; margin:3rem 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; position:relative; }
.ent-flow::before{ content:""; position:absolute; left:8%; right:8%; top:1.6rem; border-top:2px dashed var(--orange); }
.ent-flow li{ position:relative; text-align:left; }
.ent-flow-dot{ position:relative; z-index:1; display:grid; place-items:center; width:3.2rem; height:3.2rem; border-radius:50%; background:var(--orange); color:#fff; font-size:1.15rem; box-shadow:0 0 0 6px #fff; }
.ent-flow h3{ margin-top:1.15rem; font-size:1.15rem; font-weight:800; color:var(--ink); }
.ent-flow p{ margin-top:.5rem; color:var(--stone); line-height:1.65; }

/* ---------- Bandeau d'appel ---------- */
.ent-band{ position:relative; overflow:hidden; background:var(--ink); color:#fff; border-radius:28px 28px 28px 120px; padding:3.5rem 4rem; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2rem; align-items:center; }
.ent .ent-band h2{ color:#fff; }
.ent-band .ent-lead{ color:rgba(255,255,255,.78); }
.ent-band-actions{ display:flex; flex-direction:column; gap:.75rem; }

/* ---------- Formulaire : délai de réponse ---------- */
.ent-delay{ display:inline-flex; align-items:center; gap:.5rem; font-weight:700; color:var(--ink); font-size:.95rem; }
.ent-delay i{ color:var(--orange); }
.ent-form-foot{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.5rem; }

/* ---------- Offre imprimable ---------- */
.ent-offer{ background:var(--sand); }
.ent-offer-sheet{ background:#fff; max-width:56rem; margin:0 auto; border-radius:28px; padding:3.5rem; border:1px solid var(--line); }
.ent-offer-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:2rem; padding-bottom:2rem; border-bottom:2px solid var(--ink); }
.ent-offer-head img{ height:3.25rem; width:auto; }
.ent .ent-offer h1{ font-size:clamp(2rem,4vw,2.8rem); font-weight:800; letter-spacing:-.03em; color:var(--ink); line-height:1.1; margin:0; max-width:18ch; }
.ent-offer h2{ font-size:1.35rem !important; margin-top:2.25rem; max-width:none !important; }
.ent-offer-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem 2.5rem; margin-top:1rem; }
.ent-offer-grid h3{ font-size:1.05rem; font-weight:800; color:var(--ink); }
.ent-offer-grid p{ margin-top:.3rem; color:var(--text); line-height:1.6; font-size:.95rem; }
.ent-offer ol, .ent-offer ul{ margin-top:.75rem; padding-left:1.25rem; line-height:1.7; }
.ent-offer ol{ list-style:decimal; }
.ent-offer ul{ list-style:disc; }
.ent-offer-contacts{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; margin-top:1rem; }
.ent-offer-contacts div{ border-top:2px dashed var(--orange); padding-top:.85rem; line-height:1.7; }
.ent-offer-legal{ margin-top:2.25rem; padding-top:1.25rem; border-top:1px solid var(--line); font-size:.85rem; color:var(--stone); line-height:1.6; }
.ent-offer-tools{ display:flex; flex-wrap:wrap; gap:.85rem; justify-content:center; margin:0 auto 2rem; }

@media (max-width:1023px){
  .ent-sub-grid, .ent-trust{ grid-template-columns:1fr; gap:2.5rem; }
  .ent-sub-photo{ max-width:30rem; }
  .ent-trips{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ent-ideas{ grid-template-columns:1fr; }
  .ent-band{ grid-template-columns:1fr; padding:3rem 2rem; }
  .ent-band-actions{ flex-direction:row; flex-wrap:wrap; }
}
@media (max-width:767px){
  .ent-sub-grid{ padding-top:2rem; padding-bottom:3rem; }
  .ent-sub-photo img{ aspect-ratio:4/3; border-radius:22px 22px 22px 72px; }
  .ent-sub-route{ left:auto; right:-2%; bottom:-9%; width:42%; transform:scaleX(-1); }
  .ent-need a{ grid-template-columns:2.25rem minmax(0,1fr); gap:1rem; }
  .ent-need-go{ grid-column:2; }
  .ent-trips, .ent-flow, .ent-offer-grid, .ent-offer-contacts{ grid-template-columns:1fr; }
  .ent-flow::before{ left:1.6rem; right:auto; top:0; bottom:0; border-top:0; border-left:2px dashed var(--orange); }
  .ent-flow li{ padding-left:4.5rem; }
  .ent-flow-dot{ position:absolute; left:0; top:0; }
  .ent-flow h3{ margin-top:.5rem; }
  .ent-band{ border-radius:24px 24px 24px 72px; padding:2.5rem 1.5rem; }
  .ent-idea{ padding:1.75rem 1.5rem 2rem; border-radius:24px 24px 24px 64px; }
  .ent-offer-sheet{ padding:1.75rem 1.25rem; border-radius:20px; }
  .ent-offer-head{ flex-direction:column-reverse; }
}
@media (prefers-reduced-motion: reduce){
  .ent-sub-route .r-mask{ animation:none; stroke-dashoffset:0; }
  .ent-sub-route .r-pin{ animation:none; opacity:1; }
  .ent-trip-img img, .ent-need-go i{ transition:none; }
}

/* ---------- Impression (offre entreprises en PDF, A4) ---------- */
@media print{
  @page{ size:A4; margin:14mm 14mm 16mm; }
  body{ background:#fff !important; padding:0 !important; }
  #navbar, footer, .no-print, #cookie-banner, [id*="cookie"], [class*="popup"], [id*="popup"], [class*="chat"], [id*="chat"], #back-to-top, .back-to-top{ display:none !important; }
  main{ padding:0 !important; margin:0 !important; }
  .ent-offer{ background:#fff !important; padding:0 !important; }
  .ent-offer-sheet{ border:0; padding:0; max-width:none; border-radius:0; }
  .ent-offer h2{ break-after:avoid; }
  .ent-offer-grid > div, .ent-offer-contacts > div{ break-inside:avoid; }
  .ent, .ent *{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  a{ text-decoration:none !important; color:inherit !important; }
}
