:root{
  --ink:#16213A; --ink-soft:#3C4A63;
  --paper:#F6F8F4; --paper-raised:#FFFFFF;
  --rule:#D7DED2;
  --gold:#DE9B34; --gold-deep:#B87A1E;
  --green:#2E6E52; --green-soft:#E4EFE6;
  --serif:'Fraunces', Georgia, 'Times New Roman', serif;
  --sans:'Public Sans', -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
  box-sizing:border-box;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#EDEFE9; --ink-soft:#B9C2CC; --paper:#12161C; --paper-raised:#181E27; --rule:#2A323D; --green-soft:#1B2A22;
  }
}
:root[data-theme="dark"]{
  --ink:#EDEFE9; --ink-soft:#B9C2CC; --paper:#12161C; --paper-raised:#181E27; --rule:#2A323D; --green-soft:#1B2A22;
}
html{scroll-padding-top:calc(64px + env(safe-area-inset-top,0px));}
*{box-sizing:inherit;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased;}
img{max-width:100%;}
a{color:inherit;}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px;}
.prose-wrap{max-width:680px;}

/* header */
header.site{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--rule);padding-top:env(safe-area-inset-top,0px);}
.nav-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 24px;max-width:1120px;margin:0 auto;}
.wordmark{font-family:var(--serif);font-weight:600;font-size:1.25rem;letter-spacing:0.01em;text-decoration:none;color:var(--ink);white-space:nowrap;display:inline-flex;align-items:center;gap:9px;}
.wordmark span{color:var(--gold-deep);}
.brand-mark{flex:none;border-radius:8px;}
nav.primary{display:flex;gap:22px;overflow-x:auto;scrollbar-width:none;}
nav.primary::-webkit-scrollbar{display:none;}
nav.primary a{font-size:0.92rem;text-decoration:none;color:var(--ink-soft);white-space:nowrap;padding:4px 0;border-bottom:2px solid transparent;}
nav.primary a:hover,nav.primary a.active{color:var(--ink);border-bottom-color:var(--gold);}
.btn{display:inline-block;font-family:var(--sans);font-weight:600;font-size:0.94rem;text-decoration:none;padding:11px 20px;border-radius:3px;border:1px solid transparent;cursor:pointer;}
.btn-primary{background:var(--ink);color:var(--paper-raised);}
.btn-primary:hover{background:var(--green);}
.btn-ghost{border-color:var(--rule);color:var(--ink);background:transparent;}
.btn-ghost:hover{border-color:var(--ink);}
.btn-sm{padding:8px 14px;font-size:0.85rem;}

/* sections generic */
section{padding:56px 0;}
.rule-top{border-top:1px solid var(--rule);}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.15;margin:0 0 0.5em;color:var(--ink);}
h2{font-size:1.7rem;}
h3{font-size:1.25rem;}
p{margin:0 0 1.1em;}
.eyebrow-label{font-family:var(--sans);font-size:0.8rem;color:var(--green);margin:0 0 10px;}

/* HOME */
.hero{padding:64px 0 48px;}
.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center;}
.hero h1{font-size:clamp(2.1rem,4.4vw,3.1rem);max-width:14ch;}
.hero .dek{font-size:1.14rem;color:var(--ink-soft);max-width:46ch;margin-bottom:1.6em;}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:22px;}
.hero-trust{font-size:0.86rem;color:var(--ink-soft);border-left:2px solid var(--rule);padding-left:12px;}
.solar-fig{width:100%;}
.solar-fig text{font-family:var(--sans);}

.start-here{display:grid;grid-template-columns:repeat(3,1fr);}
.start-here .item{padding:0 28px;border-left:1px solid var(--rule);}
.start-here .item:first-child{border-left:none;padding-left:0;}
.start-here h3{font-size:1.05rem;margin-bottom:8px;}
.start-here p{color:var(--ink-soft);font-size:0.95rem;margin-bottom:12px;}
.start-here a.textlink{font-weight:600;font-size:0.9rem;text-decoration:none;color:var(--green);}

