/* =============================================================================
   ve-city.css — CITY master template (ve-05 destination-pages phase).
   Rides on ve-home-v2.css (tokens, widget, vc cards) + ve-shead.css (band).
   Section rhythm follows the standard: alternating cream/blush grounds, one
   focal point each, 8px scale. Scoped: veh2-city* / vstory / vwed / vfaq / vclose.
   ============================================================================= */

/* ---- villas grid head: title left, all-link right --------------------------- */
.veh2-cityvillas .vc-city-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.veh2-cityvillas .vc-alllink,
.veh2-page .o-link{display:inline-flex;align-items:flex-end;gap:8px;min-height:44px;
  font-family:var(--sans);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--navy);border-bottom:1px solid var(--terra);padding-bottom:4px;transition:color .2s}
.veh2-cityvillas .vc-alllink .arw,.veh2-page .o-link .arw{color:var(--terra-deep);transition:transform .2s}
.veh2-cityvillas .vc-alllink:hover,.veh2-page .o-link:hover{color:var(--terra-text)}
.veh2-cityvillas .vc-alllink:hover .arw,.veh2-page .o-link:hover .arw{transform:translateX(4px)}

/* ---- v3 promo: the DESIGNED offer card (photo | content, soft lift on hover;
        recreates the production banner Oliver gated). Removable via config. ---- */
.veh2-citypromo2{background:var(--cream);padding:clamp(28px,4vh,48px) 0 0}
.veh2-citypromo2 .wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.veh2-citypromo2 .vpromo-card{display:grid;grid-template-columns:.9fr 1.1fr;background:#fff;
  border-radius:2px;overflow:hidden;box-shadow:0 26px 54px -30px rgba(26,33,66,.28);
  transition:box-shadow .4s ease,transform .4s ease}
.veh2-citypromo2 .vpromo-card:hover{transform:translateY(-3px);box-shadow:0 34px 64px -30px rgba(26,33,66,.34)}
.veh2-citypromo2 .vpromo-fig{position:relative;margin:0;min-height:280px}
.veh2-citypromo2 .vpromo-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.veh2-citypromo2 .vpromo-tag{position:absolute;left:18px;bottom:14px;font-family:var(--serif);
  font-style:italic;font-weight:400;font-size:clamp(17px,1.7vw,21px);color:#FEFBF7;
  text-shadow:0 1px 14px rgba(16,20,38,.6)}
.veh2-citypromo2 .vpromo-body{padding:clamp(30px,4vw,56px);display:grid;gap:14px;align-content:center;justify-items:start}
.veh2-citypromo2 .vpromo-head{font-family:var(--serif);font-weight:400;letter-spacing:-0.015em;line-height:1.02;
  font-size:clamp(28px,3.4vw,46px);color:var(--navy)}
.veh2-citypromo2 .vpromo-head em{font-style:italic;color:var(--terra-deep)}
.veh2-citypromo2 .vpromo-sub{font-family:var(--serif);font-style:italic;font-size:clamp(15.5px,1.5vw,17.5px);line-height:1.55;color:var(--slate);max-width:48ch}
/* the save badge — Oliver's circular mark, in the house faces */
.veh2-citypromo2 .vpromo-badge{position:absolute;left:24px;bottom:24px;width:106px;height:106px;border-radius:50%;
  background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2;
  box-shadow:0 14px 30px rgba(16,20,38,.24)}
.veh2-citypromo2 .vpromo-badge .b-up{font-family:var(--serif);font-style:italic;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--slate);line-height:1}
.veh2-citypromo2 .vpromo-badge .b-num{font-family:var(--serif);font-style:italic;font-weight:500;font-size:42px;line-height:1;color:var(--terra-deep);margin:3px 0}
.veh2-citypromo2 .vpromo-badge .b-num sup{font-size:20px}
.veh2-citypromo2 .vpromo-badge .b-down{font-family:var(--sans);font-weight:500;font-size:9.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--navy)}
.veh2-citypromo2 .vpromo-tag small{display:block;font-family:var(--sans);font-style:normal;font-weight:500;
  font-size:9px;letter-spacing:.28em;text-transform:uppercase;margin-top:5px;color:rgba(254,251,247,.85)}
