:root{
  --teal:#008080;
  --teal-dark:#046666;
  --acid-green:#9FDDBD;
  --slate:#225268;
  --azure:#7692FF;
  --blue:#1634A0;
  --paper:#F5F6F4;
  --ink:#1C2B2E;
  --line: rgba(28,43,46,.12);
  --maxw:1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family: Calibri, "Calibri Light", "Segoe UI", Optima, Candara, Arial, sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.55;
}
img{max-width:100%; display:block;}
a{color:inherit;}
h1,h2,h3{
  font-weight:600;
  line-height:1.15;
  margin:0 0 .5em;
}
p{margin:0 0 1em;}
.container{max-width:var(--maxw); margin:0 auto; padding:0 28px;}

/* ---------- Header / Nav ---------- */
.site-header{
  background:var(--slate);
  color:#fff;
  position:sticky; top:0; z-index:50;
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 28px;
  max-width:var(--maxw); margin:0 auto;
}
.brand{
  font-size:1.35rem; font-weight:700; letter-spacing:.2px;
  text-decoration:none; color:#fff;
  display:flex; flex-direction:column; line-height:1.05;
}
.brand small{font-size:.55rem; font-weight:400; letter-spacing:1.5px; text-transform:uppercase; color:var(--acid-green); margin-top:3px;}
.nav-links{display:flex; gap:6px; list-style:none; margin:0; padding:0;}
.nav-links a{
  display:block; padding:9px 16px; text-decoration:none; color:#fff;
  font-size:.98rem; border-radius:3px; opacity:.88;
  border-bottom:2px solid transparent;
}
.nav-links a:hover{opacity:1; background:rgba(255,255,255,.08);}
.nav-links a.active{opacity:1; border-bottom-color:var(--acid-green);}
.nav-toggle{display:none; background:none; border:none; color:#fff; font-size:1.6rem; cursor:pointer;}

@media (max-width:820px){
  .nav-toggle{display:block;}
  .nav-links{
    display:none; position:absolute; top:100%; left:0; right:0;
    background:var(--slate); flex-direction:column; padding:8px 20px 18px;
    border-top:1px solid rgba(255,255,255,.15);
  }
  .nav-links.open{display:flex;}
  .nav-links a{padding:12px 6px; border-bottom:1px solid rgba(255,255,255,.08);}
}

/* ---------- Hero blocks (echo the UF slide format: full-bleed teal band) ---------- */
.hero{
  background:var(--teal);
  color:#fff;
  padding:80px 0 60px;
}
.hero .eyebrow{
  text-transform:uppercase; letter-spacing:2px; font-size:.78rem;
  color:var(--acid-green); font-weight:600; margin-bottom:14px;
}
.hero h1{font-size:2.6rem; max-width:780px;}
.hero .lede{font-size:1.15rem; max-width:640px; opacity:.95; margin-top:14px;}

.subband{
  background:var(--slate); color:#fff; padding:26px 0;
}
.subband p{margin:0; font-size:1.05rem; max-width:820px;}

/* ---------- Sections ---------- */
section{padding:64px 0;}
.section-title{
  font-size:1.7rem; color:var(--slate); margin-bottom:8px;
}
.section-kicker{
  text-transform:uppercase; letter-spacing:1.6px; font-size:.75rem;
  color:var(--teal); font-weight:700; margin-bottom:10px;
}
.lede-block{max-width:760px; color:#3A4A4D; font-size:1.05rem;}

/* image strip on Chi siamo, taken from the UF deck */
.image-strip{
  display:grid; grid-template-columns:repeat(5,1fr); gap:6px;
  margin:34px 0 0;
}
.image-strip img{width:100%; height:170px; object-fit:cover; border-radius:2px;}
@media (max-width:720px){
  .image-strip{grid-template-columns:repeat(2,1fr);}
}

/* team cards */
.team-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:34px;
}
@media (max-width:820px){.team-grid{grid-template-columns:1fr;}}
.team-card{
  background:#fff; border:1px solid var(--line); border-radius:4px; overflow:hidden;
}
.team-card img{width:100%; height:230px; object-fit:cover; filter:grayscale(100%);}
.team-card .body{padding:20px 22px 24px;}
.team-card h3{font-size:1.15rem; color:var(--slate); margin-bottom:2px;}
.team-role{color:var(--teal); font-weight:600; font-size:.92rem; margin-bottom:10px;}
.team-card .bio{font-size:.92rem; color:#4A5759;}
.team-card .mail{
  display:inline-block; margin-top:12px; font-size:.85rem; color:var(--blue);
  text-decoration:none; border-bottom:1px solid var(--azure);
}

.network-note{
  margin-top:30px; background:var(--acid-green); color:var(--slate);
  padding:22px 26px; border-radius:4px; font-weight:600; font-size:1.02rem;
  max-width:680px;
}

/* mission callout */
.mission{
  background:var(--slate); color:#fff; padding:56px 0;
}
.mission blockquote{
  margin:0; font-size:1.5rem; font-weight:600; max-width:820px; line-height:1.35;
}

/* activity categories */
.activity-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:36px;
}
@media (max-width:820px){.activity-grid{grid-template-columns:1fr;}}
.activity-card{
  background:#fff; border:1px solid var(--line); border-radius:4px;
  padding:26px 28px; border-top:4px solid var(--teal);
}
.activity-card h3{color:var(--slate); font-size:1.1rem; margin-bottom:10px;}
.activity-card ul{margin:0; padding-left:18px; color:#3A4A4D; font-size:.95rem;}
.activity-card li{margin-bottom:6px;}

/* process strip */
.process{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:36px;
}
@media (max-width:820px){.process{grid-template-columns:1fr;}}
.process-step{padding:22px 0; border-top:2px solid var(--teal);}
.process-step .num{font-size:.85rem; color:var(--teal); font-weight:700; letter-spacing:1px;}
.process-step h3{margin:10px 0 8px; color:var(--slate); font-size:1.05rem;}
.process-step p{font-size:.93rem; color:#4A5759; margin:0;}

/* project feature */
.project-feature{
  background:#fff; border:1px solid var(--line); border-radius:4px; overflow:hidden; margin-top:36px;
}
.project-feature .cover{width:100%; height:380px; object-fit:cover;}
.project-feature .content{padding:30px 32px;}
.project-feature h3{color:var(--slate); font-size:1.35rem;}
.project-feature .tag{
  display:inline-block; background:var(--acid-green); color:var(--slate);
  font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:1px;
  padding:4px 10px; border-radius:3px; margin-bottom:14px;
}
.project-gallery{
  display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:20px;
}
@media (max-width:720px){.project-gallery{grid-template-columns:1fr 1fr;}}
.project-gallery img{width:100%; height:150px; object-fit:cover; border-radius:3px;}
.partners{
  margin-top:18px; font-size:.9rem; color:#4A5759; border-top:1px solid var(--line); padding-top:16px;
}
.partners strong{color:var(--slate);}

.portfolio-block{
  margin-top:44px;
}
.portfolio-block img{border-radius:4px; border:1px solid var(--line);}
.portfolio-caption{margin-top:14px; font-size:.92rem; color:#4A5759; max-width:700px;}

/* data center page */
.dc-pillars{
  display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:36px;
}
@media (max-width:820px){.dc-pillars{grid-template-columns:1fr;}}
.dc-pillar{
  background:#fff; border:1px solid var(--line); border-radius:4px; padding:26px 28px;
}
.dc-pillar .icon{
  width:40px; height:40px; margin-bottom:16px;
}
.dc-pillar .icon svg{width:40px; height:40px; display:block;}
.dc-pillar .icon svg circle{fill:var(--teal);}
.dc-pillar h3{color:var(--slate); font-size:1.08rem; margin-bottom:8px;}
.dc-pillar p{font-size:.93rem; color:#4A5759; margin:0;}

.stat-row{
  display:flex; flex-wrap:wrap; gap:40px; margin-top:40px; padding-top:32px; border-top:1px solid var(--line);
}
.stat{min-width:160px;}
.stat .n{font-size:2.1rem; font-weight:700; color:var(--teal);}
.stat .l{font-size:.85rem; color:#4A5759; margin-top:2px;}

.cta-band{
  background:var(--teal); color:#fff; padding:46px 0; text-align:left;
}
.cta-band h2{font-size:1.5rem; margin-bottom:8px;}
.btn{
  display:inline-block; margin-top:14px; background:#fff; color:var(--teal);
  font-weight:700; padding:12px 26px; border-radius:3px; text-decoration:none;
}
.btn:hover{background:var(--acid-green);}

/* ---------- Footer (mirrors the UF slide-template footer) ---------- */
.site-footer{
  background:var(--teal); color:#fff; padding:34px 0 22px;
}
.footer-grid{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px;
}
.footer-grid .fcol{font-size:.9rem; line-height:1.7;}
.footer-grid .fcol strong{display:block; font-size:1rem; margin-bottom:6px;}
.footer-grid a{color:#fff; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.4);}
.footer-bottom{
  margin-top:24px; padding-top:16px; border-top:1px solid rgba(255,255,255,.25);
  font-size:.78rem; opacity:.85;
}
.footer-bottom a{color:#fff; border-bottom:1px solid rgba(255,255,255,.4); text-decoration:none;}

/* legal content (privacy policy) */
.legal-content{max-width:760px;}
.legal-content h3{color:var(--slate); font-size:1.12rem; margin-top:32px; margin-bottom:10px;}
.legal-content h3:first-child{margin-top:0;}
.legal-content p{color:#3A4A4D; font-size:.96rem; line-height:1.7; margin-bottom:10px;}
.legal-content ul{margin:0 0 12px 20px; color:#3A4A4D; font-size:.96rem; line-height:1.7;}
.legal-content li{margin-bottom:4px;}
.legal-content a{color:var(--blue); border-bottom:1px solid var(--azure); text-decoration:none;}
.legal-updated{font-size:.85rem; color:#7A8788; margin-top:24px;}

/* cookie consent banner */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:-200px; z-index:999;
  background:var(--slate); color:#fff; padding:18px 24px;
  box-shadow:0 -4px 18px rgba(0,0,0,.18);
  transition:bottom .35s ease;
}
.cookie-banner.visible{bottom:0;}
.cookie-banner .cookie-inner{
  max-width:var(--maxw); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.cookie-banner p{margin:0; font-size:.88rem; line-height:1.6; max-width:640px; color:#E7ECEC;}
.cookie-banner a{color:var(--acid-green); text-decoration:none; border-bottom:1px solid var(--acid-green);}
.cookie-actions{display:flex; gap:10px; flex-shrink:0;}
.cookie-actions button{
  font-family:inherit; font-size:.85rem; font-weight:600; cursor:pointer;
  border-radius:3px; padding:9px 18px; border:1px solid transparent;
}
.cookie-accept{background:var(--acid-green); color:var(--slate);}
.cookie-reject{background:transparent; color:#fff; border-color:rgba(255,255,255,.4);}
@media (max-width:640px){
  .cookie-banner .cookie-inner{flex-direction:column; align-items:flex-start;}
}
