@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600;8..60,700&family=Inter:wght@400;500;600;700&display=swap');

/* =========================================================
   Pintan — Fundamentos y Prácticas de la Contabilidad Empresarial
   Hoja de estilos general
   ========================================================= */

:root{
  --color-bg:#ffffff;
  --color-bg-alt:#f5f3ee;
  --color-bg-alt2:#ece8e0;
  --color-text:#232320;
  --color-text-muted:#6b6a63;
  --color-border:#e0dcd2;
  --color-accent:#1b3a34;
  --color-accent-light:#2f5c52;
  --color-accent-soft:#e5ece9;
  --font-heading:'Source Serif 4', Georgia, serif;
  --font-body:'Inter', Arial, sans-serif;
  --radius:6px;
  --max-width:1180px;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--font-body);
  color:var(--color-text);
  background:var(--color-bg);
  line-height:1.6;
  font-size:16px;
}
img{max-width:100%;display:block;height:auto;}
a{color:var(--color-accent);text-decoration:none;}
a:hover{text-decoration:underline;}
h1,h2,h3,h4{
  font-family:var(--font-heading);
  font-weight:600;
  color:var(--color-text);
  line-height:1.25;
  margin:0 0 0.6em;
}
h1{font-size:2.4rem;}
h2{font-size:1.85rem;}
h3{font-size:1.35rem;}
h4{font-size:1.1rem;}
p{margin:0 0 1.1em;}
ul,ol{margin:0 0 1.1em;padding-left:1.3em;}
li{margin-bottom:0.4em;}
.container{
  width:100%;
  max-width:var(--max-width);
  margin:0 auto;
  padding:0 24px;
}

/* ---------- Header ---------- */
.site-header{
  border-bottom:1px solid var(--color-border);
  background:var(--color-bg);
  position:relative;
  z-index:50;
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 24px;
}
.logo{
  font-family:var(--font-heading);
  font-size:1.5rem;
  font-weight:700;
  color:var(--color-accent);
  letter-spacing:0.02em;
}
.logo:hover{text-decoration:none;}
.main-nav ul{
  display:flex;
  list-style:none;
  gap:28px;
  margin:0;
  padding:0;
}
.main-nav a{
  color:var(--color-text);
  font-weight:500;
  font-size:0.95rem;
}
.main-nav a:hover{color:var(--color-accent);text-decoration:none;}
.nav-toggle{
  display:none;
  background:none;
  border:1px solid var(--color-border);
  border-radius:var(--radius);
  padding:8px 14px;
  font-family:var(--font-body);
  font-size:0.9rem;
  cursor:pointer;
}
.breadcrumbs{
  font-size:0.85rem;
  color:var(--color-text-muted);
  padding:14px 0;
}
.breadcrumbs a{color:var(--color-text-muted);}
.breadcrumbs a:hover{color:var(--color-accent);}

/* ---------- Hero ---------- */
.hero{
  padding:64px 0 56px;
  background:var(--color-bg);
}
.hero-inner{
  display:flex;
  align-items:center;
  gap:56px;
}
.hero-copy{flex:1 1 480px;}
.hero-media{flex:1 1 380px;}
.hero h1{font-size:2.6rem;max-width:640px;}
.hero p.lead{
  font-size:1.15rem;
  color:var(--color-text-muted);
  max-width:560px;
}
.hero-media img{
  border-radius:var(--radius);
}
.hero-actions{
  display:flex;
  gap:16px;
  margin-top:26px;
  flex-wrap:wrap;
}
.page-hero{
  background:var(--color-bg-alt);
  padding:48px 0;
  border-bottom:1px solid var(--color-border);
}
.page-hero h1{margin-bottom:0.4em;}
.page-hero .lead{color:var(--color-text-muted);font-size:1.05rem;max-width:720px;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  padding:12px 26px;
  border-radius:var(--radius);
  font-weight:600;
  font-size:0.95rem;
  border:1px solid transparent;
  cursor:pointer;
  font-family:var(--font-body);
}
.btn-primary{
  background:var(--color-accent);
  color:#ffffff;
}
.btn-primary:hover{background:var(--color-accent-light);text-decoration:none;}
.btn-secondary{
  background:transparent;
  border:1px solid var(--color-accent);
  color:var(--color-accent);
}
.btn-secondary:hover{background:var(--color-accent-soft);text-decoration:none;}

