/* Valentine's 2027 page (9 Nov 2026, Tom: "pink or a red colour, use our doodles").
   The house orange becomes a Valentine's red on this page only, so every doodle (.fd, .kick, .s) turns red with it.
   Motion lives under .mo (set by motion.js), so reduced motion gets none. */
.val-page { --orange: #C0283B; --orange-hi: #A11F30; --sand: #FCECEA; --blush: #F7D5D3; --rose: #E9A3A6; }

/* Hero: blush band, photo on the right, scattered doodles */
.vx-hero { position: relative; background: var(--sand); overflow: hidden; }
.vx-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; padding-top: clamp(40px, 6vw, 88px); padding-bottom: clamp(48px, 6vw, 96px); }
.vx-kicker { display: inline-flex; align-items: center; gap: 10px; font: 600 14px/1 var(--head); letter-spacing: .14em; text-transform: uppercase; color: var(--orange); }
.vx-kicker .fd { width: 24px; height: 24px; }
.vx-hero h1 { margin-top: 18px; font-size: clamp(46px, 6vw, 92px); }
.vx-hero h1 .s { font-size: 1.1em; }
.vx-year { position: relative; display: inline-block; padding: 0 .12em; }
.vx-year .fd--circle { position: absolute; inset: -18% -10% -14% -12%; width: auto; height: auto; pointer-events: none; -webkit-mask-size: 100% 100%; mask-size: 100% 100%; }
.vx-lede { margin-top: 22px; max-width: 34em; font-size: 18.5px; line-height: 1.55; font-style: italic; color: var(--ink-2); }
.vx-open { display: inline-flex; align-items: center; gap: 12px; margin-top: 26px; padding: 12px 18px; background: var(--orange); color: #fff; font: 700 15px/1.1 var(--head); letter-spacing: .06em; text-transform: uppercase; transform: rotate(-1.5deg); box-shadow: 0 14px 26px -18px rgba(120, 20, 35, .7); }
.vx-open .fd { width: 22px; height: 22px; color: #fff; }

.vx-pic { position: relative; }
.vx-pic picture, .vx-pic img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.vx-pic img { border: 10px solid #fff; box-shadow: 0 30px 60px -40px rgba(90, 30, 40, .55); transform: rotate(1.6deg); }
.vx-note { position: absolute; left: -26px; bottom: 26px; background: #fff; padding: 12px 16px 10px; transform: rotate(-4deg); font: 600 26px/1 var(--script); color: var(--orange); box-shadow: 0 16px 30px -22px rgba(90, 30, 40, .6); }

/* Doodles dotted around the hero */
.vx-dd { position: absolute; pointer-events: none; color: var(--rose); }
.vx-dd--a { width: 54px; height: 54px; top: 7%; left: 46%; }
.vx-dd--b { width: 34px; height: 34px; top: 70%; left: 3%; color: var(--orange); }
.vx-dd--c { width: 90px; height: 76px; bottom: 6%; left: 44%; transform: rotate(200deg); }
.vx-dd--d { width: 140px; height: 26px; top: 12%; right: 4%; transform: rotate(-8deg); }
.vx-dd--e { width: 28px; height: 28px; top: 40%; right: 2%; color: var(--orange); }

/* Hear first card */
.vx-list { position: relative; margin-top: 30px; padding: 24px 24px 18px; background: #fff; box-shadow: 0 24px 50px -36px rgba(90, 30, 40, .5); max-width: 520px; }
.vx-list strong { display: block; font: 700 21px/1.1 var(--head); text-transform: uppercase; }
.vx-list p { margin-top: 6px; }
.vx-list .fd--star { position: absolute; right: -16px; top: -18px; width: 44px; height: 44px; }
.vx-list form { display: grid; grid-template-columns: 1fr auto; margin-top: 14px; }
.vx-list input[type=email] { min-height: 52px; border: 1.5px solid var(--ink); border-right: 0; padding: 0 14px; font: 400 16px var(--text); min-width: 0; }
.vx-list button { white-space: nowrap; min-height: 52px; padding: 0 20px; border: 0; background: var(--orange); color: #fff; font: 700 16px/1 var(--head); text-transform: uppercase; cursor: pointer; }
.vx-list button:hover { background: var(--orange-hi); }
.vx-list .ybc-fine { margin-top: 10px; }

/* Save the date */
.vx-date { background: var(--orange); color: #fff; overflow: hidden; position: relative; }
.vx-date__in { display: grid; grid-template-columns: auto 1fr; gap: clamp(24px, 5vw, 72px); align-items: center; padding-top: clamp(40px, 5vw, 64px); padding-bottom: clamp(40px, 5vw, 64px); }
.vx-date__day { text-align: center; background: #fff; color: var(--orange); padding: 16px 26px 14px; transform: rotate(-3deg); box-shadow: 0 20px 40px -28px rgba(0, 0, 0, .5); }
.vx-date__day span { display: block; font: 700 13px/1 var(--head); letter-spacing: .16em; text-transform: uppercase; }
.vx-date__day b { display: block; font: 800 72px/1 var(--head); margin: 6px 0 2px; }
.vx-date__day i { display: block; font: 600 24px/1 var(--script); font-style: normal; }
.vx-date h2 { color: #fff; font-size: clamp(32px, 4vw, 54px); }
.vx-date h2 .s { color: var(--blush); }
.vx-date p { margin-top: 12px; max-width: 46em; font-size: 17.5px; color: rgba(255, 255, 255, .92); }
.vx-date .vx-dd { color: rgba(255, 255, 255, .28); }

/* Facts strip in red */
.val-page .facts b { color: var(--orange); }

@media (max-width: 860px) {
  .vx-hero__grid { grid-template-columns: 1fr; }
  .vx-pic { max-width: 460px; }
  .vx-pic picture, .vx-pic img { aspect-ratio: 4 / 3; }
  .vx-note { left: 8px; bottom: -14px; font-size: 22px; }
  .vx-dd--a, .vx-dd--c { display: none; }
  .vx-date__in { grid-template-columns: 1fr; justify-items: start; }
  .val-page .facts__in { grid-template-columns: 1fr 1fr; }
  .val-page .facts__in div:nth-child(3) { padding-left: 0; border-left: 0; }
}

/* Motion: doodles drift, the circle draws round 2027 */
.mo .vx-dd { animation: vx-float 7s ease-in-out infinite; }
.mo .vx-dd--b { animation-delay: -2s; }
.mo .vx-dd--d { animation-duration: 9s; }
.mo .vx-dd--e { animation-delay: -4s; }
.mo .vx-year .fd--circle { clip-path: circle(0% at 50% 50%); animation: vx-draw .9s cubic-bezier(.6, .1, .3, 1) .6s forwards; }
@keyframes vx-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }
@keyframes vx-draw { to { clip-path: circle(75% at 50% 50%); } }

/* An extra doodle from the brand set, used only here */
.fd--asterisk { --m: url(/img/foodles/asterisk-ink.svg); }