/* the stats hairline row */
.veh2-citypromo2 .vpromo-stats{list-style:none;margin:6px 0 4px;padding:16px 0;display:flex;gap:28px;width:100%;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.veh2-citypromo2 .vpromo-stats li{flex:1;text-align:center;display:grid;gap:5px}
.veh2-citypromo2 .vpromo-stats .s-v{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(21px,2vw,26px);line-height:1;color:var(--navy)}
.veh2-citypromo2 .vpromo-stats .s-k{font-family:var(--sans);font-weight:500;font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--slate)}
/* CTA pill (terracotta, house discipline) */
.veh2-citypromo2 .vpromo-cta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 30px;
  border-radius:999px;background:var(--terra);color:#fff;font-family:var(--sans);font-weight:500;font-size:12px;
  letter-spacing:.18em;text-transform:uppercase;transition:background .2s;margin-top:6px}
.veh2-citypromo2 .vpromo-card:hover .vpromo-cta{background:var(--terra-hover)}
@media(max-width:800px){.veh2-citypromo2 .vpromo-card{grid-template-columns:1fr}.veh2-citypromo2 .vpromo-fig{min-height:250px}
  .veh2-citypromo2 .vpromo-badge{width:90px;height:90px;left:18px;bottom:18px}
  .veh2-citypromo2 .vpromo-badge .b-num{font-size:34px}}

/* ---- flagship hero: Magnifico, one full row ----------------------------------- */
.veh2-cityflagships .vflag-hero{display:block;margin-bottom:clamp(44px,6vh,80px)}
.veh2-cityflagships .vflag-hero-fig{position:relative;overflow:hidden;border-radius:2px;background:var(--warm2);aspect-ratio:21/9}
.veh2-cityflagships .vflag-hero-fig img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.veh2-cityflagships .vflag-hero:hover .vflag-hero-fig img{transform:scale(1.04)}
.veh2-cityflagships .vflag-hero-cap{padding-top:clamp(22px,3vh,34px);display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,4vw,64px);align-items:start}
.veh2-cityflagships .vflag-hero-name{font-family:var(--serif);font-weight:400;letter-spacing:-0.015em;line-height:.98;
  font-size:clamp(42px,5.6vw,72px);color:var(--navy);margin-top:8px;transition:color .2s}
.veh2-cityflagships .vflag-hero:hover .vflag-hero-name{color:var(--terra-text)}
.veh2-cityflagships .vflag-hero-body{display:grid;gap:14px;justify-items:start}
.veh2-cityflagships .vflag-tag{font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(16.5px,1.7vw,20px);line-height:1.5;color:var(--slate);max-width:52ch}
.veh2-cityflagships .vc-card .vflag-tag{font-size:clamp(15.5px,1.5vw,18px);margin:2px 0 4px}
.veh2-cityflagships .vflag-grid{margin-top:0}
@media(max-width:800px){.veh2-cityflagships .vflag-hero-fig{aspect-ratio:5/4}
  .veh2-cityflagships .vflag-hero-cap{grid-template-columns:1fr;gap:16px}}

/* ---- v3 neighborhoods: their own photo cards (blush ground) ------------------ */
.veh2-areas3{background:var(--blush)}
.veh2-areas3 .vnbc{padding:clamp(56px,9vh,120px) 0}
.veh2-areas3 .wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.veh2-areas3 .vnbc-head{display:grid;gap:14px;margin-bottom:clamp(28px,4vh,52px)}
.veh2-areas3 .vnbc-title{font-family:var(--serif);font-weight:400;letter-spacing:-0.015em;line-height:.98;
  font-size:clamp(38px,5.4vw,72px);color:var(--navy)}
.veh2-areas3 .vnbc-title em{font-style:italic;color:var(--terra-deep)}
.veh2-areas3 .vnbc-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,40px)}
.veh2-areas3 .vnbc-card:nth-child(4):not(.vnbc-card--wide),.veh2-areas3 .vnbc-card:nth-child(5):not(.vnbc-card--wide){grid-column:span 1}
/* full-row destination card (Oliver: Tulum leads its own row; PM: Four Seasons).
   The positional rule above excludes --wide so the marquee always spans. */
