/*
Theme Name: ARTELOGIA V23 — Editorial
Theme URI: https://artelogia.art
Author: ARTELOGIA
Description: Presentation-ready editorial child theme for ARTELOGIA. Requires parent theme folder "v21".
Version: 23.0.0
Template: v21
Text Domain: artelogia-v23
*/

/* ============================================================
   ARTELOGIA V23
   editorial / atmospheric / geographic
   Parent V21 is loaded first. This file overrides it.
   ============================================================ */

:root{
  --v23-white:#FFFFFF;
  --v23-bg:#F5F8FA;
  --v23-mist:#E8EEF2;
  --v23-mist2:#EEF4F7;
  --v23-navy:#10254A;
  --v23-navy2:#17365F;
  --v23-copper:#A64B36;
  --v23-text:#1B2737;
  --v23-muted:#697788;
  --v23-line:rgba(16,37,74,.16);
  --v23-serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --v23-sans:Inter,Arial,Helvetica,sans-serif;
}

html,body{background:var(--v23-bg);color:var(--v23-text)}
body:not(.key-actors-within){font-family:var(--v23-sans)}
body:not(.key-actors-within) h1,
body:not(.key-actors-within) h2,
body:not(.key-actors-within) h3{
  font-family:var(--v23-serif);
  color:var(--v23-navy);
}

