/* Text roles are defined in typography.css. */
/* Retain the shared section, panel and field spacing. */
#contact .contact-grid{display:grid;grid-template-columns:minmax(0,.6fr) minmax(560px,1fr);align-items:start;gap:clamp(48px,5vw,84px)}
#contact .contact-intro{align-self:stretch;display:flex;flex-direction:column}
#contact .contact-description{max-width:100%;color:#eef4ff;font-family:var(--type-family);font-size:var(--type-lead);font-weight:var(--type-regular);line-height:var(--type-leading-body);letter-spacing:var(--type-tracking-body);margin-top:var(--space-heading-section);text-wrap:pretty}
#contact .contact-description+.contact-description{margin-top:var(--space-paragraph)}
#contact .contact-photo{width:100%;margin:clamp(30px,3vw,42px) 0 0;position:relative}
#contact .contact-photo:before{content:"";background:var(--blue);width:42%;aspect-ratio:1;position:absolute;top:-14px;right:-14px}
#contact .contact-photo-media{position:relative;z-index:1;overflow:hidden}
#contact .contact-photo img{aspect-ratio:9/10;width:100%;height:auto;object-fit:cover;object-position:50% 71%;display:block}
#contact .contact-photo-caption{--contact-photo-fade-size:clamp(44px,6vw,72px);position:absolute;inset:auto 0 0;z-index:2;isolation:isolate;display:block;padding:12px clamp(12px,1.25vw,18px);color:#fff;font-size:.95rem}
#contact .contact-photo-caption:before{content:"";position:absolute;inset:calc(-1 * var(--contact-photo-fade-size)) 0 0;z-index:-1;pointer-events:none;background:linear-gradient(to bottom,rgb(7 28 49/0%) 0,rgb(7 28 49/4.4%) calc(var(--contact-photo-fade-size)*.15),rgb(7 28 49/15.6%) calc(var(--contact-photo-fade-size)*.3),rgb(7 28 49/30.6%) calc(var(--contact-photo-fade-size)*.45),rgb(7 28 49/46.7%) calc(var(--contact-photo-fade-size)*.6),rgb(7 28 49/60.8%) calc(var(--contact-photo-fade-size)*.75),rgb(7 28 49/70%) calc(var(--contact-photo-fade-size)*.9),rgb(7 28 49/72%) var(--contact-photo-fade-size),rgb(7 28 49/82%) 100%)}
#contact .contact-photo-caption strong{font-weight:650}
#contact .contact-photo-caption span{color:#e6eef7;text-align:left}
#contact .contact-form-panel{order:0;width:100%;max-width:none;margin-top:0}
.contact-description a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.contact-required-note{margin:0 0 -8px;color:var(--muted)}
.contact-form-panel .province-fieldset{min-width:0}
:is(#contact-home-form,#contact-services-form) .form-row{align-content:start}
:is(#contact-home-form,#contact-services-form){--control-border-width:1px;--control-border-color:#6b87a0}
:is(#contact-home-form,#contact-services-form) input[type="text"],:is(#contact-home-form,#contact-services-form) input[type="email"],:is(#contact-home-form,#contact-services-form) textarea{-webkit-appearance:none;appearance:none;border:var(--control-border-width) solid transparent;outline:var(--control-border-width) solid var(--control-border-color);outline-offset:calc(-1 * var(--control-border-width));border-radius:0;background:var(--white);padding:13px 14px}
:is(#contact-home-form,#contact-services-form) .checkbox-option>input+span{border:var(--control-border-width) solid transparent;outline:var(--control-border-width) solid var(--control-border-color);outline-offset:calc(-1 * var(--control-border-width));border-radius:0;box-shadow:none}
:is(#contact-home-form,#contact-services-form) .checkbox-option>input:checked+span{outline-color:var(--blue-dark)}
:is(#contact-home-form,#contact-services-form) input[type="text"]:focus-visible,:is(#contact-home-form,#contact-services-form) input[type="email"]:focus-visible,:is(#contact-home-form,#contact-services-form) textarea:focus-visible,:is(#contact-home-form,#contact-services-form) .checkbox-option>input:focus-visible+span{border-color:var(--control-border-color);outline:3px solid var(--navy-deep);outline-offset:3px}
:is(#contact-home-form,#contact-services-form) .checkbox-option>input:checked:focus-visible+span{border-color:var(--blue-dark)}
:is(#contact-home-form,#contact-services-form) input[type="text"]:not(:focus-visible),:is(#contact-home-form,#contact-services-form) input[type="email"]:not(:focus-visible),:is(#contact-home-form,#contact-services-form) textarea:not(:focus-visible){box-shadow:none}
.contact-form-panel .province-fieldset legend>span{color:var(--blue-dark)}
.contact-form-panel .province-options{border:0;display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;width:100%;min-height:54px;margin-top:10px}
.contact-form-panel .province-option{border:0;cursor:pointer;grid-template-columns:20px auto;align-items:center;gap:8px;min-height:54px;padding:0;background:none;transition:none;display:grid}
#main-content .contact-form-panel .province-option{font-size:var(--type-body);font-weight:var(--type-regular)}
.contact-form-panel .province-option input{opacity:0;width:1px;height:1px;min-height:0;margin:0;padding:0;position:absolute}
.contact-form-panel .province-control{background:var(--white);border:var(--control-border-width) solid var(--control-border-color);border-radius:50%;place-items:center;width:20px;height:20px;display:grid}
.contact-form-panel .province-control:after{content:"";background:var(--blue-dark);border-radius:50%;width:10px;height:10px;transform:scale(0)}
.contact-form-panel .province-option input:checked+.province-control{border-color:var(--blue-dark)}
.contact-form-panel .province-option input:checked+.province-control:after{transform:scale(1)}
.contact-form-panel .province-option input:focus-visible+.province-control{outline:3px solid var(--navy-deep);outline-offset:3px}
.contact-form-panel .checkbox-fieldset legend>span{color:var(--blue-dark)}
.contact-form-panel .checkbox-grid{border:0;background:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,auto);grid-auto-flow:column;gap:6px 24px}
.contact-form-panel .checkbox-grid>:nth-child(1){grid-column:1;grid-row:1}
.contact-form-panel .checkbox-grid>:nth-child(2){grid-column:1;grid-row:2}
.contact-form-panel .checkbox-grid>:nth-child(3){grid-column:1;grid-row:3}
.contact-form-panel .checkbox-grid>:nth-child(4){grid-column:2;grid-row:1}
.contact-form-panel .checkbox-grid>:nth-child(5){grid-column:2;grid-row:2}
.contact-form-panel .checkbox-grid>:nth-child(6){grid-column:2;grid-row:3}
.contact-form-panel .checkbox-grid>:nth-child(7){grid-column:1/-1;grid-row:4}
.contact-form-panel .checkbox-option{border:0;background:none;min-height:44px;padding:4px 0;transition:none}
.contact-form-panel .checkbox-option>.checkbox-copy{background:none;border:0;width:auto;height:auto;display:grid;place-items:initial;align-items:start;gap:2px}
.contact-form-panel .checkbox-option>.checkbox-copy:after{content:none}
#main-content .contact-form-panel .province-label,#main-content .contact-form-panel .checkbox-option>.checkbox-copy strong{color:var(--ink);font-family:var(--type-family);font-size:var(--type-body);font-weight:var(--type-regular);line-height:var(--type-leading-body);letter-spacing:var(--type-tracking-body)}
.contact-form-panel .form-privacy-note{display:block}
.contact-form-panel .form-privacy-note p{margin:0}
.contact-form-panel .form-privacy-note p:last-child{white-space:nowrap}
.contact-form-panel .form-noscript{color:var(--muted);}
.contact-form-panel .form-noscript a{text-decoration:underline;text-underline-offset:3px}
.contact-form-panel.is-confirmed{display:grid;align-items:center;min-height:260px}
.contact-form-panel.is-confirming{overflow:hidden}
.contact-form-panel .form-thanks{height:auto;min-height:0;width:100%}
.contact-form-panel .form-thanks p{max-width:56ch}
.contact-form-panel .form-thanks:focus{outline:none}
.contact-form-panel .form-thanks:focus-visible{outline:2px solid var(--blue);outline-offset:10px}
@media(width>1000px){:is(#contact-home-title,#contact-services-title){transform:translateY(-.16em)}#contact .contact-grid{row-gap:0;grid-template-rows:auto minmax(0,1fr)}#contact .contact-intro{grid-column:1;grid-row:1}#contact .contact-form-panel{grid-column:2;grid-row:1/span 2;align-self:stretch}#contact .contact-photo{grid-column:1;grid-row:2;align-self:stretch}#contact .contact-grid:has(:is(#contact-home-form,#contact-services-form)) .contact-photo{min-height:0}#contact .contact-grid:has(:is(#contact-home-form,#contact-services-form)) .contact-photo-media{position:absolute;inset:0}#contact .contact-grid:has(:is(#contact-home-form,#contact-services-form)) .contact-photo img{height:100%;aspect-ratio:auto}}
@media(width<=1000px){#contact .contact-grid{grid-template-columns:1fr;gap:clamp(32px,5vw,48px)}#contact .contact-intro{max-width:680px}#contact .contact-photo{max-width:680px;margin-top:0}#contact .contact-description{max-width:58ch}#contact .contact-photo img{aspect-ratio:4/3;object-position:50% 72%}}
@media(width<=620px){#contact .contact-photo:before{top:-10px;right:-8px}#contact .contact-photo-caption{font-size:.84rem}.contact-form-panel.is-confirmed{min-height:0}.contact-form-panel .checkbox-grid{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}.contact-form-panel .checkbox-grid>.checkbox-option{grid-column:1;grid-row:auto}:is(#contact-home-form,#contact-services-form) textarea{min-height:calc(4.8em + 28px)}:is(#contact-home-form,#contact-services-form) .form-submit button[type="submit"]{width:100%;min-width:0;justify-self:stretch}}
.contact-form-panel .form-submit button:disabled{cursor:wait}
noscript .form-noscript{grid-column:1/-1}

/* Keep label emphasis for keyboard focus; pointer hover stays static. */
:is(#contact-home-form,#contact-services-form) .province-label,
:is(#contact-home-form,#contact-services-form) .checkbox-copy strong {
  position:relative;
  width:fit-content;
  max-width:100%;
}
:is(#contact-home-form,#contact-services-form) .province-label::after,
:is(#contact-home-form,#contact-services-form) .checkbox-copy strong::after {
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-1px;
  height:2px;
  background:var(--blue);
  pointer-events:none;
  transition:none;
}
:is(#contact-home-form,#contact-services-form) .province-option input:focus-visible~.province-label::after,
:is(#contact-home-form,#contact-services-form) .checkbox-option input:focus-visible~.checkbox-copy strong::after {right:0}

/* Keep each form hint together and size compact fields for their content. */
:is(#contact-home-form,#contact-services-form) .checkbox-fieldset legend small{white-space:nowrap}
:is(#contact-home-form,#contact-services-form) .form-error p{margin:0;font-family:var(--type-family);font-size:var(--type-caption);font-weight:var(--type-regular);line-height:var(--type-leading-body);letter-spacing:var(--type-tracking-body)}
@media(width<=380px){:is(#contact-home-form,#contact-services-form) textarea{min-height:calc(6.4em + 28px)}}
