/* ============================================================
   VINSPIRATION — NATIVE SKIN
   Styles for the native-Elementor versions of the destination
   sections. Load together with vinspiration-global.css.
   Content lives in native widgets (client-editable);
   the look lives here.
   v1.0
   ============================================================ */

/* ---------- layout: container width + section rhythm ---------- */
.vinsp.elementor-section.elementor-section-boxed > .elementor-container{max-width:var(--maxw);padding-left:18px;padding-right:18px}
.vinsp.elementor-top-section.vs-pad{padding:clamp(70px,9vw,130px) 0}
.vs-c{text-align:center;margin-left:auto;margin-right:auto}

/* ---------- typography on Elementor widgets ---------- */
.vinsp .elementor-heading-title{font-family:var(--serif);font-weight:400;line-height:1.13;letter-spacing:-.01em;color:var(--ink)}
.vinsp .vs-eyebrow .elementor-heading-title{font-family:var(--sans);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--burgundy)}
.vinsp .vs-eyebrow{margin-bottom:2px}
.vinsp .vs-ondark .elementor-heading-title{color:rgba(255,255,255,.85)}
.vinsp .vs-h2 .elementor-heading-title{font-size:clamp(1.9rem,4vw,3rem)}
.vinsp .vs-h2.vs-c{max-width:40ch}
.vinsp .vs-h2 .em,.vinsp .elementor-heading-title .em{font-style:italic;font-weight:400}
.vinsp .vs-lede p{font-size:1rem;color:#3a3330}
.vinsp .vs-lede.vs-c{max-width:48ch}
.vinsp .elementor-widget-text-editor{color:#3a3330}
.vinsp .elementor-widget-text-editor p{font-size:1.045rem;color:#3a3330}
.vinsp .elementor-widget-text-editor a{color:var(--burgundy);text-decoration:none;border-bottom:1px solid var(--gold)}
.vinsp .elementor-widget-text-editor a:hover{color:var(--gold)}

/* head-block spacing under the lede/title */
.vinsp .vs-h2.vs-c,.vinsp .vs-lede.vs-c{margin-bottom:clamp(28px,4vw,48px)}
.vinsp .vs-h2.vs-c + .elementor-widget{margin-top:0}

/* ---------- brand pill button (native Button widget) ---------- */
.vinsp .vs-btn .elementor-button{display:inline-flex;align-items:center;gap:12px;font-family:var(--sans);font-size:.8rem;font-weight:400;letter-spacing:.18em;text-transform:uppercase;background:var(--cream);color:var(--ink);padding:17px 38px;border:none;border-radius:40px;transition:transform .35s ease,box-shadow .35s ease,background .35s ease,color .35s ease}
.vinsp .vs-btn .elementor-button:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(40,18,20,.4);background:var(--gold-bright);color:var(--ink)}
.vinsp .vs-btn .elementor-button-icon{transition:transform .35s ease}
.vinsp .vs-btn .elementor-button:hover .elementor-button-icon{transform:translateX(6px)}
.vinsp .vs-btn.vs-dark .elementor-button{background:var(--burgundy);color:#fff}
.vinsp .vs-btn.vs-dark .elementor-button:hover{background:var(--gold-bright);color:var(--ink)}
.vinsp .vs-btn.vs-c{text-align:center}

/* ============================================================ HERO */
.vs-hero > .elementor-container{min-height:100svh;align-items:center;padding-top:120px;padding-bottom:80px}
.vs-hero .vs-h1 .elementor-heading-title{font-size:clamp(2.3rem,5.4vw,4.2rem);letter-spacing:-.015em;color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.25);max-width:18ch}
.vs-hero .vs-sub p{font-size:1.15rem;color:rgba(255,255,255,.92);max-width:46ch;margin:0}
.vs-hero .vs-sub{margin:1.8rem 0 2.4rem}

/* ============================================================ SPLIT */
.vs-split{background:var(--cream)}
.vs-split > .elementor-container{align-items:center}
.vs-split .vs-h2 .elementor-heading-title{font-size:clamp(1.9rem,3.8vw,3rem);max-width:15ch}
.vs-split .vs-h2{margin-bottom:1.4rem}
.vs-split .vs-body p{margin-bottom:1.15rem;max-width:48ch}
.vs-split .vs-splitimg img{width:100%;border-radius:12px;aspect-ratio:4/5;object-fit:cover;box-shadow:0 30px 60px -30px rgba(60,25,28,.45)}
@media(max-width:1024px){
  .vs-split .vs-splitimg img{aspect-ratio:4/3}
}

/* ============================================================ FLAVOUR (tiles) */
.vs-ftile .vs-tileimg{position:relative;border-radius:12px;overflow:hidden;margin-bottom:0}
.vs-ftile .vs-tileimg::after{content:"";position:absolute;inset:0;border-radius:12px;background:linear-gradient(180deg,rgba(0,0,0,0) 42%,rgba(20,12,12,.78) 100%);pointer-events:none}
.vs-ftile .vs-tileimg img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px;transition:transform 1s ease;display:block}
.vs-ftile:hover .vs-tileimg img{transform:scale(1.05)}
.vs-ftile .vs-tile-title{position:relative;z-index:2;margin-top:-3.4rem;padding:0 1.3rem;margin-bottom:0}
.vs-ftile .vs-tile-title .elementor-heading-title{font-size:1.3rem;color:#fff}
.vs-ftile .vs-cap{margin-top:1.5rem}
.vs-ftile .vs-cap p{font-size:.9rem;color:#3a3330;line-height:1.55}

/* ============================================================ REGIONS */
.vs-regions .reg-item{max-width:840px;margin:0 auto;width:100%;padding:1.5rem 0;border-top:1px solid var(--line)}
.vs-regions .elementor-widget.reg-item{margin-bottom:0}
.vs-regions .reg-item:last-of-type{border-bottom:1px solid var(--line)}
.vs-regions .reg-item .kicker{font-family:var(--sans);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--burgundy);display:block;margin-bottom:.35rem}
.vs-regions .reg-item h3{font-family:var(--serif);font-weight:400;font-size:1.4rem;margin:0 0 .5rem;color:var(--ink)}
.vs-regions .reg-item p{font-size:.97rem;max-width:74ch;margin:0}

/* ============================================================ DOORS (image-box cards) */
.vs-doors .elementor-image-box-wrapper{text-align:left}
.vs-doors .elementor-image-box-img{width:100%;margin:0 0 1.3rem!important}
.vs-doors .elementor-image-box-img img{width:100%;border-radius:12px;aspect-ratio:3/4;object-fit:cover}
.vinsp .elementor-image-box-title{font-family:var(--serif);font-weight:400;color:var(--ink);margin:0 0 .6rem}
.vs-doors .elementor-image-box-title{font-size:1.4rem}
.vs-doors .elementor-image-box-description{font-size:.97rem;color:#3a3330;line-height:1.7}
.vs-doors .elementor-inner-section + .elementor-inner-section{margin-top:clamp(22px,3vw,34px)}

/* ============================================================ SEASONS (cards) */
.vs-seasons .vs-scard > .elementor-widget-wrap{background:var(--cream);border-radius:12px;border-top:2px solid var(--gold);padding:2rem 1.6rem}
.vs-seasons .vs-scard-title .elementor-heading-title{font-size:1.45rem}
.vs-seasons .vs-scard-title{margin-bottom:.2rem}
.vinsp .vs-when .elementor-heading-title{font-family:var(--sans);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--burgundy)}
.vs-seasons .vs-when{margin-bottom:1rem}
.vs-seasons .vs-scard p{font-size:.93rem;margin:0}
.vs-seasons .vs-scard .elementor-widget-text-editor{margin-bottom:0}

/* ============================================================ COMPARE */
.vs-compare{background:var(--cream)}
.vs-comparebox > .elementor-container{max-width:920px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--white)}
.vs-comparebox .elementor-column > .elementor-widget-wrap{padding:2rem 1.8rem}
.vs-comparebox .elementor-column + .elementor-column > .elementor-widget-wrap{border-left:1px solid var(--line)}
.vs-ccol .vs-ccol-title .elementor-heading-title{font-size:1.55rem}
.vs-ccol .vs-ccol-title{margin-bottom:.15rem}
.vinsp .vs-tag .elementor-heading-title{font-family:var(--sans);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--burgundy)}
.vs-ccol .vs-tag{margin-bottom:1.1rem}
.vs-ccol .vs-dims h6{font-family:var(--sans);font-weight:400;font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;color:var(--burgundy);border-top:1px solid var(--line);padding-top:.8rem;margin:0 0 .25rem}
.vs-ccol .vs-dims p{font-size:.9rem;margin:0 0 .8rem}
.vs-ccol .vs-dims p:last-child{margin-bottom:0}
.vs-compare .vs-compare-foot{margin-top:1.8rem}
.vs-compare .vs-compare-foot p{font-size:.95rem}
@media(max-width:767px){
  .vs-comparebox .elementor-column + .elementor-column > .elementor-widget-wrap{border-left:none;border-top:1px solid var(--line)}
}

