:root{
  --ink:#1f2a24; --muted:#6b7a71; --bg:#f6f3ec; --card:#fff;
  --green:#2f5d46; --green2:#3f7a5c; --accent:#d9480f; --gold:#e8a317;
  --r:14px;
}
*{box-sizing:border-box}
html,body{overflow-x:hidden}
body{margin:0;font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
a{color:var(--green)}
h1,h2,h3,.brand,.stats b,.ring b,.numbig{font-family:"Barlow Condensed",sans-serif;letter-spacing:.3px}
main{max-width:1180px;margin:0 auto;padding:0 18px 40px}

.top{position:sticky;top:0;z-index:1000;display:flex;justify-content:space-between;align-items:center;
  padding:10px 20px;background:rgba(31,42,36,.92);backdrop-filter:blur(6px);color:#fff}
.brand{color:#fff;text-decoration:none;font-size:1.5rem;font-weight:800;text-transform:uppercase}
.brand em{font-style:normal;color:var(--gold);font-weight:700}
.logo{color:var(--gold)}
.top nav{display:flex;gap:14px;align-items:center}
.top .muted{color:#cfd8d2;text-decoration:none}

.btn{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:999px;padding:10px 18px;
  font-weight:600;text-decoration:none;cursor:pointer;font-size:.95rem}
.btn:hover{filter:brightness(1.08)}
.btn.small{padding:6px 14px;font-size:.88rem}
.btn.ghost{background:transparent;color:var(--muted);border:1.5px dashed #c8cfc9}
a.btn.ghost{color:var(--green);border-style:solid}
.btn.danger{background:#b02a37}
.flash{max-width:1180px;margin:12px auto;padding:10px 16px;background:#e6f2ea;border-left:4px solid var(--green2);border-radius:8px}
.flash p{margin:0}

/* HERO */
.hero,.cim-hero{width:100vw;margin-left:calc(50% - 50vw)!important;margin-right:0!important}
.hero{min-height:360px;display:flex;align-items:flex-end;color:#fff;
  background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(15,25,20,.82)),var(--bg,linear-gradient(135deg,#2f5d46,#1f2a24)) center/cover}
.hero-in{display:flex;gap:28px;align-items:center;padding:40px 30px;max-width:1180px;width:100%;margin:0 auto}
.hero h1{font-size:clamp(2.4rem,6vw,4.2rem);line-height:.95;margin:0 0 10px;text-transform:uppercase;font-weight:800}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero p{max-width:560px;margin:0;font-size:1.05rem;opacity:.95}
.ring{--p:0;flex:none;width:150px;height:150px;border-radius:50%;display:grid;place-items:center;
  background:conic-gradient(var(--gold) calc(var(--p)*1%),rgba(255,255,255,.18) 0)}
.ring>div{width:120px;height:120px;border-radius:50%;background:rgba(20,30,25,.9);display:grid;place-content:center;text-align:center}
.ring b{font-size:3.2rem;line-height:1}
.ring span{font-size:.85rem;opacity:.8}

/* STATS */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:-28px 0 22px;position:relative}
.stats div{background:var(--card);border-radius:var(--r);padding:14px 16px;box-shadow:0 4px 16px rgba(0,0,0,.07)}
.stats b{display:block;font-size:1.9rem;color:var(--green);line-height:1.1}
.stats span{color:var(--muted);font-size:.85rem}

.mapwrap{border-radius:var(--r);overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.08);margin-bottom:22px}
#map{height:420px}
.pin{color:var(--accent);font-size:22px;text-shadow:0 0 3px #fff,0 0 3px #fff;text-align:center;line-height:26px}
.pin.ess{color:#b8860b}
.pin.big{font-size:32px;line-height:34px}

.toolbar{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin-bottom:16px}
.toolbar input{flex:1;min-width:220px;padding:11px 16px;border-radius:999px;border:1px solid #d6dcd7;font-size:1rem}
.sort{color:var(--muted);font-size:.9rem}
.sort button{border:1px solid #d6dcd7;background:#fff;border-radius:999px;padding:6px 12px;cursor:pointer;margin-left:4px}
.sort button.on{background:var(--green);color:#fff;border-color:var(--green)}

/* CARDS */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.card{background:var(--card);border-radius:var(--r);overflow:hidden;text-decoration:none;color:inherit;
  box-shadow:0 2px 10px rgba(0,0,0,.06);transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.12)}
.ph{height:170px;background:#cfd8d2 center/cover;position:relative}
.tag{display:inline-block;font-size:.75rem;font-weight:600;padding:3px 9px;border-radius:999px}
.tag.ess{background:var(--gold);color:#2b2100}
.ph .tag{position:absolute;top:10px;left:10px}
.num{position:absolute;bottom:8px;right:10px;color:#fff;font-family:"Barlow Condensed";font-weight:800;font-size:1.5rem;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.card .body{padding:12px 16px 14px}
.card h3{margin:0;font-size:1.4rem;line-height:1.1}
.card .alt{margin:4px 0 0;color:var(--green2);font-weight:600;font-size:.9rem}
.card .date{margin:2px 0 0;color:var(--muted);font-size:.85rem}
.icons{margin:8px 0 0;display:flex;gap:8px}
.icons .no{filter:grayscale(1);opacity:.3}

/* CIM */
.cim-hero{margin:0 -18px;height:420px;background:#cfd8d2 center/cover;position:relative;display:flex;align-items:flex-end}
.cim-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,20,15,.85))}
.cim-hero-txt{position:relative;z-index:1;color:#fff;padding:30px;max-width:1180px;margin:0 auto;width:100%}
.cim-hero h1{font-size:clamp(2.2rem,6vw,4rem);margin:0;line-height:1;text-transform:uppercase}
.cim-hero p{margin:6px 0 0;font-size:1.1rem}
.numbig{color:var(--gold);font-size:1.3rem;font-weight:700;text-transform:uppercase}
.credit{position:absolute;z-index:1;top:10px;right:14px;color:#fff;font-size:.75rem;opacity:.8}
.cim-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;margin:26px 0}
dl{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;background:#fff;padding:18px 20px;border-radius:var(--r);margin:0 0 18px}
dt{color:var(--muted)} dd{margin:0;font-weight:600}
.cronica{background:#fff;padding:6px 20px 12px;border-radius:var(--r);margin-bottom:18px}
.cronica h2{margin:10px 0 0}
.docs{display:flex;flex-wrap:wrap;gap:10px}
.admin-bar{display:flex;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid #ddd}
.map-cim{height:360px!important;border-radius:var(--r)}
.stats.mini{margin:14px 0 0;grid-template-columns:repeat(3,1fr)}
.stats.mini b{font-size:1.5rem}
.perfil{background:#fff;border-radius:var(--r);padding:12px 14px 8px;margin-top:12px}
.perfil svg{width:100%;height:120px;display:block}
.perfil-eix{display:flex;justify-content:space-between;color:var(--muted);font-size:.78rem}
.diploma{width:100%;margin-top:16px;border-radius:var(--r);box-shadow:0 4px 16px rgba(0,0,0,.1)}

/* GALERIA */
.galeria{margin:10px 0 26px}
.galeria h2{margin:0 0 12px}
.galeria h2 small{color:var(--muted);font-weight:500;font-size:1rem}
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.gal-grid a{display:block;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:#ddd}
.gal-grid img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.gal-grid a:hover img{transform:scale(1.05)}
.visor{position:fixed;inset:0;z-index:5000;background:rgba(10,15,12,.94);display:flex;align-items:center;justify-content:center}
.visor[hidden]{display:none}
.visor img{max-width:92vw;max-height:88vh;border-radius:6px;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.visor button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:50%;width:48px;height:48px;font-size:1.8rem;cursor:pointer;line-height:1}
.visor button:hover{background:rgba(255,255,255,.25)}
.v-tanca{top:16px;right:16px;font-size:1.3rem!important}
.v-ant{left:16px}.v-seg{right:16px}
.v-num{position:absolute;bottom:14px;color:#cfd8d2;font-size:.9rem}
.gal-edit{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-bottom:12px}
.gal-edit label{margin:0;font-weight:400;font-size:.8rem}
.gal-edit img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block}
@media (max-width:760px){.gal-grid{grid-template-columns:repeat(2,1fr)}.v-ant,.v-seg{top:auto;bottom:10px}.v-ant{left:20px}.v-seg{right:20px}}

/* FORMS */
.panel{background:#fff;max-width:760px;margin:30px auto;padding:24px 28px;border-radius:var(--r);box-shadow:0 4px 16px rgba(0,0,0,.06)}
.panel.narrow{max-width:380px}
.panel h1{margin-top:0}
label{display:block;margin:0 0 14px;font-weight:600;font-size:.92rem}
input:not([type=checkbox]):not([type=file]),textarea{display:block;width:100%;margin-top:4px;padding:10px 12px;border:1px solid #cfd6d1;border-radius:10px;font:inherit;font-weight:400}
input[type=file]{display:block;margin-top:6px}
.row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.row>label{flex:1;min-width:160px}
.row>.grow{flex:2}
.check{display:flex;gap:8px;align-items:center}
fieldset{border:1px solid #e1e5e2;border-radius:10px;margin:0 0 16px;padding:12px 16px}
legend{font-weight:700;padding:0 6px}
small{font-weight:400;color:var(--muted)}
.hint{margin:-8px 0 14px;color:var(--green2);font-size:.9rem}

footer{text-align:center;color:var(--muted);font-size:.82rem;padding:24px}

@media (max-width:760px){
  .hero-in{flex-direction:column;align-items:flex-start;padding:30px 20px}
  .ring{width:120px;height:120px}.ring>div{width:96px;height:96px}.ring b{font-size:2.5rem}
  .cim-grid{grid-template-columns:1fr}
  .cim-hero{height:300px}
  .brand{font-size:1.15rem}
  #map{height:320px}
}
.icons .gal{font-size:.85rem;color:var(--muted);margin-left:auto}
.cim-hero{background-position:center 25%}
/* NAVEGACIÓ ENTRE CIMS */
.hero-nav{position:absolute;z-index:2;top:16px;left:20px;right:20px;display:flex;justify-content:space-between;pointer-events:none}
.hero-nav a{pointer-events:auto;background:rgba(20,30,25,.55);backdrop-filter:blur(4px);color:#fff;text-decoration:none;padding:7px 14px;border-radius:999px;font-weight:600;font-size:.9rem}
.hero-nav a:hover{background:rgba(20,30,25,.8)}
.hero-nav a:only-child{margin-left:auto}
.cim-hero-txt{position:relative}
.cim-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:stretch;margin:10px 0 30px}
.cim-nav>a.prev,.cim-nav>a.next{background:#fff;border-radius:var(--r);padding:12px 16px;text-decoration:none;color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,.06);transition:transform .15s}
.cim-nav>a.prev:hover,.cim-nav>a.next:hover{transform:translateY(-2px)}
.cim-nav .next{text-align:right}
.cim-nav small{display:block;color:var(--muted);font-size:.8rem}
.cim-nav b{font-family:"Barlow Condensed";font-size:1.3rem;color:var(--green)}
.cim-nav .tots{align-self:center;color:var(--green);font-weight:600}
@media (max-width:760px){.cim-nav{grid-template-columns:1fr 1fr}.cim-nav .tots{grid-column:1/-1;grid-row:2;text-align:center}.hero-nav{top:12px;left:12px;right:12px}}
.diploma-ia{margin-top:20px;padding:14px 16px;background:#fff8ec;border:1px solid #f0d9a8;border-radius:var(--r)}
.diploma-ia:empty{display:none}
.diploma-ia p{margin:0 0 10px}
.diploma-ia img{width:100%;border-radius:10px;margin-bottom:10px}
.diploma-ia .row{gap:8px}
.diploma-ia form{margin:0}
label.ia{display:block;margin-top:6px;font-weight:600}
label.ia small{display:block;margin-left:24px}
