:root{--paper:#F1EEE6;--ink:#171717;--muted:#6D6A63;--rule:#C9C5BA;--red:#A84036;--blue:#4E6870;--max:1440px;--content:1240px;--serif:Georgia,'Times New Roman',serif;--sans:'Arial Narrow','Helvetica Neue',Arial,sans-serif;--mono:var(--serif);--page-gutter:clamp(28px,4.5vw,64px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:auto}button{font:inherit;color:inherit}
.site-header{position:fixed;z-index:50;top:0;left:0;right:0;height:72px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;color:#fff;transition:.2s;background:transparent}.site-header.scrolled{background:rgba(241,238,230,.96);color:var(--ink);border-bottom:1px solid var(--rule);backdrop-filter:blur(8px)}.site-brand,.desktop-nav a,.menu-toggle{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.08em}.desktop-nav{display:flex;gap:28px}.desktop-nav a{opacity:.68;transition:.18s}.desktop-nav a:hover{opacity:1}.menu-toggle{display:none;border:0;background:none;padding:12px 0}.mobile-menu{position:fixed;z-index:100;inset:0;background:var(--paper);padding:20px}.mobile-menu nav{display:flex;flex-direction:column;gap:22px;margin-top:90px;font-family:var(--sans);font-size:42px;font-weight:800;line-height:.95}.menu-close{position:absolute;right:20px;top:14px;border:0;background:none;font-size:34px}.menu-open{overflow:hidden}
.hero{width:100%;padding:24px}.hero-media{position:relative;width:100%;aspect-ratio:16/9;min-height:0;max-height:none;background-color:#b7b2a7;background-position:center;background-size:cover;background-repeat:no-repeat;overflow:hidden}.hero-media:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.32))}.hero-title{position:absolute;z-index:2;left:4vw;bottom:8vh;color:#fff;font-family:var(--sans);font-size:clamp(72px,9vw,128px);font-weight:900;line-height:.76;letter-spacing:-.055em}.hero-kicker,.hero-enter{position:absolute;z-index:2;color:#fff;font:11px var(--mono);letter-spacing:.06em}.hero-kicker{left:4.3vw;bottom:4.5vh}.hero-enter{right:3vw;bottom:3vh}
.intro{width:100%;max-width:none;margin:160px 0;padding-inline:var(--page-gutter)}.intro>*{max-width:680px}.eyebrow,.section-head>span,.meta,.episode-number,.archive-caption span,.footer-credit{font:11px var(--mono);letter-spacing:.055em}.intro h1,.single-entry h1,.not-found h1{font:700 clamp(46px,6vw,82px)/.92 var(--sans);letter-spacing:-.04em;margin:22px 0}.intro p{font-size:clamp(22px,2.1vw,30px);line-height:1.32;margin:0}
.section{width:100%;max-width:none;margin:0;padding:0 var(--page-gutter) 160px}.section-head{display:grid;grid-template-columns:clamp(150px,16vw,220px) minmax(0,1fr);align-items:start;border-top:1px solid var(--rule);padding-top:18px;margin-bottom:64px;min-width:0}.section-head>*{min-width:0}.section-head h2{font:800 clamp(46px,5.7vw,88px)/.86 var(--sans);letter-spacing:-.045em;margin:0;max-width:100%;overflow-wrap:normal}
.locals-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:64px 28px}.character-card{grid-column:span 4;cursor:pointer;position:relative}.character-card:nth-child(5n+1){grid-column:span 5}.character-card:nth-child(5n+2){grid-column:span 3;margin-top:70px}.character-card:nth-child(5n+3){grid-column:span 4}.card-image{aspect-ratio:4/5;background:#d7d2c6;overflow:hidden}.card-image img{width:100%;height:100%;object-fit:cover;transition:.2s}.character-card:hover .card-image img{filter:brightness(.96)}.character-card h3,.episode-card h3{font:800 28px/1 var(--sans);margin:14px 0 6px}.character-card p{font-style:italic;margin:8px 0}.view-link{font:10px var(--mono);opacity:0;display:inline-block;transform:translateY(2px);transition:.18s}.character-card:hover .view-link{opacity:1;transform:none}
.archive-caption{display:flex;gap:18px;margin-top:10px}.archive-caption strong{font:700 12px var(--sans);letter-spacing:.03em}
.episode-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:52px 28px}.episode-card{cursor:pointer}.episode-poster{position:relative;aspect-ratio:9/16;background:#cfc9bd;overflow:hidden}.episode-poster img{height:100%;object-fit:cover}.episode-hover{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.18);color:#fff;font:12px var(--mono);opacity:0;transition:.2s}.episode-card:hover .episode-hover{opacity:1}.episode-number{margin-top:12px}.episode-card h3{margin-top:5px}
.album-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:42px 24px;align-items:start}.album-item{cursor:pointer}.album-item.size-small{grid-column:span 3}.album-item.size-medium{grid-column:span 4}.album-item.size-large{grid-column:span 6}.album-item.size-hero{grid-column:span 8}.album-item img{transition:.2s}.album-item:hover img{filter:brightness(.96)}

.single-entry,.not-found{max-width:920px;margin:0 auto;padding:160px 24px 120px}.single-media{margin:50px 0}.single-copy{max-width:680px;font-size:20px}.not-found{min-height:80vh;display:flex;flex-direction:column;justify-content:center}.not-found a{font:11px var(--mono);margin-top:20px}
.avm-modal{display:none}
@media(max-width:900px){.desktop-nav{display:none}.menu-toggle{display:block}.hero{width:100%;padding:10px}.hero-media{width:100%;aspect-ratio:16/9;min-height:0;max-height:none}.hero-title{font-size:clamp(52px,16vw,82px);left:24px;bottom:92px}.hero-kicker{left:26px;bottom:58px}.hero-enter{right:20px;bottom:22px}.intro{margin:100px 0;padding-inline:20px}.section{padding:0 20px 96px}.section-head{grid-template-columns:1fr;gap:18px;margin-bottom:40px}.locals-grid{gap:44px 16px}.character-card,.character-card:nth-child(n){grid-column:span 6;margin-top:0}.character-card:nth-child(3n+2){grid-column:2/span 5}.episode-grid{grid-template-columns:repeat(2,1fr);gap:42px 16px}.album-grid{gap:28px 12px}.album-item.size-small{grid-column:span 6}.album-item.size-medium,.album-item.size-large,.album-item.size-hero{grid-column:span 12}.site-header{height:60px;padding:0 20px}}
@media(max-width:560px){.locals-grid{display:block}.character-card{width:100%;margin-bottom:52px}.character-card:nth-child(even){width:76%;margin-left:auto}.episode-card h3,.character-card h3{font-size:24px}.episode-grid{gap:34px 12px}.archive-caption{display:block}.mobile-menu nav{font-size:36px}}
.world-image{background-position:center;background-size:cover;background-repeat:no-repeat}

/* Hero logo / lockup */
.hero-logo{position:absolute;z-index:2;width:var(--hero-logo-width,34%);max-width:70%;height:auto;object-fit:contain}
.hero-logo--top-left{left:4vw;top:5vh}.hero-logo--top-center{left:50%;top:5vh;transform:translateX(-50%)}.hero-logo--top-right{right:4vw;top:5vh}
.hero-logo--center-left{left:4vw;top:50%;transform:translateY(-50%)}.hero-logo--center{left:50%;top:50%;transform:translate(-50%,-50%)}.hero-logo--center-right{right:4vw;top:50%;transform:translateY(-50%)}
.hero-logo--bottom-left{left:4vw;bottom:8vh}.hero-logo--bottom-center{left:50%;bottom:8vh;transform:translateX(-50%)}.hero-logo--bottom-right{right:4vw;bottom:8vh}
@media(max-width:900px){.hero-logo{width:min(var(--hero-logo-width,55%),78%);max-width:78%}.hero-logo--top-left,.hero-logo--center-left,.hero-logo--bottom-left{left:24px}.hero-logo--top-right,.hero-logo--center-right,.hero-logo--bottom-right{right:24px}.hero-logo--bottom-left,.hero-logo--bottom-center,.hero-logo--bottom-right{bottom:92px}}

/* V1.7 — Episode first-frame preview + film lightbox */
.episode-preview-video{display:block;width:100%;height:100%;object-fit:cover;background:#cfc9bd;pointer-events:none}
.episode-watch{position:absolute;inset:0;z-index:2;width:100%;height:100%;border:0;background:rgba(0,0,0,0);color:#fff;font:12px var(--mono);letter-spacing:.06em;cursor:pointer;opacity:0;transition:background .2s,opacity .2s}
.episode-watch span{display:inline-block;margin-left:5px}
.episode-poster:hover .episode-watch,.episode-watch:focus-visible{opacity:1;background:rgba(0,0,0,.20)}
.episode-watch:focus-visible{outline:2px solid #fff;outline-offset:-6px}

.avm-modal{position:fixed;z-index:1000;inset:0;display:none;align-items:center;justify-content:center;padding:32px;background:rgba(10,10,10,.94);color:#fff}
.avm-modal.is-open{display:flex}
.avm-modal .modal-inner{width:min(1180px,100%);height:min(88vh,920px);display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:34px;align-items:center}
.avm-film-wrap{height:100%;min-height:0;display:flex;align-items:center;justify-content:center}
.avm-film-wrap video{display:block;width:auto;height:auto;max-width:100%;max-height:88vh;aspect-ratio:9/16;background:#000;box-shadow:0 0 0 1px rgba(255,255,255,.08)}
.avm-film-meta{align-self:end;padding-bottom:8px}
.avm-film-meta .episode-number{margin:0 0 8px;color:rgba(255,255,255,.68)}
.avm-film-meta h2{margin:0 0 10px;font:800 clamp(32px,4vw,58px)/.9 var(--sans);letter-spacing:-.035em}
.avm-film-meta .meta{color:rgba(255,255,255,.68)}
.modal-close{position:absolute;top:20px;right:24px;z-index:3;border:0;background:transparent;color:#fff;font:300 42px/1 Arial,sans-serif;cursor:pointer;padding:8px}
@media(max-width:760px){.avm-modal{padding:54px 18px 22px}.avm-modal .modal-inner{height:100%;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:18px}.avm-film-wrap video{max-height:72vh}.avm-film-meta{padding:0}.modal-close{top:8px;right:10px}}


/* V2.1 — refined single footer */
.site-footer{
  width:100%;
  padding:0 var(--page-gutter);
  border-top:1px solid var(--rule);
  background:var(--paper);
}
.site-footer__brand{
  padding:34px 0 32px;
}
.site-footer__brand strong{
  display:block;
  font:800 clamp(22px,2vw,28px)/1 var(--sans);
  letter-spacing:-.025em;
}
.site-footer__brand p{
  margin:7px 0 0;
  color:var(--muted);
  font:clamp(16px,1.3vw,19px)/1.35 var(--serif);
}
.site-footer__utility{
  min-height:58px;
  padding:17px 0 18px;
  border-top:1px solid var(--rule);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  font:10px/1.4 var(--mono);
  letter-spacing:.055em;
  text-transform:uppercase;
  color:var(--muted);
}
.site-footer__credit{
  white-space:nowrap;
}
.site-footer__legal{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:22px;
  text-align:right;
}
.site-footer__legal a{
  color:var(--ink);
  border-bottom:1px solid rgba(23,23,23,.45);
  padding-bottom:1px;
  transition:opacity .18s;
}
.site-footer__legal a:hover{
  opacity:.5;
}

/* Legal page */
.avm-legal-page{
  width:100%;
  padding:140px var(--page-gutter) 120px;
}
.avm-legal-page__inner{
  max-width:760px;
}
.avm-legal-page h1{
  margin:18px 0 52px;
  font:800 clamp(52px,7vw,96px)/.86 var(--sans);
  letter-spacing:-.045em;
}
.avm-legal-page__copy{
  max-width:660px;
  font:clamp(18px,1.55vw,24px)/1.5 var(--serif);
}
.avm-legal-page__copy p{
  margin:0;
}
.avm-legal-page__copy p+p{
  margin-top:1.2em;
}

@media(max-width:760px){
  .site-footer__brand{
    padding:28px 0 26px;
  }
  .site-footer__utility{
    padding:16px 0 20px;
    display:grid;
    gap:10px;
  }
  .site-footer__legal{
    justify-content:space-between;
    text-align:left;
    gap:16px;
  }
  .site-footer__legal span{
    max-width:250px;
  }
  .avm-legal-page{
    padding:100px var(--page-gutter) 80px;
  }
}






/* V2.4 — explicit Welcome to Vila Lata banner + separate Locals gallery */
.welcome-vila{padding-bottom:150px}
.welcome-vila__head{margin-bottom:44px}
.welcome-vila__image,
.welcome-vila__placeholder{
  width:100%;
  aspect-ratio:2.1/1;
  background-color:#c8c2b6;
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
}
.welcome-vila__placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--rule);
  color:var(--muted);
  font:10px/1.4 var(--mono);
  letter-spacing:.05em;
  text-align:center;
  padding:20px;
}
.locals{padding-top:0}
@media(max-width:900px){
  .welcome-vila{padding-bottom:96px}
  .welcome-vila__head{margin-bottom:30px}
}


/* V2.5 — character profiles and latest episode */
.latest-episode,
.character-profile,
.character-gallery{
  padding-left:var(--page-gutter);
  padding-right:var(--page-gutter);
}
.latest-episode{padding-top:90px;padding-bottom:110px}
.latest-episode__head{margin-bottom:34px}
.latest-episode__head h2,
.character-gallery__head h2{
  margin:0;
  font-size:clamp(46px,7vw,108px);
  line-height:.9;
  letter-spacing:-.045em;
  text-transform:uppercase;
}
.latest-episode__grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:28px}
.latest-episode__media{position:relative;aspect-ratio:9/16;background:#ddd;overflow:hidden;max-height:760px}
.latest-episode__media video,.latest-episode__media img{width:100%;height:100%;object-fit:cover;display:block}
.latest-watch{position:absolute;left:18px;bottom:18px;border:0;background:#f1eee6;padding:12px 18px;font:inherit;cursor:pointer}
.latest-episode__copy{padding-top:18px}
.latest-episode__copy h3{font-size:clamp(34px,4vw,64px);line-height:.95;margin:.2em 0}
.latest-stills{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.latest-still{border:0;padding:0;background:none;cursor:pointer}
.latest-still:first-child{grid-column:1/-1}
.latest-still img{width:100%;height:auto;display:block}
.latest-featuring{margin-top:28px;border-top:1px solid var(--rule,#c9c5ba);padding-top:18px}
.latest-featuring__list{display:flex;flex-wrap:wrap;gap:18px}
.latest-character{display:flex;align-items:center;gap:9px;text-decoration:none;color:inherit}
.latest-character img{width:42px;height:42px;object-fit:cover;border-radius:50%}

.character-profile{padding-top:72px;padding-bottom:100px}
.character-profile__hero{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(320px,1.1fr);gap:clamp(36px,7vw,110px);align-items:start}
.character-profile__portrait img{width:100%;height:auto;display:block}
.character-profile__intro h1{margin:.08em 0;font-size:clamp(64px,10vw,150px);line-height:.82;letter-spacing:-.05em;text-transform:uppercase}
.character-role{font-size:clamp(22px,2.2vw,34px);margin:0 0 28px}
.character-bio{max-width:700px;font-size:clamp(18px,1.5vw,24px);line-height:1.45}
.character-profile blockquote{margin:34px 0;font-size:clamp(24px,2.8vw,42px);line-height:1.1}
.character-facts{display:grid;grid-template-columns:1fr 1fr;margin-top:42px;border-top:1px solid var(--rule,#c9c5ba)}
.character-facts div{padding:14px 0;border-bottom:1px solid var(--rule,#c9c5ba)}
.character-facts dt{font-family:var(--serif);font-size:12px;letter-spacing:.08em}
.character-facts dd{margin:5px 0 0}
.character-gallery{padding-bottom:110px}
.character-gallery__head{margin-bottom:30px}
.character-gallery__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.character-gallery__item{grid-column:span 4;border:0;padding:0;background:none;cursor:pointer}
.character-gallery__item:nth-child(5n+1){grid-column:span 7}
.character-gallery__item:nth-child(5n+2){grid-column:span 5}
.character-gallery__item img{display:block;width:100%;height:100%;object-fit:cover}
.avm-image-lightbox{position:fixed;inset:0;background:rgba(10,10,10,.96);display:none;align-items:center;justify-content:center;z-index:99999;padding:28px}
.avm-image-lightbox.is-open{display:flex}
.avm-image-lightbox img{max-width:92vw;max-height:90vh;object-fit:contain}
.avm-image-close{position:absolute;right:24px;top:18px;background:none;color:#fff;border:0;font-size:40px;cursor:pointer}

@media(max-width:900px){
  .latest-episode__grid,.character-profile__hero{grid-template-columns:1fr}
  .latest-episode__media{max-height:none}
  .character-gallery__item,.character-gallery__item:nth-child(5n+1),.character-gallery__item:nth-child(5n+2){grid-column:span 6}
}
@media(max-width:600px){
  .latest-episode{padding-top:60px;padding-bottom:78px}
  .character-facts{grid-template-columns:1fr}
  .character-gallery__item,.character-gallery__item:nth-child(5n+1),.character-gallery__item:nth-child(5n+2){grid-column:1/-1}
}


/* V2.6 — Latest episode editorial right column */
.latest-episode__grid{
  align-items:start;
}
.latest-episode__primary{
  min-width:0;
}
.latest-episode__support{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:30px;
}
.latest-episode__copy{
  padding-top:0;
  max-width:620px;
}
.latest-episode__copy .meta{
  margin-bottom:12px;
}
.latest-episode__copy h3{
  margin:0 0 18px;
  font-size:clamp(42px,5vw,76px);
  line-height:.92;
  letter-spacing:-.04em;
  text-transform:uppercase;
}
.latest-episode__intro{
  max-width:560px;
  font-size:clamp(17px,1.35vw,22px);
  line-height:1.45;
}
.latest-episode__intro p{
  margin:0 0 1em;
}
.latest-stills{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:12px;
}
.latest-still{
  overflow:hidden;
}
.latest-still:first-child{
  grid-row:span 2;
}
.latest-still img{
  width:100%;
  height:100%;
  min-height:180px;
  object-fit:cover;
}
.latest-featuring{
  margin-top:0;
}
.latest-featuring__list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 18px;
}
.latest-character{
  border-top:1px solid var(--rule,#c9c5ba);
  padding-top:10px;
}
.latest-character img{
  width:52px;
  height:52px;
}
@media(max-width:900px){
  .latest-stills{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .latest-still:first-child{
    grid-column:1/-1;
    grid-row:auto;
  }
}
@media(max-width:600px){
  .latest-featuring__list{
    grid-template-columns:1fr;
  }
}

/* V2.7.1 — black hero navigation */
.site-header, .site-header a, .site-header .site-brand, .site-header .site-title,
.site-header nav a, .hero-header, .hero-header a, .hero-nav a,
.hero .site-header a, .hero .site-nav a { color:#171717 !important; }
.site-header svg, .hero-header svg { fill:#171717 !important; }


/* V2.8 — WELCOME TO VILA LATA true overlay comparison slider
   Both images live in the exact same frame. The aerial image is clipped,
   never laid out alongside the street image. */
.vila-compare{
  --compare-position:50%;
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#d8d5cd;
  user-select:none;
  touch-action:pan-y;
  isolation:isolate;
}
.vila-compare__image{
  position:absolute;
  inset:0;
}
.vila-compare__image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  pointer-events:none;
}
.vila-compare__street{
  z-index:1;
}
.vila-compare__aerial{
  z-index:2;
  clip-path:inset(0 0 0 var(--compare-position));
  will-change:clip-path;
}
.vila-compare__divider{
  position:absolute;
  z-index:4;
  top:0;
  bottom:0;
  left:var(--compare-position);
  width:1px;
  background:#f1eee6;
  transform:translateX(-.5px);
  pointer-events:none;
  will-change:left;
}
.vila-compare__handle{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:58px;
  height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  background:#f1eee6;
  color:#171717;
  border:1px solid rgba(23,23,23,.16);
  border-radius:50%;
  font-family:Arial,sans-serif;
  font-size:28px;
  line-height:1;
  box-shadow:0 2px 10px rgba(0,0,0,.08);
}
.vila-compare__label{
  position:absolute;
  z-index:3;
  top:18px;
  padding:8px 10px 7px;
  background:#171717;
  color:#f1eee6;
  font-family:var(--serif);
  font-size:11px;
  font-weight:700;
  letter-spacing:.09em;
  line-height:1;
  pointer-events:none;
}
.vila-compare__label--street{left:18px}
.vila-compare__label--aerial{right:18px}
.vila-compare__range{
  position:absolute;
  z-index:5;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  opacity:0;
  cursor:ew-resize;
  appearance:none;
  -webkit-appearance:none;
}
.vila-compare__range:focus-visible + *{
  outline:2px solid #171717;
}
.vila-compare:focus-within .vila-compare__handle{
  outline:2px solid #171717;
  outline-offset:3px;
}
.vila-compare__instruction,
.welcome-vila__setup-note{
  margin:12px 0 0;
  font-family:var(--serif);
  font-size:11px;
  letter-spacing:.055em;
  line-height:1.4;
}
.welcome-vila__setup-note{
  color:var(--muted,#6d6a63);
}

@media(max-width:760px){
  .vila-compare{
    aspect-ratio:4/5;
  }
  .vila-compare__handle{
    width:50px;
    height:50px;
    font-size:24px;
  }
  .vila-compare__label{
    top:12px;
    font-size:9px;
  }
  .vila-compare__label--street{left:12px}
  .vila-compare__label--aerial{right:12px}
}

/* V2.9 — MEET THE LOCALS salon hang */
.locals-salon{overflow:hidden}
.locals-salon__head{margin-bottom:clamp(54px,7vw,110px)}
.locals-salon__wall{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(18px,2.4vw,42px);row-gap:clamp(72px,9vw,150px);align-items:start;padding:0 clamp(4px,1vw,18px) clamp(40px,6vw,100px)}
.salon-local{min-width:0;position:relative}
.salon-local__portrait{display:block;width:100%;text-decoration:none}
.salon-local__image{display:block;width:100%;height:auto;object-fit:contain;transition:transform .35s ease}
.salon-local__portrait:hover .salon-local__image{transform:translateY(-4px) scale(1.008)}
.salon-local__label{margin-top:clamp(15px,1.6vw,25px);max-width:260px}
.salon-local__label h3{margin:0 0 5px;font-size:clamp(24px,2.1vw,38px);line-height:.95;letter-spacing:-.035em}
.salon-local__label h3 a,.salon-local__view{color:inherit;text-decoration:none}
.salon-local__role{font-family:var(--serif);font-size:14px;line-height:1.25;letter-spacing:.09em;text-transform:uppercase;color:var(--muted,#6d6a63)}
.salon-local__known{margin-top:11px;font-family:var(--serif,Georgia,serif);font-size:clamp(16px,1.25vw,21px);font-style:italic;line-height:1.25}
.salon-local__view{display:inline-block;margin-top:17px;font-family:var(--serif);font-size:14px;letter-spacing:.09em;opacity:0;transform:translateY(4px);transition:.2s ease}
.salon-local:hover .salon-local__view,.salon-local:focus-within .salon-local__view{opacity:1;transform:none}
.salon-local--1{grid-column:1/span 4;margin-top:2vw}.salon-local--2{grid-column:6/span 3;margin-top:8vw}.salon-local--3{grid-column:10/span 3}.salon-local--4{grid-column:2/span 3;margin-top:1vw}
.salon-local--5{grid-column:5/span 4;margin-top:7vw}.salon-local--6{grid-column:10/span 2;margin-top:3vw}.salon-local--7{grid-column:1/span 3;margin-top:6vw}.salon-local--8{grid-column:7/span 4}
.salon-local--2 .salon-local__label,.salon-local--6 .salon-local__label{margin-left:auto}
.salon-local--3 .salon-local__label,.salon-local--7 .salon-local__label{transform:translateX(-8%)}
@media(max-width:980px){.locals-salon__wall{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:80px}.salon-local--1{grid-column:1/span 3;margin-top:0}.salon-local--2{grid-column:4/span 2;margin-top:8vw}.salon-local--3{grid-column:2/span 3}.salon-local--4{grid-column:5/span 2;margin-top:5vw}.salon-local--5{grid-column:1/span 3;margin-top:7vw}.salon-local--6{grid-column:4/span 2;margin-top:0}.salon-local--7{grid-column:1/span 2;margin-top:6vw}.salon-local--8{grid-column:3/span 3}}
@media(max-width:640px){.locals-salon__wall{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px;row-gap:54px;padding-inline:0}.salon-local--1,.salon-local--3,.salon-local--5,.salon-local--7{grid-column:1;margin-top:0}.salon-local--2,.salon-local--4,.salon-local--6,.salon-local--8{grid-column:2;margin-top:42px}.salon-local--3 .salon-local__label,.salon-local--7 .salon-local__label{transform:none}.salon-local__view{opacity:1;transform:none}}


/* V2.9.1 — tighter family-house salon wall */
.locals-salon__head{
  margin-bottom:clamp(28px,3.2vw,54px);
}

.locals-salon__wall{
  column-gap:clamp(8px,1.15vw,18px);
  row-gap:clamp(20px,2.6vw,42px);
  padding:0 0 clamp(24px,3vw,48px);
  align-items:start;
}

.salon-local__label{
  margin-top:8px;
  max-width:230px;
}
.salon-local__label h3{
  margin-bottom:3px;
}
.salon-local__known{
  margin-top:6px;
}
.salon-local__view{
  margin-top:9px;
}

/* Dense salon placement: irregular but continuous, no giant dead bands */
.salon-local--1{grid-column:1/span 3;margin-top:0}
.salon-local--2{grid-column:4/span 2;margin-top:5vw}
.salon-local--3{grid-column:6/span 3;margin-top:1.5vw}
.salon-local--4{grid-column:9/span 2;margin-top:4vw}
.salon-local--5{grid-column:11/span 2;margin-top:0}

.salon-local--6{grid-column:2/span 2;margin-top:-1vw}
.salon-local--7{grid-column:4/span 3;margin-top:2vw}
.salon-local--8{grid-column:7/span 2;margin-top:-.5vw}

/* Continue the rhythm naturally for characters beyond eight */
.salon-local:nth-child(8n+9){grid-column:9/span 3;margin-top:2vw}
.salon-local:nth-child(8n+10){grid-column:1/span 2;margin-top:1vw}
.salon-local:nth-child(8n+11){grid-column:3/span 3;margin-top:3vw}
.salon-local:nth-child(8n+12){grid-column:6/span 2;margin-top:0}
.salon-local:nth-child(8n+13){grid-column:8/span 3;margin-top:2vw}
.salon-local:nth-child(8n+14){grid-column:11/span 2;margin-top:-1vw}

/* Keep labels close and casual rather than museum-like */
.salon-local--2 .salon-local__label,
.salon-local--6 .salon-local__label{
  margin-left:0;
}
.salon-local--3 .salon-local__label,
.salon-local--7 .salon-local__label{
  transform:none;
}

@media(max-width:980px){
  .locals-salon__wall{
    column-gap:14px;
    row-gap:26px;
  }
  .salon-local--1{grid-column:1/span 2;margin-top:0}
  .salon-local--2{grid-column:3/span 2;margin-top:5vw}
  .salon-local--3{grid-column:5/span 2;margin-top:1vw}
  .salon-local--4{grid-column:1/span 2;margin-top:1vw}
  .salon-local--5{grid-column:3/span 3;margin-top:3vw}
  .salon-local--6{grid-column:6/span 1;margin-top:0}
  .salon-local--7{grid-column:1/span 3;margin-top:2vw}
  .salon-local--8{grid-column:4/span 2;margin-top:0}
}

@media(max-width:640px){
  .locals-salon__head{
    margin-bottom:28px;
  }
  .locals-salon__wall{
    column-gap:12px;
    row-gap:24px;
  }
  .salon-local--1,.salon-local--3,.salon-local--5,.salon-local--7{
    grid-column:1;
    margin-top:0;
  }
  .salon-local--2,.salon-local--4,.salon-local--6,.salon-local--8{
    grid-column:2;
    margin-top:18px;
  }
  .salon-local__label{
    margin-top:7px;
  }
}


/* V2.9.2 — Salon scale correction: maximum four portraits across.
   Preserve the tighter V2.9.1 spacing, but give each framed portrait proper presence. */
@media(min-width:981px){
  .locals-salon__wall{
    grid-template-columns:repeat(12,minmax(0,1fr));
    column-gap:clamp(8px,1.15vw,18px);
    row-gap:clamp(20px,2.6vw,42px);
  }

  /* Four-across maximum: every slot occupies roughly one quarter of the wall.
     Vertical offsets retain the informal family-house salon rhythm. */
  .salon-local--1{grid-column:1/span 3;margin-top:0}
  .salon-local--2{grid-column:4/span 3;margin-top:4vw}
  .salon-local--3{grid-column:7/span 3;margin-top:1.2vw}
  .salon-local--4{grid-column:10/span 3;margin-top:3.2vw}

  .salon-local--5{grid-column:1/span 3;margin-top:1vw}
  .salon-local--6{grid-column:4/span 3;margin-top:3.5vw}
  .salon-local--7{grid-column:7/span 3;margin-top:0}
  .salon-local--8{grid-column:10/span 3;margin-top:2.6vw}

  /* Ensure later characters also stay at max four across. */
  .salon-local:nth-child(8n+9){grid-column:1/span 3;margin-top:1vw}
  .salon-local:nth-child(8n+10){grid-column:4/span 3;margin-top:3.5vw}
  .salon-local:nth-child(8n+11){grid-column:7/span 3;margin-top:0}
  .salon-local:nth-child(8n+12){grid-column:10/span 3;margin-top:2.8vw}
  .salon-local:nth-child(8n+13){grid-column:1/span 3;margin-top:2vw}
  .salon-local:nth-child(8n+14){grid-column:4/span 3;margin-top:0}
  .salon-local:nth-child(8n+15){grid-column:7/span 3;margin-top:3vw}
  .salon-local:nth-child(8n+16){grid-column:10/span 3;margin-top:1vw}
}


/* V2.9.3 — MEET THE LOCALS: maximum three portraits across.
   Keep the compact family-house salon spacing from V2.9.1/2.9.2. */
@media(min-width:981px){
  .locals-salon__wall{
    grid-template-columns:repeat(12,minmax(0,1fr));
    column-gap:clamp(8px,1.15vw,18px);
    row-gap:clamp(20px,2.6vw,42px);
  }

  .salon-local--1{grid-column:1/span 4;margin-top:0}
  .salon-local--2{grid-column:5/span 4;margin-top:3.2vw}
  .salon-local--3{grid-column:9/span 4;margin-top:.8vw}

  .salon-local--4{grid-column:1/span 4;margin-top:1vw}
  .salon-local--5{grid-column:5/span 4;margin-top:3vw}
  .salon-local--6{grid-column:9/span 4;margin-top:0}

  .salon-local--7{grid-column:1/span 4;margin-top:2.4vw}
  .salon-local--8{grid-column:5/span 4;margin-top:.5vw}

  .salon-local:nth-child(8n+9){grid-column:9/span 4;margin-top:2.5vw}
  .salon-local:nth-child(8n+10){grid-column:1/span 4;margin-top:0}
  .salon-local:nth-child(8n+11){grid-column:5/span 4;margin-top:2.8vw}
  .salon-local:nth-child(8n+12){grid-column:9/span 4;margin-top:.8vw}
  .salon-local:nth-child(8n+13){grid-column:1/span 4;margin-top:2vw}
  .salon-local:nth-child(8n+14){grid-column:5/span 4;margin-top:0}
  .salon-local:nth-child(8n+15){grid-column:9/span 4;margin-top:2.5vw}
  .salon-local:nth-child(8n+16){grid-column:1/span 4;margin-top:.8vw}
}


/* V2.9.5 — corrected hero video */
.hero-media{position:relative;overflow:hidden}
.hero-media .hero-banner-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center center;
  z-index:0;pointer-events:none
}
.hero > .hero-banner-video{display:none!important}


/* V2.9.6 — preserve original hero layout while supporting video */
.hero-media{
  position:relative;
  overflow:hidden;
}

/* Video is only a background-media replacement. It must not alter
   the positioning model of logo, kicker, title, navigation or ENTER. */
.hero-media .hero-banner-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  z-index:0;
  pointer-events:none;
}

/* Preserve the theme's existing positioned hero overlays exactly.
   Only establish stacking order — never change position/display. */
.hero-media .hero-logo,
.hero-media .hero-title,
.hero-media .hero-kicker,
.hero-media .hero-enter{
  z-index:2;
}

/* Any decorative/overlay layers remain above media but below text. */
.hero-media::before,
.hero-media::after{
  z-index:1;
}


/* V2.9.10 — 9:16 mobile hero with automatic crop from any source ratio */
.hero-media{
  background-image:var(--hero-desktop-image,none);
  background-position:var(--hero-desktop-position,center center);
  background-size:cover;
  background-repeat:no-repeat;
}
.hero-banner-video--mobile{display:none}

@media(max-width:767px){
  .hero{padding:10px}
  .hero-media{
    width:100%;
    aspect-ratio:9/16;
    min-height:0;
    max-height:none;
    background-size:cover;
    background-position:var(--hero-mobile-position,center center);
  }

  /* A dedicated portrait image replaces desktop media automatically. */
  .hero-media.has-mobile-image{
    background-image:var(--hero-mobile-image);
  }

  /* Desktop media is cropped into the 9:16 mobile frame when no mobile replacement exists. */
  .hero-media .hero-banner-video--desktop{
    object-fit:cover;
    object-position:var(--hero-mobile-position,center center);
  }

  /* When mobile image/video exists, suppress desktop video. */
  .hero-media.has-mobile-image .hero-banner-video--desktop,
  .hero-media.has-mobile-video .hero-banner-video--desktop{
    display:none;
  }

  .hero-media.has-mobile-video .hero-banner-video--mobile{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:var(--hero-mobile-position,center center);
  }
}

/* V2.9.11 — clearer video WATCH / PLAY affordance */
.episode-watch{
  display:flex;
  align-items:flex-end;
  justify-content:flex-start;
  padding:24px;
  opacity:1;
  background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.34) 100%);
  color:#fff;
  font-family:var(--serif);
  font-size:18px;
  font-weight:700;
  line-height:1;
  letter-spacing:.08em;
  text-shadow:0 1px 8px rgba(0,0,0,.55);
}
.episode-watch span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  margin:-9px 0 -9px 12px;
  border:1px solid rgba(255,255,255,.9);
  border-radius:50%;
  font-size:13px;
  line-height:1;
  text-shadow:none;
}
.episode-poster:hover .episode-watch,
.episode-watch:focus-visible{
  opacity:1;
  background:linear-gradient(180deg,rgba(0,0,0,.04) 45%,rgba(0,0,0,.46) 100%);
}
@media (max-width:768px){
  .episode-watch{padding:18px;font-size:17px}
  .episode-watch span{width:32px;height:32px;margin:-8px 0 -8px 10px}
}

/* V2.9.12 — unified editorial title lock-up
   All section labels + titles follow the LIFE IN A TIN CAN composition:
   small mono subtitle above, large headline below, both left-aligned. */
.section-head,
.latest-episode__head,
.character-gallery__head{
  display:block;
  text-align:left;
}
.section-head > span,
.latest-episode__head > span,
.character-gallery__head > span{
  display:block;
  margin:0 0 22px;
  text-align:left;
}
.section-head h2,
.latest-episode__head h2,
.character-gallery__head h2{
  margin:0;
  text-align:left;
  max-width:100%;
}

@media(max-width:900px){
  .section-head > span,
  .latest-episode__head > span,
  .character-gallery__head > span{
    margin-bottom:16px;
  }
}

/* V2.9.13 — mobile hero branding
   Use the uploaded hero logo in the top-left and remove the duplicate text brand. */
@media(max-width:900px){
  .site-header .site-brand{display:none !important;}
  .hero-media .hero-logo,
  .hero-media .hero-logo--top-left,
  .hero-media .hero-logo--top-center,
  .hero-media .hero-logo--top-right,
  .hero-media .hero-logo--center-left,
  .hero-media .hero-logo--center,
  .hero-media .hero-logo--center-right,
  .hero-media .hero-logo--bottom-left,
  .hero-media .hero-logo--bottom-center,
  .hero-media .hero-logo--bottom-right{
    left:18px !important;
    right:auto !important;
    top:18px !important;
    bottom:auto !important;
    transform:none !important;
    width:min(var(--hero-logo-width,42%),46%) !important;
    max-width:180px !important;
    height:auto;
  }
}


/* V2.9.14 — mobile hero nav refinement
   Hamburger at top-right; hero logo doubled from the V2.9.13 mobile treatment. */
@media(max-width:900px){
  .site-header{
    justify-content:flex-end !important;
    padding:0 28px !important;
    pointer-events:none;
  }
  .site-header .desktop-nav,
  .site-header .site-brand{display:none !important;}
  .site-header .menu-toggle{
    display:flex !important;
    position:relative;
    margin-left:auto !important;
    width:38px;
    height:38px;
    padding:8px 5px !important;
    border:0;
    background:transparent;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
    cursor:pointer;
    pointer-events:auto;
    z-index:60;
    font-size:0;
    color:#171717 !important;
  }
  .menu-toggle__line{
    display:block;
    width:26px;
    height:2px;
    background:currentColor;
    flex:0 0 2px;
  }
  .hero-media .hero-logo,
  .hero-media .hero-logo--top-left,
  .hero-media .hero-logo--top-center,
  .hero-media .hero-logo--top-right,
  .hero-media .hero-logo--center-left,
  .hero-media .hero-logo--center,
  .hero-media .hero-logo--center-right,
  .hero-media .hero-logo--bottom-left,
  .hero-media .hero-logo--bottom-center,
  .hero-media .hero-logo--bottom-right{
    left:18px !important;
    right:auto !important;
    top:18px !important;
    bottom:auto !important;
    transform:none !important;
    width:min(calc(var(--hero-logo-width,42%) * 2),78%) !important;
    max-width:360px !important;
    height:auto;
  }
}

/* =========================================================
   V3.0 — CONTINUOUS EDITORIAL WORLD
   Multiple-image compositions, mixed scales and soft section
   transitions. Existing WordPress content model is preserved.
   ========================================================= */
:root{--avm-gutter:clamp(22px,4vw,64px);--avm-section-gap:clamp(80px,11vw,180px)}
body{overflow-x:hidden}
.section{position:relative;padding-left:var(--avm-gutter);padding-right:var(--avm-gutter);border-top:0!important}
.section-head{position:relative;z-index:5;margin-bottom:clamp(36px,5vw,76px)!important}
.section-head>span{margin-bottom:clamp(10px,1.4vw,20px)!important}
.section-head h2{max-width:10ch!important;line-height:.86!important;letter-spacing:-.025em}

/* Intro now flows into the village rather than ending as a block. */
.intro{position:relative;z-index:3;padding:clamp(72px,9vw,140px) var(--avm-gutter) clamp(90px,13vw,200px)!important;max-width:none!important}
.intro .eyebrow,.intro h1,.intro p{max-width:980px}
.intro h1{max-width:11ch}
.intro p{max-width:760px}

/* VILA LATA — two images become one editorial composition. */
.welcome-vila{padding-top:0!important;padding-bottom:clamp(100px,14vw,210px)!important}
.welcome-vila__head{width:min(760px,72vw);margin-left:0}
.vila-compare{width:min(88vw,1500px)!important;margin-left:auto!important;margin-right:calc(var(--avm-gutter) * -1)!important;aspect-ratio:16/8.4!important;overflow:visible!important}
.vila-compare:before{content:'VILA LATA / PORTUGAL';position:absolute;left:calc(-1 * clamp(90px,10vw,170px));bottom:clamp(20px,4vw,64px);z-index:8;font:11px/1.2 var(--mono);letter-spacing:.08em;transform:rotate(-90deg);transform-origin:left bottom;white-space:nowrap}
.vila-compare__instruction{margin-left:12%!important;margin-top:18px!important}
.welcome-vila__image{width:min(88vw,1500px);margin-left:auto;margin-right:calc(var(--avm-gutter) * -1);aspect-ratio:16/8.4}

/* LOCALS — a controlled salon wall, not a card grid. */
.locals-salon{padding-top:clamp(20px,4vw,70px)!important;padding-bottom:clamp(120px,16vw,240px)!important}
.locals-salon__head{margin-left:8%;width:70%}
.locals-salon__wall{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:clamp(18px,2.4vw,42px)!important;align-items:start;max-width:1600px;margin:0 auto}
.salon-local{width:auto!important;max-width:none!important;margin:0!important;transform:none!important}
.salon-local:nth-child(6n+1){grid-column:1/span 4;margin-top:7vw!important}
.salon-local:nth-child(6n+2){grid-column:5/span 3;margin-top:0!important}
.salon-local:nth-child(6n+3){grid-column:9/span 4;margin-top:11vw!important}
.salon-local:nth-child(6n+4){grid-column:2/span 3;margin-top:2vw!important}
.salon-local:nth-child(6n+5){grid-column:6/span 4;margin-top:10vw!important}
.salon-local:nth-child(6n+6){grid-column:10/span 3;margin-top:0!important}
.salon-local__portrait{display:block;overflow:visible!important}
.salon-local__image{width:100%;height:auto!important;aspect-ratio:auto!important;object-fit:contain!important;display:block}
.salon-local__label{padding-top:12px!important;max-width:95%}
.salon-local__label h3{font-size:clamp(25px,2.5vw,42px)!important;line-height:.95!important}
.salon-local__view{opacity:.62}

/* Latest episode — one lead image with a constellation of stills. */
.latest-episode{padding-top:0!important;padding-bottom:clamp(120px,16vw,240px)!important}
.latest-episode .section-head{margin-left:0;width:74%}
.latest-episode__grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:clamp(18px,2.5vw,44px)!important;align-items:start}
.latest-episode__primary{grid-column:1/span 7;position:relative;z-index:2}
.latest-episode__media{aspect-ratio:9/12!important;max-height:none!important}
.latest-episode__support{grid-column:8/span 5;display:block!important;padding-top:clamp(30px,6vw,100px)}
.latest-episode__copy{width:90%;margin-left:6%;margin-bottom:clamp(35px,6vw,90px)}
.latest-episode__copy h3{font-size:clamp(44px,6vw,96px)!important;line-height:.85!important;margin:.15em 0 .3em!important}
.latest-stills{display:grid!important;grid-template-columns:repeat(6,1fr)!important;gap:clamp(10px,1.5vw,24px)!important;margin-left:-20%!important;width:120%!important;position:relative;z-index:4}
.latest-still{padding:0!important;border:0!important;background:none!important}
.latest-still:nth-child(1){grid-column:1/span 4}
.latest-still:nth-child(2){grid-column:5/span 2;margin-top:45%!important}
.latest-still:nth-child(3){grid-column:2/span 3;margin-top:-8%!important}
.latest-still img{width:100%;height:auto!important;aspect-ratio:auto!important;display:block}
.latest-featuring{margin:clamp(40px,6vw,90px) 0 0 12%!important}

/* Episodes — deliberately varied scale and rhythm. */
.episodes{padding-top:0!important;padding-bottom:clamp(120px,15vw,220px)!important}
.episodes .section-head{margin-left:9%;width:70%}
.episode-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:clamp(26px,4vw,70px) clamp(16px,2.5vw,40px)!important;align-items:start}
.episode-card{grid-column:span 3;width:auto!important;margin:0!important}
.episode-card:nth-child(6n+1){grid-column:1/span 4}
.episode-card:nth-child(6n+2){grid-column:6/span 3;margin-top:9vw!important}
.episode-card:nth-child(6n+3){grid-column:10/span 3;margin-top:2vw!important}
.episode-card:nth-child(6n+4){grid-column:2/span 3;margin-top:5vw!important}
.episode-card:nth-child(6n+5){grid-column:5/span 4;margin-top:-2vw!important}
.episode-card:nth-child(6n+6){grid-column:10/span 3;margin-top:10vw!important}
.episode-card h3{font-size:clamp(28px,3vw,48px)!important;line-height:.92!important;margin:.2em 0!important}

/* Album — loose image field that visually continues the episodes. */
.album{padding-top:0!important;padding-bottom:clamp(100px,14vw,200px)!important}
.album .section-head{width:75%}
.album-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:clamp(14px,2vw,34px)!important;align-items:start}
.album-item{width:auto!important;margin:0!important}
.album-item:nth-child(7n+1){grid-column:1/span 5}
.album-item:nth-child(7n+2){grid-column:7/span 3;margin-top:8vw!important}
.album-item:nth-child(7n+3){grid-column:10/span 3;margin-top:2vw!important}
.album-item:nth-child(7n+4){grid-column:2/span 3;margin-top:3vw!important}
.album-item:nth-child(7n+5){grid-column:5/span 5;margin-top:9vw!important}
.album-item:nth-child(7n+6){grid-column:10/span 3;margin-top:-2vw!important}
.album-item:nth-child(7n+7){grid-column:3/span 4;margin-top:5vw!important}
.album-item img{width:100%;height:auto!important;display:block}

/* Mobile is art-directed too: staggered pairs and edge bleeds, not a shrunken desktop grid. */
@media(max-width:767px){
  :root{--avm-gutter:18px}
  .section{padding-left:18px!important;padding-right:18px!important}
  .section-head{width:100%!important;margin-left:0!important;margin-bottom:34px!important}
  .section-head h2{max-width:9ch!important;font-size:clamp(52px,16vw,82px)!important}
  .intro{padding:68px 18px 105px!important}
  .intro h1{font-size:clamp(52px,15vw,76px)!important;line-height:.9!important}
  .welcome-vila{padding-bottom:120px!important}
  .vila-compare,.welcome-vila__image{width:calc(100% + 18px)!important;margin-right:-18px!important;aspect-ratio:4/5!important}
  .vila-compare:before{display:none}
  .vila-compare__instruction{margin-left:0!important}

  .locals-salon{padding-bottom:125px!important}
  .locals-salon__wall{grid-template-columns:repeat(6,1fr)!important;gap:30px 12px!important}
  .salon-local:nth-child(n){grid-column:auto;margin-top:0!important}
  .salon-local:nth-child(4n+1){grid-column:1/span 4}
  .salon-local:nth-child(4n+2){grid-column:4/span 3;margin-top:72px!important}
  .salon-local:nth-child(4n+3){grid-column:1/span 3;margin-top:8px!important}
  .salon-local:nth-child(4n+4){grid-column:3/span 4;margin-top:50px!important}
  .salon-local__label h3{font-size:27px!important}
  .salon-local__role,.salon-local__known,.salon-local__view{font-size:10px!important}

  .latest-episode{padding-bottom:125px!important}
  .latest-episode__grid{display:block!important}
  .latest-episode__primary{width:88%}
  .latest-episode__support{padding-top:28px!important}
  .latest-episode__copy{width:82%;margin:0 0 42px auto!important}
  .latest-episode__copy h3{font-size:56px!important}
  .latest-stills{width:calc(100% + 18px)!important;margin-left:0!important;margin-right:-18px!important;grid-template-columns:repeat(6,1fr)!important}
  .latest-still:nth-child(1){grid-column:1/span 4}
  .latest-still:nth-child(2){grid-column:5/span 2;margin-top:60%!important}
  .latest-still:nth-child(3){grid-column:2/span 3;margin-top:-2%!important}
  .latest-featuring{margin:45px 0 0 12%!important}

  .episodes{padding-bottom:125px!important}
  .episode-grid{grid-template-columns:repeat(6,1fr)!important;gap:42px 12px!important}
  .episode-card:nth-child(n){grid-column:auto;margin-top:0!important}
  .episode-card:nth-child(4n+1){grid-column:1/span 4}
  .episode-card:nth-child(4n+2){grid-column:4/span 3;margin-top:80px!important}
  .episode-card:nth-child(4n+3){grid-column:1/span 3}
  .episode-card:nth-child(4n+4){grid-column:3/span 4;margin-top:55px!important}
  .episode-card h3{font-size:30px!important}

  .album-grid{grid-template-columns:repeat(6,1fr)!important;gap:22px 12px!important}
  .album-item:nth-child(n){grid-column:auto;margin-top:0!important}
  .album-item:nth-child(4n+1){grid-column:1/span 4}
  .album-item:nth-child(4n+2){grid-column:4/span 3;margin-top:54px!important}
  .album-item:nth-child(4n+3){grid-column:1/span 3}
  .album-item:nth-child(4n+4){grid-column:3/span 4;margin-top:42px!important}
}

/* =========================================================
   V3.0.1 — CONTROLLED EDITORIAL GRID
   Dense, architectural and ordered. Multiple images remain,
   but scrapbook offsets, floating compositions and excess
   whitespace are removed. Episodes are uniform 9:16 cards.
   ========================================================= */
:root{--avm-gutter:clamp(22px,4vw,64px);--avm-section-space:clamp(64px,7vw,104px)}

.intro{margin:0!important;padding:clamp(64px,7vw,100px) var(--avm-gutter) clamp(68px,7vw,104px)!important}
.section{padding-left:var(--avm-gutter)!important;padding-right:var(--avm-gutter)!important;padding-bottom:var(--avm-section-space)!important}
.section-head,.welcome-vila__head,.locals-salon__head,.latest-episode .section-head,.episodes .section-head,.album .section-head{width:100%!important;margin-left:0!important;margin-right:0!important;margin-bottom:clamp(28px,3vw,44px)!important}
.section-head h2{max-width:none!important}

/* Vila Lata: one strong aligned panorama / comparison frame. */
.welcome-vila{padding-top:0!important}
.vila-compare,.welcome-vila__image{width:100%!important;margin:0!important;aspect-ratio:16/8.5!important;overflow:hidden!important}
.vila-compare:before{display:none!important}
.vila-compare__instruction{margin:12px 0 0!important}

/* Locals: disciplined three-column salon wall. */
.locals-salon{padding-top:0!important}
.locals-salon__wall{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:clamp(26px,3vw,46px) clamp(18px,2vw,30px)!important;align-items:start!important;max-width:none!important;margin:0!important}
.salon-local:nth-child(n){grid-column:auto!important;width:100%!important;max-width:none!important;margin:0!important;transform:none!important}
.salon-local__portrait{overflow:hidden!important}
.salon-local__image{width:100%!important;height:auto!important;display:block!important}
.salon-local__label{padding-top:10px!important;max-width:100%!important}
.salon-local__label h3{font-size:clamp(25px,2.1vw,34px)!important}

/* Latest: clear lead + supporting column, all edges aligned. */
.latest-episode{padding-top:0!important}
.latest-episode__grid{display:grid!important;grid-template-columns:minmax(0,7fr) minmax(280px,5fr)!important;gap:clamp(24px,3vw,48px)!important;align-items:start!important}
.latest-episode__primary,.latest-episode__support{grid-column:auto!important;width:100%!important;margin:0!important;padding:0!important}
.latest-episode__media{aspect-ratio:16/10!important;max-height:none!important}
.latest-episode__copy{width:100%!important;margin:0 0 24px!important}
.latest-episode__copy h3{font-size:clamp(38px,4.5vw,72px)!important;line-height:.9!important}
.latest-stills{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;width:100%!important;margin:0!important}
.latest-still:nth-child(n){grid-column:auto!important;margin:0!important}
.latest-still img{width:100%!important;aspect-ratio:4/3!important;object-fit:cover!important}
.latest-featuring{margin:28px 0 0!important}

/* Episodes: identical cards, identical image size, strict grid. */
.episodes{padding-top:0!important}
.episode-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:clamp(34px,4vw,58px) clamp(16px,2vw,30px)!important;align-items:start!important}
.episode-card:nth-child(n){grid-column:auto!important;width:100%!important;margin:0!important}
.episode-poster{width:100%!important;aspect-ratio:9/16!important}
.episode-card h3{font-size:clamp(24px,2vw,32px)!important;line-height:1!important;margin:5px 0 0!important}

/* Album: ordered image field, no floating scrapbook offsets. */
.album{padding-top:0!important}
.album-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:clamp(16px,2vw,30px)!important;align-items:start!important}
.album-item:nth-child(n){grid-column:auto!important;width:100%!important;margin:0!important}
.album-item img{width:100%!important;height:auto!important;display:block!important}

@media(max-width:767px){
  :root{--avm-gutter:18px;--avm-section-space:64px}
  .intro{padding:52px 18px 64px!important}
  .section{padding-left:18px!important;padding-right:18px!important;padding-bottom:64px!important}
  .section-head{margin-bottom:24px!important}
  .section-head h2{max-width:none!important}
  .welcome-vila{padding-bottom:64px!important}
  .vila-compare,.welcome-vila__image{width:100%!important;margin:0!important;aspect-ratio:4/5!important}

  .locals-salon{padding-bottom:64px!important}
  .locals-salon__wall{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:28px 12px!important}
  .salon-local:nth-child(n){grid-column:auto!important;margin:0!important;width:100%!important}

  .latest-episode{padding-bottom:64px!important}
  .latest-episode__grid{display:block!important}
  .latest-episode__primary{width:100%!important}
  .latest-episode__support{width:100%!important;padding-top:24px!important}
  .latest-episode__copy{width:100%!important;margin:0 0 20px!important}
  .latest-episode__copy h3{font-size:48px!important}
  .latest-stills{width:100%!important;margin:0!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .latest-still:nth-child(n){grid-column:auto!important;margin:0!important}
  .latest-featuring{margin:24px 0 0!important}

  .episodes{padding-bottom:64px!important}
  .episode-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:30px 12px!important}
  .episode-card:nth-child(n){grid-column:auto!important;margin:0!important;width:100%!important}
  .episode-card h3{font-size:23px!important}

  .album-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
  .album-item:nth-child(n){grid-column:auto!important;margin:0!important;width:100%!important}
}

/* =========================================================
   V3.0.2 — MEET THE LOCALS REPAIR
   Restore a stable, clean portrait grid. Featured images are
   shown in full; no cropping, stagger, overlap or clipping.
   ========================================================= */
.locals-salon{
  padding-top:0!important;
  padding-bottom:var(--avm-section-space)!important;
  overflow:visible!important;
}
.locals-salon__head{
  width:100%!important;
  margin:0 0 clamp(28px,3vw,44px)!important;
}
.locals-salon__wall{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  column-gap:clamp(18px,2vw,30px)!important;
  row-gap:clamp(28px,3vw,44px)!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  align-items:start!important;
}
.locals-salon__wall .salon-local,
.locals-salon__wall .salon-local:nth-child(n){
  position:relative!important;
  grid-column:auto!important;
  grid-row:auto!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
}
.locals-salon__wall .salon-local__portrait{
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:auto!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  background:transparent!important;
}
.locals-salon__wall .salon-local__image{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  transform:none!important;
}
.locals-salon__wall .salon-local__portrait:hover .salon-local__image{
  transform:none!important;
}
.locals-salon__wall .salon-local__label{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:10px 0 0!important;
  text-align:left!important;
}
.locals-salon__wall .salon-local__label h3{
  margin:0 0 4px!important;
  font-size:clamp(25px,2.1vw,34px)!important;
  line-height:1!important;
}

@media(max-width:980px){
  .locals-salon__wall{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:600px){
  .locals-salon__wall{
    grid-template-columns:1fr!important;
    row-gap:32px!important;
  }
}

/* =========================================================
   V3.0.3 — MEET THE LOCALS spacing hotfix
   Character featured images can contain large empty canvas areas.
   Use a controlled portrait viewport so labels sit directly below
   the artwork and the grid cannot create giant blank bands.
   ========================================================= */
.locals-salon__wall{
  align-items:start!important;
  grid-auto-rows:auto!important;
}
.locals-salon__wall .salon-local{
  align-self:start!important;
  height:auto!important;
  min-height:0!important;
}
.locals-salon__wall .salon-local__portrait{
  position:relative!important;
  width:100%!important;
  aspect-ratio:4/5!important;
  height:auto!important;
  overflow:hidden!important;
  background:transparent!important;
}
.locals-salon__wall .salon-local__image{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center top!important;
  margin:0!important;
}
.locals-salon__wall .salon-local__label{
  position:static!important;
  margin:0!important;
  padding:10px 0 0!important;
  height:auto!important;
  min-height:0!important;
}

@media(max-width:600px){
  .locals-salon__wall .salon-local__portrait{
    aspect-ratio:4/5!important;
  }
}

/* =========================================================
   V3.1.1 — VILA LATA MAP SYSTEM
   Clean numbered markers + right-side location index.
   Built as an isolated layer over the existing comparison map.
   ========================================================= */
.vila-map-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:0;
  align-items:start;
}
.vila-map-layout.has-location-index{
  grid-template-columns:minmax(0,3fr) minmax(220px,1fr);
  gap:clamp(22px,2.4vw,40px);
}
.vila-map-layout__visual{min-width:0}
.vila-map-layout .vila-compare{width:100%!important;margin:0!important}
.vila-location-layer{position:absolute;inset:0;z-index:15;pointer-events:none}
.vila-location{position:absolute;left:var(--location-x);top:var(--location-y);transform:translate(-50%,-50%);pointer-events:auto}
.vila-location__marker{
  width:34px;height:34px;padding:0;border:1px solid rgba(255,255,255,.85);border-radius:50%;
  display:grid;place-items:center;background:#171717;color:#fff;text-decoration:none;cursor:pointer;
  font:700 10px/1 var(--mono);letter-spacing:.04em;box-shadow:0 2px 9px rgba(0,0,0,.22);
  transition:transform .16s ease,background .16s ease,color .16s ease;
}
.vila-location__marker:hover,.vila-location__marker:focus-visible,.vila-location.is-active .vila-location__marker{
  transform:scale(1.12);background:#fff;color:#171717;outline:none;
}
.vila-location__card{
  position:absolute;left:50%;bottom:calc(100% + 9px);transform:translateX(-50%) translateY(4px);
  width:max-content;max-width:220px;padding:10px 12px;background:#f1eee6;color:#171717;border:1px solid rgba(23,23,23,.18);
  opacity:0;visibility:hidden;pointer-events:none;text-align:left;z-index:20;transition:.16s ease;
}
.vila-location:hover .vila-location__card,.vila-location:focus-within .vila-location__card{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.vila-location__card strong,.vila-location__card span,.vila-location__card em{display:block}
.vila-location__card strong{font:700 12px/1.1 var(--sans);letter-spacing:.01em}
.vila-location__card span{margin-top:4px;font:400 13px/1.3 var(--serif)}
.vila-location__card em{margin-top:7px;font:10px/1 var(--mono);font-style:normal;letter-spacing:.07em}

.vila-location-index{align-self:stretch;padding:0;background:transparent;border:0}
.vila-location-index__title{padding:0 0 12px;border-bottom:1px solid var(--rule);font:10px/1 var(--mono);letter-spacing:.08em}
.vila-location-index ol{list-style:none;margin:0;padding:0}
.vila-location-index li{margin:0;padding:0;border-bottom:1px solid var(--rule)}
.vila-location-index__item{
  display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;width:100%;padding:15px 0;border:0;background:transparent;color:inherit;
  text-align:left;text-decoration:none;cursor:pointer;appearance:none;
}
.vila-location-index__number{font:700 10px/1.2 var(--mono);letter-spacing:.05em;padding-top:2px}
.vila-location-index__copy strong{display:block;font:700 clamp(16px,1.35vw,20px)/1 var(--sans);text-transform:uppercase}
.vila-location-index__copy small{display:block;margin-top:5px;font:400 13px/1.3 var(--serif)}
.vila-location-index__copy em{display:block;margin-top:6px;font:9px/1 var(--mono);font-style:normal;letter-spacing:.07em}
.vila-location-index li.is-active .vila-location-index__number,
.vila-location-index__item:hover .vila-location-index__number,
.vila-location-index__item:focus-visible .vila-location-index__number{font-weight:900}
.vila-location-index li.is-active .vila-location-index__copy strong,
.vila-location-index__item:hover .vila-location-index__copy strong,
.vila-location-index__item:focus-visible .vila-location-index__copy strong{text-decoration:underline;text-underline-offset:3px}

/* The featured/latest episode artwork is vertical, matching the episode format. */
.latest-episode__media{aspect-ratio:9/16!important;max-height:none!important;overflow:hidden!important}
.latest-episode__media>img,.latest-episode__media>video{width:100%!important;height:100%!important;object-fit:cover!important}

@media(max-width:900px){
  .vila-map-layout.has-location-index{grid-template-columns:minmax(0,1fr);gap:24px}
  .vila-location-index{width:100%}
  .vila-location-index__item{grid-template-columns:36px minmax(0,1fr);padding:13px 0}
}
@media(max-width:600px){
  .vila-location__marker{width:30px;height:30px;font-size:9px}
}


/* V3.1.2 — map visibility/data parity fix.
   Frontend now uses the same location records as the Map editor. */
.vila-map-layout__visual{position:relative}
.vila-map-layout.has-location-index>.vila-location-index{display:block;visibility:visible;opacity:1}
.vila-location-layer{display:block;visibility:visible;opacity:1}


/* V3.1.3 — map renders with one or two source images. */
.vila-static-map{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#d8d5cd;
  isolation:isolate;
}
.vila-static-map>img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.vila-static-map .vila-location-layer,
.vila-static-map .vila-hotspot-layer{z-index:15}
@media(max-width:760px){.vila-static-map{aspect-ratio:4/5}}

/* V3.1.4 — Latest From Vila Lata: true full-frame 9:16 preview */
.latest-episode__media{
  aspect-ratio:9/16!important;
  max-height:none!important;
  background:#111!important;
}
.latest-episode__media video,
.latest-episode__media img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  display:block!important;
}
@media(max-width:900px){
  .latest-episode__primary{width:min(100%,520px)!important;}
  .latest-episode__media{aspect-ratio:9/16!important;}
}

/* V3.1.5 — cleaner map markers + touch-pannable mobile map */
/* Location names/descriptions live in the index, not over the image. */
.vila-location__card,
.vila-hotspot__card{display:none!important}

/* Smaller, quieter numbered markers. */
.vila-location__marker{
  width:28px!important;
  height:28px!important;
  font-size:9px!important;
  box-shadow:0 1px 6px rgba(0,0,0,.20)!important;
}

@media(max-width:700px){
  /* Comparison map: retain the wide aerial view and make the numbered layer
     use the same scrollable canvas so finger-panning keeps markers aligned. */
  .vila-compare{
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x;
    overscroll-behavior-x:contain;
  }
  .vila-compare .vila-location-layer{
    width:190vw!important;
    min-width:190vw!important;
  }

  /* Single-image map: same finger-scroll behaviour as the comparison map. */
  .vila-static-map{
    width:100%!important;
    aspect-ratio:auto!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x;
    overscroll-behavior-x:contain;
  }
  .vila-static-map>img{
    width:190vw!important;
    min-width:190vw!important;
    max-width:none!important;
    height:auto!important;
    object-fit:contain!important;
  }
  .vila-static-map .vila-location-layer,
  .vila-static-map .vila-hotspot-layer{
    width:190vw!important;
    min-width:190vw!important;
  }

  .vila-location__marker{
    width:24px!important;
    height:24px!important;
    font-size:8px!important;
  }
  .vila-hotspot__trigger{
    width:24px!important;
    height:24px!important;
    font-size:8px!important;
  }
}

/* V3.1.6 — Latest From Vila Lata: 9:16 preview that fits within the viewport */
@media(min-width:901px){
  .latest-episode__grid{
    grid-template-columns:repeat(12,minmax(0,1fr))!important;
    align-items:start!important;
  }
  .latest-episode__primary{
    grid-column:1/span 4!important;
    width:100%!important;
    max-width:420px!important;
  }
  .latest-episode__media{
    width:auto!important;
    height:min(64vh,680px)!important;
    max-height:680px!important;
    aspect-ratio:9/16!important;
    margin:0!important;
    background:#111!important;
  }
  .latest-episode__support{
    grid-column:5/span 8!important;
    padding-top:0!important;
  }
  .latest-episode__copy{
    width:min(100%,720px)!important;
    margin:0 0 34px 0!important;
  }
  .latest-episode__copy h3{
    font-size:clamp(42px,4.6vw,76px)!important;
  }
  .latest-featuring{
    margin:34px 0 0 0!important;
  }
}

@media(max-width:900px){
  .latest-episode__primary{
    width:min(100%,360px)!important;
    margin:0 auto 26px!important;
  }
  .latest-episode__media{
    width:100%!important;
    height:auto!important;
    aspect-ratio:9/16!important;
  }
}

/* V3.1.7 — Episodes hub: latest hero + six-card horizontal rail */
.episodes-hub{padding-bottom:clamp(54px,6vw,88px)!important}
.episode-rail-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:clamp(36px,4vw,58px);padding-top:16px;border-top:1px solid var(--rule)}
.episode-view-all{font:10px/1.2 var(--mono);letter-spacing:.08em;text-decoration:none;color:inherit;white-space:nowrap}
.episode-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);grid-template-rows:auto;gap:14px;margin-top:22px;overflow-x:auto;overflow-y:hidden;padding-bottom:14px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.episode-rail-card{min-width:0;scroll-snap-align:start}
.episode-rail-card .episode-poster{width:100%;aspect-ratio:9/16}
.episode-rail-card .episode-number{font:9px/1.2 var(--mono);margin-top:8px}
.episode-rail-card h3{font:700 15px/1 var(--sans);margin:3px 0 2px}
.episode-rail-card .meta{font-size:8px}
.episode-rail::-webkit-scrollbar{height:3px}.episode-rail::-webkit-scrollbar-thumb{background:var(--ink)}.episode-rail::-webkit-scrollbar-track{background:var(--rule)}
@media(min-width:901px){.episode-rail{grid-auto-columns:calc((100% - 70px)/6)}}
@media(max-width:900px){.episode-rail{grid-auto-columns:minmax(145px,42vw)}.episode-rail-head{margin-top:34px}}
@media(max-width:560px){.episode-rail{grid-auto-columns:44vw;gap:10px}.episode-rail-head{align-items:flex-end}.episode-view-all{font-size:9px}}

/* Full Episodes archive */
.episodes-archive{padding-top:clamp(90px,10vw,150px)}
.episodes-archive .episode-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:42px 22px!important}
.episodes-archive .episode-card:nth-child(n){grid-column:auto!important;margin:0!important;width:100%!important}
@media(max-width:1000px){.episodes-archive .episode-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:700px){.episodes-archive .episode-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:30px 12px!important}}

/* V3.1.8 — More Episodes rail replaces Featured in the hero support column */
.latest-featuring{display:none!important}
.episode-rail-inline{margin-top:34px;border-top:1px solid var(--rule);padding-top:16px}
.episode-rail-head--inline{margin:0 0 18px!important;padding:0!important;border:0!important}
.episode-rail--inline{margin-top:0!important;width:100%;grid-auto-columns:minmax(118px,1fr)}
@media(min-width:901px){
  .episode-rail--inline{grid-auto-columns:calc((100% - 50px)/6)!important;gap:10px!important}
  .episode-rail--inline .episode-rail-card h3{font-size:12px!important}
  .episode-rail--inline .episode-rail-card .episode-number{font-size:8px!important}
  .episode-rail--inline .episode-rail-card .meta{font-size:7px!important}
}
@media(max-width:900px){
  .episode-rail-inline{margin-top:28px}
  .episode-rail--inline{grid-auto-columns:minmax(145px,42vw)!important}
}

/* V3.1.9 — Episodes composition: Vila Lata introduction beside latest 9:16 hero */
.episodes-hub{padding-top:clamp(28px,4vw,64px)}
.episodes-hub .latest-episode__grid{align-items:start}
.vila-intro-inline{padding-top:0}
.vila-intro-inline .eyebrow{margin:0 0 12px;font:11px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.vila-intro-inline h2{margin:0 0 16px;font-family:var(--sans);font-size:clamp(38px,4.4vw,76px);font-weight:700;line-height:.92;letter-spacing:-.035em;text-transform:uppercase}
.vila-intro-inline p{max-width:760px;margin:0;font-family:var(--serif);font-size:clamp(18px,1.65vw,28px);line-height:1.28}
.episode-rail-inline{margin-top:clamp(28px,3vw,48px)}
@media(max-width:767px){
  .episodes-hub{padding-top:24px}
  .vila-intro-inline h2{font-size:clamp(38px,12vw,58px)}
  .vila-intro-inline p{font-size:20px}
}

/* V3.1.10 — Episodes composition proportions matched to approved reference */
@media(min-width:901px){
  .episodes-hub .latest-episode__grid{
    display:grid!important;
    grid-template-columns:clamp(300px,21vw,360px) minmax(0,1fr)!important;
    column-gap:clamp(80px,10vw,165px)!important;
    align-items:start!important;
  }
  .episodes-hub .latest-episode__primary{
    grid-column:auto!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }
  .episodes-hub .latest-episode__media{
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    aspect-ratio:9/16!important;
    margin:0!important;
  }
  .episodes-hub .latest-episode__support{
    grid-column:auto!important;
    min-width:0!important;
    padding-top:0!important;
  }
  .episodes-hub .latest-episode__copy{
    width:min(100%,820px)!important;
    max-width:820px!important;
    margin:0!important;
  }
  .episodes-hub .episode-rail-inline{
    margin-top:clamp(30px,3vw,44px)!important;
  }
}


/* V3.1.11 — align latest hero card with episode rail + restore latest title */
.latest-episode__meta{margin-top:8px}
.latest-episode__meta .episode-number{font:9px/1.2 var(--mono);letter-spacing:.06em;color:var(--muted)}
.latest-episode__meta h3{margin:3px 0 2px;font:700 15px/1 var(--sans)}
.latest-episode__meta .meta{font-size:8px}

@media(min-width:901px){
  .episodes-hub .latest-episode__grid{
    align-items:stretch!important;
  }
  .episodes-hub .latest-episode__primary{
    display:flex!important;
    flex-direction:column!important;
  }
  .episodes-hub .latest-episode__support{
    display:flex!important;
    flex-direction:column!important;
    min-height:100%!important;
  }
  .episodes-hub .episode-rail-inline{
    margin-top:auto!important;
  }
  .episodes-hub .latest-episode__media{
    width:100%!important;
    height:auto!important;
    aspect-ratio:9/16!important;
  }
}


/* V3.1.12 — approved Episodes composition: strict 9:16 cards + baseline alignment */
.latest-episode__media,
.episode-rail-card .episode-poster{
  aspect-ratio:9/16!important;
  overflow:hidden!important;
}

.latest-episode__media video,
.latest-episode__media img,
.episode-rail-card .episode-poster video,
.episode-rail-card .episode-poster img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}

/* Keep the whole image clickable without the oversized WATCH UI. */
.episodes-hub .episode-watch{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  font-size:0!important;
  opacity:1!important;
  cursor:pointer!important;
}
.episodes-hub .episode-watch span{
  position:absolute!important;
  left:14px!important;
  bottom:14px!important;
  margin:0!important;
  width:0!important;
  height:0!important;
  border-top:6px solid transparent!important;
  border-bottom:6px solid transparent!important;
  border-left:10px solid #fff!important;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));
}
.episodes-hub .episode-watch:hover,
.episodes-hub .episode-watch:focus-visible{
  background:rgba(0,0,0,.06)!important;
}

/* Large hero and small cards use exactly the same metadata hierarchy. */
.latest-episode__meta,
.episode-rail-card{
  color:var(--ink);
}
.latest-episode__meta{
  margin-top:8px!important;
  min-height:48px;
}
.latest-episode__meta .episode-number,
.episode-rail-card .episode-number{
  margin-top:8px!important;
  font:9px/1.2 var(--mono)!important;
  letter-spacing:.06em!important;
  color:var(--muted)!important;
}
.latest-episode__meta h3,
.episode-rail-card h3{
  margin:3px 0 2px!important;
  font:700 15px/1 var(--sans)!important;
}
.latest-episode__meta .meta,
.episode-rail-card .meta{
  font:8px/1.2 var(--mono)!important;
  color:var(--muted)!important;
}

@media(min-width:901px){
  .episodes-hub{
    padding-top:clamp(72px,7vw,120px)!important;
  }
  .episodes-hub .latest-episode__grid{
    display:grid!important;
    grid-template-columns:clamp(300px,22vw,355px) minmax(0,1fr)!important;
    column-gap:clamp(90px,10vw,150px)!important;
    align-items:stretch!important;
  }
  .episodes-hub .latest-episode__primary{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }
  .episodes-hub .latest-episode__media{
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    aspect-ratio:9/16!important;
  }
  .episodes-hub .latest-episode__support{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    min-width:0!important;
    min-height:100%!important;
    padding:0!important;
    margin:0!important;
  }
  .episodes-hub .latest-episode__copy{
    width:min(100%,820px)!important;
    max-width:820px!important;
    margin:0!important;
  }
  .episodes-hub .episode-rail-inline{
    margin-top:auto!important;
    padding-top:16px!important;
  }
  .episodes-hub .episode-rail-head--inline{
    margin-bottom:18px!important;
  }
  .episodes-hub .episode-rail--inline{
    display:grid!important;
    grid-auto-flow:column!important;
    grid-auto-columns:clamp(112px,10.6vw,145px)!important;
    gap:10px!important;
    align-items:start!important;
    width:100%!important;
  }
  .episodes-hub .episode-rail-card .episode-poster{
    width:100%!important;
    aspect-ratio:9/16!important;
  }
}

@media(max-width:900px){
  .episodes-hub .latest-episode__primary{
    width:min(100%,360px)!important;
    margin:0 0 30px!important;
  }
  .episodes-hub .latest-episode__media,
  .episodes-hub .episode-rail-card .episode-poster{
    aspect-ratio:9/16!important;
  }
}


/* V3.1.16 — View All Episodes: clean 9:16 episode gallery */
.episodes-gallery{
  padding-top:clamp(96px,10vw,150px)!important;
  padding-bottom:clamp(70px,8vw,120px)!important;
}
.episodes-gallery__header{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  padding-bottom:18px;
  margin-bottom:clamp(28px,3.4vw,50px);
  border-bottom:1px solid var(--rule);
}
.episodes-gallery__header .meta{
  font:10px/1.2 var(--mono);
  letter-spacing:.09em;
  color:var(--muted);
}
.episodes-gallery__header h1{
  margin:0;
  font:700 clamp(50px,7.2vw,112px)/.86 var(--sans);
  letter-spacing:-.045em;
  text-transform:uppercase;
}
.episodes-gallery__grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:clamp(34px,4vw,64px) clamp(12px,1.65vw,26px)!important;
  align-items:start;
}
.episodes-gallery__card{
  min-width:0;
  margin:0!important;
  width:100%!important;
}
.episodes-gallery__poster{
  position:relative;
  width:100%!important;
  aspect-ratio:9/16!important;
  overflow:hidden!important;
  background:#d5d0c5;
}
.episodes-gallery__poster video,
.episodes-gallery__poster img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
.episodes-gallery__poster .episode-watch{
  position:absolute!important;
  inset:0!important;
  z-index:3!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:#fff!important;
  opacity:1!important;
  font-size:0!important;
  cursor:pointer!important;
}
.episodes-gallery__poster .episode-watch span{
  position:absolute!important;
  left:14px!important;
  bottom:14px!important;
  margin:0!important;
  width:0!important;
  height:0!important;
  border-top:6px solid transparent!important;
  border-bottom:6px solid transparent!important;
  border-left:10px solid #fff!important;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));
}
.episodes-gallery__poster .episode-watch:hover,
.episodes-gallery__poster .episode-watch:focus-visible{
  background:rgba(0,0,0,.06)!important;
  outline:none!important;
}
.episodes-gallery__meta{
  margin-top:8px;
}
.episodes-gallery__meta .episode-number{
  margin:0!important;
  font:9px/1.2 var(--mono)!important;
  letter-spacing:.06em!important;
  color:var(--muted)!important;
}
.episodes-gallery__meta h2{
  margin:3px 0 2px!important;
  font:700 15px/1 var(--sans)!important;
  letter-spacing:0!important;
  text-transform:none!important;
}
.episodes-gallery__meta .meta{
  font:8px/1.2 var(--mono)!important;
  color:var(--muted)!important;
}
@media(max-width:1050px){
  .episodes-gallery__grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}
@media(max-width:700px){
  .episodes-gallery{padding-top:88px!important;}
  .episodes-gallery__grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:32px 10px!important;
  }
  .episodes-gallery__header h1{font-size:clamp(48px,18vw,78px);}
}

/* V3.1.17 — Vila Lata numbered location markers as map pins */
.vila-location__marker{
  width:28px!important;
  height:28px!important;
  border-radius:50% 50% 50% 0!important;
  transform:rotate(-45deg)!important;
  transform-origin:50% 50%!important;
  border:1px solid rgba(255,255,255,.9)!important;
  overflow:visible!important;
}
.vila-location__marker span{
  display:grid!important;
  place-items:center!important;
  width:100%!important;
  height:100%!important;
  transform:rotate(45deg)!important;
}
.vila-location__marker:hover,
.vila-location__marker:focus-visible,
.vila-location.is-active .vila-location__marker{
  transform:rotate(-45deg) scale(1.12)!important;
}
@media(max-width:700px){
  .vila-location__marker{
    width:24px!important;
    height:24px!important;
  }
}


/* V3.1.17 — numbered Vila Lata markers as map pins */
.vila-location__marker{
  width:30px!important;
  height:30px!important;
  border-radius:50% 50% 50% 0!important;
  transform:rotate(-45deg)!important;
  transform-origin:50% 50%!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid rgba(255,255,255,.9)!important;
  background:#171717!important;
  color:#fff!important;
  box-shadow:0 2px 7px rgba(0,0,0,.24)!important;
}
.vila-location__marker span{
  display:block!important;
  transform:rotate(45deg)!important;
  font:700 9px/1 var(--mono)!important;
  letter-spacing:.02em!important;
}
.vila-location__marker:hover,
.vila-location__marker:focus-visible,
.vila-location.is-active .vila-location__marker{
  transform:rotate(-45deg) scale(1.12)!important;
  background:#fff!important;
  color:#171717!important;
}
@media(max-width:700px){
  .vila-location__marker{
    width:26px!important;
    height:26px!important;
  }
  .vila-location__marker span{font-size:8px!important;}
}


/* V3.1.18 — tighter Episodes composition, centred play controls, exact card baseline */
@media(min-width:901px){
  .episodes-hub .latest-episode__grid{
    grid-template-columns:clamp(300px,22vw,355px) minmax(0,1fr)!important;
    column-gap:clamp(44px,4.5vw,72px)!important;
  }

  /* Both sides finish on the same card baseline. */
  .episodes-hub .latest-episode__primary,
  .episodes-hub .latest-episode__support{
    height:100%!important;
  }
  .episodes-hub .episode-rail-inline{
    margin-top:auto!important;
  }

  /* Identical metadata block height means the 9:16 image bottoms align too. */
  .episodes-hub .latest-episode__meta,
  .episodes-hub .episode-rail-card{
    padding-bottom:0!important;
  }
  .episodes-hub .latest-episode__meta{
    min-height:45px!important;
  }
  .episodes-hub .episode-rail-card{
    min-height:0!important;
  }
}

/* Large centred play icon on every homepage episode preview. */
.episodes-hub .episode-watch span{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  bottom:auto!important;
  transform:translate(-50%,-50%)!important;
  width:58px!important;
  height:58px!important;
  margin:0!important;
  box-sizing:border-box!important;
  border:1.5px solid rgba(255,255,255,.95)!important;
  border-radius:50%!important;
  background:rgba(17,17,17,.72)!important;
  filter:none!important;
  font-size:0!important;
}
.episodes-hub .episode-watch span::after{
  content:""!important;
  position:absolute!important;
  left:52%!important;
  top:50%!important;
  transform:translate(-42%,-50%)!important;
  width:0!important;
  height:0!important;
  border-top:9px solid transparent!important;
  border-bottom:9px solid transparent!important;
  border-left:15px solid #fff!important;
}
.episodes-hub .latest-episode__media .episode-watch span{
  width:72px!important;
  height:72px!important;
}
.episodes-hub .latest-episode__media .episode-watch span::after{
  border-top-width:11px!important;
  border-bottom-width:11px!important;
  border-left-width:18px!important;
}
.episodes-hub .episode-watch:hover span,
.episodes-hub .episode-watch:focus-visible span{
  background:rgba(17,17,17,.88)!important;
}

@media(max-width:900px){
  .episodes-hub .episode-watch span{
    width:52px!important;
    height:52px!important;
  }
  .episodes-hub .latest-episode__media .episode-watch span{
    width:64px!important;
    height:64px!important;
  }
}

/* V3.1.20 — corrected desktop episode geometry */
@media (min-width:901px){

  /*
   * The left hero remains the height authority.
   * The right column is taken out of document flow and locked to the
   * exact top/bottom of the hero card.
   */
  .episodes-hub .latest-episode__grid{
    --avm-hero-w: clamp(300px, 22vw, 355px);
    --avm-col-gap: clamp(24px, 2vw, 32px);
    --avm-meta-h: 52px;

    position:relative!important;
    display:grid!important;
    grid-template-columns:var(--avm-hero-w) minmax(0,1fr)!important;
    column-gap:var(--avm-col-gap)!important;
    align-items:start!important;
  }

  .episodes-hub .latest-episode__primary{
    grid-column:1!important;
    width:var(--avm-hero-w)!important;
    max-width:none!important;
    margin:0!important;
    display:block!important;
  }

  .episodes-hub .latest-episode__media{
    width:100%!important;
    height:auto!important;
    aspect-ratio:9/16!important;
    margin:0!important;
  }

  .episodes-hub .latest-episode__support{
    position:absolute!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:calc(var(--avm-hero-w) + var(--avm-col-gap))!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    display:block!important;
  }

  /*
   * The rail sits on the hero card's bottom edge.
   * Both large and small cards have the same fixed metadata height,
   * therefore the BOTTOM OF EVERY 9:16 IMAGE is the same baseline.
   */
  .episodes-hub .episode-rail-inline{
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    margin:0!important;
    padding-top:14px!important;
    border-top:1px solid var(--rule)!important;
  }

  .episodes-hub .latest-episode__meta,
  .episodes-hub .episode-card__meta{
    box-sizing:border-box!important;
    height:var(--avm-meta-h)!important;
    min-height:var(--avm-meta-h)!important;
    max-height:var(--avm-meta-h)!important;
    margin:0!important;
    padding:8px 0 0!important;
    overflow:hidden!important;
  }

  .episodes-hub .latest-episode__meta .episode-number,
  .episodes-hub .episode-card__meta .episode-number{
    margin:0!important;
  }

  .episodes-hub .latest-episode__meta h3,
  .episodes-hub .episode-card__meta h3{
    margin:3px 0 2px!important;
  }

  .episodes-hub .episode-rail--inline{
    display:grid!important;
    grid-auto-flow:column!important;
    grid-auto-columns:clamp(118px, 10.6vw, 152px)!important;
    gap:12px!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    align-items:start!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }

  .episodes-hub .episode-rail-card{
    display:block!important;
    margin:0!important;
    padding:0!important;
    min-width:0!important;
  }

  .episodes-hub .episode-rail-card .episode-poster{
    width:100%!important;
    aspect-ratio:9/16!important;
    margin:0!important;
  }
}

/* Keep the play controls centred and intentionally prominent. */
.episodes-hub .episode-watch{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  font-size:0!important;
}

.episodes-hub .episode-watch span{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  right:auto!important;
  bottom:auto!important;
  transform:translate(-50%,-50%)!important;
  width:58px!important;
  height:58px!important;
  margin:0!important;
  border:1.5px solid rgba(255,255,255,.95)!important;
  border-radius:50%!important;
  background:rgba(17,17,17,.72)!important;
  box-sizing:border-box!important;
  font-size:0!important;
  filter:none!important;
}

.episodes-hub .episode-watch span::after{
  content:""!important;
  position:absolute!important;
  left:53%!important;
  top:50%!important;
  transform:translate(-45%,-50%)!important;
  width:0!important;
  height:0!important;
  border-top:9px solid transparent!important;
  border-bottom:9px solid transparent!important;
  border-left:15px solid #fff!important;
}

.episodes-hub .latest-episode__media .episode-watch span{
  width:72px!important;
  height:72px!important;
}

.episodes-hub .latest-episode__media .episode-watch span::after{
  border-top-width:11px!important;
  border-bottom-width:11px!important;
  border-left-width:18px!important;
}

.episodes-hub .episode-watch:hover span,
.episodes-hub .episode-watch:focus-visible span{
  background:rgba(17,17,17,.88)!important;
}

@media (max-width:900px){
  .episodes-hub .episode-watch span{
    width:52px!important;
    height:52px!important;
  }
  .episodes-hub .latest-episode__media .episode-watch span{
    width:64px!important;
    height:64px!important;
  }
}


/* V3.1.21 — site-wide utility typography recalibration */
.meta,
.eyebrow,
.episode-number,
.latest-episode__meta .episode-number,
.episode-card__meta .episode-number,
.episode-view-all,
.episode-rail-head .meta,
.vila-intro-inline .eyebrow{
  font-size:11px!important;
  line-height:1.35!important;
  letter-spacing:.09em!important;
}

.episode-view-all,
.episode-rail-head .meta{
  font-size:11px!important;
  letter-spacing:.08em!important;
}

.episodes-hub .latest-episode__meta h3,
.episodes-hub .episode-card__meta h3,
.episodes-hub .episode-rail-card h3,
.episodes-archive .episode-card h3{
  font-size:15px!important;
  line-height:1.08!important;
  letter-spacing:-.01em!important;
}

.episodes-hub .latest-episode__meta .meta,
.episodes-hub .episode-card__meta .meta,
.episodes-hub .episode-rail-card .meta,
.episodes-archive .episode-card .meta{
  font-size:10px!important;
  line-height:1.25!important;
  letter-spacing:.08em!important;
}

@media(min-width:901px){
  .episodes-hub .latest-episode__grid{
    --avm-meta-h:60px!important;
  }
}

@media(max-width:700px){
  .meta,
  .eyebrow,
  .episode-number,
  .latest-episode__meta .episode-number,
  .episode-card__meta .episode-number,
  .episode-view-all,
  .episode-rail-head .meta,
  .vila-intro-inline .eyebrow{
    font-size:10px!important;
    letter-spacing:.075em!important;
  }
  .episodes-hub .latest-episode__meta h3,
  .episodes-hub .episode-card__meta h3,
  .episodes-hub .episode-rail-card h3,
  .episodes-archive .episode-card h3{
    font-size:15px!important;
  }
  .episodes-hub .latest-episode__meta .meta,
  .episodes-hub .episode-card__meta .meta,
  .episodes-hub .episode-rail-card .meta,
  .episodes-archive .episode-card .meta{
    font-size:10px!important;
  }
}


/* V3.1.22 — Vila Lata two-family typography system
   DIN Condensed = display/titles. Kepler = editorial + labels/metadata.
   Courier/mono styling is deliberately overridden. */

:root{
  --utility:var(--serif);
}

/* World labels, section labels and metadata now use the editorial serif. */
.meta,
.eyebrow,
.episode-number,
.episode-view-all,
.episode-rail-head .meta,
.vila-intro-inline .eyebrow,
.latest-episode__meta .episode-number,
.episode-card__meta .episode-number,
.vila-location-index,
.vila-location-index *,
.vila-location__card,
.vila-hotspot__card{
  font-family:var(--serif)!important;
  font-size:14px!important;
  line-height:1.2!important;
  font-weight:600!important;
  letter-spacing:.035em!important;
  text-transform:uppercase!important;
}

/* Secondary numerical information: still clearly readable. */
.episodes-hub .latest-episode__meta .meta,
.episodes-hub .episode-card__meta .meta,
.episodes-hub .episode-rail-card .meta,
.episodes-archive .episode-card .meta{
  font-family:var(--serif)!important;
  font-size:12px!important;
  line-height:1.25!important;
  font-weight:400!important;
  letter-spacing:.025em!important;
  text-transform:none!important;
}

/* Episode titles belong to the display voice. */
.episodes-hub .latest-episode__meta h3,
.episodes-hub .episode-card__meta h3,
.episodes-hub .episode-rail-card h3,
.episodes-archive .episode-card h3{
  font-family:var(--sans)!important;
  font-size:20px!important;
  line-height:1!important;
  font-weight:700!important;
  letter-spacing:-.015em!important;
}

/* Give the stronger episode typography proper space without changing image alignment. */
@media(min-width:901px){
  .episodes-hub .latest-episode__grid{
    --avm-meta-h:68px!important;
  }
}

/* Site navigation should remain part of the DIN display language. */
.site-nav,
.site-nav a,
.menu-toggle{
  font-family:var(--sans)!important;
}

/* Mobile is still intentionally readable, not micro typography. */
@media(max-width:700px){
  .meta,
  .eyebrow,
  .episode-number,
  .episode-view-all,
  .episode-rail-head .meta,
  .vila-intro-inline .eyebrow,
  .latest-episode__meta .episode-number,
  .episode-card__meta .episode-number,
  .vila-location-index,
  .vila-location-index *{
    font-size:12px!important;
    letter-spacing:.025em!important;
  }

  .episodes-hub .latest-episode__meta h3,
  .episodes-hub .episode-card__meta h3,
  .episodes-hub .episode-rail-card h3,
  .episodes-archive .episode-card h3{
    font-size:18px!important;
  }

  .episodes-hub .latest-episode__meta .meta,
  .episodes-hub .episode-card__meta .meta,
  .episodes-hub .episode-rail-card .meta,
  .episodes-archive .episode-card .meta{
    font-size:12px!important;
  }
}


/* V3.1.23 — complete two-family typography system + site-wide readable scale
   DIN Condensed = display/titles/nav
   Kepler = editorial/body/labels/metadata
   No Courier / mono voice remains. */

:root{
  --mono:var(--serif)!important;
  --utility:var(--serif)!important;
}

/* GLOBAL MINIMUMS -------------------------------------------------------- */
body{
  font-size:18px!important;
}

/* Editorial body copy */
p,
.entry-content,
.character-copy,
.location-copy,
.latest-episode__copy p,
.vila-intro-inline p{
  font-family:var(--serif)!important;
  font-size:clamp(18px,1.35vw,22px)!important;
  line-height:1.35!important;
}

/* Major display remains DIN */
h1,h2,h3,h4,
.site-nav,
.site-nav a,
.menu-toggle,
.character-card h3,
.character-grid h3,
.episodes-hub .latest-episode__meta h3,
.episodes-hub .episode-card__meta h3,
.episodes-hub .episode-rail-card h3,
.episodes-archive .episode-card h3{
  font-family:var(--sans)!important;
}

/* ALL LABEL / META LANGUAGE --------------------------------------------- */
.meta,
.eyebrow,
.episode-number,
.episode-view-all,
.episode-rail-head .meta,
.vila-intro-inline .eyebrow,
.latest-episode__meta .episode-number,
.episode-card__meta .episode-number,
.character-role,
.character-known,
.character-number,
.character-occupation,
.character-profile-link,
.character-card .profile-link,
.character-card .view-profile,
.character-card a[class*="profile"],
.character-grid .profile-link,
.character-grid .view-profile,
.character-grid a[class*="profile"],
.vila-location-index,
.vila-location-index *,
[class*="runtime"],
[class*="duration"]{
  font-family:var(--serif)!important;
  font-size:14px!important;
  line-height:1.25!important;
  font-weight:500!important;
  letter-spacing:.025em!important;
}

/* World/section labels get a little more authority */
.eyebrow,
.vila-intro-inline .eyebrow,
.episode-rail-head .meta,
.episode-view-all{
  font-size:15px!important;
  font-weight:600!important;
  text-transform:uppercase!important;
  letter-spacing:.035em!important;
}

/* Character utility links */
.character-card .profile-link,
.character-card .view-profile,
.character-card a[class*="profile"],
.character-grid .profile-link,
.character-grid .view-profile,
.character-grid a[class*="profile"]{
  font-size:14px!important;
  text-transform:uppercase!important;
  letter-spacing:.035em!important;
}

/* Episode titles */
.episodes-hub .latest-episode__meta h3,
.episodes-hub .episode-card__meta h3,
.episodes-hub .episode-rail-card h3,
.episodes-archive .episode-card h3{
  font-size:20px!important;
  line-height:1!important;
  font-weight:700!important;
  letter-spacing:-.015em!important;
}

/* Episode runtime / secondary metadata */
.episodes-hub .latest-episode__meta .meta,
.episodes-hub .episode-card__meta .meta,
.episodes-hub .episode-rail-card .meta,
.episodes-archive .episode-card .meta{
  font-family:var(--serif)!important;
  font-size:13px!important;
  line-height:1.2!important;
  font-weight:400!important;
  letter-spacing:.02em!important;
  text-transform:none!important;
}

/* Character titles */
.character-card h3,
.character-grid h3{
  font-size:clamp(28px,2.3vw,38px)!important;
  line-height:1!important;
}

/* Character descriptor / occupation */
.character-card .meta,
.character-grid .meta,
.character-role,
.character-occupation{
  font-size:14px!important;
}

/* Navigation */
.site-nav a{
  font-size:14px!important;
  line-height:1!important;
}

/* Give episode metadata enough vertical room after increasing type. */
@media(min-width:901px){
  .episodes-hub .latest-episode__grid{
    --avm-meta-h:74px!important;
  }
}

/* MOBILE MINIMUMS -------------------------------------------------------- */
@media(max-width:700px){
  body{
    font-size:17px!important;
  }

  p,
  .entry-content,
  .character-copy,
  .location-copy,
  .latest-episode__copy p,
  .vila-intro-inline p{
    font-size:18px!important;
  }

  .meta,
  .eyebrow,
  .episode-number,
  .episode-view-all,
  .episode-rail-head .meta,
  .vila-intro-inline .eyebrow,
  .latest-episode__meta .episode-number,
  .episode-card__meta .episode-number,
  .character-role,
  .character-known,
  .character-number,
  .character-occupation,
  .character-profile-link,
  .character-card .profile-link,
  .character-card .view-profile,
  .character-card a[class*="profile"],
  .character-grid .profile-link,
  .character-grid .view-profile,
  .character-grid a[class*="profile"],
  .vila-location-index,
  .vila-location-index *,
  [class*="runtime"],
  [class*="duration"]{
    font-size:13px!important;
  }

  .episodes-hub .latest-episode__meta h3,
  .episodes-hub .episode-card__meta h3,
  .episodes-hub .episode-rail-card h3,
  .episodes-archive .episode-card h3{
    font-size:18px!important;
  }

  .episodes-hub .latest-episode__meta .meta,
  .episodes-hub .episode-card__meta .meta,
  .episodes-hub .episode-rail-card .meta,
  .episodes-archive .episode-card .meta{
    font-size:12px!important;
  }

  .character-card h3,
  .character-grid h3{
    font-size:30px!important;
  }

  .site-nav a{
    font-size:13px!important;
  }
}


/* V3.1.24 — simplified HERE NOW GONE footer */
.site-footer--hng{
  display:block!important;
  padding:clamp(44px,5vw,72px) var(--page-pad,5vw) 22px!important;
}
.site-footer--hng .site-footer__hng-mark{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  margin:0 auto clamp(26px,3vw,40px);
}
.site-footer--hng .site-footer__hng-logo{
  display:block;
  width:clamp(80px,7vw,112px);
  margin:0 auto 10px;
}
.site-footer--hng .site-footer__hng-logo img{
  display:block;
  width:100%;
  height:auto;
  max-height:110px;
  object-fit:contain;
}
.site-footer--hng .site-footer__hng-logo-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  width:90px;
  height:70px;
  margin:0 auto 10px;
  border:1px dashed var(--rule);
  font-family:var(--sans);
  font-size:18px;
}
.site-footer--hng .site-footer__hng-original{
  font-family:var(--serif);
  font-size:14px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.site-footer--hng .site-footer__utility{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  width:100%;
  padding-top:18px;
  border-top:1px solid var(--rule);
}
.site-footer--hng .site-footer__links{
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
}
.site-footer--hng .site-footer__links a,
.site-footer--hng .site-footer__legal{
  font-family:var(--serif)!important;
  font-size:13px!important;
  line-height:1.2;
  letter-spacing:.025em!important;
}
.site-footer--hng .site-footer__links a{
  color:inherit;
  text-decoration:none;
}
.site-footer--hng .site-footer__social{
  text-transform:uppercase;
}
.site-footer--hng .site-footer__legal{
  display:flex;
  align-items:center;
  gap:16px;
  margin-left:auto;
}
@media(max-width:700px){
  .site-footer--hng{
    padding-top:38px!important;
  }
  .site-footer--hng .site-footer__utility{
    align-items:flex-start;
    flex-direction:column;
  }
  .site-footer--hng .site-footer__legal{
    margin-left:0;
    flex-wrap:wrap;
  }
  .site-footer--hng .site-footer__links a,
  .site-footer--hng .site-footer__legal{
    font-size:13px!important;
  }
}


/* V3.1.25 — social links beneath Life in a Tin Can intro */
.vila-social-links{
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:22px;
}
.vila-social-links a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  color:var(--ink);
  text-decoration:none;
}
.vila-social-links a + a{
  position:relative;
  margin-left:14px;
}
.vila-social-links a + a::before{
  content:"";
  position:absolute;
  left:-17px;
  top:4px;
  bottom:4px;
  width:1px;
  background:var(--rule);
}
.vila-social-links svg{
  width:28px;
  height:28px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.vila-social-links a[aria-label="TikTok"] svg{
  fill:currentColor;
  stroke:none;
}
.vila-social-links a:hover,
.vila-social-links a:focus-visible{
  opacity:.6;
}
@media(max-width:700px){
  .vila-social-links{
    margin-top:18px;
    gap:16px;
  }
  .vila-social-links a{
    width:32px;
    height:32px;
  }
  .vila-social-links svg{
    width:26px;
    height:26px;
  }
}


/* V3.1.26 — refined social icon placement beneath intro */
.vila-social-links{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  margin-top:18px!important;
  margin-bottom:20px!important;
  height:22px!important;
}

.vila-social-links a{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:22px!important;
  height:22px!important;
  margin:0!important;
  padding:0!important;
  color:var(--ink)!important;
  line-height:1!important;
}

.vila-social-links a + a{
  margin-left:12px!important;
}

.vila-social-links a + a::before{
  left:-12px!important;
  top:2px!important;
  bottom:2px!important;
}

.vila-social-links svg{
  width:20px!important;
  height:20px!important;
  display:block!important;
}

.vila-social-links a[aria-label="TikTok"] svg{
  width:18px!important;
  height:18px!important;
}

/* Keep the divider/episodes header clearly below the social row. */
.episodes-hub .episode-rail-inline{
  padding-top:16px!important;
}

@media(max-width:700px){
  .vila-social-links{
    margin-top:16px!important;
    margin-bottom:18px!important;
    height:20px!important;
  }
  .vila-social-links a{
    width:20px!important;
    height:20px!important;
  }
  .vila-social-links svg{
    width:18px!important;
    height:18px!important;
  }
  .vila-social-links a[aria-label="TikTok"] svg{
    width:17px!important;
    height:17px!important;
  }
}


/* V3.1.27 — lock social row ABOVE the More Episodes divider */
.vila-social-links{
  position:relative!important;
  z-index:2!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:max-content!important;
  height:20px!important;
  margin:18px 0 30px 0!important;
  padding:0!important;
  border:0!important;
}

.vila-social-links a{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 20px!important;
  width:20px!important;
  height:20px!important;
  margin:0!important;
  padding:0!important;
}

.vila-social-links a + a{
  margin-left:22px!important;
}

.vila-social-links a + a::before{
  content:""!important;
  position:absolute!important;
  left:-12px!important;
  top:1px!important;
  bottom:1px!important;
  width:1px!important;
  background:var(--rule)!important;
}

.vila-social-links svg{
  display:block!important;
  width:18px!important;
  height:18px!important;
}

.vila-social-links a[aria-label="TikTok"] svg{
  width:16px!important;
  height:16px!important;
}

/* The divider belongs to the episode rail, never to the social row. */
.episodes-hub .episode-rail-inline{
  margin-top:0!important;
  padding-top:18px!important;
  border-top:1px solid var(--rule)!important;
}

@media(min-width:901px){
  /* Reserve a clean strip between intro/socials and the episode rail. */
  .episodes-hub .latest-episode__support{
    padding-bottom:0!important;
  }
}

@media(max-width:700px){
  .vila-social-links{
    margin:16px 0 26px!important;
  }
}


/* V3.1.28 — final social placement: belongs to intro, not episode divider */
@media(min-width:901px){
  .episodes-hub .vila-social-links{
    position:absolute!important;
    left:0!important;
    top:calc(100% - 388px)!important;
    z-index:3!important;

    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;

    width:auto!important;
    height:18px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
  }

  .episodes-hub .vila-social-links a{
    flex:0 0 18px!important;
    width:18px!important;
    height:18px!important;
    margin:0!important;
    padding:0!important;
  }

  .episodes-hub .vila-social-links a + a{
    margin-left:24px!important;
  }

  .episodes-hub .vila-social-links a + a::before{
    left:-13px!important;
    top:0!important;
    bottom:0!important;
    height:18px!important;
  }

  .episodes-hub .vila-social-links svg{
    width:17px!important;
    height:17px!important;
  }

  .episodes-hub .vila-social-links a[aria-label="TikTok"] svg{
    width:15px!important;
    height:15px!important;
  }

  /* Rail stays locked to the hero baseline; its divider is now visually
     separate from the social row above. */
  .episodes-hub .episode-rail-inline{
    padding-top:20px!important;
  }
}

/* Mobile/tablet: normal document flow, with explicit separation. */
@media(max-width:900px){
  .vila-social-links{
    position:static!important;
    display:flex!important;
    align-items:center!important;
    width:auto!important;
    height:18px!important;
    margin:16px 0 28px!important;
    padding:0!important;
  }

  .vila-social-links a{
    width:18px!important;
    height:18px!important;
  }

  .vila-social-links svg{
    width:17px!important;
    height:17px!important;
  }

  .vila-social-links a[aria-label="TikTok"] svg{
    width:15px!important;
    height:15px!important;
  }
}


/* V3.1.29 — social links are part of the intro copy flow, never absolute */
.episodes-hub .vila-intro-inline .vila-social-links,
.episodes-hub .vila-social-links{
  position:static!important;
  inset:auto!important;
  z-index:auto!important;

  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;

  width:auto!important;
  max-width:none!important;
  height:18px!important;

  margin:20px 0 0!important;
  padding:0!important;
  border:0!important;
}

.episodes-hub .vila-social-links a{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 18px!important;
  width:18px!important;
  height:18px!important;
  margin:0!important;
  padding:0!important;
  color:var(--ink)!important;
}

.episodes-hub .vila-social-links a + a{
  margin-left:24px!important;
}

.episodes-hub .vila-social-links a + a::before{
  content:""!important;
  position:absolute!important;
  left:-13px!important;
  top:0!important;
  bottom:auto!important;
  width:1px!important;
  height:18px!important;
  background:var(--rule)!important;
}

.episodes-hub .vila-social-links svg{
  display:block!important;
  width:17px!important;
  height:17px!important;
}

.episodes-hub .vila-social-links a[aria-label="TikTok"] svg{
  width:15px!important;
  height:15px!important;
}

/* Keep a deliberate gap between the intro/social block and the episode rail. */
@media(min-width:901px){
  .episodes-hub .episode-rail-inline{
    padding-top:20px!important;
  }
}

@media(max-width:900px){
  .episodes-hub .vila-social-links{
    margin-top:16px!important;
  }
}


/* V3.1.30 — nudge intro social icons upward */
.episodes-hub .vila-intro-inline .vila-social-links{
  transform:translateY(-6px)!important;
  margin-top:18px!important;
  margin-bottom:-6px!important;
}
@media(max-width:900px){
  .episodes-hub .vila-intro-inline .vila-social-links{
    transform:translateY(-4px)!important;
    margin-top:16px!important;
    margin-bottom:-4px!important;
  }
}


/* V3.1.31 — social icons another 2px higher */
.episodes-hub .vila-intro-inline .vila-social-links{
  transform:translateY(-8px)!important;
}
@media(max-width:900px){
  .episodes-hub .vila-intro-inline .vila-social-links{
    transform:translateY(-6px)!important;
  }
}


/* V3.1.32 — clean map by default; reveal only the active location pin */
.vila-map-layout.has-location-index .vila-location{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transition:opacity .14s ease,visibility .14s ease!important;
}
.vila-map-layout.has-location-index .vila-location.is-active{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker{
  transform:none!important;
}
.vila-map-layout.has-location-index .vila-location-index li.is-active .vila-location-index__copy strong{
  text-decoration:underline!important;
  text-underline-offset:4px!important;
}

/* Mobile: image first, location list beneath it. Existing wide map remains
   finger-scrollable and selecting a location automatically pans to its pin. */
@media(max-width:900px){
  .vila-map-layout.has-location-index{
    display:flex!important;
    flex-direction:column!important;
    gap:24px!important;
  }
  .vila-map-layout__visual{order:1!important;width:100%!important;}
  .vila-location-index{order:2!important;width:100%!important;}
  .vila-location-index__title{
    font-size:14px!important;
    padding-bottom:12px!important;
  }
  .vila-location-index__item{
    min-height:48px!important;
    padding:14px 0!important;
  }
}


/* V3.1.33 — correct active map-pin orientation and upright number */
.vila-map-layout.has-location-index .vila-location__marker,
.vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker{
  width:30px!important;
  height:30px!important;
  border-radius:50% 50% 50% 0!important;
  transform:rotate(-45deg)!important;
  transform-origin:50% 50%!important;
  display:grid!important;
  place-items:center!important;
}

.vila-map-layout.has-location-index .vila-location__marker span,
.vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker span{
  display:block!important;
  transform:rotate(45deg)!important;
  transform-origin:center!important;
  font-family:var(--serif)!important;
  font-size:9px!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:0!important;
  text-align:center!important;
}

.vila-map-layout.has-location-index .vila-location__marker:hover,
.vila-map-layout.has-location-index .vila-location__marker:focus-visible,
.vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker{
  transform:rotate(-45deg) scale(1.08)!important;
}

@media(max-width:700px){
  .vila-map-layout.has-location-index .vila-location__marker,
  .vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker{
    width:26px!important;
    height:26px!important;
  }
  .vila-map-layout.has-location-index .vila-location__marker span,
  .vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker span{
    font-size:8px!important;
  }
}

/* V3.1.39 — immersive Vila Lata Location Viewer */
.vila-location-index__item.has-world-gallery{cursor:pointer}
.vila-world-modal{position:fixed;inset:0;z-index:99990;display:none}
.vila-world-modal.is-open{display:block}
.vila-world-modal__backdrop{position:absolute;inset:0;background:rgba(17,17,17,.82)}
.vila-world-modal__dialog{position:absolute;inset:clamp(14px,2vw,30px);display:grid;grid-template-rows:auto minmax(0,1fr);background:var(--paper,#F1EEE6);color:var(--ink,#171717);overflow:hidden}
.vila-world-modal__head{display:grid;grid-template-columns:minmax(120px,.65fr) minmax(0,2fr) 56px;gap:32px;align-items:start;padding:24px clamp(22px,3vw,52px) 26px;border-bottom:1px solid var(--rule,#C9C5BA)}
.vila-world-modal__return,.vila-world-modal__back{appearance:none;border:0;background:none;color:inherit;padding:0;font-family:var(--serif);font-size:13px;font-weight:600;letter-spacing:.025em;cursor:pointer;text-align:left}
.vila-world-modal__return span{margin-left:6px}
.vila-world-modal__head-copy{max-width:920px}
.vila-world-modal__eyebrow{margin:0 0 8px;font-family:var(--serif);font-size:13px;font-weight:600;letter-spacing:.05em}
.vila-world-modal__head h2{margin:0;font-family:var(--sans);font-size:clamp(38px,5.6vw,88px);font-weight:700;line-height:.88;letter-spacing:-.025em;text-transform:uppercase}
.vila-world-modal__intro{max-width:720px;margin:16px 0 0;font-family:var(--serif);font-size:clamp(16px,1.3vw,20px);line-height:1.45}
.vila-world-modal__close{appearance:none;border:0;background:none;color:inherit;width:48px;height:48px;margin:-8px -8px 0 auto;padding:0;font:300 38px/1 var(--sans);cursor:pointer}
.vila-world-modal__scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.vila-world-modal__collection{width:min(1500px,100%);margin:0 auto;padding:clamp(26px,4vw,64px) clamp(22px,4vw,64px) clamp(48px,7vw,100px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(24px,4vw,64px) clamp(18px,3vw,42px)}
.vila-world-modal__item{grid-column:span 7;margin:0;min-width:0}
.vila-world-modal__item:nth-child(4n+2){grid-column:6 / span 7}
.vila-world-modal__item:nth-child(4n+3){grid-column:2 / span 5}
.vila-world-modal__item:nth-child(4n){grid-column:7 / span 5}
.vila-world-modal__item:first-child{grid-column:1 / -1}
.vila-world-modal__item img{display:block;width:100%;height:auto;max-height:82vh;object-fit:contain;object-position:left center;background:transparent}
.vila-world-modal__item:first-child img{max-height:none;object-fit:cover}
.vila-world-modal__item figcaption{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;margin-top:11px;padding-top:9px;border-top:1px solid var(--rule,#C9C5BA);font-family:var(--serif);font-size:13px;line-height:1.4}
.vila-world-modal__item-number{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--muted,#6D6A63)}
.vila-world-modal__item-copy{max-width:52ch}
.vila-world-modal__foot{padding:28px clamp(22px,4vw,64px) 34px;border-top:1px solid var(--rule,#C9C5BA)}
.vila-world-modal__back{font-size:14px}
body.vila-world-modal-open{overflow:hidden}

@media(max-width:700px){
  .vila-world-modal__dialog{inset:0;display:grid;grid-template-rows:auto minmax(0,1fr)}
  .vila-world-modal__backdrop{display:none}
  .vila-world-modal__head{position:relative;grid-template-columns:1fr 42px;gap:12px;padding:14px 16px 18px;background:var(--paper,#F1EEE6);border-bottom:1px solid var(--rule,#C9C5BA)}
  .vila-world-modal__return{grid-column:1;font-size:12px;margin-bottom:24px}
  .vila-world-modal__close{grid-column:2;grid-row:1;width:40px;height:40px;margin:-6px -4px 0 0;font-size:32px}
  .vila-world-modal__head-copy{grid-column:1 / -1}
  .vila-world-modal__eyebrow{font-size:11px;margin-bottom:7px}
  .vila-world-modal__head h2{font-size:clamp(37px,13vw,60px);line-height:.9}
  .vila-world-modal__intro{margin-top:13px;font-size:16px;line-height:1.45}
  .vila-world-modal__collection{display:block;width:100%;padding:0 0 46px}
  .vila-world-modal__item{margin:0 0 34px}
  .vila-world-modal__item:first-child{margin-top:0}
  .vila-world-modal__item img{width:100%;max-height:none;object-fit:contain}
  .vila-world-modal__item figcaption{margin:10px 16px 0;padding-top:9px;grid-template-columns:52px minmax(0,1fr);gap:10px;font-size:13px}
  .vila-world-modal__foot{padding:23px 16px 34px}
}

/* V3.1.40 — consistent Location Viewer image system */
@media (min-width: 761px){
  .vila-world-modal__collection{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:clamp(28px,3vw,46px)!important;
    width:min(1440px,100%)!important;
  }
  .vila-world-modal__item,
  .vila-world-modal__item:first-child,
  .vila-world-modal__item:nth-child(4n+2),
  .vila-world-modal__item:nth-child(4n+3),
  .vila-world-modal__item:nth-child(4n){
    grid-column:auto!important;
    width:100%!important;
    margin:0!important;
  }
  .vila-world-modal__item img,
  .vila-world-modal__item:first-child img{
    width:100%!important;
    aspect-ratio:16/9!important;
    height:auto!important;
    max-height:none!important;
    object-fit:cover!important;
    object-position:center!important;
  }
}

@media (max-width:760px){
  .vila-world-modal__item img,
  .vila-world-modal__item:first-child img{
    width:100%!important;
    aspect-ratio:4/3!important;
    height:auto!important;
    max-height:none!important;
    object-fit:cover!important;
    object-position:center!important;
  }
}

/* V3.1.41 — location hero + naturally nested mixed-format gallery */
.vila-world-modal__hero{
  width:min(1500px,100%);
  margin:0 auto;
  padding:clamp(28px,4vw,64px) clamp(22px,4vw,64px) 0;
}
.vila-world-modal__hero[hidden]{display:none!important}
.vila-world-modal__hero-figure{margin:0}
.vila-world-modal__hero-figure img{
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  background:transparent;
}
.vila-world-modal__hero-figure figcaption{
  max-width:62ch;
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid var(--rule,#C9C5BA);
  font-family:var(--serif);
  font-size:13px;
  line-height:1.45;
}

@media (min-width:761px){
  .vila-world-modal__collection{
    display:block!important;
    columns:2;
    column-gap:clamp(18px,3vw,42px);
    width:min(1500px,100%)!important;
    padding-top:clamp(28px,3vw,48px)!important;
  }
  .vila-world-modal__item,
  .vila-world-modal__item:first-child,
  .vila-world-modal__item:nth-child(4n+2),
  .vila-world-modal__item:nth-child(4n+3),
  .vila-world-modal__item:nth-child(4n){
    display:inline-block!important;
    width:100%!important;
    grid-column:auto!important;
    margin:0 0 clamp(18px,3vw,42px)!important;
    break-inside:avoid;
    page-break-inside:avoid;
  }
  .vila-world-modal__item img,
  .vila-world-modal__item:first-child img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    object-fit:contain!important;
    object-position:center!important;
  }
}

@media (max-width:760px){
  .vila-world-modal__hero{padding:0}
  .vila-world-modal__hero-figure img{
    width:100%!important;
    height:auto!important;
    aspect-ratio:auto!important;
    object-fit:contain!important;
  }
  .vila-world-modal__hero-figure figcaption{margin:10px 16px 0}
  .vila-world-modal__collection{display:block!important;padding-top:28px!important}
  .vila-world-modal__item img,
  .vila-world-modal__item:first-child img{
    width:100%!important;
    height:auto!important;
    aspect-ratio:auto!important;
    object-fit:contain!important;
  }
}


/* V3.1.47 — cinematic horizontal location world viewer */
.vila-world-modal__dialog{grid-template-rows:auto minmax(0,1fr)!important}
.vila-world-modal__stage{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;padding:12px 0 14px}
.vila-world-modal__progress{padding:0 clamp(22px,3vw,52px) 8px;font-family:var(--serif);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.03em;color:var(--muted,#6D6A63);text-align:right}
.vila-world-modal__viewport{min-height:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;cursor:grab;touch-action:none;outline:none;-webkit-user-select:none;user-select:none}
.vila-world-modal__viewport::-webkit-scrollbar{display:none}
.vila-world-modal__viewport.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.vila-world-modal__track{display:flex;align-items:flex-start;gap:clamp(18px,2.2vw,34px);width:max-content;min-width:100%;height:100%;padding:0 clamp(22px,4vw,64px)}
.vila-world-modal__slide{flex:0 0 auto;margin:0;scroll-snap-align:center;scroll-snap-stop:normal;max-width:min(86vw,1180px)}
.vila-world-modal__media{height:min(61vh,720px);display:flex;align-items:center;justify-content:flex-start}
.vila-world-modal__slide img{display:block;width:auto!important;height:auto!important;max-width:min(82vw,1180px)!important;max-height:100%!important;aspect-ratio:auto!important;object-fit:contain!important;object-position:center!important;background:transparent;box-shadow:none}
.vila-world-modal__slide.is-hero img{max-width:min(88vw,1320px)!important}
.vila-world-modal__slide figcaption{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;max-width:min(62ch,100%);margin-top:10px;padding-top:9px;border-top:1px solid var(--rule,#C9C5BA);font-family:var(--serif);font-size:13px;line-height:1.45}
.vila-world-modal__item-number{font-variant-numeric:tabular-nums;color:var(--muted,#6D6A63)}
.vila-world-modal__item-copy{max-width:52ch}
.vila-world-modal__hint{padding:10px clamp(22px,3vw,52px) 0;font-family:var(--serif);font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--muted,#6D6A63);text-align:right}

@media (min-width:761px){
  .vila-world-modal__slide:first-child{margin-left:clamp(0px,3vw,42px)}
  .vila-world-modal__slide:last-child{margin-right:clamp(32px,8vw,130px)}
}

@media (max-width:760px){
  .vila-world-modal__head{padding-bottom:14px!important}
  .vila-world-modal__return{margin-bottom:16px!important}
  .vila-world-modal__head h2{font-size:clamp(32px,11vw,50px)!important}
  .vila-world-modal__intro{font-size:14px!important;line-height:1.4!important;max-width:34ch}
  .vila-world-modal__stage{padding:8px 0 10px}
  .vila-world-modal__progress{padding:0 16px 7px;font-size:12px}
  .vila-world-modal__track{gap:14px;padding:0 16px}
  .vila-world-modal__slide{max-width:calc(100vw - 48px)}
  .vila-world-modal__media{height:min(57vh,560px);min-height:280px}
  .vila-world-modal__slide img,
  .vila-world-modal__slide.is-hero img{max-width:calc(100vw - 48px)!important;max-height:100%!important;width:auto!important;height:auto!important;object-fit:contain!important}
  .vila-world-modal__slide figcaption{grid-template-columns:38px minmax(0,1fr);gap:8px;margin-top:9px;font-size:12px;line-height:1.4}
  .vila-world-modal__hint{padding:8px 16px 0;font-size:10px}
}

/* V3.1.49 — resilient navigation for immersive location viewer */
.vila-world-modal__viewer-shell{
  position:relative;
  min-height:0;
  overflow:hidden;
}
.vila-world-modal__viewport{
  width:100%;
  height:100%;
  touch-action:pan-x pinch-zoom!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  scroll-behavior:auto;
}
.vila-world-modal__nav{
  position:absolute;
  top:50%;
  z-index:30;
  width:48px;
  height:64px;
  transform:translateY(-50%);
  border:0;
  background:rgba(241,238,230,.88);
  color:var(--ink,#171717);
  font:400 26px/1 var(--serif);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.vila-world-modal__prev{left:8px}
.vila-world-modal__next{right:8px}
.vila-world-modal__nav:disabled{opacity:.22;cursor:default}
.vila-world-modal__head,
.vila-world-modal__close,
.vila-world-modal__return{position:relative;z-index:50}
.vila-world-modal__slide img{pointer-events:none}

@media (max-width:700px){
  .vila-world-modal__nav{
    width:42px;
    height:54px;
    background:rgba(241,238,230,.82);
    font-size:22px;
  }
  .vila-world-modal__prev{left:4px}
  .vila-world-modal__next{right:4px}
  .vila-world-modal__hint{display:none!important}
}

/* V3.1.50 — reliable drag / swipe / wheel interaction */
.vila-world-modal__viewport{
  touch-action:pan-y pinch-zoom!important;
  cursor:grab!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
}
.vila-world-modal__viewport.is-dragging{
  cursor:grabbing!important;
  scroll-snap-type:none!important;
}
.vila-world-modal__slide,
.vila-world-modal__slide img,
.vila-world-modal__media{
  -webkit-user-drag:none;
  user-select:none;
}

/* V3.1.52 — photographic magnifying loupe */
.vila-world-modal__media{position:relative}
.vila-world-modal__zoom{
  position:absolute;
  right:14px;
  bottom:14px;
  z-index:24;
  width:42px;
  height:42px;
  padding:0;
  border:1px solid rgba(241,238,230,.78);
  border-radius:50%;
  background:rgba(23,23,23,.72);
  color:#F1EEE6;
  display:grid;
  place-items:center;
  cursor:pointer;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  transition:transform .16s ease,background .16s ease;
}
.vila-world-modal__zoom:hover,.vila-world-modal__zoom:focus-visible{transform:scale(1.07);background:#171717;outline:none}
.vila-world-modal__zoom[aria-pressed="true"]{background:#F1EEE6;color:#171717;border-color:#171717}
.vila-world-modal__zoom svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.vila-world-modal__lens{
  position:absolute;
  z-index:23;
  width:180px;
  height:180px;
  border-radius:50%;
  border:2px solid #F1EEE6;
  background-repeat:no-repeat;
  box-shadow:0 8px 30px rgba(0,0,0,.28),inset 0 0 0 1px rgba(23,23,23,.35);
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transform:scale(.94);
  transition:opacity .1s ease,transform .1s ease,visibility .1s ease;
}
.vila-world-modal__lens.is-visible{opacity:1;visibility:visible;transform:scale(1)}
.vila-world-modal__media.is-magnifying{cursor:crosshair;touch-action:none}
.vila-world-modal__media.is-magnifying img{cursor:crosshair}
@media (max-width:760px){
  .vila-world-modal__zoom{width:40px;height:40px;right:10px;bottom:10px}
  .vila-world-modal__lens{width:148px;height:148px}
}


/* V3.1.55 — reliable loupe interaction above slider gesture layer */
.vila-world-modal__media{isolation:isolate!important}
.vila-world-modal__media img{position:relative;z-index:1}
.vila-world-modal__lens{z-index:40!important}
.vila-world-modal__zoom{z-index:50!important;pointer-events:auto!important;touch-action:manipulation!important}
.vila-world-modal__media.is-magnifying{touch-action:none!important}

/* V3.1.56 — larger immersive photographic loupe */
.vila-world-modal__lens{
  width:310px!important;
  height:310px!important;
  border-width:2px!important;
  box-shadow:0 12px 42px rgba(0,0,0,.30),inset 0 0 0 1px rgba(23,23,23,.35)!important;
}
@media (max-width:760px){
  .vila-world-modal__lens{
    width:min(48vw,240px)!important;
    height:min(48vw,240px)!important;
  }
}

/* V3.1.57 — MOBILE LOCATION VIEWER REDESIGN
   Mobile: tap location name = reveal pin. Tap pin = enter location.
   Viewer: native full-screen swipe, very large imagery, fixed escape controls. */
@media (max-width:900px){
  body.vila-world-modal-open{
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  .vila-world-modal,
  .vila-world-modal.is-open{
    width:100vw!important;
    height:100dvh!important;
    min-height:100dvh!important;
  }
  .vila-world-modal__dialog{
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    min-height:100dvh!important;
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr)!important;
    overflow:hidden!important;
  }
  .vila-world-modal__head{
    position:relative!important;
    z-index:100!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 44px!important;
    gap:8px 12px!important;
    padding:12px 14px 12px!important;
    background:var(--paper,#F1EEE6)!important;
    border-bottom:1px solid var(--rule,#C9C5BA)!important;
  }
  .vila-world-modal__return{
    grid-column:1!important;
    grid-row:1!important;
    margin:0!important;
    min-height:36px!important;
    display:flex!important;
    align-items:center!important;
    font-size:12px!important;
    line-height:1!important;
  }
  .vila-world-modal__close{
    position:relative!important;
    grid-column:2!important;
    grid-row:1!important;
    width:40px!important;
    height:40px!important;
    margin:-2px -2px 0 auto!important;
    font-size:32px!important;
    line-height:1!important;
    z-index:120!important;
  }
  .vila-world-modal__head-copy{
    grid-column:1 / -1!important;
    grid-row:2!important;
    min-width:0!important;
  }
  .vila-world-modal__eyebrow{
    margin:0 0 4px!important;
    font-size:10px!important;
    line-height:1.1!important;
  }
  .vila-world-modal__head h2{
    margin:0!important;
    font-size:clamp(28px,9.6vw,46px)!important;
    line-height:.92!important;
    letter-spacing:-.025em!important;
  }
  .vila-world-modal__intro{
    display:none!important;
  }
  .vila-world-modal__stage{
    position:relative!important;
    min-height:0!important;
    height:100%!important;
    display:grid!important;
    grid-template-rows:26px minmax(0,1fr) 26px!important;
    padding:0!important;
    overflow:hidden!important;
  }
  .vila-world-modal__progress{
    position:relative!important;
    z-index:20!important;
    padding:7px 14px 0!important;
    font-size:11px!important;
    line-height:1!important;
    text-align:right!important;
    background:var(--paper,#F1EEE6)!important;
  }
  .vila-world-modal__viewer-shell{
    position:relative!important;
    min-height:0!important;
    height:100%!important;
    overflow:hidden!important;
  }
  .vila-world-modal__viewport{
    width:100vw!important;
    height:100%!important;
    min-height:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    scroll-snap-type:x mandatory!important;
    scroll-behavior:smooth!important;
    touch-action:pan-x!important;
    cursor:auto!important;
  }
  .vila-world-modal__viewport.is-dragging{
    cursor:auto!important;
    scroll-snap-type:x mandatory!important;
  }
  .vila-world-modal__track{
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
    width:max-content!important;
    min-width:100%!important;
    height:100%!important;
    padding:0 8px!important;
  }
  .vila-world-modal__slide,
  .vila-world-modal__slide:first-child,
  .vila-world-modal__slide:last-child{
    flex:0 0 calc(100vw - 16px)!important;
    width:calc(100vw - 16px)!important;
    max-width:none!important;
    height:100%!important;
    margin:0!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    scroll-snap-align:center!important;
    scroll-snap-stop:always!important;
  }
  .vila-world-modal__media{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:calc(100dvh - 170px)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:visible!important;
  }
  .vila-world-modal__slide img,
  .vila-world-modal__slide.is-hero img{
    display:block!important;
    width:auto!important;
    height:auto!important;
    max-width:100%!important;
    max-height:calc(100dvh - 170px)!important;
    object-fit:contain!important;
    object-position:center!important;
    aspect-ratio:auto!important;
  }
  .vila-world-modal__slide figcaption{
    flex:0 0 auto!important;
    width:calc(100% - 20px)!important;
    max-width:none!important;
    margin:8px 10px 0!important;
    padding-top:7px!important;
    grid-template-columns:34px minmax(0,1fr)!important;
    gap:8px!important;
    font-size:11px!important;
    line-height:1.3!important;
  }
  .vila-world-modal__hint{
    display:block!important;
    padding:7px 14px 0!important;
    font-size:9px!important;
    line-height:1!important;
    text-align:center!important;
    background:var(--paper,#F1EEE6)!important;
  }
  .vila-world-modal__nav{
    position:absolute!important;
    z-index:80!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:42px!important;
    height:58px!important;
    border:0!important;
    background:rgba(241,238,230,.9)!important;
    color:var(--ink,#171717)!important;
    font-size:25px!important;
    line-height:1!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    box-shadow:none!important;
  }
  .vila-world-modal__prev{left:0!important}
  .vila-world-modal__next{right:0!important}
  .vila-world-modal__zoom{
    width:44px!important;
    height:44px!important;
    right:8px!important;
    bottom:8px!important;
  }
  .vila-world-modal__lens{
    width:min(52vw,230px)!important;
    height:min(52vw,230px)!important;
  }
}


/* V3.1.58 — MOBILE LOCATION VIEWER: VERTICAL WORLD
   Desktop remains the cinematic horizontal strip. Mobile becomes a native vertical archive. */
@media (max-width:900px){
  .vila-world-modal__dialog{
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
  }
  .vila-world-modal__head{
    flex:0 0 auto!important;
  }
  .vila-world-modal__stage{
    flex:1 1 auto!important;
    min-height:0!important;
    display:block!important;
    overflow:hidden!important;
    position:relative!important;
  }
  .vila-world-modal__progress{
    position:absolute!important;
    top:8px!important;
    right:12px!important;
    z-index:60!important;
    width:auto!important;
    padding:5px 7px!important;
    background:rgba(241,238,230,.88)!important;
  }
  .vila-world-modal__viewer-shell{
    width:100%!important;
    height:100%!important;
    overflow:hidden!important;
  }
  .vila-world-modal__viewport{
    width:100%!important;
    height:100%!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    scroll-snap-type:none!important;
    scroll-behavior:smooth!important;
    touch-action:pan-y!important;
    cursor:auto!important;
  }
  .vila-world-modal__track{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    padding:16px 0 52px!important;
  }
  .vila-world-modal__slide,
  .vila-world-modal__slide:first-child,
  .vila-world-modal__slide:last-child{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    margin:0 0 28px!important;
    padding:0!important;
    scroll-snap-align:none!important;
  }
  .vila-world-modal__media{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .vila-world-modal__slide img,
  .vila-world-modal__slide.is-hero img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:contain!important;
    aspect-ratio:auto!important;
  }
  .vila-world-modal__slide figcaption{
    width:auto!important;
    margin:9px 14px 0!important;
  }
  .vila-world-modal__nav,
  .vila-world-modal__hint{
    display:none!important;
  }
  .vila-world-modal__zoom{
    right:12px!important;
    bottom:12px!important;
  }
  .vila-world-modal__media.is-magnifying{
    touch-action:none!important;
  }
}

/* V3.1.59 — mobile map interaction repair
   Keep the map as part of the vertical page flow and preserve the locked black pin design. */
.vila-map-layout.has-location-index .vila-location__marker,
.vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker,
.vila-map-layout.has-location-index .vila-location__marker:hover,
.vila-map-layout.has-location-index .vila-location__marker:focus-visible{
  background:#171717!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.95)!important;
  box-shadow:0 2px 7px rgba(0,0,0,.24)!important;
  border-radius:50% 50% 50% 0!important;
  transform:rotate(-45deg)!important;
}
.vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker:hover,
.vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker:focus-visible{
  transform:rotate(-45deg) scale(1.08)!important;
}
.vila-map-layout.has-location-index .vila-location__marker span,
.vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker span{
  color:#fff!important;
  transform:rotate(45deg)!important;
}

@media(max-width:900px){
  /* The map must never trap the page's vertical swipe. */
  .vila-map-layout__visual,
  .vila-static-map,
  .vila-compare{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    overflow-y:visible!important;
    touch-action:pan-y pinch-zoom!important;
    overscroll-behavior:auto!important;
    -webkit-overflow-scrolling:auto!important;
  }
  .vila-static-map>img,
  .vila-compare__image>img{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
  }
  /* Markers remain tappable without turning the whole map into a gesture surface. */
  .vila-location,
  .vila-location__marker{
    touch-action:manipulation!important;
  }
}

/* V3.1.60 — restore canonical Vila Lata pin: black drop + white circular centre */
.vila-map-layout.has-location-index .vila-location__marker,
.vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker,
.vila-map-layout.has-location-index .vila-location__marker:hover,
.vila-map-layout.has-location-index .vila-location__marker:focus-visible{
  width:32px!important;
  height:32px!important;
  padding:0!important;
  background:#171717!important;
  border:0!important;
  border-radius:50% 50% 50% 0!important;
  box-shadow:0 2px 8px rgba(0,0,0,.28)!important;
  transform:rotate(-45deg)!important;
  display:grid!important;
  place-items:center!important;
}
.vila-map-layout.has-location-index .vila-location__marker span,
.vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker span{
  width:19px!important;
  height:19px!important;
  border-radius:50%!important;
  background:#fff!important;
  color:#171717!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  transform:rotate(45deg)!important;
  font-family:var(--serif)!important;
  font-size:9px!important;
  font-weight:700!important;
  line-height:1!important;
  box-sizing:border-box!important;
}
.vila-map-layout.has-location-index .vila-location__marker:hover,
.vila-map-layout.has-location-index .vila-location__marker:focus-visible,
.vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker{
  transform:rotate(-45deg) scale(1.08)!important;
}
@media(max-width:900px){
  .vila-map-layout.has-location-index .vila-location__marker,
  .vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker{
    width:30px!important;
    height:30px!important;
  }
  .vila-map-layout.has-location-index .vila-location__marker span,
  .vila-map-layout.has-location-index .vila-location.is-active .vila-location__marker span{
    width:18px!important;
    height:18px!important;
    font-size:8px!important;
  }
}

/* =========================================================
   V3.1.61 — MEET THE LOCALS mobile horizontal slider
   Native swipe/scroll with a visible next-card peek.
   Desktop/tablet grid remains unchanged.
   ========================================================= */
@media(max-width:600px){
  .locals-salon{
    overflow:hidden!important;
  }
  .locals-salon__wall{
    display:flex!important;
    grid-template-columns:none!important;
    gap:16px!important;
    width:calc(100% + 20px)!important;
    max-width:none!important;
    margin:0!important;
    padding:0 20px 12px 0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    scroll-padding-left:0!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
  }
  .locals-salon__wall::-webkit-scrollbar{
    display:none;
  }
  .locals-salon__wall .salon-local,
  .locals-salon__wall .salon-local:nth-child(n){
    flex:0 0 min(76vw,330px)!important;
    width:min(76vw,330px)!important;
    min-width:min(76vw,330px)!important;
    margin:0!important;
    scroll-snap-align:start!important;
    scroll-snap-stop:normal!important;
  }
  .locals-salon__wall .salon-local__portrait{
    width:100%!important;
    aspect-ratio:4/5!important;
  }
  .locals-salon__wall .salon-local__label{
    padding-top:10px!important;
  }
}


/* =========================================================
   V3.1.62 — MEET THE LOCALS horizontal slider, all screens
   Desktop: ~3 cards visible with drag / wheel / arrows.
   Mobile: native swipe with a strong next-card peek.
   ========================================================= */
.locals-salon{
  position:relative!important;
  overflow:hidden!important;
}
.locals-slider__nav{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin:-24px 0 18px;
}
.locals-slider__nav button{
  appearance:none;
  width:42px;
  height:42px;
  border:1px solid var(--rule,#c9c5ba);
  border-radius:50%;
  background:transparent;
  color:var(--ink,#171717);
  font:400 21px/1 var(--serif);
  cursor:pointer;
  display:grid;
  place-items:center;
}
.locals-slider__nav button:hover,
.locals-slider__nav button:focus-visible{
  background:var(--ink,#171717);
  color:var(--paper,#f1eee6);
  outline:none;
}
.locals-salon__wall{
  display:flex!important;
  grid-template-columns:none!important;
  align-items:flex-start!important;
  gap:clamp(18px,2vw,30px)!important;
  width:calc(100% + clamp(20px,3vw,48px))!important;
  max-width:none!important;
  margin:0!important;
  padding:0 clamp(20px,3vw,48px) 16px 0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory!important;
  scroll-padding-inline:0!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  scrollbar-width:none;
  cursor:grab;
  touch-action:pan-x pan-y pinch-zoom;
}
.locals-salon__wall::-webkit-scrollbar{display:none}
.locals-salon__wall.is-dragging{
  cursor:grabbing;
  scroll-snap-type:none!important;
  user-select:none;
}
.locals-salon__wall .salon-local,
.locals-salon__wall .salon-local:nth-child(n){
  flex:0 0 clamp(270px,29vw,430px)!important;
  width:clamp(270px,29vw,430px)!important;
  min-width:clamp(270px,29vw,430px)!important;
  grid-column:auto!important;
  margin:0!important;
  scroll-snap-align:start!important;
  scroll-snap-stop:normal!important;
}
.locals-salon__wall .salon-local__portrait{
  width:100%!important;
}
@media(max-width:900px){
  .locals-salon__wall .salon-local,
  .locals-salon__wall .salon-local:nth-child(n){
    flex-basis:min(48vw,360px)!important;
    width:min(48vw,360px)!important;
    min-width:min(48vw,360px)!important;
  }
}
@media(max-width:600px){
  .locals-slider__nav{display:none!important}
  .locals-salon__wall{
    width:calc(100% + 20px)!important;
    gap:16px!important;
    padding:0 20px 12px 0!important;
    cursor:auto!important;
    touch-action:pan-x pan-y pinch-zoom!important;
  }
  .locals-salon__wall .salon-local,
  .locals-salon__wall .salon-local:nth-child(n){
    flex:0 0 min(76vw,330px)!important;
    width:min(76vw,330px)!important;
    min-width:min(76vw,330px)!important;
  }
}


/* =========================================================
   V3.1.63 — MEET THE LOCALS slider architecture repair
   Dedicated viewport owns scrolling; legacy salon wall becomes track.
   ========================================================= */
.locals-slider__viewport{
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory!important;
  scrollbar-width:none!important;
  overscroll-behavior-x:contain;
  touch-action:pan-x pan-y!important;
  cursor:grab;
}
.locals-slider__viewport::-webkit-scrollbar{display:none!important}
.locals-slider__viewport.is-dragging{
  cursor:grabbing!important;
  scroll-snap-type:none!important;
  user-select:none!important;
}
.locals-salon__wall.locals-slider__track{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:flex-start!important;
  width:max-content!important;
  min-width:100%!important;
  max-width:none!important;
  overflow:visible!important;
  padding:0 0 16px 0!important;
  margin:0!important;
  gap:clamp(18px,2vw,30px)!important;
  scroll-snap-type:none!important;
  cursor:inherit!important;
  touch-action:auto!important;
}
.locals-salon__wall.locals-slider__track .salon-local,
.locals-salon__wall.locals-slider__track .salon-local:nth-child(n){
  flex:0 0 clamp(280px,29vw,420px)!important;
  width:clamp(280px,29vw,420px)!important;
  min-width:clamp(280px,29vw,420px)!important;
  max-width:none!important;
  grid-column:auto!important;
  margin:0!important;
  scroll-snap-align:start!important;
}
@media(max-width:900px){
  .locals-salon__wall.locals-slider__track .salon-local,
  .locals-salon__wall.locals-slider__track .salon-local:nth-child(n){
    flex-basis:min(48vw,360px)!important;
    width:min(48vw,360px)!important;
    min-width:min(48vw,360px)!important;
  }
}
@media(max-width:600px){
  .locals-slider__viewport{
    width:calc(100% + 20px)!important;
    max-width:none!important;
    padding-right:20px!important;
    cursor:auto!important;
  }
  .locals-salon__wall.locals-slider__track{
    gap:16px!important;
    padding-bottom:12px!important;
  }
  .locals-salon__wall.locals-slider__track .salon-local,
  .locals-salon__wall.locals-slider__track .salon-local:nth-child(n){
    flex:0 0 min(76vw,330px)!important;
    width:min(76vw,330px)!important;
    min-width:min(76vw,330px)!important;
  }
}

/* =========================================================
   V3.1.65 — MEET THE LOCALS image containment repair
   Keep character artwork strictly inside each slider card.
   ========================================================= */
.locals-salon__wall.locals-slider__track .salon-local{
  box-sizing:border-box!important;
  overflow:hidden!important;
  min-width:0!important;
}
.locals-salon__wall.locals-slider__track .salon-local__portrait{
  position:relative!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  aspect-ratio:4/5!important;
  height:auto!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.locals-salon__wall.locals-slider__track .salon-local__image{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  height:100%!important;
  max-height:100%!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
  box-sizing:border-box!important;
}


/* =========================================================
   V3.1.66 — PERFORMANCE: still-image episode posters
   Episode MP4s are requested only after WATCH is pressed.
   ========================================================= */
.episode-preview-image,
.latest-episode__media .episode-preview-image,
.episode-poster .episode-preview-image{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
}
.episode-poster-fallback{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  background:#cfc9bd!important;
}