/* ---------- Sections & blocks ---------- */
section{padding:56px 0;}
.section-alt{background:var(--color-bg-alt);}
.section-title{max-width:680px;margin-bottom:36px;}
.section-title p{color:var(--color-text-muted);}

.grid-3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.grid-2{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:32px;
}
.card{
  background:var(--color-bg);
  border:1px solid var(--color-border);
  border-radius:var(--radius);
  padding:28px;
}
.card h3{margin-bottom:0.5em;}
.card p{color:var(--color-text-muted);margin-bottom:0;}

.info-block{
  background:var(--color-bg-alt);
  border-radius:var(--radius);
  padding:30px 32px;
  margin:28px 0;
}
.info-block h3{margin-bottom:0.5em;}

.callout{
  border-left:3px solid var(--color-accent);
  padding:18px 26px;
  background:var(--color-accent-soft);
  border-radius:0 var(--radius) var(--radius) 0;
  margin:28px 0;
}
.callout p{margin:0;color:var(--color-text);}

.two-col{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:48px;
  align-items:flex-start;
}

table.data-table{
  width:100%;
  border-collapse:collapse;
  margin:24px 0;
  font-size:0.95rem;
}
table.data-table caption{
  text-align:left;
  font-weight:600;
  margin-bottom:10px;
  color:var(--color-text-muted);
}
table.data-table th,table.data-table td{
  border:1px solid var(--color-border);
  padding:10px 14px;
  text-align:left;
}
table.data-table thead th{
  background:var(--color-bg-alt2);
  font-family:var(--font-heading);
}

.timeline{list-style:none;padding-left:0;margin:24px 0;}
.timeline li{
  position:relative;
  padding-left:28px;
  margin-bottom:20px;
  border-left:2px solid var(--color-border);
  padding-bottom:4px;
}
.timeline li::before{
  content:'';
  position:absolute;
  left:-6px;
  top:2px;
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--color-accent);
}
.timeline li:last-child{border-left:2px solid transparent;}

.faq-item{
  border-bottom:1px solid var(--color-border);
  padding:18px 0;
}
.faq-question{
  display:flex;
  justify-content:space-between;
  align-items:center;
  cursor:pointer;
  font-weight:600;
  font-family:var(--font-heading);
  font-size:1.05rem;
}
.faq-answer{
  display:none;
  color:var(--color-text-muted);
  margin-top:12px;
}
.faq-item.open .faq-answer{display:block;}
.faq-item.open .faq-icon{transform:rotate(45deg);}
.faq-icon{transition:transform 0.2s ease;font-size:1.3rem;color:var(--color-accent);}

.tag-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:10px;}
.tag-list li{
  border:1px solid var(--color-border);
  border-radius:var(--radius);
  padding:6px 14px;
  font-size:0.85rem;
  color:var(--color-text-muted);
  margin:0;
}

