/*
 * Patrick Krisch Website
 * Datei: assets/css/contact-page.css
 * Bereich: Eigenständige Kontaktseite
 * Stand: 2026-08-18
 *
 * Nur kontaktseitenspezifische Komponenten. Gemeinsame Unterseiten-Geometrie,
 * H1-Metrik, Hero-Höhen, Main-Verlauf und Footer-Abstand liegen zentral in
 * design-system.css.
 */

.contact-page-breadcrumb{display:flex;align-items:center;gap:10px;font-size:12px;color:#52657f}.contact-page-breadcrumb a{color:var(--navy);text-decoration:none}.contact-page-breadcrumb a:hover{text-decoration:underline}.contact-page-hero-grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(430px,1.14fr);gap:54px}.contact-page-hero-copy{max-width:610px}.contact-page-accent{display:block;width:46px;height:2px;margin:24px 0;background:#089bb0}.contact-page-hero-copy p{max-width:570px;margin:0 0 15px;color:#203756;font-size:15px;line-height:1.75}.contact-page-hero-copy .contact-page-lead{font-size:25px;line-height:1.25;font-weight:800;color:var(--navy)}.contact-page-visual{position:relative;min-height:320px;isolation:isolate}.contact-page-visual::after{content:"";position:absolute;left:19%;right:6%;bottom:31px;height:34px;border-radius:50%;background:rgba(20,56,94,.13);filter:blur(20px);z-index:-1}.contact-page-wave{position:absolute;inset:30px -8% 38px 3%;opacity:.58;background:repeating-radial-gradient(ellipse at center,transparent 0 12px,rgba(52,137,215,.16) 13px 14px,transparent 15px 24px);transform:scaleY(.34) rotate(-8deg);z-index:-2}.contact-page-plane{position:absolute;left:12%;top:85px;width:96px;height:76px;background:linear-gradient(145deg,#0b2c67,#087d9b);clip-path:polygon(0 20%,100% 0,62% 100%,46% 54%);filter:drop-shadow(0 16px 16px rgba(7,49,84,.18));transform:rotate(8deg)}.contact-page-route{position:absolute;left:26%;top:124px;width:48%;height:124px;border:3px dashed rgba(7,120,145,.72);border-top-color:transparent;border-right-color:transparent;border-radius:0 0 0 80px;transform:rotate(-7deg)}.contact-page-orb{position:absolute;width:88px;height:88px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.92);border:1px solid var(--card-border);box-shadow:0 18px 34px rgba(16,59,103,.10);color:#075796}.contact-page-orb .ui-icon{width:34px;height:34px}.contact-page-orb-phone{right:24%;top:30px}.contact-page-orb-mail{right:3%;top:154px}.contact-page-orb-check{right:34%;bottom:18px;color:#0797a8}

.contact-page-section{margin-top:56px}.contact-page-section-title{margin:0;color:#092758;font-size:25px;line-height:1.2}.contact-page-section-accent{display:block;width:34px;height:2px;margin:13px 0 24px;background:#0799ab}.contact-method-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.contact-method-card{min-height:235px;padding:30px 24px;border:1px solid var(--card-border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--card-shadow);text-align:center}.contact-method-icon{width:54px;height:54px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:#f1f7fd;color:#087a9a}.contact-method-icon .ui-icon{width:25px;height:25px}.contact-method-card h3{margin:0 0 11px;color:#092758;font-size:17px}.contact-method-card p{min-height:50px;margin:0 0 15px;color:#52647f;font-size:13px;line-height:1.55}.contact-method-card a{color:#078ea3;text-decoration:none;font-weight:800}.contact-method-card strong{color:#078ea3;font-size:14px}

.contact-page-main-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px;align-items:stretch}.contact-request-card,.contact-project-box{border-radius:var(--radius)}.contact-request-card{padding:32px;border:1px solid var(--card-border);background:var(--surface);box-shadow:var(--card-shadow)}.contact-request-card h2,.contact-project-box h2{margin:0;color:#092758;font-size:25px;line-height:1.2}.contact-request-intro{margin:0 0 22px;color:#52647f;line-height:1.6}.contact-page-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.contact-page-form label>span:first-child{display:block;margin-bottom:7px;color:#092758;font-size:12px;font-weight:800}.contact-page-form-grid input,.contact-page-form-grid select,.contact-page-form-grid textarea{width:100%;border:1px solid var(--control-border);border-radius:var(--radius);background:var(--surface);color:var(--navy);font:inherit;font-size:13px;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.contact-page-form-grid input,.contact-page-form-grid select{height:44px;padding:0 12px}.contact-page-form-grid textarea{height:128px;padding:12px;resize:vertical;line-height:1.5}.contact-page-form-grid input:focus,.contact-page-form-grid select:focus,.contact-page-form-grid textarea:focus{border-color:#078ea0;box-shadow:0 0 0 3px rgba(7,142,160,.09)}.contact-page-field-full{grid-column:1/-1}

.contact-upload{position:relative;margin-top:16px;border:1px dashed #9cbad3;border-radius:var(--radius);background:var(--page-bg);transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.contact-upload.is-dragover{border-color:#078ea0;background:#f0fbfc;box-shadow:0 0 0 3px rgba(7,142,160,.08)}.contact-upload input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.contact-upload>label{display:flex;min-height:132px;flex-direction:column;align-items:center;justify-content:center;padding:22px;text-align:center;cursor:pointer}.contact-upload-icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#edf6fb;color:#078ba1;transform:rotate(-90deg)}.contact-upload-icon .ui-icon{width:19px;height:19px}.contact-upload strong{margin-top:9px;color:#092758;font-size:14px}.contact-upload small{margin-top:6px;color:#71839c;font-size:11.5px;line-height:1.45}.contact-upload-list{padding:0 18px 14px;display:grid;gap:6px}.contact-upload-file{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:var(--radius);background:var(--surface);color:#31496d;font-size:12px}.contact-upload-file button{border:0;background:none;color:#8a3d3d;cursor:pointer;font:inherit;font-weight:800}.contact-upload-note{margin:9px 0 0;color:#71839c;font-size:11.5px;line-height:1.5}.contact-honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}

.contact-page-form-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}.contact-page-privacy{display:flex;align-items:center;gap:10px;min-width:0;color:#52647f;font-size:11.5px;line-height:1.4}.contact-page-privacy a{color:#076e91;text-decoration:underline;text-underline-offset:2px}.privacy-switch{position:relative;display:inline-flex;flex:0 0 auto;width:46px;height:25px;cursor:pointer}.privacy-switch input{position:absolute;opacity:0;pointer-events:none}.privacy-switch-track{position:absolute;inset:0;border:1px solid #b9cadb;border-radius:99px;background:#eef3f8;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}.privacy-switch-track:after{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:var(--surface);box-shadow:0 2px 7px rgba(7,31,77,.18);transition:transform .18s ease}.privacy-switch input:checked+.privacy-switch-track{border-color:#058f99;background:linear-gradient(90deg,#049a96,#095ab9)}.privacy-switch input:checked+.privacy-switch-track:after{transform:translateX(21px)}.privacy-switch input:focus-visible+.privacy-switch-track{box-shadow:0 0 0 3px rgba(5,143,153,.14)}.contact-page-submit{min-height:44px;padding:0 18px;border:0;border-radius:var(--radius);background:var(--primary-gradient);color:#fff;font-size:13px;font-weight:850;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;box-shadow:0 9px 20px rgba(12,93,174,.16);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.contact-page-submit:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.03);box-shadow:0 12px 26px rgba(12,93,174,.22)}.contact-page-submit:disabled{opacity:.42;cursor:not-allowed;box-shadow:none}.contact-page-submit .ui-icon{width:16px;height:16px}.contact-page-status{margin-top:12px;padding:10px 12px;border-radius:var(--radius);font-size:12px;line-height:1.4}.contact-page-status.is-success{background:#edf9f6;color:#086b63;border:1px solid #cdece5}.contact-page-status.is-error{background:#fff4f3;color:#9b352d;border:1px solid #f0d5d1}

.contact-project-box{position:relative;overflow:hidden;padding:34px;background:linear-gradient(145deg,#061f4d 0%,#075b8e 58%,#0799a7 100%);color:#fff;box-shadow:0 16px 34px rgba(7,42,84,.18)}.contact-project-box::after{content:"";position:absolute;width:240px;height:240px;right:-82px;bottom:-90px;border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:0 0 0 28px rgba(255,255,255,.035),0 0 0 58px rgba(255,255,255,.025)}.contact-project-kicker{position:relative;z-index:1;font-size:11px;font-weight:850;letter-spacing:.12em;color:#8ce7e5}.contact-project-box h2{position:relative;z-index:1;margin-top:12px;color:#fff;font-size:30px}.contact-project-box>p{position:relative;z-index:1;margin:16px 0;color:#dce9f5;line-height:1.65}.contact-project-box ul{position:relative;z-index:1;list-style:none;padding:0;margin:24px 0;display:grid;gap:14px}.contact-project-box li{display:flex;align-items:flex-start;gap:10px;color:#fff;font-size:13px;line-height:1.5}.contact-project-box li .ui-icon{width:18px;height:18px;flex:0 0 auto;margin-top:1px;color:#74e1d8}.contact-project-phone{position:relative;z-index:1;display:inline-flex;align-items:center;gap:9px;padding:11px 14px;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius);background:rgba(255,255,255,.1);color:#fff;text-decoration:none;font-weight:800}.contact-project-phone .ui-icon{width:17px;height:17px}.contact-project-box small{position:relative;z-index:1;display:block;margin-top:15px;color:#bcd0e2;line-height:1.45}

.contact-expect-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.contact-expect-grid article{display:flex;gap:13px;align-items:flex-start}.contact-expect-grid article>.ui-icon{width:40px;height:40px;flex:0 0 auto;padding:9px;border-radius:50%;background:#eef5fb;color:#087d9b}.contact-expect-grid h3{margin:0 0 5px;color:#092758;font-size:14px}.contact-expect-grid p{margin:0;color:#52647f;font-size:12px;line-height:1.5}.contact-client-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.contact-client-grid article{position:relative;min-height:210px;padding:28px;border:1px solid var(--card-border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--card-shadow)}.contact-client-mark{position:absolute;right:24px;top:20px;color:#d7e2ee;font-size:34px;font-weight:900}.contact-client-grid h3{margin:0 0 12px;color:#092758;font-size:18px}.contact-client-grid p{margin:0 0 28px;color:#078ea3;font-weight:800}.contact-client-grid strong{display:block;color:#092758}.contact-client-grid small{display:block;margin-top:3px;color:#71839c}

@media(max-width:1040px){.contact-page-hero-grid{grid-template-columns:1fr .9fr;gap:30px}.contact-page-visual{min-height:300px}.contact-method-grid,.contact-expect-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-page-main-grid{grid-template-columns:1fr}.contact-project-box{min-height:390px}}
@media(max-width:900px){.contact-page-hero-grid{grid-template-columns:1fr;gap:10px}.contact-page-visual{min-height:285px}.contact-page-orb-phone{right:30%}.contact-client-grid{grid-template-columns:1fr}}
@media(max-width:620px){.contact-page-hero-copy p{font-size:14px}.contact-page-hero-copy .contact-page-lead{font-size:22px}.contact-page-visual{min-height:230px;margin-top:18px}.contact-page-plane{left:4%;top:62px;width:76px;height:60px}.contact-page-route{left:20%;top:94px;width:56%;height:95px}.contact-page-orb{width:64px;height:64px}.contact-page-orb .ui-icon{width:26px;height:26px}.contact-page-orb-phone{right:24%;top:20px}.contact-page-orb-mail{right:0;top:104px}.contact-page-orb-check{right:34%;bottom:7px}.contact-page-section{margin-top:38px}.contact-method-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.contact-expect-grid,.contact-page-form-grid{grid-template-columns:1fr}.contact-page-field-full{grid-column:auto}.contact-method-card{min-height:0;padding:22px 14px}.contact-method-icon{width:48px;height:48px;margin-bottom:14px}.contact-method-card h3{font-size:16px}.contact-method-card p{min-height:0;font-size:12px}.contact-method-card a,.contact-method-card strong{font-size:13px;overflow-wrap:anywhere}.contact-request-card{padding:24px}.contact-page-form-bottom{align-items:flex-start;flex-direction:column}.contact-page-submit{width:100%}.contact-project-box{min-height:0;padding:28px 24px}.contact-project-box h2{font-size:26px}.contact-expect-grid article{padding:10px 0}.contact-client-grid article{min-height:185px}}
@media(max-width:370px){.contact-method-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.contact-upload,.privacy-switch-track,.privacy-switch-track:after,.contact-page-submit,.contact-page-form-grid input,.contact-page-form-grid select,.contact-page-form-grid textarea{transition:none!important}}
