/* UNDER DOG festival pages (underdog.html, underdog-apply.html). The nav and footer come from
   styles.css like every other page.
   Everything inside <main class="ud"> has its own look: the starting palette and
   three type voices from the designer kickoff (EVENT DOCS/ARTS FESTIVAL/BRAND). Type only for
   now. When the designer delivers the logo, it replaces the .mast h1 wordmark. */
.ud{
  --paper:#F3EAD6;
  --paper-2:#EADCC0;
  --ink:#161311;
  --ink-soft:#4A4038;
  --red:#D23A26;
  --yellow:#F4C430;
  --navy:#2A2F4C;
  --olive:#5D6A2F;
  --mahogany:#321912;
  --dusty:#7189AB;
  --display:"Bowlby One","Arial Black",Impact,sans-serif;
  --slab:"Alfa Slab One",Rockwell,serif;
  --body:"Archivo","Helvetica Neue",Arial,sans-serif;
  --line:3px solid var(--ink);
  --drop:6px 6px 0 var(--ink);
  background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;
}
.ud ul{list-style:none;}
.ud dd a{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:3px;}
.ud .on-dark .btn{box-shadow:4px 4px 0 var(--yellow);}
.ud .on-dark .btn:hover{box-shadow:2px 2px 0 var(--yellow);}
a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:3px;}
.ud .wrap{max-width:1120px;margin:0 auto;padding:0 24px;}


/* ---- Buttons ---- */
.ud .btn{display:inline-block;font:800 15px/1 var(--body);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;padding:15px 22px;border:var(--line);background:var(--ink);color:var(--paper);box-shadow:4px 4px 0 var(--ink);transition:transform .12s ease,box-shadow .12s ease;cursor:pointer;}
.ud .btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink);}
.ud .btn.red{background:var(--red);}
.ud .btn.yellow{background:var(--yellow);color:var(--ink);}
.ud .btn.paper{background:var(--paper);color:var(--ink);}
.ud .btn.soon{background:var(--paper-2);color:var(--ink-soft);box-shadow:none;border-style:dashed;cursor:default;}
.ud .btn.soon:hover{transform:none;box-shadow:none;}

/* ---- Masthead ---- */
.ud .mast-sec{padding-block:36px 20px;}
.ud .mast{border:var(--line);background:var(--yellow);box-shadow:8px 8px 0 var(--ink);padding:clamp(22px,4vw,48px);display:grid;gap:26px;}
.ud .eyebrow{font:800 13px/1.2 var(--body);letter-spacing:.16em;text-transform:uppercase;}
.ud .mast h1{font-family:var(--display);font-weight:400;font-size:clamp(64px,15.5vw,184px);line-height:.86;letter-spacing:-.01em;margin-top:12px;}
.ud .mast h1 span{color:var(--red);}
.ud .mast .sub{font-family:var(--slab);font-size:clamp(22px,3.4vw,38px);line-height:1.1;margin-top:12px;}
.ud .facts{display:flex;flex-wrap:wrap;gap:8px;}
.ud .facts span{background:var(--paper);border:2px solid var(--ink);padding:6px 12px;font-weight:800;font-size:15px;}
.ud .cta-row{display:flex;flex-wrap:wrap;gap:14px;}

/* ---- Sections and panels ---- */
.ud section{padding:34px 0;background:transparent;}
.ud .capbox{display:inline-block;background:var(--yellow);border:2px solid var(--ink);padding:5px 12px;font:800 13px/1.2 var(--body);letter-spacing:.14em;text-transform:uppercase;}
.ud .sec-head{font-family:var(--slab);font-weight:400;font-size:clamp(28px,4.4vw,46px);line-height:1.08;margin-top:14px;max-width:20ch;}
.ud .sec-lede{margin-top:12px;max-width:62ch;color:var(--ink-soft);}
.ud .grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.ud .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px;}
.ud .panel{border:var(--line);background:var(--paper);padding:22px 24px;display:grid;gap:12px;align-content:start;min-width:0;}
.ud .panel p{max-width:60ch;}
.ud .panel.navy{background:var(--navy);color:var(--paper);}
.ud .panel.navy .capbox{background:transparent;border-color:var(--yellow);color:var(--yellow);}
.ud .big{font-family:var(--slab);font-size:clamp(26px,4.6vw,50px);line-height:1.08;}
.ud .big em{font-style:normal;color:var(--yellow);}
.ud .flash{font-family:var(--slab);font-size:clamp(22px,3vw,30px);line-height:1.1;}
.ud .flash b{color:var(--red);font-weight:400;}

/* ---- What's happening ---- */
/* Vendor market runs full width on top, with the other four in a two-by-two grid under it
   (same layout as the flier). */