.veh2-areas3 .vnbc-card--wide{grid-column:1/-1}
.veh2-areas3 .vnbc-card--wide .vnbc-fig{aspect-ratio:21/8}
.veh2-areas3 .vnbc-card--wide .vnbc-name{font-size:clamp(26px,2.8vw,38px)}
.veh2-areas3 .vnbc-card--wide .vnbc-desc{max-width:58ch}
@media(max-width:560px){.veh2-areas3 .vnbc-card--wide .vnbc-fig{aspect-ratio:3/2}}
.veh2-areas3 .vnbc-fig{margin:0;overflow:hidden;border-radius:2px;background:var(--warm2);aspect-ratio:3/2}
.veh2-areas3 .vnbc-fig img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.veh2-areas3 .vnbc-card a:hover .vnbc-fig img{transform:scale(1.05)}
.veh2-areas3 .vnbc-name{font-family:var(--serif);font-weight:400;letter-spacing:-0.012em;line-height:1.1;
  font-size:clamp(22px,2.2vw,29px);color:var(--navy);margin:16px 0 6px;transition:color .2s}
.veh2-areas3 .vnbc-card a:hover .vnbc-name{color:var(--terra-text)}
.veh2-areas3 .vnbc-desc{font-family:var(--sans);font-size:clamp(14.5px,1.3vw,15.5px);line-height:1.55;color:var(--slate);max-width:38ch}
.veh2-areas3 .vnbc-count{display:inline-block;margin-top:10px;font-family:var(--sans);font-weight:500;
  font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--terra-text)}
.veh2-areas3 .vnbc-count .arw{color:var(--terra-deep);display:inline-block;transition:transform .2s}
.veh2-areas3 .vnbc-card a:hover .vnbc-count .arw{transform:translateX(4px)}
@media(max-width:900px){.veh2-areas3 .vnbc-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.veh2-areas3 .vnbc-grid{grid-template-columns:1fr}}

/* ---- v3 weddings: full-bleed immersive ---------------------------------------- */
.veh2-cityweddings2 .vwed2{position:relative;isolation:isolate;overflow:hidden;
  min-height:clamp(460px,74vh,700px);display:flex;align-items:flex-end}
.veh2-cityweddings2 .vwed2-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 38%;z-index:-1}
.veh2-cityweddings2 .vwed2::after{content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(to top,rgba(16,20,38,.72) 0%,rgba(16,20,38,.32) 42%,rgba(16,20,38,.10) 68%,rgba(16,20,38,.16) 100%)}
.veh2-cityweddings2 .vwed2-in{position:relative;z-index:1;width:100%;max-width:var(--maxw);margin:0 auto;
  padding:0 var(--pad) clamp(44px,7vh,72px);display:grid;gap:14px;justify-items:start}
