/*
Theme Name: The Constitutional Compass
Theme URI: https://www.danielrstreet.com/
Author: Prepared for Daniel R. Street
Description: Lightweight block theme for danielrstreet.com, home of The Constitutional Compass: Evidence, Context and Constitutional Insight. Navy and gold, self-hosted Source Serif 4 and Source Sans 3, no page builder required. Includes patterns for the hero, credibility strip, auto-updating Substack feed, Spin vs. Reality, membership tiers, books, media/booking and subscribe sections.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: constitutional-compass
Tags: block-patterns, full-site-editing, one-column, custom-colors, editor-style, wide-blocks
*/

:root{--cc-navy:#1b2a4a;--cc-navy2:#13203a;--cc-gold:#b8913a;--cc-goldd:#9a7628;--cc-goldl:#e2c07a;--cc-cream:#f6efe0;--cc-ink:#26303f;--cc-mute:#5b6577;--cc-line:#e3e6ec;--cc-bg2:#f7f8fa;
--cc-serif:var(--wp--preset--font-family--serif);--cc-sans:var(--wp--preset--font-family--sans)}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{height:auto}
html{scroll-behavior:smooth;scroll-padding-top:90px}

/* kill stray gaps between top-level parts and between full-width sections */
.wp-site-blocks>*{margin-block-start:0!important}
.cc-content>.alignfull,.cc-main>.alignfull{margin-block-start:0!important;margin-block-end:0!important}
.cc-page-content>.alignfull:first-child{margin-block-start:0!important}
.cc-content>:last-child{margin-block-end:0}

