.elementor-1742 .elementor-element.elementor-element-cea0fd9{--display:flex;--min-height:70vh;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--overflow:hidden;--padding-top:120px;--padding-bottom:80px;--padding-left:0px;--padding-right:0px;--z-index:0;}.elementor-1742 .elementor-element.elementor-element-910e3b0{--display:flex;--z-index:0;}.elementor-1742 .elementor-element.elementor-element-6359a47{width:100%;max-width:100%;z-index:0;}.elementor-1742 .elementor-element.elementor-element-6359a47.elementor-element{--align-self:center;}.elementor-1742 .elementor-element.elementor-element-6359a47 img{width:100%;max-width:100%;}.elementor-1742 .elementor-element.elementor-element-e13a642{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-1742 .elementor-element.elementor-element-657dc30{color:#FFFFFF;}.elementor-1742 .elementor-element.elementor-element-12175b4{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-1742 .elementor-element.elementor-element-873f4bb{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-1742 .elementor-element.elementor-element-dc9c45a{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-1742 .elementor-element.elementor-element-02c6b4b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}@media(min-width:768px){.elementor-1742 .elementor-element.elementor-element-dc9c45a{--width:50%;}.elementor-1742 .elementor-element.elementor-element-02c6b4b{--width:50%;}}/* Start custom CSS for container, class: .elementor-element-cea0fd9 *//**************
 * Spencer's – HERO (refined)
 **************/
:root{
  --swe-gold:#CDA057;
  --ink:#FFFFFF;
  --muted:#E6E9EE;
  --ink-weak:rgba(255,255,255,.82);
  --shadow:0 18px 48px rgba(0,0,0,.35);
}

/* OUTER */
.swe-hero{
  position:relative;
  min-height:clamp(560px, 74vh, 860px);
  background:#000;
  overflow:hidden;
  isolation:isolate;
}

/* Full-bleed image, stays behind */
.swe-hero .elementor-widget-image,
.swe-hero .elementor-widget-image .elementor-widget-container{
  position:absolute !important;
  inset:0 !important;
  margin:0 !important;
  z-index:-1;
}
.swe-hero .elementor-widget-image img{
  width:100%; height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

/* Overlay for legibility (a touch stronger behind text area) */
.swe-hero::after{
  content:"";
  position:absolute; inset:0;
  pointer-events:none; z-index:0;
  background:
    radial-gradient(200% 85% at 25% 70%, rgba(0,0,0,.60) 0%, rgba(0,0,0,.18) 62%, rgba(0,0,0,.04) 100%),
    linear-gradient(180deg, rgba(0,0,0,.08) 0%, rgba(0,0,0,.50) 90%);
}

/* CONTENT GRID */
.swe-hero__content{
  position:relative; z-index:1;
  width:min(1200px, 92%);
  margin-inline:auto;
  display:grid;
  grid-template-columns: 1fr auto;   /* text | CTA */
  align-items:end;
  gap:clamp(16px, 3vw, 32px);
  padding-block: clamp(28px, 6vh, 78px);
  color:var(--ink);
}

/* HEADLINE */
.swe-hero__title,
.swe-hero__content .elementor-heading-title{
  color:var(--swe-gold);
  margin:0 0 .4rem 0;
  font-weight:800;
  line-height:1.06;
  letter-spacing:.005em;
  font-size:clamp(34px, 6.4vw, 84px);
  text-wrap:balance;
  text-shadow:0 2px 20px rgba(0,0,0,.25);
}

/* SUBHEAD (strapline) */
.swe-hero__strap,
.swe-hero__content .elementor-text-editor p:first-child{
  margin:0 0 1rem 0;
  color:var(--ink-weak);
  font-size:clamp(16px, 1.7vw, 19px);
}

/* META BAR — compacts price • location • days into one row */
.swe-hero__meta{
  display:flex; align-items:center; flex-wrap:wrap;
  gap:.6rem 1.25rem;
  color:var(--muted);
  font-size:clamp(15px, 1.6vw, 18px);
  margin:.35rem 0 0 0;
}

/* A more deliberate price styling (like the reference) */
.swe-hero__price{
  color:#fff;
  font-weight:700;
}
.swe-hero__price .value{ color:var(--swe-gold); font-weight:800; }

/* dot separators */
.swe-hero__meta .dot{
  width:.35rem; height:.35rem; border-radius:50%;
  background:rgba(255,255,255,.45);
  display:inline-block; margin:0 .35rem;
}

/* CTA column */
.swe-hero__cta{ display:flex; align-items:end; justify-content:flex-end; }

/* GOLD BUTTON — hard override Elementor defaults */
.swe-hero .elementor-button.btn--gold,
.swe-hero a.elementor-button.btn--gold,
.swe-hero .elementor-button.btn--gold .elementor-button-text{
  background:var(--swe-gold) !important;
  color:#111 !important;
  border:0 !important;
  border-radius:999px !important;
  padding:clamp(12px, 1.2vw, 14px) clamp(22px, 2.2vw, 26px) !important;
  font-weight:800 !important;
  font-size:clamp(14px, 1.4vw, 16px) !important;
  line-height:1 !important;
  box-shadow:0 12px 32px rgba(0,0,0,.34) !important;
  transform:translateZ(0);
  transition:filter .15s ease, transform .15s ease, box-shadow .15s ease !important;
}
.swe-hero .elementor-button.btn--gold:hover{
  filter:brightness(.95);
  transform:translateY(-1px);
  box-shadow:0 18px 44px rgba(0,0,0,.38) !important;
}
.swe-hero .elementor-button.btn--gold:active{ transform:translateY(0); }

/* MOBILE */
@media (max-width:1024px){
  .swe-hero__content{
    grid-template-columns:1fr;
    align-items:start;
    gap:18px;
  }
  .swe-hero__cta{ justify-content:flex-start; }
}
@media (max-width:640px){
  .swe-hero__title,
  .swe-hero__content .elementor-heading-title{ font-size:clamp(28px, 8vw, 40px); }
}
/* CTA column */
.swe-hero__cta {
  display:flex;
  align-items:end;
  justify-content:flex-end;
}

/* GOLD BUTTON — using Spencer's official swe-btn class */
.swe-hero .elementor-button.swe-btn,
.swe-hero a.elementor-button.swe-btn,
.swe-hero .elementor-button.swe-btn .elementor-button-text {
  background:var(--swe-gold) !important;
  color:#111 !important;
  border:0 !important;
  border-radius:999px !important;
  padding:clamp(12px, 1.2vw, 14px) clamp(22px, 2.2vw, 26px) !important;
  font-weight:800 !important;
  font-size:clamp(14px, 1.4vw, 16px) !important;
  line-height:1 !important;
  box-shadow:0 12px 32px rgba(0,0,0,.34) !important;
  transform:translateZ(0);
  transition:filter .15s ease, transform .15s ease, box-shadow .15s ease !important;
}

/* Hover / active */
.swe-hero .elementor-button.swe-btn:hover {
  filter:brightness(.95);
  transform:translateY(-1px);
  box-shadow:0 18px 44px rgba(0,0,0,.38) !important;
}
.swe-hero .elementor-button.swe-btn:active {
  transform:translateY(0);
}

/* Safety fallback — if someone forgets to add swe-btn class */
.swe-hero__cta .elementor-button {
  background:var(--swe-gold) !important;
  color:#111 !important;
  border-radius:999px !important;
  font-weight:800 !important;
  box-shadow:0 12px 32px rgba(0,0,0,.34) !important;
}
.swe-hero .elementor-button.swe-btn {
  background-color: #CDA057 !important;
  color: #111 !important;
}
/* Force GOLD button inside hero */
.swe-hero .elementor-button.swe-btn {
  background-color: #CDA057 !important;
  background: #CDA057 !important;
  border-color: #CDA057 !important;
  color: #111 !important;
  box-shadow: none !important;
}/* End custom CSS */
/* Start custom CSS for shortcode, class: .elementor-element-e36b99c *//* ============================
   SWE – VIDEO HERO CAROUSEL
   ============================ */

.swe-video-hero{
  margin-bottom: 30px;
}

.swe-video-hero__inner{
  max-width: 1000px;
  margin: 0 auto;
  background: #07080b;
  border-radius: 18px;
  padding: 18px 18px 14px;
  box-shadow: 0 16px 40px rgba(0,0,0,.55);
}

.swe-video-hero__player{
  border-radius: 14px;
  overflow: hidden;
  background:#000;
}

.swe-video-hero__video{
  width: 100%;
  display: block;
  border-radius: 14px;
}

/* Thumbnails strip */
.swe-video-hero__thumbs{
  margin-top: 12px;
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.swe-video-hero__thumb{
  border: 0;
  background: transparent;
  padding: 0;
  border-radius: 10px;
  flex: 0 0 110px;
  cursor: pointer;
  position: relative;
  outline: none;
}

.swe-video-hero__thumb-inner{
  display: block;
  border-radius: 10px;
  overflow: hidden;
  border: 2px solid transparent;
  transition: border-color .2s ease, transform .15s ease;
}

.swe-video-hero__thumb video{
  display: block;
  width: 100%;
  height: 64px;
  object-fit: cover;
}

/* Active / hover states */
.swe-video-hero__thumb.is-active .swe-video-hero__thumb-inner{
  border-color: var(--swe-gold, #CDA246);
  transform: translateY(-1px);
}

.swe-video-hero__thumb:hover .swe-video-hero__thumb-inner{
  border-color: rgba(255,255,255,.35);
}

/* Mobile tweaks */
@media (max-width: 768px){
  .swe-video-hero__inner{
    padding: 14px 12px 10px;
    border-radius: 14px;
  }
  .swe-video-hero__thumb{
    flex: 0 0 90px;
  }
  .swe-video-hero__thumb video{
    height: 56px;
  }
}/* End custom CSS */
/* Start custom CSS for shortcode, class: .elementor-element-9a311e7 *//* ——— Reset any old mosaic overrides ——— */
.swe-mosaic, .swe-mosaic__item { all: unset; }
.swe-mosaic { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; margin: 24px 0; }
.swe-mosaic__item { display: block; border-radius: 18px; overflow: hidden; background:#0f0f10; box-shadow: 0 6px 20px rgba(0,0,0,.25); transition: transform .25s, box-shadow .25s; }
.swe-mosaic__item:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(0,0,0,.35); }
.swe-mosaic__item img { width: 100%; height: auto; display: block; }

/* ——— True masonry using multi-columns ——— */
.swe-masonry {
  --gap: 18px;
  column-gap: var(--gap);
  margin: 24px 0;
  /* mobile default: 1 column */
  column-count: 1;
}
@media (min-width: 700px)  { .swe-masonry { column-count: 2; } }
@media (min-width: 1024px) { .swe-masonry { column-count: 3; } }
@media (min-width: 1400px) { .swe-masonry { column-count: 4; } }

.swe-masonry__item {
  display: inline-block;
  width: 100%;
  margin: 0 0 var(--gap);
  break-inside: avoid;
  border-radius: 18px;
  overflow: hidden;
  background: #0f0f10;
  box-shadow: 0 6px 20px rgba(0,0,0,.25);
  transition: transform .25s ease, box-shadow .25s ease;
}
.swe-masonry__item:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 30px rgba(0,0,0,.35);
}
.swe-masonry__item img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 18px;
}

/* Brand focus ring */
:root { --swe-gold: #D4AF37; }
.swe-masonry__item:focus-visible,
.swe-mosaic__item:focus-visible {
  outline: 2px solid var(--swe-gold);
  outline-offset: 3px;
}/* End custom CSS */
/* Start custom CSS for shortcode, class: .elementor-element-719cfe6 *//* ======================================
   SWE – Matt's Experience Notes
   ====================================== */

.swe-matt-exp {
    background: #000;
    color: #fff;
    padding: 50px 20px 60px;
}

.swe-matt-exp__inner {
    max-width: 1100px;
    margin: 0 auto;
}

/* Main title */
.swe-matt-exp__title {
    font-size: 26px;
    line-height: 1.3;
    margin: 0 0 24px;
    color: var(--swe-gold, #cda246);
    font-weight: 700;
}

/* Each section */
.swe-matt-exp__block {
    margin-bottom: 24px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.swe-matt-exp__block:last-of-type {
    border-bottom: none;
    padding-bottom: 0;
}

/* Section heading */
.swe-matt-exp__heading {
    font-size: 20px;
    margin: 0 0 6px;
    color: var(--swe-gold, #cda246);
    font-weight: 600;
}

/* Body text */
.swe-matt-exp__body p {
    margin: 0 0 8px;
    color: #eeeeee;
    line-height: 1.6;
}

.swe-matt-exp__body p:last-child {
    margin-bottom: 0;
}

/* Fallback text */
.swe-matt-exp__fallback {
    margin: 0;
    color: #e0e0e0;
    font-size: 15px;
    line-height: 1.6;
}

/* Mobile tweaks */
@media (max-width: 600px) {
    .swe-matt-exp {
        padding: 40px 16px 50px;
    }
    .swe-matt-exp__title {
        font-size: 22px;
    }
    .swe-matt-exp__heading {
        font-size: 18px;
    }
}/* End custom CSS */