/* Gany.MED – gemeinsame Styles
   Schriften werden lokal geladen (keine Verbindung zu Google Fonts).
   Die .woff2-Dateien liegen in /assets/fonts/ (siehe UEBERGABE.md). */

@font-face{font-family:'Familjen Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/familjen-grotesk-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Familjen Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/familjen-grotesk-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Familjen Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/familjen-grotesk-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/ibm-plex-sans-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/ibm-plex-sans-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/ibm-plex-sans-latin-600-normal.woff2') format('woff2')}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#FAF7FB}
img{max-width:100%}
[hidden]{display:none!important}
.no-js .gm-js-only{display:none!important}
:focus-visible{outline:3px solid #C9B8EC;outline-offset:2px}
.gm-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.gm-hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}

/* ---------- Angebotsformular ---------- */
.gm-lead fieldset label:has(input:checked){border-color:#3B55A0!important;background:#EFEBF8!important}
.gm-step1,.gm-step2{display:flex;flex-direction:column;gap:18px}
.gm-step2__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:560px){.gm-step2__grid{grid-template-columns:minmax(0,1fr)}}
.gm-field{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:15px;color:#15171C}
.gm-field--wide{grid-column:1/-1}
.gm-field input,.gm-field textarea{font:inherit;font-weight:400;padding:12px;border:1.5px solid #E3DFEC;border-radius:10px;background:#FFFFFF;min-height:48px;box-sizing:border-box;color:#15171C;width:100%}
.gm-field textarea{min-height:110px;resize:vertical}
.gm-field input:focus,.gm-field textarea:focus,.gm-lead select:focus,.gm-lead input:focus{border-color:#3B55A0;outline:none;box-shadow:0 0 0 3px #DCE2F2}
.gm-field small{font-weight:400;color:#50535E;font-size:13px}
.gm-step2__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.gm-step2__head strong{font-size:17px}
.gm-summary{margin:0;font-size:14px;color:#50535E;background:#F4F1F8;border-radius:10px;padding:10px 12px}
.gm-note{margin:0;font-size:13px;color:#50535E;line-height:1.5}
.gm-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.gm-btn{font:inherit;font-weight:600;border-radius:999px;min-height:52px;padding:0 26px;cursor:pointer;font-size:16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;box-sizing:border-box}
.gm-btn--primary{background:#3B55A0;color:#FFFFFF;border:0;flex:1 1 220px}
.gm-btn--primary:hover{background:#283B72}
.gm-btn--ghost{background:#FFFFFF;color:#3B55A0;border:1.5px solid #3B55A0}
.gm-btn--ghost:hover{background:#EFEBF8}
.gm-btn[disabled]{opacity:.6;cursor:progress}
.gm-status{font-size:15px;border-radius:10px;padding:12px 14px}
.gm-status--error{background:#FDECEF;color:#8A1C33}
.gm-status--ok{background:#E8F3EC;color:#1F5A33}
.gm-success{display:flex;flex-direction:column;gap:12px;padding:8px 0}
.gm-success h3{margin:0;font-family:'Familjen Grotesk',sans-serif;font-size:26px;letter-spacing:-.02em}
.gm-success p{margin:0;color:#50535E}

/* ---------- Cookie-Banner ---------- */
.gm-consent{position:fixed;inset:0;z-index:1000;pointer-events:none;font-family:'IBM Plex Sans','Helvetica Neue',sans-serif;color:#15171C;font-size:16px;line-height:1.55}
.gm-consent__backdrop{position:absolute;inset:0;background:rgba(21,23,28,.45);pointer-events:auto}
.gm-consent__box{pointer-events:auto;position:absolute;left:50%;transform:translateX(-50%);width:min(780px,calc(100% - 24px));box-sizing:border-box;background:#FFFFFF;border-radius:24px;padding:28px 32px;box-shadow:0 24px 60px rgba(21,23,28,.22);display:flex;flex-direction:column;gap:14px;max-height:calc(100% - 24px);overflow-y:auto}
.gm-consent__box--banner{bottom:16px}
.gm-consent__box--settings{top:50%;transform:translate(-50%,-50%);width:min(760px,calc(100% - 24px))}
.gm-consent h2{margin:0;font-family:'Familjen Grotesk',sans-serif;font-weight:700;font-size:24px;letter-spacing:-.02em;display:flex;align-items:center;gap:12px}
.gm-consent p{margin:0;color:#50535E}
.gm-consent__small{font-size:15px}
.gm-consent__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px}
.gm-consent__actions .gm-btn{flex:1 1 180px;min-height:48px}
.gm-consent__actions .gm-btn--equal{background:#3B55A0;color:#FFFFFF;border:0}
.gm-consent__actions .gm-btn--equal:hover{background:#283B72}
.gm-consent__rows{display:flex;flex-direction:column;border-top:1px solid #E3DFEC}
.gm-consent__row{display:flex;flex-direction:column;gap:6px;padding:16px 0;border-bottom:1px solid #E3DFEC}
.gm-consent__rowhead{display:flex;align-items:center;gap:16px}
.gm-consent__rowhead>div{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.gm-consent__rowhead strong{font-size:17px}
.gm-consent__rowhead span{font-size:13px;color:#50535E}
.gm-consent__always{font-size:14px;font-weight:600;color:#3B55A0;white-space:nowrap}
.gm-consent__text{font-size:14px;color:#50535E}
.gm-consent__meta{font-size:13px;color:#5F626D}
.gm-switch{flex:none;display:flex;align-items:center;gap:10px;min-height:44px;padding:0 4px;border:0;background:transparent;cursor:pointer;font:inherit;font-size:14px;color:#50535E}
.gm-switch__track{position:relative;display:inline-block;width:48px;height:28px;border-radius:14px;background:#8C8F9B;transition:background .15s}
.gm-switch__knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#FFFFFF;transition:left .15s}
.gm-switch[aria-checked="true"] .gm-switch__track{background:#3B55A0}
.gm-switch[aria-checked="true"] .gm-switch__knob{left:23px}
@media (max-width:560px){.gm-consent{font-size:15px}.gm-consent__box{padding:20px 18px;border-radius:20px;gap:12px}.gm-consent__box--banner{bottom:8px}.gm-consent h2{font-size:20px}.gm-consent__small{font-size:14px}.gm-consent__actions .gm-btn{min-height:46px}}

/* ---------- Google-Maps-Karte (Zwei-Klick-Lösung) ---------- */
.gm-map{border-radius:20px;overflow:hidden;border:1px solid #E3DFEC;background:#FFFFFF;min-height:340px;display:flex}
.gm-map__placeholder{flex:1;box-sizing:border-box;padding:32px;display:flex;flex-direction:column;justify-content:center;gap:14px;background:#FFFFFF;font-family:'IBM Plex Sans','Helvetica Neue',sans-serif;color:#15171C}
.gm-map__placeholder strong{font-size:18px}
.gm-map__placeholder p{margin:0;color:#50535E;font-size:15px}
.gm-map__check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:15px;cursor:pointer}
.gm-map__check input{width:20px;height:20px;accent-color:#3B55A0;margin:0}
.gm-map__frame{flex:1;display:flex;flex-direction:column}
.gm-map__frame iframe{border:0;width:100%;flex:1;min-height:380px}
.gm-map__bar{display:flex;flex-wrap:wrap;gap:8px 20px;padding:10px 16px;font-size:14px;color:#50535E;border-top:1px solid #E3DFEC}
.gm-map__bar button{font:inherit;background:none;border:0;padding:0;color:#3B55A0;text-decoration:underline;cursor:pointer;min-height:32px}

/* ---------- Betreuungszeiten-Rechner ---------- */
.gm-calc{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:24px;align-items:stretch}
.gm-calc__card{background:#FFFFFF;border:1px solid #E3DFEC;border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:18px}
.gm-calc__card--result{background:#2D2B42;color:#FFFFFF;border-color:#2D2B42}
.gm-calc label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:15px}
.gm-calc input,.gm-calc select{font:inherit;font-weight:400;padding:12px;border:1.5px solid #E3DFEC;border-radius:10px;background:#FFFFFF;min-height:48px;color:#15171C;box-sizing:border-box;width:100%}
.gm-calc__hint{font-size:13px;font-weight:400;color:#50535E}
.gm-calc__big{font-family:'Familjen Grotesk',sans-serif;font-weight:700;font-size:clamp(40px,5vw,60px);line-height:1;letter-spacing:-.03em}
.gm-calc__unit{font-size:18px;color:#D9DCEB}
.gm-calc__split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.gm-calc__split div{background:rgba(255,255,255,.08);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.gm-calc__split span{font-size:13px;color:#D9DCEB}
.gm-calc__split strong{font-size:20px}
.gm-calc__text{margin:0;color:#D9DCEB;font-size:15px}
.gm-calc__legal{margin:0;color:#B9BCCC;font-size:13px}
.gm-calc__card--result .gm-btn{background:#F5C3D6;color:#15171C;border:0;align-self:flex-start}
.gm-calc__card--result .gm-btn:hover{background:#FFFFFF}

/* ---------- Druck (AGB) ---------- */
@media print{header,footer,.gm-consent,.gm-print-hide{display:none!important}body{background:#FFFFFF}}
