.contact-appointment{min-height:calc(100vh - var(--header-height) - 7rem);display:flex;align-items:center;}
.contact-appointment-action{display:inline-flex;justify-content:center;align-items:center;min-width:min(100%,20rem);min-height:3.25rem;margin-top:var(--space-lg);padding-inline:2rem;}
.callback-form-wrap{max-width:42rem;}.callback-form{display:grid;gap:1rem;padding:clamp(1.25rem,4vw,2.5rem);background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-md);}.callback-form p{display:grid;gap:.45rem;margin:0;}.callback-form input,.callback-form select,.callback-form textarea{width:100%;padding:.75rem;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:#fff;color:var(--text-primary);}.callback-form textarea{resize:vertical;}.callback-form [aria-invalid="true"]{border-color:#842029;box-shadow:0 0 0 2px rgba(132,32,41,.16);}.field-error,.callback-error{color:#842029;font-weight:600;}.field-error{display:block;padding-left:.55rem;border-left:3px solid currentColor;}.callback-error{margin-bottom:1rem;padding:1rem;background:#f9e5e5;border-radius:var(--radius-sm);}.callback-error p{margin:0;}.callback-error p+p{margin-top:.4rem;}.callback-error ul{margin:.75rem 0 0;padding-left:1.2rem;}.callback-error a{color:inherit;text-decoration:underline;text-underline-offset:.15em;}.callback-success{margin-bottom:1rem;padding:1rem;border-radius:var(--radius-sm);background:#e8f5e8;color:#256334;font-weight:700}.consent{display:flex;gap:.75rem;align-items:flex-start;}.consent input{width:auto;flex:0 0 auto;margin-top:.3rem;}.callback-confirmation{max-width:48rem;}.callback-management-card{margin-top:1rem;padding:clamp(1.25rem,4vw,2rem);border-radius:var(--radius-md);background:var(--bg-card);box-shadow:var(--shadow-sm)}.callback-management-card h2{margin-top:0}.callback-management-card form:not(.callback-form){display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.callback-management-card .button-primary,.callback-form .button-primary{min-height:44px;border-radius:999px;font-weight:800;padding-inline:1.25rem;box-shadow:0 5px 14px rgba(130,82,27,.2)}.callback-management-card .button-primary:hover,.callback-form .button-primary:hover{transform:translateY(-1px)}
.public-service-selection{display:grid;gap:.8rem;margin:0;padding:1rem;border:1px solid var(--border-medium);border-radius:var(--radius-sm)}.public-service-selection legend{padding:0 .35rem;font-weight:700}.public-service-selection__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.public-service-card{position:relative;display:block;min-height:78px;padding:1rem;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:#fff;cursor:pointer}.public-service-card input{position:absolute;opacity:0}.public-service-card span{display:grid;gap:.35rem}.public-service-card small{color:var(--text-secondary)}.public-service-card:has(input:checked){border-color:var(--accent-primary);background:#fff8ec;box-shadow:inset 0 0 0 1px var(--accent-primary)}.public-service-card:has(input:focus-visible){outline:3px solid rgba(183,133,61,.45);outline-offset:2px}.public-guidance{display:flex;gap:.7rem;align-items:flex-start}.public-guidance input{width:auto;flex:0 0 auto;margin-top:.2rem}
@media(max-width:48rem){.contact-appointment{min-height:auto;}.contact-appointment-action,.callback-form .button{width:100%;}.callback-form{padding:1.25rem;}.public-service-selection__grid{grid-template-columns:1fr;}}
.contact-booking{padding-top:clamp(3rem,7vw,6rem)}.contact-booking-selector,.contact-booking-calendar,.contact-booking-error,.contact-booking-empty,.contact-booking-prompt{max-width:70rem;margin-inline:auto}.contact-booking-selector{display:grid;gap:.55rem;margin-bottom:2rem;padding:1.25rem;border:1px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-card);box-shadow:var(--shadow-sm)}.contact-booking-selector label{font-weight:700}.contact-booking-selector>div{display:flex;gap:.75rem}.contact-booking-selector select{flex:1;min-height:3rem;padding:.65rem .8rem;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:#fff;color:var(--text-primary);font:inherit}.contact-booking-calendar{padding:clamp(1.25rem,3vw,2.5rem);border:1px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-card);box-shadow:var(--shadow-md)}.contact-booking-calendar h2{text-align:center;font-size:clamp(1.6rem,4vw,2.4rem)}.contact-booking-navigation{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:2rem 0}.contact-booking-navigation a{color:var(--gold-dark);font-weight:700}.contact-booking-navigation strong{text-align:center}.contact-booking-grid{display:grid;grid-template-columns:repeat(5,minmax(9rem,1fr));gap:1rem}.contact-booking-day{padding:1rem;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-secondary)}.contact-booking-day h3{margin:0 0 1rem;font-size:1rem;text-align:center}.contact-booking-day h3 span{display:block;color:var(--text-secondary);font-weight:400}.contact-booking-slots{display:grid;gap:.55rem}.contact-booking-slot{display:block;padding:.75rem .5rem;border:1px solid var(--gold-dark);border-radius:var(--radius-pill);background:#fff;color:var(--text-primary);font-weight:700;text-align:center;text-decoration:none;transition:var(--transition-fast)}.contact-booking-slot:hover,.contact-booking-slot:focus{background:var(--gold-dark);color:#fff}.contact-booking-slot.is-unavailable{border-color:#d4cec7;background:#e5e1dc;color:#918b84;cursor:not-allowed}.contact-booking-error,.contact-booking-empty,.contact-booking-prompt{margin-bottom:1.5rem;padding:1rem;border-radius:var(--radius-sm);text-align:center}.contact-booking-error{background:#f9e5e5;color:#842029}.contact-booking-empty{background:var(--bg-card)}.contact-booking-prompt{background:#eee5da;color:#58493e}@media(max-width:48rem){.contact-booking-selector>div,.contact-booking-navigation{align-items:stretch;flex-direction:column}.contact-booking-selector .button{width:100%}.contact-booking-navigation strong{order:-1}.contact-booking-grid{grid-template-columns:1fr}.contact-booking-slot{padding:1rem}}
.contact-booking{padding-block:clamp(2rem,4vw,4rem)}.contact-booking-grid{grid-template-columns:repeat(5,minmax(0,1fr));width:100%}.contact-booking-day{min-width:0}.contact-booking-day-empty{margin:0;color:var(--text-secondary);font-size:.9rem;line-height:1.5;text-align:center}@media(max-width:70rem){.contact-booking-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:48rem){.contact-booking-grid{grid-template-columns:1fr}}
