/*
Theme Name:   Madame Wu
Theme URI:    https://madamewucodes.com
Description:  Madame Wu personal brand site — child theme of Twenty Twenty-Five. Ports the brand's design tokens (Instrument Serif / Cormorant Garamond / Hanken Grotesk + lacquer-black / canton-teal / bone-paper palette with gold + oxblood accents) onto WordPress's block theme architecture. Shared chrome (masthead nav, footer, archive grid) lives here; page-specific layouts ride inside each page's own content style block.
Author:       Nick Onken / Onken Studio
Author URI:   https://nickonken.com
Template:     twentytwentyfive
Version:      0.1.3
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 8.1
License:      GPL v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  madamewu
Tags:         block-theme, blog, one-column, custom-colors, custom-fonts, editor-style, full-site-editing
*/

/* ============================================================ */
/*  Brand tokens (also in theme.json — exposed as CSS vars for   */
/*  the custom HTML blocks that reference them inline)           */
/* ============================================================ */
:root{
  --black:#0E0D0B;        /* lacquer black, primary ground */
  --canton:#13282E;       /* deep teal-petrol, porcelain ground */
  --canton-2:#0F1F24;
  --paper:#EDE7DA;        /* bone paper, light spreads */
  --bone:#EDE7DA;
  --silver:#A39C8E;       /* muted captions, her hair */
  --gold:#B2935B;
  --gold-soft:#C9AE7C;
  --oxblood:#7E2B22;      /* the chop / lacquer red */
  --jade:#5E7A6B;         /* sparing tertiary */
  --rule:rgba(178,147,91,.26);
  --rule-l:rgba(28,24,19,.18);
}

/* ============================================================ */
/*  Reset + base (shared by every template + content block)      */
/* ============================================================ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body.wp-singular,body{background:var(--black);color:var(--bone);font-family:"Hanken Grotesk",sans-serif;font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.wrap{max-width:1280px;margin:0 auto;padding:0 48px}
.serif{font-family:"Instrument Serif",serif;font-weight:400}
.serif em{font-style:italic}
.label{font-family:"Hanken Grotesk";text-transform:uppercase;letter-spacing:.26em;font-size:12px;font-weight:600}
.gold{color:var(--gold-soft)} .ox{color:var(--oxblood)}
a{color:inherit;text-decoration:none}
img{display:block}

/* Neutralise Twenty Twenty-Five content constraints so the custom  */
/* full-bleed layouts inside post-content take over completely.     */
/* TT5 puts horizontal padding on <body> (var(--wp--preset--spacing--50)); */
/* it out-specifies our `*` reset, so override on body directly to remove   */
/* the left/right gutters and let the design reach the page edges.          */
html,body{padding-left:0!important;padding-right:0!important;margin-left:0!important;margin-right:0!important;max-width:none!important}
.wp-site-blocks{padding:0!important}
.wp-block-post-content,.entry-content{margin:0;max-width:none}
.wp-block-post-content>*,.entry-content>*{margin-block:0}
main.wp-block-group{margin:0!important}

/* ============================================================ */
/*  MASTHEAD NAV (parts/header.html)                             */
/* ============================================================ */
.wu-nav{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;justify-content:space-between;align-items:center;padding:20px 48px;background:rgba(14,13,11,.86);backdrop-filter:blur(7px);transition:.4s}
.wu-nav.solid{background:rgba(14,13,11,.95);border-bottom:1px solid var(--rule)}
.wu-nav .mark{display:flex;align-items:center}
.wu-nav .logo-svg{height:23px;width:auto;display:block;transition:opacity .3s}
.wu-nav .mark:hover .logo-svg{opacity:.78}
.wu-nav .navlinks{display:flex;gap:34px}
.wu-nav .navlinks a{font-family:"Hanken Grotesk";text-transform:uppercase;letter-spacing:.2em;font-size:11.5px;font-weight:500;color:var(--silver);transition:color .3s}
.wu-nav .navlinks a:hover,.wu-nav .navlinks a.active{color:var(--gold-soft)}
.wu-nav .burger{display:none;position:relative;z-index:80;flex-direction:column;justify-content:center;gap:6px;width:30px;height:24px;background:none;border:0;cursor:pointer}
.wu-nav .burger span{display:block;width:24px;height:1.5px;background:var(--bone);transition:transform .45s cubic-bezier(.7,0,.2,1),opacity .25s}
.wu-nav.open .burger span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.wu-nav.open .burger span:nth-child(2){opacity:0}
.wu-nav.open .burger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
body.nav-lock{overflow:hidden}
@media(max-width:780px){
  .wu-nav .burger{display:flex}
  .wu-nav .navlinks{position:fixed;inset:0;background:rgba(14,13,11,.97);backdrop-filter:blur(10px);flex-direction:column;justify-content:center;align-items:center;gap:34px;transform:translateY(-12px);opacity:0;pointer-events:none;transition:opacity .45s ease,transform .45s cubic-bezier(.7,0,.2,1)}
  .wu-nav.open .navlinks{opacity:1;transform:none;pointer-events:auto}
  .wu-nav .navlinks a{font-size:19px;letter-spacing:.22em;color:var(--bone)}
  .wu-nav .navlinks a.active{color:var(--gold-soft)}
}