.article-list{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;}
.article-card{border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;background:var(--color-bg);}
.article-card img{aspect-ratio:16/10;object-fit:cover;}
.article-card-body{padding:22px;}
.article-card-body .meta{font-size:0.8rem;color:var(--color-text-muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:0.04em;}
.article-card-body h3{margin-bottom:0.5em;}
.article-card-body p{color:var(--color-text-muted);font-size:0.95rem;}

article.post-content{max-width:760px;}
article.post-content h2{margin-top:1.6em;}
.post-meta{color:var(--color-text-muted);font-size:0.9rem;margin-bottom:2em;}
.post-image{margin:28px 0;border-radius:var(--radius);}
.post-image figcaption{font-size:0.85rem;color:var(--color-text-muted);margin-top:8px;}

.glossary-list{columns:1;}
.glossary-entry{border-bottom:1px solid var(--color-border);padding:18px 0;}
.glossary-entry dt{font-family:var(--font-heading);font-weight:600;font-size:1.05rem;}
.glossary-entry dd{margin:6px 0 0;color:var(--color-text-muted);}

.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:30px 0;}
.stat-item{border:1px solid var(--color-border);border-radius:var(--radius);padding:22px;}
.stat-item .label{font-size:0.85rem;color:var(--color-text-muted);}
.stat-item .value{font-family:var(--font-heading);font-size:1.6rem;color:var(--color-accent);}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
.contact-form label{display:block;font-weight:600;margin-bottom:6px;font-size:0.9rem;}
.contact-form .field{margin-bottom:20px;}
.contact-form input,.contact-form textarea,.contact-form select{
  width:100%;
  padding:11px 14px;
  border:1px solid var(--color-border);
  border-radius:var(--radius);
  font-family:var(--font-body);
  font-size:0.95rem;
  background:var(--color-bg);
  color:var(--color-text);
}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{
  outline:2px solid var(--color-accent-light);
  outline-offset:1px;
}
.form-success{
  display:none;
  background:var(--color-accent-soft);
  border:1px solid var(--color-accent-light);
  color:var(--color-accent);
  padding:16px 20px;
  border-radius:var(--radius);
  margin-bottom:20px;
  font-weight:600;
}
.form-success.visible{display:block;}
.contact-details dl{margin:0;}
.contact-details dt{font-weight:600;margin-top:18px;}
.contact-details dd{margin:2px 0 0;color:var(--color-text-muted);}

/* ---------- Footer ---------- */
.site-footer{
  background:var(--color-accent);
  color:#e9efec;
  padding:56px 0 0;
  margin-top:40px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:36px;
  padding-bottom:40px;
}
.footer-logo{font-family:var(--font-heading);font-size:1.4rem;color:#ffffff;font-weight:700;margin-bottom:10px;}
.site-footer address{font-style:normal;color:#cfdad4;font-size:0.9rem;line-height:1.7;}
.site-footer p{color:#cfdad4;}
.footer-col h3{color:#ffffff;font-size:0.95rem;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:14px;}
.footer-col ul{list-style:none;padding:0;margin:0;}
.footer-col a{color:#cfdad4;font-size:0.92rem;}
.footer-col a:hover{color:#ffffff;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,0.14);
  padding:20px 0;
  font-size:0.82rem;
  color:#a9bdb5;
}

/* ---------- Legal / narrow content pages ---------- */
.narrow{max-width:760px;}
.breadcrumb{font-size:0.85rem;color:var(--color-text-muted);margin-bottom:14px;}
.breadcrumb a{color:var(--color-text-muted);}
.breadcrumb a:hover{color:var(--color-accent);}
.legal-content h2{margin-top:2em;font-size:1.4rem;}
.legal-content p{color:var(--color-text);}
.legal-content ul{color:var(--color-text);}

/* ---------- Sitemap page ---------- */
.sitemap-block{margin-bottom:36px;}
.sitemap-block h2{border-bottom:1px solid var(--color-border);padding-bottom:12px;margin-bottom:16px;font-size:1.3rem;}
.sitemap-list{list-style:none;padding:0;margin:0;columns:2;column-gap:32px;}
.sitemap-list li{margin-bottom:10px;}
@media (max-width:640px){.sitemap-list{columns:1;}}

/* ---------- Utility ---------- */
.text-muted{color:var(--color-text-muted);}
.mt-0{margin-top:0;}
.center{text-align:center;}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .hero-inner{flex-direction:column;}
  .grid-3{grid-template-columns:1fr;}
  .grid-2{grid-template-columns:1fr;}
  .two-col{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .article-list{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .stat-row{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .main-nav ul{
    display:none;
    flex-direction:column;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--color-bg);
    border-bottom:1px solid var(--color-border);
    padding:16px 24px;
    gap:14px;
  }
  .main-nav ul.open{display:flex;}
  .nav-toggle{display:block;}
  h1{font-size:1.9rem;}
  .footer-grid{grid-template-columns:1fr;}
}
