/*
Theme Name: AristoPR
Theme URI: https://aristopr.com
Author: The AristoMedia Group
Author URI: https://aristopr.com
Description: Editorial homepage theme for AristoPR — the press & publicity division of The AristoMedia Group. Self-contained standalone theme; front-page.php renders the full homepage, with the Latest News section pulled natively from WordPress posts.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: aristopr
*/

:root{
  --ink:#16110F;
  --bg:#FBFAF8;
  --paper:#F2EEE8;
  --wine:#942C49;        /* PMS 7641 */
  --wine-deep:#7C2540;
  --maroon:#582931;      /* PMS 504 */
  --gray:#6B6560;
  --line:#1c1714;
  --hair:#D9D2C8;
  --display:'Fraunces','Georgia',serif;
  --sans:'Inter',-apple-system,system-ui,sans-serif;
  --label:'Space Grotesk','Inter',sans-serif;
  --maxw:1280px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.62;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
em{font-style:italic;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 36px;}

/* Kicker / editorial labels */
.kicker{font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--wine);display:inline-block;}
.rule{border:0;border-top:1px solid var(--hair);}

/* Section scaffold */
.sec{padding:54px 0;border-top:1px solid var(--line);}
.sec-head{margin-bottom:32px;}
.sec-head .kicker{margin-bottom:18px;}
.sec-head h2{font-family:var(--display);font-weight:600;font-size:clamp(23px,3vw,38px);line-height:1.02;letter-spacing:-.015em;max-width:18ch;}
.sec-head h2 em{color:var(--wine);font-style:italic;}
.sec-head p{margin-top:16px;max-width:60ch;color:var(--gray);font-size:14px;}
.sec-head.center{text-align:center;}
.sec-head.center .sec-head h2,.sec-head.center h2{margin-left:auto;margin-right:auto;}
.sec-head.center p{margin-left:auto;margin-right:auto;}

