/* ===========================================================================
   Josie Woodward Legacy Foundation — custom overrides & motion
   Loaded LAST on every page so these rules win over the theme export.
   Edits requested in "Website Changes/Updates" (2026-06) + tasteful motion.
   =========================================================================== */

/* ---- Header logo: large, and let the header grow to fit it ---- */
#page-header .ush_image_1 { height: 88px !important; }
#page-header .l-subheader.at_middle,
#page-header .l-subheader-h { min-height: 104px; }
@media (max-width: 1024px) { #page-header .ush_image_1 { height: 68px !important; } }
@media (max-width: 600px)  { #page-header .ush_image_1 { height: 56px !important; } }

/* ---- "Together We Can" — 4 across, equal-height cards, buttons aligned ---- */
.tw4.cols_4 { align-items: stretch; }
.tw4 .wpb_column.box1 { display: flex; align-items: stretch; }
.tw4 .box1 .vc_column-inner {
  display: flex; flex-direction: column; width: 100%; height: 100%; padding: 0 .25rem;
}
.tw4 .w-btn-wrapper { margin-top: auto; width: 100%; }   /* pin every button to the same baseline */
.tw4 .w-image img { border-radius: 10px; }
/* uniform card photos: every card image crops to the same 3:2 frame
   (no-op for the original 3:2 exports; frames the new portrait photos) */
.tw4 .w-image img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; height: auto; }
.tw4 img[src*="healthcare-leaders-heart"] { object-position: 50% 22%; }  /* keep her face + heart in frame */

/* clean, uniform card buttons: full-width, equal height, rounded, refined type */
.tw4 .w-btn.us-btn-style_1 {
  display: flex; align-items: center; justify-content: center;
  width: 100%; min-height: 56px; box-sizing: border-box;
  padding: .55rem 1rem !important; border-radius: 12px; border: 0;
  font-size: .8rem; font-weight: 700; letter-spacing: .06em;
  line-height: 1.25; text-transform: uppercase;
  box-shadow: 0 6px 16px rgba(214, 31, 145, .28);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.no-touch .tw4 .w-btn.us-btn-style_1:hover {
  transform: translateY(-3px); filter: brightness(1.04);
  box-shadow: 0 10px 22px rgba(214, 31, 145, .38);
}
.tw4 .w-btn.us-btn-style_1 .w-btn-label { padding: 0; }
.tw4 h3 { font-size: 1.06rem !important; line-height: 1.3; margin-bottom: .5rem; }
.tw4 .wpb_text_column p { font-size: .92rem; line-height: 1.5; }
@media (max-width: 900px) { .tw4 .g-cols.cols_4 { --columns-gap: 1.25rem; } }

/* ---- Golf tournament advert + "More Coming Soon" sections ---- */
.jlw-golf {
  background: linear-gradient(135deg, #0f4d2e 0%, #18603a 55%, #1f7a49 100%);
  color: #fff;
  overflow: hidden;
}
.jlw-golf .l-section-h { position: relative; z-index: 2; }
.jlw-golf .jlw-eyebrow {
  letter-spacing: .28em; text-transform: uppercase; font-size: .78rem;
  font-weight: 700; color: #d8f3c4; margin: 0 0 .75rem;
}
.jlw-golf h2 { color: #fff !important; margin: 0 0 .35rem; line-height: 1.05; }
.jlw-golf .jlw-golf-sub { color: #eafff1; font-size: 1.15rem; max-width: 46ch; margin: 0 0 1.25rem; }
.jlw-golf-meta { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.jlw-golf .jlw-golf-meta { margin: 0 0 1.6rem; }
.jlw-golf .jlw-golf-meta span { font-size: .95rem; color: #eafff1; }
.jlw-golf .jlw-golf-meta b { display: block; font-size: 1.5rem; color: #fff; line-height: 1; margin-bottom: .15rem; }
.jlw-golf .w-btn.us-btn-style_1 {
  background: #ffd23f !important; color: #123 !important; font-weight: 700;
  border-color: #ffd23f !important;
}
.jlw-golf .w-btn.us-btn-style_1 .w-btn-label { color: #123 !important; }
.jlw-golf .jlw-golf-ball {
  position: absolute; right: -60px; top: 50%; transform: translateY(-50%);
  width: 340px; height: 340px; border-radius: 50%; z-index: 1; opacity: .14;
  background: radial-gradient(circle at 35% 30%, #fff 0 8px, transparent 9px) ,
              radial-gradient(circle at 60% 45%, #fff 0 8px, transparent 9px) ,
              radial-gradient(circle at 45% 65%, #fff 0 8px, transparent 9px) ,
              radial-gradient(circle, #bfeecb 0%, transparent 70%);
  animation: jlw-float 7s ease-in-out infinite;
}
@keyframes jlw-float { 0%,100%{transform:translateY(-50%)} 50%{transform:translateY(-58%)} }

.jlw-soon { background: #f6f4ef; }
.jlw-soon h2 { margin-top: 0; }
.jlw-soon .jlw-soon-body { max-width: 60ch; margin: 0 auto; color: #44423d; line-height: 1.7; }

/* ---- Contact page: center the closing tagline ---- */
.jlw-center, .jlw-center * { text-align: center !important; }

/* ---- Contact: Follow Us social links ----
   The theme only inlines the FA glyphs it uses, so declare the ones the new
   iconbox needs (brand + thumbs-up); the font-faces are already on the page. */
.fa-instagram:before { content: "\f16d"; }
.fa-facebook:before  { content: "\f09a"; }
.fa-thumbs-up:before { content: "\f164"; }
.jlw-social-links a { color: #c0267f; font-weight: 600; text-decoration: none; line-height: 2; }
.jlw-social-links a:hover { color: #fb49cb; }
.jlw-social-links .fab { margin-right: .35rem; }

/* ---- Suicide Prevention: emphasis sizing requested in the doc ---- */
.jlw-xl { font-size: clamp(2.2rem, 5vw, 3.4rem) !important; line-height: 1.08 !important; }
.jlw-lead { font-size: 1.25rem !important; line-height: 1.6 !important; }
.jlw-subhead { font-size: 1.65rem !important; font-weight: 700 !important; display: block; margin: 2.4rem 0 2.4rem !important; }
/* the bullets under these titles are icon-rows (.w-vwrapper/.w-text), not a <ul>;
   add room before whatever block follows the title's paragraph */
.jlw-subhead + ul, p:has(.jlw-subhead) + ul,
p:has(.jlw-subhead) + .w-vwrapper, p:has(.jlw-subhead) + .wpb_text_column { margin-top: 1.2rem !important; }

/* ===========================================================================
   MOTION — tasteful & subtle. Nothing is hidden unless JS is active
   (html.js-motion) AND the visitor hasn't asked for reduced motion.
   =========================================================================== */
@media (prefers-reduced-motion: no-preference) {
  html.js-motion .reveal {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .85s cubic-bezier(.16,.84,.44,1),
                transform .85s cubic-bezier(.16,.84,.44,1);
  }
  html.js-motion .reveal.is-visible { opacity: 1; transform: none; }

  /* gentle hover lift on cards & icon boxes */
  .box1 .vc_column-inner,
  .w-iconbox { transition: transform .28s ease, box-shadow .28s ease; }
  .no-touch .box1:hover .vc_column-inner,
  .no-touch .w-iconbox:hover {
    transform: translateY(-5px);
    box-shadow: 0 14px 32px rgba(0,0,0,.12);
  }

  /* buttons get a subtle press/lift */
  .w-btn { transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; }
  .no-touch .w-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.18); }
}

/* smooth in-page scrolling everywhere (respects reduced-motion automatically) */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* ---- About: photos section white with black text (was pink w/ white).
   Scoped to the About page — the same us_custom class is reused on home. ---- */
body.page-id-20 .us_custom_d235936e {
  background: #fff !important;
  color: #2a2a2a !important;
}
body.page-id-20 .us_custom_d235936e :is(h2, h3, p, span) { color: #2a2a2a !important; }

/* ---- About: family photo banner at the very top ---- */
.jlw-famtop { padding: 0 !important; }
.jlw-famtop .l-section-h { max-width: none; padding: 0; }
/* show the whole family photo, no cropping */
.jlw-famtop img { width: 100%; height: auto; object-fit: contain; display: block; }

/* About hero: large full-bleed family portrait behind the centered heading,
   cropped to the faces/upper bodies (the lower-body part is cut off) */
.jlw-fullphoto { min-height: 86vh !important; }
.jlw-fullphoto .l-section-img {
  background-size: cover !important;
  background-position: center 22% !important;   /* show faces, crop the legs */
}
.jlw-fullphoto .l-section-h { display: flex; flex-direction: column; justify-content: center; min-height: 86vh; }
.jlw-fullphoto h1 { text-align: center !important; }
@media (max-width: 600px) { .jlw-fullphoto { min-height: 70vh !important; } }

/* ===========================================================================
   MOBILE HERO (home) — render the photo as ONE clean image alongside the text,
   mirroring the desktop composition. The page-builder exported the hero photo
   as a full-width background with background-size:128% + repeat; in the tall
   mobile section that image is too short, so it TILES down the page (the same
   face stacked two or three times). Fix: photos never tile, and on phones the
   home hero covers its box, framed on the subject so she sits to the side of
   the headline like she does on desktop. A soft scrim keeps the text legible.
   =========================================================================== */
.l-section-img { background-repeat: no-repeat !important; }   /* photos never tile */

@media (max-width: 768px) {
  /* give the hero real height so headline + photo both breathe */
  .us_custom_9d5325e5.l-section { min-height: 82vh !important; }

  /* one clean photo, framed so Josie's face sits behind the headline text */
  .us_custom_9d5325e5 .l-section-img {
    background-size: cover !important;
    background-position: 50% 14% !important;   /* center her face behind the words */
  }

  /* legibility scrim: darker on the left (under the text), clearing to show her on the right */
  .us_custom_9d5325e5 .l-section-overlay {
    background: linear-gradient(105deg,
      rgba(17,17,17,.72) 0%, rgba(17,17,17,.5) 42%, rgba(17,17,17,.12) 70%, rgba(17,17,17,0) 100%) !important;
    opacity: 1 !important;
  }

  /* headline scales to fit (desktop stays 75px via the clamp ceiling) */
  .us_custom_cda6f729 {
    font-size: clamp(2.4rem, 11vw, 75px) !important;
    line-height: 1.05 !important;
  }
}

/* ---- Scholarships hero: tall like the About hero, photo edge to edge ----
   Full-bleed cover photo anchored to the top of the portrait so the frame
   runs from Josie's head down as far as the hero's height allows. */
.jlw-scholar-hero { min-height: 88vh; overflow: hidden; }
@media (max-width: 600px) { .jlw-scholar-hero { min-height: 70vh; } }
/* guarantee edge-to-edge regardless of the theme's content-width centering */
.jlw-scholar-hero {
  width: 100vw !important; max-width: none !important;
  margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
  padding-left: 0 !important; padding-right: 0 !important;
}
/* heading + CTA to the left, vertically centered, off her figure */
.jlw-scholar-hero .l-section-h { display: flex; align-items: center; min-height: inherit; }
.jlw-scholar-hero .w-separator { display: none; }   /* the line would cross the photo */
/* Below ~1024px the cover-scaled portrait fits its full height into the hero,
   which puts Josie's face in the top 110px — the band hidden behind the opaque
   fixed header (.l-subheader.at_middle). Start the photo below the header so
   her face is the first thing in the visible frame. */
@media (max-width: 1024px) {
  .jlw-scholar-hero .l-section-img { top: 110px !important; }
}
@media (min-width: 900px) {
  .jlw-scholar-hero .wpb_column { max-width: 30%; }
}

/* ---- Community Outreach hero: whole group visible ----
   Header follows the photo's own aspect ratio so cover has ~nothing to crop
   (capped so it can't take over tall screens). Any residual trim is split
   around the faces via background-position on the inline style. */
.jlw-outreach-hero { aspect-ratio: 2400 / 1579; max-height: 78vh; min-height: 320px; }
@media (max-width: 600px) { .jlw-outreach-hero { min-height: 0; } }  /* full photo width on phones */
/* full-bleed: the theme centers sections to --site-content-width; pull this
   one out to the viewport edges (l-canvas has overflow:hidden, so no x-scroll) */
.jlw-outreach-hero {
  width: 100vw !important; max-width: none !important;
  margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
  padding-left: 0 !important; padding-right: 0 !important;
}

/* ---- New page heroes (golf / recovery) ---- */
.jlw-phero { background: linear-gradient(135deg,#123524 0%,#1b5e3a 100%); color:#fff; text-align:center; }
.jlw-phero h1 { color:#fff !important; margin:0 0 .5rem; }
.jlw-phero p  { color:#e8f5ee; font-size:1.15rem; max-width:60ch; margin:.4rem auto 0; }
/* pink to match the brand pink used across the site (was blue);
   also reused as the pink banner on Get Involved + Suicide Prevention */
.jlw-recovery-hero { background: linear-gradient(135deg,#8a1160 0%,#c81d89 55%,#ee2eb9 100%); }
/* buttons inside a pink banner: white so they don't vanish pink-on-pink */
.jlw-phero .w-btn.us-btn-style_1 { background: #fff !important; border-color: #fff !important; }
.jlw-phero .w-btn.us-btn-style_1 .w-btn-label { color: #c0267f !important; }

/* ---- Prose blocks on new pages ---- */
.jlw-prose { max-width: 70ch; margin: 0 auto; line-height: 1.75; color:#3a3a3a; }
.jlw-prose h2 { margin-top: 2rem; }
.jlw-prose ul { padding-left: 1.2rem; }
.jlw-prose li { margin: .35rem 0; }

/* ---- On-site registration form ---- */
.jlw-form { max-width: 620px; margin: 0 auto; }
.jlw-form .row { display:flex; gap:1rem; flex-wrap:wrap; }
.jlw-form .row > div { flex:1 1 240px; }
.jlw-form label { display:block; font-weight:600; margin:.9rem 0 .35rem; font-size:.92rem; }
.jlw-form input, .jlw-form select, .jlw-form textarea {
  width:100%; padding:.7rem .8rem; border:1px solid #cfd8d2; border-radius:8px;
  font:inherit; background:#fff; box-sizing:border-box; }
.jlw-form input:focus, .jlw-form select:focus, .jlw-form textarea:focus {
  outline:none; border-color:#1b5e3a; box-shadow:0 0 0 3px rgba(27,94,58,.15); }
.jlw-form button:not(.jlw-wallets *) {
  margin-top:1.3rem; background:#fb49cb !important; color:#fff !important; border:0;
  border-radius:12px; padding:.72rem 1.7rem; font-weight:700; font-size:1rem; cursor:pointer;
  transition:transform .15s ease, background .15s ease, filter .15s ease; }
.jlw-form button:not(.jlw-wallets *):hover { background:#ee2eb9 !important; }
.jlw-note { font-size:.85rem; color:#6b746e; margin-top:.8rem; }
.jlw-note code { background:#eef2ef; padding:.1rem .3rem; border-radius:4px; }

/* ===========================================================================
   MORE SCROLL MOTION — as each section scrolls in, its pieces rise & stagger.
   All gated behind html.js-motion + prefers-reduced-motion, like the rest.
   =========================================================================== */
@media (prefers-reduced-motion: no-preference) {
  html.js-motion .reveal :is(.wpb_column, .w-image, .w-btn-wrapper, .w-separator,
       .jlw-prose li, .jlw-golf-meta span, .jlw-golf-details .jlw-golf-detail, .w-iconbox) {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .7s cubic-bezier(.16,.84,.44,1),
                transform .7s cubic-bezier(.16,.84,.44,1);
  }
  html.js-motion .reveal .w-image { transform: translateY(20px) scale(.985); }

  html.js-motion .reveal.is-visible :is(.wpb_column, .w-image, .w-btn-wrapper, .w-separator,
       .jlw-prose li, .jlw-golf-meta span, .jlw-golf-details .jlw-golf-detail, .w-iconbox) {
    opacity: 1;
    transform: none;
  }

  /* cascade grouped siblings so cards / stats / list items arrive one by one */
  .reveal.is-visible :is(.wpb_column, .jlw-golf-meta span, .jlw-golf-detail, .jlw-prose li, .w-iconbox):nth-child(2) { transition-delay: .07s; }
  .reveal.is-visible :is(.wpb_column, .jlw-golf-meta span, .jlw-golf-detail, .jlw-prose li, .w-iconbox):nth-child(3) { transition-delay: .14s; }
  .reveal.is-visible :is(.wpb_column, .jlw-golf-meta span, .jlw-golf-detail, .jlw-prose li, .w-iconbox):nth-child(4) { transition-delay: .21s; }
  .reveal.is-visible :is(.wpb_column, .jlw-golf-meta span, .jlw-golf-detail, .jlw-prose li, .w-iconbox):nth-child(5) { transition-delay: .28s; }
  .reveal.is-visible :is(.wpb_column, .jlw-golf-meta span, .jlw-golf-detail, .jlw-prose li, .w-iconbox):nth-child(6) { transition-delay: .35s; }

  /* tidy up the GPU hint once an element has settled */
  html.js-motion .reveal.is-visible,
  html.js-motion .reveal.is-visible * { will-change: auto; }
}


/* ===========================================================================
   GLOBAL BUTTONS — one consistent shape/treatment across every page.
   Colours stay per-context (pink default, yellow golf CTA, green form);
   only the shape, type, shadow and hover are unified.
   =========================================================================== */
.w-btn.us-btn-style_1,
.jlw-form button:not(.jlw-wallets *) {
  border-radius: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  box-shadow: 0 6px 16px rgba(0,0,0,.14);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.w-btn.us-btn-style_1 { padding: .72rem 1.7rem !important; }
.w-btn.us-btn-style_1 .w-btn-label { letter-spacing: inherit; }
.no-touch .w-btn.us-btn-style_1:hover,
.jlw-form button:not(.jlw-wallets *):hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 22px rgba(0,0,0,.20);
  filter: brightness(1.04);
}

/* ---- Donation amount presets (get-involved #donate) ---- */
.jlw-amounts { display: flex; gap: .6rem; flex-wrap: wrap; margin: .2rem 0 .4rem; }
.jlw-amounts button {
  flex: 1 1 90px; padding: .72rem .5rem; font: inherit; font-weight: 700;
  border: 2px solid #cfd8d2; border-radius: 10px; background: #fff; color: #3a3a3a;
  cursor: pointer; transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.jlw-amounts button:hover { border-color: #fb49cb; color: #c0267f; }
.jlw-amounts button.is-selected {
  border-color: #fb49cb; background: #fb49cb; color: #fff;
  box-shadow: 0 6px 16px rgba(214,31,145,.28);
}

/* ---- Form status, success, Square card field, entry fee ---- */
.jlw-form-status { margin-top: .9rem; font-size: .95rem; min-height: 1.2em; }
.jlw-form-status.is-error { color: #c0264b; }
.jlw-form-success { text-align: center; padding: 1.4rem 1rem; }
.jlw-form-success h3 { margin: 0 0 .4rem; color: #1b5e3a; }
.jlw-form-success a { display: inline-block; margin-top: .6rem; color: #c0267f; font-weight: 600; }

.jlw-card { margin-top: .35rem; padding: .55rem .7rem; border: 1px solid #cfd8d2;
  border-radius: 8px; background: #fff; min-height: 46px; }
.jlw-fee-box { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  margin-top: 1.3rem; padding: .85rem 1.1rem; background: #f3f6f3; border-radius: 10px; }
.jlw-fee-label { font-weight: 600; color: #3a3a3a; }
.jlw-fee-amount { font-size: 1.3rem; color: #1b5e3a; font-weight: 700; }

/* ===========================================================================
   Site footer
   =========================================================================== */
.jlw-footer { background: #262626; color: #d6d6d6; padding: 3.2rem 0 1.4rem; }
.jlw-footer .l-section-overlay { display: none; }
.jlw-footer-grid { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1.1fr; gap: 2.2rem; }
.jlw-footer-logo { height: 66px; width: auto; margin-bottom: .9rem; display: block; }
.jlw-footer-brand p { font-size: .92rem; line-height: 1.65; color: #b6b6b6; max-width: 36ch; margin: 0; }
.jlw-footer h4 { color: #fff; font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 .9rem; }
.jlw-footer ul { list-style: none; padding: 0; margin: 0; }
.jlw-footer li { margin: .45rem 0; }
.jlw-footer a { color: #c9c9c9; text-decoration: none; font-size: .94rem; transition: color .15s ease; }
.jlw-footer a:hover { color: #fb49cb; }
.jlw-footer-bottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: 2.4rem;
  padding-top: 1.2rem; text-align: center; font-size: .85rem; color: #9a9a9a; }
.jlw-footer-bottom p { margin: 0; }
@media (max-width: 900px) { .jlw-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .jlw-footer-grid { grid-template-columns: 1fr; text-align: center; }
  .jlw-footer-logo { margin-left: auto; margin-right: auto; } .jlw-footer-brand p { max-width: none; } }

/* ---- Merch / shop: store-style product listing ---- */
.woocommerce .jlw-merch.products {
  display: grid !important; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
  gap: 2.4rem; margin: 0 auto; max-width: 1120px; list-style: none; padding: 0;
}
.woocommerce ul.products li.product.jlw-merch-item {
  display: flex; flex-direction: column; background: #fff; border: 1px solid #ebebeb;
  border-radius: 16px; overflow: hidden; box-shadow: 0 6px 20px rgba(0,0,0,.05);
  text-align: left; padding: 0;
  width: auto !important; max-width: none !important; min-width: 0 !important;
  margin: 0 !important; float: none !important;
  transition: transform .2s ease, box-shadow .2s ease;
}
.no-touch .jlw-merch .jlw-merch-item:hover { transform: translateY(-5px); box-shadow: 0 16px 36px rgba(0,0,0,.1); }
.jlw-merch .jlw-merch-img { aspect-ratio: 3 / 2; background: #f1efe9; overflow: hidden; }
.jlw-merch .jlw-merch-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.jlw-merch .jlw-merch-body { display: flex; flex-direction: column; flex: 1; padding: 1.5rem 1.6rem 1.7rem; }
.jlw-merch .jlw-merch-head { display: flex; align-items: baseline; justify-content: space-between; gap: .9rem; margin-bottom: .6rem; }
.jlw-merch .woocommerce-loop-product__title { font-size: 1.3rem !important; margin: 0 !important; color: #1f1f1f; font-weight: 700; line-height: 1.25; }
.jlw-merch .jlw-merch-price { font-size: 1.3rem; font-weight: 800; color: #1b5e3a; white-space: nowrap; }
.jlw-merch .jlw-merch-desc {
  font-size: .95rem; line-height: 1.55; color: #666; margin: 0 0 1.2rem;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.jlw-merch .jlw-merch-sizes { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; margin: 0 0 1.2rem; }
.jlw-merch .jlw-merch-sizes-label { font-size: .7rem; text-transform: uppercase; letter-spacing: .09em; color: #9a9a9a; margin-right: .2rem; }
.jlw-merch .jlw-size { font-size: .76rem; font-weight: 600; color: #555; border: 1px solid #dcdcdc; border-radius: 6px; padding: .12rem .48rem; }
.jlw-merch .jlw-merch-buy {
  display: block; width: 100%; box-sizing: border-box; text-align: center; margin-top: auto;
  background: #fb49cb; color: #fff; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  font-size: .82rem; padding: .82rem 1rem; border-radius: 12px; cursor: pointer;
  box-shadow: 0 6px 16px rgba(214,31,145,.28);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.no-touch .jlw-merch .jlw-merch-buy:hover { transform: translateY(-2px); filter: brightness(1.04); box-shadow: 0 10px 22px rgba(214,31,145,.38); }
.jlw-merch .jlw-merch-note { font-size: .8rem; color: #6b746e; margin: .8rem 0 0; line-height: 1.5; }
/* hide WooCommerce result count + sort dropdown (no longer meaningful) */
.woocommerce-result-count, .woocommerce-ordering { display: none !important; }
@media (max-width: 640px) { .woocommerce .jlw-merch.products { grid-template-columns: 1fr; max-width: 420px; } }

/* ---- Golf flyer (golf page, above Reserve Your Spot) ---- */
.jlw-flyer { display: block; max-width: 640px; margin: 0 auto; }
.jlw-flyer img {
  width: 100%; height: auto; display: block; border-radius: 14px;
  box-shadow: 0 14px 40px rgba(0,0,0,.16);
  transition: transform .2s ease, box-shadow .2s ease;
}
.no-touch .jlw-flyer:hover img { transform: translateY(-4px); box-shadow: 0 20px 52px rgba(0,0,0,.22); }
#golf-spots { text-align: right; margin-top: .5rem; font-weight: 600; color: #1b5e3a; }

/* ---- Sponsor tier cards (golf page #sponsors) ----
   four bird tiers in a row; the hole card sits centered beneath them */
.jlw-tiers { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; max-width: 1200px; margin: 0 auto; }
.jlw-tiers .jlw-tier:last-child { grid-column: 2 / 4; justify-self: center; width: 100%; max-width: 420px; }
@media (max-width: 1000px) {
  .jlw-tiers { grid-template-columns: repeat(2, 1fr); }
  .jlw-tiers .jlw-tier:last-child { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .jlw-tiers { grid-template-columns: 1fr; }
  .jlw-tiers .jlw-tier:last-child { grid-column: auto; max-width: none; }
}

/* ---- Sponsor wall (golf page #our-sponsors) ---- */
.jlw-sponsor-wall { max-width: 900px; margin: 0 auto; text-align: center; }
.jlw-sponsor-empty { color: #57605a; line-height: 1.7; max-width: 62ch; margin: 0 auto; }
.jlw-sponsor-group { margin: 1.8rem 0 0; }
.jlw-sponsor-group h3 { font-size: 1rem; letter-spacing: .08em; text-transform: uppercase; color: #1b5e3a; margin-bottom: 1rem; }
.jlw-sponsor-logos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2rem; }
.jlw-sponsor-logos img { max-height: 80px; width: auto; max-width: 220px; object-fit: contain; }
.jlw-sponsor-group:first-of-type .jlw-sponsor-logos img { max-height: 110px; max-width: 300px; }  /* Eagle logos biggest */
.jlw-tier {
  display: flex; flex-direction: column; background: #fff; border: 1px solid #ececec;
  border-top: 5px solid var(--tier-accent, #fb49cb); border-radius: 14px;
  padding: 1.4rem 1.3rem 1.3rem; box-shadow: 0 8px 24px rgba(0,0,0,.06);
  transition: transform .2s ease, box-shadow .2s ease;
}
.no-touch .jlw-tier:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(0,0,0,.11); }
.jlw-tier h3 { margin: 0 0 .15rem; font-size: 1.08rem; color: var(--tier-accent, #222); }
.jlw-tier-price { font-size: 1.7rem; font-weight: 800; color: #1b5e3a; margin-bottom: .7rem; }
.jlw-tier ul { list-style: none; margin: 0 0 1.1rem; padding: 0; font-size: .9rem; color: #555; }
.jlw-tier li { padding: .22rem 0 .22rem 1.2rem; position: relative; }
.jlw-tier li::before { content: "✓"; position: absolute; left: 0; color: #1b5e3a; font-weight: 700; }
.jlw-tier .jlw-tier-pick {
  margin-top: auto; width: 100%; border: 0; border-radius: 10px; cursor: pointer;
  background: #fb49cb; color: #fff; font: inherit; font-weight: 700; font-size: .82rem;
  text-transform: uppercase; letter-spacing: .05em; padding: .7rem .6rem;
  box-shadow: 0 6px 16px rgba(214,31,145,.28);
  transition: transform .18s ease, filter .18s ease;
}
.no-touch .jlw-tier .jlw-tier-pick:hover { transform: translateY(-2px); filter: brightness(1.05); }

/* ---- Golf event details (golf page) + venue line (home advert) ---- */
.jlw-golf-details { display: flex; flex-wrap: wrap; justify-content: center; gap: 2.5rem; margin: 1.6rem auto 0; }
.jlw-golf-detail { display: flex; flex-direction: column; align-items: center; gap: .2rem; }
.jlw-golf-detail-label { text-transform: uppercase; letter-spacing: .14em; font-size: .72rem; color: #1b5e3a; font-weight: 700; }
.jlw-golf-detail strong { font-size: 1.25rem; color: #222; }
.jlw-golf-detail a { color: #6b746e; font-size: .95rem; text-decoration: none; border-bottom: 1px solid #cfd8d2; }
.jlw-golf-detail a:hover { color: #1b5e3a; }
.jlw-golf .jlw-golf-where { color: #eafff1; font-size: 1rem; margin: -.6rem 0 1.2rem; font-weight: 600; }


/* ---- Golf: player-name fields (teams must name every golfer) ---- */
.jlw-playernames { margin: .6rem 0 1rem; }
.jlw-playernames-fields { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
@media (max-width: 600px) { .jlw-playernames-fields { grid-template-columns: 1fr; } }
.jlw-playernames-note { margin: .2rem 0 .5rem; }

/* ---- Golf: Apple Pay / Google Pay buttons above the card field ---- */
.jlw-wallets { display: grid; gap: .6rem; margin: .4rem 0 .2rem; }
.jlw-apple-pay {
  height: 48px; border-radius: 8px; cursor: pointer;
  -webkit-appearance: -apple-pay-button;
  apple-pay-button-type: pay; apple-pay-button-style: black;
}
.jlw-google-pay { min-height: 48px; }
.jlw-wallet-divider {
  text-align: center; color: #9a9a9a; font-size: .85rem;
  margin: .6rem 0 .2rem; text-transform: uppercase; letter-spacing: .08em;
}

/* ---- Donations: 501(c)(3) tax-exempt note (sits under the section heading) ---- */
.jlw-tax-note {
  text-align: center; max-width: 68ch; margin: 0 auto 1.4rem;
  font-size: .9rem; line-height: 1.55; color: #6b746e;
}

/* ---- Golf: player rows are name + shirt-size pairs ---- */
.jlw-playerrow { display: flex; gap: .5rem; }
.jlw-playerrow input { flex: 1; min-width: 0; }
.jlw-playerrow select { flex: 0 0 5.5rem; }

/* ---- Golf: sold-out sponsorship tiers (cap reached — golf-pay.js sets this) ---- */
.jlw-tier .jlw-tier-pick.jlw-tier-sold,
.jlw-tier .jlw-tier-pick[disabled] {
  background: #9a9a9a !important;
  color: #f2f2f2 !important;
  cursor: not-allowed;
  pointer-events: none;
  opacity: .75;
  filter: grayscale(1);
  transform: none !important;
}
