:root {
  --footer-details-gap: 24px;
  --footer-details-copy: 12px;
  --footer-details-heading: 16px;
  --cider-card-focus: 50% 45%;
  --cider-modal-focus: 50% 35%;
  --program-photo-ratio: 3 / 2;
  --wine-card-focus: 50% 50%;
  --wine-modal-focus: 50% 50%;
  --client-course-focus: 50% 50%;
  --course-dialog-photo-max: 290px;
  --benefit-content-padding: 20px;
  --benefit-icon-size: 32px;
  --benefit-icon-gap: 12px;
  --benefit-title-size: 16px;
  --benefit-title-line: 1.35;
  --benefit-title-height: 2.7em;
  --benefit-copy-size: 13px;
  --benefit-copy-line: 1.55;
  --benefit-copy-gap: 10px;
  --benefit-grid-gap: 20px;
  --benefit-intro-min: 240px;
  --benefit-intro-gap: 32px;
  --benefit-photo-height: 125px;
  --benefit-mobile-intro-gap: 16px;
}
.about__grid { grid-template-columns: minmax(var(--benefit-intro-min), 1.4fr) repeat(4, minmax(0, 1fr)); grid-template-rows: none; gap: var(--benefit-grid-gap); align-items: stretch; }
.benefit { display: flex; flex-direction: column; min-height: 0; }
.benefit > img { height: var(--benefit-photo-height); }
.benefit .benefit__content { display: flex; flex-direction: column; flex: 1; padding: var(--benefit-content-padding); }
.benefit .benefit-icon { position: static; width: var(--benefit-icon-size); height: var(--benefit-icon-size); flex: none; margin-bottom: var(--benefit-icon-gap); }
.benefit .benefit__content h3 { margin: 0; min-height: var(--benefit-title-height); font-size: var(--benefit-title-size); line-height: var(--benefit-title-line); }
.benefit .benefit__content p { margin: var(--benefit-copy-gap) 0 0; font-size: var(--benefit-copy-size); line-height: var(--benefit-copy-line); }
@media (max-width: 1279px) {
  .about__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .about__intro { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--benefit-mobile-intro-gap) var(--benefit-intro-gap); align-items: start; }
  .about__intro .eyebrow { grid-column: 1 / -1; margin-bottom: 0; }
  .about__intro .body-copy { margin: 0; max-width: none; }
}
@media (max-width: 959px) {
  :root { --benefit-photo-height: 180px; }
  .about__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 760px) and (max-width: 959px) {
  :root { --benefit-title-height: 1.35em; }
}
@media (max-width: 699px) {
  :root { --benefit-content-padding: 18px; --benefit-grid-gap: var(--mobile-card-gap); --benefit-photo-height: var(--mobile-card-photo); }
  .about__grid { grid-template-columns: minmax(0, 1fr); }
  .about__intro { display: block; }
  .about__intro .eyebrow { margin-bottom: var(--benefit-icon-gap); }
  .about__intro .body-copy { margin-top: var(--benefit-mobile-intro-gap); }
  .benefit .benefit__content h3 { min-height: 0; }
}
.footer__organization {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: var(--footer-details-gap);
  margin-top: var(--footer-details-gap);
  padding-block: var(--footer-details-gap);
  border-top: 1px solid color-mix(in srgb, var(--white) 22%, transparent);
  font-size: var(--footer-details-copy);
  line-height: 1.65;
}
.footer__organization > div { min-width: 0; }
.footer__organization h2 { font-size: var(--footer-details-heading); margin-bottom: 8px; }
.footer__organization p, .footer__organization address { margin: 0; font-style: normal; }
.footer__organization .footer__license { margin-top: 12px; }
.footer__registration { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 12px; }
.footer__organization .footer__documents { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px 20px; }
.footer__documents a { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; padding-block: 4px; }
.footer__documents .icon { flex: none; width: 16px; height: 16px; }
.program-card__photo { height: auto; aspect-ratio: var(--program-photo-ratio); flex-shrink: 0; }
.program-card[data-course="wine"] .program-card__photo > img { object-fit: cover; object-position: var(--wine-card-focus); transform: none; }
.course-dialog__image[src*="wine-client"] { height: auto; aspect-ratio: var(--program-photo-ratio); object-fit: cover; object-position: var(--wine-modal-focus); }
.program-card[data-course="wine"] .program-category { left: auto; right: 11px; }
.program-card[data-course="wine"] .program-card__badge { top: auto; right: auto; bottom: 11px; left: 11px; }
.course-dialog__media { position: relative; overflow: hidden; }
.course-dialog:is([data-course="drone"], [data-course="bread"], [data-course="nutrition"], [data-course="cheese"]) .course-dialog__image { height: auto; max-height: var(--course-dialog-photo-max); aspect-ratio: var(--program-photo-ratio); object-fit: cover; object-position: var(--client-course-focus); }
.course-dialog:is([data-course="bread"], [data-course="nutrition"]) { --client-course-focus: 50% 68%; }
.program-card[data-course="cider"] .program-card__photo > img,
.course-dialog[data-course="cider"] .course-dialog__image {
  position: relative;
  z-index: 1;
  object-fit: cover;
}
.program-card[data-course="cider"] .program-card__photo > img { object-position: var(--cider-card-focus); transform: none; }
.course-dialog[data-course="cider"] .course-dialog__image { object-position: var(--cider-modal-focus); }
.program-card__footer { margin-top: auto; }
#dialog-description { white-space: pre-line; font-size: 14px; line-height: 1.6; color: var(--muted); margin-top: 19px; }
#dialog-description:has(> *) { white-space: normal; }
#dialog-description > :first-child { margin-top: 0; }
#dialog-description > :last-child { margin-bottom: 0; }
#dialog-description :is(h2,h3,h4,h5,h6) { font-family: var(--font-display); font-size: 1.4em; line-height: 1.3; margin-block: 1em .65em; color: var(--ink); }
#dialog-description :is(p,ul,ol) { font-size: inherit; line-height: inherit; margin-block: 0 1em; }
.cms-photo-placeholder { display: grid; place-content: center; min-height: 10rem; padding: 1rem; background: var(--cream); color: var(--muted); text-align: center; }
.course-dialog__media > img[hidden] { display: none; }
.cms-section .body-copy > :is(h2,h3,h4) { margin-block: 1em .65em; }
.cms-section .body-copy > :is(p,ul,ol) { margin-block: 0 1em; }
.cms-section .body-copy > :first-child { margin-top: 0; }
/* New/changed photos share the 290px frame; original three supplied crops retain their approved frames. */
.course-dialog[data-course]:not([data-original-frame="true"]) .course-dialog__image { height: auto; max-height: var(--course-dialog-photo-max); aspect-ratio: var(--program-photo-ratio); object-fit: cover; }
.cms-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: var(--footer-details-gap); }
.cms-section .container > img { display: block; max-width: 100%; height: auto; }
.cms-section figure { margin: 0; }
.cms-section .benefit { min-width: 0; }
.cms-section :is(h2,h3,p,a,figcaption) { overflow-wrap: anywhere; }
.cms-section .body-copy { margin-bottom: 1em; }
.consent-text p { overflow-wrap: anywhere; }
.legal-intro > :first-child, .course-dialog__disclaimer > :first-child { margin-top: 0; }
.legal-intro > :last-child, .course-dialog__disclaimer > :last-child { margin-bottom: 0; }
.legal-intro :is(p,ul,ol), .course-dialog__disclaimer :is(p,ul,ol) { font-size: inherit; line-height: inherit; margin-block: 0 .75em; }
.legal-intro :is(h2,h3,h4), .course-dialog__disclaimer :is(h2,h3,h4) { font-size: 1.25em; line-height: 1.3; margin-block: 1em .5em; }
.legal-intro a, .course-dialog__disclaimer a { text-decoration: underline; text-underline-offset: .15em; }
/* The complete desktop navigation does not fit the intermediate header width. */
@media (max-width: 959px) {
  .header .nav { display: none; }
  .header .menu-toggle { display: flex; flex-shrink: 0; }
  .header .header__inner { gap: clamp(7px, 2vw, 12px); }
}
@media (max-width: 699px) {
  #dialog-description { font-size: 13px; line-height: 1.5; margin-top: 14px; }
  :root { --footer-details-gap: 18px; --footer-details-copy: 11px; }
  .footer__organization { grid-template-columns: minmax(0, 1fr); }
  .footer__organization .footer__documents { flex-direction: column; align-items: flex-start; gap: 6px; }
  .document-downloads .button { min-width: 0; white-space: normal; text-align: left; }
}

