:root { --forest:#1c5d46; --forest-dark:#144733; --text:#1c3128; --cream:#faf8f1; --sage:#e9f2e8; --muted:#54665d; --border:#d7e1d8; font:17px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--text); background:var(--cream); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; }
a { color:var(--forest-dark); }
a:focus-visible,button:focus-visible,input:focus-visible { outline:3px solid #cd862f; outline-offset:3px; }
.page-width { width:min(1120px,calc(100% - 40px)); margin-inline:auto; }
.skip-link { position:absolute; transform:translateY(-180%); left:1rem; z-index:20; padding:.65rem 1rem; background:white; }
.skip-link:focus { transform:none; }
/* Header: use the supplied five-pine-tree Winter Cafe logo on every page. */
.site-header { background:#fffdf8; border-bottom:1px solid var(--border); }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; min-height:112px; }
.site-brand { display:flex; align-items:center; gap:1.1rem; color:var(--forest-dark); text-decoration:none; flex:0 1 auto; min-width:0; }
.site-brand-logo { display:block; flex:none; width:94px; height:auto; }
.site-brand-title { display:block; font-weight:750; line-height:1.14; letter-spacing:-.035em; font-size:clamp(1.06rem,1.72vw,1.55rem); }
.site-brand-title strong { font-weight:850; }
.site-nav { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:.25rem .32rem; flex:0 0 auto; }
.site-nav a { display:inline-block; color:#20362c; text-decoration:none; font-size:.89rem; font-weight:700; padding:.55rem .76rem; border-radius:9px; white-space:nowrap; }
.site-nav a:hover,.site-nav a:focus-visible { background:#e9f2e8; }
.site-nav a.is-current { background:#16563b; color:white; }
@media (max-width:1020px) {
  .header-inner { gap:1rem; }
  .site-brand-logo { width:78px; }
  .site-nav a { font-size:.85rem; padding:.45rem .52rem; }
}
@media (max-width:800px) {
  .header-inner { flex-wrap:wrap; justify-content:center; padding-block:.7rem .55rem; gap:.35rem; }
  .site-brand { margin-inline:auto; }
  .site-brand-logo { width:70px; }
  .site-brand-title { font-size:1.28rem; }
  .site-nav { width:100%; justify-content:center; }
  .site-nav a { font-size:.85rem; padding:.42rem .58rem; }
}
@media (max-width:520px) {
  /* Two balanced rows rather than a solitary final link on narrow screens. */
  .site-nav { max-width:285px; margin-inline:auto; }
}
@media (max-width:400px) {
  .site-brand-logo { width:59px; }
  .site-brand-title { font-size:1.05rem; }
  .site-nav a { font-size:.79rem; padding:.37rem .47rem; }
}
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { line-height:1.17; letter-spacing:-.035em; }
h1 { font-size:clamp(2.4rem,5.5vw,4.5rem); font-weight:850; }
h2 { font-size:clamp(1.8rem,3.5vw,2.55rem); }
h3 { font-size:1.14rem; }
p { line-height:1.65; }
.eyebrow { color:var(--forest); font-size:.77rem; font-weight:850; text-transform:uppercase; letter-spacing:.14em; margin-bottom:1rem; }
.lead { font-size:1.13rem; max-width:640px; }
.small,.helper,.footnote,.field-note { color:var(--muted); font-size:.87rem; }
.button { appearance:none; border:0; border-radius:10px; padding:.84rem 1.13rem; font:inherit; font-size:.96rem; font-weight:750; cursor:pointer; display:inline-flex; justify-content:center; align-items:center; gap:.9rem; text-align:center; text-decoration:none; min-height:48px; }
.button-primary { background:var(--forest); color:white; box-shadow:0 8px 18px #183e2c18; }
.button-primary:hover { background:var(--forest-dark); }
.button-light { color:var(--forest-dark); background:white; white-space:nowrap; }
.button-light:hover { background:#eaf3e9; }
.text-link { font-size:.96rem; font-weight:750; text-decoration:underline; text-underline-offset:4px; }
.hero { background:linear-gradient(120deg,#edf4e9,#fbf7e8); overflow:hidden; }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr); gap:4rem; align-items:center; min-height:555px; padding-block:4.4rem; }
.hero-copy h1 { max-width:720px; }
.hero-copy .lead { max-width:625px; }
.welcome { font-size:1.22rem; font-weight:750; margin:1.3rem 0 2rem; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.25rem; }
.hero-copy .helper { margin:1.4rem 0 0; max-width:520px; }
.hero-art { display:grid; place-items:center; }
.logo-card { width:min(100%,430px); aspect-ratio:1.13; background:#fffcf3; border:1px solid #e2e7d8; border-radius:25px; padding:1.5rem; display:grid; place-items:center; box-shadow:0 20px 46px #27503b1a; transform:rotate(2deg); }
.hero-logo { width:100%; height:auto; display:block; }
.visit-section,.info-section { padding-block:4rem; }
.section-heading { margin-bottom:1.6rem; }
.fact-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.fact { background:white; border:1px solid var(--border); border-radius:16px; padding:1.5rem; min-height:260px; }
.fact-icon { width:42px; height:42px; border-radius:50%; background:var(--sage); color:var(--forest); display:grid; place-items:center; font-weight:900; font-size:1.4rem; margin-bottom:1.2rem; }
.fact h3 { margin-bottom:.65rem; }
.fact p { font-size:.94rem; }
.fact p:last-child { margin-bottom:0; }
.menu-section { background:#edf1e8; padding-block:4rem; }
.menu-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:5rem; }
.menu-layout>div:first-child>p:last-child { max-width:475px; }
.menu-item { display:flex; gap:1rem; padding:1.2rem 0; border-bottom:1px solid #cbd8c9; }
.menu-item:first-child { padding-top:0; }
.menu-item:last-child { border-bottom:0; }
.menu-dot { margin-top:.35rem; width:14px; height:14px; border-radius:50%; flex:0 0 14px; background:#2f8261; box-shadow:0 0 0 5px #d9e8d8; }
.menu-item h3 { margin:0 0 .35rem; }
.menu-item p { margin:0; }
.info-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; }
.info-grid div { border-top:2px solid var(--border); padding-top:1.2rem; }
.volunteer-panel { background:var(--forest); color:white; border-radius:20px; display:flex; align-items:center; justify-content:space-between; gap:3rem; padding:2.6rem 3.1rem; margin-bottom:4rem; }
.volunteer-panel .eyebrow { color:#c9e9d6; }
.volunteer-panel h2 { margin-bottom:.7rem; }
.volunteer-panel p:last-child { margin-bottom:0; }
.site-footer { background:#e5ede3; border-top:1px solid #d3ded1; color:#43594d; font-size:.85rem; }
.footer-links { display:flex; flex-wrap:wrap; align-items:center; column-gap:1.2rem; row-gap:.35rem; }
.privacy-content { max-width:780px; }
.privacy-content h2 { font-size:1.4rem; margin-top:2rem; margin-bottom:.6rem; }
.privacy-content p { margin-bottom:.75rem; }
.action-note { background:var(--sage); border-left:4px solid var(--forest); padding:.9rem 1.1rem; border-radius:0 9px 9px 0; margin-top:1.5rem; }
.action-note p:last-child { margin-bottom:0; }
.footer-inner { display:flex; justify-content:space-between; gap:1rem; padding-block:1.4rem; align-items:flex-start; }
.inner-page { padding-block:2rem 5rem; min-height:70vh; }
.narrow-page { max-width:760px; }
.back-link { display:inline-block; font-size:.91rem; font-weight:700; margin-bottom:1.9rem; text-underline-offset:4px; }
.page-intro { max-width:810px; margin-bottom:2rem; }
.page-intro h1 { font-size:clamp(2.2rem,4.1vw,3.4rem); margin-bottom:1rem; }
.page-intro .lead { font-size:1.03rem; }
.date-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.date-card,.form-card { border-radius:16px; border:1px solid var(--border); background:white; box-shadow:0 3px 12px #183e2c09; padding:1.35rem; }
.date-card { display:flex; flex-direction:column; }
.date-top { display:flex; align-items:flex-start; justify-content:space-between; gap:.8rem; }
.date-top h2 { font-size:1.25rem; margin-bottom:1rem; }
.pill { padding:.3rem .58rem; border-radius:50px; font-size:.76rem; background:#e7f3e8; color:#165034; font-weight:750; white-space:nowrap; }
.pill-full { background:#f7e9e5; color:#843a2e; }
.list-label { font-weight:750; color:var(--muted); font-size:.81rem; margin-bottom:.5rem; }
.names-list { padding-left:1.2rem; margin-top:0; }
.names-list li { padding:.13rem 0; }
.empty-hint { color:var(--muted); font-size:.9rem; }
.card-action { margin-top:auto; }
.card-end { margin-top:auto; padding:.5rem 0; color:var(--muted); font-size:.87rem; }
.footnote { margin-top:1.8rem; }
.success { padding:1rem 1.3rem; border:1px solid #8bbe99; border-radius:10px; color:#164f33; background:#e7f5e8; margin:1.5rem 0; }
.form-card { padding:2rem; }
.form-card h2 { font-size:1.45rem; }
.form-card .names-list { margin-bottom:2rem; }
.field { margin:1.1rem 0; }
.field label { display:block; margin-bottom:.35rem; font-weight:740; }
.required { font-size:.82rem; color:var(--muted); font-weight:500; }
.field input { display:block; width:100%; padding:.74rem .85rem; min-height:48px; border-radius:8px; background:#fff; color:var(--text); border:1px solid #a8bbaf; font:inherit; }
.field input:hover { border-color:var(--forest); }
.field-note { margin:.5rem 0 1rem; }
.submit-button { width:100%; margin-top:1.5rem; }
.error { border-left:4px solid #a53c34; padding:.8rem 1rem; background:#fff1ef; }
@media (max-width:960px) { .fact-grid{grid-template-columns:repeat(2,1fr)} .hero-grid{gap:2rem;grid-template-columns:1fr 340px} .menu-layout{gap:2.5rem} .date-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:690px) { :root{font-size:16px} .page-width{width:min(100% - 32px,1120px)} .header-inner{min-height:72px} .hero-grid{grid-template-columns:1fr;gap:2.1rem;padding-block:3.2rem} .hero-art{grid-row:1} .logo-card{width:210px;aspect-ratio:auto;border-radius:15px;padding:.7rem;transform:none} .hero-copy h1{font-size:2.7rem} .fact-grid,.info-grid,.menu-layout,.date-grid{grid-template-columns:1fr} .fact{min-height:0} .menu-section,.visit-section,.info-section{padding-block:3rem} .volunteer-panel{display:block;padding:2rem 1.5rem} .volunteer-panel .button{margin-top:1rem;white-space:normal} .footer-inner{display:block} .footer-links{margin-top:.5rem}.footer-inner a{display:inline-block;margin-top:.3rem} .form-card{padding:1.25rem} }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto} }

/* Home-page invitation to volunteer: two clearly separated choices. */
.help-section { background:#e9f2e8; padding:4rem 0 4.7rem; }
.help-heading { max-width:860px; margin-bottom:2rem; }
.help-heading .lead { max-width:780px; }
.help-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; align-items:stretch; }
.help-card { background:white; border:1px solid var(--border); border-radius:20px; padding:2.1rem; box-shadow:0 10px 24px #183e2c0e; display:flex; flex-direction:column; align-items:flex-start; }
.help-card h3 { font-size:1.55rem; margin:.15rem 0 .85rem; }
.help-card p { font-size:.96rem; }
.help-card h3.help-card-heading { width:100%; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.7rem; text-align:center; margin:.1rem 0 1.1rem; }
/* The images retain their native aspect ratios; both sit within their headings. */
.help-illustration { display:block; width:auto; height:48px; max-width:64px; object-fit:contain; flex:0 0 auto; }
.help-button { margin-top:auto; }
.help-email { margin:1.25rem 0 0; }
.help-card .help-email { font-size:.9rem; }
@media (max-width:760px) {
  .help-section { padding:3rem 0; }
  .help-grid { grid-template-columns:1fr; }
  .help-card { padding:1.55rem; }
  .help-button { width:100%; }
}


/* Opening-day splash: green-and-cream layout approved November 2026. */
.opening-splash { background:#f9f8f1; padding:1.75rem 0 1.15rem; }
.opening-splash .page-width { max-width:1220px; }
.opening-card { overflow:hidden; border:1px solid #e2ead6; border-radius:24px; background:linear-gradient(105deg,#fbfdef 0%,#f4f8e9 60%,#edf3e0 100%); box-shadow:0 10px 24px #193e2b0a; padding:2rem 2.25rem 2rem; }
.opening-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(285px,.8fr); gap:2.6rem; align-items:center; }
.opening-copy { padding:.1rem 0 .1rem 1.75rem; border-left:5px solid #458a55; }
.opening-copy h1 { font-size:clamp(2.45rem,4.3vw,4.05rem); font-weight:850; line-height:1.09; letter-spacing:-.048em; color:#083c2d; margin:0 0 .38rem; }
.opening-subtitle { font-size:clamp(1.48rem,2.55vw,2.34rem); color:#46752a; line-height:1.14; font-weight:770; margin:0 0 .95rem; }
.opening-description { font-size:1.09rem; line-height:1.45; max-width:670px; margin:0 0 1.35rem; }
.opening-details { display:flex; align-items:center; flex-wrap:wrap; gap:1rem 1.5rem; }
.opening-detail { display:flex; align-items:center; gap:.7rem; }
.opening-detail svg { display:block; width:32px; height:32px; flex:none; color:#125f43; }
.opening-detail strong,.opening-detail span { display:block; line-height:1.3; }
.opening-detail strong { font-weight:800; }
.opening-detail span { font-size:.96rem; }
.opening-closure { font-size:.89rem; font-style:italic; margin:1.1rem 0 0; color:#2e563d; }
.opening-logo-wrap { display:flex; justify-content:center; align-items:center; min-width:0; }
.opening-logo { display:block; width:min(100%,395px); max-height:330px; height:auto; object-fit:contain; }
.opening-actions { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:1rem; margin-top:1.65rem; }
.opening-actions .button { min-width:245px; padding:.8rem 1.5rem; font-size:1.06rem; }
.opening-actions svg { display:block; width:22px; height:22px; flex:none; }
.button-outline { color:var(--forest-dark); background:#fffefa; border:2px solid var(--forest); }
.button-outline:hover { background:var(--sage); }
.welcome-intro { padding:2.55rem 0 .35rem; }
.welcome-layout { max-width:950px; }
.welcome-intro .eyebrow { margin-bottom:.45rem; }
.welcome-intro h2 { font-size:clamp(1.8rem,3vw,2.4rem); margin:0 0 .7rem; }
.welcome-intro p:last-child { max-width:780px; margin:0; }
@media (max-width:1050px) {
  .opening-card { padding:1.8rem; }
  .opening-layout { grid-template-columns:minmax(0,1.45fr) minmax(225px,.75fr); gap:1.1rem; }
  .opening-copy { padding-left:1.1rem; }
  .opening-copy h1 { font-size:clamp(2.3rem,4.25vw,3.35rem); }
  .opening-logo { max-height:265px; }
}
@media (max-width:740px) {
  .opening-splash { padding:1.1rem 0 .5rem; }
  .opening-card { padding:1.3rem; border-radius:18px; }
  .opening-layout { grid-template-columns:1fr; gap:1.15rem; }
  .opening-copy { padding-left:1rem; }
  .opening-copy h1 { font-size:clamp(2.15rem,7.2vw,3rem); }
  .opening-subtitle { font-size:clamp(1.45rem,4.8vw,1.9rem); }
  .opening-description { font-size:1rem; }
  .opening-detail svg { width:27px; height:27px; }
  .opening-logo { width:185px; max-height:155px; }
  .opening-actions { margin-top:1.1rem; gap:.7rem; }
  .opening-actions .button { width:100%; min-width:0; }
  .welcome-intro { padding:2rem 0 0; }
}
@media (max-width:440px) {
  .opening-card { padding:1.15rem .85rem; }
  .opening-copy { padding-left:.85rem; }
  .opening-details { gap:.8rem; }
  .opening-detail { width:100%; }
}