.veh2-cityweddings2 .vwed2-in .kicker{color:#E7C9BB}
.veh2-cityweddings2 .vwed2-title{font-family:var(--serif);font-weight:400;letter-spacing:-0.015em;line-height:.98;
  font-size:clamp(40px,6vw,84px);color:#FEFBF7}
.veh2-cityweddings2 .vwed2-lede{font-family:var(--sans);font-size:clamp(16px,1.5vw,18px);line-height:1.6;
  color:var(--cream-ink);max-width:44ch;text-shadow:0 1px 12px rgba(16,20,38,.4)}
.veh2-cityweddings2 .vwed2-links{display:flex;gap:clamp(20px,3vw,40px);flex-wrap:wrap;margin-top:8px}
.veh2-cityweddings2 .vwed2-link{display:inline-flex;align-items:flex-end;gap:8px;min-height:44px;
  font-family:var(--sans);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--cream-ink);border-bottom:1px solid var(--terra);padding-bottom:4px;transition:color .2s}
.veh2-cityweddings2 .vwed2-link .arw{color:#E7C9BB;transition:transform .2s}
.veh2-cityweddings2 .vwed2-link:hover{color:#fff}
.veh2-cityweddings2 .vwed2-link:hover .arw{transform:translateX(4px)}
.veh2-cityweddings2 .vwed2-link:focus-visible{outline-color:var(--cream-ink)}
.veh2-cityweddings2 .vwed2-credit{font-family:var(--serif);font-style:italic;font-size:14px;color:rgba(254,251,247,.75);margin-top:6px}

/* ---- v3 letter: centered, the emotional voice --------------------------------- */
.veh2-cityletter2{background:var(--blush)}
.veh2-cityletter2 .vlet2{padding:clamp(64px,10vh,132px) 0}
.veh2-cityletter2 .wrap{max-width:900px;margin:0 auto;padding:0 var(--pad);text-align:center;display:grid;justify-items:center;gap:8px}
.veh2-cityletter2 .vlet2-quote{margin:10px 0 0}
.veh2-cityletter2 .vlet2-quote p{font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(26px,3.4vw,44px);line-height:1.22;letter-spacing:-0.012em;color:var(--navy)}
.veh2-cityletter2 .vlet2-mark{color:var(--terra-deep)}
.veh2-cityletter2 .vlet2-quote footer{margin-top:26px;display:flex;align-items:baseline;justify-content:center;gap:16px;flex-wrap:wrap}
.veh2-cityletter2 cite{font-family:var(--sans);font-style:normal;font-weight:500;font-size:14px;color:var(--navy)}
.veh2-cityletter2 .vlet2-meta{font-family:var(--sans);font-weight:500;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--terra-text)}
.veh2-cityletter2 .vlet2-links{display:flex;justify-content:center;gap:clamp(20px,3vw,40px);flex-wrap:wrap;margin-top:26px}

/* journal ground override for v3 (letter is blush now) */
.veh2-cityjournal--cream{background:var(--cream)}
.veh2-cityjournal--cream .vjr-fig{background:var(--blush)}

/* story photo is the couple frame — landscape 3:2 in v3 */
.veh2-citystory .vstory-photo img{aspect-ratio:3/2}

/* ---- neighborhoods: sticky photo + hairline Nº rows (svc language) ---------- */
.veh2-areas2{background:var(--blush)}
.veh2-areas2 .vnb{padding:clamp(56px,9vh,120px) 0}
.veh2-areas2 .wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.veh2-areas2 .vnb-head{display:grid;gap:14px;margin-bottom:clamp(32px,4.5vh,64px)}
.veh2-areas2 .vnb-title{font-family:var(--serif);font-weight:400;letter-spacing:-0.015em;line-height:.98;
  font-size:clamp(38px,5.4vw,72px);color:var(--navy)}
.veh2-areas2 .vnb-title em{font-style:italic;color:var(--terra-deep)}
.veh2-areas2 .vnb-split{display:grid;grid-template-columns:.95fr 1.15fr;gap:clamp(32px,4.5vw,64px);align-items:start}
.veh2-areas2 .vnb-photo{position:sticky;top:100px;margin:0}
.veh2-areas2 .vnb-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:2px}
.veh2-areas2 .vnb-photo figcaption{margin-top:14px;font-family:var(--serif);font-style:italic;font-size:15px;color:var(--slate)}
.veh2-areas2 .vnb-list{list-style:none;margin:0;padding:0}
.veh2-areas2 .vnb-item{border-top:1px solid var(--rule)}
.veh2-areas2 .vnb-item:first-child{border-top:0}
.veh2-areas2 .vnb-item a{display:grid;grid-template-columns:auto 1fr auto;gap:8px 18px;align-items:baseline;
  padding:clamp(20px,3vh,30px) 2px;transition:background .2s}
.veh2-areas2 .vnb-item .num{font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(22px,2vw,26px);line-height:1;color:var(--terra-deep)}
.veh2-areas2 .vnb-item h3{font-family:var(--serif);font-weight:400;letter-spacing:-0.012em;line-height:1.05;
  font-size:clamp(23px,2.4vw,32px);color:var(--navy);transition:color .2s}
.veh2-areas2 .vnb-item p{grid-column:2;font-family:var(--sans);font-size:clamp(14.5px,1.3vw,16px);
  line-height:1.55;color:var(--slate);max-width:44ch;margin-top:6px}
.veh2-areas2 .vnb-count{font-family:var(--sans);font-weight:500;font-size:11.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--terra-text);white-space:nowrap}
.veh2-areas2 .vnb-count .arw{color:var(--terra-deep);display:inline-block;transition:transform .2s}
.veh2-areas2 .vnb-item a:hover h3{color:var(--terra-text)}
.veh2-areas2 .vnb-item a:hover .vnb-count .arw{transform:translateX(4px)}
@media(max-width:900px){
  .veh2-areas2 .vnb-split{grid-template-columns:1fr}
  .veh2-areas2 .vnb-photo{position:static;max-width:440px}
}

