/*
Theme Name: Jimmy Song Seniors Pages
Theme URI: https://jimmysongseniors.com
Author: Jimmy Song
Description: Custom theme for Jimmy Song Seniors. The seven core pages (Home, About, Contact, Portfolio, Campuses, Blog, Reviews) are served verbatim from raw templates so their markup can never be altered by the editor. Blog posts and remaining pages render through matching shell templates.
Version: 1.0.0
Requires PHP: 7.4
License: Proprietary
Text Domain: jss-pages
*/

/* ============ Shell design system (matches raw pages) ============ */
:root{
  --ink:#1a1714;
  --paper:#fffdf9;
  --cardinal:#a80532;
  --gold:#c9a14a;
  --stone:#8a8378;
  --line:rgba(26,23,20,.12);
  --display:'Anton',Impact,sans-serif;
  --serif:'Instrument Serif',Georgia,serif;
  --body:'Archivo',-apple-system,Helvetica,Arial,sans-serif;
  --pad:clamp(20px,5vw,72px);
  --shell:max(var(--pad), calc(50% - 700px + var(--pad)));
  --ease:cubic-bezier(.77,0,.18,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--paper);color:var(--ink);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
::selection{background:var(--cardinal);color:var(--paper)}

/* NAV */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(255,253,249,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:transform .4s var(--ease)}
.site-header.hide{transform:translateY(-100%)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px var(--shell);gap:14px}
.logo{font-family:var(--display);font-size:20px;letter-spacing:.04em;text-decoration:none;text-transform:uppercase;line-height:1;display:flex;align-items:center;gap:12px}
.logo span{color:var(--cardinal)}
.nav-wrap{display:flex;align-items:center;gap:34px}
.nav-links{display:flex;gap:34px;list-style:none;align-items:center;margin:0;padding:0}
.nav-links a{text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:6px 0;border-bottom:2px solid transparent;transition:border-color .2s}
.nav-links a:hover,.nav-links .current-menu-item>a{border-color:var(--cardinal)}
.nav-cta{border:1.5px solid var(--ink);padding:10px 20px;text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.nav-cta:hover{background:var(--ink);color:var(--paper)}
.menu-btn{display:none;background:none;border:1.5px solid var(--ink);font-family:var(--body);font-weight:600;font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:10px 16px;cursor:pointer}

/* CONTENT SHELL */
.jss-main{padding:calc(70px + clamp(24px,4vh,48px)) var(--shell) clamp(56px,8vh,96px)}
.jss-entry{max-width:760px}
.jss-entry-wide{max-width:1100px}
.eyebrow{font-weight:600;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--cardinal)}
.jss-title{font-family:var(--display);font-weight:400;font-size:clamp(34px,5.5vw,72px);line-height:.98;text-transform:uppercase;margin:14px 0 10px}
.jss-meta{font-size:13px;color:var(--stone);margin-bottom:clamp(24px,4vh,40px)}
.jss-thumb{margin:0 0 clamp(24px,4vh,40px)}

/* PROSE */
.jss-prose{font-size:16px;color:#2e2a24;line-height:1.75}
.jss-prose p{margin:0 0 1.25em;max-width:68ch}
.jss-prose h1,.jss-prose h2{font-family:var(--display);font-weight:400;text-transform:uppercase;line-height:1.1;margin:1.6em 0 .55em}
.jss-prose h2{font-size:clamp(22px,2.4vw,32px)}
.jss-prose h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(17px,1.8vw,22px);line-height:1.15;margin:1.5em 0 .5em}
.jss-prose h2:first-child,.jss-prose h3:first-child{margin-top:0}
.jss-prose a{color:var(--cardinal);text-decoration-thickness:1.5px;text-underline-offset:3px}
.jss-prose ul,.jss-prose ol{margin:0 0 1.25em 1.2em;max-width:66ch}
.jss-prose li{margin-bottom:.4em}
.jss-prose blockquote{border-left:3px solid var(--gold);padding:.3em 0 .3em 1.1em;margin:0 0 1.25em;font-family:var(--serif);font-style:italic;font-size:1.1em;color:#3c3731}
.jss-prose img{margin:1.6em 0}
.jss-prose figure{margin:1.6em 0}
.jss-prose figcaption{font-size:12px;color:var(--stone);margin-top:8px}
.jss-prose hr{border:none;border-top:1px solid var(--line);margin:2em 0}
.jss-prose .wp-block-gallery{margin:1.6em 0}

/* ARCHIVE CARDS */
.jss-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,40px);margin-top:clamp(28px,4vh,48px)}
.jss-card{text-decoration:none;border-top:2px solid var(--gold);padding-top:16px;display:block}
.jss-card img{aspect-ratio:4/5;object-fit:cover;width:100%;margin-bottom:14px}
.jss-card h2{font-family:var(--display);font-weight:400;font-size:clamp(17px,1.8vw,22px);text-transform:uppercase;line-height:1.15;margin-bottom:8px}
.jss-card:hover h2{color:var(--cardinal)}
.jss-card p{font-size:13px;color:var(--stone)}
.jss-pagination{margin-top:clamp(32px,5vh,56px);display:flex;gap:10px;flex-wrap:wrap}
.jss-pagination .page-numbers{border:1.5px solid var(--ink);padding:10px 16px;text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.jss-pagination .page-numbers.current,.jss-pagination .page-numbers:hover{background:var(--cardinal);border-color:var(--cardinal);color:var(--paper)}

/* CTA + FOOTER */
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;padding:18px 34px;text-decoration:none;border:1.5px solid var(--ink);position:relative;overflow:hidden;z-index:1;background:transparent;color:var(--ink);cursor:pointer;font-family:var(--body)}
.btn::after{content:'';position:absolute;inset:0;z-index:-1;background:var(--cardinal);transform:translateY(101%);transition:transform .35s var(--ease)}
.btn:hover::after{transform:translateY(0)}
.btn:hover{color:var(--paper);border-color:var(--cardinal)}
.btn:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.bigbook{display:block;text-decoration:none;text-align:center;background:var(--cardinal);color:var(--paper);font-family:var(--display);font-weight:400;font-size:clamp(40px,8vw,140px);line-height:1;text-transform:uppercase;padding:clamp(34px,6vh,70px) var(--pad);position:relative;overflow:hidden}
.bigbook span{position:relative;z-index:1;transition:letter-spacing .5s var(--ease)}
.bigbook:hover span{letter-spacing:.04em}
.bigbook::after{content:'';position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform .45s var(--ease)}
.bigbook:hover::after{transform:translateY(0)}
.site-footer{border-top:1px solid var(--line);padding:36px var(--shell);display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;font-size:12px;color:var(--stone)}
.site-footer nav ul{display:flex;gap:22px;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.site-footer a{text-decoration:none;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.site-footer a:hover{color:var(--cardinal)}

/* RESPONSIVE */
@media(max-width:900px){.jss-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .menu-btn{display:block}
  .nav-wrap{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:20px var(--pad);flex-direction:column;align-items:flex-start;gap:20px}
  .nav-wrap.open{display:flex}
  .nav-links{flex-direction:column;gap:16px}
  .jss-grid{grid-template-columns:1fr}
}
