/* Full-width circular-economy artwork, with a separate readable form surface. */
body.public-site.public-home #contact.ce-contact-pencil {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: #f7f6f0 !important;
    color: #303632;
    color-scheme: light;
    padding-block: clamp(64px, 6vw, 100px) !important;
}
body.public-site.public-home #contact.ce-contact-pencil :is(h2, p, label, a),
body.public-site.public-home #contact.ce-contact-pencil .ce-mas-contact-form {
    color: #303632 !important;
}
body.public-site.public-home #contact.ce-contact-pencil .form-intro p { color: #59615b !important; }
body.public-site.public-home #contact.ce-contact-pencil .ce-mas-contact-form :is(.form-control, .form-select) {
    background-color: #ffffff !important;
    color: #303632 !important;
    border-color: #aeb5ac !important;
}
body.public-site.public-home #contact.ce-contact-pencil .ce-mas-contact-form :is(.form-control, .form-select):focus {
    border-color: #59615b !important;
    outline: 2px solid #59615b;
    outline-offset: 2px;
    box-shadow: none !important;
}
body.public-site.public-home #contact.ce-contact-pencil .contact-consent .form-check-input { background-color: #fff; border-color: #858e84; }
body.public-site.public-home #contact.ce-contact-pencil .contact-consent .form-check-input:checked { background-color: #454e45; border-color: #454e45; }
body.public-site.public-home #contact.ce-contact-pencil .contact-consent .form-check-input:focus-visible { outline: 2px solid #59615b; outline-offset: 3px; }
body.public-site.public-home #contact.ce-contact-pencil .ce-mas-contact-form .public-btn {
    background: #454e45 !important;
    border-color: #454e45 !important;
    color: #fff !important;
}
body.public-site.public-home #contact.ce-contact-pencil .ce-mas-contact-form .public-btn:is(:hover, :focus) { background: #303632 !important; color: #fff !important; }
body.public-site.public-home #contact.ce-contact-pencil .ce-mas-contact-form .public-btn:focus-visible { outline: 2px solid #59615b; outline-offset: 4px; }
body.public-site.public-home #contact.ce-contact-pencil .ce-mas-contact-form .text-danger { color: #b42318 !important; }
body.public-site.public-home #contact.ce-contact-pencil.has-illustration .ce-mas-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(36px, 5vw, 88px);
}
body.public-site.public-home #contact.ce-contact-pencil .ce-mas-contact-grid { position: relative; z-index: 1; }
body.public-site.public-home #contact.ce-contact-pencil .ce-mas-contact-form { max-width: 960px; min-width: 0; }
body.public-site.public-home #contact.ce-contact-pencil.has-illustration .ce-mas-contact-form {
    padding: clamp(24px, 2.5vw, 44px) !important;
    background: #fffef9f5 !important;
    border: 1px solid #ffffff !important;
    border-radius: 6px !important;
    box-shadow: 0 16px 60px #34414b12 !important;
}
.ce-contact-scene { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
body.public-site.public-home #contact .ce-contact-scene img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; object-position: center bottom;
    border: 0; border-radius: 0; box-shadow: none; filter: none;
}
body.public-site.public-home #contact .ce-contact-scene-colour {
    opacity: 0;
    mask-image: linear-gradient(110deg, #000 38%, transparent 65%);
    mask-size: 280% 100%; mask-position: 100% 0; mask-repeat: no-repeat;
    animation: ce-contact-colour-wash var(--contact-cycle, 30s) ease-in-out infinite;
    animation-play-state: paused;
}
body.public-site.public-home #contact[data-running="true"] .ce-contact-scene-colour { animation-play-state: running; }
.ce-contact-scene-space { min-width: 0; min-height: 520px; }
body.public-site.public-home #contact .ce-pencil-toggle {
    position: absolute;
    z-index: 2;
    left: var(--ce-gutter, 4vw);
    bottom: 26px;
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    min-height: 44px;
    padding: 8px 16px;
    border: 1px solid #aeb5ac;
    border-radius: 4px;
    background: #fffef9e6;
    color: #454e45;
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}
body.public-site.public-home #contact .ce-pencil-toggle[hidden] { display: none; }
body.public-site.public-home #contact .ce-pencil-toggle:hover { background: #e8eae2; }
body.public-site.public-home #contact .ce-pencil-toggle:focus-visible { outline: 2px solid #59615b; outline-offset: 4px; }
@keyframes ce-contact-colour-wash {
    0%, 8%, 100% { opacity: 0; mask-position: 100% 0; }
    18% { opacity: 1; mask-position: 100% 0; }
    46%, 60% { opacity: 1; mask-position: 0 0; }
    92% { opacity: 0; mask-position: 100% 0; }
}
@media (max-width: 900px) {
    body.public-site.public-home #contact.ce-contact-pencil.has-illustration .ce-mas-contact-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
    body.public-site.public-home #contact.ce-contact-pencil { padding-block: 40px 66px !important; }
    .ce-contact-scene { inset: auto 0 0; height: 450px; }
    body.public-site.public-home #contact .ce-contact-scene img { object-position: left bottom; }
    .ce-contact-scene-space { order: 2; min-height: 320px; }
    body.public-site.public-home #contact.ce-contact-pencil .ce-mas-contact-form { order: 1; }
    body.public-site.public-home #contact.ce-contact-pencil.has-illustration .ce-mas-contact-form { padding: 24px 20px !important; }
    body.public-site.public-home #contact .ce-pencil-toggle { left: 20px; bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    body.public-site.public-home #contact .ce-contact-scene-colour { animation: none; opacity: 0; }
}
body.public-site.public-home.ce-motion-off #contact .ce-contact-scene-colour { animation: none; opacity: 0; }
