/*
Theme Name: Paolo Caroli — Master CV (Astra Child)
Template: astra
Text Domain: paolo-caroli-master-cv-astra-child
Description: Astra child theme for a complete, evidence-led professional record.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.0
License: GPL-2.0-or-later
WPVibe: yes
*/

/* EDITORIAL DESIGN SYSTEM — 14 October 2026
   Ink, stone, deep teal and restrained warm copper. */
:root {
  --cv-ink: #172c36;
  --cv-teal: #235659;
  --cv-teal-dark: #174346;
  --cv-cream: #faf9f5;
  --cv-white: #fffefd;
  --cv-stone: #f1f3ef;
  --cv-muted: #546970;
  --cv-line: #d9e2de;
  --cv-copper: #aa754d;
  --cv-serif: "EB Garamond", Georgia, "Times New Roman", serif;
  --cv-sans: "Source Sans 3", "Aptos", "Segoe UI", system-ui, sans-serif;
  --cv-radius: 8px;
}
html { scroll-behavior: smooth; }
body, button, input, textarea, select {
  font-family: var(--cv-sans);
}
body {
  color: var(--cv-ink);
  background: var(--cv-cream);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4,h5,h6, .entry-title, .site-title {
  font-family: var(--cv-serif);
  color: var(--cv-ink);
  font-weight: 500;
  letter-spacing: -.018em;
  line-height: 1.15;
}
a { color: var(--cv-teal); text-underline-offset: 3px; }
a:hover, a:focus-visible { color: var(--cv-teal-dark); }
:focus-visible { outline: 2px solid var(--cv-copper); outline-offset: 3px; }
.site-header { background: var(--cv-white); border-bottom: 1px solid var(--cv-line); }
.main-header-menu > .menu-item > .menu-link {
  font-size: 13px;
  font-weight: 650;
  letter-spacing: .045em;
  text-transform: uppercase;
  color: var(--cv-ink);
}
.ast-site-identity .site-title a { color: var(--cv-ink); font-family: var(--cv-serif); font-size: 26px; }
.site-footer { border-top: 1px solid var(--cv-line); background: var(--cv-stone); }
.site-footer .ast-footer-copyright { color: var(--cv-muted); }
.ast-container { max-width: 1170px; }
.entry-content p { margin-bottom: 1.15em; }
/* Master CV index pages provide their own editorial page headings. */
body.page-id-104 .entry-header,
body.page-id-107 .entry-header,
body.page-id-117 .entry-header,
body.page-id-103 .entry-header,
body.page-id-118 .entry-header,
body.page-id-119 .entry-header { display:none; }
body.page-id-104 .entry-content,
body.page-id-107 .entry-content,
body.page-id-117 .entry-content,
body.page-id-103 .entry-content,
body.page-id-118 .entry-content,
body.page-id-119 .entry-content { width:100%; }
.cv-card h3 a,
.cv-publication-item h3 a,
.cv-timeline-item h3 a { color:var(--cv-ink); text-decoration:none; }
.cv-card h3 a:hover,
.cv-publication-item h3 a:hover,
.cv-timeline-item h3 a:hover { color:var(--cv-teal); }
.cv-archive .cv-record-head h2 { font-size:clamp(39px,5vw,61px); }
/* Archive listings, sorting and filters */
.cv-archive {padding-bottom:80px;}
.cv-archive .cv-record-head {margin-bottom:24px;}
.cv-filter {display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:16px 0 28px;border-bottom:1px solid var(--cv-line);}
.cv-filter label {font-size:13px;font-weight:750;color:var(--cv-teal);}
.cv-filter select {min-width:250px;min-height:43px;border:1px solid var(--cv-line);border-radius:4px;background:var(--cv-white);color:var(--cv-ink);padding:8px 12px;font-family:var(--cv-sans);}
.cv-filter button {min-height:43px;background:var(--cv-teal);color:var(--cv-white);border:0;border-radius:4px;font:700 13px var(--cv-sans);padding:10px 18px;cursor:pointer;}
.cv-filter a {font-size:13px;font-weight:700;text-decoration:none;padding:10px;}
.cv-pagination {padding-top:35px;}
.cv-pagination .page-numbers {display:inline-block;padding:6px 10px;border-radius:3px;}
.cv-pagination .page-numbers.current {background:var(--cv-teal);color:var(--cv-white);}
.cv-archive .cv-timeline-item h2 {font:500 26px/1.25 var(--cv-serif);margin:0 0 8px;}
.cv-archive .cv-publication-item h2 {font:500 26px/1.23 var(--cv-serif);margin:4px 0 9px;}
.cv-archive .cv-timeline-item a,.cv-archive .cv-publication-item a {color:var(--cv-ink);text-decoration:none;}
.cv-archive .cv-timeline-item a:hover,.cv-archive .cv-publication-item a:hover {color:var(--cv-teal);}
.cv-related a {margin-right:10px;}
.cv-back {border-top:1px solid var(--cv-line);padding:24px 0 50px;}
.cv-back a {font-weight:700;text-decoration:none;}
/* Comprehensive assignment page */
.cv-record-head {padding:clamp(48px,7vw,86px) 0 38px;border-bottom:1px solid var(--cv-line);}
.cv-record-head h1 {font-size:clamp(46px,6vw,72px);letter-spacing:-.03em;margin:0 0 12px;}
.cv-record-sub {font-size:20px;color:var(--cv-muted);margin:0;}
.cv-record-body {display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:clamp(25px,5vw,75px);padding:48px 0 70px;}
.cv-record-prose h2 {font-size:37px;margin:40px 0 14px;}
.cv-record-prose h2:first-child {margin-top:0;}
.cv-record-prose p,.cv-record-prose li {font-size:16.5px;line-height:1.74;color:#344b53;}
.cv-record-prose ul {padding-left:1.25em;margin-bottom:25px;}
.cv-record-prose li {margin-bottom:12px;}
.cv-facts {border-top:3px solid var(--cv-copper);padding-top:13px;align-self:start;position:sticky;top:34px;}
.cv-facts dl {margin:0;}
.cv-facts dt {font-size:11px;color:var(--cv-teal);font-weight:750;letter-spacing:.09em;text-transform:uppercase;margin-top:19px;}
.cv-facts dd {font-size:15.5px;color:var(--cv-ink);margin:4px 0 0;}
.cv-evidence {border:1px solid var(--cv-line);border-radius:5px;background:var(--cv-stone);padding:18px 22px;}
.cv-evidence p {font-size:14px;margin:0;color:var(--cv-muted);}
@media(max-width:800px){.cv-record-body{grid-template-columns:1fr;}.cv-facts{position:static;order:-1;}.cv-record-prose h2{font-size:32px;}}
/* Page-local navigation in the unpublished visual prototype. */
.cv-demo-nav {display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding:16px 0 22px;border-bottom:1px solid var(--cv-line);}
.cv-demo-nav .cv-wordmark {font: 500 23px/1.1 var(--cv-serif);letter-spacing:-.02em;color:var(--cv-ink);text-decoration:none;}
.cv-demo-nav .cv-nav-links {display:flex;gap:clamp(12px,2vw,25px);flex-wrap:wrap;}
.cv-demo-nav .cv-nav-links a {text-transform:uppercase;letter-spacing:.06em;font-size:11.5px;font-weight:750;text-decoration:none;color:var(--cv-muted);}
.cv-demo-nav .cv-nav-links a:hover {color:var(--cv-teal);}
.cv-demo-note {font-size:12px;color:var(--cv-muted);font-style:italic;}
/* Only the design-demo and future CV pages use these components. */
.cv-shell { max-width: 1120px; margin-inline: auto; }
.cv-eyebrow {
  color: var(--cv-teal); text-transform: uppercase; letter-spacing: .18em;
  font-size: 12px; font-weight: 750; margin: 0 0 16px;
}
.cv-hero {
  padding: clamp(54px, 9vw, 114px) 0 clamp(54px, 7vw, 85px);
  border-bottom: 1px solid var(--cv-line);
}
.cv-hero h1 {
  font-size: clamp(49px, 7.7vw, 90px); letter-spacing: -.041em;
  line-height: .99; margin: 0 0 26px; max-width: 880px;
}
.cv-hero h1 em { color: var(--cv-teal); font-weight: 400; }
.cv-hero .cv-lead {
  font-size: clamp(18px, 2.2vw, 23px); line-height: 1.5; color: #354d56;
  max-width: 765px; margin-bottom: 30px;
}
.cv-hero .cv-kicker { font-weight: 650; color: var(--cv-copper); }
.cv-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.cv-action {
  display:inline-flex; gap:10px; align-items:center; justify-content:center;
  text-decoration:none; padding:12px 20px; border:1px solid var(--cv-teal);
  color: var(--cv-teal); font-size:14px; font-weight:700; border-radius:4px;
  transition: background-color .15s ease, color .15s ease;
}
.cv-action:hover { background:var(--cv-stone); color:var(--cv-teal-dark); }
.cv-action-primary { background:var(--cv-teal); color:white; }
.cv-action-primary:hover { background:var(--cv-teal-dark);color:white; }
.cv-overline { color:var(--cv-copper);font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:700; }
.cv-section { padding: clamp(42px, 6vw, 75px) 0; border-bottom:1px solid var(--cv-line); }
.cv-section-header { display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;align-items:end;margin-bottom:30px; }
.cv-section-header h2 { font-size:clamp(35px,4vw,53px); margin:0; }
.cv-section-description { color:var(--cv-muted);max-width:690px;font-size:16px; }
.cv-grid {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px;}
.cv-card {
  border:1px solid var(--cv-line);background:var(--cv-white);
  padding:clamp(20px,3vw,31px);border-radius:var(--cv-radius);
}
.cv-card .cv-number {font-family:var(--cv-serif);font-size:36px;color:var(--cv-copper);line-height:1;margin-bottom:12px;}
.cv-card h3 { font-size:28px; margin:0 0 10px; }
.cv-card p {font-size:15.5px;color:var(--cv-muted);margin:0 0 10px;}
.cv-card a {font-weight:700;font-size:14px;text-decoration:none;}
.cv-timeline {border-top:1px solid var(--cv-line);}
.cv-timeline-item {display:grid;grid-template-columns:190px 1fr;gap:24px;padding:24px 0;border-bottom:1px solid var(--cv-line);}
.cv-timeline-date {color:var(--cv-teal);font-size:14px;font-weight:700;}
.cv-timeline-item h3 {font-size:25px;margin:0 0 5px;}
.cv-timeline-item .cv-org {font-size:15px;color:var(--cv-muted);margin-bottom:8px;}
.cv-timeline-item p {color:var(--cv-muted);font-size:15.5px;margin:0;}
.cv-publication-list {display:grid;gap:15px;}
.cv-publication-item {border-left:3px solid var(--cv-copper);padding:4px 0 7px 22px;}
.cv-publication-item .cv-year {color:var(--cv-teal);font-weight:750;font-size:13px;letter-spacing:.05em;}
.cv-publication-item h3 {font-size:23px;margin:5px 0 7px;}
.cv-publication-item p {font-size:14.5px;color:var(--cv-muted);margin:0;}
.cv-note {background:var(--cv-stone);padding:25px 30px;border-left:3px solid var(--cv-teal);}
.cv-note p {margin:0;font-size:16px;color:#3a5056;}
@media (max-width: 800px) {
  .cv-grid {grid-template-columns:1fr;}
  .cv-timeline-item {grid-template-columns:1fr;gap:5px;}
  .cv-hero {padding-top:52px;}
  .cv-section {padding:45px 0;}
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .cv-action {transition:none;}
}
