:root {
  --paper:      #F3FAFB;
  --paper-2:    #E3F2F4;
  --panel:      #FFFFFF;
  --ink:        #0F2231;
  --ink-soft:   #48606D;
  --cyan:       #0891B2;
  --cyan-deep:  #0E5F73;
  --cyan-soft:  #22B8D8;
  --cyan-pale:  #D8F2F7;
  --lime:       #C7EA46;
  --lime-deep:  #7CA30F;
  --line:       rgba(15,34,49,0.11);
  --line-soft:  rgba(15,34,49,0.06);
  --warn-bg:    #FFF6DD;
  --warn-b:     #E8C766;
  --warn-text:  #7A5B08;
  --r:          14px;
  --rl:         22px;
  --shadow:     0 20px 46px rgba(15,60,73,0.12);
  --shadow-lg:  0 30px 70px rgba(15,60,73,0.16);
  --ease:       cubic-bezier(0.4,0,0.2,1);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:'Inter', sans-serif;
  background:var(--paper);
  color:var(--ink);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  font-size:16.5px;
}
a { color:inherit; text-decoration:none; }
img { max-width:100%; height:auto; display:block; }

::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-track { background:var(--paper); }
::-webkit-scrollbar-thumb { background:var(--cyan-soft); border-radius:3px; }

#progress {
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:linear-gradient(90deg, var(--cyan), var(--lime));
  z-index:9999; transition:width 0.08s linear;
}

