/*
Theme Name: TuInmoCalc
Theme URI: https://www.calculadora-inmobiliaria.com
Author: Luis
Description: Tema para web de calculadoras y guías inmobiliarias en España (comprar, hipotecas, alquilar, invertir, vender, solares). Incluye CPT de calculadoras, taxonomía de pilares y shortcodes para insertar las calculadoras HTML/JS.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: tuinmocalc
*/

:root{
  --paper:#F5F0E6; --paper2:#EDE6D8; --paper3:#E4DBC7;
  --line:#DCD2BC; --line-soft:#E4DBC7;
  --ink:#1E2A33; --ink-soft:#4B5A63; --ink-faint:#8092A0;
  --hero:#16222C; --hero-line:rgba(255,255,255,0.1);
  --terracota:#B9542E; --terracota-dim:#F0DDD2;
  --teal:#1E6F63; --teal-dim:#DCEBE6;
  --plum:#6B4E80; --plum-dim:#E9E1EE;
}
*{box-sizing:border-box;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:'Inter',sans-serif;line-height:1.55;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px;}
.screen-reader-text{position:absolute;left:-9999px;}

/* ---------------------------------------------
   Header / nav (used on every template)
--------------------------------------------- */
.site-header{background:var(--hero);color:#fff;position:relative;}
.headerbar{display:flex;align-items:center;justify-content:space-between;padding:18px 0;position:relative;border-bottom:1px solid var(--hero-line);}
.logo{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:18px;display:flex;align-items:center;gap:8px;color:#fff;}
.logo .mark{width:20px;height:20px;border:2px solid var(--terracota);border-radius:4px;flex:none;}
.main-nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0;font-size:13px;color:rgba(255,255,255,0.75);}
.main-nav a:hover{color:#fff;}
@media (max-width:820px){.main-nav{display:none;}}
.cta-btn{background:var(--terracota);color:#fff;font-weight:600;padding:9px 16px;border-radius:6px;font-size:13px;}

/* ---------------------------------------------
   Front page hero
--------------------------------------------- */
.hero-band{background:var(--hero);color:#fff;position:relative;overflow:hidden;}
.hero-band .photo-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0.38;}
.hero-band .photo-overlay{position:absolute;inset:0;background:linear-gradient(100deg, var(--hero) 30%, rgba(22,34,44,0.55) 75%);}
.hero-band .grid-overlay{position:absolute;inset:0;
  background:linear-gradient(rgba(255,255,255,0.045) 1px, transparent 1px) 0 0/32px 32px,
             linear-gradient(90deg, rgba(255,255,255,0.045) 1px, transparent 1px) 0 0/32px 32px;
  pointer-events:none;}
.hero-inner{position:relative;padding:64px 0 72px;display:grid;grid-template-columns:1.1fr 0.9fr;gap:40px;align-items:center;}
@media (max-width:900px){.hero-inner{grid-template-columns:1fr;padding:44px 0 48px;}}
.stat-badge{display:inline-flex;gap:18px;background:rgba(255,255,255,0.06);border:1px solid var(--hero-line);border-radius:8px;padding:10px 16px;margin-bottom:22px;font-family:'IBM Plex Mono',monospace;font-size:12px;color:#fff;}
.stat-badge b{color:var(--terracota);font-size:14px;}
.hero-inner h1{font-family:'Space Grotesk',sans-serif;font-size:42px;line-height:1.12;font-weight:700;margin:0 0 16px;letter-spacing:-0.01em;}
.hero-inner h1 span{color:var(--terracota);}
.hero-inner p{color:rgba(255,255,255,0.72);font-size:15px;max-width:460px;margin:0 0 26px;}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap;}
.btn-primary{background:var(--terracota);color:#fff;font-weight:600;padding:12px 22px;border-radius:7px;font-size:14px;display:inline-block;}
.btn-secondary{border:1px solid rgba(255,255,255,0.3);color:#fff;padding:12px 22px;border-radius:7px;font-size:14px;display:inline-block;}
.hero-panel{background:rgba(255,255,255,0.05);border:1px solid var(--hero-line);border-radius:12px;padding:20px;}
.hero-panel .tag{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:rgba(255,255,255,0.5);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:14px;}
.hero-panel .row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--hero-line);font-size:13.5px;}
.hero-panel .row:last-child{border-bottom:none;}
.hero-panel .row b{font-family:'IBM Plex Mono',monospace;color:var(--terracota);}

/* ---------------------------------------------
   Ad slot / section headings (shared)
--------------------------------------------- */
.adslot{border:1px dashed var(--line);border-radius:8px;padding:14px;text-align:center;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:0.08em;margin:36px 0;}
.section{padding:48px 0;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:26px;flex-wrap:wrap;gap:10px;}
.section-head h2{font-family:'Space Grotesk',sans-serif;font-size:24px;font-weight:700;margin:0;color:var(--ink);}
.section-head p{color:var(--ink-soft);font-size:13.5px;margin:6px 0 0;max-width:520px;}
.see-all{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--terracota);border-bottom:1px solid rgba(185,84,46,0.4);padding-bottom:2px;}

/* ---------------------------------------------
   Calculator cards (color-coded by pilar family)
--------------------------------------------- */
.calc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media (max-width:900px){.calc-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.calc-grid{grid-template-columns:1fr;}}
.calc-card{background:var(--paper2);border:1px solid var(--line);border-radius:10px;overflow:hidden;border-top:3px solid var(--c, var(--terracota));}
.calc-card.terracota{--c:var(--terracota);} .calc-card.teal{--c:var(--teal);} .calc-card.plum{--c:var(--plum);}
.calc-card .photo{height:100px;background-size:cover;background-position:center;background-color:var(--paper3);}
.calc-card .body{padding:18px;}
.calc-card .cat{font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:0.07em;color:var(--c, var(--terracota));margin-bottom:10px;display:block;}
.calc-card h3{font-family:'Space Grotesk',sans-serif;font-size:15.5px;margin:0 0 8px;font-weight:600;}
.calc-card p{font-size:12.5px;color:var(--ink-soft);margin:0;line-height:1.5;}
.calc-card .use{margin-top:14px;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-faint);}

/* ---------------------------------------------
   Pillar grid (home) + color variants (reused everywhere)
--------------------------------------------- */
.pillar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;}
@media (max-width:900px){.pillar-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:560px){.pillar-grid{grid-template-columns:repeat(2,1fr);}}
.pillar{background:var(--paper2);padding:20px 16px;text-align:center;}
.pillar .n{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-faint);display:block;margin-bottom:6px;}
.pillar .t{font-family:'Space Grotesk',sans-serif;font-size:13.5px;font-weight:600;color:var(--ink);}
.pillar.terracota .t{color:var(--terracota);} .pillar.teal .t{color:var(--teal);} .pillar.plum .t{color:var(--plum);}
.terracota{--c:var(--terracota);} .teal{--c:var(--teal);} .plum{--c:var(--plum);}

