/* Christmas 2026: poster colours, with Southdown's typography and evergreen. */
.christmas-page {
  --festive-red: #a4212b;
  --festive-green: #173e30;
  --festive-gold: #b79752;
  --festive-cream: #fff9ec;
  background: #faf7ef;
}

.christmas-page main section { padding: 76px 0; }
.christmas-page h1, .christmas-page h2, .christmas-page h3 { letter-spacing: -0.035em; }
.christmas-page h2 { font-family: "DM Serif Display", Georgia, serif; font-weight: 400; line-height: 1.1; }
.christmas-page .eyebrow { color: #805e22; }
.christmas-page p { color: #4c6055; }
.christmas-page :is(a, summary):focus-visible { outline: 3px solid #a4212b; outline-offset: 5px; }
.christmas-page section[id] { scroll-margin-top: 130px; }
.christmas-page .button { background: var(--festive-red); box-shadow: none; }
.christmas-page .button.ghost { background: transparent; color: var(--festive-green); border-color: #789080; }

.christmas-page .festive-hero {
  position: relative;
  overflow: hidden;
  padding: 54px 0 64px;
  background:
    radial-gradient(ellipse at 100% 0, #c8e1e9 0, transparent 58%),
    radial-gradient(ellipse at 0 100%, #ece3ca 0, transparent 50%),
    #fff9ec;
}

.festive-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .65;
  background-image: radial-gradient(circle, #fff 1.5px, transparent 2px), radial-gradient(circle, #fff 2.5px, transparent 3px);
  background-size: 43px 61px, 119px 137px;
  background-position: 10px 0, 37px 25px;
}

.festive-lights { position: absolute; top: 0; left: 0; right: 0; height: 20px; border-top: 2px solid #355846; }
.festive-lights::after {
  content: "";
  position: absolute;
  inset: -2px 0 0;
  background: radial-gradient(ellipse at 50% 0, #fff5bd 0 4px, #d6b766 5px, transparent 8px) 0 0 / 68px 18px repeat-x;
  filter: drop-shadow(0 3px 6px #d6ad59);
}

.festive-hero-grid { position: relative; display: grid; grid-template-columns: 1.15fr .85fr; gap: 64px; align-items: center; }
.festive-kicker { display: inline-flex; align-items: center; gap: 10px; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.festive-kicker::before { content: ""; width: 26px; height: 2px; background: var(--festive-red); }
.festive-hero .festive-kicker { color: var(--festive-red); margin: 0 0 24px; }
.festive-hero h1 { font-family: "DM Serif Display", Georgia, serif; font-weight: 400; font-size: clamp(3.4rem, 5.6vw, 5.3rem); line-height: 1.02; color: var(--festive-red); }
.festive-hero h1 em { display: block; margin-top: 12px; color: var(--festive-green); font-size: .78em; font-weight: 400; }
.festive-hero .festive-lead { margin: 26px 0 16px; max-width: 48ch; font-size: 1.12rem; }
.festive-hero .festive-local { max-width: 49ch; font-size: .95rem; }
.festive-hero .button-row { margin-top: 28px; }
.festive-hero .festive-small { margin-top: 18px; font-size: .82rem; }
.festive-small a { text-decoration: underline; text-underline-offset: 3px; }
.poster-figure { position: relative; width: 100%; max-width: 410px; margin: 0 auto; }
.poster-link { display: block; padding: 7px; background: #173e30; border: 1px solid #d2b777; border-radius: 13px; box-shadow: 0 22px 50px #10393030; transform: rotate(1.5deg); transition: transform .2s ease; }
.poster-link:hover { transform: rotate(0); }
.poster-link img { height: auto; border-radius: 7px; }
.poster-figure figcaption { margin: 18px 0 0; text-align: center; color: #4c6055; font-size: .8rem; }
.poster-figure figcaption a { text-decoration: underline; text-underline-offset: 4px; }

.market-details { background: var(--festive-green); color: var(--festive-cream); border-top: 3px solid var(--festive-gold); }
.market-details-inner { display: grid; grid-template-columns: 1fr 1fr 1fr; padding: 26px 0; }
.market-details-inner > div { padding: 0 30px; border-left: 1px solid #ffffff30; }
.market-details-inner > div:first-child { border-left: 0; padding-left: 0; }
.market-details span { display: block; margin-bottom: 6px; color: #e4c888; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 800; }
.market-details strong { display: block; font-size: 1.05rem; line-height: 1.5; }
.market-details small { display: block; margin-top: 4px; color: #d0dfd3; line-height: 1.5; }
.market-details a { text-decoration: underline; text-underline-offset: 4px; }

.festive-section-heading { max-width: 650px; margin-bottom: 34px; }
.festive-section-heading h2 { color: var(--festive-green); }
.festive-section-heading > p:last-child { margin-bottom: 0; }
.tree-prices { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.tree-tag { position: relative; padding: 34px 20px 22px; border: 1px solid #d9dfd7; border-top: 6px solid var(--tag-colour); border-radius: 10px 10px 24px 10px; background: #fffdf8; }
.tree-tag::before { content: ""; position: absolute; top: 12px; left: 20px; width: 8px; height: 8px; border-radius: 50%; background: #e7dfcd; box-shadow: inset 0 1px 2px #173e3033; }
.tree-tag-blue { --tag-colour: #2162b4; }
.tree-tag-red { --tag-colour: #bf2433; }
.tree-tag-purple { --tag-colour: #86349b; }
.tree-tag-orange { --tag-colour: #d76a16; }
.tree-tag-green { --tag-colour: #397745; background: #eef3e9; }
.tree-tag .tag-name { margin: 0 0 16px; color: #4c6055; font-size: .78rem; font-weight: 700; }
.tree-tag h3 { color: var(--festive-green); font-family: "DM Serif Display", Georgia, serif; font-weight: 400; font-size: 2.25rem; letter-spacing: -.02em; }
.tree-tag .tag-price { margin: 14px 0 0; color: var(--festive-red); font-size: 2.2rem; line-height: 1.1; font-weight: 800; letter-spacing: -.04em; }
.tree-tag .tag-variety { margin: 8px 0 0; font-size: .78rem; }
.christmas-page .price-note { margin-top: 20px; font-size: .86rem; }
.christmas-page .price-note a { color: var(--festive-green); text-decoration: underline; text-underline-offset: 3px; }

.christmas-page .stands-section { padding-top: 0; }
.stands-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 64px; align-items: center; border-top: 1px solid #dcded1; padding-top: 48px; }
.stands-layout .festive-section-heading { margin: 0; }
.stand-list { margin: 0; }
.stand-list > div { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 18px; padding: 16px 0; border-bottom: 1px solid #dcded1; }
.stand-list > div:first-child { padding-top: 0; }
.stand-list dt { font-weight: 700; line-height: 1.55; color: var(--festive-green); }
.stand-list dt span { display: block; color: #4c6055; font-size: .85rem; font-weight: 400; }
.stand-list dd { margin: 0; color: var(--festive-red); font-size: 1.65rem; font-weight: 800; }

.christmas-page .visit-section { background: #eaf1f1; border-top: 1px solid #d7e2df; border-bottom: 1px solid #d7e2df; }
.visit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.venue-address { margin: 26px 0; font-style: normal; font-size: 1.12rem; line-height: 1.7; color: var(--festive-green); }
.venue-address strong { font-size: 1.3rem; }
.visit-hours { padding: 32px; background: #fffdf8; border: 1px solid #d6dece; border-radius: 16px; box-shadow: 0 8px 24px #173e3006; }
.visit-hours h3 { margin-bottom: 22px; color: var(--festive-green); font-family: "DM Serif Display", Georgia, serif; font-weight: 400; font-size: 1.8rem; }
.visit-hours dl { margin: 0; }
.visit-hours dl > div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 20px; padding: 12px 0; border-top: 1px solid #d6dece; line-height: 1.5; }
.visit-hours dt { color: #4c6055; }
.visit-hours dd { margin: 0; font-weight: 800; color: var(--festive-green); }
.visit-hours .opening-note { margin: 20px 0 0; padding: 14px; background: #f5eedf; font-size: .85rem; }
.visit-contact { padding-top: 12px; }
.visit-contact a { font-weight: 800; text-decoration: underline; text-underline-offset: 4px; }
.visit-contact p { margin: 8px 0 0; font-size: .9rem; }

.local-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.local-grid h2 { max-width: 17ch; }
.local-copy > p:first-child { margin-top: 0; }
.nearby-places { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 22px 0; list-style: none; }
.nearby-places li { padding: 6px 14px; border: 1px solid #d6dece; border-radius: 50px; color: var(--festive-green); font-size: .82rem; }
.local-copy a { color: var(--festive-red); text-decoration: underline; text-underline-offset: 4px; font-weight: 700; }

.christmas-page .christmas-faq-section { padding-top: 0; }
.christmas-faq { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: start; }
.christmas-faq details { padding: 22px 24px; border: 1px solid #d6dece; border-radius: 12px; background: #fffdf8; }
.christmas-faq summary { cursor: pointer; color: var(--festive-green); font-weight: 800; line-height: 1.6; }
.christmas-faq details p { margin: 14px 0 0; font-size: .94rem; }
.christmas-faq details a { text-decoration: underline; text-underline-offset: 3px; }
.christmas-page .festive-closing { padding: 46px 0; background: var(--festive-red); color: var(--festive-cream); }
.festive-closing .wrap { display: flex; align-items: center; justify-content: space-between; gap: 36px; }
.festive-closing h2 { color: var(--festive-cream); font-size: clamp(2rem, 3.4vw, 3rem); }
.festive-closing p { color: #fff2de; margin-bottom: 0; }
.festive-closing .button { flex-shrink: 0; color: var(--festive-green); background: var(--festive-cream); }
.christmas-page .site-footer { margin-top: 0; }
.christmas-page .site-footer p { color: #f8f4ecd1; }
.christmas-page .site-footer .eyebrow { color: #e4c888; }

@media (max-width: 1050px) {
  .festive-hero-grid { gap: 36px; }
  .tree-prices { gap: 10px; }
  .tree-tag { padding-left: 15px; padding-right: 15px; }
  .tree-tag h3 { font-size: 1.9rem; }
  .stands-layout, .visit-grid, .local-grid { gap: 36px; }
}

@media (max-width: 800px) {
  .festive-hero-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .festive-hero h1 { font-size: 3.4rem; }
  .festive-hero .festive-lead { font-size: 1rem; }
  .festive-kicker { font-size: .65rem; }
  .tree-prices { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .stands-layout, .visit-grid, .local-grid { grid-template-columns: 1fr; }
  .local-grid h2 { max-width: 24ch; }
  .market-details-inner > div { padding: 0 16px; }
}

@media (max-width: 600px) {
  .christmas-page main section { padding: 48px 0; }
  .christmas-page section[id] { scroll-margin-top: 210px; }
  .christmas-page .festive-hero { padding: 36px 0 42px; }
  .festive-hero-grid { grid-template-columns: 1fr; gap: 30px; }
  .festive-hero h1 { font-size: clamp(3.2rem, 12vw, 4.5rem); }
  .festive-hero h1 em { font-size: .75em; }
  .festive-hero .festive-kicker { margin-bottom: 18px; font-size: .65rem; }
  .festive-hero .festive-lead { margin-top: 20px; }
  .poster-figure { max-width: 340px; width: calc(100% - 12px); }
  .poster-link { transform: none; }
  .market-details-inner { grid-template-columns: 1fr; padding: 8px 0; }
  .market-details-inner > div, .market-details-inner > div:first-child { padding: 18px 0; border-left: 0; border-top: 1px solid #ffffff30; }
  .market-details-inner > div:first-child { border-top: 0; }
  .tree-prices { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .tree-tag:last-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 16px; }
  .tree-tag:last-child .tag-name { grid-column: 1 / -1; }
  .tree-tag:last-child .tag-price { grid-column: 2; grid-row: 2; margin: 0; }
  .tree-tag:last-child .tag-variety { grid-column: 1 / -1; }
  .tree-tag h3 { font-size: 2.1rem; }
  .christmas-page .stands-section, .christmas-page .christmas-faq-section { padding-top: 0; }
  .stands-layout { padding-top: 32px; }
  .visit-hours { padding: 24px; }
  .christmas-faq { grid-template-columns: 1fr; }
  .festive-closing .wrap { align-items: stretch; flex-direction: column; gap: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .poster-link { transition: none; }
}
