/* ============================================================
   Youness Mohssine Immobilier — apartment / project detail page
   Relies on tokens defined in home-immobilier.css (loaded globally).
   ============================================================ */

/* header is solid (no hero) on this page — spacing below the fixed bar */
.ym-appart{ padding-top:92px; background:#fff; }
.ym-appart .container{ max-width:1200px; }

/* breadcrumb */
.ym-breadcrumb{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:13px; color:var(--ym-muted); margin:6px 0 18px; }
.ym-breadcrumb a{ color:var(--ym-muted); text-decoration:none; }
.ym-breadcrumb a:hover{ color:var(--ym-orange); }
.ym-breadcrumb .sep{ opacity:.5; }
.ym-breadcrumb .current{ color:var(--ym-ink); font-weight:600; }

/* title */
.ym-appart-title{ font-size:36px; font-weight:700; color:var(--ym-ink); margin:0 0 10px; line-height:1.15; }
.ym-appart-sub{ margin-bottom:24px; }

/* two-column layout */
.ym-appart-layout{ display:grid; grid-template-columns:1fr 360px; gap:34px; align-items:start; padding-bottom:70px; }
.ym-appart-main{ min-width:0; }
.ym-appart-side{ position:sticky; top:92px; display:flex; flex-direction:column; gap:18px; }

/* ---------- Gallery ---------- */
.ym-gallery{ margin-bottom:34px; }
.ym-gallery-main{ position:relative; border-radius:16px; overflow:hidden; aspect-ratio:16/10; background:#eef1f4; }
.ym-gallery-main img{ width:100%; height:100%; object-fit:cover; display:block; }
.ym-gallery-nav{
  position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,.9); border:0; display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.14); color:var(--ym-ink); transition:background .15s;
}
.ym-gallery-nav:hover{ background:#fff; }
.ym-gallery-nav.prev{ left:16px; } .ym-gallery-nav.next{ right:16px; }
.ym-gallery-count{ position:absolute; bottom:16px; left:50%; transform:translateX(-50%); background:rgba(20,26,34,.78); color:#fff; font-size:13px; font-weight:600; padding:6px 14px; border-radius:30px; }
.ym-gallery-full{ position:absolute; bottom:16px; right:16px; width:38px; height:38px; border-radius:10px; background:rgba(20,26,34,.78); border:0; color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.ym-gallery-thumbs{ display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-top:12px; }
.ym-thumb{ position:relative; aspect-ratio:16/11; border-radius:12px; overflow:hidden; cursor:pointer; border:2px solid transparent; background:#eef1f4; }
.ym-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.ym-thumb.active{ border-color:var(--ym-orange); }
.ym-thumb-more{ position:absolute; inset:0; background:rgba(20,26,34,.6); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:600; font-size:15px; }

/* ---------- Content sections ---------- */
.ym-block{ margin-bottom:34px; }
.ym-block h2{ font-size:22px; font-weight:700; color:var(--ym-ink); margin:0 0 16px; }
.ym-block p{ color:#54606c; font-size:15px; line-height:1.7; margin:0; }

/* features grid */
.ym-feats{ border:1px solid var(--ym-line); border-radius:14px; padding:6px 10px; display:grid; grid-template-columns:repeat(3,1fr); gap:0; }
.ym-feat{ display:flex; align-items:center; gap:14px; padding:18px 14px; }
.ym-feat-ic{ width:42px; height:42px; border-radius:10px; background:#f6f8fa; display:flex; align-items:center; justify-content:center; color:var(--ym-orange); flex:0 0 auto; }
.ym-feat .lbl{ display:block; font-size:12px; color:var(--ym-muted); margin-bottom:3px; }
.ym-feat .val{ display:block; font-size:15px; color:var(--ym-ink); font-weight:700; }

/* localisation */
.ym-loc{ display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--ym-line); border-radius:14px; overflow:hidden; }
.ym-loc-map{ position:relative; min-height:200px; background:#dfe7ee; }
.ym-loc-map img{ width:100%; height:100%; object-fit:cover; }
.ym-loc-pin{ position:absolute; top:42%; left:36%; color:var(--ym-orange); }
.ym-loc-info{ padding:22px; }
.ym-loc-info h3{ font-size:16px; font-weight:700; color:var(--ym-ink); margin:0 0 8px; }
.ym-loc-info p{ font-size:14px; color:#54606c; line-height:1.6; margin:0 0 14px; }
.ym-loc-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.ym-loc-list li{ display:flex; align-items:center; gap:10px; font-size:14px; color:#54606c; }
.ym-loc-list svg{ color:var(--ym-orange); flex:0 0 auto; }

/* related apartments */
.ym-rel-head{ display:flex; align-items:center; justify-content:space-between; margin:10px 0 18px; }
.ym-rel-head .ym-rel-title{ display:flex; align-items:center; gap:12px; font-size:22px; font-weight:700; color:var(--ym-ink); }
.ym-rel-head .ym-rel-title::before{ content:""; width:28px; height:3px; border-radius:3px; background:var(--ym-orange); }
.ym-rel-link{ color:var(--ym-ink); font-weight:600; text-decoration:none; font-size:14px; display:inline-flex; gap:7px; align-items:center; }
.ym-rel-link:hover{ color:var(--ym-orange); }
.ym-rel-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.ym-rel-card{ position:relative; border:1px solid var(--ym-line); border-radius:14px; overflow:hidden; box-shadow:var(--ym-shadow); transition:transform .2s; }
.ym-rel-card:hover{ transform:translateY(-3px); }
.ym-rel-card .media{ aspect-ratio:16/10; background:#eef1f4; }
.ym-rel-card .media img{ width:100%; height:100%; object-fit:cover; display:block; }
.ym-rel-card .body{ padding:14px 16px 18px; }
.ym-rel-card .loc{ font-size:12px; color:var(--ym-muted); margin-bottom:4px; }
.ym-rel-card .ttl{ font-size:15px; font-weight:700; color:var(--ym-ink); margin:0 0 4px; }
.ym-rel-card .spec{ font-size:13px; color:var(--ym-muted); margin-bottom:8px; }
.ym-rel-card .price{ font-size:16px; font-weight:700; color:var(--ym-ink); }
.ym-rel-card .go{ position:absolute; bottom:16px; right:16px; width:38px; height:38px; border-radius:50%; background:#f6f8fa; display:flex; align-items:center; justify-content:center; color:var(--ym-ink); }
.ym-rel-card:hover .go{ background:var(--ym-orange); color:#fff; }

/* ---------- Sidebar cards ---------- */
.ym-side-card{ border:1px solid var(--ym-line); border-radius:16px; padding:22px; box-shadow:var(--ym-shadow); }
.ym-side-ic{ width:48px; height:48px; border-radius:12px; background:#fef0e6; color:var(--ym-orange); display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.ym-side-card h4{ font-size:17px; font-weight:700; color:var(--ym-ink); margin:0 0 6px; }
.ym-side-card .muted{ font-size:14px; color:var(--ym-muted); margin:0 0 4px; line-height:1.5; }
.ym-price-big{ font-size:30px; font-weight:800; color:var(--ym-orange); margin-top:4px; }
.ym-btn-block{ width:100%; padding:14px; font-size:15px; margin-top:6px; }
.ym-btn-outline{ width:100%; padding:13px; background:#fff; border:1px solid var(--ym-line); color:var(--ym-ink); border-radius:10px; font-weight:600; margin-top:12px; }
.ym-btn-outline:hover{ border-color:var(--ym-orange); color:var(--ym-orange); }
.ym-side-phone{ display:flex; align-items:center; gap:10px; font-size:20px; font-weight:700; color:var(--ym-ink); margin:4px 0 8px; }
.ym-side-phone svg{ color:var(--ym-orange); }
.ym-fees{ font-size:20px; font-weight:800; color:var(--ym-ink); margin:4px 0; }

/* ---------- Reservation modal ---------- */
.ym-modal{ position:fixed; inset:0; z-index:2000; display:none; }
.ym-modal.open{ display:block; }
.ym-modal-overlay{ position:absolute; inset:0; background:rgba(15,22,32,.55); backdrop-filter:blur(2px); }
.ym-modal-box{
  position:relative; z-index:1; background:#fff; width:92%; max-width:480px; margin:6vh auto 0;
  border-radius:18px; padding:30px 28px; box-shadow:0 30px 80px rgba(0,0,0,.3); animation:ympop .2s ease;
}
@keyframes ympop{ from{ transform:translateY(12px); opacity:0; } to{ transform:translateY(0); opacity:1; } }
.ym-modal-close{ position:absolute; top:14px; right:16px; border:0; background:none; font-size:28px; line-height:1; color:var(--ym-muted); cursor:pointer; }
.ym-modal-close:hover{ color:var(--ym-ink); }
.ym-modal-box h3{ font-size:22px; font-weight:700; color:var(--ym-ink); margin:0 0 4px; }
.ym-modal-sub{ font-size:14px; color:var(--ym-muted); margin:0 0 20px; }
.ym-field{ margin-bottom:14px; }
.ym-field label{ display:block; font-size:13px; font-weight:600; color:var(--ym-ink); margin-bottom:6px; }
.ym-field input, .ym-field select{
  width:100%; height:46px; border:1px solid var(--ym-line); border-radius:10px; padding:0 14px;
  font-size:15px; color:var(--ym-ink); background:#fff; outline:none;
}
.ym-field input:focus, .ym-field select:focus{ border-color:var(--ym-orange); }
.ym-field-row{ display:flex; gap:12px; }
.ym-field-row .ym-field{ flex:1; }
.ym-ack{ display:flex; gap:10px; align-items:flex-start; font-size:13px; color:#54606c; margin:6px 0 18px; cursor:pointer; }
.ym-ack input{ margin-top:2px; flex:0 0 auto; }
.ym-modal-err{ background:#fdecea; color:#c0392b; font-size:13px; padding:10px 12px; border-radius:8px; margin-bottom:12px; }
.ym-modal-success{ text-align:center; padding:14px 6px; }
.ym-success-ic{ width:72px; height:72px; border-radius:50%; background:#e6f4ea; color:#1e8e3e; display:flex; align-items:center; justify-content:center; margin:0 auto 18px; }
.ym-modal-success h3{ font-size:22px; font-weight:700; color:var(--ym-ink); margin:0 0 8px; }
.ym-modal-success p{ font-size:15px; margin:0 0 20px; }

/* ---------- Responsive ---------- */
@media (max-width:991px){
  .ym-appart-layout{ grid-template-columns:1fr; }
  .ym-appart-side{ position:static; }
  .ym-feats{ grid-template-columns:repeat(2,1fr); }
  .ym-rel-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px){
  .ym-appart-title{ font-size:27px; }
  /* thumbnails inline: one horizontal scrollable row */
  .ym-gallery-thumbs{ display:flex; grid-template-columns:none; gap:10px; overflow-x:auto; padding-bottom:4px; -webkit-overflow-scrolling:touch; scrollbar-width:thin; }
  .ym-gallery-thumbs .ym-thumb{ flex:0 0 78px; width:78px; aspect-ratio:1/1; }
  .ym-feats{ grid-template-columns:1fr; }
  .ym-loc{ grid-template-columns:1fr; }
  .ym-rel-grid{ grid-template-columns:1fr; }
}

/* Rich-text (HTML) description */
.ym-rte{line-height:1.7;color:#333}
.ym-rte p{margin:0 0 12px}
.ym-rte ul,.ym-rte ol{margin:0 0 12px 22px}
.ym-rte li{margin:4px 0}
.ym-rte h1,.ym-rte h2,.ym-rte h3,.ym-rte h4{margin:16px 0 8px;line-height:1.3}
.ym-rte a{color:#c8a24a;text-decoration:underline}
.ym-rte blockquote{margin:0 0 12px;padding:8px 14px;border-left:3px solid #c8a24a;background:#faf7ef;color:#555}
.ym-rte img{max-width:100%;height:auto;border-radius:8px}
/* Visit date availability hint */
.ym-visit-hint{display:block;margin-top:4px;color:#b9842c;font-size:12px}

/* ---- Real location map (Leaflet) ---- */
.ym-loc-map{ min-height:340px; height:100%; background:#dfe7ee; }
.ym-loc-map.leaflet-container{ min-height:340px; }
@media (max-width:860px){ .ym-loc-map{ min-height:260px; } }

/* ---- Sticky reserve CTA (shows on scroll) ---- */
.ym-sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:1500;
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:12px 18px; background:#fff; box-shadow:0 -8px 30px rgba(0,0,0,.14);
  transform:translateY(130%); transition:transform .25s ease; will-change:transform;
}
.ym-sticky-cta.show{ transform:translateY(0); }
.ym-sticky-info{ display:flex; flex-direction:column; line-height:1.15; }
.ym-sticky-label{ font-size:12px; color:var(--ym-muted); }
.ym-sticky-price{ font-size:19px; font-weight:800; color:var(--ym-ink); }
.ym-sticky-btn{ white-space:nowrap; padding:12px 24px; }
@media (min-width:861px){ .ym-sticky-cta{ padding:12px clamp(18px,6vw,120px); } }

/* ---- Image lightbox (click to zoom) ---- */
.ym-gallery-main img{ cursor:zoom-in; }
.ym-lightbox{ position:fixed; inset:0; z-index:3000; display:none; align-items:center; justify-content:center; background:rgba(10,14,20,.93); }
.ym-lightbox.open{ display:flex; }
.ym-lightbox img{ max-width:92vw; max-height:88vh; object-fit:contain; border-radius:6px; box-shadow:0 20px 70px rgba(0,0,0,.55); }
.ym-lb-close{ position:absolute; top:16px; right:22px; background:none; border:0; color:#fff; font-size:42px; line-height:1; cursor:pointer; opacity:.85; }
.ym-lb-close:hover{ opacity:1; }
.ym-lb-nav{ position:absolute; top:50%; transform:translateY(-50%); width:54px; height:54px; border-radius:50%; border:0; background:rgba(255,255,255,.16); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.ym-lb-nav:hover{ background:rgba(255,255,255,.3); }
.ym-lb-nav.prev{ left:18px; } .ym-lb-nav.next{ right:18px; }
.ym-lb-count{ position:absolute; bottom:20px; left:50%; transform:translateX(-50%); color:#fff; font-size:14px; background:rgba(0,0,0,.45); padding:5px 14px; border-radius:20px; }
@media (max-width:860px){ .ym-lb-nav{ width:44px; height:44px; } }

/* ======================= Reservation wizard page ======================= */
.ym-reserve-page{ padding:92px 0 70px; background:#f6f8fa; min-height:70vh; }
.ym-reserve-page .container{ max-width:760px; }
.ym-back-link{ display:inline-flex; align-items:center; gap:8px; color:var(--ym-muted); text-decoration:none; font-size:14px; font-weight:600; margin-bottom:18px; }
.ym-back-link:hover{ color:var(--ym-orange); }
.ym-wizard-card{ background:#fff; border:1px solid var(--ym-line); border-radius:20px; padding:34px clamp(20px,4vw,44px); box-shadow:0 20px 60px rgba(20,30,45,.06); }
.ym-wizard-head h1{ font-size:26px; font-weight:800; color:var(--ym-ink); margin:0 0 4px; }
.ym-wizard-sub{ font-size:14px; color:var(--ym-muted); margin:0 0 26px; }

/* progress steps */
.ym-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:30px; }
.ym-step{ }
.ym-step-bar{ display:block; height:5px; border-radius:4px; background:#e7ebef; transition:background .25s; }
.ym-step.active .ym-step-bar{ background:var(--ym-orange); }
.ym-step-label{ display:block; margin-top:10px; font-size:14px; font-weight:600; color:var(--ym-muted); }
.ym-step.current .ym-step-label{ color:var(--ym-ink); }

/* fields */
.ym-wizstep[hidden]{ display:none; }
.ym-wlabel{ display:block; font-size:15px; font-weight:600; color:var(--ym-ink); margin:0 0 10px; }
.ym-wlabel + .ym-wlabel,
.ym-winput + .ym-wlabel,
.ym-winput-wrap + .ym-wlabel,
.ym-whint + .ym-wlabel{ margin-top:24px; }
.ym-winput-wrap{ position:relative; }
.ym-winput-ic{ position:absolute; left:16px; top:50%; transform:translateY(-50%); color:var(--ym-muted); pointer-events:none; z-index:1; }
.ym-winput{
  width:100%; height:54px; border:1.5px solid var(--ym-line); border-radius:12px; padding:0 16px;
  font-size:16px; color:var(--ym-ink); background:#fff; outline:none; transition:border-color .15s, box-shadow .15s;
  -webkit-appearance:none; appearance:none;
}
.ym-winput.has-ic{ padding-left:46px; }
select.ym-winput{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238a97a3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:42px; cursor:pointer; }
input.ym-winput[readonly]{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238a97a3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; cursor:pointer; }
.ym-winput:focus{ border-color:var(--ym-orange); box-shadow:0 0 0 3px rgba(240,140,40,.12); }
.ym-whint{ display:block; margin:7px 2px 0; font-size:12px; color:#b9842c; }
.ym-wack{ display:flex; gap:13px; align-items:flex-start; font-size:15.5px; color:#8a5a12; background:#fff8ec; border:1px solid #f1d6a4; border-left:4px solid var(--ym-orange); border-radius:12px; padding:16px 18px; margin:26px 0 4px; cursor:pointer; line-height:1.55; }
.ym-wack input{ margin-top:2px; flex:0 0 auto; width:19px; height:19px; accent-color:var(--ym-orange); }
.ym-werr{ background:#fdecea; color:#c0392b; font-size:13.5px; padding:11px 14px; border-radius:10px; margin-top:18px; }

/* nav buttons */
.ym-wnav{ display:flex; align-items:center; justify-content:space-between; margin-top:30px; gap:14px; }
.ym-wbtn-back{ background:#fff; border:1.5px solid var(--ym-line); color:#54606c; font-size:15px; font-weight:600; padding:13px 26px; border-radius:40px; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; }
.ym-wbtn-back:hover{ border-color:#cfd6dc; color:var(--ym-ink); }
.ym-wbtn-next{ background:var(--ym-ink); border:0; color:#fff; font-size:15px; font-weight:700; padding:14px 30px; border-radius:40px; cursor:pointer; display:inline-flex; align-items:center; gap:9px; transition:background .15s, transform .05s; }
.ym-wbtn-next:hover{ background:#000; }
.ym-wbtn-next:active{ transform:translateY(1px); }
.ym-wbtn-next:disabled{ opacity:.6; cursor:default; }

/* recap */
.ym-recap{ border:1px solid var(--ym-line); border-radius:14px; overflow:hidden; }
.ym-recap-row{ display:flex; justify-content:space-between; gap:16px; padding:15px 18px; border-bottom:1px solid var(--ym-line); font-size:15px; }
.ym-recap-row:last-child{ border-bottom:0; }
.ym-recap-row span{ color:var(--ym-muted); }
.ym-recap-row strong{ color:var(--ym-ink); font-weight:700; text-align:right; }

/* success */
.ym-wsuccess{ text-align:center; padding:20px 6px 10px; }
.ym-wsuccess .ym-success-ic{ width:76px; height:76px; border-radius:50%; background:#e6f4ea; color:#1e8e3e; display:flex; align-items:center; justify-content:center; margin:0 auto 20px; }
.ym-wsuccess h2{ font-size:24px; font-weight:800; color:var(--ym-ink); margin:0 0 8px; }
.ym-wsuccess p{ font-size:15px; margin:0 0 24px; }
.ym-wfoot{ text-align:center; font-size:12.5px; color:var(--ym-muted); margin:22px 0 0; }

@media (max-width:560px){
  .ym-wnav{ flex-direction:row; }
  .ym-wbtn-back{ padding:13px 20px; }
  .ym-wbtn-next{ padding:14px 22px; }
}

/* flatpickr calendar must float above the wizard fields */
.flatpickr-calendar{ z-index:20000 !important; box-shadow:0 12px 44px rgba(20,30,45,.20) !important; }

/* international phone input (intl-tel-input) inside the wizard */
.ym-wizstep .iti{ width:100%; display:block; }
.ym-wizstep .iti input.ym-winput{ width:100%; }
.ym-wizstep .iti__country-list{ z-index:20001; box-shadow:0 10px 36px rgba(20,30,45,.18); border-radius:10px; }
.ym-wizstep .iti--separate-dial-code .iti__selected-flag{ border-radius:12px 0 0 12px; }
/* a global site rule forces ul display; re-assert intl-tel-input's hidden state */
.iti__country-list.iti__hide{ display:none !important; }
.iti__country-list{ list-style:none !important; margin:0 !important; padding:0 !important; max-height:230px; overflow-y:auto; background:#fff; border:1px solid #e4e7ea; }
.iti__country-list .iti__country{ padding:8px 12px; }
/* site CSS forces position:static on divs -> restore intl-tel-input layout */
.ym-wizstep .iti{ position:relative !important; display:block !important; }
.ym-wizstep .iti__flag-container{ position:absolute !important; top:0 !important; bottom:0 !important; left:0 !important; right:auto !important; width:auto !important; height:auto !important; z-index:2; }
.ym-wizstep .iti__selected-flag{ position:relative !important; height:100% !important; display:flex !important; align-items:center !important; padding:0 8px 0 14px !important; border-radius:12px 0 0 12px; }
.ym-wizstep .iti--separate-dial-code input.ym-winput{ padding-left:86px !important; }
.ym-wizstep .iti__selected-dial-code{ margin-left:6px; font-size:15px; color:var(--ym-ink); }

/* intl-tel-input on the "Demande de conseil" form (Bootstrap .form-control) */
.ym-demande-page .iti{ width:100%; display:block !important; position:relative !important; }
.ym-demande-page .iti input[type=tel]{ width:100%; }
.ym-demande-page .iti__country-list{ z-index:20001; box-shadow:0 10px 36px rgba(20,30,45,.18); border-radius:10px; }
.ym-demande-page .iti__flag-container{ position:absolute !important; top:0 !important; bottom:0 !important; left:0 !important; right:auto !important; width:auto !important; height:auto !important; z-index:2; padding:0 !important; }
.ym-demande-page .iti__selected-flag{ position:relative !important; height:100% !important; display:flex !important; align-items:center !important; padding:0 8px 0 14px !important; border-radius:.25rem 0 0 .25rem; background:transparent; }
.ym-demande-page .iti--separate-dial-code input[type=tel]{ padding-left:86px !important; }
.ym-demande-page .iti__selected-dial-code{ margin-left:6px; font-size:14px; color:var(--ym-ink); }

/* wizard header with apartment thumbnail */
.ym-wizard-head{ display:flex; gap:18px; align-items:center; margin-bottom:26px; }
.ym-wizard-thumb{ width:92px; height:92px; object-fit:cover; border-radius:14px; flex:0 0 auto; background:#eef1f4; border:1px solid var(--ym-line); }
.ym-wizard-head .ym-wizard-sub{ margin:0; }
.ym-wizard-head h1{ margin:0 0 5px; }
@media (max-width:560px){ .ym-wizard-thumb{ width:62px; height:62px; } .ym-wizard-head h1{ font-size:21px; } }

/* ===================== Demande (conseil) page ===================== */
.ym-demande-page{ padding:92px 0 70px; background:#f6f8fa; min-height:70vh; }
.ym-demande-card{ background:#fff; border:1px solid var(--ym-line); border-radius:20px; padding:32px clamp(20px,4vw,40px); box-shadow:0 20px 60px rgba(20,30,45,.06); }
.ym-demande-head{ margin-bottom:26px; }
.ym-demande-head h1{ font-size:26px; font-weight:800; color:var(--ym-ink); margin:0 0 6px; }
.ym-demande-sub{ font-size:14.5px; color:var(--ym-muted); margin:0; }
.ym-demande-card .form-group{ margin-bottom:18px; }
.ym-demande-card label{ font-size:14px; font-weight:600; color:var(--ym-ink); margin-bottom:7px; }
.ym-demande-card .form-control{ height:50px; border:1.5px solid var(--ym-line); border-radius:11px; padding:0 14px; font-size:15px; color:var(--ym-ink); box-shadow:none; background:#fff; }
.ym-demande-card textarea.form-control{ height:auto; min-height:110px; padding:12px 14px; }
.ym-demande-card .form-control:focus{ border-color:var(--ym-orange); box-shadow:0 0 0 3px rgba(240,140,40,.12); outline:none; }
.ym-demande-card .btn-select{ display:block; text-align:center; padding:12px 8px; border:1.5px solid var(--ym-line); border-radius:11px; color:#54606c; font-weight:600; font-size:14px; text-decoration:none; transition:all .15s; }
.ym-demande-card .btn-select:hover{ border-color:var(--ym-orange); color:var(--ym-orange); }
.ym-demande-card .btn-select.active{ background:var(--ym-orange); border-color:var(--ym-orange); color:#fff; }
.ym-demande-card .type-checkbox .no-padding{ padding-left:6px !important; padding-right:6px; }
.ym-demande-card .btn_1{ background:var(--ym-ink); color:#fff; border:0; border-radius:40px; height:54px; font-weight:700; font-size:16px; transition:background .15s; cursor:pointer; }
.ym-demande-card .btn_1:hover{ background:#000; }
/* select2 consistency */
.ym-demande-card .select2-container--default .select2-selection--single{ height:50px; border:1.5px solid var(--ym-line); border-radius:11px; display:flex; align-items:center; }
.ym-demande-card .select2-container--default .select2-selection--single .select2-selection__rendered{ line-height:normal; padding-left:14px; color:var(--ym-ink); }
.ym-demande-card .select2-container--default .select2-selection--single .select2-selection__arrow{ height:48px; }

/* YouTube video embed */
.ym-video{ position:relative; width:100%; aspect-ratio:16/9; border-radius:14px; overflow:hidden; background:#000; }
.ym-video iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* full-width video section (spans both columns) */
.ym-appart-layout > .ym-video-block{ grid-column:1 / -1; margin-top:4px; }

/* full-bleed video: edge-to-edge of the viewport (heading stays aligned with content) */
.ym-video-block .ym-video{ width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); border-radius:0; }
