/*
Theme Name: The Cultivated Man
Theme URI: https://thecultivatedman.org
Author: The Cultivated Man
Description: A dark, cinematic custom theme for The Cultivated Man — visual-portfolio led, built around five pillars: Body, Craft, Mind, World, Brotherhood.
Version: 1.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: cultivatedman
*/

:root{
  --black:#0A0A0A; --charcoal:#1C1C1C; --slate:#3A3A3A;
  --gold:#C9A356; --bone:#E8E2D6; --mute:#8a857b;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--black);color:var(--bone);font-family:'Archivo',sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;}
a{color:var(--gold);}
img{max-width:100%;height:auto;display:block;}
.wrap{max-width:1200px;margin:0 auto;padding:0 28px;}

/* nav */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:20px 28px;background:linear-gradient(180deg,rgba(10,10,10,.92),transparent);}
.logo{font-family:'Fraunces',serif;font-size:19px;letter-spacing:1.5px;color:var(--bone);text-decoration:none;}
.logo span{color:var(--gold);}
.navlinks{display:flex;gap:30px;font-size:12.5px;letter-spacing:1.5px;text-transform:uppercase;list-style:none;margin:0;padding:0;}
.navlinks a{color:var(--mute);text-decoration:none;transition:color .25s;}
.navlinks a:hover{color:var(--bone);}

/* mobile menu toggle (hidden on desktop) */
.nav-toggle{display:none;background:none;border:0;cursor:pointer;width:30px;height:22px;position:relative;z-index:60;padding:0;}
.nav-toggle span{display:block;position:absolute;left:0;width:100%;height:2px;background:var(--bone);transition:transform .3s,opacity .3s,top .3s;}
.nav-toggle span:nth-child(1){top:0;}
.nav-toggle span:nth-child(2){top:10px;}
.nav-toggle span:nth-child(3){top:20px;}
body.nav-open .nav-toggle span:nth-child(1){top:10px;transform:rotate(45deg);}
body.nav-open .nav-toggle span:nth-child(2){opacity:0;}
body.nav-open .nav-toggle span:nth-child(3){top:10px;transform:rotate(-45deg);}

@media(max-width:760px){
  .nav-toggle{display:block;}
  .navlinks{position:fixed;inset:0;background:rgba(10,10,10,.98);flex-direction:column;align-items:center;justify-content:center;gap:34px;font-size:20px;letter-spacing:2px;opacity:0;pointer-events:none;transition:opacity .35s;}
  body.nav-open .navlinks{opacity:1;pointer-events:auto;}
  .navlinks a{color:var(--bone);}
  .navlinks a:hover{color:var(--gold);}
}

/* hero */
.hero{height:100vh;min-height:620px;display:flex;align-items:center;position:relative;overflow:hidden;background:radial-gradient(120% 80% at 70% 20%, #20201c 0%, var(--black) 60%);}
.hero::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.18) 2px 4px);opacity:.35;pointer-events:none;}
.hero-inner{position:relative;z-index:2;}
.eyebrow{font-size:12px;letter-spacing:4px;text-transform:uppercase;color:var(--gold);margin-bottom:22px;}
.hero h1{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(44px,8vw,104px);line-height:.98;letter-spacing:-1px;color:var(--bone);}
.hero h1 em{font-style:italic;color:var(--gold);}
.hero p{max-width:430px;margin-top:26px;color:var(--mute);font-size:16px;}
.cta{display:inline-block;margin-top:34px;padding:14px 30px;border:1px solid var(--gold);color:var(--gold);text-decoration:none;font-size:12px;letter-spacing:2px;text-transform:uppercase;transition:all .3s;}
.cta:hover{background:var(--gold);color:var(--black);}
.scroll{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:2px;color:var(--mute);text-transform:uppercase;z-index:2;}

/* sections */
.section{padding:110px 0;}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--slate);padding-bottom:18px;margin-bottom:42px;}
.sec-head h2{font-family:'Fraunces',serif;font-weight:400;font-size:30px;color:var(--bone);}
.sec-head span{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--mute);}

