/* Home redesign. Direction: golden-hour Italian dance hall.
   Open layouts, big sentence-case type, thin rules instead of boxes, arch-shaped photo frames (Italian arches, art deco),
   three color fields: cream, deep sea, berry. Orange is for buttons only. */
.vv-hero, .vv-sec { --vv-cream:#F7F1E5; --vv-paper:#FCF8F0; --vv-ink:#2B2420; --vv-sea:#0E3F52; --vv-sun:#E0672E; --vv-berry:#9A3F5E; --vv-gold:#8C6A3E; --vv-hair:rgba(43,36,32,.18); }
.vv-hero h1, .vv-sec h2, .vv-sec h3, .vv-hero h3 { font-family:'Playfair Display',Georgia,serif; text-transform:none; letter-spacing:-.01em; text-wrap:balance; font-weight:700; margin:0; }
.vv-hero, .vv-sec { font-family:'Josefin Sans','Helvetica Neue',Arial,sans-serif; color:var(--vv-ink); }
.vv-sec h2 { font-size:clamp(30px,4.4vw,54px); line-height:1.08; color:var(--vv-sea); margin-bottom:.55em; }
.vv-sec { padding:clamp(60px,9vw,124px) 0; }
.vv-sec p { font-size:21px; line-height:1.65; }

/* Buttons */
.vv-btn, .vv-btns .cta { display:inline-flex; align-items:center; justify-content:center; font-family:'Josefin Sans',sans-serif; font-weight:700; font-size:20px; letter-spacing:.02em; text-transform:none; text-decoration:none; padding:16px 30px; border-radius:999px; background:var(--vv-sun); color:#fff; border:2px solid var(--vv-sun); box-shadow:none; text-align:center; cursor:pointer; transition:transform .2s, background .2s; }
.vv-btn:hover, .vv-btns .cta:hover { transform:translateY(-2px); background:#C9561F; border-color:#C9561F; }
.vv-btn.alt, .vv-btns .cta.outline { background:transparent; color:var(--vv-sea); border-color:var(--vv-sea); }
.vv-link { font-weight:700; color:var(--vv-sea); text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:2px; font-size:20px; }
.vv-btns { display:flex; flex-direction:column; gap:12px; max-width:380px; width:100%; }
.vv-btns .cta { width:100%; margin:0 !important; white-space:normal; hyphens:none; }

/* Hero */
.vv-hero { background:var(--vv-cream); padding:clamp(36px,6vw,84px) 0 clamp(56px,8vw,112px); overflow:hidden; }
.vv-hero-grid { display:grid; grid-template-columns:1.12fr .88fr; gap:clamp(28px,5vw,80px); align-items:center; }
.vv-kicker { display:flex; align-items:center; gap:10px; font-weight:700; font-size:20px; color:var(--vv-berry); margin:0 0 22px; }
.vv-dot { width:10px; height:10px; border-radius:50%; background:var(--vv-sun); box-shadow:0 0 0 5px rgba(224,103,46,.18); }
.vv-hero h1 { font-size:clamp(42px,6.6vw,88px); line-height:1; color:var(--vv-sea); letter-spacing:-.02em; margin:0 0 .4em; }
.vv-sub { font-size:clamp(21px,1.7vw,24px); line-height:1.65; max-width:34em; margin:0 0 32px; }
.vv-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px 30px; }
.vv-early { margin:22px 0 0; font-size:17px; color:var(--vv-gold); font-weight:600; }
.vv-hero-photo { display:flex; justify-content:center; }
.vv-arch { position:relative; width:100%; max-width:440px; aspect-ratio:4/5; }
.vv-arch::before { content:""; position:absolute; inset:0; border:2px solid var(--vv-sun); border-radius:50% 50% 18px 18px / 40% 40% 18px 18px; transform:translate(16px,16px); }
.vv-arch img { position:relative; width:100%; height:100%; object-fit:cover; object-position:50% 40%; border-radius:50% 50% 18px 18px / 40% 40% 18px 18px; display:block; transform:none !important; }
@media (max-width:820px) { .vv-hero-grid { grid-template-columns:1fr; } .vv-arch { max-width:340px; margin:8px auto 0; } }
/* one orchestrated moment: the hero settles in on load */
@media (prefers-reduced-motion:no-preference) {
  .vv-hero [data-lang].active .vv-kicker, .vv-hero [data-lang].active h1, .vv-hero [data-lang].active .vv-sub, .vv-hero [data-lang].active .vv-actions, .vv-hero [data-lang].active .vv-early { animation:vvRise .9s cubic-bezier(.2,.7,.2,1) both; }
  .vv-hero [data-lang].active h1 { animation-delay:.08s; } .vv-hero [data-lang].active .vv-sub { animation-delay:.2s; } .vv-hero [data-lang].active .vv-actions { animation-delay:.3s; } .vv-hero [data-lang].active .vv-early { animation-delay:.4s; }
  .vv-hero [data-lang].active .vv-arch img { animation:vvArch 1.3s cubic-bezier(.2,.7,.2,1) both; }
  @keyframes vvRise { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:none; } }
  @keyframes vvArch { from { clip-path:inset(100% 0 0 0); } to { clip-path:inset(0 0 0 0); } }
}

/* What is included: a ruled list, no boxes */
.vv-included { background:var(--vv-paper); }
.vv-split { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(28px,6vw,90px); align-items:start; }
.vv-split h2 { position:sticky; top:110px; }
.vv-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--vv-hair); }
.vv-list li { display:grid; grid-template-columns:1fr 1.15fr; gap:8px 28px; padding:22px 0; border-bottom:1px solid var(--vv-hair); }
.vv-it { font-family:'Playfair Display',Georgia,serif; font-weight:700; font-size:clamp(23px,2.2vw,26px); line-height:1.2; color:var(--vv-sea); }
.vv-id { font-size:20px; line-height:1.6; }
@media (max-width:820px) { .vv-split { grid-template-columns:1fr; } .vv-split h2 { position:static; } .vv-list li { grid-template-columns:1fr; } }