/* ---------------------------------------------
   Article cards (home + archive teasers)
--------------------------------------------- */
.article-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:18px;}
@media (max-width:900px){.article-grid{grid-template-columns:1fr;}}
.article-card{background:var(--paper2);border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.article-card .thumb{height:150px;background-size:cover;background-position:center;background-color:var(--paper3);}
.article-card.featured .thumb{height:220px;}
.article-card .body{padding:18px;}
.article-card .cat{font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:0.08em;margin-bottom:8px;display:block;}
.article-card.terracota .cat{color:var(--terracota);} .article-card.teal .cat{color:var(--teal);} .article-card.plum .cat{color:var(--plum);}
.article-card h3{font-family:'Space Grotesk',sans-serif;font-size:15px;margin:0 0 6px;line-height:1.3;color:var(--ink);}
.article-card p{font-size:12.5px;color:var(--ink-soft);margin:0;}
.article-card.featured h3{font-size:19px;}

/* ---------------------------------------------
   Footer CTA + footer
--------------------------------------------- */
.footer-cta{background:var(--paper2);border:1px solid var(--line);border-radius:12px;padding:32px;text-align:center;margin-bottom:48px;}
.footer-cta h2{font-family:'Space Grotesk',sans-serif;font-size:21px;margin:0 0 8px;color:var(--ink);}
.footer-cta p{color:var(--ink-soft);font-size:13.5px;margin:0 0 18px;}
.site-footer{border-top:1px solid var(--line);padding:36px 0 44px;}
.footcols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:24px;margin-bottom:28px;}
@media (max-width:760px){.footcols{grid-template-columns:1fr 1fr;}}
.footcols h4{font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:0.08em;color:var(--ink-faint);margin:0 0 12px;}
.footcols ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--ink-soft);}
.footbottom{border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-faint);flex-wrap:wrap;gap:8px;}