.cat-list{display:grid;grid-template-columns:1fr 1fr;column-gap:48px;}
.cat-row{display:flex;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--rule);}
.cat-row:first-child{border-top:1px solid var(--rule);}
.cat-row h3{font-size:1.05rem;margin:0 0 4px;}
.cat-row p{margin:0;color:var(--ink-soft);font-size:0.88rem;}
.cat-row .go{align-self:center;font-size:0.85rem;color:var(--ink-soft);white-space:nowrap;}
.stub-tag{font-size:0.72rem;color:var(--gold-deep);background:none;border:1px solid var(--gold);border-radius:2px;padding:1px 6px;margin-left:8px;vertical-align:middle;}
.subart-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;}
.subart-list li a{font-size:0.82rem;text-decoration:none;color:var(--ink-soft);border-bottom:1px dotted var(--rule);cursor:pointer;}
.subart-list li a:hover{color:var(--green);border-bottom-color:var(--green);}

.featured{display:grid;grid-template-columns:0.9fr 1.4fr;gap:40px;align-items:start;background:var(--paper-raised);border:1px solid var(--rule);padding:36px;border-radius:4px;}
.featured .meta{font-size:0.85rem;color:var(--ink-soft);margin-bottom:10px;}
.featured h2{font-size:1.6rem;margin-bottom:0.4em;}
.featured blockquote{margin:0 0 1.2em;font-size:1.02rem;color:var(--ink-soft);border-left:3px solid var(--gold);padding-left:16px;}

.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.trust-grid h3{font-size:1rem;}
.trust-grid p{color:var(--ink-soft);font-size:0.92rem;}

footer.site{border-top:1px solid var(--rule);padding:40px 0 calc(40px + env(safe-area-inset-bottom,0px));font-size:0.88rem;color:var(--ink-soft);}
.footer-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;}
.footer-grid a{text-decoration:none;color:var(--ink-soft);display:block;margin-bottom:6px;}
.footer-grid a:hover{color:var(--ink);}

