:root{
  --blue-deep:#123b56;
  --blue-petrol:#0f6974;
  --sage:#91ad8a;
  --olive:#687746;
  --gold:#e8b64d;
  --beige:#f8f2e6;
  --mint:#eef7f2;
  --ink:#172b3a;
  --muted:#607482;
  --line:#cfe2dc;
  --white:#fffdf9;
  --font-size-xs:.75rem;
  --font-size-sm:.875rem;
  --font-size-base:1rem;
  --font-size-md:1.125rem;
  --font-size-lg:1.25rem;
  --font-size-xl:1.5rem;
  --font-size-2xl:1.75rem;
  --font-size-3xl:2rem;
  --font-size-4xl:2.5rem;
  --line-height-tight:1.2;
  --line-height-heading:1.3;
  --line-height-normal:1.5;
  --line-height-relaxed:1.7;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;font-size:100%}
body{
  margin:0;
  color:var(--ink);
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:linear-gradient(135deg,#fffaf0 0%,#eef7f2 48%,#eef5f7 100%);
  font-size:var(--font-size-base);
  line-height:var(--line-height-normal);
}
a{color:inherit}
.navbar{backdrop-filter:blur(14px);background:rgba(255,253,249,.92);border-bottom:1px solid var(--line)}
.navbar .nav-link{font-size:var(--font-size-base);font-weight:600;line-height:var(--line-height-tight)}
.brand-logo{width:74px;height:56px;object-fit:contain}
.brand-title{font-family:Georgia,serif;color:var(--blue-deep);font-size:1.05rem;font-weight:800;line-height:1.1}
.brand-sub{font-size:var(--font-size-sm);color:var(--blue-petrol)}
.btn,.btn-cecoi,.btn-soft{font-size:var(--font-size-base);font-weight:600;line-height:var(--line-height-tight)}
.btn-cecoi{background:linear-gradient(135deg,var(--blue-petrol),#0f7f75);border:0;color:white;border-radius:999px;padding:.78rem 1.2rem;box-shadow:0 12px 26px rgba(15,105,116,.2)}
.btn-cecoi:hover{color:white;transform:translateY(-1px)}
.btn-soft{border:1px solid var(--line);background:rgba(255,255,255,.75);border-radius:999px;padding:.72rem 1.1rem;color:var(--blue-deep)}
.hero{position:relative;overflow:hidden;padding:6rem 0 4rem}
.hero:before{content:"";position:absolute;inset:-20% -10% auto auto;width:55vw;height:55vw;background:radial-gradient(circle,rgba(232,182,77,.28),rgba(145,173,138,.16),transparent 65%);border-radius:50%}
.hero-card,.panel-card,.public-card{background:rgba(255,253,249,.86);border:1px solid var(--line);border-radius:32px;box-shadow:0 24px 80px rgba(18,59,86,.11)}
.hero-card{padding:3rem}
.kicker{text-transform:uppercase;letter-spacing:.14em;font-size:var(--font-size-xs);color:var(--olive);font-weight:700;line-height:var(--line-height-heading)}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:Georgia,serif;color:var(--blue-deep);line-height:var(--line-height-heading)}
h1,.h1{font-size:clamp(1.875rem,3vw,2.5rem);font-weight:700}
.hero h1{font-size:clamp(2rem,4vw,3rem);line-height:1.15;max-width:18ch}
h2,.h2{font-size:clamp(1.5rem,2.5vw,2rem);font-weight:700}
h3,.h3{font-size:clamp(1.25rem,2vw,1.5rem);font-weight:600}
h4,.h4{font-size:clamp(1.125rem,1.6vw,1.25rem);font-weight:600}
h5,.h5,h6,.h6{font-size:var(--font-size-md);font-weight:600}
p{line-height:var(--line-height-normal)}
.lead{color:#445c6b;font-size:var(--font-size-md);line-height:var(--line-height-normal)}
.small,small{font-size:var(--font-size-sm);line-height:var(--line-height-normal)}
.section{padding:4.5rem 0}
.service-card{height:100%;padding:1.6rem;border-radius:24px;background:rgba(255,255,255,.76);border:1px solid var(--line);transition:.2s}
.service-card:hover{transform:translateY(-4px);box-shadow:0 18px 45px rgba(18,59,86,.11)}
.service-card h3,.service-card .h5,.public-card h3{font-size:var(--font-size-lg);line-height:var(--line-height-heading)}
.service-card p,.public-card p{font-size:var(--font-size-base)}
.icon-bubble{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#e7f3ef,#fff7df);color:var(--blue-petrol);font-weight:900}
.organic{border-radius:36% 64% 54% 46% / 48% 38% 62% 52%;background:linear-gradient(135deg,rgba(15,105,116,.13),rgba(232,182,77,.18));padding:2rem}
.footer{background:#102f45;color:#edf7f3;padding:3rem 0}
.wa-float{position:fixed;right:20px;bottom:20px;z-index:20}
.form-control,.form-select{border-color:#b8d5ca;border-radius:14px;padding:.8rem .95rem;font-size:var(--font-size-base);line-height:var(--line-height-normal)}
.form-label,label{font-size:var(--font-size-sm);font-weight:600;line-height:var(--line-height-heading)}
.form-text,.text-muted{font-size:var(--font-size-sm);line-height:var(--line-height-normal)}
.form-control:focus,.form-select:focus{border-color:var(--blue-petrol);box-shadow:0 0 0 .25rem rgba(15,105,116,.14)}
.admin-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}
.sidebar{background:#103149;color:white;padding:1.2rem;position:sticky;top:0;height:100vh}
.sidebar a{display:block;color:#edf7f3;text-decoration:none;padding:.78rem 1rem;border-radius:14px;margin:.2rem 0;font-size:var(--font-size-base);font-weight:600;line-height:var(--line-height-tight)}
.sidebar a:hover,.sidebar a.active{background:rgba(255,255,255,.12)}
.admin-main{padding:2rem;background:#f6f3fb}
.metric{padding:1.4rem;border-radius:22px;background:white;border:1px solid var(--line);box-shadow:0 12px 28px rgba(18,59,86,.06)}
.metric strong{font-size:2rem;color:var(--blue-deep)}
.table-card{background:white;border:1px solid var(--line);border-radius:22px;padding:1rem;overflow:auto}
.table{font-size:.9375rem;line-height:var(--line-height-normal)}
.table th{font-size:var(--font-size-sm);font-weight:600}
.badge-soft{background:#edf7f3;color:var(--blue-petrol);border:1px solid var(--line);border-radius:999px;padding:.35rem .7rem;font-weight:800}
.skip-link{position:absolute;left:-999px}
.skip-link:focus{left:1rem;top:1rem;z-index:50;background:white;padding:1rem}
@media(max-width:900px){
  .admin-shell{grid-template-columns:1fr}
  .sidebar{position:relative;height:auto}
  .hero-card{padding:2rem}
  .hero{padding:4rem 0 3rem}
  .section{padding:3.5rem 0}
  h1,.h1{font-size:clamp(1.875rem,8vw,2rem)}
  .hero h1{font-size:clamp(2rem,9vw,2.25rem)}
  h2,.h2{font-size:clamp(1.5rem,7vw,1.75rem)}
  h3,.h3{font-size:clamp(1.25rem,6vw,1.375rem)}
  h4,.h4{font-size:var(--font-size-md)}
  .navbar .nav-link{font-size:var(--font-size-base)}
  .admin-main{padding:1.25rem}
  .table{font-size:var(--font-size-sm)}
}

@media(max-width:375px){
  .hero-card{padding:1.5rem}
  .section{padding:3rem 0}
}