.disclaimer-banner {
  background:var(--warn-bg); border-bottom:1px solid var(--warn-b);
  color:var(--warn-text); font-size:0.8rem; font-weight:600;
  text-align:center; padding:0.65rem 1.5rem; line-height:1.5; position:relative; z-index:1001;
}
.disclaimer-banner strong { color:#5C4400; }

nav {
  position:sticky; top:0; left:0; right:0; z-index:1000;
  padding:1.1rem 2.5rem; display:flex; align-items:center; justify-content:space-between;
  background:rgba(243,250,251,0.92); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.logo { display:flex; align-items:center; gap:0.7rem; }
.logo-icon { width:40px; height:40px; flex-shrink:0; }
.logo-text { font-family:'Manrope', sans-serif; font-size:1.28rem; font-weight:800; color:var(--cyan-deep); line-height:1; letter-spacing:-0.01em; }
.logo-text span {
  display:block; font-family:'Inter',sans-serif; font-size:0.6rem; font-weight:700;
  color:var(--lime-deep); letter-spacing:0.18em; text-transform:uppercase; margin-top:4px;
}
.nav-links { display:flex; align-items:center; gap:1.9rem; list-style:none; }
.nav-links a { font-size:0.87rem; font-weight:600; color:var(--ink-soft); transition:color 0.3s; }
.nav-links a:hover, .nav-links a.active { color:var(--cyan-deep); }
.nav-cta {
  background:var(--cyan) !important; color:#fff !important;
  padding:0.55rem 1.4rem !important; border-radius:50px !important; font-weight:700 !important;
  transition:all 0.3s !important; box-shadow:0 8px 20px rgba(8,145,178,0.28) !important;
}
.nav-cta:hover { background:var(--cyan-deep) !important; transform:translateY(-1px); color:#fff !important; }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; }
.hamburger span { width:22px; height:2px; background:var(--ink); border-radius:2px; }
.mobile-menu {
  display:none; position:fixed; inset:0; background:var(--paper); z-index:999;
  flex-direction:column; align-items:center; justify-content:center; gap:1.8rem;
}
.mobile-menu.open { display:flex; }
.mobile-menu a { font-family:'Manrope',sans-serif; font-size:1.5rem; font-weight:700; color:var(--ink); }
.mobile-menu a:hover { color:var(--cyan); }

/* PAGE HEADER (banner de sección para páginas internas) */
.page-header { padding:3.5rem 2.5rem 3rem; text-align:center; }
.page-header .stag { display:block; margin-bottom:0.8rem; }
.page-header h1 { font-family:'Manrope',sans-serif; font-size:clamp(2rem,4vw,2.9rem); font-weight:800; color:var(--ink); letter-spacing:-0.01em; margin-bottom:0.9rem; }
.page-header p { max-width:640px; margin:0 auto; color:var(--ink-soft); font-size:1rem; line-height:1.7; }

/* HERO (solo home) */
.hero { padding:4.5rem 2.5rem 5rem; position:relative; overflow:hidden; }
.hero-grid { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1.05fr 0.95fr; gap:3.5rem; align-items:center; }
.hero-badge {
  display:inline-flex; align-items:center; gap:0.5rem; background:var(--cyan-pale);
  border:1px solid rgba(8,145,178,0.24); color:var(--cyan-deep); padding:0.45rem 1.2rem;
  border-radius:50px; font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:1.6rem;
}
.hero h1 {
  font-family:'Manrope',sans-serif; font-size:clamp(2.3rem,4.5vw,3.6rem); font-weight:800; line-height:1.12;
  color:var(--ink); margin-bottom:1.3rem; letter-spacing:-0.01em;
}
.hero h1 em {
  font-style:normal; color:var(--cyan-deep);
  text-decoration:underline; text-decoration-color:var(--lime); text-decoration-thickness:4px; text-underline-offset:6px;
}
.hero-sub { font-size:1.06rem; line-height:1.75; color:var(--ink-soft); max-width:520px; margin-bottom:2.2rem; }
.hero-sub strong { color:var(--cyan-deep); }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }
.btn {
  display:inline-flex; align-items:center; gap:0.5rem; padding:0.9rem 1.9rem; border-radius:50px;
  font-size:0.94rem; font-weight:700; transition:all 0.3s var(--ease); cursor:pointer; border:none;
  font-family:'Inter',sans-serif;
}
.btn-p { background:var(--cyan); color:#fff; box-shadow:0 10px 26px rgba(8,145,178,0.3); }
.btn-p:hover { background:var(--cyan-deep); transform:translateY(-2px); }
.btn-g { background:var(--panel); color:var(--ink); border:1px solid var(--line); }
.btn-g:hover { border-color:var(--cyan); color:var(--cyan-deep); }
.hero-visual { position:relative; }
.hero-img-wrap {
  border-radius:var(--rl); overflow:hidden; box-shadow:var(--shadow-lg); border:1px solid var(--line);
  position:relative;
}
.hero-img-wrap img { width:100%; height:440px; object-fit:cover; }
.hero-tag {
  position:absolute; bottom:-22px; left:-22px; background:var(--panel); border:1px solid var(--line);
  border-radius:var(--r); padding:1.1rem 1.4rem; box-shadow:var(--shadow); max-width:230px;
}
.hero-tag strong { display:block; font-family:'Manrope',sans-serif; font-size:1.4rem; color:var(--cyan-deep); }
.hero-tag p { font-size:0.76rem; color:var(--ink-soft); margin-top:0.2rem; line-height:1.4; }

.container { max-width:1180px; margin:0 auto; padding:0 2.5rem; }

.reveal, .rl, .rr { opacity:0; transition:opacity 0.7s var(--ease), transform 0.7s var(--ease); }
.reveal { transform:translateY(32px); }
.rl { transform:translateX(-40px); }
.rr { transform:translateX(40px); }
.reveal.on, .rl.on, .rr.on { opacity:1; transform:translate(0); }

.stag {
  display:inline-block; font-size:0.72rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--lime-deep); margin-bottom:0.8rem;
}
.stitle { font-family:'Manrope',sans-serif; font-size:clamp(1.8rem,3.4vw,2.6rem); font-weight:800; color:var(--ink); line-height:1.2; margin-bottom:0.9rem; letter-spacing:-0.01em; }
.ssub { font-size:1rem; color:var(--ink-soft); line-height:1.7; }

.not-official {
  max-width:900px; margin:0 auto 3.5rem; background:var(--warn-bg); border:1px solid var(--warn-b);
  border-left:4px solid var(--lime-deep); border-radius:var(--r); padding:1.4rem 1.7rem; display:flex; gap:1rem; align-items:flex-start;
}
.not-official-ico { font-size:1.5rem; flex-shrink:0; }
.not-official h3 { font-size:0.95rem; font-weight:700; color:var(--warn-text); margin-bottom:0.35rem; }
.not-official p { font-size:0.85rem; color:var(--ink-soft); line-height:1.6; }

/* SITE NAV CARDS (home) */
.nav-cards { padding:5.5rem 0; }
.nc-grid { max-width:1180px; margin:0 auto; padding:0 2.5rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.nc-card { background:var(--panel); border:1px solid var(--line); border-radius:var(--rl); padding:1.9rem 1.6rem; transition:all 0.3s var(--ease); }
.nc-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--cyan); }
.nc-ico { width:50px; height:50px; border-radius:13px; background:var(--cyan-pale); display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:1.1rem; }
.nc-card h3 { font-size:1rem; font-weight:700; margin-bottom:0.5rem; }
.nc-card p { font-size:0.84rem; color:var(--ink-soft); line-height:1.6; margin-bottom:1.1rem; }
.nc-link { font-size:0.82rem; font-weight:700; color:var(--cyan-deep); display:inline-flex; align-items:center; gap:0.3rem; }
.nc-link:hover { color:var(--cyan); }

/* ABOUT */
.about-us { padding:6rem 0; background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.about-grid { max-width:1100px; margin:0 auto; padding:0 2.5rem; display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.about-card { background:var(--panel); border:1px solid var(--line); border-radius:var(--rl); padding:1.9rem; box-shadow:var(--shadow); }
.about-card h4 { font-size:0.75rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--cyan); margin-bottom:1.1rem; }
.about-row { display:flex; justify-content:space-between; gap:1rem; padding:0.8rem 0; border-bottom:1px solid var(--line-soft); font-size:0.86rem; }
.about-row:last-child { border-bottom:none; }
.about-row span:first-child { color:var(--ink-soft); }
.about-row span:last-child { color:var(--ink); font-weight:600; text-align:right; }
.about-txt { font-size:0.99rem; color:var(--ink-soft); line-height:1.8; margin:1.2rem 0; }

/* STATS */
.stats { padding:4.5rem 2.5rem; }
.stats-grid { max-width:1000px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; text-align:center; }
.stat-num { font-family:'Manrope',sans-serif; font-size:clamp(2.2rem,4.4vw,3.4rem); font-weight:800; color:var(--cyan); line-height:1; }
.stat-lbl { font-size:0.85rem; color:var(--ink-soft); margin-top:0.6rem; line-height:1.5; }
.stat-src { font-size:0.68rem; color:var(--ink-soft); opacity:0.75; margin-top:0.4rem; }

/* MISSION */
.mission { padding:6rem 0; }
.mission-grid { max-width:1180px; margin:0 auto; padding:0 2.5rem; display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; align-items:center; }
.m-img-wrap { border-radius:var(--rl); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); }
.m-img-wrap img { width:100%; height:400px; object-fit:cover; }
.m-text { font-size:0.99rem; color:var(--ink-soft); line-height:1.8; margin:1.3rem 0 2rem; }
.m-values { display:flex; flex-direction:column; gap:0.9rem; }
.m-value { display:flex; align-items:flex-start; gap:1rem; background:var(--panel); border:1px solid var(--line); border-radius:var(--r); padding:1.1rem; transition:all 0.3s var(--ease); }
.m-value:hover { border-color:var(--cyan); transform:translateX(4px); }
.m-vico { font-size:1.4rem; flex-shrink:0; }
.m-value h4 { font-size:0.92rem; font-weight:700; color:var(--ink); margin-bottom:0.2rem; }
.m-value p { font-size:0.8rem; color:var(--ink-soft); line-height:1.5; }

/* TIMELINE SECTIONS */
.treatment { padding:6rem 0; background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.treatment.alt { background:var(--paper); border:none; }
.sec-hdr { text-align:center; margin-bottom:3.5rem; }
.timeline { max-width:820px; margin:0 auto; position:relative; padding:0 2.5rem; }
.timeline::before { content:''; position:absolute; left:47px; top:6px; bottom:6px; width:2px; background-image:linear-gradient(var(--cyan-soft) 60%, transparent 0%); background-size:2px 12px; background-repeat:repeat-y; opacity:0.5; }
.t-item { display:flex; gap:1.6rem; margin-bottom:1.8rem; }
.t-num {
  width:52px; height:52px; border-radius:50%; background:var(--panel); border:2px solid var(--cyan);
  display:flex; align-items:center; justify-content:center; font-size:1.3rem; flex-shrink:0; z-index:1;
}
.t-body { background:var(--panel); border:1px solid var(--line); border-radius:var(--r); padding:1.5rem 1.6rem; flex:1; transition:all 0.3s var(--ease); }
.t-body:hover { border-color:var(--cyan); box-shadow:var(--shadow); }
.t-body h3 { font-size:0.98rem; font-weight:700; color:var(--ink); margin-bottom:0.5rem; }
.t-body p { font-size:0.87rem; color:var(--ink-soft); line-height:1.65; }
.t-img { margin:1.3rem 0 0.4rem 84px; max-width:640px; border-radius:var(--r); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); }
.t-img img { width:100%; height:220px; object-fit:cover; }

/* CARDS */
.maintenance { padding:6rem 0; }
.cards-grid { max-width:1180px; margin:0 auto; padding:0 2.5rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:var(--rl); overflow:hidden; transition:all 0.35s var(--ease); }
.card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--cyan); }
.card-top { padding:1.9rem 1.8rem 1.1rem; display:flex; align-items:center; gap:1rem; }
.card-ico { width:50px; height:50px; border-radius:13px; background:var(--cyan-pale); display:flex; align-items:center; justify-content:center; font-size:1.4rem; flex-shrink:0; }
.card-bdg { font-size:0.66rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--cyan-deep); background:var(--cyan-pale); padding:0.26rem 0.75rem; border-radius:50px; }
.card-body { padding:0 1.8rem 1.8rem; }
.card-body h3 { font-size:1.05rem; font-weight:700; color:var(--ink); margin-bottom:0.6rem; }
.card-body p { font-size:0.85rem; color:var(--ink-soft); line-height:1.65; margin-bottom:1rem; }
.card-list { list-style:none; display:flex; flex-direction:column; gap:0.4rem; }
.card-list li { font-size:0.79rem; color:var(--ink-soft); padding-left:1.1rem; position:relative; }
.card-list li::before { content:'→'; position:absolute; left:0; color:var(--lime-deep); font-size:0.72rem; }

