.afb-contact { --afb-ink:#183d4b; --afb-muted:#607780; --afb-line:#cad6d8; --afb-accent:#a98245; --afb-paper:#fff; width:min(1120px,94vw); margin:18px auto; background:var(--afb-paper); border:1px solid #dce5e5; border-radius:18px; overflow:hidden; box-shadow:0 22px 70px rgba(11,36,45,.22); color:var(--afb-ink); font-family:inherit; }
.afb-contact { display:grid; grid-template-rows:170px auto; }
.afb-contact__visual { position:relative; min-height:170px; background-size:cover; background-position:center 48%; display:flex; align-items:flex-end; }
.afb-contact__visual::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,31,39,.64),rgba(7,31,39,.03) 78%),linear-gradient(0deg,rgba(7,31,39,.58),transparent 65%); }
.afb-contact__visual-copy { position:relative; z-index:1; padding:18px 28px; color:#fff; }
.afb-contact__visual-copy p { margin:8px 0 0; color:#fff; font-size:21px; line-height:1.15; font-weight:600; letter-spacing:.01em; }
.afb-eyebrow { display:block; color:#fff; font-size:10px; line-height:1.2; font-weight:700; letter-spacing:.19em; }
.afb-eyebrow--dark { color:var(--afb-accent); }
.afb-contact__content { padding:20px 30px 22px; }
.afb-contact__heading { margin-bottom:10px; }
.afb-contact__heading h2 { margin:4px 0 3px; color:var(--afb-ink); font-size:26px; line-height:1.15; font-weight:650; }
.afb-contact__heading p { margin:0; color:var(--afb-muted); font-size:13px; line-height:1.4; }
.afb-form { margin:0; display:grid; gap:8px; }
.afb-form label, .afb-form legend { color:var(--afb-ink); font-size:12px; line-height:1.25; font-weight:600; }
.afb-form input[type=text], .afb-form input[type=email], .afb-form input[type=tel], .afb-form textarea { display:block; width:100%; margin:4px 0 0; min-height:36px; padding:7px 10px; border:1px solid var(--afb-line); border-radius:6px; background:#fff; color:#24383f; font-family:inherit; font-size:14px; font-weight:400; line-height:1.35; box-shadow:none; box-sizing:border-box; }
.afb-form textarea { min-height:52px; height:52px; resize:vertical; }
.afb-form input:focus, .afb-form textarea:focus { outline:2px solid rgba(24,61,75,.2); border-color:var(--afb-ink); }
.afb-form__types { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:0; margin:0; border:0; }
.afb-form__types legend { margin-bottom:5px; }
.afb-choice { display:flex; align-items:center; gap:8px; min-height:34px; padding:4px 10px; border:1px solid var(--afb-line); border-radius:6px; background:#fff; color:#4a5c62 !important; font-size:12px !important; font-weight:400 !important; cursor:pointer; }
.afb-choice:has(input:checked) { border-color:var(--afb-ink); box-shadow:inset 0 -2px var(--afb-accent); background:#f2f7f7; }
.afb-choice input { accent-color:var(--afb-ink); margin:0; }
.afb-form__row { display:grid; gap:10px; }
.afb-form__row--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.afb-form__row--two { grid-template-columns:1fr 1fr; }
.afb-optional { color:var(--afb-muted); font-weight:400; }
.afb-form__bottom { display:grid; grid-template-columns:1fr 250px; gap:18px; align-items:center; }
.afb-form__privacy label { display:flex; align-items:flex-start; gap:8px; font-size:11px; font-weight:500; cursor:pointer; }
.afb-form__privacy input { flex:0 0 auto; margin:1px 0 0; accent-color:var(--afb-ink); }
.afb-form__privacy p { margin:5px 0 0 22px; color:var(--afb-muted); font-size:11px; line-height:1.35; }
.afb-form__privacy a { color:var(--afb-ink); text-decoration:underline; text-underline-offset:2px; }
.afb-submit { min-height:46px; padding:10px 18px; border:1px solid var(--afb-ink); border-radius:2px; background:#fff; color:var(--afb-ink); font-family:inherit; font-size:15px; font-weight:600; line-height:1.2; cursor:pointer; transition:background .18s ease,color .18s ease; }
.afb-submit:hover, .afb-submit:focus-visible { background:var(--afb-ink); color:#fff; }
.afb-notice { margin:0 0 8px; padding:8px 12px; border-radius:5px; font-size:13px; }
.afb-notice--success { background:#edf6f1; color:#23543c; }
.afb-notice--error { background:#fff1ed; color:#7a3024; }
.afb-trap { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
.afb-modal[hidden] { display:none !important; }
.afb-modal { position:fixed; z-index:999999; inset:0; display:flex; align-items:center; justify-content:center; padding:24px; box-sizing:border-box; }
.afb-modal__backdrop { position:absolute; inset:0; background:rgba(12,17,22,.78); backdrop-filter:blur(4px); }
.afb-modal__dialog { position:relative; z-index:1; width:min(1120px,calc(100vw - 48px)); max-height:calc(100vh - 48px); overflow:visible; }
.afb-modal__close { position:absolute; z-index:3; top:12px; right:12px; width:38px; height:38px; padding:0; border:1px solid rgba(255,255,255,.8); border-radius:50%; background:rgba(20,35,42,.55); color:#fff; font:300 28px/34px sans-serif; cursor:pointer; }
.afb-modal__close:hover,.afb-modal__close:focus-visible { background:#183d4b; }
.afb-modal .afb-contact { width:100%; max-width:none; max-height:calc(100vh - 48px); margin:0 auto; }
.afb-modal .afb-contact__visual { background-position:center 15%; }
.afb-modal .afb-contact__content { padding:13px 24px 15px; }
.afb-modal .afb-contact__heading { margin:0 0 6px; }
.afb-modal .afb-contact__heading h2 { margin:3px 0; font-size:23px; }
.afb-modal .afb-contact__heading p { font-size:12px; }
.afb-modal .afb-form { gap:5px; }
.afb-modal .afb-form label,.afb-modal .afb-form legend { font-size:11px; line-height:1.2; }
.afb-modal .afb-form input[type=text],.afb-modal .afb-form input[type=email],.afb-modal .afb-form input[type=tel],.afb-modal .afb-form textarea { margin:2px 0 0; margin-bottom:0; min-height:31px; padding:5px 8px; font-size:13px; }
.afb-modal .afb-form textarea { height:39px; min-height:39px; }
.afb-modal .afb-form__types { gap:6px; }
.afb-modal .afb-choice { min-height:29px; padding:3px 8px; }
.afb-modal .afb-form__row { gap:8px; }
.afb-modal .afb-form__bottom { gap:12px; }
.afb-modal .afb-form__privacy p { margin-top:3px; font-size:10px; }
.afb-modal .afb-submit { min-height:39px; padding:8px 14px; font-size:14px; }
body.afb-modal-open { overflow:hidden; }
@media (min-width:1000px) and (min-height:760px) { .afb-contact { grid-template-rows:195px auto; } .afb-contact__visual { min-height:195px; } }
@media (max-width:767px) { .afb-contact { width:calc(100vw - 16px); margin:8px auto; border-radius:13px; grid-template-rows:112px auto; } .afb-contact__visual { min-height:112px; background-position:center 50%; } .afb-contact__visual-copy { padding:10px 14px; } .afb-contact__visual-copy p { margin-top:4px; font-size:16px; } .afb-eyebrow { font-size:9px; } .afb-contact__content { padding:13px 14px 15px; } .afb-contact__heading h2 { font-size:21px; } .afb-contact__heading p { font-size:12px; } .afb-form { gap:6px; } .afb-form label, .afb-form legend { font-size:11px; } .afb-form__types { grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; } .afb-choice { min-height:34px; padding:4px 5px; font-size:10px !important; line-height:1.15 !important; } .afb-choice input { width:12px; height:12px; } .afb-form__row--three { grid-template-columns:repeat(2,minmax(0,1fr)); } .afb-form__row--three label:last-child { grid-column:1 / -1; } .afb-form__row--two { grid-template-columns:1fr 1fr; } .afb-form input[type=text], .afb-form input[type=email], .afb-form input[type=tel], .afb-form textarea { min-height:32px; padding:6px 8px; font-size:13px; } .afb-form textarea { min-height:44px; height:44px; } .afb-form__bottom { grid-template-columns:1fr; gap:8px; } .afb-form__privacy p { font-size:10px; } .afb-submit { min-height:42px; width:100%; font-size:14px; } }
@media (max-height:740px) and (min-width:768px) { .afb-modal { padding:12px; } .afb-modal__dialog,.afb-modal .afb-contact { max-height:calc(100vh - 24px); } .afb-contact { grid-template-rows:145px auto; } .afb-contact__visual { min-height:145px; } .afb-contact__content { padding-top:12px; padding-bottom:12px; } }
@media (max-width:767px) { .afb-modal { padding:8px; align-items:flex-start; overflow-y:auto; } .afb-modal__dialog { width:100%; max-height:none; margin:auto 0; } .afb-modal .afb-contact { width:100%; max-height:none; } .afb-modal__close { top:10px; right:10px; } }
@media (prefers-reduced-motion: reduce) { .afb-submit { transition:none; } }