/* ============================================================ */
/*  FOOTER (parts/footer.html)                                   */
/* ============================================================ */
.wu-footer{border-top:1px solid var(--rule);padding:96px 0 56px;text-align:center}
.wu-footer .small{max-width:54ch;margin:0 auto 36px;color:var(--silver);font-family:"Instrument Serif",serif;font-style:italic;font-size:21px;line-height:1.65}
.wu-footer .foot-logo{height:38px;width:auto;display:inline-block;margin:54px 0 8px;opacity:.92}
.wu-footer .foot-row{display:flex;justify-content:center;gap:26px;color:var(--silver);font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin-top:20px;font-weight:500;flex-wrap:wrap}
.wu-footer .foot-row a{transition:color .3s}
.wu-footer .foot-row a:hover{color:var(--gold-soft)}

/* Shared CTA button (identical across all surfaces) */
.cta{display:inline-block;border:1px solid var(--gold);color:var(--gold-soft);padding:16px 40px;font-family:"Hanken Grotesk";text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:600;transition:.4s}
.cta:hover{background:var(--gold);color:var(--black)}
.cta.solid{background:var(--gold);color:var(--black)}
.cta.solid:hover{background:var(--gold-soft);border-color:var(--gold-soft)}

/* Scroll-reveal (observer wired in footer.html) */
.reveal{opacity:0;transform:translateY(20px);transition:opacity 1s ease,transform 1s ease}
.reveal.in{opacity:1;transform:none}

/* ============================================================ */
/*  ARCHIVE / JOURNAL INDEX + CATEGORY (home.html, category.html) */
/*  Namespaced .wu-archive* so it never collides with the page    */
/*  style blocks. Visual design mirrors concept-a-blog-index.     */
/* ============================================================ */
.wu-archive-masthead{padding:172px 0 60px;border-bottom:1px solid var(--rule);text-align:center}
.wu-archive-masthead .label{color:var(--gold-soft);display:block;margin-bottom:22px}
.wu-archive-masthead h1{font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(54px,9vw,128px);line-height:.96}
.wu-archive-masthead p{color:var(--silver);max-width:46ch;margin:24px auto 0;font-size:19px;line-height:1.6}

.wu-archive{padding:72px 0 120px}
.wu-archive .wu-archive-grid{display:grid!important;grid-template-columns:repeat(3,1fr);gap:48px 40px;list-style:none;margin:0;padding:0}
.wu-archive .wu-archive-grid > li{margin:0;width:auto;display:flex}
.wu-archive-card{display:flex;flex-direction:column;width:100%}
.wu-archive-card .wu-archive-card__photo,.wu-archive-card figure.wp-block-post-featured-image{aspect-ratio:3/2;overflow:hidden;margin:0 0 22px;background:var(--canton)}
.wu-archive-card .wp-block-post-featured-image img{width:100%;height:100%;object-fit:cover;filter:grayscale(.18);transition:transform 1s ease,filter .5s}
.wu-archive-card:hover .wp-block-post-featured-image img{transform:scale(1.05);filter:grayscale(0)}
.wu-archive-card .wp-block-post-terms{color:var(--gold-soft);font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;margin-bottom:12px}
.wu-archive-card .wp-block-post-terms a{text-decoration:none}
.wu-archive-card .wp-block-post-title{font-family:"Instrument Serif",serif;font-weight:400;font-size:27px;line-height:1.1;margin:0 0 12px;transition:color .3s}
.wu-archive-card:hover .wp-block-post-title{color:var(--gold-soft)}
.wu-archive-card .wp-block-post-title a{text-decoration:none}
.wu-archive-card .wp-block-post-excerpt{color:var(--silver);font-size:16px;line-height:1.55}
.wu-archive-card .wp-block-post-excerpt__excerpt{margin:0}
.wu-archive-card .wp-block-post-date{margin-top:16px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--silver);opacity:.8;font-weight:500}
.wu-archive-empty{color:var(--silver);text-align:center;font-family:"Instrument Serif",serif;font-style:italic;font-size:22px;padding:60px 0}
.wu-archive-pagination{display:flex;justify-content:center;gap:20px;margin-top:64px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--silver)}
.wu-archive-pagination a{color:var(--gold-soft)}

/* Category hero band */
.wu-cat-hero{position:relative;padding:172px 0 60px;text-align:center;border-bottom:1px solid var(--rule)}
.wu-cat-hero .label{color:var(--gold-soft);display:block;margin-bottom:20px}
.wu-cat-hero .wp-block-query-title{font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(44px,7vw,96px);line-height:1.0}
.wu-cat-hero .wp-block-term-description{color:var(--silver);max-width:48ch;margin:22px auto 0;font-size:18px;line-height:1.6}

@media(max-width:860px){.wu-archive .wu-archive-grid{grid-template-columns:1fr 1fr;gap:40px 28px}}
@media(max-width:560px){.wu-archive .wu-archive-grid{grid-template-columns:1fr}}