/* Cost: the equation */
.vv-cost { background:var(--vv-sea); color:#EAF2F4; }
.vv-cost h2 { color:#fff; }
.vv-eq { display:grid; grid-template-columns:auto auto 1fr; align-items:center; gap:clamp(18px,3.5vw,48px); margin:clamp(24px,4vw,44px) 0; }
.vv-big { font-family:'Playfair Display',Georgia,serif; font-weight:700; font-size:clamp(68px,10vw,128px); line-height:.95; letter-spacing:-.03em; color:#fff; }
.vv-big .pb-cur { font-size:.28em; letter-spacing:0; margin-left:8px; color:#F4B98F; }
.vv-cost .vv-big .pb-evt { display:block; margin:10px 0 0; font-size:clamp(20px,1.8vw,24px); line-height:1.3; letter-spacing:0; text-transform:none; font-weight:600; color:#CFE3E8; white-space:normal; font-family:'Josefin Sans',sans-serif; }
.vv-plus { font-family:'Playfair Display',Georgia,serif; font-weight:600; font-size:clamp(64px,9vw,120px); line-height:1; color:var(--vv-sun); }
.vv-eq-title { font-family:'Playfair Display',Georgia,serif; font-weight:700; font-size:clamp(26px,3.2vw,40px); line-height:1.1; color:#fff; margin-bottom:12px; }
.vv-eq-b p { margin:0; max-width:27em; color:#D7E6EA; }
.vv-terms { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(20px,5vw,72px); border-top:1px solid rgba(255,255,255,.22); padding-top:clamp(24px,3.5vw,40px); }
.vv-early2 { font-family:'Playfair Display',Georgia,serif; font-weight:700; font-size:clamp(25px,2.6vw,30px); line-height:1.2; color:#F6C69F; margin:0; }
.vv-cost .blist { margin:0; } .vv-cost .blist li { color:#EAF2F4; font-size:20px; line-height:1.6; }
.vv-cost .blist .pb-save { color:#fff; font-weight:700; } .vv-cost .blist.sub li { font-weight:400; color:#D7E6EA; }
.vv-cost .blist li::marker { color:var(--vv-sun); }
.vv-rsvp { display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(24px,5vw,72px); align-items:start; margin-top:clamp(36px,5vw,64px); border-top:1px solid rgba(255,255,255,.22); padding-top:clamp(28px,4vw,48px); }
.vv-rsvp h3 { font-size:clamp(24px,2.8vw,34px); color:#fff; margin-bottom:18px; }
.vv-steps { list-style:none; margin:0 0 20px; padding:0; display:grid; gap:16px; }
.vv-steps li { display:grid; grid-template-columns:38px 1fr; gap:14px; align-items:start; font-size:21px; line-height:1.55; color:#EAF2F4; }
.vv-n { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%; border:2px solid var(--vv-sun); font-family:'Josefin Sans',sans-serif; font-weight:700; color:#fff; }
.vv-warn li { color:#F6C69F !important; font-weight:600; }
.vv-cost .vv-btns .cta.outline { color:#fff; border-color:rgba(255,255,255,.7); }
.vv-cost .vv-btns .cta.outline:hover { background:rgba(255,255,255,.1); }
@media (max-width:820px) { .vv-eq { grid-template-columns:1fr; justify-items:start; gap:6px; } .vv-terms, .vv-rsvp { grid-template-columns:1fr; } }

/* Choose */
.vv-choose { background:var(--vv-cream); }
.vv-opts { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px); margin-top:clamp(20px,3vw,36px); }
.vv-opt h3 { font-size:clamp(26px,3vw,36px); line-height:1.1; color:var(--vv-sea); margin:20px 0 6px; }
.vv-opt-img { aspect-ratio:4/3; overflow:hidden; }
.vv-opt-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.vv-opt:hover .vv-opt-img img { transform:scale(1.04); }
.vv-when { font-weight:700; color:var(--vv-berry); font-size:18px !important; margin:0 0 12px; }
.vv-opt p { max-width:30em; }
.vv-opt .vv-btn { margin-top:10px; }
@media (max-width:820px) { .vv-opts { grid-template-columns:1fr; } }

/* People */
.vv-peopleSec { background:var(--vv-paper); }
.vv-people { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px); margin-top:clamp(20px,3vw,36px); }
.vv-person { margin:0; }
.vv-person .vv-arch2 { aspect-ratio:3/2; overflow:hidden; }
.vv-person img { width:100%; height:100%; object-fit:cover; display:block; }
.vv-person:last-child img { object-position:35% 50%; }
.vv-person figcaption h3 { font-size:clamp(26px,3vw,36px); color:var(--vv-sea); margin:20px 0 6px; }
.vv-person figcaption p { margin:0 0 10px; }
.vv-person .blist li { font-size:20px; }
@media (max-width:820px) { .vv-people { grid-template-columns:1fr; } }

/* Host and statement, restyled to match */
.event { background:var(--vv-cream,#F7F1E5) !important; padding:clamp(60px,9vw,124px) 0 !important; }
.event h2, .brandstatement .tagline { text-transform:none !important; }
.event h2 { font-family:'Playfair Display',Georgia,serif; font-size:clamp(30px,4.4vw,54px); line-height:1.08; color:#0E3F52; letter-spacing:-.01em; }
.event .host-aka { font-weight:600; color:#9A3F5E; }
.event .splitfeature img { border-radius:50% 50% 18px 18px / 40% 40% 18px 18px !important; aspect-ratio:4/5; object-fit:cover; object-position:72% 40%; max-width:360px; box-shadow:none !important; }
.brandstatement { background:#FCF8F0 !important; color:#2B2420; }
.brandstatement p { color:#2B2420 !important; }

/* Final call to action */
.vv-end { background:var(--vv-berry); color:#fff; text-align:center; }
.vv-end h2 { color:#fff; max-width:20em; margin:0 auto .4em; }
.vv-end p { max-width:34em; margin:0 auto 28px; color:#FBEFF3; }
.vv-btns-row { margin:0 auto; }
.vv-end .vv-btns .cta { background:#fff; color:var(--vv-berry); border-color:#fff; }
.vv-end .vv-btns .cta.outline { background:transparent; color:#fff; border-color:rgba(255,255,255,.75); }

/* Fixes and matching details */
.vv-cost .blist li.pb-save, .vv-cost .pb-list li.pb-save { color:#fff !important; font-weight:700; }
.vv-warn { margin-top:6px !important; }
.nav-cta, nav .nav-cta { background:#E0672E !important; border-radius:999px !important; box-shadow:none !important; text-transform:none !important; font-family:'Playfair Display',Georgia,serif; font-weight:700 !important; letter-spacing:.02em !important; font-size:17px !important; padding:11px 22px !important; }
.host-more .cta, .brandstatement .cta, footer .ask-btn { background:transparent !important; color:#0E3F52 !important; border:2px solid #0E3F52 !important; border-radius:999px !important; box-shadow:none !important; text-transform:none !important; font-family:'Josefin Sans',sans-serif; font-weight:700 !important; font-size:20px !important; letter-spacing:.02em !important; padding:14px 28px !important; }
footer .ask-btn { color:#fff !important; border-color:rgba(255,255,255,.7) !important; }
.brandstatement .tagline { font-family:'Josefin Sans',sans-serif; font-weight:700; font-size:clamp(23px,2.4vw,28px) !important; letter-spacing:.02em !important; color:#9A3F5E !important; }
.brandstatement .tagline span { color:inherit !important; }
.vv-btns .cta.cta-big { background:#E0672E !important; border-color:#E0672E !important; box-shadow:none !important; }
.vv-end .vv-btns .cta.cta-big { background:#fff !important; border-color:#fff !important; color:#9A3F5E !important; }

/* ===== More pizzazz: sunburst, spinning seal, marquee, awning edges, staggered reveals ===== */
.vv-stage { position:relative; width:100%; max-width:470px; }
.vv-rays { position:absolute; inset:-22% -30% -18% -30%; z-index:0; pointer-events:none;
  background:repeating-conic-gradient(from 0deg at 50% 52%, rgba(224,103,46,.20) 0 5deg, rgba(224,103,46,0) 5deg 10deg);
  -webkit-mask-image:radial-gradient(circle at 50% 52%, #000 12%, transparent 68%); mask-image:radial-gradient(circle at 50% 52%, #000 12%, transparent 68%); }
.vv-stage .vv-arch { position:relative; z-index:1; }
.vv-arch-s { position:absolute; z-index:2; left:-16%; bottom:-7%; width:42%; aspect-ratio:4/5; border:6px solid #F7F1E5; border-radius:50% 50% 14px 14px / 40% 40% 14px 14px; overflow:hidden; box-shadow:0 14px 30px rgba(14,63,82,.25); }
.vv-arch-s img { width:100%; height:100%; object-fit:cover; object-position:78% 60%; display:block; }
.vv-seal { position:absolute; z-index:3; top:-5%; left:-9%; width:clamp(104px,13vw,150px); aspect-ratio:1; filter:drop-shadow(0 10px 18px rgba(14,63,82,.3)); transition:transform .3s; }
.vv-seal:hover { transform:scale(1.07) rotate(-4deg); }
.vv-seal svg { width:100%; height:100%; display:block; }
.vv-spin { transform-origin:100px 100px; }
@media (prefers-reduced-motion:no-preference) {
  .vv-spin { animation:vvSpin 26s linear infinite; }
  .vv-rays { animation:vvRays 140s linear infinite; }
  @keyframes vvSpin { to { transform:rotate(360deg); } }
  @keyframes vvRays { to { transform:rotate(360deg); } }
}
@media (max-width:820px) { .vv-stage { max-width:340px; margin:0 auto; } .vv-arch-s { left:-6%; } .vv-seal { left:-4%; } }

/* Marquee */
.vv-marquee { position:relative; background:#0E3F52; color:#F6C69F; overflow:hidden; padding:18px 0; margin-bottom:30px; }
.vv-marquee::after { content:""; position:absolute; left:0; right:0; bottom:-14px; height:15px; background:radial-gradient(circle at 15px 0, #0E3F52 14px, transparent 15px) repeat-x; background-size:30px 15px; }
.vv-marquee [data-lang] { display:none; } .vv-marquee [data-lang].active { display:block; }
.vv-track { display:flex; width:max-content; white-space:nowrap; font-family:'Josefin Sans',sans-serif; font-weight:700; font-size:clamp(17px,1.8vw,23px); letter-spacing:.14em; text-transform:uppercase; }
.vv-track span { padding:0 22px; } .vv-track i { font-style:normal; color:#E0672E; }
@media (prefers-reduced-motion:no-preference) { .vv-track { animation:vvMarq 38s linear infinite; } @keyframes vvMarq { to { transform:translateX(-25%); } } }
.vv-hero { padding-bottom:clamp(64px,9vw,120px); }

/* Included collage */
.vv-collage { position:relative; height:clamp(260px,32vw,380px); margin-top:34px; }
.vv-ca, .vv-cb { position:absolute; overflow:hidden; border-radius:50% 50% 14px 14px / 40% 40% 14px 14px; box-shadow:0 14px 30px rgba(14,63,82,.18); }
.vv-ca { left:0; top:0; width:46%; aspect-ratio:4/5; } .vv-cb { left:34%; top:22%; width:46%; aspect-ratio:4/5; border:6px solid #FCF8F0; }
.vv-ca img, .vv-cb img { width:100%; height:100%; object-fit:cover; display:block; }
.vv-split h2 { position:static; }
@media (max-width:820px) { .vv-collage { height:300px; max-width:360px; } }

/* Awning edges on the colored bands */
.vv-cost, .vv-end { position:relative; }
.vv-cost::before { content:""; position:absolute; left:0; right:0; top:-15px; height:16px; background:radial-gradient(circle at 15px 100%, #0E3F52 14px, transparent 15px) repeat-x; background-size:30px 16px; }
.vv-end::before { content:""; position:absolute; left:0; right:0; top:-15px; height:16px; background:radial-gradient(circle at 15px 100%, #9A3F5E 14px, transparent 15px) repeat-x; background-size:30px 16px; }

/* Price: sunburst glow behind the number, plus that pops in */
.vv-eq-a { position:relative; }
.vv-eq-a::before { content:""; position:absolute; left:-12%; top:-30%; width:130%; height:170%; z-index:0; pointer-events:none; background:repeating-conic-gradient(from 0deg at 30% 45%, rgba(224,103,46,.16) 0 4deg, transparent 4deg 9deg); -webkit-mask-image:radial-gradient(circle at 30% 45%, #000 0, transparent 62%); mask-image:radial-gradient(circle at 30% 45%, #000 0, transparent 62%); }
.vv-eq-a > * { position:relative; z-index:1; }
.vv-big { text-shadow:0 6px 0 rgba(0,0,0,.12); }

/* Staggered reveals (only when JS is running; content is visible without it) */
.vv-js .vv-rv { opacity:0; transform:translateY(26px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.vv-js .vv-rv.vv-in { opacity:1; transform:none; }
.vv-js .vv-collage > .vv-rv { transform:translateY(40px) scale(.94); }
.vv-js .vv-collage > .vv-rv.vv-in { transform:none; }
.vv-js .vv-plus.vv-rv { transform:rotate(-120deg) scale(.2); transition-duration:1s; }
.vv-js .vv-plus.vv-rv.vv-in { transform:none; }
.vv-list li { transition:background .25s, padding-left .25s; }
.vv-list li:hover { background:rgba(224,103,46,.07); padding-left:12px; }

/* ===== Color: no more beige. Teal, apricot, deep sea, coral, berry. ===== */
nav { background:#fff !important; }
.vv-hero { background:linear-gradient(120deg,#0E3F52 0%,#145A70 55%,#1F7F95 100%); }
.vv-hero h1 .l1, .vv-hero h1 .l2 { display:block; }
.vv-hero h1 .l1 { color:#fff; } .vv-hero h1 .l2 { color:#FFC48A; }
.vv-hero .vv-sub { color:#DCEFF3; } .vv-hero .vv-kicker, .vv-hero .vv-early { color:#FFC48A; }
.vv-hero .vv-link { color:#fff; }
.vv-rays { background:repeating-conic-gradient(from 0deg at 50% 52%, rgba(255,160,90,.30) 0 5deg, rgba(255,160,90,0) 5deg 10deg); }
.vv-arch::before { border-color:#FFC48A; }
.vv-arch-s { border-color:#fff; }
.vv-marquee { background:#E0672E; color:#fff; margin-bottom:0; }
.vv-marquee::after { background:radial-gradient(circle at 15px 0, #E0672E 14px, transparent 15px) repeat-x; background-size:30px 15px; z-index:2; }
.vv-track i { color:#0E3F52; }
.vv-included { background:#F9B67C; padding-top:clamp(84px,10vw,140px); }
.vv-included h2, .vv-it { color:#0E3F52; } .vv-id { color:#2B2420; }
.vv-list, .vv-list li { border-color:rgba(14,63,82,.32); }
.vv-list li:hover { background:rgba(255,255,255,.35); }
.vv-it { font-size:clamp(23px,2.6vw,32px); }
.vv-cb { border-color:#F9B67C; }
.vv-choose { background:#C1577A; }
.vv-choose h2, .vv-choose h3 { color:#fff; } .vv-choose .vv-when { color:#FFE0C2; } .vv-choose .vv-opt p { color:#FFF3F6; }
.vv-choose .vv-btn { background:#fff; color:#9A3F5E; border-color:#fff; }
.vv-choose .vv-btn.alt { background:transparent; color:#fff; border-color:rgba(255,255,255,.85); }
.vv-peopleSec { background:#1F7F95; }
.vv-peopleSec h2, .vv-peopleSec h3 { color:#fff; } .vv-peopleSec p, .vv-peopleSec li { color:#E6F6F9 !important; }
.vv-peopleSec .blist li::marker { color:#FFC48A; }
.event { background:#F9B67C !important; }
.event h2 { color:#0E3F52 !important; } .event .host-aka { color:#7A2F49 !important; }
.event .splitfeature .text p { color:#2B2420; }
.brandstatement { background:linear-gradient(135deg,#0E3F52,#145A70) !important; }
.brandstatement p { color:#EAF6F8 !important; }
.brandstatement .tagline { color:#FFC48A !important; }
.brandstatement .cta { color:#fff !important; border-color:rgba(255,255,255,.8) !important; }
.vv-cost::before { background:radial-gradient(circle at 15px 100%, #0E3F52 14px, transparent 15px) repeat-x; background-size:30px 16px; }
.vv-eq-a::before { background:repeating-conic-gradient(from 0deg at 30% 45%, rgba(255,160,90,.20) 0 4deg, transparent 4deg 9deg); }
.vv-peopleSec .vv-person figcaption h3 { color:#fff; }

/* Vintage postage-stamp frames for every rectangular photo */
.vv-sw { filter:drop-shadow(0 12px 16px rgba(0,0,0,.30)); transform:rotate(-1.2deg); transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.vv-opt:nth-child(even) .vv-sw, .vv-person:nth-child(even) .vv-sw { transform:rotate(1.2deg); }
.vv-opt:hover .vv-sw, .vv-person:hover .vv-sw { transform:rotate(0) scale(1.012); }
.vv-stamp { position:relative; background:#FFFBF2; padding:clamp(12px,1.8vw,18px);
  -webkit-mask:radial-gradient(circle 6px at 10px 0,#0000 97%,#000) 0 0/20px 100% repeat-x, radial-gradient(circle 6px at 10px 100%,#0000 97%,#000) 0 0/20px 100% repeat-x, radial-gradient(circle 6px at 0 10px,#0000 97%,#000) 0 0/100% 20px repeat-y, radial-gradient(circle 6px at 100% 10px,#0000 97%,#000) 0 0/100% 20px repeat-y;
  -webkit-mask-composite:source-in;
  mask:radial-gradient(circle 6px at 10px 0,#0000 97%,#000) 0 0/20px 100% repeat-x, radial-gradient(circle 6px at 10px 100%,#0000 97%,#000) 0 0/20px 100% repeat-x, radial-gradient(circle 6px at 0 10px,#0000 97%,#000) 0 0/100% 20px repeat-y, radial-gradient(circle 6px at 100% 10px,#0000 97%,#000) 0 0/100% 20px repeat-y;
  mask-composite:intersect; }
.vv-stamp::after { content:""; position:absolute; inset:9px; border:1.5px solid rgba(154,63,94,.6); pointer-events:none; }
.vv-stamp img { display:block; width:100%; height:auto; object-fit:cover; }
.vv-s43 img { aspect-ratio:4/3; } .vv-s32 img { aspect-ratio:3/2; }
.vv-person:last-child .vv-stamp img { object-position:35% 50%; }

/* small text stays in DM Sans; Fraunces only for headlines and big numbers */
.vv-sec .pb-early, .vv-sec .pb-save, .vv-sec .pb-label, .vv-sec strong, .vv-terms strong, .vv-terms li, .nav-cta, nav .nav-cta, .announce strong, .strip-item strong, .faq summary, .policies td:first-child, .gloss strong, .hero-badge, .regpt h3 { font-family:'Josefin Sans',sans-serif !important; }

/* Playfair: lining figures so prices and dates read cleanly */
h1,h2,h3,.vv-big,.vv-plus,.vv-it,.vv-eq-title,.vv-early2,.pb-price,.pb-plus{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;}

/* photo captions */
.vv-cap{margin:14px 0 0!important;text-align:center;font-family:'Playfair Display',Georgia,serif!important;font-style:italic;font-size:19px!important;line-height:1.3;color:var(--vv-berry,#9A3F5E)}
.vv-hostphoto{display:block}
.event .splitfeature .vv-stamp img{border-radius:0!important;clip-path:none!important;aspect-ratio:4/3!important;width:100%!important;height:auto!important}

/* moments + stamps */
.vv-s45 img{aspect-ratio:4/5!important}
.vv-moments{background:var(--vv-deep,#0E3F52);padding:96px 0}
.vv-moments h2{color:#fff!important}
.vv-mom-p{color:#fff;font-size:21px;line-height:1.5;margin:10px 0 40px;max-width:36em}
.vv-mgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.vv-mfig{margin:0}.vv-mfig .vv-cap{color:#fff!important;margin-top:16px!important}
.vv-mfig:nth-child(even) .vv-sw{transform:rotate(1.2deg)}
@media(max-width:700px){.vv-mgrid{grid-template-columns:1fr;gap:30px}}
.vv-mgrid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:26px!important}
@media(max-width:1000px){.vv-mgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){.vv-mgrid{gap:18px!important}.vv-mfig .vv-cap{font-size:16px!important}}


/* Greek key borders replace the scallops (subtle, tone on tone) */
.vv-marquee::after{content:"";position:absolute;left:0;right:0;bottom:0;top:auto;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='18' viewBox='0 0 24 18'%3E%3Cpath d='M0 17H24M1 17V1H19V12H8V6.5H13.5' fill='none' stroke='rgba(255,255,255,.26)' stroke-width='1.8' stroke-linecap='square'/%3E%3C/svg%3E") repeat-x 0 0/24px 18px!important;opacity:1;z-index:2}
.vv-cost::before,.vv-end::before{content:"";position:absolute;left:0;right:0;top:0;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='18' viewBox='0 0 24 18'%3E%3Cpath d='M0 17H24M1 17V1H19V12H8V6.5H13.5' fill='none' stroke='rgba(255,255,255,.2)' stroke-width='1.8' stroke-linecap='square'/%3E%3C/svg%3E") repeat-x 0 0/24px 18px!important}
.vv-cost,.vv-end{position:relative}
.script{font-family:'Playfair Display',Georgia,serif!important;font-style:italic!important;font-weight:600!important;font-size:1em!important}
@media(max-width:640px){.vv-btn,.vv-btns .cta,.cta{border-radius:30px!important;line-height:1.35!important;text-align:center!important;max-width:100%;box-sizing:border-box}}

/* instructors block (Home) */
.ins{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:48px;align-items:center;margin:8px 0 56px}
.ins-photo{margin:0}
.ins-kicker{margin:0 0 14px!important;font-family:'Josefin Sans',sans-serif;font-weight:700;font-size:17px!important;letter-spacing:.18em;text-transform:uppercase;color:#FFC48A!important}
.ins-bios article{margin-bottom:26px}
.ins-bios h3{margin:0 0 8px;font-family:'Playfair Display',Georgia,serif;font-size:30px;line-height:1.15;color:#fff!important}
.ins-bios p{margin:0;font-size:18px!important;line-height:1.65!important;color:#fff!important}
.vv-people1{grid-template-columns:minmax(0,520px)!important;justify-content:center}
@media(max-width:860px){.ins{grid-template-columns:1fr;gap:28px}.ins-bios h3{font-size:26px}.ins-bios p{font-size:17px!important}}
