/* Direction A · «Feira ao sol de inverno»
 * Daylight paper diorama on white: pine green and Christmas red, striped stall awnings.
 * Big Shoulders Display (titles, layered like cut paper) + Barlow (text, as in the Marketplace). */

:root {
  --cream: #FFFFFF;
  --paper: #FFFFFF;
  --kraft: #F4F5F3;       /* light neutral for alternating sections (Rui: white, not cream) */
  --kraft-deep: #E3E6E2;
  --pine: #1F4B3A;
  --pine-deep: #143327;
  --red: #D0202E;          /* Christmas red (Rui, 11-11: no orange) */
  --red-deep: #A50D24;
  --gold: #E9B44C;
  --ink: #1F2A24;
  --ink-soft: #4A4135;

  --accent: var(--red-deep);
  --accent-ink: #fff;
  --focus: #1F4B3A;
  --line: rgba(31, 42, 36, .14);
  --field-bg: #FFFFFF;
  --field-line: #D5DAD6;
  --radius-sm: 12px;
  --ok: #2F7A55;
  --warn: #B3261E;

  --display: "Big Shoulders Display", "Barlow Condensed", Impact, sans-serif;
  --sans: "Barlow", system-ui, sans-serif;
  --ease: cubic-bezier(.2, .8, .2, 1);
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .27 0 0 0 0 .16 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

html { background: var(--paper); }
body { font-family: var(--sans); font-size: 17px; line-height: 1.6; color: var(--ink); background: var(--paper); overflow-x: clip; }
.wrap { width: min(1200px, 100% - 40px); margin-inline: auto; }

/* ---------- Buttons: liquid-glass pills (iOS 26 feel) ----------
 * Red glass with a specular top highlight, inner rim and a sheen that sweeps on hover.
 * The form buttons (.mf-next/.mf-submit) share the same material. */
.btn, .mf-next, .mf-submit {
  position: relative; isolation: isolate; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 28px; border: 0; border-radius: 999px;
  background: linear-gradient(180deg, #E8404B 0%, var(--red) 48%, var(--red-deep) 100%);
  color: #fff; font-weight: 700; font-size: 1.02rem; letter-spacing: .005em; text-decoration: none;
  text-shadow: 0 1px 1px rgba(90, 0, 12, .35);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .6), inset 0 -3px 8px rgba(90, 0, 14, .35), inset 0 0 0 1px rgba(255, 255, 255, .16),
    0 1px 2px rgba(120, 8, 20, .35), 0 14px 30px -12px rgba(208, 32, 46, .7);
  transition: transform .35s cubic-bezier(.3, 1.4, .5, 1), box-shadow .3s var(--ease), filter .3s;
}
.btn::before, .mf-next::before, .mf-submit::before { /* specular highlight */
  content: ""; position: absolute; z-index: -1; left: 6%; right: 6%; top: 2px; height: 52%;
  border-radius: 999px 999px 60% 60% / 999px 999px 100% 100%;
  background: linear-gradient(180deg, rgba(255, 255, 255, .36), rgba(255, 255, 255, 0));
  filter: blur(.5px); pointer-events: none;
}
.btn::after, .mf-next::after, .mf-submit::after { /* sheen */
  content: ""; position: absolute; z-index: -1; inset: 0;
  background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, .42) 48%, transparent 64%);
  transform: translateX(-130%); transition: transform .9s var(--ease); pointer-events: none;
}
.btn:hover, .mf-next:hover, .mf-submit:hover { transform: translateY(-2px) scale(1.02); filter: saturate(1.08) brightness(1.04);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7), inset 0 -3px 8px rgba(90, 0, 14, .3), inset 0 0 0 1px rgba(255, 255, 255, .2), 0 2px 4px rgba(120, 8, 20, .3), 0 22px 40px -14px rgba(208, 32, 46, .75); }
.btn:hover::after, .mf-next:hover::after, .mf-submit:hover::after { transform: translateX(130%); }
.btn:active, .mf-next:active, .mf-submit:active { transform: scale(.96); transition-duration: .12s; }
.mf-submit:disabled { opacity: .75; }
.btn--small { min-height: 44px; padding: 0 22px; font-size: .95rem; }
/* Frosted glass: for secondary actions on light backgrounds */
.btn--ghost {
  background: rgba(255, 255, 255, .62); color: var(--pine); text-shadow: none;
  backdrop-filter: blur(18px) saturate(1.8); -webkit-backdrop-filter: blur(18px) saturate(1.8);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), inset 0 0 0 1px rgba(31, 75, 58, .16), inset 0 -2px 6px rgba(31, 75, 58, .06), 0 10px 24px -14px rgba(20, 51, 39, .45);
}
.btn--ghost::before { background: linear-gradient(180deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, 0)); }
.btn--ghost::after { background: linear-gradient(105deg, transparent 30%, rgba(208, 32, 46, .12) 48%, transparent 64%); }
.btn--ghost:hover { color: var(--red-deep); box-shadow: inset 0 1px 0 #fff, inset 0 0 0 1px rgba(208, 32, 46, .35), 0 16px 30px -14px rgba(20, 51, 39, .5); }

/* ---------- Nav ---------- */
.nav {
  position: fixed; z-index: 50; top: 14px; left: 50%; transform: translateX(-50%);
  width: min(1180px, calc(100% - 24px)); display: flex; align-items: center; gap: 18px;
  padding: 8px 8px 8px 20px; border-radius: 999px;
  background: rgba(255, 255, 255, .72); backdrop-filter: blur(14px) saturate(1.3); -webkit-backdrop-filter: blur(14px) saturate(1.3);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 12px 30px -16px rgba(20, 51, 39, .45);
  transition: transform .4s var(--ease);
}
.nav.is-hidden { transform: translate(-50%, -140%); }
.nav__brand { display: block; padding: 4px 0; }
.nav__logo {
  display: block; height: 34px; aspect-ratio: 618 / 175; background: var(--pine);
  -webkit-mask: url("shared/img/bairroponte-branco-horiz.png") center / contain no-repeat; mask: url("shared/img/bairroponte-branco-horiz.png") center / contain no-repeat;
}
.nav__links { display: none; gap: 2px; margin-left: auto; }
.nav__links a { padding: 10px 14px; border-radius: 999px; color: var(--pine); font-weight: 600; text-decoration: none; transition: background .2s; }
.nav__links a:hover { background: rgba(31, 75, 58, .09); }
.nav > .btn { margin-left: auto; }
@media (min-width: 920px) { .nav__links { display: flex; } .nav > .btn { margin-left: 8px; } }

/* ---------- Hero: paper diorama ---------- */
.hero { position: relative; background: #fff; }
.scene { position: relative; height: max(640px, 100svh); overflow: hidden; isolation: isolate; }
.layer { position: absolute; left: calc(50% - var(--w) / 2); width: var(--w); max-width: none; pointer-events: none; user-select: none; will-change: transform; }
.layer--sky { --w: 100%; top: 0; height: 100%; object-fit: cover; object-position: 50% 30%; }
.layer--stalls { --w: max(100%, 1150px); bottom: 2%; z-index: 2; filter: drop-shadow(0 18px 18px rgba(70, 40, 10, .28)); }
.layer--front { --w: max(104%, 1100px); bottom: -2%; z-index: 4; }

.hero__title {
  position: absolute; z-index: 3; left: 0; right: 0; top: max(96px, 11%);
  display: flex; flex-direction: column; align-items: center; text-align: center;
  font-family: var(--display); font-weight: 900; line-height: .8; text-transform: uppercase; letter-spacing: -.005em;
  will-change: transform;
}
/* Letters cut from paper: fill + two offset sheets + soft cast shadow */
.hero__l { display: block; font-size: clamp(4.4rem, min(12vw, 15.5svh), 12.5rem); }
.hero__l--1 { color: var(--pine); text-shadow: 0 3px 0 #EE7C86, 0 6px 0 var(--red-deep), 0 18px 22px rgba(80, 40, 10, .32); }
.hero__l--2 { color: var(--red); text-shadow: 0 3px 0 #FFFFFF, 0 6px 0 var(--pine), 0 18px 22px rgba(80, 40, 10, .32); margin-top: .02em; }
.hero__l3 { display: inline-flex; align-items: baseline; gap: .35em; margin-top: .3em; font-size: clamp(1.6rem, 3.6vw, 3.1rem); font-weight: 800; color: var(--pine); letter-spacing: .01em; text-transform: none; }
.hero__yr { padding: .05em .4em .02em; border-radius: .25em; background: var(--pine); color: var(--cream); box-shadow: 0 3px 0 var(--red-deep); }
.hero__title .ch { display: inline-block; }
.hero__title::before { /* soft daylight behind the letters so they read over hills and roofs */
  content: ""; position: absolute; z-index: -1; left: 50%; top: -8%; width: min(1100px, 96vw); height: 120%; transform: translateX(-50%);
  background: radial-gradient(closest-side, rgba(255, 250, 242, .72), rgba(255, 250, 242, .38) 55%, transparent); pointer-events: none;
}

/* Ticket: floating card with the essentials */
.ticket {
  position: absolute; z-index: 6; right: max(20px, calc((100% - 1200px) / 2)); bottom: 12%;
  width: min(330px, 30vw); padding: 22px 22px 22px;
  background: rgba(255, 255, 255, .78); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-radius: 22px; box-shadow: 0 1px 0 #fff inset, 0 30px 60px -24px rgba(70, 40, 10, .55);
  /* ticket notches */
  -webkit-mask: radial-gradient(12px at 0 64%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(12px at 100% 64%, transparent 98%, #000) right / 51% 100% no-repeat;
  mask: radial-gradient(12px at 0 64%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(12px at 100% 64%, transparent 98%, #000) right / 51% 100% no-repeat;
}
.ticket__year { position: absolute; top: 14px; right: 18px; font-family: var(--display); font-weight: 800; font-size: 1.1rem; color: var(--red-deep); }
.ticket__facts { display: grid; gap: 10px; margin-bottom: 16px; }
.ticket__facts dt { font-size: .82rem; color: var(--ink-soft); }
.ticket__facts dd { font-family: var(--display); font-weight: 800; font-size: 1.7rem; line-height: 1; color: var(--pine); }
.ticket__cd { display: grid; gap: 2px; padding: 14px 0 16px; margin-bottom: 4px; border-top: 2px dashed rgba(31, 75, 58, .25); font-size: .88rem; color: var(--ink-soft); }
.ticket__cd strong { color: var(--ink); font-size: 1.05rem; }
.ticket .btn { width: 100%; }

@media (max-width: 860px) {
  .scene { height: max(560px, 86svh); }
  .layer--sky { object-position: 62% 30%; }
  .layer--stalls { --w: 230%; bottom: 9%; }
  .layer--front { --w: 200%; bottom: -1%; }
  .hero__title { top: 17%; }
  .hero__l { font-size: clamp(4.2rem, 25vw, 9rem); }
  .ticket { position: relative; right: auto; bottom: auto; width: auto; margin: -70px 16px 0; }
}

/* ---------- Sections ---------- */
.sec { position: relative; padding: clamp(80px, 10vw, 140px) 0; }
.sec::after { content: ""; position: absolute; inset: 0; background: var(--grain); pointer-events: none; mix-blend-mode: multiply; opacity: .35; }
.sec > * { position: relative; z-index: 1; }
.sec--pine { background: var(--pine); color: var(--cream); }
.sec--pine .lead { color: rgba(251, 244, 232, .82); }
.sec--kraft { background: var(--kraft); }
.sec--cream { background: var(--cream); }
.sec--red { background: radial-gradient(120% 90% at 50% 0%, #C8162A, #9E0C1F 60%, #7E0818); color: #fff; }
.sec--red .h2 { color: #fff; text-shadow: 0 3px 0 #6B0614, 0 5px 0 rgba(233, 180, 76, .55); }
.sec--red .bunting h3 { color: #fff; }
.sec--red .bunting .when { color: #FFD98A; }
.sec--red .bunting p { color: rgba(255, 255, 255, .86); }
.sec--red .bunting::before { border-color: rgba(255, 255, 255, .7); }
.sec--red .bunting li:nth-child(1) .flag { background: #fff; }
.sec--red .bunting li:nth-child(4) .flag { background: #fff; }
.sec--red::after { mix-blend-mode: soft-light; }
.h2 { font-family: var(--display); font-weight: 800; font-size: clamp(2.6rem, 5.6vw, 4.6rem); line-height: .95; letter-spacing: -.005em; max-width: 18ch; text-wrap: balance; }
.sec--pine .h2 { text-shadow: 0 3px 0 var(--pine-deep), 0 5px 0 rgba(208, 32, 46, .55); }
.sec--kraft .h2, .sec--cream .h2 { color: var(--pine); text-shadow: 0 3px 0 var(--kraft-deep); }
.h3 { font-family: var(--display); font-weight: 800; font-size: clamp(1.8rem, 3vw, 2.3rem); line-height: 1; color: var(--pine); }
.lead { margin-top: 20px; max-width: 58ch; font-size: clamp(1.05rem, 1.35vw, 1.2rem); color: var(--ink-soft); }

/* Awning edge hanging over the pine section */
.awning {
  position: absolute !important; top: -1px; left: 0; right: 0; height: 66px; z-index: 2;
  background: repeating-linear-gradient(90deg, var(--red) 0 60px, var(--cream) 60px 120px);
  -webkit-mask: radial-gradient(30px at 30px 36px, #000 97%, transparent) 0 0 / 60px 66px repeat-x, linear-gradient(#000 0 0) top / 100% 36px no-repeat;
  mask: radial-gradient(30px at 30px 36px, #000 97%, transparent) 0 0 / 60px 66px repeat-x, linear-gradient(#000 0 0) top / 100% 36px no-repeat;
  filter: drop-shadow(0 10px 8px rgba(0, 0, 0, .25));
}
#mercado { padding-top: clamp(130px, 14vw, 190px); }

/* ---------- Intro + tags ---------- */
.intro { display: grid; gap: 56px; align-items: center; }
@media (min-width: 980px) { .intro { grid-template-columns: 1.05fr 1fr; gap: 64px; } }
.tags { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 18px; }
.tag {
  position: relative; display: grid; align-content: start; gap: 2px; padding: 22px 18px 20px 30px;
  background: var(--cream); color: var(--ink); border-radius: 6px 14px 14px 6px;
  transform: rotate(var(--r, 0deg)); transform-origin: 0 50%;
  box-shadow: 0 18px 30px -16px rgba(0, 0, 0, .55);
  clip-path: polygon(16px 0, 100% 0, 100% 100%, 16px 100%, 0 50%);
  transition: transform .5s var(--ease);
}
.tag::before { content: ""; position: absolute; left: 12px; top: 50%; width: 9px; height: 9px; margin-top: -4.5px; border-radius: 50%; background: var(--pine); box-shadow: inset 0 1px 2px rgba(0, 0, 0, .5); }
.tag:hover { transform: rotate(0deg) translateY(-3px); }
.tag__k { font-size: .82rem; color: var(--ink-soft); }
.tag__v { font-family: var(--display); font-weight: 800; font-size: clamp(1.7rem, 2.6vw, 2.3rem); line-height: 1; color: var(--pine); }
.tag__s { margin-top: 6px; font-size: .86rem; line-height: 1.35; color: var(--ink-soft); }
.tag--hours { background: #FDECEC; }
.tag--hours dl { display: grid; gap: 4px; margin-top: 4px; }
.tag--hours dt { font-size: .82rem; color: var(--ink-soft); }
.tag--hours dd { font-family: var(--display); font-weight: 800; font-size: 1.35rem; line-height: 1; color: var(--red-deep); }
@media (max-width: 520px) { .tags { grid-template-columns: 1fr; } .tag { margin-right: 14px; } }

/* ---------- Areas: stalls ---------- */
.stalls { display: grid; gap: 28px; margin-top: 56px; }
@media (min-width: 900px) { .stalls { grid-template-columns: repeat(3, 1fr); gap: 22px; } }
.stall { position: relative; display: flex; flex-direction: column; }
.stall__img { position: relative; z-index: 2; width: 88%; margin: 0 auto -38px; filter: drop-shadow(0 22px 16px rgba(80, 45, 10, .3)); transition: transform .5s var(--ease); }
.stall:hover .stall__img { transform: translateY(-8px) rotate(-1deg); }
.stall__card { flex: 1; display: flex; flex-direction: column; gap: 10px; padding: 56px 24px 26px; border-radius: 22px; background: var(--cream); box-shadow: 0 1px 0 #fff inset, 0 26px 50px -30px rgba(80, 45, 10, .6); }
.stall__count { font-size: .95rem; color: var(--ink-soft); }
.stall__count strong { font-family: var(--display); font-size: 2.4rem; line-height: 1; color: var(--red-deep); margin-right: 4px; }
.stall h3 { font-family: var(--display); font-weight: 800; font-size: 2rem; line-height: 1; color: var(--pine); }
.stall ul { display: grid; gap: 4px; padding: 0; margin: 0 0 8px; font-size: .95rem; }
.stall li { position: relative; padding-left: 18px; }
.stall li::before { content: ""; position: absolute; left: 0; top: .62em; width: 8px; height: 8px; border-radius: 2px; background: var(--red); transform: rotate(45deg); }
.stall .btn { margin-top: auto; align-self: flex-start; }

/* ---------- How it works: bunting ---------- */
.bunting { position: relative; display: grid; gap: 34px; margin-top: 64px; padding: 0; }
@media (min-width: 900px) {
  .bunting { grid-template-columns: repeat(4, 1fr); gap: 26px; padding-top: 70px; }
  .bunting::before { /* the string */
    content: ""; position: absolute; top: 12px; left: -2%; right: -2%; height: 40px;
    border-top: 2px solid var(--ink-soft); border-radius: 50% / 100% 100% 0 0; transform: scaleY(-1); opacity: .6;
  }
}
.bunting li { position: relative; padding-left: 70px; }
@media (min-width: 900px) { .bunting li { padding-left: 0; } }
.flag { position: absolute; left: 0; top: 0; width: 52px; height: 62px; background: var(--red); clip-path: polygon(0 0, 100% 0, 50% 100%); transform-origin: 50% 0; animation: sway 4.5s ease-in-out infinite; animation-delay: calc(var(--i, 0) * -1.1s); }
.bunting li:nth-child(2) .flag { background: var(--pine); --i: 1; }
.bunting li:nth-child(3) .flag { background: var(--gold); --i: 2; }
.bunting li:nth-child(4) .flag { background: var(--red-deep); --i: 3; }
@media (min-width: 900px) { .flag { position: relative; display: block; margin: -62px 0 22px; } .bunting li:nth-child(2) .flag, .bunting li:nth-child(3) .flag { margin-top: -50px; } }
@keyframes sway { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } }
.bunting h3 { font-family: var(--display); font-weight: 800; font-size: 2rem; line-height: 1; color: var(--pine); }
.bunting .when { margin: 4px 0 8px; font-weight: 700; color: var(--red-deep); }
.bunting p { font-size: .98rem; color: var(--ink-soft); }

/* ---------- Application ---------- */
.sec--form { background: radial-gradient(120% 80% at 50% 0%, #27604A, var(--pine) 55%, var(--pine-deep)); }
.wrap--form { display: grid; gap: 34px; }
@media (min-width: 1040px) { .wrap--form { grid-template-columns: 330px 1fr; gap: 56px; align-items: start; } .form-head { position: sticky; top: 110px; } }
.form-head__cd { margin-top: 24px; display: inline-flex; flex-wrap: wrap; gap: 6px; padding: 12px 18px; border-radius: 14px; background: rgba(251, 244, 232, .1); box-shadow: inset 0 0 0 1px rgba(251, 244, 232, .2); }
.form-head__cd strong { color: #FFB3BA; }
.sheet { position: relative; padding: clamp(26px, 4vw, 48px); border-radius: 26px; background: var(--cream); color: var(--ink); box-shadow: 0 2px 0 #fff inset, 0 50px 80px -40px rgba(0, 0, 0, .7); }
.sheet::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: var(--grain); opacity: .6; pointer-events: none; }
.sheet > * { position: relative; }
.sheet__clip { position: absolute !important; top: -16px; left: 50%; width: 120px; height: 32px; margin-left: -60px; border-radius: 10px; background: repeating-linear-gradient(90deg, var(--red) 0 20px, var(--cream) 20px 40px); box-shadow: 0 6px 12px -4px rgba(0, 0, 0, .35); }
.mf-steps li { color: var(--pine); }
.mf-title { font-family: var(--display); font-weight: 800; font-size: 2.1rem; line-height: 1; color: var(--pine); }
.mf-back { color: var(--pine); }
.mf-areas .mf-choice__box strong { font-family: var(--display); font-size: 1.45rem; font-weight: 800; color: var(--pine); line-height: 1; }
.mf-done__kicker { font-weight: 700; color: var(--ok); }
.mf-done__ref { font-family: var(--display); color: var(--pine); }
.mf-done__warn { padding: 14px 16px; border-radius: 12px; background: #FDECEC; }
.mf-state { padding: 16px 18px; margin-bottom: 24px; border-radius: 16px; background: #FDECEC; box-shadow: inset 0 0 0 1px rgba(208, 32, 46, .18); }
.mf-state p:not(.mf-state__title) { color: var(--ink-soft); }
.mf-state__title { font-family: var(--display); font-weight: 800; font-size: 1.6rem; line-height: 1.05; color: var(--red-deep); margin-bottom: 4px; }
.mf-submit:disabled:not([aria-busy="true"]) { filter: grayscale(.35) brightness(.95); opacity: .8; cursor: not-allowed; transform: none; }

/* ---------- Rules + FAQ ---------- */
.rules { display: grid; gap: 56px; }
@media (min-width: 980px) { .rules { grid-template-columns: 1fr 1fr; gap: 72px; } }
.rules__list { display: grid; gap: 14px; margin-top: 28px; padding: 0; }
.rules__list li { padding: 16px 18px; border-radius: 14px; background: #fff; box-shadow: 0 10px 24px -20px rgba(80, 45, 10, .6); }
.rules__list strong { color: var(--pine); }
.rules__doc { margin-top: 18px; padding: 14px 16px; border-radius: 12px; border: 2px dashed var(--kraft-deep); font-size: .95rem; color: var(--ink-soft); }
.faq { margin-top: 22px; border-top: 2px solid var(--line); }
.faq__item { border-bottom: 2px solid var(--line); }
.faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; padding: 14px 0; cursor: pointer; list-style: none; font-weight: 700; color: var(--pine); }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary i { flex: none; position: relative; width: 30px; height: 30px; border-radius: 50%; background: var(--kraft); transition: transform .3s var(--ease), background .2s; }
.faq__item summary i::before, .faq__item summary i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; background: var(--pine); }
.faq__item summary i::after { transform: rotate(90deg); transition: transform .3s var(--ease); }
.faq__item[open] summary i { background: var(--red); transform: rotate(180deg); }
.faq__item[open] summary i::after { transform: rotate(0deg); }
.faq__item p { padding: 0 44px 18px 0; color: var(--ink-soft); }

.sec--privacy { padding: 56px 0; }
.privacy { max-width: 860px; }
.privacy p { margin-top: 12px; color: var(--ink-soft); font-size: .97rem; }
.privacy__draft { display: inline-block; padding: 4px 10px; border-radius: 6px; background: #FFF4D6; color: #6B4B00 !important; font-weight: 600; font-size: .85rem !important; }

/* ---------- Footer: a closing scene ---------- */
.foot { position: relative; overflow: hidden; padding-top: clamp(72px, 9vw, 120px); background: radial-gradient(120% 80% at 50% 100%, #1E5A43, var(--pine-deep) 60%); color: rgba(255, 255, 255, .86); }
.foot__top { display: grid; gap: 40px; align-items: end; }
@media (min-width: 960px) { .foot__top { grid-template-columns: 1.1fr 1fr; gap: 64px; } }
.foot__lead { max-width: 20ch; font-family: var(--display); font-weight: 800; font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1; color: #fff; text-wrap: balance; margin-bottom: 24px; }
.foot__org { display: grid; gap: 18px; }
@media (min-width: 960px) { .foot__org { justify-items: end; text-align: right; } }
.foot__logos { display: flex; flex-wrap: wrap; align-items: center; gap: 22px 36px; }
.foot__logos img { height: 42px; width: auto; }
.foot__meta { font-size: .9rem; color: rgba(255, 255, 255, .72); }
.foot__meta a { color: #fff; }

.foot__stage { position: relative; margin-top: clamp(48px, 6vw, 88px); height: clamp(300px, 27vw, 500px); overflow: hidden; isolation: isolate; }
.foot__snow { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.foot__word {
  position: absolute; z-index: 1; left: 0; right: 0; bottom: calc(var(--band) * .96); text-align: center; white-space: nowrap;
  font-family: var(--display); font-weight: 900; text-transform: uppercase; line-height: .8; font-size: clamp(3.4rem, 10.4vw, 13.5rem);
  color: #fff; text-shadow: 0 2px 0 #CFD8D3, 0 4px 0 #A9B8B0, 0 6px 0 #0C241A, 0 8px 0 #0C241A, 0 26px 34px rgba(0, 0, 0, .45);
}
.foot__word span { display: inline-block; }
.foot__word span + span { color: #FF3B47; text-shadow: 0 2px 0 #C8102E, 0 4px 0 #A50D24, 0 6px 0 #5E0614, 0 8px 0 #5E0614, 0 26px 34px rgba(0, 0, 0, .45); }
/* Only the bottom band of the garland (cones, baubles, holly) shows: a strip cut from the hero garland,
 * so the letters rest on it and nothing covers the words */
.foot__stage { --gw: max(104vw, 900px); --band: calc(var(--gw) * 1029 / 2400 * .27); }
.foot__band { position: absolute; z-index: 2; left: 50%; bottom: 0; width: var(--gw); height: var(--band); transform: translateX(-50%); overflow: hidden; pointer-events: none;
  /* the strip is cut from a taller image: fade its top so the cut edge never shows */
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, rgba(0, 0, 0, .55) 14%, #000 32%); mask-image: linear-gradient(to bottom, transparent 0, rgba(0, 0, 0, .55) 14%, #000 32%); }
.foot__garland { position: absolute; left: 0; bottom: -2%; width: 100%; max-width: none; }
@media (max-width: 700px) {
  .foot__stage { --gw: 250vw; height: 330px; }
  .foot__word { font-size: 22vw; line-height: .98; white-space: normal; }
  .foot__word span { display: block; }
  .foot__logos img { height: 34px; }
}
.foot__base { position: relative; z-index: 3; padding: 18px 0; background: #fff; display: flex; justify-content: center; }
.foot__bar { width: min(720px, calc(100% - 40px)); }

/* ---------- Scroll reveals (see main.js): visible by default, hidden only while "armed" ---------- */
[data-reveal] { transition: opacity .8s var(--ease), transform .9s cubic-bezier(.3, 1.3, .5, 1), translate .9s var(--ease); transition-delay: calc(var(--ri, 0) * 120ms); }
.stall[data-reveal="armed"], .bunting li[data-reveal="armed"] { opacity: 0; translate: 0 60px; }
.tag[data-reveal="armed"] { opacity: 0; translate: 0 30px; rotate: -10deg; }
.tag[data-reveal] { transition-property: opacity, translate, rotate, transform; transition-duration: .8s, .9s, 1s, .5s; transition-timing-function: var(--ease), var(--ease), cubic-bezier(.3, 1.6, .4, 1), var(--ease); }
.foot__word span[data-reveal="armed"] { opacity: 0; translate: 0 60%; }
