
.rr-contact {
 --contact-navy:#171245;
 --contact-purple:#6a59fd;
 --contact-grey:#e8e8e8;
 --contact-white:#f9f9f9;
 --contact-cyan:#28ffff;
 --contact-error:#8a1f11;
 --contact-gutter:72px;
 --contact-heading-font:'Archivo',sans-serif;
 --contact-body-font:'Noto Sans',sans-serif;
 color:var(--contact-navy); background:var(--contact-white);
 font:400 16px/1.15 var(--contact-body-font); letter-spacing:0;
}
body:has(.rr-contact) main.home { padding-top:0!important; }
.rr-contact *, .rr-contact *::before, .rr-contact *::after { box-sizing:border-box; }
.rr-contact h1, .rr-contact h2, .rr-contact h3, .rr-contact h4 { color:inherit; font-family:var(--contact-heading-font)!important; }
.rr-contact__sr-only { position:absolute!important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.rr-contact__container { max-width:1296px; margin:0 auto; }
.rr-contact .rr-hero .rr-btn,
.rr-contact .umbraco-forms-form .umbraco-forms-navigation input[type=submit] {
 display:inline-flex; align-items:center; justify-content:center; width:auto; height:auto; margin:0; padding:12px 16px!important;
 border:1px solid var(--contact-navy)!important; border-radius:10px!important; background:var(--contact-navy)!important; box-shadow:none;
 color:var(--contact-white)!important; font:500 16px/1.05 var(--contact-heading-font)!important; letter-spacing:-.015em; text-decoration:none; text-transform:none;
 cursor:pointer; transition:background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.rr-contact .rr-hero .rr-btn:is(:hover, :active, :focus-visible),
.rr-contact .umbraco-forms-form .umbraco-forms-navigation input[type=submit]:is(:hover, :active, :focus-visible) { border-color:var(--contact-purple)!important; background:var(--contact-purple)!important; color:var(--contact-white)!important; }
.rr-contact .rr-hero .rr-btn:focus,
.rr-contact .umbraco-forms-form .umbraco-forms-navigation input[type=submit]:focus { outline:none; }
.rr-contact .rr-hero .rr-btn:focus-visible,
.rr-contact .umbraco-forms-form .umbraco-forms-navigation input[type=submit]:focus-visible { border-color:var(--contact-cyan)!important; }
.rr-contact .umbraco-forms-form .umbraco-forms-navigation input[type=submit]:disabled { opacity:.5; cursor:default; }
.rr-contact .rr-hero { position:relative; overflow:hidden; padding:0 var(--contact-gutter); background:var(--contact-white); color:var(--contact-navy); }
.rr-contact .rr-hero__background { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; object-position:right top; pointer-events:none; }
.rr-contact .rr-hero__inner { position:relative; max-width:1296px; min-height:608px; margin:0 auto; padding:80px 0 86px; display:flex; align-items:center; gap:64px; }
.rr-contact .rr-hero__content { position:relative; z-index:1; flex:0 1 685px; max-width:685px; padding:0; }
.rr-contact .rr-hero__title { margin:0; color:inherit; font:700 80px/1.05 var(--contact-heading-font); letter-spacing:-.03em; }
.rr-contact .rr-hero__text { margin:24px 0 0; color:inherit; font:400 20px/1.15 var(--contact-body-font); letter-spacing:-.015em; white-space:pre-line; }
.rr-contact .rr-hero .rr-btn { margin-top:32px; }
.rr-contact .rr-hero__square-image { position:relative; flex:0 0 347px; width:347px; height:331px; max-width:none; object-fit:cover; border-radius:20px; background:#d9d9d9; }
.rr-contact .rr-hero__image { position:relative; flex:0 0 347px; width:347px; height:331px; max-width:none; object-fit:contain; object-position:bottom center; }

/* Form card and media contact: form on 8 columns, contentTop on the last 4. */
.rr-contact__main { padding:0 var(--contact-gutter) 80px; background:var(--contact-white); scroll-margin-top:80px; }
.rr-contact__layout { display:grid; grid-template-columns:repeat(12, minmax(0, 1fr)); column-gap:24px; align-items:start; }
.rr-contact__form-card { grid-column:1 / span 8; position:relative; padding:48px; border-radius:20px; background:var(--contact-grey); }
.rr-contact__aside { grid-column:9 / span 4; }
.rr-contact__rte > * { margin:0 0 12px; color:inherit; font:400 16px/1.15 var(--contact-body-font); }
.rr-contact__rte > :first-child { margin-bottom:24px; }
.rr-contact__rte > :last-child { margin-bottom:0; }
.rr-contact__rte strong, .rr-contact__rte b { display:inline-block; font:500 20px/1.05 var(--contact-heading-font); }
.rr-contact__rte a { color:inherit; text-decoration:none; }
.rr-contact__rte a:hover, .rr-contact__rte a:focus-visible { color:var(--contact-purple)!important; text-decoration:underline; }
.rr-contact__rte a[href^="tel:"] { color:rgba(23,18,69,.7); }
.rr-contact__rte img { max-width:100%; height:auto; }
.rr-contact__thank-you { position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:center; gap:24px; padding:48px; border-radius:20px; background:var(--contact-grey); }
.rr-contact__thank-you.d-none { display:none!important; }
.rr-contact .rr-contact__thank-you-title { margin:0; font:600 40px/1.05 var(--contact-heading-font); }
.rr-contact__thank-you-close { position:absolute; top:24px; right:24px; width:36px; height:36px; border-radius:50%; background:var(--contact-white); transition:background-color .2s ease, box-shadow .2s ease; }
.rr-contact__thank-you-close::before, .rr-contact__thank-you-close::after { content:''; position:absolute; top:50%; left:50%; width:14px; height:1.5px; background:var(--contact-navy); transform:translate(-50%,-50%) rotate(45deg); }
.rr-contact__thank-you-close::after { transform:translate(-50%,-50%) rotate(-45deg); }
.rr-contact__thank-you-close:is(:hover, :focus-visible) { background:var(--contact-navy); }
.rr-contact__thank-you-close:is(:hover, :focus-visible)::before, .rr-contact__thank-you-close:is(:hover, :focus-visible)::after { background:var(--contact-white); }
.rr-contact__thank-you-close:focus { outline:none; }
.rr-contact__thank-you-close:focus-visible { box-shadow:inset 0 0 0 1px var(--contact-cyan); }
.rr-contact .umbraco-forms-form { margin:0; padding:0; color:var(--contact-navy); font:400 16px/1.15 var(--contact-body-font); }
.rr-contact .umbraco-forms-form .umbraco-forms-page { margin:0; padding:0; }
.rr-contact .umbraco-forms-form .umbraco-forms-caption { margin:0 0 48px; color:var(--contact-navy); font:600 40px/1.05 var(--contact-heading-font)!important; letter-spacing:0; }
.rr-contact .umbraco-forms-form .umbraco-forms-fieldset { margin:0; padding:0; border:0; }
.rr-contact .umbraco-forms-form .umbraco-forms-fieldset:not(:has(.umbraco-forms-field:not(.hidden))) { display:none; }
.rr-contact .umbraco-forms-form .umbraco-forms-fieldset + .umbraco-forms-fieldset { margin-top:32px; }
.rr-contact .umbraco-forms-form .umbraco-forms-fieldset legend { margin:0 0 24px; font:500 20px/1.05 var(--contact-heading-font); }
.rr-contact .umbraco-forms-form .row-fluid { display:flex; flex-wrap:wrap; column-gap:24px; row-gap:32px; margin:0; }
.rr-contact .umbraco-forms-form .umbraco-forms-container { flex:1 1 100%; width:auto; max-width:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); column-gap:24px; row-gap:32px; }
.rr-contact .umbraco-forms-form .umbraco-forms-container.col-md-6 { flex-basis:calc(50% - 12px); grid-template-columns:minmax(0, 1fr); }
.rr-contact .umbraco-forms-form .umbraco-forms-container:not(:has(> .umbraco-forms-field:not(.hidden))) { display:none; }
.rr-contact .umbraco-forms-form .umbraco-forms-field { grid-column:1 / -1; margin:0; padding:0; }
.rr-contact .umbraco-forms-form .umbraco-forms-field.hidden { display:none; }
.rr-contact .umbraco-forms-form .umbraco-forms-field:is(.company, .jobtitle) { grid-column:auto; }
.rr-contact .umbraco-forms-form .umbraco-forms-field-wrapper { margin:0; padding:0; }
.rr-contact .umbraco-forms-form .umbraco-forms-label { margin:0 0 8px; color:var(--contact-navy); font:400 16px/1.15 var(--contact-body-font); }
.rr-contact .umbraco-forms-form .umbraco-forms-field :is(input.text, input[type=text], input[type=email], input[type=tel], textarea, select) {
 display:block; width:100%; max-width:none!important; height:auto; min-height:30px; margin:0; padding:0 0 12px;
 border:0; border-bottom:1px solid var(--contact-navy); border-radius:0; background:transparent; box-shadow:none;
 color:var(--contact-navy); font:400 16px/1.15 var(--contact-body-font); letter-spacing:0; transition:border-color .2s ease, box-shadow .2s ease;
}
.rr-contact .umbraco-forms-form .umbraco-forms-field textarea { height:30px; resize:vertical; field-sizing:content; max-height:240px; }
.rr-contact .umbraco-forms-form .umbraco-forms-field select { appearance:none; padding-right:24px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%23171245' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 0 top 3px / 12px 12px no-repeat; cursor:pointer; }
.rr-contact .umbraco-forms-form .umbraco-forms-field :is(input, textarea)::placeholder { color:var(--contact-navy); opacity:1; }
.rr-contact .umbraco-forms-form .umbraco-forms-field :is(input.text, input[type=text], input[type=email], input[type=tel], textarea, select):focus { outline:none; border-bottom-color:var(--contact-purple); box-shadow:0 1px 0 var(--contact-purple); }
.rr-contact .umbraco-forms-form .umbraco-forms-field :is(input, textarea, select).input-validation-error { margin-bottom:0!important; background:transparent; border-color:transparent; border-bottom-color:var(--contact-error); }
.rr-contact .umbraco-forms-form .field-validation-error { display:block; margin-top:8px; font:400 14px/1.15 var(--contact-body-font); }
.rr-contact .umbraco-forms-form .umbraco-forms-field.requiredfields { margin-top:8px; }
.rr-contact .umbraco-forms-form .umbraco-forms-field.requiredfields, .rr-contact .umbraco-forms-form .umbraco-forms-field.requiredfields * { margin-bottom:0; font:400 14px/1.4 var(--contact-body-font)!important; }
.rr-contact .umbraco-forms-form .umbraco-forms-field.checkbox { position:relative; display:flex; flex-direction:row-reverse; justify-content:flex-end; align-items:flex-start; gap:12px; }
.rr-contact .umbraco-forms-form .umbraco-forms-field.requiredfields + .umbraco-forms-field.checkbox { margin-top:16px; }
.rr-contact .umbraco-forms-form .umbraco-forms-field.checkbox + .umbraco-forms-field.checkbox { margin-top:-8px; }
.rr-contact .umbraco-forms-form .umbraco-forms-field.checkbox > .umbraco-forms-label { display:none; }
.rr-contact .umbraco-forms-form .umbraco-forms-field.checkbox .umbraco-forms-tooltip { margin:0; padding:0; color:var(--contact-navy); font:400 16px/1.15 var(--contact-body-font); }
.rr-contact .umbraco-forms-form .umbraco-forms-field.checkbox .umbraco-forms-tooltip p { margin:0; font:inherit; }
.rr-contact .umbraco-forms-form .umbraco-forms-field.checkbox .umbraco-forms-tooltip a { color:var(--contact-navy); font-weight:400; text-decoration:underline; }
.rr-contact .umbraco-forms-form .umbraco-forms-field.checkbox .umbraco-forms-field-wrapper { flex:0 0 18px; display:flex; }
.rr-contact .umbraco-forms-form .umbraco-forms-field.checkbox .field-validation-error { position:absolute; top:100%; left:30px; margin-top:4px; }
.rr-contact .umbraco-forms-form input[type=checkbox] { appearance:none; flex:0 0 18px; width:18px; height:18px; margin:0; border:1px solid var(--contact-navy); border-radius:2px; background:transparent center / 12px 12px no-repeat; cursor:pointer; transition:background-color .2s ease; }
.rr-contact .umbraco-forms-form input[type=checkbox]:checked { background-color:var(--contact-navy); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 6.25L5 8.5L9.5 3.5' stroke='%23F9F9F9' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.rr-contact .umbraco-forms-form input[type=checkbox]:focus { outline:none; }
.rr-contact .umbraco-forms-form input[type=checkbox]:focus-visible { outline:2px solid var(--contact-purple); outline-offset:2px; }
.rr-contact .umbraco-forms-form .umbraco-forms-navigation { display:block; margin:48px 0 0; padding:0; }
.rr-contact .umbraco-forms-form .umbraco-forms-navigation > div { width:auto; padding:0; }
.rr-contact__offices { padding:80px var(--contact-gutter); background:var(--contact-grey); }
.rr-contact .rr-contact__offices-title { margin:0 0 48px; font:600 56px/1.05 var(--contact-heading-font); letter-spacing:0; }
.rr-contact__region + .rr-contact__region { margin-top:80px; }
.rr-contact .rr-contact__region-title { margin:0 0 48px; font:500 32px/1.05 var(--contact-heading-font); letter-spacing:0; }
.rr-contact__office-grid { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:48px 24px; margin:0; padding:0; list-style:none; }
.rr-contact .hcaptcha-overlay-badge { position:fixed; right:20px; bottom:20px; z-index:9999; cursor:pointer; }
.rr-contact .hcaptcha-overlay-badge img { width:60px; height:auto; }
.rr-contact .hcaptcha-overlay-popup { display:none; position:fixed; right:20px; bottom:80px; z-index:9998; width:300px; padding:10px; border:1px solid #ccc; background:#fff; box-shadow:0 2px 5px rgba(0,0,0,.3); font-size:14px; }

@media (prefers-reduced-motion:reduce) {
.rr-contact *, .rr-contact *::before, .rr-contact *::after { transition-duration:.01ms!important; }
}

/* Large: 1025-1439 (12 columns, 40px outer spacing) */
@media (min-width:1025px) and (max-width:1439px) {
 .rr-contact { --contact-gutter:40px; }
 .rr-contact .rr-hero__inner { min-height:560px; }
 .rr-contact .rr-hero__title { font-size:64px; }
 .rr-contact :is(.rr-hero__square-image, .rr-hero__image) { flex-basis:300px; width:300px; height:287px; }
 .rr-contact__form-card { padding:40px; }
 .rr-contact .rr-contact__offices-title { font-size:48px; }
 .rr-contact .rr-contact__office-name { font-size:28px; }
}
/* Below 1280 four cards get too narrow for the city names: three across. */
@media (min-width:1025px) and (max-width:1279px) {
.rr-contact__office-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); }
}

/* Medium: 576-1024 (8 columns, 20px outer spacing). The form takes the full width, the media contact goes under it. */
@media (min-width:576px) and (max-width:1024px) {
 .rr-contact { --contact-gutter:20px; }
 .rr-contact .rr-hero__inner { min-height:0; padding:80px 0 56px; gap:24px; }
 .rr-contact .rr-hero__content { flex:1 1 50%; }
 .rr-contact .rr-hero__title { font-size:56px; }
 .rr-contact :is(.rr-hero__square-image, .rr-hero__image) { flex:0 0 calc((100% - 24px) / 2 * .75); width:calc((100% - 24px) / 2 * .75); height:auto; aspect-ratio:463 / 442; }
 .rr-contact__main { padding-bottom:56px; }
 .rr-contact__layout { grid-template-columns:repeat(8, minmax(0, 1fr)); row-gap:32px; }
 .rr-contact__form-card, .rr-contact__aside { grid-column:1 / -1; }
 .rr-contact__form-card { padding:40px; }
 .rr-contact__offices { padding:56px var(--contact-gutter); }
 .rr-contact .rr-contact__offices-title { font-size:40px; }
 .rr-contact__region + .rr-contact__region { margin-top:56px; }
 .rr-contact .rr-contact__region-title { margin-bottom:24px; font-size:24px; font-weight:600; }
 .rr-contact__office-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:24px; }
}

/* Small: up to 575 (4 columns, 16px outer spacing). Figma "Contact Us - Small": image above the text, one column throughout. */
@media (max-width:575px) {
 .rr-contact { --contact-gutter:16px; }
 .rr-contact .rr-hero__inner { min-height:0; padding:95px 0 40px; flex-direction:column-reverse; align-items:stretch; gap:32px; }
 .rr-contact .rr-hero__content { flex:none; max-width:none; }
 .rr-contact .rr-hero__title { font-size:48px; }
 .rr-contact :is(.rr-hero__square-image, .rr-hero__image) { flex:none; width:75%; height:auto; aspect-ratio:1; margin-right:auto; margin-left:auto; }
 .rr-contact__main { padding-bottom:48px; }
 .rr-contact__layout { grid-template-columns:repeat(4, minmax(0, 1fr)); row-gap:32px; }
 .rr-contact__form-card, .rr-contact__aside { grid-column:1 / -1; }
 .rr-contact__form-card, .rr-contact__thank-you { padding:24px; }
 .rr-contact .umbraco-forms-form .umbraco-forms-caption, .rr-contact .rr-contact__thank-you-title { margin-bottom:32px; font-size:24px!important; }
 .rr-contact .umbraco-forms-form .row-fluid, .rr-contact .umbraco-forms-form .umbraco-forms-container { row-gap:24px; }
 .rr-contact .umbraco-forms-form .umbraco-forms-fieldset + .umbraco-forms-fieldset { margin-top:24px; }
 .rr-contact .umbraco-forms-form .umbraco-forms-container, .rr-contact .umbraco-forms-form .umbraco-forms-container.col-md-6 { flex-basis:100%; grid-template-columns:minmax(0, 1fr); }
 .rr-contact .umbraco-forms-form .umbraco-forms-field:is(.company, .jobtitle) { grid-column:1 / -1; }
 .rr-contact .umbraco-forms-form .umbraco-forms-field.requiredfields + .umbraco-forms-field.checkbox { margin-top:8px; }
 .rr-contact .umbraco-forms-form .umbraco-forms-field.checkbox + .umbraco-forms-field.checkbox { margin-top:0; }
 .rr-contact .umbraco-forms-form .umbraco-forms-navigation { margin-top:24px; }
 .rr-contact__offices { padding:48px var(--contact-gutter); }
 .rr-contact .rr-contact__offices-title { font-size:32px; }
 .rr-contact__region + .rr-contact__region { margin-top:48px; }
 .rr-contact .rr-contact__region-title { margin-bottom:24px; font-size:24px; font-weight:600; }
 .rr-contact__office-grid { grid-template-columns:minmax(0, 1fr); gap:24px; }
}

/* XLarge beyond the 1440 design width: keep the 1296 content column centred. */
@media (min-width:1441px) {
.rr-contact .rr-hero { padding-left:0; padding-right:0; }
.rr-contact .rr-hero__inner { max-width:1440px; padding-left:72px; padding-right:72px; }
}
