/* Existing production controls, isolated from page layout. */
body.modal-open, body.menu-open{overflow: hidden;}
.enquiry-form{padding: 32px; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--white); box-shadow: rgba(11, 31, 53, 0.06) 0px 14px 38px;}
.form-heading{margin-bottom: 26px; padding-bottom: 20px; border-bottom: 1px solid var(--line);}
.form-heading h3{font-size: 1.3rem;}
.form-heading p{margin-top: 5px; color: var(--slate); font-size: 0.8rem;}
.field-row{display: grid; grid-template-columns: 1fr 1fr; gap: 18px;}
.field{margin-bottom: 18px;}
.field label{display: block; margin-bottom: 7px; color: var(--ink-soft); font-size: 0.82rem; font-weight: 700;}
.optional{color: var(--slate); font-weight: 500;}
.field input:not([type="checkbox"]), .field select, .field textarea{width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid rgb(174, 191, 200); border-radius: var(--radius-control); background: var(--white); color: var(--ink); transition: border-color 0.18s, box-shadow 0.18s;}
.field textarea{min-height: 98px; resize: vertical; line-height: 1.5;}
.field input:focus, .field select:focus, .field textarea:focus{border-color: var(--accent-dark); outline: 0px; box-shadow: rgb(216, 233, 237) 0px 0px 0px 3px;}
.field [aria-invalid="true"]{border-color: var(--error);}
.field-error{min-height: 1.2em; margin-top: 5px; color: var(--error); font-size: 0.76rem;}
.consent-field{display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: start; margin-top: 4px;}
.consent-field input{width: 18px; height: 18px; margin: 4px 0px 0px; accent-color: var(--accent-dark);}
.consent-field label{margin: 0px; font-weight: 500; line-height: 1.5;}
.consent-field .field-error{grid-column: 2;}
.honeypot{position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important;}
.error-summary{margin-bottom: 22px; padding: 16px 18px; border-left: 4px solid var(--error); background: rgb(247, 236, 236);}
.error-summary h3, .error-summary h4{font-size: 1rem;}
.error-summary ul{margin: 8px 0px 0px; padding-left: 20px; font-size: 0.82rem;}
.form-status{min-height: 1.5em; margin-top: 13px; color: var(--success); font-size: 0.84rem; font-weight: 650; white-space: pre-line;}
.form-status.error{color: var(--error);}
.quote-modal{position: fixed; z-index: 900; inset: 0px; display: grid; justify-items: end;}
.quote-modal[hidden]{display: none;}
.quote-modal__backdrop{position: absolute; inset: 0px; background: rgba(34, 40, 45, 0.68);}
.quote-dialog{position: relative; z-index: 1; width: min(680px, 100% - 24px); height: 100%; overflow-y: auto; padding: 34px; background: var(--paper); box-shadow: rgba(34, 40, 45, 0.18) -12px 0px 36px;}
.quote-dialog__header{display: flex; justify-content: space-between; gap: 30px; margin-bottom: 22px;}
.quote-dialog__header h2{font-size: 2rem;}
.quote-dialog__header p:last-child{margin-top: 8px; color: var(--accent-dark); font-weight: 700;}
.quote-form{padding: 26px;}
.chat-toggle{position: fixed; z-index: 700; right: 20px; bottom: 20px; width: 72px; height: 72px; display: grid; place-items: center; padding: 0px; border: 0px; border-radius: 50%; background: transparent; color: var(--white); cursor: pointer; box-shadow: none; transition: transform 0.18s, background-color 0.18s, box-shadow 0.18s;}
.chat-toggle::before{display: none;}
.chat-toggle:hover{background: transparent; transform: translateY(-2px); box-shadow: none;}
.chat-toggle:focus-visible{outline: rgb(58, 165, 173) solid 3px; outline-offset: 3px;}
.chat-toggle[aria-expanded="true"]{background: var(--ink); box-shadow: rgba(11, 31, 53, 0.22) 0px 12px 28px;}
.chat-toggle[aria-expanded="true"]:hover{background: rgb(16, 44, 73); box-shadow: rgba(11, 31, 53, 0.26) 0px 15px 34px;}
.chat-toggle__icon{position: absolute; width: 58px; height: 58px; display: grid; place-items: center; transition: opacity 0.18s, transform 0.18s;}
.chat-toggle__icon svg, .chat-identity__icon svg{width: 100%; height: 100%; overflow: visible;}
.chat-toggle:hover .assistant-pet svg{filter: drop-shadow(rgba(4, 25, 44, 0.28) 0px 11px 9px) drop-shadow(rgba(255, 255, 255, 0.5) 0px 2px 1px);}
.chat-toggle.is-pet-pressed .assistant-pet svg{transform: translateY(2px) perspective(180px) rotateX(var(--pet-tilt-x)) rotateY(var(--pet-tilt-y)) scale(.91);}
.chat-toggle__icon--close{width: 25px; height: 25px; opacity: 0; transform: scale(0.75) rotate(-12deg);}
.chat-toggle[aria-expanded="true"] .chat-toggle__icon--network{opacity: 0; transform: scale(0.75) rotate(12deg);}
.chat-toggle[aria-expanded="true"] .chat-toggle__icon--close{opacity: 1; transform: scale(1) rotate(0deg);}
.chat-toggle__tooltip{position: absolute; right: 70px; width: max-content; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); color: var(--ink); font-size: 0.7rem; font-weight: 700; box-shadow: rgba(11, 31, 53, 0.1) 0px 8px 22px; opacity: 0; pointer-events: none; transform: translateX(5px); transition: opacity 0.18s, transform 0.18s;}
.chat-toggle:hover .chat-toggle__tooltip, .chat-toggle:focus-visible .chat-toggle__tooltip{opacity: 1; transform: translateX(0px);}
.chat-toggle.is-attention .chat-toggle__icon--network{animation: 1.3s ease-in-out 0s 1 normal none running assistant-pet-greet;}
.chat-intro{position: fixed; z-index: 705; right: 24px; bottom: 96px; width: min(330px, -32px + 100vw); padding: 17px 42px 17px 18px; border: 1px solid rgb(183, 203, 211); border-radius: 16px; background: var(--white); color: var(--ink-soft); box-shadow: rgb(223, 234, 237) 6px 7px 0px, rgba(11, 31, 53, 0.14) 0px 18px 40px; opacity: 0; transform: translateY(8px); transition: opacity 0.18s, transform 0.18s;}
.chat-intro[hidden]{display: none;}
.chat-intro.is-visible{opacity: 1; transform: translateY(0px);}
.chat-intro strong{display: block; color: var(--ink); font-size: 0.82rem; line-height: 1.35;}
.chat-intro p{margin-top: 5px; color: var(--slate); font-size: 0.72rem; line-height: 1.45;}
.chat-intro button{position: absolute; top: 8px; right: 8px; width: 30px; height: 30px; border: 0px; border-radius: 8px; background: transparent; color: var(--slate); font-size: 1.1rem; cursor: pointer;}
.chat-intro button:hover{background: var(--mist); color: var(--ink);}
.chat-panel{position: fixed; z-index: 710; right: 24px; bottom: 94px; width: min(410px, -32px + 100vw); max-height: min(660px, 100dvh - 124px); display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgb(189, 204, 212); border-radius: 22px; background: var(--white); box-shadow: rgba(11, 31, 53, 0.22) 0px 24px 64px; animation: 0.2s ease-out 0s 1 normal none running chat-panel-in;}
.chat-panel[hidden]{display: none;}
.chat-panel__header{position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 20px; border-bottom: 1px solid rgb(41, 68, 95); background: var(--ink); color: var(--white); box-shadow: rgba(11, 31, 53, 0.14) 0px 7px 18px;}
.chat-identity{display: flex; align-items: center; gap: 12px;}
.chat-identity__icon{flex: 0 0 42px; width: 42px; height: 42px; display: grid; place-items: center; padding: 8px; border: 1px solid rgb(82, 113, 135); border-radius: 12px; background: rgb(16, 47, 74); color: var(--white);}
.chat-identity__icon.assistant-pet{flex-basis: 46px; width: 46px; height: 46px; padding: 0px; border: 0px; background: transparent;}
.chat-panel__header h2{color: var(--white); font-size: 1rem; letter-spacing: -0.015em;}
.chat-panel__header p{display: flex; align-items: center; gap: 6px; margin-top: 4px; color: rgb(201, 214, 221); font-size: 0.7rem;}
.chat-presence{width: 7px; height: 7px; border-radius: 50%; background: rgb(84, 184, 154); box-shadow: rgba(84, 184, 154, 0.14) 0px 0px 0px 3px;}
.chat-panel__close{flex: 0 0 40px; width: 40px; height: 40px; border: 1px solid rgb(83, 112, 134); border-radius: 10px; background: transparent; color: var(--white); font-size: 1.35rem; cursor: pointer; transition: background-color 0.18s;}
.chat-panel__close:hover{background: rgba(255, 255, 255, 0.08);}
.chat-messages{flex: 1 1 0%; min-height: 190px; margin: 0px; padding: 20px; overflow-y: auto; overscroll-behavior: contain; list-style: none; background: rgb(246, 249, 250); box-shadow: inset 0 8px 18px rgba(11,31,53,.035), inset 0 -1px 0 var(--line);}
.chat-message{display: flex; margin-bottom: 12px;}
.chat-message--user{justify-content: flex-end;}
.chat-message__bubble{max-width: 88%; padding: 11px 13px; border: 1px solid rgb(215, 226, 231); border-radius: 8px 15px 15px; background: var(--white); color: var(--ink-soft); font-size: 0.82rem; line-height: 1.5; white-space: pre-wrap; box-shadow: rgba(11, 31, 53, 0.035) 0px 3px 12px;}
.chat-message--user .chat-message__bubble{border-color: var(--ink); border-radius: 15px 8px 15px 15px; background: var(--ink); color: var(--white); box-shadow: none;}
.chat-message--error .chat-message__bubble{border-color: rgb(230, 195, 199); background: rgb(250, 239, 240); color: var(--error);}
.chat-quick-replies{display: flex; flex-wrap: wrap; gap: 7px; padding: 14px 20px; border-top: 1px solid var(--line); background: var(--white);}
.chat-quick-replies[hidden]{display: none;}
.chat-quick-replies button, .chat-quick-replies a{min-height: 36px; display: inline-flex; align-items: center; padding: 7px 10px; border: 1px solid rgb(184, 203, 211); border-radius: 9px; background: var(--white); color: var(--ink-soft); font-size: 0.69rem; font-weight: 650; line-height: 1.2; text-decoration: none; cursor: pointer; transition: border-color 0.18s, background-color 0.18s, color 0.18s;}
.chat-quick-replies button:hover, .chat-quick-replies a:hover{border-color: var(--accent-dark); background: var(--mist); color: var(--accent-dark);}
.chat-form{display: grid; grid-template-columns: 1fr 44px; gap: 8px; padding: 12px 20px; border-top: 1px solid var(--line); background: var(--white);}
.chat-form input{min-width: 0px; min-height: 46px; padding: 10px 12px; border: 1px solid rgb(174, 191, 200); border-radius: var(--radius-control); color: var(--ink);}
.chat-form input:focus{border-color: var(--accent-dark); outline: 0px; box-shadow: rgb(216, 233, 237) 0px 0px 0px 3px;}
.chat-form button{width: 44px; height: 46px; display: grid; place-items: center; padding: 0px; border: 1px solid var(--accent-dark); border-radius: var(--radius-control); background: var(--accent-dark); color: var(--white); cursor: pointer;}
.chat-form button svg{width: 20px; height: 20px; fill: none; stroke: currentcolor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round;}
.chat-form button:disabled, .chat-form input:disabled{cursor: wait; opacity: 0.58;}
.chat-status{min-height: 1.15em; padding: 0px 20px; color: var(--slate); font-size: 0.68rem;}
.chat-status[data-state="pending"]::before{content: ""; width: 7px; height: 7px; display: inline-block; margin-right: 6px; border-radius: 50%; background: var(--accent); animation: 1.1s ease-in-out 0s infinite normal none running status-pulse;}
.chat-panel__footer{padding: 10px 20px 18px; background: var(--white);}
.chat-audit-button{min-height: 40px; padding: 8px 12px; border: 1px solid var(--accent-dark); border-radius: 9px; background: var(--white); color: var(--accent-dark); font-size: 0.72rem; font-weight: 720; cursor: pointer;}
.chat-audit-button:hover{background: var(--mist);}
.chat-panel__footer p{margin-top: 10px; color: var(--slate); font-size: 0.63rem; line-height: 1.45;}
.cookie-banner{position: fixed; z-index: 900; right: 20px; bottom: 20px; left: 20px; width: min(980px, -40px + 100vw); display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 28px; margin-inline: auto; padding: 22px 24px; border: 1px solid rgb(69, 98, 122); border-radius: 18px; background: var(--ink); color: var(--white); box-shadow: rgba(4, 18, 34, 0.32) 0px 22px 64px;}
.cookie-banner[hidden], .cookie-preferences[hidden]{display: none;}
.cookie-banner__copy strong{display: block; margin-bottom: 5px; font-size: 1rem;}
.cookie-banner__copy p{max-width: 66ch; color: rgb(216, 227, 233); font-size: 0.78rem; line-height: 1.5;}
.cookie-banner__copy a{display: inline-block; margin-top: 7px; color: var(--white); font-size: 0.72rem;}
.cookie-banner__actions{display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; max-width: 390px;}
.cookie-banner .button{border-color: var(--white);}
.cookie-banner .button-outline{background: transparent; color: var(--white);}
.cookie-text-button, .footer-cookie-settings{border: 0px; background: transparent; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer;}
.cookie-banner .cookie-text-button{min-height: 42px; padding: 8px 10px; color: rgb(216, 227, 233); font-size: 0.72rem;}
.footer-cookie-settings{padding: 0px; color: inherit; font-size: inherit;}
.cookie-preferences{position: fixed; z-index: 920; inset: 0px; display: grid; place-items: center; padding: 20px;}
.cookie-preferences__backdrop{position: absolute; inset: 0px; background: rgba(4, 18, 34, 0.72);}
.cookie-preferences__dialog{position: relative; z-index: 1; width: min(610px, 100%); max-height: calc(-40px + 100vh); overflow-y: auto; padding: 28px; border: 1px solid var(--line); border-radius: 20px; background: var(--white); box-shadow: rgba(4, 18, 34, 0.34) 0px 25px 70px;}
.cookie-preferences__dialog > header{display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 14px;}
.cookie-preferences__dialog h2{font-size: 1.65rem;}
.cookie-preferences__dialog > p{color: var(--ink-soft); font-size: 0.84rem;}
.cookie-choice{display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 24px; margin-top: 16px; padding: 17px 0px; border-top: 1px solid var(--line);}
.cookie-choice p{margin-top: 4px; color: var(--slate); font-size: 0.74rem;}
.cookie-choice input{width: 22px; height: 22px; accent-color: var(--accent-dark);}
.cookie-preferences__actions{display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 20px;}
body.cookie-modal-open{overflow: hidden;}
@media (max-width: 1120px){}
@media (max-width: 820px){}
@media (max-width: 620px){body.chat-open{overflow: hidden;}
.field-row{grid-template-columns: 1fr; gap: 0px;}
.enquiry-form{padding: 24px 18px;}
.quote-dialog{width: 100%; padding: 22px 14px;}
.quote-dialog__header{padding-inline: 4px;}
.quote-form{padding: 22px 16px;}
.chat-toggle{right: max(10px, env(safe-area-inset-right)); bottom: max(10px, env(safe-area-inset-bottom)); width: 66px; height: 66px;}
.chat-toggle__tooltip{display: none;}
.chat-intro{right: max(14px, env(safe-area-inset-right)); bottom: calc(82px + env(safe-area-inset-bottom)); width: min(320px, -28px + 100vw);}
.chat-panel{right: max(8px, env(safe-area-inset-right)); bottom: calc(76px + env(safe-area-inset-bottom)); width: calc(-16px + 100vw); max-height: calc(100dvh - 96px - env(safe-area-inset-bottom)); border-radius: 20px;}
.chat-panel__header{padding: 16px;}
.chat-messages{min-height: 150px; padding: 16px;}
.chat-quick-replies{padding: 12px 16px;}
.chat-form{padding: 10px 16px;}
.chat-status{padding-inline: 16px;}
.chat-panel__footer{padding: 8px 16px calc(14px + env(safe-area-inset-bottom));}
.cookie-banner{right: 10px; bottom: 10px; left: 10px; width: calc(-20px + 100vw); grid-template-columns: 1fr; gap: 16px; padding: 19px 18px; border-radius: 16px;}
.cookie-banner__actions{justify-content: stretch; max-width: none;}
.cookie-banner__actions .button{flex: 1 1 150px;}
.cookie-banner .cookie-text-button{width: 100%;}
.cookie-preferences{padding: 10px;}
.cookie-preferences__dialog{max-height: calc(100dvh - 20px); padding: 22px 18px; border-radius: 16px;}}
@media (prefers-reduced-motion: reduce){}