/*
Theme Name: FIT.CAT Progress
Theme URI: https://fit.cat/
Author: fit.cat
Description: Theme ligero para documentar un proceso personal de pérdida de peso y definición corporal mediante registros con fecha, peso anterior, peso actual, fotografía o vídeo y evolución histórica.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: fitcat
*/

:root {
  --fit-bg: #f4f5f1;
  --fit-surface: #ffffff;
  --fit-text: #121413;
  --fit-muted: #6d746f;
  --fit-line: #dfe4de;
  --fit-accent: #b8f34a;
  --fit-accent-strong: #7cad21;
  --fit-dark: #171a18;
  --fit-radius: 24px;
  --fit-shadow: 0 18px 55px rgba(16, 24, 18, .08);
  --fit-max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--fit-bg);
  color: var(--fit-text);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img, video, iframe { max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }

.fit-wrap { width: min(calc(100% - 36px), var(--fit-max)); margin-inline: auto; }
.fit-site-header { padding: 24px 0 10px; }
.fit-header-inner {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 14px 18px; border: 1px solid var(--fit-line); border-radius: 999px;
  background: rgba(255,255,255,.78); backdrop-filter: blur(14px); position: relative; z-index: 20;
}
.fit-brand { display:flex; align-items:center; gap:12px; text-decoration:none; font-weight:900; letter-spacing:-.04em; font-size:1.15rem; }
.fit-brand-mark { width:12px; height:12px; border-radius:50%; background:var(--fit-accent); box-shadow:0 0 0 5px rgba(184,243,74,.22); }
.fit-brand .custom-logo { max-height:42px; width:auto; }
.fit-nav ul { display:flex; gap:8px; list-style:none; margin:0; padding:0; align-items:center; }
.fit-nav a { display:block; padding:8px 13px; text-decoration:none; border-radius:999px; color:var(--fit-muted); font-size:.92rem; font-weight:700; }
.fit-nav a:hover, .fit-nav .current-menu-item > a { background:var(--fit-dark); color:#fff; }

.fit-hero { padding: 70px 0 38px; }
.fit-eyebrow { display:inline-flex; align-items:center; gap:8px; padding:7px 11px; border-radius:999px; background:var(--fit-accent); font-size:.72rem; letter-spacing:.11em; text-transform:uppercase; font-weight:900; }
.fit-hero h1 { max-width:900px; margin:18px 0 18px; font-size:clamp(3rem,8vw,7rem); line-height:.88; letter-spacing:-.075em; font-weight:950; }
.fit-hero-copy { max-width:650px; color:var(--fit-muted); font-size:clamp(1.05rem,2vw,1.28rem); margin:0; }

.fit-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:34px 0 26px; }
.fit-stat { background:var(--fit-surface); border:1px solid var(--fit-line); border-radius:20px; padding:20px; min-height:132px; display:flex; flex-direction:column; justify-content:space-between; }
.fit-stat-label { color:var(--fit-muted); font-size:.75rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.fit-stat-value { font-size:clamp(1.75rem,3.5vw,2.8rem); line-height:1; font-weight:950; letter-spacing:-.055em; }
.fit-stat-value small { font-size:.38em; letter-spacing:0; color:var(--fit-muted); margin-left:4px; }

.fit-chart-card { background:var(--fit-dark); color:#fff; border-radius:var(--fit-radius); padding:26px; overflow:hidden; box-shadow:var(--fit-shadow); margin:22px 0 60px; }
.fit-chart-head { display:flex; justify-content:space-between; gap:16px; align-items:end; margin-bottom:22px; }
.fit-chart-head h2 { margin:0; font-size:1.4rem; letter-spacing:-.035em; }
.fit-chart-head p { margin:0; color:#aeb6b0; font-size:.9rem; }
.fit-chart { width:100%; height:auto; display:block; }
.fit-chart-grid { stroke:#333936; stroke-width:1; }
.fit-chart-line { fill:none; stroke:var(--fit-accent); stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
.fit-chart-dot { fill:var(--fit-accent); stroke:var(--fit-dark); stroke-width:3; }
.fit-chart-label { fill:#aeb6b0; font-size:11px; font-family:inherit; }

.fit-section-head { display:flex; justify-content:space-between; align-items:end; gap:20px; margin:0 0 24px; }
.fit-section-head h2 { margin:0; font-size:clamp(2rem,5vw,4rem); line-height:.95; letter-spacing:-.055em; }
.fit-section-head p { margin:0; color:var(--fit-muted); max-width:480px; }

.fit-timeline { display:grid; gap:18px; padding-bottom:70px; }
.fit-entry { display:grid; grid-template-columns:170px minmax(0,1fr); gap:20px; align-items:start; }
.fit-entry-date { position:sticky; top:20px; padding-top:18px; }
.fit-entry-date time { display:block; font-weight:900; font-size:1.05rem; }
.fit-entry-date span { display:block; color:var(--fit-muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; font-weight:800; }
.fit-entry-card { background:var(--fit-surface); border:1px solid var(--fit-line); border-radius:var(--fit-radius); overflow:hidden; box-shadow:0 10px 35px rgba(16,24,18,.04); }
.fit-entry-media { aspect-ratio:16/9; background:#e8ebe7; overflow:hidden; }
.fit-entry-media img, .fit-entry-media video, .fit-entry-media iframe { width:100%; height:100%; object-fit:cover; display:block; border:0; }
.fit-entry-body { padding:24px; }
.fit-entry-top { display:flex; justify-content:space-between; gap:16px; align-items:start; }
.fit-entry h2, .fit-entry h1 { margin:0 0 12px; line-height:1.05; letter-spacing:-.04em; font-size:clamp(1.5rem,3vw,2.35rem); }
.fit-entry h2 a { text-decoration:none; }
.fit-entry h2 a:hover { text-decoration:underline; }
.fit-delta { flex:0 0 auto; padding:8px 11px; border-radius:999px; background:#edf1ec; font-size:.83rem; font-weight:900; white-space:nowrap; }
.fit-delta.is-loss { background:#eaf8cf; color:#456d00; }
.fit-delta.is-gain { background:#fff0ea; color:#9a3f1e; }
.fit-weights { display:flex; flex-wrap:wrap; gap:9px; margin:16px 0 18px; }
.fit-weight-chip { display:inline-flex; gap:7px; align-items:baseline; border:1px solid var(--fit-line); border-radius:999px; padding:7px 11px; font-size:.84rem; color:var(--fit-muted); }
.fit-weight-chip strong { color:var(--fit-text); font-size:1rem; }
.fit-excerpt, .fit-entry-content { color:#3e4540; }
.fit-readmore { display:inline-flex; margin-top:8px; text-decoration:none; font-weight:850; border-bottom:2px solid var(--fit-accent-strong); }

.fit-single { padding:52px 0 80px; }
.fit-single-shell { width:min(calc(100% - 36px), 900px); margin-inline:auto; }
.fit-back { display:inline-block; margin-bottom:24px; color:var(--fit-muted); text-decoration:none; font-weight:750; }
.fit-single .fit-entry-card { overflow:visible; }
.fit-single .fit-entry-media { border-radius:var(--fit-radius) var(--fit-radius) 0 0; }
.fit-single .fit-entry-body { padding:clamp(24px,5vw,52px); }
.fit-single-meta { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px; }
.fit-single-title { font-size:clamp(2.4rem,7vw,5.5rem) !important; max-width:780px; }
.fit-entry-content > * { max-width:720px; margin-left:auto; margin-right:auto; }
.fit-entry-content > .alignwide { max-width:980px; }
.fit-entry-content > .alignfull { max-width:none; }
.fit-entry-content p { margin-top:0; margin-bottom:1.25em; }
.fit-entry-content h2, .fit-entry-content h3 { margin-top:1.8em; }
.fit-entry-content blockquote { border-left:4px solid var(--fit-accent); padding-left:20px; margin-left:auto; font-size:1.15em; }

.fit-archive { padding:52px 0 75px; }
.fit-archive-head { margin-bottom:36px; }
.fit-archive-head h1 { font-size:clamp(2.5rem,6vw,5rem); margin:0 0 8px; line-height:.95; letter-spacing:-.06em; }
.fit-pagination { margin:30px 0; }
.fit-pagination .nav-links { display:flex; gap:8px; flex-wrap:wrap; }
.fit-pagination a, .fit-pagination span { padding:9px 13px; border-radius:10px; background:#fff; border:1px solid var(--fit-line); text-decoration:none; }
.fit-pagination .current { background:var(--fit-dark); color:#fff; }

.fit-empty { background:#fff; border:1px dashed #cbd0ca; border-radius:var(--fit-radius); padding:48px 30px; text-align:center; margin-bottom:70px; }
.fit-empty h2 { margin-top:0; }

.fit-footer { padding:30px 0 42px; color:var(--fit-muted); }
.fit-footer-inner { border-top:1px solid var(--fit-line); padding-top:22px; display:flex; justify-content:space-between; gap:20px; font-size:.87rem; }

.screen-reader-text { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

@media (max-width: 860px) {
  .fit-stats { grid-template-columns:repeat(2,1fr); }
  .fit-entry { grid-template-columns:1fr; gap:5px; }
  .fit-entry-date { position:static; padding:0 4px 6px; display:flex; gap:8px; align-items:baseline; }
  .fit-entry-date span { display:inline; }
}

@media (max-width: 620px) {
  body { font-size:16px; }
  .fit-wrap { width:min(calc(100% - 24px), var(--fit-max)); }
  .fit-header-inner { border-radius:18px; align-items:flex-start; }
  .fit-nav { display:none; }
  .fit-hero { padding-top:45px; }
  .fit-hero h1 { font-size:clamp(3.25rem,18vw,5rem); }
  .fit-stats { gap:9px; }
  .fit-stat { min-height:112px; padding:16px; }
  .fit-chart-card { padding:18px 14px; border-radius:20px; margin-bottom:42px; }
  .fit-chart-head { align-items:start; flex-direction:column; }
  .fit-section-head { align-items:start; flex-direction:column; }
  .fit-entry-body { padding:20px; }
  .fit-entry-top { flex-direction:column; }
  .fit-footer-inner { flex-direction:column; }
}
