/* Contact page only. Shared buttons, glass surfaces and icons come from site.css. */
.contact-page {
    padding:64px 0 35px;
}
.contact-heading {
    margin-bottom:44px;
}
.contact-heading h1 {
    font-size:clamp(36px,5vw,60px);
    letter-spacing:-2px;
    line-height:1.1;
    margin:14px 0 20px;
}
.contact-heading>p:last-child {
    color:var(--text);
    font-size:20px;
    line-height:1.55;
}
.contact-grid {
    display:grid;
    grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
    gap:60px;
    align-items:start;
}
.contact-form-panel {
    border-radius:28px;
    padding:32px;
}
.contact-form-panel h2,.contact-details h2,.contact-locations h2 {
    font-size:30px;
    line-height:1.2;
}
.contact-subtitle {
    color:var(--text);
    font-size:15px;
    margin:10px 0 20px;
}
.contact-availability {
    border-left:3px solid #80a5cc;
    padding:10px 14px;
    background:#e6eff977;
    border-radius:0 12px 12px 0;
    font-size:13px;
    color:var(--text);
    line-height:1.6;
}
.contact-page a:not(.button):not(.socials a) {
    text-underline-offset:3px;
}
.contact-availability a,.contact-privacy a,.contact-locations>.contact-help a {
    text-decoration:underline;
}
.contact-types {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    border:0;
    padding:0;
    margin:24px 0;
}
.contact-types legend {
    margin-bottom:10px;
    font-size:14px;
    font-weight:700;
}
.contact-types label {
    position:relative;
    cursor:pointer;
}
.contact-types input {
    position:absolute;
    opacity:0;
    width:1px;
    height:1px;
}
.contact-types span {
    display:block;
    border:1px solid var(--line);
    border-radius:24px;
    padding:9px 16px;
    background:#ffffff70;
    font-size:14px;
}
.contact-types input:checked+span {
    background:var(--ink);
    color:white;
    border-color:var(--ink);
}
.contact-types input:focus-visible+span {
    outline:3px solid #3477b8;
    outline-offset:3px;
}
.contact-fields {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px 16px;
}
.contact-fields label {
    font-size:13px;
    font-weight:700;
    min-width:0;
}
.contact-fields .optional {
    color:var(--text);
    font-weight:400;
    font-size:12px;
}
.contact-fields input,.contact-fields textarea {
    display:block;
    width:100%;
    min-width:0;
    border:1px solid #cad9e9;
    border-radius:12px;
    background:#ffffff90;
    padding:13px 14px;
    margin-top:8px;
    font-family:inherit;
    font-size:16px;
    font-weight:400;
    line-height:1.5;
    color:var(--ink);
}
.contact-fields input::placeholder,.contact-fields textarea::placeholder {
    color:#7187a0;
}
.contact-fields textarea {
    resize:vertical;
    min-height:150px;
}
.contact-message,.contact-order {
    grid-column:1/-1;
}
.contact-help,.contact-privacy {
    color:var(--text);
    font-size:12px;
    line-height:1.65;
    margin-top:12px;
}
.contact-form-bottom {
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:16px;
    margin-top:24px;
}
.contact-form-bottom>span {
    font-size:12px;
    color:var(--text);
}
.contact-form-bottom .button:disabled {
    opacity:.65;
    cursor:not-allowed;
}
.contact-status {
    font-size:14px;
    color:var(--ink);
    margin-top:14px;
    line-height:1.6;
}
.contact-status:empty {
    display:none;
}
.contact-details {
    padding-top:26px;
}
.contact-details h2 {
    margin-bottom:28px;
}
.contact-channel {
    display:flex;
    gap:16px;
    margin:0 0 24px;
    padding-bottom:24px;
    border-bottom:1px solid var(--line);
}
.contact-channel>.icon {
    color:#547cad;
    margin-top:3px;
}
.contact-channel h3,.contact-social h3 {
    font-size:16px;
    margin-bottom:6px;
}
.contact-channel p {
    font-size:13px;
    color:var(--text);
    margin-bottom:8px;
}
.contact-channel a {
    font-size:17px;
    overflow-wrap:anywhere;
}
.contact-channel a:hover {
    text-decoration:underline;
}
.contact-social {
    margin-top:28px;
}
.contact-social .socials {
    margin-top:14px;
}
.contact-locations {
    margin-top:70px;
}
.contact-locations-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:30px;
    margin-bottom:26px;
}
.contact-locations-heading>p {
    color:var(--text);
    font-size:15px;
    max-width:280px;
}
.contact-address-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
}
.contact-address {
    padding:30px;
    border-radius:26px;
}
.contact-location-label {
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:20px;
}
.contact-location-label h3 {
    font-size:24px;
}
.contact-address address {
    font-style:normal;
    font-size:16px;
    color:var(--text);
    line-height:1.7;
    min-height:58px;
    margin-bottom:22px;
}
.contact-address .button {
    font-size:14px;
    padding:10px 20px;
    min-height:46px;
}
@media(max-width:900px) {
    .contact-grid { gap:30px; }
    .contact-form-panel { padding:24px; }
    .contact-fields { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:700px) {
    .contact-page { padding-top:36px; }
    .contact-heading h1 { font-size:39px; letter-spacing:-1.4px; }
    .contact-heading>p:last-child { font-size:17px; }
    .contact-heading>p:last-child br { display:none; }
    .contact-grid,.contact-address-grid { grid-template-columns:minmax(0,1fr); }
    .contact-form-panel { padding:22px; }
    .contact-form-panel h2,.contact-details h2,.contact-locations h2 { font-size:26px; }
    .contact-types { gap:8px; }
    .contact-types span { font-size:12px; padding:9px 12px; }
    .contact-details { padding-top:12px; }
    .contact-locations { margin-top:42px; }
    .contact-locations-heading { display:block; }
    .contact-locations-heading>p { margin-top:16px; max-width:none; }
    .contact-address { padding:24px; }
    .contact-address address { font-size:14px; }
    .contact-form-bottom .button { width:100%; }
}

.contact-fields>label>select{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#ffffffa0;color:var(--ink);font:inherit;font-size:16px}.contact-fields [hidden]{display:none!important}
