:root{--red:#d90000;--red-dark:#a80000;--black:#111;--ink:#1b1b1b;--muted:#666;--line:#e5e5e5;--bg:#fff;--alt:#f7f7f7;--r:10px}
*{box-sizing:border-box}
body{margin:0;font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
img{max-width:100%;height:auto}
a{color:var(--red)}a:hover{color:var(--red-dark)}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}.narrow{max-width:760px}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:99}
:focus-visible{outline:3px solid var(--red);outline-offset:2px}
.site-header{background:#fff;border-bottom:4px solid var(--red);position:sticky;top:0;z-index:20}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px}
.brand img{display:block;height:44px;width:auto}.brand-text{font-weight:800;font-size:1.4rem;color:var(--black)}
.nav{display:flex;align-items:center;gap:20px}.nav a{color:var(--black);text-decoration:none;font-weight:600}
.nav a[aria-current]{color:var(--red)}.nav a.btn{color:#fff}
.nav-toggle{display:none;background:none;border:2px solid var(--black);border-radius:8px;font-size:1.4rem;padding:2px 10px;cursor:pointer}
.btn{display:inline-block;border:2px solid transparent;border-radius:var(--r);padding:11px 20px;font-weight:700;text-decoration:none;cursor:pointer;font-size:1rem;line-height:1.3;font-family:inherit;text-align:center}
.btn-red{background:var(--red);color:#fff}.btn-red:hover{background:var(--red-dark);color:#fff}
.btn-dark{background:var(--black);color:#fff}.btn-dark:hover{background:#333;color:#fff}
.btn-outline{background:#fff;color:var(--black);border-color:var(--black)}.btn-outline:hover{border-color:var(--red);color:var(--red)}
.btn-sm{padding:8px 14px;font-size:.9rem}.btn-lg{padding:15px 28px;font-size:1.05rem;letter-spacing:.03em}
.hero{background:linear-gradient(180deg,#fff,#fbeeee);padding:56px 0}
.hero-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:36px;align-items:center}
.eyebrow{color:var(--red);font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin:0}
h1{font-size:clamp(2rem,5vw,3.2rem);line-height:1.1;margin:.3em 0;color:var(--black)}
h2{font-size:1.8rem;margin:0 0 .6em;color:var(--black)}h2:after{content:"";display:block;width:56px;height:4px;background:var(--red);margin-top:8px;border-radius:2px}
.lead{font-size:1.15rem}.muted{color:var(--muted);font-size:.92rem}
.cta{display:flex;flex-wrap:wrap;gap:14px;margin:24px 0}
.hero-card{background:var(--black);color:#fff;border-radius:14px;padding:24px;border-top:6px solid var(--red)}.hero-card h2{color:#fff}
.contact-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.contact-buttons .btn span{font-weight:500}
.section{padding:48px 0}.alt{background:var(--alt)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);border-radius:var(--r);padding:20px}.card h3{margin-top:0}.card img{border-radius:8px}
.card h3 a{color:var(--black);text-decoration:none}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}
.gallery figcaption{font-size:.9rem;color:var(--muted)}figure{margin:0}
.prose{max-width:70ch}.article-img{border-radius:var(--r);margin:12px 0}
.site-footer{background:var(--black);color:#ddd;border-top:6px solid var(--red);padding-top:36px;margin-top:20px}
.site-footer a{color:#fff}.site-footer h3{color:#fff;margin-top:0}.foot-logo{background:#fff;padding:6px 10px;border-radius:8px;height:40px;width:auto}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
.plain{list-style:none;margin:0;padding:0}.copy{border-top:1px solid #333;margin-top:28px;padding:16px 20px;font-size:.9rem;color:#aaa}
.form label{display:block;font-weight:600;margin:14px 0}
.form input:not([type=radio]),.form select,.form textarea,.admin input:not([type=checkbox]):not([type=radio]),.admin select,.admin textarea{display:block;width:100%;margin-top:6px;padding:11px 12px;border:1.5px solid #bbb;border-radius:8px;font:inherit;background:#fff}
.form input:focus,.form select:focus,.form textarea:focus,.admin input:focus,.admin select:focus,.admin textarea:focus{border-color:var(--red)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
fieldset{border:1.5px solid var(--line);border-radius:var(--r);padding:12px 16px;margin:16px 0}legend{font-weight:700;padding:0 6px}
.radio{display:inline-flex;align-items:center;gap:6px;margin:6px 18px 6px 0!important;font-weight:500!important}
.req{color:var(--red)}.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.alert{padding:12px 16px;border-radius:8px;margin:14px 0;border:1px solid}.alert ul{margin:6px 0 0 18px;padding:0}
.alert-ok{background:#effaf1;border-color:#9fd6aa;color:#14532d}.alert-err{background:#fff0f0;border-color:#f0a0a0;color:#7a0000}
.success-box{border:2px solid var(--red);border-radius:14px;padding:24px;background:#fff}.ref{font-size:1.2rem}
.info dt{font-weight:700;margin-top:10px}.info dd{margin:0}
@media(max-width:760px){
 .nav-toggle{display:block}.nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;align-items:stretch;padding:16px 20px;border-bottom:4px solid var(--red)}
 .nav.open{display:flex}.hero-grid,.row2{grid-template-columns:1fr}.site-header{position:relative}.btn-lg{width:100%}.contact-buttons .btn{flex:1 1 100%}}
/* ---------- Admin ---------- */
.admin{background:#f3f3f3;min-height:100vh}
.a-top{background:var(--black);color:#fff;border-bottom:4px solid var(--red);padding:10px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.a-top a{color:#fff}.a-layout{display:grid;grid-template-columns:230px 1fr;gap:0}
.a-side{background:#fff;border-right:1px solid var(--line);padding:14px 0;min-height:calc(100vh - 56px)}
.a-side a{display:block;padding:9px 20px;color:var(--black);text-decoration:none;font-weight:600;border-left:4px solid transparent}
.a-side a:hover{background:#fafafa}.a-side a.on{border-left-color:var(--red);color:var(--red);background:#fff5f5}
.a-main{padding:24px;max-width:1000px}.a-main h1{font-size:1.7rem;margin-top:0}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px;margin-bottom:20px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:20px}
.stat{background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);border-radius:var(--r);padding:14px}.stat b{font-size:1.8rem;display:block}
table.t{width:100%;border-collapse:collapse;font-size:.93rem}.t th,.t td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}.t th{background:#fafafa}
.tbl-wrap{overflow-x:auto}
.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.8rem;font-weight:700;background:#eee}
.b-pending{background:#fff3cd}.b-approved{background:#d4edda}.b-rejected,.b-cancelled{background:#f8d7da}.b-rescheduled{background:#d6e4ff}
.field{margin:14px 0}.field>label{font-weight:700;display:block}.help{font-size:.85rem;color:var(--muted);margin-top:4px}
.days label{display:inline-flex;align-items:center;gap:6px;margin-right:14px;font-weight:500}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.actions form{display:inline}
.login-box{max-width:400px;margin:8vh auto;background:#fff;padding:28px;border-radius:14px;border-top:6px solid var(--red)}
.thumb{max-height:60px;max-width:160px;border:1px solid var(--line);padding:4px;background:#fff}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
@media(max-width:800px){.a-layout{grid-template-columns:1fr}.a-side{min-height:0;display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.a-side a{white-space:nowrap;border-left:0;border-bottom:4px solid transparent}.a-side a.on{border-bottom-color:var(--red)}.grid-2{grid-template-columns:1fr}}

form.inline{display:inline}.t form.inline input{display:inline-block;width:170px;margin:0 4px 4px 0;padding:6px 8px}
