/* Shared public-page interaction details; hero and footer retain their design. */
/* Search prompts and unselected dropdowns share one public-page text style. */
.public-page{--public-placeholder-size:.78rem;--public-placeholder-color:#757575}
[data-bs-theme="dark"] .public-page{--public-placeholder-color:#a9a9a9}
.public-page main :is(input[type="search"],.wg-search input)::placeholder,
.public-page main select:not([multiple]):has(option:is([value=""],[data-placeholder]):checked){
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:var(--public-placeholder-size);font-weight:400;font-style:normal;
  line-height:normal;letter-spacing:normal;
  color:var(--public-placeholder-color);opacity:1;
}
/* Choices retain normal contrast, including when the closed control is a prompt. */
.public-page main select :is(option,optgroup){color:var(--public-text);background:var(--public-surface)}
@media(max-width:575.98px){.public-page{--public-placeholder-size:1rem}}
/* Restore refresh/history positions immediately instead of animating page load. */
html.public-document{scroll-behavior:auto}
.public-page main :is(.wg-search,.vf-search) button{min-width:80px;min-height:44px;flex-shrink:0}
/* Certificate lookup follows the Winners search control geometry. */
.public-page main .vf-field label{margin-bottom:.28rem;font-size:.75rem;line-height:1.5}
.public-page main .vf-search input{
  flex:1 1 0;width:auto;min-width:0;min-height:44px;padding:.43rem .65rem;
  border:1px solid var(--public-border);border-radius:.48rem 0 0 .48rem;
  font:inherit;font-size:.78rem;
}
.public-page main.vf-main .vf-search button{
  flex:0 0 auto;width:auto;min-height:44px;padding:.45rem .75rem;
  border-radius:0 .48rem .48rem 0;font-size:.75rem;font-weight:700;line-height:1.5;white-space:nowrap;
}
@media(max-width:575.98px){.public-page main .vf-search input{font-size:1rem}}
.public-page main .vf-search input::placeholder{
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:.78rem;font-weight:400;letter-spacing:normal;
  color:var(--public-placeholder-color);opacity:1;
}
.public-page main .vf-search input{text-overflow:ellipsis}
@media(max-width:575.98px){.public-page main .vf-search input::placeholder{font-size:.72rem}}
/* Consistent reading rhythm and control geometry across public pages. */
.public-page{
  --public-content-space:clamp(2.25rem,4vw,3rem);
  --public-control-radius:.375rem;
}
.public-page :is(main,.public-ribbon)>.container{max-width:1200px}
.public-page :is(.mg-main,.mg-hero)>.container{width:100%;max-width:1320px;padding-inline:32px}
.public-page .mg-main .mg-shell{max-width:none}
@media(max-width:991.98px){.public-page :is(.mg-main,.mg-hero)>.container{padding-inline:24px}}
@media(max-width:575.98px){.public-page :is(.mg-main,.mg-hero)>.container{padding-inline:16px}}
.public-page main:is(.mg-main,.wg-main,.leadership-main,.sp-main,.faq-main,.contact-main,.pi-main,.vf-main){
  padding-block:var(--public-content-space) clamp(3rem,5vw,4.5rem)!important;
}
.public-page .public-ribbon{display:flex;align-items:center;height:auto;min-height:12rem;padding-block:2.5rem}
.public-page .public-ribbon::before{background-size:48px calc(100% / 4)}
.public-page .public-ribbon__intro,.public-page .public-ribbon__meta,.public-page .public-ribbon__back{min-height:0}
.public-page .public-ribbon__meta{margin-top:.75rem}
.public-page .public-ribbon h1:last-child{margin-bottom:0}
.public-page .public-ribbon h1{line-height:1.3;letter-spacing:-.025em;text-wrap:balance}
.public-page .public-ribbon__intro p{
  display:block;max-width:60ch;overflow:visible;-webkit-line-clamp:unset;text-wrap:pretty;
}
.public-page main :is(h2,h3){text-wrap:balance;overflow-wrap:anywhere}
.public-page main :is(.pi-copy,.contact-panel-lead,.faq-answer){line-height:1.75;overflow-wrap:anywhere}
.public-page main :is(.btn-ptsea,.btn-ptsea-outline,.contact-submit,.faq-support a,.sp-cta a,.vf-search button){
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:44px;padding:.7rem 1.1rem;border-radius:var(--public-control-radius);
  font:600 .875rem/1.4 Inter,system-ui,sans-serif;text-align:center;
}
.public-page :is(.wg-toolbar-title,.mg-archive-title) h2{font-size:1.25rem;line-height:1.4}
.public-page :is(.wg-toolbar-title,.mg-archive-title) small{font-size:.6875rem;line-height:1.5}
.public-page :is(.wg-field,.mg-year-field) label{font-size:.75rem;line-height:1.5}
.public-page :is(.wg-summary,.mg-result-note){font-size:.8125rem;line-height:1.6}
.public-page main .mg-card.is-photo .mg-card__title{
  font-size:.9375rem;font-weight:400;line-height:1.5;color:var(--public-text);text-wrap:pretty;
}
.public-page main .mg-card.is-photo .mg-card__meta{
  font-size:.75rem;font-weight:400;line-height:1.5;text-transform:none;letter-spacing:normal;
}
@media(max-width:575.98px){
  .public-page .public-ribbon{padding-block:1.5rem;min-height:12rem}
  .public-page .public-ribbon::before{background-size:48px calc(100% / 4)}
  .public-page main :is(input,select,textarea){font-size:1rem}
  .public-page .wg-filters{min-width:0}
  .public-page .wg-field{min-width:0}
}
@media(min-width:1200px){.public-page .mg-archive-bar{align-items:center}}
@media(min-width:992px){.public-page .wg-toolbar{align-items:center}}
.public-page :is(.wg-toolbar-title,.mg-archive-title) small{color:var(--public-green)}
.public-page :is(.wg-toolbar-title,.mg-archive-title) h2{color:var(--public-text)}
.public-page main :is(.public-card,.pi-card,.mg-card,.wg-card,.sp-card,
  .faq-list,.faq-search-card,.faq-support,.contact-panel,.wg-toolbar,.mg-archive-bar){
  border:1px solid var(--public-border);border-radius:.75rem;
  background:var(--public-bg);box-shadow:none;
}
.public-page main :is(.public-card,.pi-card,.mg-card,.wg-card,.sp-card,
  .faq-list,.faq-search-card,.faq-support,.contact-panel,.wg-toolbar,.mg-archive-bar):hover{
  background:var(--public-bg);box-shadow:none;
}
/* Photo frames share the card outline; the image and caption remain inside it. */
.public-page main .mg-card.is-photo{border-radius:6px;overflow:hidden;align-self:start;transition:border-color .2s ease,box-shadow .2s ease}
.public-page main .mg-card.is-photo .mg-photo-open img{transition:transform .25s ease!important}
.public-page main .mg-card.is-photo:focus-within{
  border-color:var(--public-green);box-shadow:0 6px 20px rgba(10,46,26,.14);
}
.public-page main .mg-card.is-photo:focus-within .mg-photo-open img{transform:scale(1.025)}
@media(hover:hover) and (pointer:fine){
  .public-page main .mg-card.is-photo:hover{border-color:var(--public-green);box-shadow:0 6px 20px rgba(10,46,26,.14)}
  .public-page main .mg-card.is-photo:hover .mg-photo-open img{transform:scale(1.025)}
}
@media(prefers-reduced-motion:reduce){
  .public-page main .mg-card.is-photo{transition:none}
  .public-page main .mg-card.is-photo .mg-photo-open img{transition:none!important;transform:none!important}
}
.public-page main .mg-card.is-photo .mg-card__figure{
  padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;
}
.public-page main .mg-card.is-photo .mg-photo-open{border:0}
.public-page main .mg-card.is-photo .mg-card__caption{padding:.6rem .85rem}
.public-page main :is(section,div,article).public-card:hover{
  transform:none;border-color:var(--public-border);
  box-shadow:none;
}
.public-page main article.wg-card:hover{box-shadow:none}
.public-page :is(.wg-field input,.wg-field select,.wg-search button,.wg-clear,
  .mg-year-field select,.mg-type-filter a,.contact-field input,.contact-field select,
  .contact-submit,.faq-support a,.sp-cta a){min-height:44px}
.public-page .faq-clear{width:2.75rem;height:2.75rem}
.public-page .faq-search{padding-right:3.5rem}
.public-page .faq-question:hover{background:rgba(36,132,84,.07)}
[data-bs-theme="dark"] .public-page .faq-question:hover{background:rgba(143,214,170,.10)}
.public-page main :is(button,a,input,select,textarea,summary):focus-visible{
  outline:2px solid var(--public-green);outline-offset:3px;
}
.public-page .public-skip-link{
  position:fixed;top:.75rem;left:.75rem;z-index:2000;padding:.75rem 1rem;
  border-radius:.5rem;background:var(--public-surface);color:var(--public-text);
}
.public-page main[id]{scroll-margin-top:6rem}
.contact-error-summary{padding:1rem;border:1px solid #b42318;border-radius:.5rem;margin-bottom:1.25rem}
.contact-error-summary p{margin:0 0 .5rem;font-weight:600}
.contact-error-summary ul{margin:0;padding-left:1.25rem}
.contact-error-summary a{color:inherit;text-decoration:underline}
[data-bs-theme="dark"] .public-page :is(.contact-method a,.contact-privacy a,
  .sp-external,.sp-tier-kicker,.wg-toolbar-title small,.mg-archive-title small,.mg-type-filter a.is-active,
  .mg-type-filter a:hover,.faq-group-icon,.faq-clear,.mg-empty a,.wg-empty a,
  .mg-live-banner a){color:#8fd6aa!important}
[data-bs-theme="dark"] .public-page main :is(button,a,input,select,textarea,summary):focus-visible{
  outline-color:#8fd6aa;
}
[data-bs-theme="dark"] .public-page :is(.contact-error,.contact-required,.contact-required-note span){color:#ffb4ab}
[data-bs-theme="dark"] .public-page .contact-error-summary{border-color:#ffb4ab}