/* ---- full-bleed editorial break ---------------------------------------------- */
.veh2-citybreak .vbreak{position:relative;isolation:isolate;overflow:hidden;
  min-height:clamp(380px,60vh,620px);display:flex;align-items:flex-end}
.veh2-citybreak .vbreak img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;
  object-position:center 76%} /* the coastline lives in the frame's lower third (Oliver) */
.veh2-citybreak .vbreak::after{content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(to top,rgba(16,20,38,.62) 0%,rgba(16,20,38,.18) 44%,rgba(16,20,38,.06) 70%)}
.veh2-citybreak .vbreak-line{position:relative;z-index:1;width:100%;max-width:var(--maxw);margin:0 auto;
  padding:0 var(--pad) clamp(40px,6vh,64px);font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(28px,3.6vw,48px);line-height:1.08;color:var(--cream-ink);letter-spacing:-0.012em}
.veh2-citybreak .vbreak-line em{color:#E7C9BB;font-style:italic}

/* ---- story: editorial split -------------------------------------------------- */
.veh2-citystory .vstory-split{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(36px,5vw,72px);align-items:center}
.veh2-citystory .vstory-photo{margin:0}
.veh2-citystory .vstory-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:2px}
.veh2-citystory .vstory-photo figcaption{margin-top:14px;font-family:var(--serif);font-style:italic;font-size:15px;color:var(--slate)}
@media(max-width:900px){.veh2-citystory .vstory-split{grid-template-columns:1fr}.veh2-citystory .vstory-photo{max-width:440px}}

/* ---- one guest letter -------------------------------------------------------- */
.veh2-cityletter{background:var(--cream)}
.veh2-cityletter .vlet{padding:clamp(56px,9vh,120px) 0}
.veh2-cityletter .wrap{max-width:860px;margin:0 auto;padding:0 var(--pad)}
.veh2-cityletter .vlet-quote{margin:22px 0 0;position:relative}
.veh2-cityletter .vlet-mark{position:absolute;left:-8px;top:-30px;font-family:var(--serif);
  font-size:110px;line-height:1;color:var(--terra);opacity:.55}
.veh2-cityletter .vlet-quote p{font-family:var(--serif);font-weight:400;font-style:normal;
  font-size:clamp(24px,2.9vw,38px);line-height:1.28;letter-spacing:-0.012em;color:var(--navy)}
.veh2-cityletter .vlet-quote footer{margin-top:22px;display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.veh2-cityletter cite{font-family:var(--sans);font-style:normal;font-weight:500;font-size:14px;color:var(--navy)}
.veh2-cityletter .vlet-meta{font-family:var(--sans);font-weight:500;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--terra-text)}
.veh2-cityletter .vlet-links{display:flex;gap:clamp(20px,3vw,40px);flex-wrap:wrap;margin-top:30px}

/* ---- journal cards ------------------------------------------------------------ */
.veh2-cityjournal{background:var(--blush)}
.veh2-cityjournal .vjr{padding:clamp(56px,9vh,120px) 0}
.veh2-cityjournal .wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.veh2-cityjournal .vjr-head{display:grid;gap:14px;margin-bottom:clamp(28px,4vh,52px)}
.veh2-cityjournal .vjr-title{font-family:var(--serif);font-weight:400;letter-spacing:-0.015em;line-height:.98;
  font-size:clamp(38px,5.4vw,72px);color:var(--navy)}
.veh2-cityjournal .vjr-title em{font-style:italic;color:var(--terra-deep)}
.veh2-cityjournal .vjr-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,40px)}
.veh2-cityjournal .vjr-fig{overflow:hidden;border-radius:2px;background:var(--warm2);aspect-ratio:3/2}
.veh2-cityjournal .vjr-fig img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.veh2-cityjournal .vjr-card a:hover .vjr-fig img{transform:scale(1.05)}
.veh2-cityjournal .vjr-name{font-family:var(--serif);font-weight:400;letter-spacing:-0.012em;line-height:1.18;
  font-size:clamp(19px,1.9vw,24px);color:var(--navy);margin:16px 0 10px}
