/* ==========================================================================
   Bridge between Elementor's markup and the design system.

   Elementor puts custom CSS classes on a widget's *wrapper*, not on the element
   it renders. These rules reach through the wrapper so pages built by the site
   builder look identical to the mockup while staying editable in Elementor.
   ========================================================================== */

/*
 * These classes are shared with plain (non-Elementor) markup, where the design
 * system puts the section padding on the element itself. Inside Elementor the
 * padding belongs on `.e-con-inner`, so the outer padding must be zeroed or
 * every section is spaced twice over.
 */
.elementor-element.vw-section,
.elementor-element.vw-hero,
.elementor-element.vw-band,
.elementor-element.vw-usp,
.elementor-element.vw-news{
  padding:0;
  --padding-top:0px; --padding-bottom:0px; --padding-left:0px; --padding-right:0px;
  --margin-top:0px; --margin-bottom:0px;
}

/* Boxed containers: our own max-width and gutter, not Elementor's. */
.elementor-element.vw-section>.e-con-inner,
.elementor-element.vw-news>.e-con-inner{
  max-width:var(--vw-maxw); margin-inline:auto; width:100%;
  padding-inline:var(--vw-gutter); padding-block:clamp(64px,9vw,120px);
}
.elementor-element.vw-section--tight>.e-con-inner{padding-block:clamp(40px,6vw,72px)}

/* headings & text inherit the design system, not Elementor defaults */
.vw-el-h .elementor-heading-title{font-family:var(--vw-display); color:inherit; letter-spacing:-.02em; line-height:1.08}
.vw-el-t{color:inherit}
.vw-el-t p{margin:0 0 14px}
.vw-el-t p:last-child{margin-bottom:0}
.vw-el-t a{color:var(--vw-navy); text-decoration:underline; text-underline-offset:3px}
.vw-el-img img{border-radius:var(--vw-radius-lg)}
.vw-el-img.vw-el-img--flat img{border-radius:0}