/* ===== Masthead / Header ===== */
header.mast{background:var(--bg);position:sticky;top:0;z-index:60;border-bottom:3px solid var(--line);}
.mast-top{display:flex;align-items:center;justify-content:space-between;padding-top:9px;padding-bottom:9px;border-bottom:1px solid var(--hair);}
.mast-top span{font-family:var(--label);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gray);}
.mast-top .issue{color:var(--wine);}
.mast-main{display:flex;align-items:center;justify-content:space-between;height:62px;}
.brand img{height:42px;width:auto;}
nav.main{display:flex;gap:26px;flex-wrap:wrap;}
nav.main a{font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink);padding-bottom:3px;border-bottom:2px solid transparent;transition:.2s;}
nav.main a:hover{border-color:var(--wine);color:var(--wine);}
nav.main a.cta{background:var(--ink);color:#fff;padding:9px 16px;border:0;letter-spacing:.1em;}
nav.main a.cta:hover{background:var(--wine);}

/* ===== Lead story / Hero ===== */
.lead-story{padding:42px 0 38px;border-bottom:3px solid var(--line);background:var(--bg);}
.lead-story .kicker{font-size:13px;letter-spacing:.28em;}
.lead-story h1{font-family:var(--display);font-weight:600;font-size:clamp(32px,5vw,72px);line-height:1.0;letter-spacing:-.025em;margin:22px 0 0;max-width:none;}
.lead-story h1 em{color:var(--wine);font-style:italic;font-weight:500;}
.standfirst{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(15px,1.7vw,19px);color:var(--maroon);margin-top:26px;}
.lead-cols{display:grid;grid-template-columns:1.5fr 1fr;gap:36px;align-items:end;margin-top:32px;padding-top:24px;border-top:1px solid var(--hair);}
.lead-cols .dek{font-size:15px;line-height:1.7;color:#2a2320;}
.dek-col .dek + .dek{margin-top:14px;}
.lead-actions{display:flex;flex-direction:column;gap:12px;}
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:13px 20px;transition:.2s;border:2px solid var(--ink);}
.btn.solid{background:var(--ink);color:#fff;}
.btn.solid:hover{background:var(--wine);border-color:var(--wine);}
.btn.ghost:hover{background:var(--ink);color:#fff;}

/* ===== Press strip / marquee ===== */
.presswrap{background:var(--ink);color:#fff;display:flex;align-items:stretch;overflow:hidden;}
.presswrap .pl{flex:0 0 auto;background:var(--wine);color:#fff;display:flex;align-items:center;padding:0 22px;font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;}
.marquee{overflow:hidden;white-space:nowrap;flex:1;}
.marquee .track{display:inline-flex;align-items:center;gap:0;padding:14px 0;animation:scroll 60s linear infinite;}
.marquee span{font-family:var(--display);font-style:italic;font-size:17px;padding:0 4px;color:#fff;}
.marquee .dot{color:var(--wine);font-style:normal;font-size:11px;padding:0 14px;opacity:.9;}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ===== By the numbers ===== */
.numbers{padding:38px 0;border-bottom:1px solid var(--line);}
.numbers .wrap{display:grid;grid-template-columns:repeat(4,1fr);}
.numbers .stat{padding:8px 30px;border-left:1px solid var(--hair);}
.numbers .stat:first-child{border-left:0;padding-left:0;}
.numbers .n{font-family:var(--display);font-weight:600;font-size:clamp(30px,3.4vw,48px);line-height:1;letter-spacing:-.02em;}
.numbers .n em{color:var(--wine);font-style:italic;}
.numbers .t{margin-top:12px;font-size:13px;color:var(--gray);max-width:22ch;}

/* ===== Roster / Clients ===== */
.cset{margin-top:36px;}
.cglabel{font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--wine);padding-bottom:14px;border-bottom:2px solid var(--line);margin-bottom:34px;display:flex;align-items:center;gap:14px;}
.cglabel::after{content:"";flex:1;height:1px;background:var(--hair);}
.roster{display:grid;grid-template-columns:repeat(5,1fr);gap:24px 20px;}
.roster.brands{display:flex;flex-wrap:wrap;justify-content:center;gap:22px 18px;}
.roster.brands .figure{width:calc(20% - 15px);}
.roster.brands .figure.logo .frame{padding:0;border-color:var(--wine);}
.roster.brands .figure.logo .frame img{padding:16px;}
.roster.brands figcaption{font-size:13px;text-align:center;}
.figure .frame{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--paper);border:1px solid var(--line);filter:grayscale(100%) contrast(1.02);transition:.3s;}
.figure:hover .frame{filter:grayscale(0%);}
.figure .frame img{width:100%;height:100%;object-fit:cover;}
.figure.logo .frame{aspect-ratio:4/3;background:#fff;filter:none;display:flex;align-items:center;justify-content:center;}
.figure.logo .frame img{object-fit:contain;padding:22px;}
.figure figcaption{margin-top:11px;font-family:var(--display);font-weight:600;font-size:15px;line-height:1.2;letter-spacing:-.01em;}
.figure .cap-role{font-family:var(--label);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray);margin-top:5px;}

/* ===== Track record / Past ===== */
.ledger{margin-top:10px;border-top:2px solid var(--line);border-bottom:2px solid var(--line);padding:30px 0;}
.ledger .lbl{font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);margin-bottom:18px;}
.ledger .names{font-family:var(--display);font-weight:500;font-size:clamp(15px,1.8vw,20px);line-height:1.6;letter-spacing:-.01em;}
.ledger .names .nm{white-space:nowrap;}
.ledger .names .dot{color:var(--wine);padding:0 12px;}
.ledger .names em{font-style:italic;color:var(--wine);}

/* ===== Feature (Our Legacy) ===== */
.feature .wrap{display:grid;grid-template-columns:1.45fr 1fr;gap:64px;}
.feature .body p{font-size:16px;line-height:1.78;margin-top:20px;color:#2a2320;}
.feature .body p:first-of-type{margin-top:0;}
.feature .body p:first-of-type::first-letter{font-family:var(--display);font-weight:900;float:left;font-size:52px;line-height:.72;padding:8px 14px 0 0;color:var(--wine);}
.feature .aside{border-left:2px solid var(--line);padding-left:30px;align-self:start;}
.feature .aside .box{padding:20px 0;border-bottom:1px solid var(--hair);}
.feature .aside .box:last-child{border-bottom:0;}
.feature .aside .n{font-family:var(--display);font-weight:600;font-size:23px;letter-spacing:-.01em;}
.feature .aside .n em{color:var(--wine);font-style:italic;}
.feature .aside .t{font-size:14px;color:var(--gray);margin-top:4px;}

/* ===== Network tags ===== */
.network{background:var(--ink);color:#fff;}
.network .sec-head h2{color:#fff;}
.network .sec-head h2 em{color:#E79; }
.network .sec-head p{color:rgba(255,255,255,.7);}
.net-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;}
.net-row span{font-family:var(--label);font-size:12.5px;letter-spacing:.06em;border:1px solid rgba(255,255,255,.32);padding:11px 20px;color:#fff;transition:.2s;}
.net-row span:hover{background:var(--wine);border-color:var(--wine);}

/* ===== Contents (Services) ===== */
.toc{border-top:2px solid var(--line);}
.toc .row{display:grid;grid-template-columns:72px 1fr 1.3fr;gap:20px;align-items:baseline;padding:17px 0;border-bottom:1px solid var(--hair);transition:.2s;}
.toc .row:hover{background:var(--paper);padding-left:14px;padding-right:14px;}
.toc .num{font-family:var(--display);font-weight:600;font-size:20px;color:var(--wine);font-style:italic;}
.toc h4{font-family:var(--display);font-weight:600;font-size:clamp(16px,1.5vw,19px);line-height:1.12;letter-spacing:-.01em;}
.toc p{color:var(--gray);font-size:14px;}

/* ===== Playbook (Process) ===== */
.playbook{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid var(--line);border-left:1px solid var(--hair);}
.play{border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:28px 24px 34px;}
.play .s-num{font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.2em;color:var(--wine);}
.play h4{font-family:var(--display);font-weight:600;font-size:16px;margin:14px 0 8px;letter-spacing:-.01em;}
.play p{font-size:13px;color:var(--gray);}

/* ===== Events Portfolio ===== */
.events{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:2px solid var(--line);border-left:1px solid var(--hair);margin-top:36px;}
.event{border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:30px 26px 34px;transition:.2s;}
.event:hover{background:var(--paper);}
.event .loc{font-family:var(--label);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--wine);}
.event h4{font-family:var(--display);font-weight:600;font-size:clamp(18px,1.9vw,23px);margin:12px 0 10px;letter-spacing:-.015em;line-height:1.05;}
.event p{font-size:13.5px;color:var(--gray);line-height:1.62;}

/* ===== Leadership masthead ===== */
.people .lead-figure{display:grid;grid-template-columns:240px 1fr;gap:40px;align-items:start;margin-bottom:60px;padding-bottom:54px;border-bottom:1px solid var(--hair);}
.people .frame{aspect-ratio:4/5;overflow:hidden;background:var(--paper);border:1px solid var(--line);}
.people .frame img{width:100%;height:100%;object-fit:cover;}
.people .frame.fallback{display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:700;font-size:64px;color:#fff;background:linear-gradient(150deg,var(--wine),var(--maroon));}
.people .l-name{font-family:var(--display);font-weight:600;font-size:clamp(20px,2.2vw,28px);letter-spacing:-.015em;}
.people .role{font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--wine);display:block;margin:8px 0 18px;}
.people p{font-size:15px;line-height:1.72;color:#2a2320;}
.people .two{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;}
.people .person .frame{aspect-ratio:4/5;width:155px;margin-bottom:18px;}
.people details{margin-top:18px;border-top:1px solid var(--hair);padding-top:14px;}
.people summary{font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--wine);cursor:pointer;list-style:none;}
.people summary::-webkit-details-marker{display:none;}
.people summary::before{content:"+ ";}
.people details[open] summary::before{content:"\2013 ";}
.people details p{font-size:15.5px;line-height:1.7;margin-top:14px;color:#2a2320;}
.people details h6{font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-top:20px;}
.people details ul{margin:12px 0 0;padding-left:20px;}
.people details li{font-size:15px;margin-bottom:7px;color:#2a2320;}
.people details a{color:var(--wine);text-decoration:underline;}

/* ===== Longform (Walker legacy) ===== */
.longform{background:var(--paper);}
.longform .wrap{max-width:880px;}
.longform .body p{font-size:16px;line-height:1.82;margin-top:22px;color:#2a2320;}
.longform .body p.kicker-line{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(16px,2vw,22px);color:var(--maroon);line-height:1.3;margin-top:0;}
.longform .body p:nth-of-type(2)::first-letter{font-family:var(--display);font-weight:900;float:left;font-size:52px;line-height:.72;padding:8px 14px 0 0;color:var(--wine);}
.longform .closer{font-family:var(--display);font-style:italic;font-weight:600;font-size:clamp(20px,2.4vw,30px);line-height:1.18;text-align:center;color:var(--ink);margin-top:46px;padding-top:40px;border-top:2px solid var(--line);}

/* ===== Dispatches (News) ===== */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px 30px;}
.card{border-top:2px solid var(--line);padding-top:18px;}
.card .thumb{aspect-ratio:3/2;background:var(--paper);position:relative;overflow:hidden;color:#fff;font-family:var(--display);font-weight:600;font-size:22px;display:flex;align-items:flex-end;padding:16px;filter:grayscale(100%);transition:.3s;background-size:cover;background-position:center;}
.card:hover .thumb{filter:grayscale(0%);}
.card .thumb.g1{background:linear-gradient(150deg,var(--wine),var(--maroon));}
.card .thumb.g2{background:linear-gradient(150deg,var(--maroon),var(--ink));}
.card .thumb.g3{background:linear-gradient(150deg,var(--wine-deep),var(--wine));}
.c-body{padding-top:16px;}
.c-body .date{font-family:var(--label);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--wine);}
.c-body h3{font-family:var(--display);font-weight:600;font-size:17px;line-height:1.18;letter-spacing:-.01em;margin:10px 0;}
.c-body p{font-size:13px;color:var(--gray);}
.c-body .more{font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);display:inline-block;margin-top:14px;border-bottom:2px solid var(--wine);padding-bottom:2px;}

/* ===== Contact ===== */
.cta{background:var(--maroon);color:#fff;padding:60px 0;}
.cta .inner{max-width:var(--maxw);margin:0 auto;padding:0 36px;display:grid;grid-template-columns:1.4fr 1fr;gap:64px;align-items:center;}
.cta .kicker{color:#E79;}
.cta h2{font-family:var(--display);font-weight:600;font-size:clamp(28px,4vw,56px);line-height:.97;letter-spacing:-.02em;margin:18px 0 22px;}
.cta h2 em{font-style:italic;color:#E79;}
.cta p{font-size:16px;line-height:1.7;color:rgba(255,255,255,.86);max-width:54ch;margin-bottom:30px;}
.cta .btn.solid{background:#fff;color:var(--maroon);border-color:#fff;}
.cta .btn.solid:hover{background:var(--wine);color:#fff;border-color:var(--wine);}
.cta .info{border-left:2px solid rgba(255,255,255,.3);padding-left:32px;}
.cta .info .row{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.18);}
.cta .info .k{display:block;font-family:var(--label);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:5px;}
.cta .info .v{font-family:var(--display);font-size:16px;}

/* ===== Footer / colophon ===== */
footer.site{background:var(--ink);color:#fff;padding:40px 0 32px;}
footer.site .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;}
footer.site .logo img{height:52px;margin-bottom:18px;filter:brightness(0) invert(1);}
footer.site .addr{color:rgba(255,255,255,.6);font-size:14px;line-height:1.8;}
footer.site h5{font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#E79;margin-bottom:16px;}
footer.site ul{list-style:none;}
footer.site li{margin-bottom:10px;}
footer.site li a{color:rgba(255,255,255,.78);font-size:14px;transition:.2s;}
footer.site li a:hover{color:#fff;}
footer.site .base{display:flex;justify-content:space-between;margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.16);font-size:12px;letter-spacing:.04em;color:rgba(255,255,255,.5);}

/* ===== Responsive ===== */
@media(max-width:980px){
  .wrap,.cta .inner{padding:0 22px;}
  .mast-main{height:auto;flex-direction:column;gap:16px;padding:18px 0;}
  nav.main{justify-content:center;gap:16px;}
  .lead-cols{grid-template-columns:1fr;gap:26px;}
  .lead-cols .dek{column-count:1;}
  .numbers .wrap{grid-template-columns:1fr 1fr;gap:30px 0;}
  .numbers .stat:nth-child(3){border-left:0;padding-left:0;}
  .roster{grid-template-columns:repeat(3,1fr);}
  .roster.brands .figure{width:calc(33.33% - 12px);}
  .feature .wrap{grid-template-columns:1fr;gap:36px;}
  .feature .aside{border-left:0;border-top:2px solid var(--line);padding-left:0;padding-top:24px;}
  .toc .row{grid-template-columns:60px 1fr;}
  .toc p{grid-column:2;}
  .playbook{grid-template-columns:1fr 1fr;}
  .events{grid-template-columns:1fr 1fr;}
  .people .lead-figure{grid-template-columns:1fr;gap:26px;}
  .people .two{grid-template-columns:1fr 1fr;gap:40px;}
  .grid{grid-template-columns:1fr 1fr;}
  .cta .inner{grid-template-columns:1fr;gap:36px;}
  .cta .info{border-left:0;border-top:2px solid rgba(255,255,255,.3);padding-left:0;padding-top:24px;}
  footer.site .cols{grid-template-columns:1fr 1fr;}
}
@media(max-width:600px){
  .lead-story h1{font-size:clamp(40px,12vw,64px);}
  .numbers .wrap{grid-template-columns:1fr;}
  .numbers .stat{border-left:0;padding-left:0;}
  .roster{grid-template-columns:1fr 1fr;}
  .roster.brands .figure{width:calc(50% - 11px);}
  .playbook{grid-template-columns:1fr;}
  .events{grid-template-columns:1fr;}
  .grid{grid-template-columns:1fr;}
  footer.site .cols{grid-template-columns:1fr;}
  footer.site .base{flex-direction:column;gap:8px;}
}