/* ============================================================ INVITE */
.vs-invite{padding:clamp(90px,12vw,160px) 0}
.vs-invite .vs-h2 .elementor-heading-title{color:#fff;font-size:clamp(2.1rem,4.6vw,3.4rem);line-height:1.15;max-width:20ch;margin:0 auto}
.vs-invite .vs-invite-title{margin-bottom:1.8rem}
.vs-invite .vs-invite-text p{color:rgba(255,255,255,.9);max-width:50ch;margin:0 auto 1rem}
.vs-invite .vs-btn{margin-top:1.8rem}

/* ============================================================ GLANCE */
.vs-glancebox > .elementor-container{max-width:880px}
.vs-glance .vs-dl{margin:0}
.vs-glance .vs-dl dt{font-family:var(--sans);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--burgundy)}
.vs-glance .vs-dl dd{font-size:.93rem;color:#3a3330;margin:0}
.vs-glance .vs-dl dt{float:left;width:170px;padding-top:calc(.75rem + 3px);clear:both}
.vs-glance .vs-dl dd{margin-left:184px;padding:.75rem 0;border-top:1px solid var(--line)}
@media(max-width:560px){
  .vs-glance .vs-dl dt{float:none;width:auto;padding:.75rem 0 0;border-top:1px solid var(--line)}
  .vs-glance .vs-dl dd{margin-left:0;padding:.1rem 0 .75rem;border-top:none}
}

/* ============================================================ FAQ (accordion) */
.vs-faq{background:var(--cream)}
.vs-faq .vs-accordion{max-width:820px;margin:0 auto;width:100%}
.vinsp .vs-accordion .elementor-accordion-item{border:none;border-top:1px solid var(--line);background:transparent}
.vinsp .vs-accordion .elementor-accordion-item:last-child{border-bottom:1px solid var(--line)}
.vinsp .vs-accordion .elementor-tab-title{padding:1.4rem 0;font-family:var(--serif);font-size:1.22rem;font-weight:400;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:20px}
.vinsp .vs-accordion .elementor-tab-title a{color:var(--ink)}
.vinsp .vs-accordion .elementor-accordion-icon{color:var(--burgundy);font-size:.9rem;width:auto;order:2;float:none}
.vinsp .vs-accordion .elementor-accordion-title{flex:1}
.vinsp .vs-accordion .elementor-tab-content{border:none;background:transparent;padding:0 0 1.4rem}
.vinsp .vs-accordion .elementor-tab-content p{max-width:64ch;font-size:1.045rem}

/* ============================================================ AUTHORS */
.vs-authors{background:var(--cream)}
.vs-authors .elementor-inner-section > .elementor-container{max-width:920px}
.vs-aperson .elementor-image-box-wrapper{display:flex;gap:20px;align-items:flex-start;text-align:left}
.vs-aperson .elementor-image-box-img{flex:0 0 84px;width:84px;margin:0!important}
.vs-aperson .elementor-image-box-img img{width:84px;height:84px;object-fit:cover;border-radius:50%;box-shadow:0 12px 28px -14px rgba(60,25,28,.5)}
.vs-aperson .elementor-image-box-title{font-size:1.28rem;margin-bottom:.1rem}
.vs-aperson .elementor-image-box-description{font-size:.92rem;color:#3a3330;line-height:1.7}
.vs-aperson .elementor-image-box-description .role{display:block;font-family:var(--sans);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--burgundy);margin-bottom:.7rem}

/* ============================================================ BRIDGE */
.vs-bridge{background:var(--ink);padding:34px 0}
.vs-bridge p{color:rgba(255,255,255,.75);text-align:center;font-size:1.02rem;margin:0}
.vs-bridge a{color:#fff;border-bottom:1px solid var(--gold);text-decoration:none}

/* ============================================================
   Editor niceties: keep everything visible while editing
   (fade/reveal hidden states are already gated in
   vinspiration-global.css behind .vinsp-js + editor override)
   ============================================================ */