/* Acting course is intentionally preserved as the warm V21 exception */
body.key-actors-within{background:#F4EFE7}

/* ---------- header ---------- */
body:not(.key-actors-within) .site-header{
  background:rgba(245,248,250,.92);
  border-bottom:1px solid var(--v23-line);
  backdrop-filter:blur(14px);
}
body:not(.key-actors-within) .header-inner{
  max-width:1320px;
  min-height:74px;
  padding:14px 34px;
}
body:not(.key-actors-within) .brand{
  width:144px;
  line-height:0;
}
body:not(.key-actors-within) .brand img{
  width:100%;
  max-height:54px;
  object-fit:contain;
}
body:not(.key-actors-within) .main-nav{gap:22px}
body:not(.key-actors-within) .main-nav a{
  font-family:var(--v23-sans);
  font-size:10px;
  letter-spacing:.11em;
  color:var(--v23-navy);
}
body:not(.key-actors-within) .main-nav a:hover,
body:not(.key-actors-within) .main-nav a.is-current{
  color:var(--v23-copper);
  border-color:var(--v23-copper);
}
body:not(.key-actors-within) .language-switcher .current{
  color:var(--v23-copper);
  border-color:var(--v23-copper);
}

/* ---------- common ---------- */
.v23-home{overflow:hidden;background:var(--v23-bg)}
.v23-home .wrap{width:min(1180px,calc(100% - 72px));margin-inline:auto}
.v23-kicker{
  margin:0 0 16px;
  color:var(--v23-copper);
  font-size:10px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.v23-title{
  margin:0;
  font-family:var(--v23-serif);
  font-weight:400;
  color:var(--v23-navy);
  font-size:clamp(3rem,6.2vw,6.5rem);
  line-height:.96;
  letter-spacing:-.045em;
}
.v23-body{
  color:var(--v23-muted);
  font-size:16px;
  line-height:1.78;
}

/* ============================================================
   HERO — no dashboard, one editorial field
   ============================================================ */
.v23-hero{
  position:relative;
  min-height:calc(100vh - 74px);
  padding:88px 0 96px;
  display:flex;
  align-items:center;
  isolation:isolate;
}
.v23-hero-copy{
  position:relative;
  z-index:4;
  width:min(690px,60%);
}
.v23-wordmark{
  margin:0;
  color:var(--v23-navy);
  font-family:var(--v23-serif);
  font-size:clamp(4.8rem,10.5vw,10.7rem);
  line-height:.82;
  letter-spacing:-.065em;
  font-weight:400;
}
.v23-identity{
  margin-top:28px;
  color:var(--v23-navy);
  font-size:11px;
  font-weight:800;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.v23-definition{
  margin:40px 0 0;
  max-width:680px;
  color:var(--v23-navy2);
  font-family:var(--v23-serif);
  font-size:clamp(1.35rem,2.15vw,2.05rem);
  line-height:1.48;
}

/* watercolor cloud as atmosphere */
.v23-watercolor{
  position:absolute;
  z-index:0;
  right:-4%;
  top:5%;
  width:58%;
  height:88%;
  opacity:.98;
  pointer-events:none;
}
.v23-watercolor:before,
.v23-watercolor:after{
  content:"";
  position:absolute;
  inset:auto;
  border-radius:50%;
  filter:blur(2px);
}
.v23-watercolor:before{
  width:85%;height:72%;
  right:1%;top:4%;
  background:
    radial-gradient(circle at 38% 38%,rgba(199,215,226,.62),transparent 39%),
    radial-gradient(circle at 66% 47%,rgba(225,234,240,.86),transparent 43%),
    radial-gradient(circle at 55% 73%,rgba(190,208,220,.35),transparent 43%);
}
.v23-watercolor:after{
  width:74%;height:52%;
  right:18%;bottom:3%;
  background:
    radial-gradient(circle at 42% 55%,rgba(225,235,241,.8),transparent 52%),
    radial-gradient(circle at 72% 42%,rgba(205,219,228,.45),transparent 48%);
}

/* Real geographic source images, visually emerging from the cloud */
.v23-geo{
  position:absolute;
  z-index:2;
  right:0;
  top:10%;
  width:56%;
  height:77%;
  pointer-events:none;
  opacity:.17;
  mix-blend-mode:multiply;
  overflow:hidden;
  -webkit-mask-image:radial-gradient(ellipse at 55% 48%,#000 25%,rgba(0,0,0,.75) 48%,transparent 76%);
  mask-image:radial-gradient(ellipse at 55% 48%,#000 25%,rgba(0,0,0,.75) 48%,transparent 76%);
}
.v23-geo img{
  position:absolute;
  width:60%;
  height:auto;
  filter:grayscale(1) sepia(.08) saturate(.6) contrast(.75);
}
.v23-geo .geo-europe{left:0;top:5%}
.v23-geo .geo-westasia{right:-4%;bottom:0}
.v23-route{
  position:absolute;
  z-index:3;
  right:8%;
  top:55%;
  width:43%;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--v23-copper) 12% 88%,transparent);
  transform:rotate(-9deg);
  opacity:.74;
}
.v23-route:before,.v23-route:after{
  content:"";
  position:absolute;
  top:-4px;
  width:8px;height:8px;border-radius:50%;
  background:var(--v23-copper);
}
.v23-route:before{left:21%}.v23-route:after{right:14%}

/* ============================================================
   POLITICAL QUESTION
   ============================================================ */
.v23-question{
  position:relative;
  padding:110px 0 120px;
  background:var(--v23-white);
  border-block:1px solid var(--v23-line);
}
.v23-question-grid{
  display:grid;
  grid-template-columns:250px minmax(0,1fr);
  gap:70px;
  align-items:start;
}
.v23-question-meta{
  position:sticky;
  top:110px;
  padding-top:14px;
  border-top:2px solid var(--v23-copper);
  color:var(--v23-copper);
  font-size:10px;
  font-weight:800;
  line-height:1.65;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.v23-question-text{
  margin:0;
  color:var(--v23-navy);
  font-family:var(--v23-serif);
  font-size:clamp(2.1rem,4.6vw,5rem);
  line-height:1.14;
  letter-spacing:-.035em;
}

/* ============================================================
   CURRENT WORK — one trajectory at a time, alternating rhythm
   ============================================================ */
.v23-work{
  padding:112px 0 126px;
  background:var(--v23-bg);
}
.v23-work-head{
  display:grid;
  grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);
  gap:80px;
  align-items:end;
  margin-bottom:74px;
}
.v23-work-head .v23-body{max-width:680px;margin:0}
.v23-trajectories{display:flex;flex-direction:column;gap:92px}
.v23-trajectory{
  display:grid;
  grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);
  gap:66px;
  align-items:center;
}
.v23-trajectory:nth-child(even){
  grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);
}
.v23-trajectory:nth-child(even) .v23-trajectory-media{order:2}
.v23-trajectory-media{
  position:relative;
  min-height:520px;
  overflow:hidden;
  background:var(--v23-mist);
}
.v23-trajectory-media img{
  width:100%;
  height:100%;
  min-height:520px;
  object-fit:cover;
  filter:none;
}
.v23-trajectory-copy{max-width:560px}
.v23-trajectory-no{
  display:block;
  margin-bottom:34px;
  color:var(--v23-copper);
  font-family:var(--v23-serif);
  font-size:1.35rem;
}
.v23-trajectory h3{
  margin:0 0 14px;
  font-size:clamp(2.2rem,4vw,4.4rem);
  line-height:1;
}
.v23-trajectory-role{
  margin:0 0 22px;
  color:var(--v23-copper);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.v23-trajectory-excerpt{
  color:var(--v23-muted);
  font-size:15px;
  line-height:1.8;
}
.v23-trajectory-link{
  display:inline-block;
  margin-top:18px;
  padding-bottom:3px;
  border-bottom:1px solid var(--v23-navy);
  color:var(--v23-navy);
  font-family:var(--v23-serif);
  font-size:1.05rem;
}
.v23-trajectory-link:hover{color:var(--v23-copper);border-color:var(--v23-copper)}

/* ============================================================
   WHAT ARTELOGIA DOES — editorial lines, not cards
   ============================================================ */
.v23-does{
  padding:112px 0;
  background:var(--v23-white);
  border-top:1px solid var(--v23-line);
}
.v23-does-head{
  display:grid;
  grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);
  gap:80px;
  margin-bottom:62px;
}
.v23-capabilities{border-top:1px solid var(--v23-navy)}
.v23-capability{
  display:grid;
  grid-template-columns:80px minmax(250px,.8fr) minmax(0,1.2fr);
  gap:32px;
  padding:31px 0 35px;
  border-bottom:1px solid var(--v23-line);
  align-items:start;
}
.v23-cap-no{
  color:var(--v23-copper);
  font-family:var(--v23-serif);
  font-size:1.2rem;
}
.v23-capability h3{
  margin:0;
  font-family:var(--v23-sans)!important;
  font-size:clamp(1.35rem,2vw,2.05rem);
  font-weight:700;
  line-height:1.15;
}
.v23-capability p{
  margin:0;
  color:var(--v23-muted);
  font-size:14px;
  line-height:1.8;
}
.v23-economic{
  display:grid;
  grid-template-columns:80px minmax(250px,.8fr) minmax(0,1.2fr);
  gap:32px;
  margin-top:30px;
  padding:30px 0;
  border-top:2px solid var(--v23-copper);
}
.v23-economic-label{
  grid-column:2;
  color:var(--v23-copper);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.v23-economic p{
  grid-column:3;
  margin:0;
  color:var(--v23-navy2);
  font-family:var(--v23-serif);
  font-size:1.28rem;
  line-height:1.65;
}

/* ============================================================
   PROGRAMME — factual, compact, no dashboard
   ============================================================ */
.v23-programme{
  padding:108px 0 118px;
  background:
    radial-gradient(900px 450px at 75% 35%,rgba(216,228,235,.72),transparent 60%),
    var(--v23-mist2);
}
.v23-programme-intro{
  display:grid;
  grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);
  gap:84px;
  align-items:end;
}
.v23-programme-line{
  margin:0;
  color:var(--v23-navy);
  font-family:var(--v23-serif);
  font-size:clamp(1.7rem,3.2vw,3.3rem);
  line-height:1.38;
}
.v23-status-list{
  margin-top:62px;
  border-top:1px solid var(--v23-navy);
}
.v23-status-row{
  display:grid;
  grid-template-columns:1.2fr .7fr 1.3fr;
  gap:28px;
  padding:22px 0;
  border-bottom:1px solid var(--v23-line);
  align-items:baseline;
}
.v23-status-row strong{
  color:var(--v23-navy);
  font-family:var(--v23-serif);
  font-size:1.35rem;
  font-weight:400;
}
.v23-status-row span{
  color:var(--v23-copper);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.v23-status-row small{
  color:var(--v23-muted);
  font-size:12px;
  line-height:1.6;
}

/* ============================================================
   ROADMAP + PARTNERSHIP
   ============================================================ */
.v23-roadmap{padding:104px 0;background:var(--v23-white)}
.v23-roadmap-flow{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  margin-top:56px;
  border-top:1px solid var(--v23-navy);
}
.v23-roadmap-step{
  position:relative;
  padding:32px 34px 40px 0;
  border-right:1px solid var(--v23-line);
}
.v23-roadmap-step + .v23-roadmap-step{padding-left:34px}
.v23-roadmap-step:last-child{border-right:0}
.v23-roadmap-step:before{
  content:"";
  position:absolute;
  width:8px;height:8px;border-radius:50%;
  top:-4px;left:0;
  background:var(--v23-copper);
}
.v23-roadmap-step + .v23-roadmap-step:before{left:34px}
.v23-roadmap-date{
  color:var(--v23-copper);
  font-size:10px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.v23-roadmap-step h3{
  margin:38px 0 12px;
  font-size:1.65rem;
}
.v23-roadmap-step p{margin:0;color:var(--v23-muted);font-size:13px;line-height:1.75}

.v23-partnership{
  padding:105px 0;
  background:var(--v23-navy);
  color:#fff;
}
.v23-partnership-grid{
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:90px;
}
.v23-partnership .v23-title,
.v23-partnership h2{color:#fff}
.v23-partnership .v23-kicker{color:#D8A18E}
.v23-partnership-copy{
  color:rgba(255,255,255,.78);
  font-family:var(--v23-serif);
  font-size:clamp(1.35rem,2.3vw,2rem);
  line-height:1.65;
}
.v23-partnership-copy p{margin:0}
.v23-partnership-state{
  margin-top:34px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.28);
  color:rgba(255,255,255,.62);
  font-size:10px;
  line-height:1.8;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.v23-institutions{
  margin-top:20px;
  color:#fff;
  font-size:12px;
  line-height:1.8;
  text-transform:none;
  letter-spacing:0;
}

/* ============================================================
   ABOUT / CONTACT
   ============================================================ */
.v23-about{padding:105px 0 100px;background:var(--v23-bg)}
.v23-about-grid{
  display:grid;
  grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);
  gap:88px;
}
.v23-about-copy{
  max-width:700px;
  color:var(--v23-navy2);
  font-family:var(--v23-serif);
  font-size:1.35rem;
  line-height:1.72;
}
.v23-about-copy p{margin:0 0 1em}
.v23-about-copy a{
  border-bottom:1px solid var(--v23-navy);
}
.v23-contact{
  padding:78px 0 88px;
  background:var(--v23-white);
  border-top:1px solid var(--v23-line);
}
.v23-contact-grid{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);
  gap:70px;
  align-items:end;
}
.v23-contact-link{
  justify-self:end;
  color:var(--v23-navy);
  font-family:var(--v23-serif);
  font-size:clamp(1.45rem,2.6vw,2.7rem);
  border-bottom:1px solid var(--v23-navy);
}

/* ---------- footer ---------- */
body:not(.key-actors-within) .site-footer{margin-top:0;background:#0F2344}
body:not(.key-actors-within) .footer-brand{width:165px}
body:not(.key-actors-within) .footer-grid{grid-template-columns:1.3fr .7fr}

/* ---------- mobile ---------- */
@media(max-width:1050px){
  .v23-question-grid{grid-template-columns:190px minmax(0,1fr);gap:42px}
  .v23-work-head,.v23-does-head,.v23-programme-intro,.v23-partnership-grid,.v23-about-grid,.v23-contact-grid{grid-template-columns:1fr;gap:36px}
  .v23-trajectory,.v23-trajectory:nth-child(even){grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr);gap:42px}
  .v23-trajectory:nth-child(even) .v23-trajectory-media{order:0}
  .v23-roadmap-flow{grid-template-columns:1fr}
  .v23-roadmap-step,.v23-roadmap-step + .v23-roadmap-step{padding:28px 0;border-right:0;border-bottom:1px solid var(--v23-line)}
  .v23-roadmap-step:before,.v23-roadmap-step + .v23-roadmap-step:before{left:0}
  .v23-contact-link{justify-self:start}
}
@media(max-width:780px){
  .v23-home .wrap{width:min(100% - 34px,1180px)}
  .v23-hero{min-height:auto;padding:66px 0 80px}
  .v23-hero-copy{width:100%}
  .v23-wordmark{font-size:clamp(4rem,21vw,6.4rem)}
  .v23-definition{max-width:92%;font-size:1.25rem}
  .v23-watercolor{width:95%;height:62%;right:-44%;top:23%}
  .v23-geo{width:88%;height:55%;right:-38%;top:30%;opacity:.12}
  .v23-route{width:70%;right:-20%;top:61%}
  .v23-question,.v23-work,.v23-does,.v23-programme,.v23-roadmap,.v23-partnership,.v23-about{padding:72px 0}
  .v23-question-grid{grid-template-columns:1fr;gap:28px}
  .v23-question-meta{position:static;width:150px}
  .v23-question-text{font-size:clamp(2rem,9vw,3.2rem)}
  .v23-work-head{margin-bottom:48px}
  .v23-trajectories{gap:64px}
  .v23-trajectory,.v23-trajectory:nth-child(even){grid-template-columns:1fr;gap:28px}
  .v23-trajectory-media{min-height:0;aspect-ratio:4/5}
  .v23-trajectory-media img{min-height:0;height:100%;aspect-ratio:4/5}
  .v23-capability{grid-template-columns:42px 1fr;gap:18px}
  .v23-capability p{grid-column:2}
  .v23-economic{grid-template-columns:42px 1fr;gap:18px}
  .v23-economic-label,.v23-economic p{grid-column:2}
  .v23-status-row{grid-template-columns:1fr;gap:6px;padding:18px 0}
  .v23-roadmap-flow{margin-top:38px}
  .v23-partnership-copy{font-size:1.3rem}
  body:not(.key-actors-within) .header-inner{padding:12px 16px}
  body:not(.key-actors-within) .brand{width:116px}
}
