/* ===========================================================================
   promo.css - shared design system for marketing / promo landing pages.

   Source: the standalone page mockups from Adam (sweepstakes, give-away-a-hat-
   a-day, labor-day-promo). All three shipped byte-identical <style> blocks, so
   the CSS lives here once instead of three times.

   IMPORTANT - every rule is scoped under .hl-promo.
   The mockups styled bare `body`, `*`, `a`, `p`, `h1`-`h4`, `img`, `section`,
   `header`, `footer`, `label` and `input[...]`, which would have collided with
   site.css once the pages moved inside _HatLaunchLayout. Scoping keeps the
   promo look inside its own wrapper and leaves the rest of the site alone.

   To use: wrap the page content in <div class="hl-promo"> ... </div> and add
       <link rel="stylesheet" href="~/css/promo.css" asp-append-version="true" />
   Rules that targeted the mockups' own header/nav/footer are retained but inert,
   since that chrome now comes from the site layout.

   The palette matches the 2026-08 footer redesign (--green #39B91C,
   --orange #F9722B, --paper #F8F8F6), so promo pages sit flush with the site.
   =========================================================================== */

.hl-promo { --green:#39B91C; --green-dark:#22790F; --green-deep:#0F4A08; --green-light:#67C951; --green-pale:#9EEB8C; --green-tint:#E5F6E0; --green-border:#1D680C; --blue:#1350C1; --orange:#F9722B; --orange-2:#FFA72D; --red:#950000; --ink:#2A2A2A; --body:#626262; --muted:#7F7F7F; --paper:#F8F8F6; --sand:#F1EFE8; --hairline:#E5E5E0; --muted-border:#D3D1C7; --near-black:#0E0E0E; --shadow-card:4px 5px 10px rgba(0,0,0,.18); --max:1140px; }
.hl-promo * { box-sizing:border-box }
.hl-promo { scroll-behavior:smooth }
.hl-promo { margin:0;background:#fff;color:var(--body); font-family:Montserrat,'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight:400;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased; }
.hl-promo img { max-width:100%;height:auto;display:block }
.hl-promo a { color:var(--green-dark) }
.hl-promo .wrap { max-width:var(--max);margin:0 auto;padding:0 24px }
.hl-promo .center { text-align:center }
/* ---------- type ---------- */
.hl-promo h1, .hl-promo h2, .hl-promo h3, .hl-promo h4 { margin:0;color:var(--green);font-weight:800;letter-spacing:-.01em;text-transform:uppercase;line-height:1.06 }
.hl-promo h1 { font-size:clamp(34px,5.4vw,62px) }
.hl-promo h2 { font-size:clamp(27px,3.6vw,40px) }
.hl-promo h3 { font-size:clamp(20px,2.2vw,26px);font-weight:700;text-transform:none;letter-spacing:0 }
.hl-promo .eyebrow { font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--green-dark);margin:0 0 14px }
.hl-promo .eyebrow.on-dark { color:var(--green-pale) }
.hl-promo .ink { color:var(--ink) }
.hl-promo .lede { font-size:clamp(17px,1.6vw,20px);line-height:1.6;color:var(--body);max-width:62ch }
.hl-promo .lede.center { margin-left:auto;margin-right:auto }
.hl-promo p { margin:0 0 18px }
.hl-promo .small { font-size:14px }
.hl-promo .fine { font-size:12px;line-height:1.65;color:var(--muted) }
/* ---------- promo bar + header ---------- */
.hl-promo .promobar { background:var(--red);color:#fff;text-align:center;padding:9px 16px; font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase }
.hl-promo .promobar a { color:#fff;text-decoration:underline }
.hl-promo header { position:sticky;top:0;z-index:50;background:var(--green);height:70px;display:flex;align-items:center }
.hl-promo header .wrap { display:flex;align-items:center;justify-content:space-between;width:100% }
.hl-promo header img { width:170px }
.hl-promo nav a { color:#fff;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.06em; text-transform:uppercase;margin-left:26px;border-radius:8px;padding:6px 2px }
.hl-promo nav a:hover { color:var(--green-tint) }
@media(max-width:820px) {
    .hl-promo nav { display:none }
}
/* ---------- buttons ---------- */
.hl-promo .btn { display:inline-block;border-radius:5px;font-weight:700;font-size:14px;letter-spacing:.06em; text-transform:uppercase;text-decoration:none;padding:16px 34px;text-align:center; border:0;cursor:pointer;font-family:inherit;transition:.18s ease }
.hl-promo .btn-cta { background:var(--orange);color:#fff }
.hl-promo .btn-cta:hover { box-shadow:0 0 22px rgba(249,114,43,.6);transform:translateY(-1px) }
.hl-promo .btn-primary { background:var(--green);color:#fff }
.hl-promo .btn-primary:hover { background:var(--green-dark) }
.hl-promo .btn-secondary { background:transparent;color:var(--green-dark);border:3px solid var(--green);padding:13px 31px }
.hl-promo .btn-secondary:hover { background:var(--green-tint) }
.hl-promo .btn-ghost-light { background:transparent;color:#fff;border:3px solid rgba(255,255,255,.55);padding:13px 31px }
.hl-promo .btn-ghost-light:hover { border-color:#fff }
/* ---------- sections ---------- */
.hl-promo section { padding:74px 0 }
.hl-promo section.tight { padding:52px 0 }
.hl-promo .bg-paper { background:var(--paper) }
.hl-promo .bg-sand { background:var(--sand) }
.hl-promo .bg-tint { background:var(--green-tint) }
.hl-promo .bg-dark { background:var(--near-black);color:#D9D9D9 }
.hl-promo .bg-dark h2, .hl-promo .bg-dark h1, .hl-promo .bg-dark h3 { color:#fff }
.hl-promo .rule { width:84px;height:5px;background:var(--green);border:0;margin:22px 0 }
.hl-promo .rule.center { margin-left:auto;margin-right:auto }
/* ---------- hero ---------- */
.hl-promo .hero { background:var(--near-black);color:#D9D9D9;position:relative;overflow:hidden }
.hl-promo .hero::after { content:"";position:absolute;inset:0; background:radial-gradient(60% 55% at 50% 34%,#242424 0%,transparent 70%);pointer-events:none }
.hl-promo .hero .wrap { position:relative;z-index:1;padding-top:66px;padding-bottom:66px }
.hl-promo .hero h1 { color:#fff }
.hl-promo .hero-grid { display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center }
@media(max-width:900px) {
    .hl-promo .hero-grid { grid-template-columns:1fr;gap:34px;text-align:center }
    .hl-promo .hero .rule { margin-left:auto;margin-right:auto }
}
/* ---------- cards ---------- */
.hl-promo .grid { display:grid;gap:24px }
.hl-promo .g2 { grid-template-columns:repeat(2,1fr) }
.hl-promo .g3 { grid-template-columns:repeat(3,1fr) }
.hl-promo .g4 { grid-template-columns:repeat(4,1fr) }
@media(max-width:900px) {
    .hl-promo .g3, .hl-promo .g4 { grid-template-columns:repeat(2,1fr) }
}
@media(max-width:640px) {
    .hl-promo .g2, .hl-promo .g3, .hl-promo .g4 { grid-template-columns:1fr }
}
.hl-promo .card { background:#fff;border-radius:20px;box-shadow:var(--shadow-card);overflow:hidden }
.hl-promo .card .pad { padding:28px }
.hl-promo .why-card { background:#fff;border:1px solid var(--hairline);border-radius:12px;padding:26px }
.hl-promo .tile { border-radius:8px }
.hl-promo .step-num { font-size:13px;font-weight:800;letter-spacing:.14em;color:var(--green); text-transform:uppercase;display:block;margin-bottom:10px }
/* offer callout */
.hl-promo .offer { background:var(--green-deep);color:#E5F6E0;border-radius:20px;padding:44px 34px;text-align:center }
.hl-promo .offer h2 { color:#fff }
.hl-promo .offer strong { color:#fff }
.hl-promo .offer .big { font-size:clamp(30px,4.6vw,50px);font-weight:800;color:#fff; text-transform:uppercase;line-height:1.08;letter-spacing:-.01em;margin:0 0 18px }
/* prize counter */
.hl-promo .prize { display:flex;align-items:baseline;justify-content:center;gap:14px;flex-wrap:wrap }
.hl-promo .prize-num { font-size:clamp(64px,12vw,132px);font-weight:800;color:var(--green);line-height:.92;letter-spacing:-.02em }
.hl-promo .bg-dark .prize-num { color:var(--green-light) }
/* ---------- form ---------- */
.hl-promo .form { background:#fff;border-radius:20px;box-shadow:var(--shadow-card);padding:34px }
.hl-promo .field { margin-bottom:16px }
.hl-promo label { display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase; color:var(--ink);margin-bottom:7px }
/* ---------------------------------------------------------------------------
   FORM CONTROLS — the same site.css collision the blog admin hits.

   site.css line ~96 globally sets
       input[type=text], input[type=password], select, input[type=number]
       { height: 30px; font-size: 16px; }
   so on these forms input[type=text] was squashed to 30px and clipped, while
   input[type=email] and input[type=tel] are NOT in that list and rendered at
   their natural ~52px — three different heights in one form. <select> (the
   State picker on the sweepstakes entry form) was clipped for the same reason.

   Every control below therefore states its height explicitly. Don't remove it.
   --------------------------------------------------------------------------- */
.hl-promo input[type=text], .hl-promo input[type=email],
.hl-promo input[type=tel], .hl-promo input[type=date], .hl-promo select {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: 52px;              /* beats the 30px in site.css */
    padding: 14px 15px;
    line-height: 1.35;
    border: 1px solid var(--muted-border);
    border-radius: 5px;
    font-family: inherit;
    font-size: 16px;
    color: var(--ink);
    background-color: #fff;
    vertical-align: middle;
}

/* Native select chrome ignores most sizing, so draw our own chevron instead. */
.hl-promo select {
    -webkit-appearance: none; -moz-appearance: none; appearance: none;
    padding-right: 40px;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='9' viewBox='0 0 13 9'%3E%3Cpath d='M1.5 1.5L6.5 6.5L11.5 1.5' stroke='%237F7F7F' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 15px center;
    cursor: pointer;
    text-overflow: ellipsis;
}
.hl-promo select::-ms-expand { display: none; }

.hl-promo textarea {
    width: 100%; min-height: 120px; padding: 14px 15px; line-height: 1.5;
    border: 1px solid var(--muted-border); border-radius: 5px;
    font-family: inherit; font-size: 16px; color: var(--ink); background: #fff;
    resize: vertical;
}
.hl-promo input:focus { outline:3px solid var(--green-pale);outline-offset:1px;border-color:var(--green) }
.hl-promo .consent { display:flex;gap:12px;align-items:flex-start;margin:18px 0; font-size:12px;line-height:1.6;color:var(--body); text-transform:none;letter-spacing:0;font-weight:400 }
.hl-promo .consent input { margin-top:3px;width:18px;height:18px;accent-color:var(--green);flex:0 0 auto }
/* ---------- winners ---------- */
.hl-promo .winner { display:flex;gap:18px;align-items:center;padding:20px 0;border-bottom:1px solid var(--hairline) }
.hl-promo .winner:last-child { border-bottom:0 }
.hl-promo .winner .mo { flex:0 0 96px;font-size:12px;font-weight:800;letter-spacing:.1em; text-transform:uppercase;color:var(--green-dark) }
.hl-promo .winner .who { font-weight:700;color:var(--ink) }
.hl-promo .badge { display:inline-block;background:var(--green-tint);color:var(--green-dark); border-radius:8px;padding:5px 12px;font-size:11px;font-weight:700; letter-spacing:.08em;text-transform:uppercase }
.hl-promo .badge.live { background:var(--orange);color:#fff }
.hl-promo .badge.closed { background:var(--sand);color:var(--muted) }
/* ---------- faq ---------- */
.hl-promo details { border-bottom:1px solid var(--hairline);padding:20px 0 }
.hl-promo summary { cursor:pointer;font-weight:700;color:var(--ink);font-size:17px;list-style:none; display:flex;justify-content:space-between;gap:20px }
.hl-promo summary::-webkit-details-marker { display:none }
.hl-promo summary::after { content:"+";color:var(--green);font-weight:800;font-size:22px;line-height:1 }
.hl-promo details[open] summary::after { content:"\2212" }
.hl-promo details p { margin:14px 0 0 }
/* ---------- footer ---------- */
.hl-promo footer { background:var(--ink);color:#B5B5B0;padding:46px 0 40px;font-size:13px }
.hl-promo footer a { color:#fff;text-decoration:none }
.hl-promo footer a:hover { text-decoration:underline }
.hl-promo .foot-nav { font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase; margin-bottom:16px;line-height:2.1 }
.hl-promo .foot-nav span { color:var(--muted) }
.hl-promo :focus-visible { outline:3px solid var(--green-pale);outline-offset:2px }
@media(prefers-reduced-motion:reduce) {
    .hl-promo * { transition:none!important;scroll-behavior:auto }
}
