/* This stylesheet only sizes the centre document, never the outer banner frame. */
:root{--site-header-height:90px;--opening-height:calc(100svh - var(--site-header-height));--opening-density:1}
.site-header{flex-shrink:0}
.viewport-opening{height:var(--opening-height);min-height:0;box-sizing:border-box}
.hero.viewport-opening{grid-template-columns:minmax(0,47fr) minmax(0,53fr)}
.hero.viewport-opening .hero-art{min-height:0;min-width:0;height:100%;aspect-ratio:auto;display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:visible}
.hero.viewport-opening .hero-art img{position:static;inset:auto;min-height:0;min-width:0;width:100%;height:100%;object-fit:contain;object-position:center}
.hero.viewport-opening .hero-art figcaption{position:static;inset:auto;padding:7px 10px;gap:8px;flex-wrap:wrap}
.hero.viewport-opening .hero-copy{min-height:0;padding:calc(22px * var(--opening-density)) clamp(12px,3vw,40px);justify-content:center}
.hero-copy>*{flex-shrink:0}
.hero.viewport-opening h1{font-size:clamp(23px,min(calc(10vw * var(--opening-density)),calc(var(--opening-height) * .13 * var(--opening-density))),82px);letter-spacing:-1.6px;margin:calc(18px * var(--opening-density)) 0 calc(14px * var(--opening-density));line-height:1}
.hero.viewport-opening .hero-description{font-size:clamp(11px,calc(14px * var(--opening-density)),14px);line-height:1.55;max-width:400px}
.hero.viewport-opening .eyebrow{font-size:clamp(7px,calc(9px * var(--opening-density)),9px);letter-spacing:.8px}
.hero.viewport-opening .hero-actions{gap:9px;margin:calc(17px * var(--opening-density)) 0}
.hero.viewport-opening .hero-actions .button{min-height:34px;padding:9px 11px;font-size:8px;gap:10px}
.hero.viewport-opening .text-button{font-size:9px;padding:5px 0;gap:7px}
.hero.viewport-opening .hero-signature{margin-top:auto;padding-top:calc(12px * var(--opening-density));gap:10px}
.hero.viewport-opening .signature-number{font-size:27px}.hero.viewport-opening .signature-code{font-size:18px}
.about-hero.viewport-opening,.references-intro.viewport-opening,.stay-hero.viewport-opening,.solutions-hero.viewport-opening{padding-block:calc(30px * var(--opening-density))}
.references-intro.viewport-opening,.stay-hero.viewport-opening,.solutions-hero.viewport-opening{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.viewport-opening>*{flex-shrink:0}
.about-hero.viewport-opening h1,.references-intro.viewport-opening h1,.stay-hero.viewport-opening h1,.solutions-hero.viewport-opening h1{font-size:clamp(25px,min(calc(6vw * var(--opening-density)),calc(var(--opening-height) * .13 * var(--opening-density))),68px);margin:calc(21px * var(--opening-density)) 0;line-height:1.08;letter-spacing:-1px;overflow-wrap:anywhere}
.about-hero.viewport-opening .about-lead,.references-intro.viewport-opening>p:not(.eyebrow),.stay-hero.viewport-opening>p:not(.eyebrow),.solutions-hero.viewport-opening>p:not(.eyebrow){font-size:clamp(12px,calc(15px * var(--opening-density)),15px);line-height:1.6}
.viewport-opening .about-cta,.viewport-opening>.button{margin-top:calc(22px * var(--opening-density));min-height:36px;padding:calc(14px * var(--opening-density));max-width:100%}
.about-hero.viewport-opening .about-mark{min-width:0}
.contact-page .about-contact.viewport-opening{padding-block:calc(26px * var(--opening-density));align-content:center}
.contact-page .viewport-opening h1{font-size:clamp(27px,calc(46px * var(--opening-density)),46px);margin:calc(16px * var(--opening-density)) 0}
.contact-page .viewport-opening .contact-form{gap:calc(13px * var(--opening-density))}
.contact-page .viewport-opening .contact-field label{margin-bottom:5px}
.contact-page .viewport-opening .contact-field input,.contact-page .viewport-opening .contact-field select{min-height:36px;padding:8px 10px}
.contact-page .viewport-opening .contact-field textarea{min-height:70px;height:calc(100px * var(--opening-density));padding:9px}
.contact-page .viewport-opening .contact-submit{padding:11px 14px}
.contact-page .viewport-opening .contact-copy>p:not(.eyebrow){font-size:12px;line-height:1.5}
.contact-page .viewport-opening .contact-pending{margin-top:12px;padding-top:10px}
/* Preserve access to all text with unusually small windows or enlarged text. */
.viewport-opening[data-opening-overflow=true]{height:auto;min-height:var(--opening-height)}
.hero.viewport-opening[data-opening-overflow=true] .hero-art{height:var(--opening-height)}
@media(max-width:700px){.contact-page .about-contact.viewport-opening{gap:calc(18px * var(--opening-density));align-content:center}.about-hero.viewport-opening{gap:18px}.viewport-opening .button{font-size:8px;gap:12px}}
@media(max-width:600px){.hero.viewport-opening{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.hero.viewport-opening .hero-copy{padding-inline:12px}.hero.viewport-opening .hero-art{border-left:1px solid #50504b;border-top:0}.hero.viewport-opening .hero-art figcaption{padding:5px;font-size:6px;letter-spacing:0}.hero.viewport-opening .hero-art figcaption>span:last-child{font-size:10px}.hero.viewport-opening .hero-signature{gap:7px}.hero.viewport-opening .hero-signature>span:nth-child(2){font-size:7px}.hero.viewport-opening .signature-number{font-size:22px}.hero.viewport-opening .signature-code{font-size:14px}}