/* ARTICLE */
.breadcrumb{font-size:0.85rem;color:var(--ink-soft);margin-bottom:18px;}
.breadcrumb a{text-decoration:none;color:var(--ink-soft);}
.article-head h1{font-size:clamp(1.8rem,3.4vw,2.5rem);max-width:22ch;}
.article-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:0.86rem;color:var(--ink-soft);margin:14px 0 30px;}
.summary-box{border-left:3px solid var(--green);background:var(--green-soft);padding:18px 22px;margin:0 0 32px;font-size:1rem;}
.summary-box strong{display:block;font-size:0.78rem;color:var(--green);margin-bottom:6px;}
.toc{border:1px solid var(--rule);border-radius:4px;padding:18px 22px;margin-bottom:36px;}
.toc strong{display:block;font-size:0.78rem;color:var(--ink-soft);margin-bottom:10px;}
.toc ol{margin:0;padding-left:18px;font-size:0.92rem;}
.toc li{margin-bottom:6px;}
.toc a{text-decoration:none;color:var(--ink);}
.toc a:hover{color:var(--green);}
.article-body h2{margin-top:1.6em;font-size:1.45rem;}
.article-body h3{margin-top:1.2em;font-size:1.1rem;}
.article-body table{width:100%;border-collapse:collapse;margin:1.4em 0;font-size:0.92rem;}
.article-body th,.article-body td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--rule);}
.article-body th{font-family:var(--sans);font-weight:600;color:var(--ink-soft);font-size:0.82rem;}
.ad-slot{border:1px dashed var(--rule);border-radius:4px;padding:22px;text-align:center;color:var(--ink-soft);font-size:0.82rem;margin:2em 0;}
.verified-box{background:var(--paper-raised);border:1px solid var(--rule);border-radius:4px;padding:20px 22px;margin:2em 0;font-size:0.92rem;}
.verified-box strong{display:block;font-size:0.78rem;color:var(--green);margin-bottom:8px;}
.verified-box ul{margin:0.4em 0 0;padding-left:18px;}
.faq-item{border-top:1px solid var(--rule);padding:16px 0;}
.faq-item:last-child{border-bottom:1px solid var(--rule);}
.faq-q{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:600;font-size:1rem;gap:16px;}
.faq-q .sign{color:var(--gold-deep);font-family:var(--serif);font-size:1.2rem;flex-shrink:0;}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;color:var(--ink-soft);font-size:0.95rem;}
.faq-a p{margin-top:10px;}
.faq-item.open .faq-a{max-height:400px;}
.cta-box{background:var(--ink);color:var(--paper);border-radius:4px;padding:32px;margin:2.4em 0;}
.cta-box h3{color:var(--paper);margin-bottom:8px;}
.cta-box p{color:#C7CDD8;margin-bottom:18px;}
.related{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;margin-top:16px;}
.related a{display:block;text-decoration:none;color:var(--ink);border-top:1px solid var(--rule);padding-top:12px;font-size:0.94rem;}
.related span{display:block;font-size:0.78rem;color:var(--ink-soft);margin-top:4px;}
.author-line{display:flex;gap:12px;align-items:center;margin:2em 0;font-size:0.88rem;color:var(--ink-soft);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:16px 0;}
.author-avatar{width:34px;height:34px;border-radius:50%;background:var(--gold);flex-shrink:0;}

.notice{max-width:1120px;margin:0 auto;padding:10px 24px;font-size:0.78rem;color:var(--ink-soft);text-align:center;}

@media (max-width: 860px){
  .hero-grid{grid-template-columns:1fr;}
  .solar-fig{order:-1;max-width:340px;margin:0 auto;}
  .start-here{grid-template-columns:1fr;gap:22px;}
  .start-here .item{border-left:none;padding-left:0;border-top:1px solid var(--rule);padding-top:20px;}
  .start-here .item:first-child{border-top:none;padding-top:0;}
  .cat-list{grid-template-columns:1fr;}
  .featured{grid-template-columns:1fr;padding:24px;}
  .trust-grid{grid-template-columns:1fr;gap:22px;}
  .related{grid-template-columns:1fr;}
  nav.primary{display:none;}
}


.calc-box{background:var(--paper-raised);border:1px solid var(--rule);border-radius:6px;padding:28px 26px;margin:1.6em 0 2.4em;}
.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px;margin-bottom:18px;}
.calc-field{display:flex;flex-direction:column;gap:6px;font-size:0.88rem;color:var(--ink-soft);}
.calc-field span{font-weight:600;color:var(--ink);}
.calc-field input,.calc-field select{font-family:var(--sans);font-size:0.95rem;padding:9px 10px;border:1px solid var(--rule);border-radius:4px;background:var(--paper);color:var(--ink);}
.calc-field small{font-size:0.78rem;color:var(--ink-soft);}
.calc-checkbox{display:flex;align-items:center;gap:8px;font-size:0.92rem;margin-bottom:20px;cursor:pointer;}
.calc-checkbox input{width:16px;height:16px;}
.calc-results{margin-top:28px;border-top:1px solid var(--rule);padding-top:24px;}
.calc-result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:18px;}
.calc-result-tile{background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:16px 18px;}
.calc-result-tile-highlight{background:var(--green-soft);border-color:var(--green);grid-column:1 / -1;}
.calc-result-label{display:block;font-size:0.78rem;color:var(--ink-soft);margin-bottom:4px;}
.calc-result-value{display:block;font-size:1.3rem;font-family:var(--serif);font-weight:600;color:var(--ink);}
.calc-breakdown{font-size:0.9rem;color:var(--ink-soft);}
.calc-disclaimer{font-size:0.82rem;color:var(--ink-soft);border-top:1px dashed var(--rule);padding-top:14px;}
@media (max-width:640px){.calc-grid{grid-template-columns:1fr;} .calc-result-grid{grid-template-columns:1fr;}}


.soon-box{background:var(--paper-raised);border:1px dashed var(--rule);border-radius:6px;padding:36px 32px;margin:1.6em 0 2.4em;text-align:left;}
.soon-tag{display:inline-block;font-size:0.75rem;color:var(--gold-deep);background:none;border:1px solid var(--gold);border-radius:2px;padding:2px 8px;margin-bottom:14px;}
.soon-box h1{font-size:1.7rem;margin-bottom:0.5em;}
.soon-box p{color:var(--ink-soft);max-width:60ch;}


.contact-form{background:var(--paper-raised);border:1px solid var(--rule);border-radius:6px;padding:26px 24px;margin:1.4em 0 2em;display:flex;flex-direction:column;gap:16px;max-width:480px;}
.contact-form .calc-field select,.contact-form .calc-field input,.contact-form .calc-field textarea{font-family:var(--sans);font-size:0.95rem;padding:9px 10px;border:1px solid var(--rule);border-radius:4px;background:var(--paper);color:var(--ink);resize:vertical;}
.contact-form button{align-self:flex-start;}
.hp-field{position:absolute;left:-9999px;}
.contact-status{font-size:0.9rem;margin:0;padding:10px 12px;border-radius:4px;}
.contact-status.ok{background:var(--green-soft);color:var(--green);}
.contact-status.err{background:#F4D9D9;color:#8A2E2E;}

.fn a{text-decoration:none;} .fuentes-list li{margin-bottom:0.4em;word-break:break-word;}