/* Editable display copy must contribute a bounded intrinsic width in flex/grid layouts. */
.program-card, .program-card__body > span:last-child, .program-card__footer > span,
.application__form-wrap, .course-meta > span, .footer__main > *, .footer__contacts a { min-width: 0; }
.program-card__body > span:last-child { flex: 1; }
.program-card__body, .program-card__footer, .program-category, .course-dialog__body,
.selected-course, .accordion, .footer, .mobile-menu { overflow-wrap: anywhere; }
.program-card__footer { align-items: flex-start; }
.program-card__footer > span { flex: 1; }
.program-card__footer > span:last-child { justify-content: flex-end; }
.program-card__footer .icon, .program-category .icon { flex-shrink: 0; }
.program-category { max-width: calc(100% - 24px); }
.program-category__caption { min-width: 0; }
.program-card .program-category--flow { position: static; max-width: none; align-self: stretch; margin: 12px 20px 0; background: var(--cream); backdrop-filter: none; }
.category-fit-probe { visibility: hidden; pointer-events: none; }
.course-dialog .button { min-width: 0; max-width: 100%; white-space: normal; }
.course-meta > span { max-width: 100%; }
.application__grid { grid-template-columns: minmax(0, 290px) minmax(0, 1fr); }
.footer__main { flex-wrap: wrap; }
.footer__nav { flex-wrap: wrap; flex: 1 1 18rem; }
.footer__nav a { min-width: 0; max-width: 100%; }
.footer__contacts { max-width: 100%; }
.footer__contacts a { max-width: 100%; }
.mobile-menu { justify-content: flex-start; }
.mobile-menu nav, .mobile-menu > p { flex-shrink: 0; min-width: 0; }
.mobile-menu a { max-width: 100%; min-width: 0; white-space: normal; }
.header__cta { min-width: 0; max-width: clamp(120px, 20vw, 240px); flex-shrink: 1; }
.header__caption { display: block; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.header.header--compact .nav { display: none; }
.header.header--compact .menu-toggle { display: flex; flex-shrink: 0; }
.header.header--compact .nav.nav-fit-probe, .header .nav.nav-fit-probe { position: fixed; visibility: hidden; pointer-events: none; display: flex; width: max-content; max-width: none; margin: 0; }
@media (max-width: 1199px) and (min-width: 960px) { .application__grid { grid-template-columns: minmax(0,250px) minmax(0,1fr); } }
@media (max-width: 959px) and (min-width: 700px) { .application__grid { grid-template-columns: minmax(0,200px) minmax(0,1fr); } }
@media (max-width: 699px) {
  .application__grid { grid-template-columns: minmax(0,1fr); }
  .program-card .program-category--flow { margin-inline: var(--mobile-card-padding); }
  .header__cta { padding-inline: 10px; gap: 6px; }
}
.application__form-wrap { overflow-wrap: anywhere; }
/* The same prose contract applies to editable headings and supporting public blocks. */
.hero, .about, .steps, .application__intro, .closing, .legal-main { overflow-wrap: anywhere; }
.about__intro > *, .section-heading > *, .closing__inner > *, .step-list li { min-width: 0; }
.hero .button, .closing .button, .cms-section .button { white-space: normal; max-width: 100%; min-width: 0; }
.closing__inner { flex-wrap: wrap; }
.closing__inner > div { flex: 1 1 20rem; }
.closing__inner > .button { flex: 0 1 auto; }
.section-heading { overflow-wrap: anywhere; flex-wrap: wrap; }
.section-heading > div { flex: 1 1 18rem; }
.section-heading .text-link { flex-shrink: 0; max-width: 100%; white-space: normal; }
:root{--form-gap:.75rem;--form-control:2.75rem;--form-check:1.125rem;--form-text:.8125rem;--form-hint:.75rem;--form-padding:.75rem;--form-border:1px;--form-textarea:7rem;--form-focus-offset:.1875rem;--form-focus-width:.125rem}
/* iOS themes force date controls to content-box when appearance stays native,
   adding padding outside the grid width and height (WebKit issue 301648). */
.field input[type=date]{-webkit-appearance:none;appearance:none;display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-inline-size:0;text-align:left}
.field input[type=date]::-webkit-date-and-time-value{min-height:1em;text-align:left}
.field textarea{display:block;width:100%;min-width:0;min-height:var(--form-textarea);resize:vertical;padding:var(--form-padding);border:var(--form-border) solid var(--line);border-radius:var(--radius-sm);background:var(--input);color:var(--ink);font:var(--form-text)/1.5 var(--font-body);transition:border-color var(--motion),box-shadow var(--motion)}
.field textarea:focus-visible,.field-options input:focus-visible{outline:var(--form-focus-width) solid var(--forest);outline-offset:var(--form-focus-offset)}
.field textarea[aria-invalid=true],.field input[aria-invalid=true]{border-color:var(--danger)}
.field:has(textarea),.field:has(.field-options){grid-column:1/-1}
.field>label.checkbox-label,.field-options .checkbox-label{display:flex;align-items:center;gap:var(--form-gap);min-height:var(--form-control);line-height:1.6}
.field input:is([type=checkbox],[type=radio]){appearance:auto;accent-color:var(--forest);width:var(--form-check);height:var(--form-check);min-width:var(--form-check);padding:0;margin:0;flex:none;background:var(--white);box-shadow:none}
.field input:is([type=checkbox],[type=radio]):checked:after{content:none}
.field-options{display:grid;gap:var(--form-gap)}
.field-options .checkbox-label,.field>.field-hint{font:var(--form-text)/1.6 var(--font-body);color:var(--ink);overflow-wrap:anywhere}
.field>.field-hint{display:block;margin-block:var(--form-gap);color:var(--muted)}
.field:has([aria-invalid=true]) .upload-zone{border-color:var(--danger)}
.field>label,.field-error,.field-options span{overflow-wrap:anywhere;min-width:0}
@media(prefers-reduced-motion:reduce){.field textarea{transition:none}}
.form-grid:not(:has(.field)){display:none}
@media(max-width:768px){.form-grid--custom{grid-template-columns:minmax(0,1fr)}.form-grid--custom>.field{grid-column:1/-1}.form-grid--custom .field>label:first-child{font-size:var(--form-text)}}
/* Configured file hints can use the full allowed text length. Let their
   target grow while retaining the existing minimum touch target. */
.field--upload > .upload-zone{height:auto}
@media(max-width:699px){.field--upload{grid-template-rows:minmax(var(--mobile-upload-label),auto) minmax(var(--mobile-upload-target),auto) auto}}

/* Authored upload captions and selected names remain readable in full. */
.upload-zone--authored strong{-webkit-line-clamp:unset}
.upload-files{list-style:none;padding:0;margin:0;min-width:0;display:grid;gap:var(--form-gap);font-size:var(--form-text)}
.upload-files:empty{display:none}
.upload-files li{display:flex;align-items:center;gap:var(--form-gap);min-width:0;padding-inline-start:var(--form-padding);border:var(--form-border) solid var(--line);border-radius:var(--radius-sm);background:var(--cream)}
.upload-files li>span{flex:1;min-width:0;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.upload-files button{flex-shrink:0;min-height:var(--form-control);padding:var(--form-padding);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--forest);font:inherit;text-decoration:underline;cursor:pointer}
.upload-files button:hover{background:var(--paper)}
.upload-files button:focus-visible{outline:var(--form-focus-width) solid var(--forest);outline-offset:var(--form-focus-offset)}
@media(max-width:768px){.form-grid>.field:has(.upload-files){grid-column:1/-1}}