/* ---------------------------------------------
   Pilar (taxonomy archive) template
--------------------------------------------- */
.ruler{border-bottom:1px solid var(--line);padding:22px 0 0;background:var(--paper);}
.ruler-track{position:relative;display:flex;justify-content:space-between;padding-bottom:22px;}
.ruler-track::before{content:"";position:absolute;left:0;right:0;top:7px;height:1px;background:var(--line);}
.ruler-stop{position:relative;text-align:center;flex:1;}
.ruler-stop .tick{width:1px;height:14px;background:var(--line);margin:0 auto 8px;}
.ruler-stop.active .tick{background:var(--terracota);height:20px;width:2px;}
.ruler-stop .lbl{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-faint);}
.ruler-stop.active .lbl{color:var(--terracota);font-weight:600;}
.ruler-stop .num{display:block;font-family:'IBM Plex Mono',monospace;font-size:9.5px;color:var(--ink-faint);opacity:0.6;margin-bottom:2px;}

.pilar-hero{padding:52px 0 40px;display:grid;grid-template-columns:1.2fr 0.8fr;gap:40px;align-items:end;border-bottom:1px solid var(--line);}
@media (max-width:860px){.pilar-hero{grid-template-columns:1fr;}}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:var(--terracota);margin:0 0 12px;}
.pilar-hero h1{font-family:'Space Grotesk',sans-serif;font-size:38px;font-weight:700;margin:0 0 14px;letter-spacing:-0.01em;}
.pilar-hero p{color:var(--ink-soft);font-size:15px;max-width:520px;margin:0;}
.hero-side{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--ink-faint);border-left:2px solid var(--terracota);padding-left:16px;}
.hero-side b{color:var(--ink);display:block;font-size:15px;margin-bottom:4px;}

.calc-callout{background:var(--teal-dim);border:1px solid rgba(30,111,99,0.3);border-radius:10px;padding:22px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:44px;}
@media (max-width:700px){.calc-callout{flex-direction:column;align-items:flex-start;}}
.calc-callout .t{font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:0.08em;color:var(--teal);margin-bottom:6px;}
.calc-callout h3{font-family:'Space Grotesk',sans-serif;font-size:17px;margin:0;color:var(--ink);}
.calc-callout .btn{background:var(--teal);color:#fff;font-weight:600;padding:11px 18px;border-radius:7px;font-size:13.5px;white-space:nowrap;display:inline-block;}

.art-list{display:flex;flex-direction:column;}
.art-row{display:grid;grid-template-columns:100px 1fr auto;gap:20px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);}
.art-row:first-child{border-top:1px solid var(--line);}
.art-row .idx{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-faint);}
.art-row h4{font-family:'Space Grotesk',sans-serif;font-size:15.5px;font-weight:600;margin:0 0 4px;color:var(--ink);}
.art-row p{font-size:12.5px;color:var(--ink-soft);margin:0;}
.art-row .arrow{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--terracota);}
@media (max-width:600px){.art-row{grid-template-columns:1fr;}.art-row .idx{display:none;}}

