:root{
  --brand:#1599c5;
  --brand-dark:#087aa3;
  --brand-soft:#e9f6fb;
  --ink:#2b2c2c;
  --navy:#071827;
  --navy-2:#0c2435;
  --text:#4b4c4c;
  --muted:#6d6e6e;
  --line:#d9e3ea;
  --surface:#ffffff;
  --page:#f4f7fa;
  --page-2:#eef4f8;
  --success:#15803d;
  --warning:#b7791f;
  --radius:18px;
  --radius-lg:28px;
  --shadow:0 18px 48px rgba(8,24,39,.10);
  --shadow-soft:0 8px 24px rgba(8,24,39,.08);
  --max:1760px;
  --pad:clamp(22px,3.4vw,72px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;text-size-adjust:100%}
body{margin:0;background:var(--page);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:16px;line-height:1.62;letter-spacing:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}a:hover{text-decoration:none}img,svg,video,iframe{max-width:100%;height:auto}img{display:block}button,input,select,textarea{font:inherit}.skip{position:absolute;left:-9999px;top:16px;background:#fff;color:#000;padding:.7rem 1rem;border-radius:10px;z-index:999}.skip:focus{left:16px}.container,.shell,.narrow{width:min(calc(100% - (var(--pad) * 2)),var(--max));margin-inline:auto}.narrow{max-width:1180px}.site-header{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(217,227,234,.78);backdrop-filter:saturate(160%) blur(16px)}.nav-wrap{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;flex:0 0 auto}.brand-logo{width:172px;height:auto;display:block;background:transparent!important}.main-nav{display:flex;align-items:center;gap:18px;font-size:.94rem;font-weight:750;color:#172536;white-space:nowrap}.main-nav>a:not(.btn){position:relative;padding:.55rem .05rem}.main-nav>a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:.2rem;height:2px;background:var(--brand);transform:scaleX(0);transform-origin:left;transition:transform .18s ease}.main-nav>a:not(.btn):hover::after{transform:scaleX(1)}.nav-phone{color:var(--brand-dark)!important;font-weight:850}.nav-toggle{display:none;border:1px solid var(--line);background:#fff;border-radius:12px;padding:.55rem .75rem;color:var(--ink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid var(--brand);border-radius:999px;background:var(--brand);color:#fff;font-weight:850;line-height:1.1;padding:.86rem 1.18rem;box-shadow:0 10px 24px rgba(21,153,197,.22);cursor:pointer}.btn:hover{background:var(--brand-dark);border-color:var(--brand-dark);transform:translateY(-1px)}.btn-secondary{background:#fff;color:var(--ink);border-color:#c8d7df;box-shadow:none}.btn-secondary:hover{background:#f7fbfd;color:var(--brand-dark);border-color:var(--brand)}.btn-small{font-size:.88rem;padding:.62rem .9rem}.btn-light{background:#fff;color:var(--navy);border-color:#fff}.btn-ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.62);box-shadow:none}.btn-ghost-light:hover{background:rgba(255,255,255,.10);border-color:#fff;color:#fff}.eyebrow{margin:0 0 .85rem;color:var(--brand-dark);font-size:.75rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#061525 0%,#0b2234 56%,#0a4058 100%);color:#fff}.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 75% 18%,rgba(21,153,197,.24),transparent 34%),linear-gradient(90deg,rgba(6,21,37,.55),transparent 58%);pointer-events:none}.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(360px,.86fr) minmax(520px,1.14fr);gap:clamp(44px,5vw,92px);align-items:center;min-height:clamp(620px,72vh,820px);padding-block:clamp(74px,8vw,128px)}.hero-copy{max-width:760px}.hero h1,.page-hero h1{margin:.1rem 0 1.25rem;color:inherit;font-size:clamp(3.25rem,5.6vw,6.25rem);line-height:.98;font-weight:900;letter-spacing:-.022em;text-wrap:balance}.hero .lead,.page-hero .lead{max-width:760px;color:rgba(255,255,255,.82);font-size:clamp(1.08rem,1.22vw,1.34rem);line-height:1.56}.hero-actions,.cta-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin:1.65rem 0}.trust-list{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.6rem 0 0;padding:0;list-style:none}.trust-list li{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:rgba(255,255,255,.82);border-radius:999px;padding:.46rem .72rem;font-size:.84rem}.hero-visual{position:relative;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.28);background:#0b2133}.hero-visual img{width:100%;height:clamp(360px,38vw,560px);object-fit:cover;object-position:center;filter:saturate(.96) contrast(1.02)}.hero-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,21,37,0) 48%,rgba(6,21,37,.62));pointer-events:none}.hero-status-card{position:absolute;left:18px;right:18px;bottom:18px;z-index:2;border:1px solid rgba(255,255,255,.18);background:rgba(6,21,37,.76);backdrop-filter:blur(10px);border-radius:16px;padding:1rem;color:#fff}.hero-status-card strong{display:block}.hero-status-card small{display:block;color:#d5d6d6;margin-top:.15rem}.status-dot{display:inline-block;width:.64rem;height:.64rem;border-radius:50%;background:#22c55e;box-shadow:0 0 0 6px rgba(34,197,94,.18);margin-right:.5rem}.proof-strip{background:#fff;border-bottom:1px solid var(--line)}.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}.proof-grid div{padding:1.35rem 2rem;border-left:1px solid var(--line)}.proof-grid div:first-child{border-left:0}.proof-grid strong{display:block;color:var(--ink);font-size:1.02rem}.proof-grid span{display:block;color:var(--muted);font-size:.94rem;margin-top:.25rem}.section{padding:clamp(72px,7vw,118px) 0;background:var(--surface)}.section.alt{background:var(--page-2)}.section.compact{padding:0}.section-head{margin-bottom:clamp(28px,3.2vw,52px)}.section-head h2,.split h2,.faq-wrap h2,.narrow h2,.legal h2{max-width:920px;margin:.15rem 0 1rem;color:var(--ink);font-size:clamp(2.15rem,3.35vw,4.25rem);line-height:1.04;font-weight:900;letter-spacing:-.018em;text-wrap:balance}.section-head p,.split p,.narrow p{max-width:820px;color:var(--muted)}.card-grid{display:grid;gap:20px}.card-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.3rem,1.7vw,2rem);box-shadow:var(--shadow-soft);min-height:100%}.card:hover{border-color:#badce8;box-shadow:var(--shadow)}.card h2,.card h3{margin:.25rem 0 .75rem;color:var(--ink);font-size:clamp(1.25rem,1.25vw,1.65rem);line-height:1.18;letter-spacing:-.01em}.card p{color:var(--muted)}.service-card{border-top:4px solid var(--brand)}.large-card{padding:clamp(1.6rem,2.2vw,2.4rem)}.highlighted{background:linear-gradient(180deg,#fff,#f3fbfe);border-color:#a9ddeb}.mini-list,.icon-list{padding:0;margin:1rem 0;list-style:none}.mini-list li,.icon-list li{position:relative;padding:.45rem 0 .45rem 1.45rem;color:#34465a}.mini-list li::before,.icon-list li::before{content:"";position:absolute;left:0;top:.82rem;width:.48rem;height:.48rem;border-radius:50%;background:var(--brand)}.mini-list.strong li{font-weight:760;color:var(--ink)}.text-link{display:inline-flex;margin-top:.35rem;color:var(--brand-dark);font-weight:880}.text-link:hover{text-decoration:underline;text-underline-offset:4px}.split{display:grid;grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr);gap:clamp(40px,5vw,90px);align-items:start}.check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:1.4rem}.check-list span,.contact-benefits span{background:#fff;border:1px solid var(--line);border-radius:14px;padding:.95rem 1rem;font-weight:780;box-shadow:var(--shadow-soft)}.lead-magnet-stack{display:grid;gap:14px}.magnet-card{display:grid;gap:.35rem;background:linear-gradient(135deg,var(--navy),#0e3042);color:#fff;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:1.25rem 1.4rem;box-shadow:var(--shadow)}.magnet-card span{color:#d5d6d6}.magnet-card em{font-style:normal;font-weight:850;color:#7ed7f3}.pill-row{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0}.pill-row span{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.45rem .72rem;font-size:.88rem;font-weight:750;color:#4b4c4c}.location-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.location-grid a{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem;font-weight:840;color:var(--ink);box-shadow:var(--shadow-soft);text-align:center}.location-grid a:hover{border-color:var(--brand);color:var(--brand-dark)}.faq-wrap{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);gap:clamp(36px,5vw,84px)}.faq-list{display:grid;gap:12px}details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem;box-shadow:var(--shadow-soft)}summary{cursor:pointer;font-weight:850;color:var(--ink)}details p{margin:.75rem 0 0;color:var(--muted)}.page-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#071827,#0d2b3f);color:#fff;padding:clamp(84px,8vw,136px) 0}.page-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 12%,rgba(21,153,197,.22),transparent 34%);pointer-events:none}.page-hero .container,.page-hero .shell{position:relative;z-index:1}.page-hero h1{max-width:1080px}.page-hero p{max-width:840px}.page-hero--clean{background:#fff;color:var(--ink);border-bottom:1px solid var(--line)}.page-hero--clean::after{display:none}.page-hero--clean .lead,.page-hero--clean p{color:var(--muted)}.small-gap{gap:clamp(28px,4vw,64px);min-height:auto;padding-block:0}.service-hero .hero-grid,.contact-hero .hero-grid{min-height:auto}.cta-band{position:relative;overflow:hidden;background:linear-gradient(135deg,#061525 0%,#0c2638 62%,#087aa3 100%);color:#fff;padding:clamp(64px,6vw,104px) 0}.cta-band::before{content:"";position:absolute;right:-8%;top:-42%;width:42vw;height:42vw;background:radial-gradient(circle,rgba(255,255,255,.14),transparent 60%)}.cta-band-grid{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:2rem}.cta-band h2{max-width:1000px;margin:.15rem 0 1rem;font-size:clamp(2rem,3.6vw,4.3rem);line-height:1.04;letter-spacing:-.018em}.cta-band p{max-width:780px;color:#dcdddd}.site-footer{background:#06111f;color:#dcdddd;padding:clamp(56px,5.5vw,92px) 0 24px}.footer-grid{display:grid;grid-template-columns:1.35fr .85fr .85fr 1fr;gap:clamp(28px,4vw,76px)}.footer-grid h3{margin:0 0 .85rem;color:#fff;font-size:1rem}.footer-grid a{display:block;margin:.42rem 0;color:#dcdddd}.footer-grid a:hover{color:#8ddcf4}.footer-brand{display:inline-flex;margin-bottom:1rem}.footer-logo{width:190px;height:auto;background:transparent!important}.muted{color:#93a4b6}.footer-bottom{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid rgba(255,255,255,.1);margin-top:2.2rem;padding-top:1rem;font-size:.9rem;color:#9fb0bf}.insight-box,.contact-card{background:#fff;color:var(--text);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.55rem;box-shadow:var(--shadow)}.contact-card a{display:inline;color:var(--brand-dark);font-weight:850}.outcome-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.outcome-grid div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem}.outcome-grid span{display:block;color:var(--muted);font-size:.92rem;margin-top:.25rem}.step-list{padding-left:1.2rem}.step-list li{margin:.65rem 0}.timeline{display:grid;gap:14px}.timeline div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem;box-shadow:var(--shadow-soft)}.timeline span{display:block;color:var(--muted)}.article-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(36px,5vw,86px);align-items:start}.toc{position:sticky;top:104px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem;display:grid;gap:.65rem;box-shadow:var(--shadow-soft)}.toc a{color:var(--brand-dark)}.article-body{max-width:920px;font-size:1.08rem;line-height:1.72}.article-body h2{margin-top:0;color:var(--ink);font-size:clamp(1.75rem,2.4vw,2.6rem);line-height:1.14;letter-spacing:-.012em}.article-body section{margin-bottom:2.4rem}.inline-cta{background:linear-gradient(135deg,#edf8fc,#fff);border:1px solid #b6dfeb;border-radius:20px;padding:1.35rem;margin:2rem 0;box-shadow:var(--shadow-soft)}.glossary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.glossary-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem;display:grid;gap:.35rem;box-shadow:var(--shadow-soft)}.glossary-card span{color:var(--muted)}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-soft)}.compare-table{width:100%;border-collapse:collapse;min-width:760px}.compare-table th,.compare-table td{padding:1rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.compare-table th{background:#f7fafc;color:var(--ink)}.form-layout{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);gap:clamp(36px,5vw,86px)}.lead-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.25rem,2vw,2rem);box-shadow:var(--shadow)}.form-row.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:grid;gap:.42rem;margin-bottom:1rem;color:#4b4c4c;font-weight:780}input,select,textarea{width:100%;border:1px solid #c8d4df;border-radius:12px;padding:.95rem 1rem;color:var(--ink);background:#fff}input:focus,select:focus,textarea:focus{outline:3px solid rgba(21,153,197,.20);border-color:var(--brand)}.check{display:flex;align-items:flex-start;gap:.7rem;font-weight:650;color:#4b4c4c}.check input{width:auto;margin-top:.3rem}.hp{position:absolute;left:-9999px}.form-note{color:var(--muted);font-size:.92rem}.form-errors{background:#fff1f2;border:1px solid #fecdd3;border-radius:14px;padding:.85rem;margin-bottom:1rem;color:#991b1b}.legal{max-width:1120px}.legal p{font-size:1.02rem;line-height:1.72}.legal h2,.legal h3{margin-top:1.9rem;color:var(--ink)}.official-quote{font-size:1.04rem;line-height:1.68;margin:1.4rem 0;padding:1rem 1.2rem;border-left:4px solid var(--brand);background:rgba(255,255,255,.08);border-radius:14px;color:#fff}.contact-hero .official-quote{background:rgba(255,255,255,.08);color:#fff}.official-quote span{display:block;margin-top:.4rem;color:#d5d6d6}.official-copy p{margin-bottom:1rem}.notice{background:#fff8e6;border:1px solid #f5d48b;border-radius:14px;padding:1rem;margin-top:1rem;color:#7c4a03}.article-card span{display:inline-block;color:var(--brand-dark);font-weight:780;margin-bottom:.5rem}.sitemap-list{display:grid;gap:10px}.sitemap-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.95rem 1rem;box-shadow:var(--shadow-soft)}.sitemap-row span{font-weight:820;color:var(--ink)}.sitemap-row small{color:var(--muted)}
@media (max-width:1280px){.main-nav{gap:12px;font-size:.9rem}.card-grid.four,.glossary-grid{grid-template-columns:repeat(2,1fr)}.location-grid{grid-template-columns:repeat(3,1fr)}.hero-grid{grid-template-columns:1fr;min-height:auto}.hero-copy{max-width:920px}.hero-visual{max-width:980px}.footer-grid{grid-template-columns:1.2fr 1fr 1fr}}
@media (max-width:980px){:root{--pad:clamp(18px,4vw,32px)}.nav-toggle{display:block}.main-nav{position:absolute;top:78px;left:var(--pad);right:var(--pad);display:none;flex-direction:column;align-items:stretch;background:#fff;border:1px solid var(--line);border-radius:18px;padding:1rem;box-shadow:var(--shadow);white-space:normal}.main-nav.open{display:flex}.main-nav>a{padding:.7rem .75rem}.main-nav>a:not(.btn)::after{display:none}.main-nav .btn{width:100%}.hero-grid,.split,.faq-wrap,.form-layout,.article-layout,.contact-hero .hero-grid,.service-hero .hero-grid{grid-template-columns:1fr}.hero h1,.page-hero h1{font-size:clamp(2.75rem,10vw,4.75rem)}.card-grid.two,.card-grid.three,.card-grid.four,.proof-grid,.location-grid,.glossary-grid,.footer-grid{grid-template-columns:1fr}.proof-grid div{border-left:0;border-top:1px solid var(--line)}.proof-grid div:first-child{border-top:0}.cta-band-grid,.footer-bottom{flex-direction:column;align-items:flex-start}.article-body{max-width:none}.toc{position:static}.outcome-grid,.check-list{grid-template-columns:1fr}.official-quote{color:#fff}.footer-logo{width:180px}.site-footer .brand img{background:transparent}}
@media (max-width:620px){.nav-wrap{min-height:72px}.brand-logo{width:146px}.hero-grid{padding-block:54px}.hero-actions,.cta-actions{flex-direction:column;align-items:stretch}.btn{width:100%;padding:1rem 1.1rem}.trust-list li{width:100%;border-radius:14px}.hero-visual img{height:280px}.hero-status-card{left:12px;right:12px;bottom:12px;padding:.8rem}.section{padding:58px 0}.page-hero{padding:64px 0}.form-row.two{grid-template-columns:1fr}.sitemap-row{align-items:flex-start;flex-direction:column}}
@media (prefers-reduced-motion:no-preference){.btn,.card,.magnet-card,.glossary-card,.location-grid a,.sitemap-row{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,color .18s ease,background .18s ease}.btn:hover,.card:hover,.magnet-card:hover,.glossary-card:hover,.location-grid a:hover,.sitemap-row:hover{transform:translateY(-1px)}}

/* Contact and admin refinements */
.contact-hero .hero-grid{align-items:center}.contact-hero .lead{max-width:680px}.contact-card{max-width:620px;justify-self:end}.form-layout>div{max-width:560px}.form-layout p{font-size:1.02rem;line-height:1.65;color:var(--muted)}.lead-form label{min-width:0}.lead-form input,.lead-form select,.lead-form textarea{min-width:0}.form-note{margin-top:.85rem}.narrow-page{max-width:980px}.admin-login-layout{display:grid;place-items:start center}.admin-login-form{width:min(100%,560px)}.admin-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.4rem}.admin-actions form{margin:0}.admin-dashboard{display:grid;gap:28px}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.2rem;box-shadow:var(--shadow-soft)}.stat-card span{display:block;color:var(--muted);font-weight:800;margin-bottom:.45rem}.stat-card strong{display:block;color:var(--ink);font-size:clamp(1.35rem,2vw,2rem);line-height:1.1}.lead-list{display:grid;gap:16px}.lead-item{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.25rem 1.35rem;box-shadow:var(--shadow-soft)}.lead-item header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.lead-item h2{margin:.1rem 0 0;color:var(--ink);font-size:clamp(1.25rem,1.6vw,1.6rem);letter-spacing:-.01em}.lead-status{flex:0 0 auto;border:1px solid #c8d4df;border-radius:999px;padding:.38rem .65rem;font-weight:850;color:var(--brand-dark);background:#f7fbfd}.lead-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem 1rem;color:#4b4c4c}.lead-meta span{overflow-wrap:anywhere}.lead-meta a{color:var(--brand-dark);font-weight:800}.lead-message{margin:1rem 0 0;padding:1rem;border-radius:14px;background:#f7fafc;border:1px solid var(--line);white-space:pre-wrap;color:#4b4c4c}.empty-state{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.5rem;box-shadow:var(--shadow-soft)}code{background:#eef5f8;border:1px solid #d7e6ed;border-radius:6px;padding:.12rem .32rem;color:#2b2c2c}@media (max-width:980px){.contact-card{justify-self:stretch;max-width:none}.form-layout>div{max-width:none}.stats-grid,.lead-meta{grid-template-columns:1fr}.lead-item header{flex-direction:column}.admin-actions{align-items:stretch;flex-direction:column}.admin-actions .btn{width:100%}}

/* Runtime/layout fix: keep official VivAna hero image readable instead of cropping text. */
.hero-visual{background:#d9edf4;border-color:rgba(255,255,255,.26)}
.hero-visual img{height:auto;max-height:none;object-fit:contain;object-position:center center;background:#d9edf4;filter:none}
.hero-visual::after{display:none}
.hero-status-card{background:rgba(6,21,37,.84)}

/* Contact layout: no overlapping labels or helper elements, stable two-column form. */
.form-layout{align-items:start}
.form-layout>div{min-width:0;max-width:680px}
.lead-form{min-width:0}
.lead-form label{min-width:0;overflow-wrap:break-word}
.lead-form input,.lead-form select,.lead-form textarea{min-width:0;max-width:100%}
.form-errors p{margin:.25rem 0}

@media (max-width:1280px){
  .hero-visual img{width:100%;height:auto;object-fit:contain}
}
@media (max-width:620px){
  .hero-visual img{height:auto;min-height:0;object-fit:contain}
}

/* Admin center: navigation, forms and mailbox */
.admin-nav{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.4rem;align-items:center}.admin-nav a,.admin-nav-logout{display:inline-block;border:1px solid var(--line);background:#fff;border-radius:999px;padding:.42rem .9rem;font-weight:800;color:var(--brand-dark);font:inherit;font-weight:800;cursor:pointer}.admin-nav a:hover,.admin-nav-logout:hover{border-color:var(--brand);background:#f7fbfd}.admin-nav a.is-active{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}.admin-nav form{margin:0 0 0 auto}
.admin-flashes{display:grid;gap:.5rem}.admin-flash{margin:0;border-radius:14px;padding:.75rem 1rem;border:1px solid var(--line);background:#fff;font-weight:700}.admin-flash--success{border-color:#9ed3b4;background:#f2fbf6;color:#14512f}.admin-flash--error{border-color:#e3b0b0;background:#fdf5f5;color:#7a1f1f}
.admin-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.admin-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.3rem;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:.7rem}.admin-card h2{margin:0;font-size:1.2rem;color:var(--ink)}.admin-card p{margin:0;color:var(--muted)}.admin-card .btn{align-self:flex-start;margin-top:auto}.admin-card-meta{font-size:.92rem;overflow-wrap:anywhere}
.admin-hint{color:var(--muted);font-size:.92rem;overflow-wrap:anywhere}
.admin-form{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.4rem;box-shadow:var(--shadow-soft);display:grid;gap:1.4rem}.admin-form fieldset{border:0;margin:0;padding:0;display:grid;gap:.9rem}.admin-form legend{font-weight:900;color:var(--ink);font-size:1.1rem;padding:0;margin-bottom:.4rem}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.9rem}.admin-form label{display:grid;gap:.35rem;font-weight:800;color:var(--ink);min-width:0}.admin-block{grid-column:1/-1}.admin-form input,.admin-form select,.admin-form textarea{font:inherit;font-weight:500;padding:.6rem .7rem;border:1px solid var(--line);border-radius:12px;background:#fdfefe;color:var(--ink);min-width:0;width:100%}.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus{outline:2px solid var(--brand);outline-offset:1px}.admin-form textarea{resize:vertical}
.admin-mail-toolbar{display:flex;flex-wrap:wrap;gap:.8rem;align-items:end;background:#fff;border:1px solid var(--line);border-radius:16px;padding:.9rem 1rem}.admin-mail-toolbar label{display:grid;gap:.3rem;font-weight:800;color:var(--ink);min-width:0}.admin-mail-toolbar input,.admin-mail-toolbar select{font:inherit;padding:.5rem .6rem;border:1px solid var(--line);border-radius:10px;min-width:0}
.mail-list{display:grid;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.mail-row{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr) minmax(0,140px);gap:1rem;padding:.85rem 1rem;border-bottom:1px solid var(--line);color:var(--ink)}.mail-row:last-child{border-bottom:0}.mail-row:hover{background:#f7fbfd}.mail-row.is-unread{font-weight:900;background:#f4fafc}.mail-from,.mail-subject{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-date{color:var(--muted);text-align:right;font-size:.9rem}.mail-pager{align-items:center}
.mail-detail{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.3rem;box-shadow:var(--shadow-soft);display:grid;gap:1rem}.mail-headers{display:grid;gap:.35rem;margin:0}.mail-headers div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:.6rem}.mail-headers dt{font-weight:900;color:var(--muted)}.mail-headers dd{margin:0;overflow-wrap:anywhere}.mail-body{white-space:pre-wrap;word-break:break-word;font:inherit;background:#f7fafc;border:1px solid var(--line);border-radius:14px;padding:1rem;margin:0}.mail-html{width:100%;min-height:460px;border:1px solid var(--line);border-radius:14px;background:#fff}.mail-attachments ul{margin:.4rem 0 0;padding-left:1.1rem}.mail-attachments a{color:var(--brand-dark);font-weight:800}
@media (max-width:780px){.mail-row{grid-template-columns:1fr;gap:.2rem}.mail-date{text-align:left}.mail-headers div{grid-template-columns:1fr}.admin-nav form{margin-left:0}}

/* Support tickets and customer area */
.nav-login{font-weight:800;color:var(--brand-dark);padding:6px 2px}
.support-steps{list-style:none;margin:1.1rem 0 0;padding:0;display:grid;gap:.6rem;color:var(--muted)}.support-steps strong{color:var(--brand-dark);margin-right:.35rem}
.support-phone{font-size:1.35rem;font-weight:900;color:var(--brand-dark)}.contact-support-hint{margin-top:1rem;font-size:.95rem}.contact-support-hint a{color:var(--brand-dark);font-weight:800}
.ticket-list{display:grid;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}
.ticket-row{display:grid;grid-template-columns:minmax(0,160px) minmax(0,1fr) minmax(0,170px) minmax(0,140px);gap:1rem;align-items:center;padding:.9rem 1.1rem;border-bottom:1px solid var(--line);color:var(--ink)}
.ticket-row:last-child{border-bottom:0}.ticket-row:hover{background:#f7fbfd}
.ticket-row em{display:block;font-style:normal;font-weight:600;color:var(--muted);font-size:.86rem;margin-top:.15rem}
.ticket-reference{font-weight:900;color:var(--brand-dark)}.ticket-subject{font-weight:800;overflow-wrap:anywhere}
.ticket-status{justify-self:start;border:1px solid #c8d4df;border-radius:999px;padding:.3rem .7rem;font-weight:800;font-size:.86rem;background:#f7fbfd;color:var(--brand-dark)}
.ticket-date{color:var(--muted);font-size:.88rem;text-align:right}
.ticket-row.status-geschlossen{opacity:.7}.ticket-row.status-geschlossen .ticket-status{background:#f3f5f7;color:#6d6e6e;border-color:#dfe4e9}
.ticket-row.status-neu .ticket-status{background:#eef8ee;border-color:#a8d5ab;color:#1c5c2a}
.ticket-row.priority-hoch .ticket-reference,.ticket-row.priority-kritisch .ticket-reference{color:#a3350f}
.ticket-row.priority-kritisch{background:#fff8f5}
.ticket-thread{display:grid;gap:.9rem}
.ticket-message{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem 1.15rem;box-shadow:var(--shadow-soft)}
.ticket-message header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-bottom:.6rem;color:var(--muted);font-size:.9rem}
.ticket-message header strong{color:var(--ink)}
.ticket-message pre{margin:0;white-space:pre-wrap;word-break:break-word;font:inherit;color:#4b4c4c}
.ticket-message--agent{border-left:4px solid var(--brand)}
.ticket-message--customer{background:#f7fafc}
.ticket-message--system{background:#f3f5f7;color:var(--muted);font-size:.92rem}
.ticket-message.is-internal{background:#fffdf3;border-color:#e6d9a8}
.customer-hero .admin-nav{margin-top:1.3rem}
.customer-contact-card{background:#f7fbfd}
.admin-card.is-inactive{opacity:.65}
@media (max-width:860px){.ticket-row{grid-template-columns:1fr;gap:.35rem}.ticket-date{text-align:left}}
/* Header hat mit Kundenbereich-Link einen Punkt mehr: ab 1440px enger setzen. */
@media (min-width:1025px) and (max-width:1440px){.main-nav{gap:12px;font-size:.88rem}.nav-wrap{gap:16px}.main-nav .btn-small{padding:.5rem .8rem}}
@media (min-width:1025px) and (max-width:1180px){.main-nav .nav-phone{display:none}}
.lead-actions{margin-top:1rem;align-items:center}.lead-invite{margin:0;font-size:.9rem;font-weight:700;color:var(--muted)}.lead-invite input{margin-right:.4rem}
.totp-qr{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem;display:inline-block;max-width:260px}.totp-qr svg{display:block;width:100%;height:auto}
.recovery-card{border-color:var(--brand)}.recovery-codes{list-style:none;margin:.6rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem}.recovery-codes code{display:block;text-align:center;font-size:1rem;padding:.5rem;background:#f7fbfd}

/* --- Admin-Center: Konsolen-Layout mit Seitenleiste ------------------------ */
.admin-body{margin:0;background:#eef2f5;color:var(--ink)}
.admin-shell{display:grid;grid-template-columns:274px minmax(0,1fr);min-height:100vh}
.admin-sidebar{position:sticky;top:0;align-self:start;height:100vh;display:flex;flex-direction:column;gap:1rem;background:#0b2234;color:#e8e9e9;padding:1.1rem 1rem 1.2rem;overflow-y:auto}
.admin-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.admin-brand{display:grid;gap:.3rem;color:inherit;text-decoration:none}
.admin-brand img{width:140px;height:auto;filter:brightness(0) invert(1)}
.admin-brand span{font-size:.74rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#b6b7b7}
.admin-sidebar-toggle{display:none;background:transparent;border:1px solid #2b4b63;color:#e8e9e9;border-radius:10px;font-size:1.1rem;padding:.3rem .6rem;cursor:pointer}
.admin-sidebar-nav{display:grid;gap:.15rem;flex:1 1 auto}
.admin-sidebar-label{margin:1rem 0 .3rem;padding-left:.65rem;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#9a9b9b}
.admin-sidebar-nav a{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;border-radius:10px;color:#d5d6d6;text-decoration:none;font-weight:700;font-size:.95rem}
.admin-sidebar-nav a:hover{background:#13314a;color:#fff}
.admin-sidebar-nav a.is-active{background:var(--brand);color:#fff}
.admin-nav-icon{width:1.15rem;text-align:center;opacity:.85;font-size:.95rem}
.admin-badge{margin-left:auto;min-width:1.5rem;text-align:center;background:#1d4864;color:#fff;border-radius:999px;padding:.1rem .45rem;font-size:.78rem;font-weight:800}
.admin-sidebar-nav a.is-active .admin-badge{background:rgba(255,255,255,.25)}
.admin-badge.is-urgent{background:#b8451f}
.admin-sidebar-foot{border-top:1px solid #1c3a52;padding-top:.9rem;display:grid;gap:.5rem;font-size:.86rem;color:#b6b7b7}
.admin-sidebar-user strong{color:#fff}
.admin-sidebar-link{color:#7fb9d6;font-weight:700;text-decoration:none}
.admin-sidebar-link:hover{text-decoration:underline}
.admin-sidebar-foot form{margin:0}
.admin-sidebar-logout{width:100%;background:transparent;border:1px solid #2b4b63;color:#e8e9e9;border-radius:10px;padding:.5rem .8rem;font:inherit;font-weight:800;cursor:pointer}
.admin-sidebar-logout:hover{background:#13314a}

.admin-main{min-width:0;display:flex;flex-direction:column}
.admin-topbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);padding:1.5rem clamp(1rem,3vw,2.4rem) 1.3rem}
.admin-eyebrow{margin:0 0 .3rem;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.admin-topbar h1{margin:0;font-size:clamp(1.6rem,2.6vw,2.2rem);letter-spacing:-.02em;color:var(--ink)}
.admin-content{padding:clamp(1.2rem,2.6vw,2rem) clamp(1rem,3vw,2.4rem) 3rem;display:grid;gap:1.4rem;align-content:start;max-width:1500px}
.admin-content>.lead{margin:0;max-width:900px;color:var(--muted);font-size:1.02rem}
.admin-content .stats-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.admin-content .lead-meta{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.admin-content .admin-form,.admin-content .ticket-thread,.admin-content .mail-detail{max-width:1100px}
.admin-content .admin-cards{align-items:start}
@media (max-width:1080px){
  .admin-shell{grid-template-columns:1fr}
  .admin-sidebar{position:static;height:auto;padding-bottom:.8rem}
  .admin-sidebar-toggle{display:block}
  .admin-sidebar-nav,.admin-sidebar-foot{display:none}
  .admin-sidebar.is-open .admin-sidebar-nav{display:grid}
  .admin-sidebar.is-open .admin-sidebar-foot{display:grid}
}
.setup-storage-warning{margin-bottom:1rem}.setup-storage-warning code{word-break:break-all}
.admin-todo{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;background:#fdf5f5;border:1px solid #e3b0b0;border-left:5px solid #b8451f;border-radius:16px;padding:1.1rem 1.3rem}
.admin-todo h2{margin:0 0 .35rem;font-size:1.12rem;color:#7a1f1f}.admin-todo p{margin:0;color:#6b3a33;max-width:70ch}.admin-todo .btn{flex:0 0 auto}
.admin-warn{color:#b8451f}
.admin-login-form .admin-flashes{margin-bottom:.4rem}

/* --- Hero: heller Auftakt, der an den weißen Header anschließt -------------- */
.hero{
  background:
    radial-gradient(120% 90% at 88% 0%, rgba(21,153,197,.14) 0%, rgba(21,153,197,0) 58%),
    radial-gradient(90% 70% at 0% 100%, rgba(8,122,163,.10) 0%, rgba(8,122,163,0) 60%),
    linear-gradient(180deg,#ffffff 0%,#f2f7fb 52%,#eaf2f8 100%);
  color:var(--ink);
  border-bottom:1px solid var(--line);
}
.hero::before{
  /* feines Raster statt harter Farbfläche */
  background-image:linear-gradient(rgba(12,23,36,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(12,23,36,.045) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(120% 85% at 70% 10%,#000 0%,transparent 72%);
  mask-image:radial-gradient(120% 85% at 70% 10%,#000 0%,transparent 72%);
  opacity:.7;
}
.hero .lead{color:var(--text)}
.hero .eyebrow{color:var(--brand-dark)}
.hero .btn-secondary{background:#fff;border-color:#c3d6e0;color:var(--ink)}
.hero .btn-secondary:hover{border-color:var(--brand);color:var(--brand-dark)}
.hero .trust-list li{
  border:1px solid var(--line);
  background:rgba(255,255,255,.86);
  color:#5c5d5d;
  box-shadow:var(--shadow-soft);
}
.hero-visual{
  border:1px solid var(--line);
  background:#fff;
  box-shadow:0 26px 60px rgba(8,24,39,.14);
}
.hero-visual img{filter:none}
.hero-visual::after{background:linear-gradient(180deg,rgba(6,21,37,0) 52%,rgba(6,21,37,.34))}
.hero-status-card{
  border:1px solid rgba(255,255,255,.72);
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  color:var(--ink);
  box-shadow:var(--shadow-soft);
}
.hero-status-card small{color:var(--muted)}
.hero-status-card .status-dot{background:var(--success);box-shadow:0 0 0 4px rgba(21,128,61,.14)}
@media (prefers-reduced-motion:no-preference){
  .hero-visual{transition:transform .25s ease,box-shadow .25s ease}
  .hero-visual:hover{transform:translateY(-2px);box-shadow:0 32px 72px rgba(8,24,39,.18)}
}

/* Unterseiten-Hero im gleichen hellen Auftakt wie die Startseite */
.page-hero:not(.page-hero--clean){
  background:
    radial-gradient(110% 90% at 85% 0%, rgba(21,153,197,.13) 0%, rgba(21,153,197,0) 58%),
    linear-gradient(180deg,#ffffff 0%,#f2f7fb 60%,#eaf2f8 100%);
  color:var(--ink);
  border-bottom:1px solid var(--line);
}
.page-hero:not(.page-hero--clean)::after{
  background:radial-gradient(circle at 82% 12%,rgba(21,153,197,.10),transparent 38%);
}
.page-hero:not(.page-hero--clean) .lead,
.page-hero:not(.page-hero--clean) p{color:var(--text)}
.page-hero:not(.page-hero--clean) .official-quote{
  background:rgba(255,255,255,.9);
  border:1px solid var(--line);
  border-left:4px solid var(--brand);
  color:var(--ink);
  box-shadow:var(--shadow-soft);
}
.page-hero:not(.page-hero--clean) .official-quote span{color:var(--muted)}
.page-hero:not(.page-hero--clean) .trust-list li,
.page-hero:not(.page-hero--clean) .hero-meta li{
  border:1px solid var(--line);
  background:rgba(255,255,255,.86);
  color:#5c5d5d;
}
.page-hero:not(.page-hero--clean) .btn-secondary{background:#fff;border-color:#c3d6e0;color:var(--ink)}
.page-hero:not(.page-hero--clean) .btn-ghost-light{color:var(--ink);border-color:#c3d6e0}
.page-hero:not(.page-hero--clean) .btn-ghost-light:hover{background:#f7fbfd;color:var(--brand-dark);border-color:var(--brand)}
.page-hero:not(.page-hero--clean) .btn-light{background:var(--brand);border-color:var(--brand);color:#fff}
.page-hero:not(.page-hero--clean) .btn-light:hover{background:var(--brand-dark);border-color:var(--brand-dark)}
.admin-pending-list{margin:.6rem 0 0;padding-left:1.1rem;color:#5c5d5d;font-size:.92rem}.admin-pending-list a{color:var(--brand-dark);font-weight:800}
/* Checkboxen im Adminformular nicht stapeln, sondern in einer Zeile */
.admin-form label.check{display:flex;align-items:flex-start;gap:.55rem;font-weight:700;color:var(--text)}
.admin-form label.check input{width:auto;flex:0 0 auto;margin-top:.15rem}

/* --- Schriftfarben durchgängig aus dem Logo-Grau --------------------------- */
/* Auch Links und Kicker laufen auf der neutralen Skala; erkennbar bleiben sie
   über Gewicht und Unterstreichung, die Markenfarbe bleibt Flächen und Buttons
   vorbehalten. */
.eyebrow,.hero .eyebrow,.page-hero .eyebrow{color:var(--muted)}
.nav-phone{color:var(--ink)!important}
.nav-login,.support-phone,.support-steps strong,.ticket-reference,.article-card span{color:var(--ink)}
.text-link,.contact-card a,.toc a,.lead-meta a,.mail-attachments a,
.contact-support-hint a,.admin-pending-list a,.legal a,.article-body a{
  color:var(--ink);
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-color:#b6b7b7;
  text-decoration-thickness:1px;
}
.text-link:hover,.contact-card a:hover,.toc a:hover,.lead-meta a:hover,.mail-attachments a:hover,
.contact-support-hint a:hover,.admin-pending-list a:hover,.legal a:hover,.article-body a:hover{
  color:#000;
  text-decoration-color:#6d6e6e;
}
.lead-status,.ticket-status{color:var(--text)}
.btn-secondary:hover,.hero .btn-secondary:hover,
.page-hero:not(.page-hero--clean) .btn-ghost-light:hover{color:var(--ink)}
.location-grid a:hover{color:var(--ink)}
.admin-nav a,.admin-nav-logout{color:var(--ink)}
.admin-sidebar-link{color:#d5d6d6}

/* --- Überschriften im Logo-Grau -------------------------------------------
   Der Kunde möchte alle Schriften in der Logofarbe. Damit die Seite dabei nicht
   eintönig wirkt, entsteht die Hierarchie über Größe, Gewicht und Struktur:
   Kicker mit Linie, Überschriften mit kurzer Unterstreichung, Fließtext eine
   Spur dunkler für ruhiges Lesen. */
h1,h2,h3,h4,h5,h6,
.hero h1,.page-hero h1,.admin-topbar h1{color:#6d6e6e}
body,.hero .lead,.page-hero .lead,p,li,dd,td,th{color:#6d6e6e}
.eyebrow{display:flex;align-items:center;gap:.6rem;color:#6d6e6e}
.eyebrow::before{content:"";flex:0 0 auto;width:26px;height:2px;background:#6d6e6e;opacity:.55}
.section h2,.split h2,.faq-wrap h2,.form-layout h2{position:relative;padding-bottom:.55rem}
.section h2::after,.split h2::after,.faq-wrap h2::after,.form-layout h2::after{
  content:"";position:absolute;left:0;bottom:0;width:56px;height:3px;border-radius:2px;background:#6d6e6e;opacity:.35;
}
.hero h1,.page-hero h1{letter-spacing:-.025em}
.card h3,.admin-card h2,.stat-card strong{color:#6d6e6e}
.admin-sidebar h1,.admin-sidebar-nav a{color:inherit}
/* Auf den dunklen Flächen bleibt die Schrift hell – gleiche Grau-Familie, nur
   aufgehellt, damit der Kontrast stimmt. */
.admin-sidebar,.admin-sidebar p,.admin-sidebar li{color:#dcdddd}
.admin-sidebar-label{color:#9a9b9b}
.admin-sidebar-user{color:#b6b7b7}
.admin-sidebar-user strong{color:#fff}
.admin-sidebar-nav a{color:#d5d6d6}
.admin-sidebar-nav a:hover{color:#fff}
.admin-sidebar-nav a.is-active{color:#fff}
.cta-band,.cta-band p,.cta-band h2,.site-footer,.site-footer p,.site-footer h3,.site-footer a{color:#e8e9e9}
.site-footer .muted{color:#b6b7b7}

/* --- Terminbuchung ---------------------------------------------------------- */
.booking-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.booking-type{display:grid;gap:.25rem;background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem 1.1rem;color:var(--ink);text-decoration:none;box-shadow:var(--shadow-soft)}
.booking-type strong{font-size:1.05rem}.booking-type span{color:var(--muted);font-size:.9rem;font-weight:700}
.booking-type em{font-style:normal;color:var(--muted);font-size:.9rem;margin-top:.2rem}
.booking-type:hover{border-color:var(--brand)}
.booking-type.is-active{border-color:var(--brand);box-shadow:0 0 0 2px rgba(21,153,197,.18),var(--shadow-soft)}
.booking-days{display:grid;gap:1rem;max-height:420px;overflow-y:auto;padding-right:.4rem}
.booking-day h3{margin:0 0 .5rem;font-size:1rem}
.booking-slots{display:flex;flex-wrap:wrap;gap:.5rem}
.booking-slot{position:relative;margin:0}
.booking-slot input{position:absolute;opacity:0;width:0;height:0}
.booking-slot span{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:.45rem .85rem;background:#fff;font-weight:800;cursor:pointer}
.booking-slot input:checked + span{background:var(--brand);border-color:var(--brand);color:#fff}
.booking-slot input:focus-visible + span{outline:2px solid var(--brand);outline-offset:2px}
.availability-table{width:100%;border-collapse:collapse}
.availability-table th,.availability-table td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid var(--line);vertical-align:middle}
.availability-window{display:flex;align-items:center;gap:.4rem}
.availability-window input{width:auto;min-width:6.5rem}
.availability-window span{color:var(--muted);font-size:.85rem}
.appointment-type-row{padding-bottom:.8rem;border-bottom:1px solid var(--line);margin-bottom:.4rem}
.availability-preview{display:grid;gap:.35rem;font-size:.92rem}
.availability-preview span{color:var(--muted)}
@media (max-width:720px){.availability-table th,.availability-table td{display:block;border-bottom:0}.availability-table tr{display:block;border-bottom:1px solid var(--line);padding:.5rem 0}}
.availability-table td{width:auto}
.availability-table input[type="checkbox"]{width:auto}
.availability-window input{flex:0 0 auto}
.topic-choices{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.4rem}
.topic-choice{position:relative;margin:0}
.topic-choice input{position:absolute;opacity:0;width:0;height:0}
.topic-choice span{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:.45rem .85rem;background:#fff;font-weight:700;cursor:pointer;font-size:.94rem}
.topic-choice input:checked + span{background:var(--brand);border-color:var(--brand);color:#fff}
.topic-choice input:focus-visible + span{outline:2px solid var(--brand);outline-offset:2px}
.appointment-types{display:grid;gap:1rem}
.appointment-type-form{display:grid;gap:.7rem;padding:1rem;border:1px solid var(--line);border-radius:14px;background:#fdfefe}
.appointment-type-form.is-new{border-style:dashed;background:#f7fbfd}
.appointment-type-form h3{margin:0;font-size:1rem}
.appointment-type-form .admin-actions{margin-top:0}

/* --- Kalenderraster für die Verfügbarkeitsvorschau -------------------------- */
.calendar{display:grid;gap:6px;margin-top:.6rem}
.calendar-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.calendar-head span{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:center}
.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.calendar-day{display:grid;align-content:start;gap:.15rem;min-height:82px;padding:.5rem .55rem;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:.82rem}
.calendar-date{font-weight:900;color:var(--ink)}
.calendar-count{font-weight:800;color:#1c5c2a}
.calendar-times{color:var(--muted);font-size:.76rem}
.calendar-note{color:var(--muted);font-size:.76rem}
.calendar-booked{margin-top:.1rem;font-size:.74rem;font-weight:800;color:var(--brand-dark)}
.calendar-day.is-free{background:#f2fbf6;border-color:#a8d5ab}
.calendar-day.is-empty{background:#fafbfc}
.calendar-day.is-blocked{background:#fdf5f5;border-color:#e3b0b0}
.calendar-day.is-blocked .calendar-note{color:#7a1f1f}
.calendar-day.is-outside{opacity:.35}
.calendar-day.is-today{box-shadow:0 0 0 2px var(--brand)}
.calendar-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.8rem;font-size:.82rem;color:var(--muted)}
.calendar-key{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid var(--line);margin-left:.6rem}
.calendar-key.is-free{background:#f2fbf6;border-color:#a8d5ab}
.calendar-key.is-empty{background:#fafbfc}
.calendar-key.is-blocked{background:#fdf5f5;border-color:#e3b0b0}
.calendar-key.is-today{box-shadow:0 0 0 2px var(--brand)}
@media (max-width:760px){
  .calendar-head{display:none}
  .calendar-week{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calendar-day.is-outside{display:none}
  .calendar-day{min-height:auto}
}