.ud .tiles{display:grid;grid-template-columns:1fr 1fr;margin-top:26px;border:var(--line);}
.ud .tiles li{padding:20px 22px;font-family:var(--slab);font-size:21px;line-height:1.15;border-right:var(--line);border-bottom:var(--line);min-width:0;}
.ud .tiles li:nth-child(odd){border-right:0;}
.ud .tiles li:nth-last-child(-n+2){border-bottom:0;}
.ud .tiles li small{display:block;font:500 15px/1.45 var(--body);color:var(--ink-soft);margin-top:6px;}
.ud .tiles li:first-child{grid-column:1 / -1;background:var(--red);color:var(--paper);font-family:var(--display);font-size:clamp(30px,5vw,46px);line-height:1;padding:22px 24px;}
.ud .tiles li:first-child small{color:var(--paper);font-size:16px;margin-top:10px;}
.ud .tiles li:nth-child(4){background:var(--yellow);}
.ud .tiles li:nth-child(4) small{color:var(--ink);}

/* ---- The details ---- */
.ud .details{border:var(--line);margin-top:26px;}
.ud .details div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:14px 20px;border-bottom:2px solid var(--ink);}
.ud .details div:last-child{border-bottom:0;}
.ud .details dt{font:800 12px/1.5 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--red);padding-top:3px;}
.ud .details dd{margin:0;font-weight:600;}
.ud .details dd small{display:block;font-weight:400;font-size:15px;color:var(--ink-soft);}
.ud dl{margin:0;}

/* ---- Take part / sponsor cards ---- */
.ud .card{border:var(--line);background:var(--paper);box-shadow:var(--drop);padding:22px 22px 24px;display:flex;flex-direction:column;gap:12px;min-width:0;}
.ud .card h3{font-family:var(--display);font-weight:400;font-size:28px;line-height:1;}
.ud .card .price{font-family:var(--slab);font-size:34px;line-height:1;color:var(--red);}
.ud .card .price small{font:700 14px/1.3 var(--body);color:var(--ink-soft);display:block;margin-top:6px;}
.ud .card ul{display:grid;gap:7px;font-size:15.5px;}
.ud .card li{padding-left:18px;position:relative;}
.ud .card li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;background:var(--ink);}
.ud .card .btn{margin-top:auto;align-self:flex-start;}
.ud .card .spots{font:800 12px/1.2 var(--body);letter-spacing:.12em;text-transform:uppercase;align-self:flex-start;border:2px solid var(--ink);padding:4px 8px;background:var(--paper-2);}
.ud .deadline{margin-top:28px;border:var(--line);background:var(--ink);color:var(--paper);padding:14px 20px;font-weight:700;}
.ud .deadline b{color:var(--yellow);}

.ud .sponsor-sec{background:var(--mahogany);color:var(--paper);padding-block:54px;margin-top:20px;}
.ud .sponsor-sec .sec-lede{color:var(--paper-2);}
.ud .sponsor-sec .card{color:var(--ink);box-shadow:6px 6px 0 var(--yellow);}
.ud .sponsor-sec .capbox{color:var(--ink);}
.ud .fine{margin-top:30px;font-size:14.5px;line-height:1.55;color:var(--paper-2);max-width:78ch;}
.ud .fine + .fine{margin-top:10px;}
.ud .sponsor-cta{margin-top:28px;}

/* ---- Help out ---- */
.ud .help{border:var(--line);background:var(--dusty);padding:26px 28px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;}
.ud .help h2{font-family:var(--slab);font-weight:400;font-size:clamp(24px,3.4vw,34px);line-height:1.1;}
.ud .help p{margin-top:8px;max-width:56ch;}