/* ---------------------------------------------
   Single article template
--------------------------------------------- */
.crumbs{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--ink-faint);padding:18px 0 0;}
.crumbs a:hover{color:var(--ink-soft);}
.article-layout{display:grid;grid-template-columns:1fr 260px;gap:48px;padding:26px 0 60px;align-items:start;}
@media (max-width:940px){.article-layout{grid-template-columns:1fr;}}
.art-head{padding:0 0 28px;}
.art-head h1{font-family:'Space Grotesk',sans-serif;font-size:32px;font-weight:700;line-height:1.15;margin:0 0 14px;letter-spacing:-0.01em;}
.dek{color:var(--ink-soft);font-size:15.5px;max-width:600px;margin:0;}

.prose{max-width:640px;font-size:15.5px;color:var(--ink-soft);}
.prose h2{font-family:'Space Grotesk',sans-serif;color:var(--ink);font-size:20px;margin:34px 0 12px;}
.prose h3{font-family:'Space Grotesk',sans-serif;color:var(--ink);font-size:17px;margin:26px 0 10px;}
.prose p{margin:0 0 16px;}
.prose strong{color:var(--ink);}
.prose img{border-radius:8px;margin:10px 0 20px;}

.takeaways{background:var(--paper2);border:1px solid var(--line);border-radius:10px;padding:20px 22px;margin:0 0 30px;}
.takeaways .t{font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:0.08em;color:var(--terracota);margin-bottom:10px;}
.takeaways ul{margin:0;padding-left:18px;font-size:14px;color:var(--ink-soft);}
.takeaways li{margin-bottom:6px;}

/* signature element: blueprint "cota" (dimension) callout */
.cota{position:relative;margin:26px 0 30px;padding:16px 18px 16px 26px;border-left:2px solid var(--terracota);}
.cota::before{content:"";position:absolute;left:-2px;top:0;width:10px;height:1px;background:var(--terracota);}
.cota::after{content:"";position:absolute;left:-2px;bottom:0;width:10px;height:1px;background:var(--terracota);}
.cota .tag{font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:0.08em;color:var(--terracota);margin-bottom:6px;}
.cota p{margin:0 0 10px;font-size:14px;}
.cota a.tool-link{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--terracota);border-bottom:1px solid rgba(185,84,46,0.4);padding-bottom:1px;}

table.example{width:100%;border-collapse:collapse;font-size:13.5px;margin:20px 0 26px;}
table.example th{text-align:left;font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;color:var(--ink-faint);padding:8px 10px;border-bottom:1px solid var(--line);}
table.example td{padding:9px 10px;border-bottom:1px solid var(--line);font-family:'IBM Plex Mono',monospace;color:var(--ink-soft);}
table.example tr:last-child td{border-bottom:none;}

.sidebar{position:sticky;top:24px;display:flex;flex-direction:column;gap:20px;}
.side-card{background:var(--paper2);border:1px solid var(--line);border-radius:10px;padding:18px;}
.side-card .t{font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:0.08em;color:var(--ink-faint);margin-bottom:10px;}
.side-card h4{font-family:'Space Grotesk',sans-serif;font-size:14.5px;margin:0 0 8px;color:var(--ink);}
.side-card p{font-size:12.5px;color:var(--ink-soft);margin:0 0 12px;}
.side-card .btn{display:inline-block;background:var(--terracota);color:#fff;font-weight:600;padding:8px 14px;border-radius:6px;font-size:12.5px;}

/* ---------------------------------------------
   Calculator embed wrapper (shortcode output)
--------------------------------------------- */
.calc-embed-wrap{margin:20px 0 30px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#0F2A43;}
.calc-embed-wrap iframe{width:100%;border:0;display:block;}

/* ---------------------------------------------
   Basic page template (aviso legal, contacto, etc.)
--------------------------------------------- */
.basic-page{padding:48px 0 64px;max-width:760px;margin:0 auto;}
.basic-page h1{font-family:'Space Grotesk',sans-serif;font-size:30px;margin:0 0 20px;}
.basic-page .prose{max-width:none;}

/* Accessibility: visible focus */
a:focus-visible, button:focus-visible, input:focus-visible{outline:2px solid var(--terracota);outline-offset:2px;}

@media (prefers-reduced-motion: reduce){ *{transition:none !important;animation:none !important;} }