/* FAMILIA / DARK SECTION */
.rural { padding:6.5rem 0; background:linear-gradient(180deg, var(--cyan-deep) 0%, var(--cyan) 100%); color:#fff; }
.rural-grid { max-width:1180px; margin:0 auto; padding:0 2.5rem; display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.rural .stag { color:var(--lime); }
.rural .stitle { color:#fff; }
.rural-txt { font-size:0.99rem; color:rgba(255,255,255,0.85); line-height:1.8; margin:1.2rem 0 2rem; }
.rural-feats { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.rfeat { background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.18); border-radius:var(--r); padding:1.2rem; }
.rfeat-ico { font-size:1.6rem; margin-bottom:0.5rem; }
.rfeat h4 { font-size:0.87rem; font-weight:700; color:#fff; margin-bottom:0.3rem; }
.rfeat p { font-size:0.77rem; color:rgba(255,255,255,0.75); line-height:1.5; }
.rural-vis { display:flex; flex-direction:column; gap:1.2rem; }
.rstat { background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.18); border-radius:var(--rl); padding:1.8rem; text-align:center; }
.rstat strong { display:block; font-family:'Manrope',sans-serif; font-size:2.5rem; font-weight:800; color:#fff; }
.rstat p { font-size:0.82rem; color:rgba(255,255,255,0.78); margin-top:0.4rem; line-height:1.5; }
.rstat span.src { font-size:0.64rem; opacity:0.65; display:block; margin-top:0.3rem; }
.rquote { background:rgba(255,255,255,0.1); border-left:3px solid var(--lime); border-radius:var(--r); padding:1.5rem; }
.rquote p { font-size:0.96rem; color:#fff; line-height:1.7; font-style:italic; }

/* RESOURCES */
.resources { padding:6rem 0; }
.res-grid { max-width:1180px; margin:0 auto; padding:0 2.5rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.res-card { background:var(--panel); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; transition:all 0.3s var(--ease); }
.res-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--cyan); }
.res-card-body { padding:1.5rem; }
.res-ico { font-size:1.6rem; margin-bottom:0.7rem; }
.res-card h3 { font-size:0.92rem; font-weight:700; color:var(--ink); margin-bottom:0.5rem; }
.res-card p { font-size:0.8rem; color:var(--ink-soft); line-height:1.6; }

/* CONTACT */
.contact { padding:6rem 0; background:var(--paper-2); border-top:1px solid var(--line); }
.contact-grid { max-width:1100px; margin:0 auto; padding:0 2.5rem; display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; align-items:start; }
.c-details { display:flex; flex-direction:column; gap:0.9rem; margin:1.3rem 0; }
.c-det { display:flex; align-items:center; gap:1rem; }
.c-ico { width:42px; height:42px; border-radius:11px; background:var(--panel); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:1.05rem; flex-shrink:0; }
.c-det strong { display:block; font-size:0.76rem; color:var(--ink-soft); margin-bottom:2px; }
.c-det a, .c-det span { font-size:0.87rem; color:var(--ink); font-weight:600; }
.c-det a:hover { color:var(--cyan); }
.c-note { background:var(--cyan-pale); border:1px solid rgba(8,145,178,0.2); border-radius:var(--r); padding:1.1rem 1.3rem; margin-top:0.9rem; }
.c-note strong { display:block; font-size:0.8rem; color:var(--cyan-deep); margin-bottom:0.3rem; }
.c-note p { font-size:0.78rem; color:var(--ink-soft); line-height:1.55; }
.c-form { background:var(--panel); border:1px solid var(--line); border-radius:var(--rl); padding:2.2rem; box-shadow:var(--shadow); }
.btn-sub {
  width:100%; background:var(--cyan); color:#fff; border:none; border-radius:50px; padding:1rem;
  font-size:0.94rem; font-weight:700; cursor:pointer; transition:all 0.3s var(--ease); text-align:center;
}
.btn-sub:hover { background:var(--cyan-deep); }
.f-note { font-size:0.72rem; color:var(--ink-soft); text-align:center; margin-top:0.7rem; line-height:1.5; }

/* FOOTER */
footer { background:var(--ink); color:rgba(255,255,255,0.72); padding:4.5rem 2.5rem 2.2rem; }
.ft-disclaimer { max-width:1180px; margin:0 auto 3rem; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.14); border-radius:var(--r); padding:1.2rem 1.5rem; font-size:0.8rem; line-height:1.65; }
.ft-disclaimer strong { color:#fff; }
.ft-grid { max-width:1180px; margin:0 auto 3rem; display:grid; grid-template-columns:2fr 1fr 1fr; gap:4rem; }
.ft-tag { font-size:0.84rem; line-height:1.7; margin-top:1rem; max-width:300px; }
.ft-col h4 { font-size:0.73rem; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:rgba(255,255,255,0.55); margin-bottom:1.1rem; }
.ft-col ul { list-style:none; display:flex; flex-direction:column; gap:0.6rem; }
.ft-col a { font-size:0.83rem; color:rgba(255,255,255,0.72); transition:color 0.3s; }
.ft-col a:hover { color:#fff; }
.ft-bottom { max-width:1180px; margin:0 auto; padding-top:2rem; border-top:1px solid rgba(255,255,255,0.1); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
.ft-bottom p { font-size:0.75rem; }
.ft-bottom a { color:var(--lime); }

#btt {
  position:fixed; bottom:2rem; right:2rem; width:44px; height:44px; border-radius:50%;
  background:var(--cyan); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:1rem; box-shadow:var(--shadow); opacity:0; transform:translateY(20px);
  transition:all 0.3s var(--ease); z-index:100;
}
#btt.show { opacity:1; transform:translateY(0); }
#btt:hover { background:var(--cyan-deep); }

@media (max-width:1024px) {
  .hero-grid, .mission-grid, .rural-grid, .contact-grid, .about-grid { grid-template-columns:1fr; gap:3rem; }
  .cards-grid, .res-grid, .nc-grid { grid-template-columns:repeat(2,1fr); }
  .rural-feats { grid-template-columns:1fr 1fr; }
  .ft-grid { grid-template-columns:1fr 1fr; gap:2.5rem; }
  .hero-tag { display:none; }
  .t-img { margin-left:0; }
}
@media (max-width:768px) {
  nav { padding:1rem 1.5rem; }
  .nav-links { display:none; }
  .hamburger { display:flex; }
  .stats-grid { grid-template-columns:1fr; gap:2.2rem; }
  .cards-grid, .res-grid, .nc-grid { grid-template-columns:1fr; }
  .rural-feats { grid-template-columns:1fr; }
  .ft-grid { grid-template-columns:1fr; gap:2rem; }
  .ft-bottom { flex-direction:column; text-align:center; }
  .timeline::before { left:25px; }
  .t-num { width:44px; height:44px; font-size:1.05rem; }
  .disclaimer-banner { font-size:0.72rem; padding:0.5rem 1rem; }
}
@media (max-width:480px) {
  .hero { padding:3.5rem 1.25rem 4rem; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .mission, .maintenance, .treatment, .rural, .resources, .contact, .about-us, .nav-cards { padding:4.5rem 0; }
  .stats { padding:3.5rem 1.25rem; }
  .legal { padding:4.5rem 1.25rem; }
  .about-grid, .mission-grid, .rural-grid, .contact-grid, .cards-grid, .res-grid, .nc-grid, .timeline { padding-left:1.25rem; padding-right:1.25rem; }
  .page-header { padding:2.5rem 1.25rem 2rem; }
}

.legal { padding:5.5rem 2.5rem; border-top:1px solid var(--line); }
.legal.alt { background:var(--paper-2); }
.legal-wrap { max-width:840px; margin:0 auto; }
.legal-wrap .stitle { margin-bottom:1.3rem; font-size:clamp(1.6rem,3vw,2.2rem); }
.legal-wrap h3 { font-size:1.03rem; font-weight:700; color:var(--ink); margin:1.8rem 0 0.55rem; }
.legal-wrap p, .legal-wrap li { font-size:0.91rem; color:var(--ink-soft); line-height:1.8; }
.legal-wrap p { margin-bottom:1rem; }
.legal-wrap ul { margin:0 0 1rem 1.3rem; display:flex; flex-direction:column; gap:0.5rem; }
.legal-wrap a { color:var(--cyan); text-decoration:underline; }
.legal-updated { font-size:0.8rem; color:var(--ink-soft); opacity:0.75; margin-top:1.8rem; font-style:italic; }

.cookie-banner {
  position:fixed; bottom:0; left:0; right:0; z-index:2000; background:var(--ink); color:#fff;
  padding:1.2rem 1.8rem; display:none; gap:1.3rem; align-items:center; justify-content:center; flex-wrap:wrap;
  box-shadow:0 -10px 40px rgba(0,0,0,0.25);
}
.cookie-banner.show { display:flex; }
.cookie-banner p { font-size:0.82rem; line-height:1.55; max-width:700px; color:rgba(255,255,255,0.85); }
.cookie-banner a { color:var(--lime); text-decoration:underline; }
.cookie-actions { display:flex; gap:0.7rem; flex-shrink:0; }
.ck-btn { padding:0.6rem 1.4rem; border-radius:50px; font-size:0.82rem; font-weight:700; cursor:pointer; border:1px solid rgba(255,255,255,0.3); font-family:'Inter',sans-serif; transition:all 0.3s var(--ease); }
.ck-accept { background:var(--cyan-soft); color:#fff; border:none; }
.ck-accept:hover { background:var(--cyan); }
.ck-reject { background:transparent; color:#fff; }
.ck-reject:hover { background:rgba(255,255,255,0.1); }
@media (max-width:600px){ .cookie-banner{ flex-direction:column; text-align:center; padding:1rem 1.25rem; } }
