/* =====================================================================
   MHF Family Office – Basis-Stylesheet
   Das meiste Layout steckt (wie im Design-Prototyp) als Inline-Style im
   generierten HTML. Hier stehen nur Schriften, globale Regeln,
   Responsive-Verhalten und Zustände (Header, Menüs, Formular).
   Hover-/Focus-Regeln (.hv-*, .fc-*) hängt build.py automatisch an.
   ===================================================================== */

/* ---------- Schriften (lokal, DSGVO) ----------
   Gewichtsbereiche wie im Prototyp geladen (Cormorant 500–700, Mulish 400–800),
   damit z. B. font-weight:400 bei Cormorant wie im Design als 500 erscheint. */
@font-face{font-family:'Mulish';font-style:normal;font-display:swap;font-weight:400 800;src:url(../fonts/mulish-latin-ext-wght-normal.woff2) format('woff2-variations'),url(../fonts/mulish-latin-ext-wght-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Mulish';font-style:normal;font-display:swap;font-weight:400 800;src:url(../fonts/mulish-latin-wght-normal.woff2) format('woff2-variations'),url(../fonts/mulish-latin-wght-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-display:swap;font-weight:500 700;src:url(../fonts/cormorant-garamond-latin-ext-wght-normal.woff2) format('woff2-variations'),url(../fonts/cormorant-garamond-latin-ext-wght-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-display:swap;font-weight:500 700;src:url(../fonts/cormorant-garamond-latin-wght-normal.woff2) format('woff2-variations'),url(../fonts/cormorant-garamond-latin-wght-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* ---------- Global ---------- */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:#f7f4ef;font-family:'Mulish',sans-serif;-webkit-font-smoothing:antialiased;color:#1a2740;overflow-x:clip;}
a{text-decoration:none;color:inherit;}
input,textarea,select,button{font-family:inherit;}
::selection{background:#b58a45;color:#fff;}
.site [id]{scroll-margin-top:82px;}
.site #denkbeispiele{scroll-margin-top:90px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
:focus-visible{outline:2px solid #b58a45;outline-offset:2px;}

/* ---------- Header ---------- */
.site-header{background:#fff;border-bottom:1px solid #ece5d8;box-shadow:none;transform:translateY(0);transition:transform 0.3s ease,box-shadow 0.3s ease;}
.site-header.is-scrolled{border-bottom-color:#e4dcce;box-shadow:0 6px 22px rgba(19,36,63,0.08);}
.site-header.is-hidden{transform:translateY(-100%);}

/* Mega-Menü */
.mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid #e4dccd;box-shadow:0 28px 50px rgba(19,36,63,0.12);opacity:0;visibility:hidden;transform:translateY(-10px);pointer-events:none;transition:opacity 0.2s ease,transform 0.2s ease,visibility 0.2s;}
.mega.is-open{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;}
.mega-panel{display:none;}
.mega-panel.is-active{display:block;}

/* Mobile Off-Canvas */
.mobilemenu{position:fixed;top:0;right:0;height:100%;width:min(370px,87vw);background:#fff;z-index:120;flex-direction:column;transform:translateX(100%);visibility:hidden;transition:transform 0.32s cubic-bezier(.4,0,.2,1),visibility 0s linear 0.32s;box-shadow:none;}
.mobilemenu.is-open{transform:translateX(0);visibility:visible;transition:transform 0.32s cubic-bezier(.4,0,.2,1),visibility 0s;box-shadow:-24px 0 60px rgba(19,36,63,0.22);}
.backdrop{position:fixed;inset:0;background:rgba(8,16,30,0.55);z-index:110;opacity:0;visibility:hidden;transition:opacity 0.32s ease,visibility 0.32s;}
.backdrop.is-open{opacity:1;visibility:visible;}
[data-msub-toggle][aria-expanded="true"] svg{transform:rotate(180deg);}
[data-msub-panel][hidden]{display:none;}

/* ---------- Kontaktformular ---------- */
.form-success{display:none;}
.is-submitted .form-success{display:block;}
.is-submitted .form-body{display:none;}
.form-error[hidden]{display:none !important;}
button[disabled]{opacity:0.7;cursor:wait !important;}
.site input.is-invalid,.site textarea.is-invalid{border-color:#a23b2e !important;}
.site input[type=checkbox].is-invalid{outline:2px solid #a23b2e;outline-offset:1px;}

/* ============ RESPONSIVE (1:1 aus dem Prototyp) ============ */
[data-burger]{display:none;}
[data-mobilemenu]{display:none;}
[data-backdrop]{display:none;}
@media (max-width:1340px){ [data-cta-long]{display:none;} }
@media (max-width:1200px){
  [data-desktop-nav]{display:none !important;}
  [data-desktop-cta]{display:none !important;}
  [data-mega]{display:none !important;}
  [data-burger]{display:inline-flex !important;}
  [data-mobilemenu]{display:flex !important;}
  [data-backdrop]{display:block !important;}
}
@media (max-width:900px){
  .site .r-hero{grid-template-columns:1fr !important;gap:36px !important;}
  .site .r-contact{grid-template-columns:1fr !important;gap:40px !important;}
  .site .r-audience{grid-template-columns:1fr !important;gap:36px !important;}
  .site .r-side340{grid-template-columns:1fr !important;gap:42px !important;}
  .site .r-side320{grid-template-columns:1fr !important;gap:42px !important;}
  .site .r-fw{grid-template-columns:1fr !important;gap:24px !important;}
  .site .r-g4{grid-template-columns:repeat(2,1fr) !important;}
  .site .r-g3{grid-template-columns:repeat(2,1fr) !important;}
  .site .r-foot{grid-template-columns:repeat(2,1fr) !important;}
  .site .r-sticky{position:static !important;top:auto !important;}
  .site h1{font-size:44px !important;}
}
@media (max-width:600px){
  .site .r-g2,
  .site .r-g3,
  .site .r-g4,
  .site .r-g11,
  .site .r-foot{grid-template-columns:1fr !important;}
  .site .p40,
  .site .p36{padding-left:22px !important;padding-right:22px !important;}
  .site .p44,
  .site .p50{padding-left:24px !important;padding-right:24px !important;}
  .site h1{font-size:33px !important;line-height:1.12 !important;}
  .site h2{font-size:27px !important;}
  .site h3{font-size:21px !important;}
  .site blockquote{font-size:25px !important;line-height:1.3 !important;}
  .site .r-h480{height:300px !important;}
}

/* ---------- Hover/Focus (generiert aus style-hover / style-focus) ---------- */
.hv-1:hover{color:#b58a45 !important;}
.hv-2:hover{background:#8d6a2b !important;box-shadow:0 12px 26px rgba(181,138,69,0.5) !important;transform:translateY(-2px) !important;}
.hv-3:hover{color:#b58a45 !important;gap:12px !important;}
.hv-4:hover{background:#f7f4ef !important;color:#13243f !important;}
.hv-5:hover{background:#f7f4ef !important;}
.hv-6:hover{background:#8d6a2b !important;box-shadow:0 18px 38px rgba(181,138,69,0.52) !important;transform:translateY(-2px) !important;}
.hv-7:hover{background:#8d6a2b !important;color:#fff !important;border-color:#8d6a2b !important;transform:translateY(-2px) !important;}
.hv-8:hover{box-shadow:0 16px 38px rgba(19,36,63,0.08) !important;transform:translateY(-3px) !important;}
.hv-9:hover{color:#b58a45 !important;gap:10px !important;}
.hv-10:hover{background:#27497d !important;transform:translateY(-2px) !important;}
.hv-11:hover{box-shadow:0 18px 42px rgba(19,36,63,0.1) !important;transform:translateY(-3px) !important;}
.hv-12:hover{color:#cda45f !important;}
.hv-13:hover{gap:11px !important;}
.hv-14:hover{box-shadow:0 16px 38px rgba(19,36,63,0.09) !important;transform:translateY(-3px) !important;}
.hv-15:hover{border-color:#d8c39a !important;box-shadow:0 16px 34px rgba(19,36,63,0.09) !important;transform:translateY(-2px) !important;}
.hv-16:hover{background:#c79a51 !important;}
.hv-17:hover{color:#13243f !important;}
.hv-18:hover{background:#8d6a2b !important;box-shadow:0 16px 30px rgba(181,138,69,0.5) !important;transform:translateY(-2px) !important;}
.fc-1:focus{border-color:#b58a45 !important;}