/* utility text */
.cc-kicker{font:700 13px/1.2 var(--cc-sans)!important;letter-spacing:.18em;text-transform:uppercase;color:var(--cc-gold);margin:0}
.cc-lead{font-size:1.19rem;color:var(--cc-mute)}
.cc-muted{color:var(--cc-mute)}
.cc-small{font-size:.9rem}
.cc-label{font:700 13px/1.4 var(--cc-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--cc-mute);margin:0}
mark.cc-ph{font-size:12px;background:#3a2f12;color:var(--cc-goldl);padding:2px 7px;border-radius:10px;margin-left:4px;font-weight:600}

/* buttons */
.wp-block-button .wp-block-button__link{border:2px solid transparent;transition:.15s;white-space:nowrap}
.wp-block-button.is-style-gold .wp-block-button__link{background:var(--cc-gold);color:#fff}
.wp-block-button.is-style-gold .wp-block-button__link:hover{background:var(--cc-goldd)}
.wp-block-button.is-style-outline-navy .wp-block-button__link{background:transparent;border-color:var(--cc-navy);color:var(--cc-navy)}
.wp-block-button.is-style-outline-navy .wp-block-button__link:hover{background:var(--cc-navy);color:#fff}
.wp-block-button.is-style-ghost .wp-block-button__link{background:transparent;border-color:rgba(255,255,255,.45);color:#fff}
.wp-block-button.is-style-ghost .wp-block-button__link:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.wp-block-button.is-style-navy .wp-block-button__link{background:var(--cc-navy);color:#fff}
.wp-block-button.is-style-navy .wp-block-button__link:hover{background:var(--cc-navy2)}
.wp-block-buttons{gap:14px}

/* sections */
.cc-section{padding-top:96px;padding-bottom:96px}
.cc-section.cc-tight{padding-top:64px;padding-bottom:64px}
.cc-light{background:var(--cc-bg2);border-top:1px solid var(--cc-line);border-bottom:1px solid var(--cc-line)}
.cc-sec-head{margin-bottom:48px!important}
.cc-sec-head>*{max-width:720px}
.cc-sec-head>*{margin:0}
.cc-sec-head h2{margin:14px 0!important}
.cc-sec-head .cc-lead{margin:0!important}

/* header */
/* no backdrop-filter here: it would trap the mobile menu overlay inside the header */
header.cc-site-header,.cc-site-header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--cc-line)}
.admin-bar .cc-site-header{top:32px}
@media (max-width:782px){.admin-bar .cc-site-header{top:46px}}
.cc-header{min-height:76px;gap:24px}
.cc-brand{gap:12px!important;flex-shrink:0}
.cc-brand-mark{margin:0!important;flex-shrink:0}
.cc-brand-mark img{width:44px;height:44px;display:block}
.cc-brand-text>*{margin:0!important}
.cc-brand-name{font:700 21px/1.1 var(--cc-serif)}
.cc-brand-name a{color:var(--cc-navy);text-decoration:none}
.cc-brand-sub{font:600 11.5px/1.3 var(--cc-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--cc-gold)}
.cc-header-right{gap:28px!important}
.cc-nav{gap:30px}
.cc-nav .wp-block-navigation-item__content{color:var(--cc-ink);text-decoration:none;font-weight:600}
.cc-nav .wp-block-navigation-item__content:hover{color:var(--cc-gold)}
.cc-nav .wp-block-navigation__submenu-container{border:1px solid var(--cc-line)!important;border-radius:8px;padding:8px 0;box-shadow:0 14px 36px rgba(27,42,74,.12);min-width:280px!important}
.cc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content{padding:8px 18px!important;font-weight:500}
.cc-header-cta .wp-block-button__link{padding:11px 20px;font-size:15px}
.cc-nav .wp-block-navigation__responsive-container.is-menu-open{padding:24px 28px;background:#fff;color:var(--cc-navy)}
.cc-nav .is-menu-open .wp-block-navigation-item__content{font-size:20px;padding:6px 0}
.cc-nav .is-menu-open .wp-block-navigation__submenu-container{box-shadow:none!important;border:0!important;padding:0 0 0 14px!important}
.cc-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-size:17px;padding:4px 0!important}
.cc-nav .wp-block-navigation__responsive-container-open svg,.cc-nav .wp-block-navigation__responsive-container-close svg{width:28px;height:28px;fill:var(--cc-navy)}

/* hero */
.cc-hero{background:radial-gradient(1200px 500px at 85% 0%,#25385f 0%,transparent 60%),var(--cc-navy);color:#fff;padding-top:88px;padding-bottom:96px;border-bottom:5px solid var(--cc-gold);overflow:hidden}
.cc-hero-cols{gap:72px!important;align-items:center!important;margin:0}
.cc-hero .cc-kicker{color:var(--cc-goldl)}
.cc-hero-title{color:#fff!important;font-size:clamp(42px,5.2vw,68px)!important;letter-spacing:-.01em;margin:18px 0 14px!important}
.cc-hero-tag{font:italic 400 clamp(20px,2vw,25px)/1.35 var(--cc-serif);color:#e8dcc0;margin:0 0 26px!important}
.cc-hero-promise{font-size:20px;color:#d5dbe7;max-width:560px;margin:0 0 36px!important}
.cc-hero-by{margin-top:34px!important;font-size:15px;color:#aab4c7}
.cc-hero-by strong{color:#fff;font-weight:600}
.cc-hero-media{display:flex;justify-content:flex-end}
.cc-portrait{position:relative;max-width:360px;margin:0}
.cc-portrait img{border-radius:8px;position:relative;z-index:1;box-shadow:0 24px 60px rgba(0,0,0,.35);width:100%;display:block}
.cc-portrait:before{content:"";position:absolute;inset:18px -18px -18px 18px;border:2px solid var(--cc-gold);border-radius:8px}
.cc-portrait figcaption{position:relative;z-index:2;margin:-28px 20px 0!important;background:#fff;color:var(--cc-navy);border-radius:6px;padding:12px 16px;font-size:14.5px;line-height:1.35;box-shadow:0 10px 30px rgba(0,0,0,.2);text-align:left}
.cc-portrait figcaption strong{font-family:var(--cc-serif);font-size:17px;display:block}
.cc-portrait-light img{box-shadow:0 20px 44px rgba(27,42,74,.25)}

/* credibility */
.cc-cred{padding-top:56px;padding-bottom:52px;background:var(--cc-bg2);border-bottom:1px solid var(--cc-line)}
.cc-facts{gap:0!important;margin-bottom:40px!important}
.cc-fact{padding:4px 32px;border-left:3px solid var(--cc-gold)}
.cc-fact>*{margin:0!important}
.cc-fact-title{font:700 22px/1.2 var(--cc-serif);color:var(--cc-navy);margin-bottom:4px!important}
.cc-fact-text{color:var(--cc-mute);font-size:16px}
.cc-seen{gap:32px!important;align-items:center!important;border-top:1px solid var(--cc-line);padding-top:34px;margin-block:0!important}
.cc-seen-logos{border-top:0;padding-top:28px;align-items:flex-start!important}
.cc-pubs{font:700 20px/1.5 var(--cc-serif);color:#3a4559;margin:0}
.cc-pubs span{color:var(--cc-gold);margin:0 .6em;font-weight:400}
.cc-logos{margin:0}
.cc-logos img{width:100%;max-width:560px;filter:grayscale(1) contrast(1.05);opacity:.8;mix-blend-mode:multiply;border-radius:4px}

/* latest / rss cards */
.cc-feed.wp-block-rss{display:grid!important;grid-template-columns:repeat(3,1fr);gap:28px;padding:0;margin:0;list-style:none}
.cc-feed .wp-block-rss__item{width:auto!important;margin:0!important;padding:26px 26px 28px;border:1px solid var(--cc-line);border-top:4px solid var(--cc-gold);border-radius:10px;background:#fff;display:flex;flex-direction:column;gap:10px;transition:.15s}
.cc-feed .wp-block-rss__item:hover{box-shadow:0 14px 36px rgba(27,42,74,.12);transform:translateY(-2px)}
.cc-feed .wp-block-rss__item-publish-date{order:-1;font:700 13px var(--cc-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--cc-gold);display:block}
.cc-feed .wp-block-rss__item-title a{font:700 23px/1.25 var(--cc-serif);color:var(--cc-navy);text-decoration:none}
.cc-feed .wp-block-rss__item-title a:hover{color:var(--cc-goldd)}
.cc-feed .wp-block-rss__item-excerpt{color:var(--cc-mute);font-size:16.5px;margin:0}
.cc-posts-foot{margin-top:36px!important;gap:20px}
.cc-posts-foot>p{margin:0;font-size:16px}

/* spin vs reality */
.cc-svr{background:var(--cc-navy);color:#fff}
.cc-svr-cols{gap:72px!important;align-items:center!important}
.cc-svr h2{color:#fff;font-size:clamp(32px,3.6vw,44px);margin:14px 0 18px!important}
.cc-svr h2 em{font-style:normal;color:var(--cc-goldl)}
.cc-svr p{color:#d0d7e4;font-size:19px}
.cc-svr .cc-kicker{color:var(--cc-goldl)}
.cc-split{gap:0!important;border-radius:10px;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.3);margin:0}
.cc-split>.wp-block-column{padding:30px 28px}
.cc-spin{background:#2a3b60}
.cc-reality{background:#fff;color:var(--cc-ink)}
.cc-split h3{font-size:26px;margin:0 0 16px!important}
.cc-spin h3{color:#e8dcc0}
.cc-split ol{margin:0;padding-left:20px;font-size:16.5px}
.cc-split li{margin-bottom:10px}
.cc-spin li{color:#d5dbe7}

/* membership */
.cc-tiers{gap:28px!important;align-items:stretch!important}
.cc-tier{border:1px solid var(--cc-line);border-radius:12px;padding:34px 30px;display:flex;flex-direction:column;background:#fff;position:relative}
.cc-tier>*{margin:0!important}
.cc-tier h3{font-size:26px}
.cc-price{font:700 40px/1 var(--cc-serif);color:var(--cc-navy);margin:18px 0 4px!important}
.cc-price small{font:600 17px var(--cc-sans);color:var(--cc-mute)}
.cc-alt{color:var(--cc-mute);font-size:15.5px;min-height:24px}
.cc-ticks{list-style:none;padding:0!important;margin:22px 0 28px!important;font-size:16.5px}
.cc-ticks li{padding:7px 0 7px 28px;position:relative;border-top:1px solid var(--cc-line)}
.cc-ticks li:before{content:"";position:absolute;left:4px;top:15px;width:12px;height:7px;border-left:2.5px solid var(--cc-gold);border-bottom:2.5px solid var(--cc-gold);transform:rotate(-45deg)}
.cc-tier .wp-block-buttons{margin-top:auto!important}
.cc-tier .wp-block-button{width:100%}
.cc-tier .wp-block-button__link{width:100%;justify-content:center;text-align:center}
.cc-tier.is-featured{border:2px solid var(--cc-gold);box-shadow:0 18px 44px rgba(27,42,74,.12)}
.cc-badge{position:absolute;top:-14px;left:30px;background:var(--cc-gold);color:#fff;font:700 12px/1 var(--cc-sans);letter-spacing:.14em;text-transform:uppercase;padding:8px 12px;border-radius:20px}
.cc-tier.is-founding{background:var(--cc-cream);border-color:#e3d3ad}

/* books */
.cc-books{background:var(--cc-bg2);border-top:1px solid var(--cc-line);border-bottom:1px solid var(--cc-line)}
.cc-books-grid{gap:36px!important;margin-bottom:40px!important}
.cc-book>*{margin:0!important}
.cc-cover img{width:100%;max-width:180px;aspect-ratio:2/3;object-fit:cover;border-radius:3px;box-shadow:0 12px 26px rgba(27,42,74,.22);transition:.15s}
.cc-cover{margin-bottom:16px!important}
.cc-cover a:hover img{transform:translateY(-3px)}
.cc-books-grid.is-five .cc-cover img{object-fit:contain;background:transparent}
.cc-book-title{font-size:18px!important;line-height:1.3;margin-bottom:6px!important}
.cc-book-title a{color:var(--cc-navy);text-decoration:none}
.cc-book-sub{font-size:14.5px;color:var(--cc-mute);line-height:1.45}
.cc-book-buy{margin-top:6px!important;font-weight:700;font-size:14.5px}
.cc-book-buy a{color:var(--cc-goldd);text-decoration:none}
.cc-cover-lg img{max-width:340px;width:100%}
.cc-book-cols{gap:64px!important}
.cc-book-lead{font:italic 400 24px/1.35 var(--cc-serif);color:var(--cc-navy)}
.cc-author-box{border-left:3px solid var(--cc-gold);background:var(--cc-bg2);padding:24px 28px;border-radius:0 8px 8px 0;margin-block:0 64px!important}
.cc-author-box>*{margin:0 0 8px!important}

/* media */
.cc-media-cols{gap:72px!important}
.cc-media h2,.cc-media-cols h2{font-size:clamp(32px,3.4vw,42px);margin:14px 0 18px!important}
.cc-pills{list-style:none;padding:0!important;display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 30px!important}
.cc-pills li{background:#eef1f6;color:var(--cc-navy);font-weight:600;font-size:15px;padding:7px 14px;border-radius:20px;margin:0}
.cc-shows{list-style:none;padding:0!important;margin:0!important;font-size:16px}
.cc-shows li{padding:9px 0;border-top:1px solid var(--cc-line)}
.cc-contact{background:var(--cc-navy);color:#fff;border-radius:12px;padding:36px 34px;align-self:start}
.cc-contact>*{margin:0 0 12px!important}
.cc-contact h3{color:#fff;font-size:26px}
.cc-contact p{color:#c9d0de;font-size:16.5px}
.cc-mail a{font:600 21px var(--cc-serif);color:var(--cc-goldl);text-decoration:none;word-break:break-all}
.cc-contact .cc-mail{margin-bottom:24px!important}
.cc-mail-dark a{color:var(--cc-navy)}
.cc-card{border:1px solid var(--cc-line);border-radius:12px;padding:36px 34px;height:100%}
.cc-card>*{margin:0 0 12px!important}
.cc-card h3{font-size:26px}
.cc-two{gap:40px!important}
.cc-quote{font:italic 400 19px/1.55 var(--cc-serif);color:var(--cc-navy);border-left:3px solid var(--cc-gold);padding-left:20px}
.cc-appearances{list-style:none;padding:0!important;font-size:16.5px}
.cc-appearances li{padding:12px 0;border-top:1px solid var(--cc-line)}
.cc-date{display:block;font:700 12.5px var(--cc-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--cc-gold);margin-bottom:2px}

/* steps */
.cc-steps{gap:28px!important}
.cc-steps>.wp-block-column{border:1px solid var(--cc-line);border-radius:12px;padding:30px}
.cc-steps>.wp-block-column>*{margin:0 0 10px!important}
.cc-step{font:700 40px/1 var(--cc-serif);color:var(--cc-gold)}

/* subscribe cta */
.cc-cta{background:var(--cc-navy2);color:#fff;text-align:center;border-top:5px solid var(--cc-gold)}
.cc-cta h2{color:#fff;margin-block:14px!important}
.cc-cta .cc-kicker{color:var(--cc-goldl)}
.cc-cta .cc-lead{color:#c9d0de}
.cc-cta .wp-block-buttons{justify-content:center}

/* pages */
.cc-page-head{background:var(--cc-navy);color:#fff;padding-top:64px;padding-bottom:60px;border-bottom:5px solid var(--cc-gold)}
.cc-page-head h1,.cc-page-head .wp-block-post-title{color:#fff;margin-block:10px 0!important}
.cc-page-head .cc-kicker,.cc-page-head .wp-block-post-date{color:var(--cc-goldl);font:700 13px var(--cc-sans);letter-spacing:.16em;text-transform:uppercase}
.cc-intro{padding-top:48px;padding-bottom:48px}
.cc-intro+.cc-section{margin-top:0}
.cc-prose{padding-top:56px;padding-bottom:72px}
.cc-prose h2{font-size:clamp(28px,3vw,34px);margin-top:48px!important}
.cc-prose h3{margin-top:32px!important}
.cc-prose h2:first-child{margin-top:0!important}
.cc-about-top{padding-bottom:24px!important}
.cc-about-intro{gap:56px!important;align-items:center!important}
.cc-single{padding-top:48px;padding-bottom:72px}
.cc-post-card{border:1px solid var(--cc-line);border-radius:10px;padding:0 0 22px;overflow:hidden}
.cc-post-card>*:not(.wp-block-post-featured-image){padding:0 22px}
.cc-card-date{font:700 13px var(--cc-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--cc-gold)}

/* footer */
.cc-footer{background:var(--cc-navy2);color:#aab4c7;padding-top:64px;padding-bottom:36px;font-size:15.5px}
.cc-footer-top{gap:48px!important;padding-bottom:40px;border-bottom:1px solid #2c3b5c;margin-block:0!important}
.cc-footer .cc-brand-name a{color:#fff}
.cc-footer-about{margin:16px 0 0!important;max-width:360px}
.cc-footer-h{color:#fff;font:700 13px var(--cc-sans);letter-spacing:.16em;text-transform:uppercase;margin:4px 0 16px!important}
.cc-footer-links{list-style:none;padding:0!important;margin:0!important}
.cc-footer-links li{margin-bottom:10px}
.cc-footer a{color:#d5dbe7;text-decoration:none}
.cc-footer a:hover{color:var(--cc-goldl)}
.cc-social a{display:inline-flex;align-items:center;gap:10px}
.cc-ico{width:22px;height:22px;border-radius:4px}
.cc-footer-bot{padding-top:24px;gap:20px;font-size:14px;margin-block:0!important}
.cc-footer-bot p{margin:0}

/* responsive */
@media (max-width:1020px){
 .cc-hero-cols,.cc-svr-cols,.wp-block-columns.cc-media-cols{flex-wrap:wrap!important;gap:48px!important}
 .wp-block-columns.cc-hero-cols>.wp-block-column,.wp-block-columns.cc-svr-cols>.wp-block-column,.wp-block-columns.cc-media-cols>.wp-block-column{flex-basis:100%!important}
 .cc-hero-media{justify-content:flex-start}
 .cc-portrait{max-width:300px}
 .cc-feed.wp-block-rss{grid-template-columns:1fr 1fr}
 .wp-block-columns.cc-tiers{flex-wrap:wrap!important}.wp-block-columns.cc-tiers>.wp-block-column{flex-basis:calc(50% - 14px)!important}
 .wp-block-columns.cc-books-grid{flex-wrap:wrap!important}.wp-block-columns.cc-books-grid>.wp-block-column{flex-basis:calc(50% - 18px)!important;flex-grow:0!important}
 .cc-nav{gap:20px}
 .cc-header-right{gap:16px!important}
}
@media (max-width:860px){
 .cc-brand-sub{font-size:9.5px;letter-spacing:.06em;white-space:nowrap}
}
@media (max-width:781px){
 .wp-block-columns.cc-facts>.wp-block-column{flex-basis:100%!important}
 .cc-facts{gap:22px!important}
 .cc-fact{padding:2px 18px}
 .cc-seen{gap:14px!important}
 .wp-block-columns.cc-seen>.wp-block-column{flex-basis:100%!important}
 .wp-block-columns.cc-tiers>.wp-block-column{flex-basis:100%!important}
 .cc-footer-top{gap:32px!important}
}
@media (max-width:640px){
 body{font-size:17px}
 .cc-section{padding-top:64px;padding-bottom:64px}
 .cc-section.cc-tight{padding-top:44px;padding-bottom:44px}
 .cc-header{min-height:66px;gap:10px}
 .cc-header-right{gap:6px!important}
 .cc-brand{gap:10px!important}
 .cc-brand-mark img{width:38px;height:38px}
 .cc-brand-name{font-size:18px}
 .cc-brand-sub{font-size:9px}
 .cc-header-cta .wp-block-button__link{padding:9px 14px;font-size:14px}
 .cc-hero{padding-top:48px;padding-bottom:60px}
 .cc-hero-promise{font-size:18px}
 .cc-hero .wp-block-buttons,.cc-hero .wp-block-button{width:100%}
 .cc-hero .wp-block-button__link{width:100%;justify-content:center;text-align:center}
 .cc-portrait{max-width:220px}
 .cc-pubs{font-size:19px}
 .cc-feed.wp-block-rss{grid-template-columns:1fr}
 .wp-block-columns.cc-split>.wp-block-column{flex-basis:100%!important}
 .cc-books-grid{gap:26px!important}
 .wp-block-columns.cc-books-grid>.wp-block-column{flex-basis:calc(50% - 13px)!important}
 .cc-contact,.cc-card{padding:28px 24px}
 .cc-page-head{padding-top:44px;padding-bottom:40px}
 .cc-book-cols{gap:32px!important}
 .cc-cover-lg img{max-width:240px}
}

/* mobile overlay menu: left-aligned, navy text */
.cc-nav .is-menu-open .wp-block-navigation__responsive-container-content,
.cc-nav .is-menu-open .wp-block-navigation__container,
.cc-nav .is-menu-open .wp-block-navigation-item{align-items:flex-start!important;text-align:left!important}
.cc-nav .is-menu-open .wp-block-navigation-item__content{color:var(--cc-navy)!important}
