*, *::before, *::after { box-sizing: border-box; }
html { font-size: 62.5%; scroll-behavior: smooth; }
body { margin: 0; font-size: 1.5rem; line-height: 1.5; }
button, input, textarea { font: inherit; }
img { max-width: 100%; }
a { color: inherit; }
[hidden] { display: none !important; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.utility-bar { min-height: 3.8rem; display: grid; place-items: center; padding: .6rem 2rem; background: #2c2928; color: #fffaf5; }
.labs-site .utility-bar { background: #12233b; }
.announcement-bar__message { margin: 0; text-align: center; font-size: 1.25rem; letter-spacing: .08em; }
.header-wrapper { position: sticky; z-index: 30; top: 0; background: rgba(255,255,255,.96); }
.header { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: clamp(2rem,4vw,6rem); min-height: 9rem; margin-inline: auto; }
.rose-site .header { width: var(--rose-page); }
.labs-site .header { width: var(--labs-container); }
.header__heading-link { display: inline-flex; align-items: center; min-width: 0; text-decoration: none; }
.brand-logo { display: block; width: 18rem; max-height: 7rem; height: auto; object-fit: contain; }
.header__inline-menu { justify-self: end; min-width: 0; }
.list-menu--inline { display: flex; flex-wrap: wrap; gap: clamp(1.2rem,2vw,3rem); align-items: center; justify-content: flex-end; margin: 0; padding: 0; list-style: none; }
.header__menu-item { display: inline-block; padding: 1.1rem 0; font-size: 1.4rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.header__menu-item:hover { text-decoration: underline; text-underline-offset: .4rem; }
.menu-toggle { display: none; width: 4.4rem; height: 4.4rem; border: 0; background: transparent; cursor: pointer; }
.menu-toggle span { display: block; width: 2.2rem; height: .2rem; margin: .5rem auto; background: currentColor; }
.mobile-menu { padding: 0 1.6rem 1.6rem; border-top: 1px solid rgba(0,0,0,.08); }
.mobile-menu a { display: block; padding: 1.3rem 0; border-bottom: 1px solid rgba(0,0,0,.08); font-weight: 600; text-decoration: none; }
.footer { color: #fffaf5; background: #2c2928; }
.labs-site .footer { color: #fff; background: #12233b; }
.footer__content-top, .footer__content-bottom-wrapper { margin-inline: auto; }
.rose-site .footer__content-top, .rose-site .footer__content-bottom-wrapper { width: var(--rose-page); }
.labs-site .footer__content-top, .labs-site .footer__content-bottom-wrapper { width: var(--labs-container); }
.footer__content-top { padding-block: 6.4rem 4rem; }
.footer__blocks-wrapper { display: grid; grid-template-columns: 1.35fr .7fr .7fr 1.2fr; gap: 3rem; }
.footer-block__heading { margin: 0 0 2rem; font-size: 1.3rem; text-transform: uppercase; letter-spacing: .12em; }
.footer-block__details-content a { display: block; width: fit-content; margin: .6rem 0; color: #d6e1f0; text-decoration: none; }
.footer-block__details-content a:hover { color: #fff; text-decoration: underline; }
.footer-block__details-content p { margin-top: 0; }
.footer-logo { display: block; max-width: 18rem; height: auto; }
.footer__content-bottom { border-top: 1px solid rgba(255,255,255,.14); }
.footer__content-bottom-wrapper { padding-block: 2rem 3rem; }
.footer__copyright { display: flex; justify-content: space-between; gap: 2rem; color: rgba(255,255,255,.65); font-size: 1.2rem; }
.standalone-form { display: grid; gap: 1.5rem; }
.standalone-form label { display: grid; gap: .7rem; font-weight: 600; }
.standalone-form input, .standalone-form textarea { width: 100%; padding: 1.3rem 1.5rem; border: 1px solid #b9c8da; border-radius: .8rem; background: #fff; color: #222; }
.standalone-form button { width: fit-content; cursor: pointer; }
.form-status { margin: 1rem 0 0; font-size: 1.35rem; }
.form-unavailable { margin: 0 0 1rem; padding: 1.2rem 1.4rem; border-radius: .8rem; background: rgba(138,79,87,.09); color: #6f3943; font-size: 1.35rem; line-height: 1.5; }
.labs-site .form-unavailable { background: #e6f0ff; color: #12233b; }
@media (max-width: 989px) {
  .header { grid-template-columns: 1fr auto; min-height: 7.6rem; }
  .header__inline-menu { display: none; }
  .menu-toggle { display: block; }
  .footer__blocks-wrapper { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 749px) {
  .header { min-height: 7rem; }
  .brand-logo { width: 15rem; }
  .footer__blocks-wrapper { grid-template-columns: 1fr; gap: 2rem; }
  .footer__copyright { display: block; }
  .footer__copyright span { display: block; margin: .5rem 0; }
}
