/* Danesi Widgets : styles des blocs Elementor. Les couleurs et polices viennent du thème Danesi (variables du :root), avec des valeurs de secours. */

.dw{
  --dw-ink:var(--ink,#141617); --dw-soft:var(--soft,#5f6669); --dw-accent:var(--accent,#2c6a7a);
  --dw-deep:var(--deep,#16232a); --dw-tone-2:var(--tone-2,#eaf3f6); --dw-tone:var(--tone,#d3e6ec);
  --dw-pbg:var(--pbg,#eaeef0); --dw-pbg-hi:var(--pbg-hi,#f7f9fa); --dw-mist:var(--mist,#f4f5f5); --dw-line:var(--line,#e3e6e7);
  --dw-display:var(--f-display,"Inter Tight","Helvetica Neue",Arial,sans-serif); --dw-body:var(--f-body,"Inter","Helvetica Neue",Arial,sans-serif);
  --dw-ease:var(--ease,cubic-bezier(.2,.7,.1,1));
  --dw-gut:var(--gut,clamp(16px,3.6vw,56px)); --dw-gut-r:var(--gut-r,clamp(16px,3.6vw,56px));
  --dw-grad:var(--grad-title,linear-gradient(105deg,#13232a 0%,#1d3a45 42%,#5f8e9e 100%));
  position:relative;font-family:var(--dw-body);color:var(--dw-ink);box-sizing:border-box
}
.dw *,.dw *::before,.dw *::after{box-sizing:border-box}
.dw img{display:block;max-width:100%}
.dw h2,.dw p{margin:0}
.dw a{text-decoration:none}
.dw-full{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.dw-kicker{font-size:15px;font-weight:600;color:var(--dw-accent)}
.dw .dw-title{font-family:var(--dw-display);text-wrap:balance}
.dw .dw-title em{font-style:normal}

/* ---------- Diaporama d'ouverture ---------- */
.dw-hero{height:clamp(560px,calc(100svh - 120px),920px);overflow:hidden;background:var(--dw-deep);isolation:isolate;touch-action:pan-y}
.dw-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.2s var(--dw-ease),visibility 1.2s;color:#fff}
.dw-slide.on{opacity:1;visibility:visible;z-index:1}
.dw-slide.light{color:var(--dw-ink)}
.dw-media{position:absolute;inset:0;overflow:hidden}
.dw-media picture{position:absolute;inset:0}
.dw-media img,.dw-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--dw-dpos,center);transform:scale(1.07);transition:transform 8s linear}
.dw-slide.on .dw-media img,.dw-slide.on .dw-media video{transform:scale(1)}
.dw-media::after{content:"";position:absolute;inset:0;pointer-events:none}
.dw-slide.dark.sh-left .dw-media::after{background:linear-gradient(90deg,rgba(0,0,0,.45),transparent 58%)}
.dw-slide.dark.sh-right .dw-media::after{background:linear-gradient(270deg,rgba(0,0,0,.45),transparent 58%)}
.dw-slide.dark.sh-center .dw-media::after{background:radial-gradient(60% 60% at 50% 55%,rgba(0,0,0,.36),transparent)}
.dw-slide.light.sh-left .dw-media::after{background:linear-gradient(90deg,rgba(255,255,255,.7),transparent 58%)}
.dw-slide.light.sh-right .dw-media::after{background:linear-gradient(270deg,rgba(255,255,255,.7),transparent 58%)}
.dw-slide.light.sh-center .dw-media::after{background:radial-gradient(60% 60% at 50% 55%,rgba(255,255,255,.6),transparent)}

.dw-copy{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;max-width:1600px;margin-inline:auto;padding:clamp(40px,9vh,110px) calc(var(--dw-gut-r) + 64px) clamp(56px,9vh,110px) var(--dw-gut);justify-content:var(--dw-v-d,center);align-items:var(--dw-h-d,flex-start)}
.dw-box{display:flex;flex-direction:column;gap:18px;max-width:540px;align-items:var(--dw-h-d,flex-start);text-align:var(--dw-ta-d,left)}
.dw-hero .dw-kicker{color:inherit;opacity:.92;font-weight:500}
.dw-hero .dw-title{font-size:clamp(42px,5.6vw,92px);line-height:1;letter-spacing:-.03em;font-weight:400;color:inherit}
.dw-sub{font-size:17px;max-width:40ch;opacity:.88;line-height:1.5}
.dw-hero .btn{text-decoration:none}
.dw-box>*{opacity:0;transform:translateY(24px);transition:opacity 1s var(--dw-ease),transform 1.2s var(--dw-ease)}
.dw-slide.on .dw-box>*{opacity:1;transform:none}
.dw-slide.on .dw-box>:nth-child(2){transition-delay:.1s}
.dw-slide.on .dw-box>:nth-child(3){transition-delay:.2s}
.dw-slide.on .dw-box>:nth-child(4){transition-delay:.3s}

/* Position libre du texte par diapositive (curseurs) : 0 % = bord gauche / haut de la zone de texte, 100 % = bord droit / bas */
@media (min-width:768px){
  .dw-slide.pos-d .dw-copy{--pl:var(--dw-gut);--pr:calc(var(--dw-gut-r) + 64px);--ptop:clamp(40px,9vh,110px);--pbot:clamp(56px,9vh,110px)}
  .dw-slide.pos-d .dw-box{position:absolute;left:calc(var(--pl) + (100% - var(--pl) - var(--pr)) * var(--px-d));top:calc(var(--ptop) + (100% - var(--ptop) - var(--pbot)) * var(--py-d));transform:translate(calc(var(--px-d) * -100%),calc(var(--py-d) * -100%));align-items:var(--pa-d);text-align:var(--pt-d)}
  .dw-slide.pos-d .dw-cue-wrap{justify-content:var(--pa-d)}
}
@media (max-width:767px){
  .dw-slide.pos-m .dw-copy{--pl:24px;--pr:24px;--ptop:40px;--pbot:64px}
  .dw-slide.pos-m .dw-box{position:absolute;left:calc(var(--pl) + (100% - var(--pl) - var(--pr)) * var(--px-m));top:calc(var(--ptop) + (100% - var(--ptop) - var(--pbot)) * var(--py-m));transform:translate(calc(var(--px-m) * -100%),calc(var(--py-m) * -100%));align-items:var(--pa-m);text-align:var(--pt-m);width:max-content;max-width:calc(100% - 48px)}
  .dw-slide.pos-m .dw-cue-wrap{justify-content:var(--pa-m)}
}
.dw-cue-wrap{display:flex;justify-content:inherit;align-self:stretch;justify-content:var(--dw-h-d,flex-start);margin-top:6px}
.dw-cue{width:44px;height:44px;display:grid;place-items:center;background:none;border:0;padding:0;cursor:pointer;color:inherit}
.dw-cue svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
@media (prefers-reduced-motion:no-preference){
  .dw-slide.on .dw-cue svg{animation:dw-cue 1.9s cubic-bezier(.45,0,.2,1) 1.2s infinite}
}
@keyframes dw-cue{0%{transform:translateY(0);opacity:0}12%{opacity:1}70%{opacity:1}100%{transform:translateY(var(--cue-d,60px));opacity:0}}
.dw-dash{position:absolute;right:var(--dw-gut-r);top:50%;transform:translateY(-50%);z-index:3;display:flex;flex-direction:column;gap:6px;color:#fff;transition:color .8s}
.dw-hero.is-light .dw-dash{color:var(--dw-ink)}
.dw-dash button{width:28px;height:30px;display:grid;place-items:center;background:none;border:0;padding:0;cursor:pointer;color:inherit}
.dw-dash i{display:block;width:3px;height:18px;border-radius:2px;background:currentColor;opacity:.35;transition:height .5s var(--dw-ease),opacity .4s}
.dw-dash button:hover i{opacity:.7}
.dw-dash button[aria-selected="true"] i{height:30px;opacity:1}

@media (max-width:1024px){
  .dw-copy{justify-content:var(--dw-v-t,center);align-items:var(--dw-h-t,flex-start)}
  .dw-box{align-items:var(--dw-h-t,flex-start);text-align:var(--dw-ta-t,left)}
  .dw-cue-wrap{justify-content:var(--dw-h-t,flex-start)}
}
@media (max-width:767px){
  .dw-hero{height:calc(100svh - 110px);min-height:520px}
  .dw-media img,.dw-media video{object-position:var(--dw-mpos,center)}
  .dw-copy{padding:40px 44px 64px;justify-content:var(--dw-v-m,flex-end);align-items:var(--dw-h-m,center)}
  .dw-box{gap:12px;max-width:340px;align-items:var(--dw-h-m,center);text-align:var(--dw-ta-m,center)}
  .dw-cue-wrap{justify-content:var(--dw-h-m,center);margin-top:0}
  .dw-hero .dw-kicker{font-size:13px}
  .dw-hero .dw-title{font-size:clamp(28px,8.4vw,36px);line-height:1.06}
  .dw-hero .btn{min-height:40px;padding:0 20px;font-size:14px}
  .dw-sub-hide-m .dw-sub{display:none}
  .dw-slide.dark .dw-media::after{background:linear-gradient(transparent 45%,rgba(0,0,0,.62))!important}
  .dw-slide.light .dw-media::after{background:linear-gradient(transparent 50%,rgba(255,255,255,.88))!important}
  .dw-dash{right:6px}
  .dw-dash i{height:14px}
  .dw-dash button[aria-selected="true"] i{height:24px}
}

/* ---------- Carrousel de produits ---------- */
.dw-products{padding-block:clamp(64px,8vw,120px)}
.dw-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;margin:0 auto clamp(30px,3.6vw,52px);padding-inline:var(--dw-gut) var(--dw-gut-r);max-width:1600px}
.dw-head .dw-title{font-size:clamp(34px,4.2vw,64px);line-height:1.08;font-weight:700;letter-spacing:-.03em;max-width:18ch;background:var(--dw-grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.06em;padding-right:.14em;margin-right:-.14em}
.dw-more{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--dw-accent)}
.dw-more::after{content:"";width:28px;height:28px;border-radius:50%;background:color-mix(in srgb,var(--dw-accent) 12%,transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23141617' stroke-width='1.6'%3E%3Cpath d='M10 7l5 5-5 5'/%3E%3C/svg%3E") center/14px no-repeat;transition:transform .4s var(--dw-ease)}
.dw-more:hover::after{transform:translateX(4px)}
.dw-rail{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(240px,23vw,350px);gap:clamp(10px,1.2vw,18px);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-inline:var(--dw-gut) var(--dw-gut-r);scroll-padding-left:var(--dw-gut);max-width:1600px;margin-inline:auto;outline-offset:-2px}
.dw-rail::-webkit-scrollbar{display:none}
.dw-prod{position:relative;scroll-snap-align:start;min-width:0}
.dw-ov{position:absolute;left:0;right:0;top:0;aspect-ratio:4/5;pointer-events:none;z-index:2}
.dw-fav{position:absolute;right:8px;bottom:8px;pointer-events:auto;background:rgba(255,255,255,.55);z-index:2;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:none;border:0;padding:0;cursor:pointer;transition:background-color .3s}
.dw-fav:hover{background:#fff}
.dw-fav .dw-i{width:19px;height:19px;stroke:var(--dw-ink);fill:none;transition:fill .3s}
.dw-fav[aria-pressed="true"] .dw-i{fill:var(--dw-accent);stroke:var(--dw-accent)}
.dw-prod-link{display:flex;flex-direction:column;gap:14px;text-align:center;color:inherit}
.dw-prod-vis{position:relative;display:block;aspect-ratio:4/5;border-radius:6px;overflow:hidden;background:radial-gradient(70% 60% at 50% 45%,var(--dw-pbg-hi),var(--dw-pbg))}
/* Photo entière centrée : tailles maximales plutôt que object-fit, qui déformait l'image avec l'ombre portée sur certains navigateurs d'ordinateur */
.dw-fit-contain .dw-prod-vis img{position:absolute;inset:0;margin:auto;display:block;width:auto!important;height:auto!important;max-width:88%!important;max-height:88%!important;object-fit:initial;filter:drop-shadow(0 18px 22px rgba(20,30,35,.18));transition:transform 1.2s var(--dw-ease)}
.dw-fit-cover .dw-prod-vis img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--dw-ease)}
.dw-prod-link:hover .dw-prod-vis img{transform:scale(1.08)}
.dw-prod-ph{position:absolute;inset:0;display:grid;place-items:center;font-size:12.5px;color:var(--dw-soft)}
.dw-seal{position:absolute;right:10px;top:10px;z-index:1;width:clamp(42px,4vw,54px);color:var(--dw-ink);pointer-events:none}
.dw-seal svg{display:block;width:100%;height:auto}
.dw-tag{position:absolute;left:12px;top:12px;z-index:1;font-size:12px;font-weight:500;background:#fff;color:var(--dw-ink);padding:5px 11px;border-radius:999px}
.dw-prod-meta{display:flex;flex-direction:column;gap:2px;align-items:center}
.dw-brand{font-size:13px;font-weight:600;color:var(--dw-accent)}
.dw-name{font-family:var(--dw-display);font-size:18px;font-weight:600;letter-spacing:-.01em;line-height:1.3}
.dw-spec{font-size:14px;color:var(--dw-soft)}
.dw-price{font-size:14px;font-weight:500;margin-top:4px;color:var(--dw-soft)}
.dw-price del{opacity:.6;margin-right:6px}
.dw-price ins{text-decoration:none;color:var(--dw-ink)}
.dw-pages{display:flex;justify-content:center;gap:4px;padding-top:26px;color:var(--dw-ink)}
.dw-pages[hidden]{display:none}
.dw-pages button{height:24px;width:30px;display:grid;place-items:center;background:none;border:0;padding:0;cursor:pointer;color:inherit}
.dw-pages i{display:block;height:3px;width:20px;border-radius:2px;background:currentColor;opacity:.25;transition:width .5s var(--dw-ease),opacity .4s}
.dw-pages button:hover i{opacity:.55}
.dw-pages button[aria-current="true"] i{width:30px;opacity:1}
.dw-empty{max-width:640px;margin:0 auto;padding:20px;border:1px dashed var(--dw-line);border-radius:8px;text-align:center;color:var(--dw-soft);font-size:14px}
@media (max-width:640px){.dw-rail{grid-auto-columns:72vw}}

/* ---------- Mosaïque Instagram ---------- */
.dw-insta{display:grid;place-items:center;isolation:isolate}
.dw-insta-grid{display:grid;grid-template-columns:repeat(3,1fr);width:100%}
.dw-insta-tile{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:radial-gradient(70% 60% at 50% 45%,var(--dw-pbg-hi),var(--dw-pbg))}
.dw-insta-tile img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--dw-ease)}
.dw-tint .dw-insta-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,color-mix(in srgb,var(--dw-tone) 34%,transparent),color-mix(in srgb,var(--dw-deep) 22%,transparent));mix-blend-mode:multiply;transition:opacity .6s}
.dw-insta-tile:hover img{transform:scale(1.06)}
.dw-insta-tile:hover::after{opacity:0}
.dw-insta-card{position:absolute;z-index:2;width:min(400px,calc(100% - 64px));display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:34px 30px 28px;border-radius:12px;background:rgba(246,250,251,.78);-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);border:1px solid rgba(255,255,255,.6);box-shadow:0 30px 60px -30px rgba(10,30,40,.45)}
.dw-insta-ic{color:var(--dw-accent)}
.dw-i{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}
.dw-insta-ic .dw-i{width:34px;height:34px}
.dw-insta-card .dw-title{font-size:clamp(32px,3.4vw,46px);line-height:1.2;padding-bottom:.08em;letter-spacing:-.03em;font-weight:400;background:var(--dw-grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.14em;margin-right:-.14em}
.dw-insta-text{color:var(--dw-soft);font-size:16px}
.dw-insta-btn{margin-top:14px;display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 30px;border:1px solid var(--dw-ink);border-radius:6px;font-family:var(--dw-display);font-size:16px;font-weight:500;color:var(--dw-ink);transition:background-color .3s,color .3s}
.dw-insta-btn:hover{background:var(--dw-ink);color:#fff}
@media (max-width:767px){
  .dw-insta-grid{grid-template-columns:1fr 1fr}
  .dw-insta-tile{aspect-ratio:1/1}
  .dw-insta-card{width:calc(100% - 64px);padding:24px 20px 20px;gap:6px}
  .dw-insta-ic .dw-i{width:28px;height:28px}
}

/* ---------- Bandeau de réassurance ---------- */
.dw-reass{padding-block:clamp(36px,4.4vw,60px)}
.dw-bg-tone{background:var(--dw-tone-2)}
.dw-bg-white{background:#fff}
.dw-bg-mist{background:var(--dw-mist)}
.dw-bg-deep{background:var(--dw-deep)}
.dw-reass-list{list-style:none;margin:0 auto;padding:0 var(--dw-gut-r) 0 var(--dw-gut);max-width:1600px;display:grid;grid-template-columns:repeat(var(--dw-cols,4),1fr);gap:24px}
.dw-reass-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;font-family:var(--dw-display);font-size:17px;font-weight:500;letter-spacing:-.01em;line-height:1.35;color:var(--dw-deep);padding-inline:8px}
a.dw-reass-item:hover{opacity:.7}
.dw-reass-ic{color:var(--dw-accent)}
.dw-reass-ic .dw-i{width:34px;height:34px;stroke-width:1.3}
.dw-bg-deep .dw-reass-item{color:#fff}
.dw-bg-deep .dw-reass-ic{color:var(--dw-tone)}
@media (max-width:767px){
  .dw-reass-list{grid-template-columns:1fr 1fr;gap:30px 14px}
  .dw-reass-item{font-size:15px;gap:10px}
  .dw-reass-ic .dw-i{width:30px;height:30px}
}

/* ---------- Animations désactivées à la demande du visiteur ---------- */
@media (prefers-reduced-motion:reduce){
  .dw *{transition:none!important;animation:none!important}
  .dw-media img,.dw-media video{transform:none!important}
  .dw-box>*{opacity:1;transform:none}
}

/* Images plein cadre : la règle d'Elementor « .elementor img{height:auto;max-width:100%} » ne doit pas les réduire ni les déformer */
.dw-hero .dw-media img,.dw-hero .dw-media video,.dw-open .dw-open-slide img,.dw-open .dw-open-side img,.dw-rise .dw-rise-media img,.dw-fill .dw-fill-photo img,.dw-hs .dw-hc>img{width:100%;height:100%;max-width:none;max-height:none;border-radius:0;aspect-ratio:auto}

/* Diaporama d'ouverture collé sous l'en-tête : sans la marge intérieure (10 px) du conteneur Elementor qui le contient */
.e-con:has(.elementor-widget-danesi-hero){padding-block:0!important;--padding-top:0px;--padding-bottom:0px}
.e-con:has(.elementor-widget-danesi-hero)>.e-con-inner{padding-block:0!important}

/* Flèche de défilement : mobile et tablette seulement */
@media (min-width:1025px){.dw-cue-wrap{display:none}}
/* Curseurs de position : la flèche sort du bloc (sous le bouton) pour que 100 % pose le bouton vraiment en bas */
@media (max-width:767px){
  .dw-slide.pos-m .dw-copy{--pbot:28px}
  .dw-slide.pos-m .dw-copy:has(.dw-cue-wrap){--pbot:64px}
  .dw-slide.pos-m .dw-cue-wrap{position:absolute;top:100%;left:0;right:0;margin-top:0}
}
@media (min-width:768px) and (max-width:1024px){
  .dw-slide.pos-d .dw-copy:has(.dw-cue-wrap){--pbot:76px}
  .dw-slide.pos-d .dw-cue-wrap{position:absolute;top:100%;left:0;right:0;margin-top:2px}
}
