/* ---- page additions: Puerto Vallarta staffed villas (uses VE tokens only) ---- */
html,body{background:var(--cream,#FDF8F5);color:var(--navy,#1A2142);margin:0}
body{font-family:var(--sans)}
.veh2-pvstaff .veh2-shead--photo .hero-media img{object-position:center 30%}
.veh2-pvstaff .veh2-shead--photo .hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,33,66,.30),rgba(26,33,66,.55))}
.pvs-count{font-family:var(--sans);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--terra-text);margin:0;align-self:end}
.pvs-count span{font-family:var(--serif);font-size:30px;letter-spacing:0;text-transform:none;color:var(--navy);margin-right:6px}
.pvs-staff{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px}
.pvs-staff li{font-family:var(--sans);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--terra-text);display:inline-flex;align-items:center;gap:7px}
.pvs-staff li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--terra)}
.pvs-cal{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--slate);margin:8px 0 0}
.pvs-more{display:flex;justify-content:center;margin-top:clamp(36px,5vw,56px)}
.pvs-more button{border:0;cursor:pointer;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}
.pvs-more button:hover{background:var(--terra-hover)}
.pvs-more button:focus-visible,.vc-card a:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
/* section kickers: same treatment as the villas kicker (unstyled on the live city page) */
.veh2-pvstaff .veh2-sec:not(.veh2-hero) .kicker{font-family:var(--sans);font-weight:500;font-size:11.5px;line-height:1.4;letter-spacing:.32em;text-transform:uppercase;color:var(--terra-text);margin:0 0 14px}
.veh2-pvstaff .veh2-cityletter2 .kicker{text-align:center}
.pvs-more[hidden]{display:none}
.pvs-roles{margin:28px 0 0;display:grid;gap:0;border-top:1px solid var(--rule)}
.pvs-roles>div{display:grid;grid-template-columns:minmax(120px,170px) 1fr;gap:18px;padding:16px 0;border-bottom:1px solid var(--rule)}
.pvs-roles dt{font-family:var(--serif);font-size:22px;line-height:1.2;color:var(--navy)}
.pvs-roles dd{margin:0;font-size:15.5px;line-height:1.6;color:var(--ink-soft)}
.pvs-incl{background:var(--white,#FBF8F2);padding:clamp(64px,9vw,120px) var(--pad)}
.pvs-incl .wrap{max-width:var(--maxw);margin:0 auto}
.pvs-incl .kicker{font-family:var(--sans);font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--terra-text);margin:0 0 14px}
.pvs-incl-title{font-family:var(--serif);font-weight:400;font-size:clamp(34px,4.4vw,56px);line-height:1.05;letter-spacing:-.01em;color:var(--navy);margin:0 0 clamp(28px,4vw,44px);text-wrap:balance}
.pvs-incl-title em{font-style:italic;color:var(--terra-deep)}
.pvs-table-wrap{overflow-x:auto}
.pvs-table{width:100%;border-collapse:collapse;min-width:620px}
.pvs-table th,.pvs-table td{text-align:left;vertical-align:top;padding:18px 18px 18px 0;border-bottom:1px solid var(--rule);font-size:15.5px;line-height:1.55}
.pvs-table thead th{font-family:var(--sans);font-weight:500;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--terra-text);padding-top:0}
.pvs-table tbody th{font-family:var(--serif);font-weight:400;font-size:22px;color:var(--navy);width:26%}
.pvs-table td{color:var(--ink-soft)}
.pvs-tag{display:inline-block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:6px 12px;border-radius:999px;white-space:nowrap}
.pvs-tag.is-in{background:var(--blush,#FBE6DD);color:var(--navy)}
.pvs-tag.is-extra{border:1px solid var(--rule-strong);color:var(--slate)}
.pvs-note{margin:22px 0 0;font-family:var(--serif);font-style:italic;font-size:17px;color:var(--slate)}
@media (max-width:640px){.pvs-roles>div{grid-template-columns:1fr;gap:4px}.pvs-table{min-width:0}.pvs-table thead{display:none}.pvs-table tr{display:grid;grid-template-columns:1fr;padding:14px 0;border-bottom:1px solid var(--rule)}.pvs-table th,.pvs-table td{border:0;padding:4px 0}.pvs-table tbody th{width:auto}}

/* ---- contrast (Oliver 2026-10-08, option B) ----------------------------
   Small copper text moves to the VE ink shade #7a5b4d that the microsites
   already use. Large display copper (--terra-deep headings, the serif
   numerals) is deliberately unchanged. Scoped to this page only. */
/* NB: the hero kicker sits on the photo band and must keep its light colour,
   so it is excluded here — axe cannot measure contrast over an image and will
   not catch it for you. */
.veh2-pvstaff .veh2-sec:not(.veh2-hero) .kicker,
.veh2-pvstaff .ed-kicker,
.veh2-pvstaff .vnbc-count,
.veh2-pvstaff .vfaq-item summary .num,
.veh2-pvstaff .pvs-staff li,
.veh2-pvstaff .pvs-count,
.veh2-pvstaff .pvs-incl .kicker,
.veh2-pvstaff .pvs-table thead th,
.veh2-pvstaff .sform label,
.veh2-pvstaff .sform .flabel,
.veh2-pvstaff #dates-value{color:#7a5b4d}
.veh2-pvstaff .pvs-staff li::before{background:#7a5b4d}
/* small white labels sit on the ink shade instead of light copper */
.veh2-pvstaff .sform .submit,
.veh2-pvstaff .vclose-cta,
.veh2-pvstaff .pvs-more button,
.veh2-pvstaff .pill{background:#7a5b4d}
.veh2-pvstaff .sform .submit:hover,
.veh2-pvstaff .vclose-cta:hover,
.veh2-pvstaff .pvs-more button:hover{background:#654a3e}