/* buttons: style the anchor through the wrapper class */
.vw-btnw .elementor-button{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--vw-display); font-weight:600; font-size:15.5px; letter-spacing:.005em;
  padding:14px 26px; border-radius:100px; border:1.5px solid transparent; line-height:1.2;
  transition:transform .18s ease,background .18s,box-shadow .18s,color .18s,border-color .18s;
  background:var(--vw-ink); color:var(--vw-ground); fill:currentColor;
}
.vw-btnw .elementor-button:active{transform:translateY(1px)}
.vw-btnw .elementor-button:focus-visible{outline:3px solid var(--vw-sky); outline-offset:2px}
.vw-btnw--primary .elementor-button:hover{background:var(--vw-navy); color:#fff; box-shadow:var(--vw-shadow)}
.vw-btnw--accent .elementor-button{background:var(--vw-navy); color:#fff}
.vw-btnw--accent .elementor-button:hover{background:var(--vw-navy-2); color:#fff; box-shadow:0 14px 30px -12px rgba(0,72,132,.6)}
.vw-btnw--ghost .elementor-button{background:transparent; border-color:currentColor; color:var(--vw-ink)}
.vw-btnw--ghost .elementor-button:hover{background:var(--vw-ink); color:var(--vw-ground)}
.vw-btnw--light .elementor-button{background:rgba(255,255,255,.14); color:#fff; border-color:rgba(255,255,255,.55); backdrop-filter:blur(6px)}
.vw-btnw--light .elementor-button:hover{background:#fff; color:var(--vw-navy); border-color:#fff}

/* ---- hero as an Elementor container ---- */
.elementor-element.vw-hero{
  position:relative; min-height:min(88vh,760px); justify-content:flex-end; color:#fff; isolation:isolate; overflow:hidden;
}
/*
 * Two overlays, not one. The headline is left-aligned over a bright splash
 * photograph whose subject sits right of centre, so a purely vertical scrim
 * either washes out the text or buries the bottle. The horizontal pass darkens
 * the text column and fades out before the bottle; the vertical pass grounds
 * the whole frame and carries it into the section below.
 */
.elementor-element.vw-hero::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    linear-gradient(100deg,rgba(3,18,34,.82) 0%,rgba(3,18,34,.62) 38%,rgba(3,18,34,.16) 68%,rgba(3,18,34,.05) 100%),
    linear-gradient(180deg,rgba(4,20,38,.34) 0%,rgba(4,20,38,.12) 30%,rgba(4,18,34,.62) 100%);
}
/* On a narrow screen the headline sits directly over the brightest part of the
   bottle label, so the scrim has to carry more weight than it does on desktop
   where the text column is offset to the left. */
@media (max-width:1000px){
  .elementor-element.vw-hero::after{
    background:linear-gradient(180deg,rgba(4,20,38,.55) 0%,rgba(4,20,38,.52) 30%,rgba(3,18,34,.72) 62%,rgba(3,18,34,.88) 100%);
  }
  .elementor-element.vw-hero .vw-el-t{color:#fff}
}
.elementor-element.vw-hero>.e-con-inner{
  position:relative; z-index:1; max-width:var(--vw-maxw); margin-inline:auto; width:100%;
  padding-inline:var(--vw-gutter); padding-block:clamp(40px,7vw,80px);
  align-items:flex-start;
}
.vw-hero__col{max-width:660px; gap:0!important}
.elementor-element.vw-hero .vw-el-h .elementor-heading-title{
  font-size:clamp(40px,7vw,76px); font-weight:700; letter-spacing:-.03em; line-height:1;
  color:#fff; text-shadow:0 2px 30px rgba(0,20,40,.35);
}
.elementor-element.vw-hero .vw-el-t{font-size:clamp(17px,2.2vw,21px); color:rgba(255,255,255,.92); margin-top:20px; max-width:46ch}
.elementor-element.vw-hero .vw-btnw{margin-top:32px; margin-right:14px}

/* ---- parallax bands ---- */
.elementor-element.vw-band{
  position:relative; min-height:clamp(360px,52vw,520px); justify-content:center; text-align:center;
  color:#fff; overflow:hidden; isolation:isolate;
}
.elementor-element.vw-band::after{content:""; position:absolute; inset:0; z-index:0; background:rgba(3,22,42,.5); pointer-events:none}
.elementor-element.vw-band>.e-con-inner{
  position:relative; z-index:1; max-width:820px; margin-inline:auto; text-align:center;
  padding:60px var(--vw-gutter); align-items:center;
}
.elementor-element.vw-band .vw-eyebrow{color:var(--vw-sky-soft)}
.elementor-element.vw-band .vw-el-h .elementor-heading-title{
  font-size:clamp(30px,5vw,58px); font-weight:700; color:#fff; letter-spacing:-.03em; margin-top:14px;
}
.elementor-element.vw-band .vw-el-t{color:rgba(255,255,255,.9); margin-top:18px; font-size:clamp(16px,2vw,19px)}
.elementor-element.vw-band .vw-btnw{margin-top:28px}

/* ---- USP strip ---- */
.elementor-element.vw-usp{background:var(--vw-surface); border-bottom:1px solid var(--vw-line)}
.elementor-element.vw-usp>.e-con-inner{
  max-width:var(--vw-maxw); margin-inline:auto; padding-inline:var(--vw-gutter);
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
}
.elementor-element.vw-usp__item{
  display:flex!important; flex-direction:row!important; gap:13px; align-items:center;
  padding:22px clamp(10px,2vw,26px); border-left:1px solid var(--vw-line); width:auto;
}
.elementor-element.vw-usp__item:first-child{border-left:0}
.elementor-element.vw-usp__item .vw-usp__ic{flex-shrink:0}
.elementor-element.vw-usp__item .vw-el-h .elementor-heading-title{font-size:15px; font-weight:600; letter-spacing:-.01em}
.elementor-element.vw-usp__item .vw-el-t{color:var(--vw-muted); font-size:13px}

/* ---- section head ---- */
.elementor-element.vw-sec-head{
  display:flex!important; flex-direction:row!important; justify-content:space-between;
  align-items:flex-end; gap:24px; margin-bottom:clamp(30px,4vw,52px); width:100%;
}
.elementor-element.vw-sec-head__main{gap:0!important; width:auto; flex:1}
.elementor-element.vw-sec-head .vw-el-h .elementor-heading-title{font-size:clamp(29px,4.2vw,46px); margin-top:14px}
.elementor-element.vw-sec-head .vw-el-t{margin-top:12px}

/* ---- generic grids driven by container classes ---- */
.elementor-element.vw-grid-2>.e-con-inner,
.elementor-element.vw-grid-3>.e-con-inner,
.elementor-element.vw-grid-4>.e-con-inner,
.elementor-element.vw-grid-2,
.elementor-element.vw-grid-3,
.elementor-element.vw-grid-4{display:grid}
.elementor-element.vw-grid-2{grid-template-columns:repeat(2,1fr); gap:20px}
.elementor-element.vw-grid-3{grid-template-columns:repeat(3,1fr); gap:18px}
.elementor-element.vw-grid-4{grid-template-columns:repeat(4,1fr); gap:20px}
.elementor-element.vw-grid-2>*,.elementor-element.vw-grid-3>*,.elementor-element.vw-grid-4>*{width:auto!important}

/* explore cards as containers */
.elementor-element.vw-exp{
  display:flex!important; flex-direction:row!important; gap:16px; padding:24px;
  background:var(--vw-surface); border:1px solid var(--vw-line); border-radius:var(--vw-radius);
  transition:border-color .18s,transform .18s,box-shadow .18s; width:auto;
}
.elementor-element.vw-exp:hover{border-color:var(--vw-sky); transform:translateY(-3px); box-shadow:var(--vw-shadow)}
.elementor-element.vw-exp .vw-exp__body{gap:3px!important; width:auto; flex:1}
.elementor-element.vw-exp .vw-el-h .elementor-heading-title{font-size:18px; font-weight:600; color:var(--vw-ink)}
.elementor-element.vw-exp .vw-el-t{font-size:14px; color:var(--vw-muted)}

/* range cards as containers */
.elementor-element.vw-range-card{
  border-radius:var(--vw-radius-lg); overflow:hidden; position:relative; min-height:380px;
  justify-content:flex-end; color:#fff; isolation:isolate; border:1px solid var(--vw-line);
  transition:transform .22s; width:auto; padding:20px;
}
.elementor-element.vw-range-card:hover{transform:translateY(-5px)}
.elementor-element.vw-range-card::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(180deg,rgba(3,20,38,.12) 0%,rgba(3,20,38,.32) 42%,rgba(2,16,32,.92) 100%);
}
.elementor-element.vw-range-card>.e-con-inner,
.elementor-element.vw-range-card>*{position:relative; z-index:1}
.elementor-element.vw-range-card .vw-el-h .elementor-heading-title{font-size:22px; font-weight:700; color:#fff; text-shadow:0 2px 14px rgba(0,10,24,.6)}
.elementor-element.vw-range-card .vw-el-t{font-size:13.5px; color:rgba(255,255,255,.9); text-shadow:0 1px 10px rgba(0,10,24,.7)}

/* mix banner */
.elementor-element.vw-mix{
  border-radius:var(--vw-radius-lg); overflow:hidden; position:relative; margin-top:24px;
  background:linear-gradient(120deg,var(--vw-navy) 0%,var(--vw-navy-2) 52%,var(--vw-sky) 130%);
  color:#fff; display:grid!important; grid-template-columns:1.15fr .85fr; gap:0;
  box-shadow:var(--vw-shadow-lg); width:100%;
}
.elementor-element.vw-mix>*{width:auto!important}
.elementor-element.vw-mix__txt{padding:clamp(28px,4vw,46px); justify-content:center; gap:14px!important}
.elementor-element.vw-mix .vw-el-h .elementor-heading-title{font-size:clamp(24px,3.4vw,36px); font-weight:700; color:#fff}
.elementor-element.vw-mix .vw-el-t{color:rgba(255,255,255,.9); max-width:44ch}
.elementor-element.vw-mix__visual{position:relative; min-height:230px; padding:0}
.elementor-element.vw-mix__visual .vw-el-img,
.elementor-element.vw-mix__visual .elementor-widget-container,
.elementor-element.vw-mix__visual .elementor-image{height:100%}
.elementor-element.vw-mix__visual img{
  width:100%; height:100%; object-fit:cover; border-radius:0;
  mix-blend-mode:luminosity; opacity:.9;
}
.elementor-element.vw-mix__visual::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,var(--vw-navy),transparent 55%); pointer-events:none}

/* story split */
.elementor-element.vw-story__grid{
  display:grid!important; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,72px); align-items:center; width:100%;
}
.elementor-element.vw-story__grid>*{width:auto!important}
.elementor-element.vw-story .vw-el-h .elementor-heading-title{font-size:clamp(28px,3.6vw,42px); margin-block:14px}
.vw-story__media-el img{aspect-ratio:4/5; object-fit:cover; width:100%}

/* newsletter */
.elementor-element.vw-news{background:var(--vw-sky-tint)}
.elementor-element.vw-news>.e-con-inner{display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center}
.elementor-element.vw-news>.e-con-inner>*{width:auto!important}
.elementor-element.vw-news .vw-el-h .elementor-heading-title{font-size:clamp(26px,3.4vw,40px)}

/* prose column */
.elementor-element.vw-prose-col{max-width:72ch}

@media (max-width:1000px){
  .elementor-element.vw-usp>.e-con-inner{grid-template-columns:repeat(2,1fr)}
  .elementor-element.vw-usp__item:nth-child(3){border-left:0}
  .elementor-element.vw-grid-4{grid-template-columns:repeat(2,1fr)}
  .elementor-element.vw-grid-3{grid-template-columns:repeat(2,1fr)}
  .elementor-element.vw-mix{grid-template-columns:1fr}
  .elementor-element.vw-mix__visual{min-height:180px; order:-1}
  .elementor-element.vw-mix__visual::after{background:linear-gradient(180deg,transparent,var(--vw-navy))}
  .elementor-element.vw-story__grid{grid-template-columns:1fr}
  .elementor-element.vw-news>.e-con-inner{grid-template-columns:1fr}
  .elementor-element.vw-sec-head{flex-direction:column!important; align-items:flex-start}
}
@media (max-width:560px){
  .elementor-element.vw-usp>.e-con-inner{grid-template-columns:1fr}
  .elementor-element.vw-usp__item{border-left:0; border-top:1px solid var(--vw-line)}
  .elementor-element.vw-usp__item:first-child{border-top:0}
  .elementor-element.vw-grid-2,.elementor-element.vw-grid-3,.elementor-element.vw-grid-4{grid-template-columns:1fr}
}
