/* Contact, company request and appointment pages */
.page-hero{padding:70px 20px;text-align:center}.page-hero h1{margin:10px 0 15px}.page-hero p{max-width:760px;margin:0 auto}
.contact-section,.appointment-section{padding:70px 20px}.contact-layout{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(320px,1.4fr);gap:60px;align-items:start}
.contact-info h2,.request-form h2,.appointment-container h2{margin-top:0}.contact-info p{margin:0 0 28px}.contact-info a{text-decoration:none}.special-link{padding-top:15px}
.request-form{width:100%;max-width:760px;margin:0 auto}.special-request-form{max-width:850px}.form-section{margin-bottom:35px;padding:28px;border:1px solid rgba(0,0,0,.10);border-radius:10px;background:#fff}.form-section h2{margin-bottom:25px}
.request-form label,.appointment-details label{display:block;margin:0 0 8px;font-weight:600}.request-form label span{font-weight:400;opacity:.7}
.request-form input,.request-form select,.request-form textarea,.appointment-details select{width:100%;box-sizing:border-box;margin-bottom:20px;padding:13px 14px;border:1px solid rgba(0,0,0,.22);border-radius:6px;background:#fff;font:inherit}
.request-form textarea{resize:vertical}.request-form input:focus,.request-form select:focus,.request-form textarea:focus,.appointment-details select:focus{outline:2px solid rgba(90,180,220,.35);border-color:rgba(90,180,220,.8)}
.form-note{margin-top:12px;font-size:.9rem;opacity:.7}.form-message{display:none;margin-top:20px;padding:14px 16px;border-radius:6px;background:rgba(90,180,220,.12)}.form-message.show{display:block}
.appointment-container{max-width:1100px}.appointment-notice{max-width:850px;margin:0 auto 45px;padding:25px;border-left:4px solid rgba(90,180,220,.8);background:rgba(90,180,220,.08)}
.appointment-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:45px;align-items:start}.calendar-placeholder{border:1px solid rgba(0,0,0,.12);border-radius:10px;padding:22px}
.calendar-month{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.calendar-month button{border:0;background:transparent;font-size:1.8rem;cursor:pointer}
.calendar-days,.calendar-dates{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;text-align:center}.calendar-days{margin-bottom:8px;font-size:.85rem;font-weight:600}
.calendar-dates button{min-height:42px;border:1px solid rgba(0,0,0,.08);background:#f6f6f6;border-radius:5px;font:inherit}
.appointment-details{padding:28px;border:1px solid rgba(0,0,0,.10);border-radius:10px}.appointment-empty{margin:25px 0;padding:18px;background:rgba(0,0,0,.04);border-radius:6px}
@media(max-width:850px){.contact-layout,.appointment-grid{grid-template-columns:1fr;gap:35px}.contact-info{text-align:center}}
@media(max-width:600px){.page-hero{padding:50px 12px}.contact-section,.appointment-section{padding:45px 12px}.form-section,.appointment-details{padding:20px}.calendar-placeholder{padding:12px}.calendar-dates button{min-height:38px}}


.upload-note{display:block;margin:10px 0 20px;font-size:.88rem;opacity:.7;line-height:1.45}
.upload-widget{margin-top:8px;width:100%;max-width:100%}
.upload-widget>input[type=file]{display:none}
.upload-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.upload-add-button{border:1px solid #2f6fae;background:#337ab7;color:#fff;border-radius:4px;padding:9px 14px;cursor:pointer;font:inherit;line-height:1.2;transition:background .15s ease,opacity .15s ease}
.upload-add-button:hover,.upload-add-button:focus-visible{background:#286090}
.upload-add-button:disabled{opacity:.55;cursor:not-allowed}
.upload-count{font-size:.92rem;color:#5b6470}
.upload-selected-box{border:1px solid #d7d7d7;border-radius:4px;background:#fff;overflow:hidden}
.upload-selected-title{padding:11px 15px;background:linear-gradient(#f8f8f8,#ececec);border-bottom:1px solid #d7d7d7;color:#222;font-size:.95rem}
.upload-file-list{list-style:none;margin:0;padding:0}
.upload-file-item{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:10px 15px;border-bottom:1px solid #e5e5e5;background:#fff}
.upload-file-item:last-child{border-bottom:0}
.upload-file-details{display:flex;align-items:baseline;gap:8px;min-width:0;flex:1 1 auto}
.upload-file-name{min-width:0;overflow-wrap:anywhere;color:#222}
.upload-file-size{flex:0 0 auto;color:#777;font-size:.85rem;white-space:nowrap}
.upload-remove-button{flex:0 0 auto;width:25px;height:25px;padding:0;border:1px solid #b52b2b;border-radius:4px;background:#d9534f;color:#fff;font-size:20px;line-height:20px;font-weight:700;cursor:pointer}
.upload-remove-button:hover,.upload-remove-button:focus-visible{background:#c9302c}
@media(max-width:480px){.upload-file-item{padding:10px 12px}.upload-file-details{display:block}.upload-file-size{display:block;margin-top:2px}}