.veh2-cityjournal .vjr-link{font-family:var(--sans);font-weight:500;font-size:11.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--navy);border-bottom:1px solid var(--terra);padding-bottom:3px}
.veh2-cityjournal .vjr-link .arw{color:var(--terra-deep)}
@media(max-width:900px){.veh2-cityjournal .vjr-grid{grid-template-columns:1fr}.veh2-cityjournal .vjr-card{max-width:520px}}

/* ---- the place: quiet reading column ---------------------------------------- */
.veh2-citystory{background:var(--cream)}
.veh2-citystory .vstory{padding:clamp(56px,9vh,120px) 0}
.veh2-citystory .wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.veh2-citystory .vstory-title{font-family:var(--serif);font-weight:400;letter-spacing:-0.015em;line-height:.98;
  font-size:clamp(38px,5.4vw,72px);color:var(--navy);margin:14px 0 26px}
.veh2-citystory .vstory-title em{font-style:italic;color:var(--terra-deep)}
.veh2-citystory .vstory-p{font-size:clamp(16px,1.5vw,18px);line-height:1.7;color:var(--slate);max-width:62ch;margin-bottom:18px}

/* ---- weddings band: photo | body split on blush ------------------------------ */
.veh2-cityweddings{background:var(--blush)}
.veh2-cityweddings .vwed{padding:clamp(56px,9vh,120px) 0}
.veh2-cityweddings .wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.veh2-cityweddings .vwed-split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,4.5vw,64px);align-items:center}
.veh2-cityweddings .vwed-fig img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:2px}
.veh2-cityweddings .vwed-fig figcaption{margin-top:12px;font-family:var(--serif);font-style:italic;font-size:15px;color:var(--slate)}
.veh2-cityweddings .vwed-title{font-family:var(--serif);font-weight:400;letter-spacing:-0.015em;line-height:.98;
  font-size:clamp(38px,5.4vw,72px);color:var(--navy);margin:14px 0 18px}
.veh2-cityweddings .vwed-title em{font-style:italic;color:var(--terra-deep)}
.veh2-cityweddings .vwed-lede{font-size:clamp(16px,1.5vw,18px);line-height:1.65;color:var(--slate);max-width:44ch;margin-bottom:26px}
.veh2-cityweddings .vwed-links{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
@media(max-width:900px){.veh2-cityweddings .vwed-split{grid-template-columns:1fr}.veh2-cityweddings .vwed-fig{max-width:440px}}

/* ---- FAQ: native details, homepage language ---------------------------------- */
.veh2-cityfaq{background:var(--cream)}
.veh2-cityfaq .vfaq{padding:clamp(56px,9vh,120px) 0}
.veh2-cityfaq .wrap{max-width:860px;margin:0 auto;padding:0 var(--pad)}
.veh2-cityfaq .vfaq-title{font-family:var(--serif);font-weight:400;letter-spacing:-0.015em;line-height:.98;
  font-size:clamp(38px,5.4vw,72px);color:var(--navy);margin:14px 0 34px}
.veh2-cityfaq .vfaq-title em{font-style:italic;color:var(--terra-deep)}
.veh2-cityfaq .vfaq-item{border-top:1px solid var(--rule)}
.veh2-cityfaq .vfaq-item:last-child{border-bottom:1px solid var(--rule)}
.veh2-cityfaq summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:18px;
  padding:clamp(18px,2.6vh,26px) 2px;font-family:var(--serif);font-weight:400;
  font-size:clamp(19px,2vw,24px);color:var(--navy)}
.veh2-cityfaq summary::-webkit-details-marker{display:none}
.veh2-cityfaq summary .num{font-style:italic;font-size:.75em;color:var(--terra-deep);flex:none}
.veh2-cityfaq summary .mark{margin-left:auto;color:var(--terra-deep);font-family:var(--sans);font-weight:400;font-size:20px;transition:transform .2s}
.veh2-cityfaq details[open] summary .mark{transform:rotate(45deg)}
.veh2-cityfaq .a{font-family:var(--sans);font-size:clamp(15.5px,1.4vw,17px);line-height:1.7;color:var(--slate);
  max-width:62ch;padding:0 2px clamp(20px,3vh,28px) calc(18px + 1.2em)}

