:root {
  --lulav-green: #4ba334;
  --lulav-light: #8bc341;
  --lulav-dark: #235a2b;
  --lulav-yellow: #ffc94c;
  --lulav-ink: #173a23;
  --lulav-display: "Fredoka", "Arial Rounded MT Bold", sans-serif;
  --lulav-body: "DM Sans", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--lulav-ink); background: #fff; font-family: var(--lulav-body); }
a:focus-visible { outline: 4px solid var(--lulav-yellow); outline-offset: 4px; }

.lulav-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 690px;
  color: #fff;
  background: linear-gradient(162deg, #3e972f 0%, var(--lulav-green) 48%, var(--lulav-light) 100%);
}
.lulav-leaves { position: absolute; width: min(300px, 31vw); height: auto; opacity: .16; filter: invert(17%) sepia(36%) saturate(704%) hue-rotate(76deg); pointer-events: none; z-index: -1; }
.lulav-leaves--left { top: -75px; left: -60px; transform: rotate(90deg); mask-image: radial-gradient(ellipse at 45% 40%, #000 10%, transparent 75%); }
.lulav-leaves--right { top: -165px; right: -75px; transform: scaleX(-1); mask-image: linear-gradient(to left, transparent, #000 75%); }
.lulav-bh { position: absolute; top: 25px; right: 32px; font-weight: 800; }
.lulav-hero__inner { width: min(1180px, 100%); min-height: 690px; margin: auto; padding: 75px clamp(24px, 5vw, 70px) 80px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .85fr); grid-template-rows: auto auto; align-content: center; column-gap: 20px; }
.lulav-hero__copy, .lulav-hero__pitch { position: relative; z-index: 2; grid-column: 1; }
.lulav-hero__copy { grid-row: 1; }
.lulav-hero__pitch { grid-row: 2; }
.lulav-home-link { display: inline-block; margin-bottom: 48px; color: #fff; font-size: .9rem; font-weight: 800; text-decoration: none; border-bottom: 2px solid rgba(255,255,255,.7); }
.lulav-home-link:hover { border-color: var(--lulav-yellow); }
.lulav-hero h1 { position: relative; margin: 0; font-family: var(--lulav-display); font-weight: 700; text-transform: uppercase; }
.lulav-hero__kicker { display: block; margin-left: 8px; font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1; letter-spacing: -.02em; transform: rotate(-3deg); }
.lulav-hero__title { display: block; font-size: clamp(6rem, 12vw, 10rem); line-height: .83; letter-spacing: -.075em; text-shadow: 0 11px 0 rgba(23,58,35,.25), 0 20px 25px rgba(23,58,35,.22); transform: rotate(-2deg); }
.lulav-county { display: inline-block; margin: 20px 0 0 28%; padding: 8px 18px; background: var(--lulav-yellow); color: var(--lulav-dark); font-family: var(--lulav-display); font-size: clamp(.9rem, 2vw, 1.25rem); font-weight: 700; text-transform: uppercase; transform: rotate(2deg); }
.lulav-hero__mission { max-width: 580px; margin: 35px 0 0; font-family: var(--lulav-display); font-size: clamp(1.25rem, 2.3vw, 1.75rem); font-weight: 600; line-height: 1.32; text-transform: uppercase; }
.lulav-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.lulav-button { display: inline-flex; min-height: 51px; align-items: center; justify-content: center; padding: 12px 22px; border: 2px solid transparent; border-radius: 9px; color: var(--lulav-dark); background: white; font-weight: 800; text-align: center; text-decoration: none; transition: transform .18s, box-shadow .18s; }
.lulav-button:hover { transform: translateY(-2px); box-shadow: 0 6px 0 rgba(23,58,35,.18); }
.lulav-button--yellow { background: var(--lulav-yellow); }
.lulav-button--outline { color: white; border-color: white; background: transparent; }
.lulav-button--green { color: white; background: var(--lulav-dark); }
.lulav-hero__art { grid-column: 2; grid-row: 1 / span 2; align-self: center; min-width: 0; margin: -25px -90px -45px -70px; transform: rotate(-19deg); }
.lulav-hero__image { display: block; width: 100%; height: auto; max-width: 680px; filter: drop-shadow(0 20px 15px rgba(23,58,35,.25)); }

.lulav-intro { padding: clamp(64px, 8vw, 100px) 24px 90px; background: #fff; }
.lulav-intro__inner, .lulav-prizes__inner, .lulav-join__inner { width: min(1080px, 100%); margin: auto; }
.lulav-intro__heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 28px; }
.lulav-intro h2, .lulav-prizes h2, .lulav-join h2 { margin: 0; font: 700 clamp(2.7rem, 6vw, 4.5rem)/.98 var(--lulav-display); letter-spacing: -.04em; }
.lulav-intro__heading p { max-width: 360px; margin: 0 0 5px; color: #426449; font-size: 1rem; line-height: 1.5; }
.lulav-steps { display: grid; grid-template-columns: repeat(3, 1fr); overflow: hidden; border: 3px solid var(--lulav-dark); border-radius: 14px; box-shadow: 10px 10px 0 var(--lulav-yellow); }
.lulav-step { padding: 33px 30px 38px; }
.lulav-step + .lulav-step { border-left: 2px dashed #a5c79c; }
.lulav-step__number { display: inline-grid; width: 51px; height: 51px; place-items: center; border-radius: 50%; color: var(--lulav-dark); background: var(--lulav-yellow); font: 700 2rem var(--lulav-display); }
.lulav-step h3 { margin: 20px 0 7px; font: 700 1.45rem var(--lulav-display); }
.lulav-step p { margin: 0; color: #426449; line-height: 1.55; }

.lulav-prizes { position: relative; padding: 85px 24px 100px; color: #fff; background: linear-gradient(160deg, var(--lulav-green), var(--lulav-light)); }
.lulav-prizes__heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 45px; border-bottom: 3px solid rgba(255,255,255,.8); padding-bottom: 22px; }
.lulav-prizes__heading p { margin: 0 0 3px; font-weight: 800; }
.lulav-prizes__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 22px; }
.lulav-prize { position: relative; text-align: center; }
.lulav-prize__number { position: absolute; top: -26px; left: 3px; z-index: 2; color: var(--lulav-yellow); font: 700 3.6rem var(--lulav-display); -webkit-text-stroke: 2px white; paint-order: stroke fill; }
.lulav-prize__art { display: grid; place-items: center; width: min(165px, 100%); aspect-ratio: 1; margin: auto; padding: 18px; overflow: hidden; border-radius: 50%; background: white; box-shadow: 0 10px 0 rgba(23,58,35,.19); }
.lulav-prize__art img { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; object-fit: contain; }
.lulav-prize:nth-child(1) .lulav-prize__art, .lulav-prize:nth-child(4) .lulav-prize__art { padding: 0; }
.lulav-prize:nth-child(1) .lulav-prize__art img, .lulav-prize:nth-child(4) .lulav-prize__art img { object-fit: cover; }
.lulav-prize h3 { max-width: 185px; margin: 24px auto 0; font-size: .95rem; line-height: 1.35; font-weight: 800; }

.lulav-join { padding: 76px 24px; background: #fff9e9; }
.lulav-join__inner { display: grid; grid-template-columns: minmax(0, .9fr) minmax(350px, 1.1fr); align-items: start; gap: clamp(35px, 6vw, 85px); }
.lulav-join h2 { max-width: 650px; color: var(--lulav-dark); font-size: clamp(2.3rem, 5vw, 3.8rem); }
.lulav-join p { max-width: 650px; margin: 18px 0 0; color: #426449; font-size: 1.05rem; line-height: 1.6; }
.lulav-join__copy .lulav-button { margin-top: 28px; }
.lulav-inquiry { min-width: 0; padding: clamp(24px, 4vw, 40px); border: 2px solid var(--lulav-dark); border-radius: 15px; background: white; box-shadow: 9px 9px 0 var(--lulav-yellow); scroll-margin-top: 24px; }
.lulav-inquiry h3 { margin: 0; color: var(--lulav-dark); font: 700 clamp(1.8rem, 3vw, 2.4rem)/1 var(--lulav-display); }
.lulav-inquiry > p { margin: 10px 0 25px; font-size: .95rem; }
.lulav-inquiry form { display: grid; gap: 17px; }
.lulav-field { display: grid; gap: 6px; }
.lulav-field label { color: var(--lulav-dark); font-size: .9rem; font-weight: 800; }
.lulav-field__hint { margin: 0; color: #426449; font-size: .82rem; line-height: 1.4; }
.lulav-field input, .lulav-field textarea, .lulav-field select { display: block; width: 100%; min-height: 48px; padding: 11px 13px; border: 2px solid #b5cdae; border-radius: 7px; color: var(--lulav-ink); background: white; font: 500 1rem/1.4 var(--lulav-body); }
.lulav-field textarea { resize: vertical; }
.lulav-field input:focus-visible, .lulav-field textarea:focus-visible, .lulav-field select:focus-visible { outline: 3px solid var(--lulav-yellow); outline-offset: 2px; border-color: var(--lulav-dark); }
.lulav-inquiry form .lulav-button { width: max-content; cursor: pointer; font: 800 .95rem var(--lulav-body); }
.lulav-inquiry__notice, .lulav-inquiry__error { padding: 12px 15px; border-radius: 7px; font-size: .92rem !important; }
.lulav-inquiry__notice { color: #174a25 !important; background: #e5f4df; }
.lulav-inquiry__error { color: #7f221c !important; background: #fff0e9; }
.lulav-inquiry__error p { margin: 0; }
.lulav-inquiry__error ul { margin: 5px 0 0; padding-left: 20px; }
.lulav-footer { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 24px max(24px, calc((100vw - 1080px) / 2)); color: #426449; background: white; }
.lulav-footer img { display: block; width: 130px; height: auto; }
.lulav-footer p { margin: 0; font-size: .85rem; font-weight: 700; }

.lulav-duch-page { min-height: 100vh; padding: 35px 24px 80px; background: #fff9e9; }
.lulav-duch-shell { width: min(850px, 100%); margin: auto; }
.lulav-duch-back { display: inline-block; margin-bottom: 26px; color: var(--lulav-dark); font-weight: 800; text-decoration: none; }
.lulav-duch-back:hover { text-decoration: underline; }
.lulav-duch-card { padding: clamp(24px, 5vw, 52px); border: 3px solid var(--lulav-dark); border-radius: 18px; background: white; box-shadow: 12px 12px 0 var(--lulav-yellow); }
.lulav-duch-kicker { color: var(--lulav-green); font: 700 1rem var(--lulav-display); text-transform: uppercase; letter-spacing: .06em; }
.lulav-duch-card h1 { margin: 12px 0 0; color: var(--lulav-dark); font: 700 clamp(2.7rem, 7vw, 4.6rem)/1 var(--lulav-display); letter-spacing: -.04em; }
.lulav-duch-intro { max-width: 650px; margin: 15px 0 34px; color: #426449; line-height: 1.55; }
.lulav-saved-details { margin: 24px 0 34px; padding: 18px 20px; border: 2px solid #dcebd6; border-radius: 12px; background: #f5faef; }
.lulav-saved-details summary { color: var(--lulav-dark); font-weight: 800; cursor: pointer; }
.lulav-saved-details p { margin: 12px 0; color: #426449; line-height: 1.5; }
.lulav-saved-details form { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; }
.lulav-saved-details .lulav-field { flex: 1 1 250px; }
.lulav-saved-details .lulav-button { min-height: 48px; cursor: pointer; }
.lulav-previous-report { margin: 20px 0 26px; padding: 20px; border: 2px solid #c7dfbd; border-radius: 12px; background: #f2f8ee; color: var(--lulav-dark); }
.lulav-previous-report h2 { margin: 0 0 8px; font: 700 1.45rem/1.2 var(--lulav-display); }
.lulav-previous-report p { margin: 8px 0; line-height: 1.5; }
.lulav-previous-report dl { display: grid; gap: 10px; margin: 17px 0; }
.lulav-previous-report dl div { display: grid; grid-template-columns: minmax(115px, 30%) 1fr; gap: 8px; }
.lulav-previous-report dt { font-weight: 800; }
.lulav-previous-report dd { margin: 0; }
.lulav-previous-report__note { font-weight: 800; }
.lulav-duch-section { padding: 27px 0; border-top: 2px solid #dcebd6; }
.lulav-duch-section h2 { margin: 0 0 20px; color: var(--lulav-dark); font: 700 1.6rem var(--lulav-display); }
.lulav-duch-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 18px; }
.lulav-field--wide { grid-column: 1 / -1; }
.lulav-date-field { min-width: 0; margin: 0; padding: 0; border: 0; }
.lulav-date-field legend { margin-bottom: 6px; color: var(--lulav-dark); font-size: .9rem; font-weight: 800; }
.lulav-date-options { display: grid; gap: 8px; margin-top: 12px; }
.lulav-date-option { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 2px solid #b5cdae; border-radius: 7px; color: var(--lulav-dark); background: white; font-weight: 700; cursor: pointer; }
.lulav-date-option:has(input:checked) { border-color: var(--lulav-dark); background: #f2f8ee; }
.lulav-date-option:focus-within { outline: 3px solid var(--lulav-yellow); outline-offset: 2px; }
.lulav-date-option input { flex: none; width: 20px; height: 20px; margin: 0; accent-color: var(--lulav-dark); }
.lulav-duch-child { margin-bottom: 17px; padding: 20px; border-radius: 12px; background: #f2f8ee; }
.lulav-duch-child__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; color: var(--lulav-dark); }
.lulav-duch-child__top button, .lulav-duch-add { padding: 8px 12px; border: 2px solid var(--lulav-dark); border-radius: 7px; color: var(--lulav-dark); background: white; font: 800 .85rem var(--lulav-body); cursor: pointer; }
.lulav-duch-add { margin-top: 5px; }
.lulav-duch-submit { cursor: pointer; font: 800 1rem var(--lulav-body); }
.lulav-duch-success { width: min(620px, 100%); margin: 70px auto; }
.lulav-duch-success p { margin: 22px 0 30px; line-height: 1.6; }

@media (max-width: 850px) {
  .lulav-hero__inner { min-height: 0; grid-template-columns: 1fr; grid-template-rows: auto auto auto; padding-top: 74px; padding-bottom: 45px; }
  .lulav-hero__art { grid-column: 1; grid-row: 2; }
  .lulav-hero__pitch { grid-column: 1; grid-row: 3; }
  .lulav-home-link { margin-bottom: 45px; }
  .lulav-hero__art { width: min(570px, 95%); margin: -15px auto -50px; }
  .lulav-prizes__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 45px 20px; }
  .lulav-join__inner { grid-template-columns: 1fr; }
  .lulav-inquiry { width: min(620px, 100%); }
}
@media (max-width: 600px) {
  .lulav-hero__inner { padding-left: 22px; padding-right: 22px; }
  .lulav-hero__title { font-size: clamp(5.4rem, 22vw, 8rem); }
  .lulav-county { margin-left: 18%; }
  .lulav-hero__mission { font-size: 1.15rem; }
  .lulav-hero__art { width: 112%; margin-left: 2%; }
  .lulav-intro__heading, .lulav-prizes__heading { align-items: start; flex-direction: column; }
  .lulav-steps { grid-template-columns: 1fr; }
  .lulav-step + .lulav-step { border-left: 0; border-top: 2px dashed #a5c79c; }
  .lulav-prizes__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lulav-prize__number { font-size: 3rem; }
  .lulav-footer { align-items: start; flex-direction: column; }
  .lulav-duch-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .lulav-button { transition: none; }
}