@media (max-width:860px){
  .ud .grid2,.ud .grid3{grid-template-columns:1fr;}
  .ud .help{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .ud{font-size:16px;}
  .ud .wrap{padding:0 16px;}
  .ud .mast{box-shadow:5px 5px 0 var(--ink);}
  .ud .tiles{grid-template-columns:1fr;}
  .ud .tiles li{border-right:0;}
  .ud .tiles li:nth-last-child(-n+2){border-bottom:var(--line);}
  .ud .tiles li:last-child{border-bottom:0;}
  .ud .details div{grid-template-columns:1fr;gap:2px;}
  .ud .cta-row .btn{flex:1 1 100%;text-align:center;}
}
@media (prefers-reduced-motion:reduce){
  .ud .btn{transition:none;}
}

/* ================= Application form (underdog-apply.html) ================= */
.ud [hidden]{display:none !important;}
.ud .apply-head{border:var(--line);background:var(--yellow);box-shadow:var(--drop);padding:20px 24px;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 20px;}
.ud .apply-head h1{font-family:var(--display);font-weight:400;font-size:clamp(34px,7vw,60px);line-height:.9;}
.ud .apply-head h1 span{color:var(--red);}
.ud .apply-head p{font-family:var(--slab);font-size:clamp(17px,2.4vw,22px);line-height:1.1;}
.ud .apply-wrap{max-width:760px;}
.ud .form-panel{border:var(--line);background:var(--paper);padding:clamp(20px,4vw,34px);margin-top:26px;}
.ud .progress{display:flex;align-items:center;gap:14px;margin-bottom:22px;}
.ud .progress-track{flex:1;height:14px;border:2px solid var(--ink);background:var(--paper-2);}
.ud .progress-fill{height:100%;background:var(--red);width:0;transition:width .2s ease;}
.ud .progress-label{font:800 12px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;}
.ud .step-title{font-family:var(--slab);font-weight:400;font-size:clamp(24px,4vw,34px);line-height:1.1;outline:none;}
.ud .step-help{margin-top:8px;color:var(--ink-soft);max-width:58ch;}
.ud .fields{display:grid;gap:18px;margin-top:22px;}
.ud .field label,.ud fieldset legend{display:block;font-weight:800;font-size:15px;margin-bottom:6px;padding:0;}
.ud .field .opt{font-weight:500;color:var(--ink-soft);}
.ud .field .hint{font-size:14.5px;color:var(--ink-soft);margin:-2px 0 8px;}
.ud .field input[type=text],.ud .field input[type=email],.ud .field input[type=tel],.ud .field input[type=url],.ud .field textarea{
  width:100%;font:500 17px/1.4 var(--body);color:var(--ink);background:#FFFDF6;border:2px solid var(--ink);border-radius:0;padding:12px 14px;
}
.ud .field textarea{min-height:110px;resize:vertical;}
.ud .field input:focus,.ud .field textarea:focus{outline:3px solid var(--red);outline-offset:2px;}
.ud fieldset{border:0;min-width:0;}
.ud .choices{display:grid;gap:10px;}
.ud .field label.choice{display:flex;align-items:flex-start;gap:12px;border:2px solid var(--ink);background:#FFFDF6;padding:13px 14px;cursor:pointer;margin:0;font-weight:500;}
.ud .choice:hover{background:var(--paper-2);}
/* Fixed 18px box so a checkbox or radio never stretches to fill its row. */
.ud .choice input[type=checkbox],.ud .choice input[type=radio]{margin:3px 0 0;padding:0;width:18px;height:18px;min-width:18px;max-width:18px;flex:0 0 18px;accent-color:var(--red);}
.ud .choice > span{flex:1 1 auto;min-width:0;}
.ud .choice:has(input:checked){background:var(--yellow);box-shadow:4px 4px 0 var(--ink);}
.ud .choice:has(input:disabled){opacity:.55;cursor:not-allowed;background:var(--paper-2);}
.ud .choice b{display:block;font-size:16.5px;font-weight:800;}
.ud .choice small{display:block;font-size:14.5px;color:var(--ink-soft);margin-top:2px;}
.ud .choice:has(input:checked) small{color:var(--ink);}
.ud .field-error{display:none;margin-top:6px;font-weight:700;font-size:14.5px;color:var(--red);}
.ud .field.invalid .field-error{display:block;}
.ud .field.invalid input[type=text],.ud .field.invalid input[type=email],.ud .field.invalid input[type=tel],.ud .field.invalid textarea{border-color:var(--red);}
.ud .form-nav{display:flex;justify-content:space-between;gap:14px;margin-top:28px;flex-wrap:wrap;}
.ud .form-nav .btn[disabled]{opacity:.6;cursor:wait;}
.ud .form-msg{margin-top:18px;border:2px solid var(--ink);background:var(--red);color:var(--paper);padding:12px 14px;font-weight:700;}
.ud .review{border:2px solid var(--ink);}
.ud .review div{display:grid;grid-template-columns:170px 1fr;gap:14px;padding:10px 14px;border-bottom:1px solid var(--ink);}
.ud .review div:last-child{border-bottom:0;}
.ud .review dt{font:800 11.5px/1.5 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--red);padding-top:3px;}
.ud .review dd{margin:0;white-space:pre-line;overflow-wrap:anywhere;}
.ud .hp{position:absolute;left:-9999px;}
.ud .done-next{display:grid;gap:10px;margin-top:18px;}
.ud .done-next li{padding-left:18px;position:relative;}
.ud .done-next li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;background:var(--ink);}
@media (max-width:560px){
  .ud .review div{grid-template-columns:1fr;gap:2px;}
  .ud .form-nav .btn{flex:1 1 100%;text-align:center;}
}
@media (prefers-reduced-motion:reduce){ .ud .progress-fill{transition:none;} }