/* ---- close ------------------------------------------------------------------- */
.veh2-cityclose{background:var(--aqua)}
.veh2-cityclose .vclose{padding:clamp(56px,9vh,120px) 0}
.veh2-cityclose .wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);display:grid;gap:16px;justify-items:start}
.veh2-cityclose .vclose-title{font-family:var(--serif);font-weight:400;letter-spacing:-0.015em;line-height:.98;
  font-size:clamp(42px,6vw,84px);color:var(--navy)}
.veh2-cityclose .vclose-title em{font-style:italic;color:var(--terra-deep)}
.veh2-cityclose .vclose-lede{font-size:clamp(16px,1.5vw,18px);line-height:1.65;color:var(--slate);max-width:52ch}
.veh2-cityclose .vclose-actions{display:flex;align-items:center;gap:clamp(20px,3vw,40px);flex-wrap:wrap;margin-top:10px}
.veh2-cityclose .vclose-cta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 32px;
  border-radius:999px;background:var(--terra);color:#fff;font-family:var(--sans);font-weight:500;font-size:12px;
  letter-spacing:.18em;text-transform:uppercase;transition:background .2s}
.veh2-cityclose .vclose-cta:hover{background:var(--terra-hover)}

/* ---- area master ground variants (pilot: Conchas Chinas) -------------------- */
.veh2-areastory{background:var(--blush)}
.veh2-areas3--cream{background:var(--cream)}
.veh2-areas3--cream .vnbc-fig{background:var(--blush)}
.veh2-cityvillas .vc-arch-sub{font-size:clamp(15px,1.3vw,16.5px);color:var(--slate)}

/* ---- more communities: link row under the area cards ------------------------ */
.vnbc-more{margin-top:clamp(30px,4.5vh,52px);padding-top:clamp(20px,3vh,30px);
  border-top:1px solid rgba(31,42,68,.10)}
.vnbc-more-label{font-family:var(--sans);font-weight:500;font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--terra-text);margin:0 0 14px}
.vnbc-more-list{display:flex;flex-wrap:wrap;gap:10px clamp(22px,3vw,40px);margin:0;padding:0;list-style:none}
.vnbc-more-list .o-link{font-size:15px}
.vnbc-more-n{font-size:11.5px;color:var(--slate);margin-left:4px;vertical-align:super}

/* ---- area guest reviews: carried quotes as cream cards on blush ------------- */
.veh2-arearev .wrap{max-width:1140px}
.veh2-arearev .vrev-title{font-family:var(--serif);font-weight:400;
  font-size:clamp(30px,3.6vw,46px);line-height:1.08;letter-spacing:-0.014em;color:var(--navy);margin:6px 0 0}
.veh2-arearev .vrev-title em{font-style:italic;color:var(--terra-deep)}
.veh2-arearev .vrev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));width:100%;
  gap:clamp(20px,2.6vw,36px);margin-top:clamp(26px,4vh,44px);text-align:left}
.veh2-arearev .vrev-quote{margin:0;position:relative;background:var(--cream);
  border:1px solid rgba(31,42,68,.08);border-radius:16px;
  padding:clamp(30px,3.6vw,46px) clamp(26px,3.2vw,44px) clamp(26px,3vw,38px);
  display:flex;flex-direction:column;gap:18px}
.veh2-arearev .vrev-mark{font-family:var(--serif);font-size:64px;line-height:.6;
  color:var(--terra-deep);display:block;height:.42em}
.veh2-arearev .vrev-quote p{font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(18px,1.55vw,22px);line-height:1.44;letter-spacing:-0.008em;color:var(--navy);
  text-align:left;margin:0}
.veh2-arearev .vrev-quote footer{margin-top:auto;display:flex;align-items:baseline;
  justify-content:flex-start;gap:14px;flex-wrap:wrap;padding-top:2px}
.veh2-arearev .vrev-quote cite{font-family:var(--sans);font-style:normal;font-weight:500;
  font-size:14px;color:var(--navy)}
.veh2-arearev .vlet2-links{margin-top:clamp(28px,4vh,40px)}
@media (max-width:760px){.veh2-arearev .vrev-grid{grid-template-columns:1fr}}
