/* ═══ Hausarztpraxis Kotljar — Stylesheet ═══ */
    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    html{scroll-behavior:smooth;scrollbar-gutter:stable}
    body{font-family:'Segoe UI',Arial,sans-serif;background:#f5f8fb;color:#2c3e50;line-height:1.7;display:flex;flex-direction:column;min-height:100vh}
    a{color:inherit;text-decoration:none}
    :root{
      --p:#1a5f8a;--pd:#134672;--acc:#27ae60;--warn:#e74c3c;
      --or:#f39c12;--pur:#8e44ad;--light:#eaf3fa;--brd:#d1e3f0;--r:10px
    }

    /* ── Topbar ── */
    #topbar{background:var(--pd);color:#fff;font-size:.81rem;padding:6px 20px;
      display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}
    #topbar a{color:#a8d8f0}
    #topbar a:hover{color:#fff}

    /* ── Header ── */
    header{background:var(--p);color:#fff;position:sticky;top:0;z-index:900;
      box-shadow:0 2px 8px rgba(0,0,0,.25)}
    .hdr{max-width:1100px;margin:0 auto;padding:0 20px;display:flex;
      align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;min-height:64px}
    .logo{display:flex;align-items:center;gap:12px;cursor:pointer}
    .logo-ic{width:44px;height:44px;background:#fff;border-radius:50%;
      display:flex;align-items:center;justify-content:center;font-size:1.5rem}
    .logo-ic svg{width:24px;height:24px;display:block}
    .logo-tx strong{font-size:1.05rem;display:block;line-height:1.2}
    .logo-tx span{font-size:.77rem;opacity:.85}
    nav{display:flex;gap:3px;flex-wrap:wrap}
    nav button{background:transparent;border:2px solid transparent;color:#fff;
      padding:7px 15px;border-radius:6px;cursor:pointer;font-size:.88rem;font-weight:500;
      transition:background .2s,border-color .2s}
    nav button:hover{background:rgba(255,255,255,.15)}
    nav button.active{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.55)}

    /* ── Pages ── */
    .page{display:none}
    .page.visible{display:block;flex:1 0 auto}

    /* ── HERO ── */
    .hero{background:linear-gradient(135deg,#0d3655 0%,var(--p) 55%,#2980b9 100%);color:#fff;overflow:hidden}
    .hero-in{max-width:1100px;margin:0 auto;padding:52px 24px 50px;
      display:grid;grid-template-columns:280px 1fr;gap:52px;align-items:center}
    .hero-photo-frame{width:260px;height:308px;border-radius:16px;overflow:hidden;
      border:4px solid rgba(255,255,255,.3);box-shadow:0 14px 45px rgba(0,0,0,.4);
      position:relative;flex-shrink:0;background:#c9dde9}
    .hero-photo-frame img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
    .hero-badge{position:absolute;bottom:0;left:0;right:0;
      background:linear-gradient(transparent,rgba(26,95,138,.85));
      color:#fff;text-align:center;padding:22px 10px 12px;font-size:.78rem;font-weight:600;letter-spacing:.4px}
    .hero-tx h1{font-size:2rem;font-weight:700;line-height:1.2;margin-bottom:14px}
    .hero-sub{font-size:1rem;opacity:.83;margin-bottom:22px;line-height:1.65}
    .hero-name{font-size:1.25rem;font-weight:700;border-left:4px solid var(--acc);padding-left:14px;margin-bottom:5px}
    .hero-spec{font-size:.88rem;padding-left:18px;opacity:.78;margin-bottom:26px}
    .hero-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;
      background:rgba(255,255,255,.16);min-width:218px;
      border:2px solid rgba(255,255,255,.45);color:#fff;padding:10px 22px;border-radius:8px;
      font-weight:600;font-size:.9rem;cursor:pointer;transition:background .2s}
    .hero-cta:hover{background:rgba(255,255,255,.26)}
    .hero-cta-row{display:flex;flex-wrap:wrap;gap:12px}

    /* ── Upcoming closure notice ── */
    #sonder-notice{display:none;max-width:900px;margin:8px auto 0;
      background:#eafaf1;border:1.5px solid #82c99a;border-top:3px solid #1a7a40;border-radius:var(--r);
      padding:14px 20px;align-items:flex-start;gap:14px;
      box-shadow:0 3px 12px rgba(39,174,96,.15)}
    #sonder-notice.show{display:flex}
    #upcoming-notice{display:none;max-width:900px;margin:8px auto 0;
      background:#fff8e1;border:1.5px solid #f0c040;border-top:3px solid #a08000;border-radius:var(--r);
      padding:14px 20px;display:none;align-items:flex-start;gap:14px;
      box-shadow:0 3px 12px rgba(240,192,64,.25)}
    #upcoming-notice.show{display:flex}
    .un-icon{font-size:1.7rem;flex-shrink:0;margin-top:1px}
    .un-body strong{color:#7d6000;display:block;font-size:.97rem;margin-bottom:2px}
    .un-body p{font-size:.87rem;color:#8a7000;margin:0}

    /* ── Erkältungssymptome / Infektionssprechstunde ── */
    #infect-notice{max-width:900px;margin:18px auto 0;
      background:#fdecea;border:1.5px solid var(--warn);border-top:3px solid #a82a20;border-radius:var(--r);
      padding:14px 20px;display:flex;align-items:flex-start;gap:14px;
      box-shadow:0 3px 12px rgba(231,76,60,.18)}
    .in-icon{font-size:1.7rem;flex-shrink:0;margin-top:1px}
    .in-body strong{color:#a82a20;display:block;font-size:.97rem;margin-bottom:2px}
    .in-body p{font-size:.87rem;color:#a82a20;margin:0}

    /* ── Akute Beschwerden bis 10 Uhr ── */
    #acute-notice{max-width:900px;margin:8px auto 0;
      background:#e8f4fd;border:1.5px solid #7bb8d8;border-top:3px solid #1a5f8a;border-radius:var(--r);
      padding:14px 20px;display:flex;align-items:flex-start;gap:14px;
      box-shadow:0 3px 12px rgba(26,95,138,.15)}
    .ac-icon{font-size:1.7rem;flex-shrink:0;margin-top:1px}
    .ac-body strong{color:#1a4d7a;display:block;font-size:.97rem;margin-bottom:2px}
    .ac-body p{font-size:.87rem;color:#1a4d7a;margin:0}
    .ac-body a{color:#1a4d7a;font-weight:600;text-decoration:underline}

    /* ── Status Banner ── */
    #status-banner{max-width:900px;margin:8px auto 0;border-radius:var(--r);
      padding:18px 22px;display:flex;align-items:flex-start;gap:15px;
      box-shadow:0 4px 20px rgba(0,0,0,.14);position:relative;z-index:10}
    #status-banner.open    {background:#eafaf1;border-top:3px solid var(--acc)}
    #status-banner.closed  {background:#fdf2f2;border-top:3px solid var(--warn)}
    #status-banner.vacation{background:#fdf2f2;border-top:3px solid var(--warn)}
    #status-banner.urgent  {background:#fdf2f2;border-top:3px solid var(--warn)}
    #status-banner.break   {background:#fff8e6;border-top:3px solid #e67e22}
    #status-banner.holiday {background:#fdf2f2;border-top:3px solid var(--warn)}
    #status-banner.weekend {background:#fdf2f2;border-top:3px solid var(--warn)}
    .st-icon{font-size:2rem;flex-shrink:0;margin-top:2px}
    .st-body{flex:1}
    .st-body h3{font-size:1.03rem;font-weight:700;margin-bottom:3px}
    .st-body p{font-size:.89rem;color:#555;margin:0}


    /* ── Section ── */
    .section{max-width:1100px;margin:0 auto;padding:50px 22px}
    .sec-ttl{font-size:1.5rem;font-weight:700;color:var(--p);margin-bottom:8px}
    .sec-ttl::after{content:'';display:block;width:46px;height:4px;
      background:var(--acc);border-radius:2px;margin-top:8px}
    .sec-sub{color:#666;margin-bottom:28px;font-size:.94rem}


    /* ── Info Grid ── */
    .igrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
    .icard{background:#fff;border:1px solid var(--brd);border-radius:var(--r);
      padding:22px;box-shadow:0 2px 8px rgba(0,0,0,.06);position:relative;
      transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s ease,border-color .3s ease}
    .icard::before,.icard::after{content:"";position:absolute;width:0;height:0;
      border:1.5px solid transparent;border-radius:inherit;pointer-events:none;
      transition:height .22s ease-in,width .22s ease-in .22s}
    .icard::before{top:0;left:0;border-top-color:var(--p);border-right-color:var(--p)}
    .icard::after{bottom:0;right:0;border-bottom-color:var(--p);border-left-color:var(--p)}
    .icard:hover{transform:translateY(-4px);border-color:var(--p);box-shadow:0 14px 28px rgba(26,95,138,.18)}
    .icard:hover::before,.icard:hover::after{width:100%;height:100%;
      transition:width .22s ease-out,height .22s ease-out .22s}
    .icard h4{color:var(--p);font-size:.95rem;margin-bottom:12px;display:flex;align-items:center;gap:8px}
    .icard.wide{grid-column:1/-1}

    /* ── Spargesetz-Hinweis (Beitragssatzstabilisierungsgesetz) ── */
    #spar-notice{background:#fff6e9;border:1.5px solid #f0c878;border-top:3px solid var(--or)}
    #spar-notice .sp-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
    #spar-notice .sp-head .ic{font-size:1.5rem;flex-shrink:0}
    #spar-notice h4{color:#8a5000;margin:0}
    #spar-notice p{font-size:.87rem;color:#5a4626;line-height:1.7;margin:0 0 12px}
    #spar-notice strong{color:#3d2f14}
    #spar-notice h5{font-size:.9rem;color:#8a5000;font-weight:700;margin:16px 0 6px}
    .spar-box{background:#fff;border:1.5px solid #f0c878;border-radius:8px;
      padding:14px 18px;margin-top:14px;display:flex;gap:12px;align-items:flex-start}
    .spar-box .ic{font-size:1.25rem;flex-shrink:0;margin-top:1px}
    .spar-box strong{display:block;color:#8a5000;font-size:.9rem;margin-bottom:4px}
    .spar-box p{color:#5a4626;font-size:.86rem;margin:0}
    .spar-src{font-size:.75rem;color:#a08a5c!important;margin:14px 0 0;font-style:italic;
      border-top:1px dashed #f0c878;padding-top:10px}
    .icard table{width:100%;border-collapse:collapse;font-size:.87rem}
    .icard td{padding:5px 0;border-bottom:1px solid #f0f0f0;vertical-align:top}
    .icard td:first-child{font-weight:600;width:112px;color:#444;padding-right:12px}
    .icard td:last-child{color:#555}
    .today-row td{color:var(--p)!important;font-weight:700!important}

    /* ── Map ── */
    .map-wrap{border-radius:var(--r);overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.12)}
    .map-wrap iframe{display:block;width:100%;height:360px;border:0}
    .map-consent{height:360px;display:flex;flex-direction:column;align-items:center;
      justify-content:center;text-align:center;background:linear-gradient(135deg,var(--light),#dcebf5);
      padding:20px}

    /* ── Team ── */
    .tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
    .tcard{background:#fff;border-radius:var(--r);overflow:hidden;border:1.5px solid transparent;
      box-shadow:0 2px 12px rgba(0,0,0,.08);text-align:center;position:relative;
      transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s ease,border-color .3s ease}
    .tcard::before,.tcard::after{content:"";position:absolute;width:0;height:0;
      border:1.5px solid transparent;border-radius:inherit;pointer-events:none;
      transition:height .22s ease-in,width .22s ease-in .22s}
    .tcard::before{top:0;left:0;border-top-color:var(--p);border-right-color:var(--p)}
    .tcard::after{bottom:0;right:0;border-bottom-color:var(--p);border-left-color:var(--p)}
    .tcard:hover{transform:translateY(-4px);border-color:var(--p);box-shadow:0 14px 28px rgba(26,95,138,.18)}
    .tcard:hover::before,.tcard:hover::after{width:100%;height:100%;
      transition:width .22s ease-out,height .22s ease-out .22s}
    .tavatar{height:300px;overflow:hidden;display:flex;align-items:center;
      justify-content:center;background:linear-gradient(135deg,var(--light),#c9e4f6);font-size:8rem}
    .tavatar img{width:100%;height:100%;object-fit:cover;object-position:top center;
      transition:transform .3s cubic-bezier(.4,0,.2,1)}
    .tcard:hover .tavatar img{transform:scale(1.08)}
    .tinfo{padding:16px 14px 20px}
    .tinfo strong{display:block;font-size:1rem;color:var(--p)}
    .tinfo .role{font-size:.82rem;color:#777;margin-bottom:8px}
    .tinfo p{font-size:.81rem;color:#888;line-height:1.5}

    /* ── Leistungen ── */
    .lgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
    .lbox{background:#fff;border:1px solid var(--brd);border-radius:var(--r);
      padding:18px;box-shadow:0 2px 6px rgba(0,0,0,.05);display:flex;gap:12px;align-items:flex-start;
      position:relative;
      transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s ease,border-color .3s ease}
    .lbox::before,.lbox::after{content:"";position:absolute;width:0;height:0;
      border:1.5px solid transparent;border-radius:inherit;pointer-events:none;
      transition:height .22s ease-in,width .22s ease-in .22s}
    .lbox::before{top:0;left:0;border-top-color:var(--p);border-right-color:var(--p)}
    .lbox::after{bottom:0;right:0;border-bottom-color:var(--p);border-left-color:var(--p)}
    .lbox:hover{transform:translateY(-4px);border-color:var(--p);box-shadow:0 14px 28px rgba(26,95,138,.18)}
    .lbox:hover::before,.lbox:hover::after{width:100%;height:100%;
      transition:width .22s ease-out,height .22s ease-out .22s}
    .lico{font-size:1.65rem;flex-shrink:0;margin-top:2px;transition:transform .3s cubic-bezier(.4,0,.2,1)}
    .lbox:hover .lico{transform:scale(1.15)}
    .lbox h4{font-size:.92rem;color:var(--p);margin-bottom:4px}
    .lbox p{font-size:.82rem;color:#666;line-height:1.5}
    .lbox ul{list-style:none;margin:0;padding:0;font-size:.82rem;color:#666;line-height:1.6}
    .lbox ul li{position:relative;padding-left:13px}
    .lbox ul li+li{margin-top:2px}
    .lbox ul li::before{content:"";position:absolute;left:0;top:.62em;width:4px;height:4px;border-radius:50%;background:var(--p)}

    /* ── Downloads: Karten-Kategorien ── */
    .dgridA{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
    .dcardA{background:#fff;border:1px solid var(--brd);border-radius:var(--r);
      padding:18px 20px;box-shadow:0 2px 6px rgba(0,0,0,.05);position:relative;
      transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s ease,border-color .3s ease}
    .dcardA::before,.dcardA::after{content:"";position:absolute;width:0;height:0;
      border:1.5px solid transparent;border-radius:inherit;pointer-events:none;
      transition:height .22s ease-in,width .22s ease-in .22s}
    .dcardA::before{top:0;left:0;border-top-color:var(--p);border-right-color:var(--p)}
    .dcardA::after{bottom:0;right:0;border-bottom-color:var(--p);border-left-color:var(--p)}
    .dcardA:hover{transform:translateY(-4px);border-color:var(--p);box-shadow:0 14px 28px rgba(26,95,138,.18)}
    .dcardA:hover::before,.dcardA:hover::after{width:100%;height:100%;
      transition:width .22s ease-out,height .22s ease-out .22s}
    .dcardA h4{font-size:.92rem;color:var(--p);margin-bottom:10px;display:flex;align-items:center;gap:8px}
    .dcardA ul{list-style:none;margin:0;padding:0}
    .dcardA li+li{margin-top:8px}
    .dl-link{display:flex;align-items:center;gap:8px;font-size:.83rem;color:#444;text-decoration:none;
      padding:6px 0;border-bottom:1px dashed var(--brd);transition:color .2s ease}
    .dcardA li:last-child .dl-link{border-bottom:none}
    .dl-link:hover{color:var(--p)}
    .dl-link .dl-ico{flex-shrink:0;font-size:1rem}
    .dl-link .dl-name{flex:1}
    .dl-tag{font-size:.66rem;background:var(--p);color:#fff;border-radius:20px;padding:2px 8px;
      flex-shrink:0;white-space:nowrap;font-weight:600}

    /* ── Kontakt Form ── */
    .kform-wrap{background:#fff;border:1px solid var(--brd);border-radius:var(--r);
      padding:32px 36px;max-width:700px;box-shadow:0 2px 12px rgba(0,0,0,.07)}
    .kform-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
    .kfg{margin-bottom:16px}
    .kfg label{display:block;font-size:.85rem;font-weight:600;color:#444;margin-bottom:5px}
    .kfg input,.kfg select,.kfg textarea{
      width:100%;padding:10px 12px;border:1.5px solid #ccc;border-radius:7px;
      font-size:.9rem;font-family:inherit;transition:border-color .2s;background:#fafafa}
    .kfg input:focus,.kfg select:focus,.kfg textarea:focus{outline:none;border-color:var(--p);background:#fff}
    .kfg input.field-error,.kfg select.field-error,.kfg textarea.field-error{border-color:#e74c3c!important;background:#fff8f8!important}
    .kfg select.field-error{border-color:#e74c3c!important;background:#fff8f8!important}
    .kfg textarea{resize:vertical;min-height:100px}
    #k-msg{min-height:250px;line-height:1.65}
    .kfg.full{grid-column:1/-1}
    .kfg .req{color:var(--warn);font-size:.8rem;margin-left:2px}
    .kform-note{font-size:.8rem;color:#999;margin-bottom:20px;font-style:italic}
    .kform-check{display:flex;align-items:flex-start;gap:10px;font-size:.85rem;color:#555;
      margin-bottom:22px;cursor:pointer}
    .kform-check input{margin-top:3px;accent-color:var(--p);flex-shrink:0}
    .kform-success{display:none;background:#eafaf1;border:1.5px solid var(--acc);
      border-radius:var(--r);padding:28px 36px;text-align:center;margin-top:24px;margin-bottom:8px}
    .kform-success h3{color:var(--acc);margin-bottom:6px}
    .kform-success p{color:#555;font-size:.9rem}
    .kfg-notice{display:none;grid-column:1/-1;border-radius:var(--r);padding:12px 16px;margin:-4px 0 14px;font-size:.85rem;line-height:1.55}
    .kfg-notice.show{display:block}
    .kfg-notice b{display:block;margin-bottom:3px;font-size:.92rem}
    .kfg-notice.warn{background:#fdecea;border:1.5px solid var(--warn);color:#a82a20}
    .kfg-notice.info{background:#eaf3fa;border:1.5px solid var(--p);color:var(--pd)}
    .kfile-list{font-size:.8rem;color:#555;margin-top:6px;line-height:1.6}
    .kfile-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 0}
    .kfile-list .bad{color:var(--warn);font-weight:600}
    .kfile-remove{background:none;border:none;color:#999;cursor:pointer;font-size:.85rem;line-height:1;padding:2px 7px;border-radius:4px;flex-shrink:0}
    .kfile-remove:hover{background:#fdecea;color:#a82a20}
    .kmsg-count{font-size:.78rem;color:#999;text-align:right;margin-top:6px;margin-bottom:6px}
    .kmsg-count.over{color:var(--warn);font-weight:600}

    /* ── Impressum ── */
    .imbox{background:#fff;border:1px solid var(--brd);border-radius:var(--r);
      padding:30px 34px;max-width:780px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
    .imbox h3{color:var(--p);font-size:1.02rem;margin:22px 0 8px}
    .imbox h3:first-child{margin-top:0}
    .imbox p,.imbox ul{font-size:.9rem;color:#555}
    .imbox ul{padding-left:20px}
    .imbox a{color:var(--p);text-decoration:underline}

    /* ── Footer ── */
    footer{background:var(--pd);color:rgba(255,255,255,.72);text-align:center;
      padding:22px 20px;font-size:.83rem;flex-shrink:0}
    footer strong{color:#fff}
    footer a{color:#a8d8f0}
    footer a:hover{color:#fff}
    footer .abtn{background:none;border:none;color:rgba(255,255,255,.32);font-size:.75rem;
      cursor:pointer;margin-left:12px;text-decoration:underline;transition:color .2s}
    footer .abtn:hover{color:rgba(255,255,255,.72)}

    /* ── Modal ── */
    .mbg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);
      z-index:9999;align-items:center;justify-content:center;padding:16px}
    .mbg.open{display:flex}
    .modal{background:#fff;border-radius:14px;padding:28px 30px;width:100%;max-width:440px;
      box-shadow:0 8px 40px rgba(0,0,0,.3);position:relative;max-height:90vh;overflow-y:auto}
    .modal-wide{max-width:580px}
    .modal h2{color:var(--p);font-size:1.12rem;margin-bottom:18px;display:flex;align-items:center;gap:10px}
    .mclose{position:absolute;top:12px;right:16px;font-size:1.3rem;cursor:pointer;
      color:#999;background:none;border:none;line-height:1}
    .mclose:hover{color:#333}

    /* ── Admin tabs ── */
    .atabs{display:flex;border-bottom:2px solid var(--brd);margin-bottom:20px}
    .atab-btn{background:none;border:none;padding:9px 17px;font-size:.87rem;font-weight:600;
      color:#888;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:color .2s}
    .atab-btn.active{color:var(--p);border-bottom-color:var(--p)}
    .atab{display:none}
    .atab.active{display:block}

    /* ── Forms (admin) ── */
    .fg{margin-bottom:13px}
    .fg label{display:block;font-size:.84rem;font-weight:600;color:#444;margin-bottom:5px}
    .fg input,.fg select,.fg textarea{width:100%;padding:9px 11px;border:1.5px solid #ccc;
      border-radius:7px;font-size:.9rem;font-family:inherit;transition:border-color .2s}
    .fg input:focus,.fg select:focus,.fg textarea:focus{outline:none;border-color:var(--p)}
    .fg textarea{resize:vertical;min-height:64px}
    .frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
    .btn{display:inline-block;padding:10px 22px;border-radius:7px;border:none;cursor:pointer;
      font-size:.9rem;font-weight:600;transition:background .2s,transform .1s}
    .btn:active{transform:scale(.97)}
    .btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
    .btn-p{background:var(--p);color:#fff}
    .btn-p:hover{background:var(--pd)}
    .btn-s{background:#eee;color:#444}
    .btn-s:hover{background:#ddd}
    .btn-d{background:var(--warn);color:#fff}
    .emsg{color:var(--warn);font-size:.83rem;margin-top:6px;display:none}
    .smsg{color:#27ae60;font-size:.83rem;margin-top:6px;display:none}
    .ahint{font-size:.75rem;color:#aaa;margin-top:10px;font-style:italic}

    /* ── Closure list ── */
    .clist{margin-bottom:18px}
    .citem{background:#f9fbfc;border:1px solid var(--brd);border-radius:8px;
      padding:10px 14px;margin-bottom:8px;display:flex;align-items:center;gap:12px;font-size:.86rem}
    .citem.now{border-color:var(--pur);background:#fdf2f8}
    .cic{font-size:1.25rem;flex-shrink:0}
    .cib{flex:1}
    .cib-ttl{font-weight:600;color:#333}
    .cib-dt{color:#888;font-size:.79rem}
    .cib-msg{font-size:.77rem;color:#999;margin-top:2px}
    .cedit{background:none;border:none;font-size:1.05rem;cursor:pointer;color:#aac8e0;transition:color .2s}
    .cedit:hover{color:var(--p)}
    .cdel{background:none;border:none;font-size:1.05rem;cursor:pointer;color:#ccc;transition:color .2s}
    .cdel:hover{color:var(--warn)}
    .nc{color:#aaa;font-size:.87rem;font-style:italic;padding:8px 0}
    .fdiv{border:none;border-top:1px solid var(--brd);margin:18px 0}
    .fsec-ttl{font-size:.88rem;font-weight:700;color:var(--p);margin-bottom:12px}
    .prev-box{border-radius:8px;padding:12px 16px;margin:12px 0;font-size:.87rem;
      border-left:5px solid #ccc;background:#f9f9f9}
    .prev-box strong{display:block;margin-bottom:2px}
    .auto-badge{display:inline-flex;align-items:center;gap:6px;background:#eaf5ea;
      color:#27ae60;border:1px solid #b2dfb2;border-radius:20px;font-size:.76rem;
      font-weight:600;padding:3px 10px;margin-bottom:13px}
    .ov-badge{display:inline-flex;align-items:center;gap:6px;background:#fff3e0;
      color:#e67e22;border:1px solid #ffd39a;border-radius:20px;font-size:.76rem;
      font-weight:600;padding:3px 10px;margin-bottom:13px}

    /* ── Hamburger button ── */
    .ham-btn{display:none;flex-direction:column;justify-content:space-between;
      width:36px;height:26px;background:transparent;border:none;cursor:pointer;
      padding:2px;flex-shrink:0;z-index:1001}
    .ham-btn span{display:block;height:3px;background:#fff;border-radius:3px;
      transition:all .3s ease}
    .ham-btn.open span:nth-child(1){transform:translateY(11px) rotate(45deg)}
    .ham-btn.open span:nth-child(2){opacity:0;transform:scaleX(0)}
    .ham-btn.open span:nth-child(3){transform:translateY(-11px) rotate(-45deg)}

    /* ── Nav overlay (mobile) ── */
    @media(max-width:680px){
      .ham-btn{display:flex}
      #main-nav{
        display:none;position:fixed;top:0;left:0;right:0;bottom:0;
        background:rgba(13,54,85,.97);z-index:1000;
        flex-direction:column;align-items:center;justify-content:center;gap:10px;
        padding:80px 20px 40px
      }
      #main-nav.open{display:flex}
      #main-nav button{
        width:100%;max-width:280px;padding:14px 20px;font-size:1.05rem;
        border:2px solid rgba(255,255,255,.3);border-radius:10px;
        text-align:center
      }
      #main-nav button.active{
        background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.7)
      }
    }

    /* ── Responsive: Tablet ── */
    @media(max-width:860px){
      .hero-in{grid-template-columns:220px 1fr;gap:30px;padding:36px 20px 34px}
      .hero-photo-frame{width:220px;height:262px}
      .hero-tx h1{font-size:1.65rem}
    }

    /* ── Responsive: Mobile ── */
    @media(max-width:680px){
      #topbar{font-size:.74rem;padding:5px 14px;flex-direction:column;gap:2px;text-align:center}
      .hdr{padding:0 14px;min-height:58px}
      .logo-ic{width:38px;height:38px;font-size:1.25rem}
      .logo-ic svg{width:20px;height:20px}
      .logo-tx strong{font-size:.95rem}
      .logo-tx span{font-size:.7rem}
      .hero-in{grid-template-columns:1fr;text-align:center;gap:22px;padding:30px 16px 28px}
      .hero-photo-frame{width:190px;height:226px;margin:0 auto}
      .hero-name{border-left:none;padding-left:0}
      .hero-spec{padding-left:0}
      .hero-tx h1{font-size:1.5rem}
      .hero-sub{font-size:.92rem}
      #status-banner{margin:12px 12px 0;border-radius:8px;padding:14px 16px}
      .st-icon{font-size:1.6rem}
      .st-body h3{font-size:.95rem}
      .st-body p{font-size:.83rem}
      #infect-notice{margin:10px 12px 0;padding:12px 14px}
      #acute-notice{margin:8px 12px 0;padding:12px 14px}
      #sonder-notice{margin:10px 12px 0;padding:12px 14px}
      #upcoming-notice{margin:8px 12px 0;padding:12px 14px}
      .section{padding:32px 14px}
      .sec-ttl{font-size:1.3rem}
      .igrid{grid-template-columns:1fr}
      #spar-notice{padding:18px 16px}
      #spar-notice .sp-head h4{font-size:.92rem}
      .tgrid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
      .tavatar{height:200px;font-size:5.5rem}
      .lgrid{grid-template-columns:1fr}
      .map-wrap iframe{height:260px}
      .map-consent{height:260px}
      .kform-wrap{padding:22px 16px}
      .kform-grid{grid-template-columns:1fr}
      .imbox{padding:22px 16px}
      .modal{padding:22px 16px;max-width:100%;border-radius:10px}
      .modal-wide{max-width:100%}
      .frow{grid-template-columns:1fr}
      footer{font-size:.77rem;padding:18px 14px}
    }

    /* ── Responsive: Small phones ── */
    @media(max-width:400px){
      .hero-photo-frame{width:160px;height:190px}
      .hero-tx h1{font-size:1.3rem}
      .logo-tx span{display:none}
      #topbar{font-size:.7rem}
      .tgrid{grid-template-columns:1fr 1fr}
    }

    /* ── iOS input zoom fix ── */
    @media(max-width:680px){
      input,select,textarea{font-size:16px!important}
    }

    /* ── No horizontal overflow ── */
    html,body{overflow-x:hidden;max-width:100vw}
    img{max-width:100%;height:auto}
  