/* pillar grid */
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;}
.tile{position:relative;border-radius:6px;overflow:hidden;min-height:230px;display:flex;align-items:flex-end;padding:24px;color:#fff;text-decoration:none;border:1px solid #161616;transition:transform .4s;}
.tile:hover{transform:translateY(-4px);}
.tile::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.82));z-index:1;}
.tile .meta{position:relative;z-index:2;}
.tile .k{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);}
.tile .t{font-family:'Fraunces',serif;font-size:23px;margin-top:6px;line-height:1.15;}
.t-body{background:linear-gradient(135deg,#2b2018,#181410);grid-column:span 7;min-height:340px;}
.t-craft{background:linear-gradient(135deg,#1a2024,#101315);grid-column:span 5;min-height:340px;}
.t-mind{background:linear-gradient(135deg,#241d16,#15110c);grid-column:span 4;}
.t-world{background:linear-gradient(135deg,#1e2218,#121510);grid-column:span 4;}
.t-brother{background:linear-gradient(135deg,#23191c,#150f11);grid-column:span 4;}

/* tablet: two-up grid */
@media(max-width:980px) and (min-width:781px){
  .t-body,.t-craft{grid-column:span 12;min-height:300px;}
  .t-mind,.t-world{grid-column:span 6;}
  .t-brother{grid-column:span 12;}
}
/* phone: stack everything */
@media(max-width:780px){
  .tile,.t-body,.t-craft,.t-mind,.t-world,.t-brother{grid-column:span 12!important;min-height:220px;}
  .section{padding:70px 0;}
  .grid{gap:14px;}
  .sec-head{flex-direction:column;align-items:flex-start;gap:6px;}
}

/* manifesto */
.manifesto{background:var(--charcoal);padding:90px 0;text-align:center;}
.manifesto p{font-family:'Fraunces',serif;font-style:italic;font-weight:300;font-size:clamp(22px,3.4vw,34px);line-height:1.45;max-width:780px;margin:0 auto;color:var(--bone);}
.manifesto .q{color:var(--gold);}

/* generic content (posts/pages/archives) */
.content{padding:150px 0 90px;}
.content h1.page-title{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(34px,5vw,60px);color:var(--bone);margin-bottom:40px;}
.post-card{border-bottom:1px solid var(--slate);padding:30px 0;}
.post-card a{font-family:'Fraunces',serif;font-size:26px;color:var(--bone);text-decoration:none;transition:color .25s;}
.post-card a:hover{color:var(--gold);}
.post-card .date{display:block;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--mute);margin-top:8px;}
.post-card .excerpt{color:var(--mute);margin-top:14px;max-width:680px;}
article.single{padding:150px 0 90px;}
article.single h1{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(32px,5vw,56px);color:var(--bone);line-height:1.05;margin-bottom:18px;}
article.single .date{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:40px;display:block;}
article.single .body-copy{max-width:720px;font-size:17px;color:var(--bone);}
article.single .body-copy p{margin-bottom:24px;}
article.single .body-copy h2,article.single .body-copy h3{font-family:'Fraunces',serif;color:var(--bone);margin:38px 0 14px;font-weight:400;}
article.single .body-copy a{color:var(--gold);}

/* footer */
.site-footer{padding:60px 0 50px;border-top:1px solid var(--slate);text-align:center;}
.site-footer .logo{display:inline-block;margin-bottom:14px;}
.site-footer p{font-size:12px;letter-spacing:1px;color:var(--mute);}

/* ── responsive safety net ── */

/* ultrawide: cap the reading/layout width so it doesn't sprawl */
@media(min-width:1500px){
  .wrap{max-width:1320px;}
}

/* very short or landscape phones: let hero breathe instead of clipping */
@media(max-height:560px){
  .hero{height:auto;min-height:0;padding:140px 0 80px;}
  .scroll{display:none;}
}

/* small phones: tighten hero copy + nav padding */
@media(max-width:480px){
  .site-nav{padding:16px 20px;}
  .wrap{padding:0 20px;}
  .hero p{font-size:15px;}
  .content,article.single{padding-top:120px;}
}

/* respect users who prefer less motion */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}

/* keyboard focus visibility for accessibility */
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
