/*
Theme Name: Richelle Mayor
Theme URI: https://richellemayor.com
Author: Richelle Mayor
Author URI: https://richellemayor.com
Description: A premium, editorial personal-brand theme for Richelle Mayor — AI & digital marketing strategist. Purple-toned, minimalist, and built to last a decade. Faithfully implements the Richelle Mayor Brand Manual (Edition 01): Cormorant Garamond display, Instrument Sans body, a cream/plum/lilac palette, self-hosted fonts, dark mode, reading progress, custom post types, and custom blocks.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.2
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: richelle-mayor
Tags: personal-blog, portfolio, blog, editorial, custom-colors, custom-menu, custom-logo, featured-images, full-site-editing, block-styles, wide-blocks, accessibility-ready, translation-ready, sticky-post, threaded-comments, footer-widgets, dark-mode
*/

/* ==========================================================================
   0 · SELF-HOSTED FONTS  (Cormorant Garamond · Instrument Sans)
   ========================================================================== */
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/instrument-sans-latin-400-normal.woff2") format("woff2");}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/instrument-sans-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/instrument-sans-latin-600-normal.woff2") format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/cormorant-garamond-latin-400-normal.woff2") format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/cormorant-garamond-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/cormorant-garamond-latin-600-normal.woff2") format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:400;font-display:swap;src:url("assets/fonts/cormorant-garamond-latin-400-italic.woff2") format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url("assets/fonts/cormorant-garamond-latin-500-italic.woff2") format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:600;font-display:swap;src:url("assets/fonts/cormorant-garamond-latin-600-italic.woff2") format("woff2");}

/* ==========================================================================
   1 · DESIGN TOKENS
   ========================================================================== */
:root{
  /* Palette — from the Brand Manual color system */
  --rm-aubergine:#2B2135;   /* primary dark: text, dark surfaces */
  --rm-plum:#4B3A63;         /* primary brand */
  --rm-violet:#7A5EA6;       /* links, actions */
  --rm-lilac:#C9B8DF;        /* secondary, tints */
  --rm-mist:#F1ECF6;         /* card fills */
  --rm-cream:#FAF8F5;        /* default background */
  --rm-gold:#B49A6A;         /* accent, used sparingly (<=5%) */

  /* Semantic tokens (light is default) */
  --rm-bg:var(--rm-cream);
  --rm-surface:#ffffff;
  --rm-surface-alt:var(--rm-mist);
  --rm-text:var(--rm-aubergine);
  --rm-text-soft:#5c5566;
  --rm-text-muted:#847d90;
  --rm-heading:var(--rm-aubergine);
  --rm-brand:var(--rm-plum);
  --rm-link:var(--rm-violet);
  --rm-accent:var(--rm-gold);
  --rm-border:#e7e1ee;
  --rm-border-strong:var(--rm-lilac);
  --rm-selection-bg:var(--rm-lilac);
  --rm-selection-text:var(--rm-aubergine);
  --rm-shadow:0 2px 24px rgba(43,33,53,.06);
  --rm-shadow-lift:0 8px 30px rgba(75,58,99,.14);
  --rm-header-bg:rgba(250,248,245,.82);

  /* Typography */
  --rm-font-display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --rm-font-body:"Instrument Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --rm-fs-h1:clamp(2.75rem,1.6rem + 5.2vw,6rem);   /* 44 -> 96 */
  --rm-fs-h2:clamp(2rem,1.4rem + 2.6vw,3rem);       /* 32 -> 48 */
  --rm-fs-h3:clamp(1.5rem,1.2rem + 1.1vw,2rem);     /* 24 -> 32 */
  --rm-fs-h4:1.375rem;
  --rm-fs-body:clamp(1.0625rem,1rem + .25vw,1.25rem); /* 17 -> 20 */
  --rm-fs-small:.9375rem;
  --rm-fs-label:.8125rem;                            /* 13 */
  --rm-lh-body:1.6;
  --rm-lh-tight:1.12;
  --rm-measure:68ch;

  /* 8-point spacing scale */
  --rm-s1:8px; --rm-s2:16px; --rm-s3:24px; --rm-s4:32px;
  --rm-s5:48px; --rm-s6:64px; --rm-s7:96px; --rm-s8:128px;
  --rm-section-y:clamp(64px,6vw + 32px,128px);

  /* Structure */
  --rm-content-width:1200px;
  --rm-reading-width:760px;
  --rm-gutter:clamp(20px,5vw,32px);

  /* Radii — buttons 6, cards/images 8, pills 100 (tags only) */
  --rm-r-button:6px;
  --rm-r-card:8px;
  --rm-r-image:8px;
  --rm-r-pill:100px;

  /* Motion */
  --rm-ease:cubic-bezier(.22,.61,.36,1);
  --rm-dur:400ms;
  --rm-dur-fast:150ms;
}

[data-theme="dark"]{
  --rm-bg:var(--rm-aubergine);
  --rm-surface:#332942;
  --rm-surface-alt:#3b2f4d;
  --rm-text:#efe9f4;
  --rm-text-soft:#c8bfd4;
  --rm-text-muted:#9d93ac;
  --rm-heading:#f6f2fa;
  --rm-brand:var(--rm-lilac);
  --rm-link:var(--rm-lilac);
  --rm-accent:#c8ad78;
  --rm-border:#453a57;
  --rm-border-strong:#5b4d72;
  --rm-selection-bg:var(--rm-violet);
  --rm-selection-text:#ffffff;
  --rm-shadow:0 2px 24px rgba(0,0,0,.28);
  --rm-shadow-lift:0 10px 34px rgba(0,0,0,.42);
  --rm-header-bg:rgba(43,33,53,.82);
  color-scheme:dark;
}

/* ==========================================================================
   2 · RESET & BASE
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--rm-bg);
  color:var(--rm-text);
  font-family:var(--rm-font-body);
  font-size:var(--rm-fs-body);
  line-height:var(--rm-lh-body);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  transition:background-color var(--rm-dur) var(--rm-ease),color var(--rm-dur) var(--rm-ease);
}
img,picture,svg,video{max-width:100%;height:auto;display:block;}
figure{margin:0;}
h1,h2,h3,h4,h5,h6{
  font-family:var(--rm-font-display);
  color:var(--rm-heading);
  font-weight:500;
  line-height:var(--rm-lh-tight);
  letter-spacing:-.01em;
  margin:0 0 var(--rm-s3);
}
h1{font-size:var(--rm-fs-h1);font-weight:500;}
h2{font-size:var(--rm-fs-h2);}
h3{font-size:var(--rm-fs-h3);}
h4{font-size:var(--rm-fs-h4);}
p{margin:0 0 var(--rm-s3);}
a{color:var(--rm-link);text-decoration:none;transition:color var(--rm-dur-fast) var(--rm-ease);}
a:hover{color:var(--rm-brand);}
strong,b{font-weight:600;}
ul,ol{margin:0 0 var(--rm-s3);padding-left:1.35em;}
li{margin-bottom:.4em;}
blockquote{margin:var(--rm-s4) 0;padding:var(--rm-s1) 0 var(--rm-s1) var(--rm-s4);border-left:2px solid var(--rm-accent);
  font-family:var(--rm-font-display);font-size:1.5rem;font-style:italic;color:var(--rm-brand);line-height:1.4;}
blockquote p:last-child{margin-bottom:0;}
code,pre,kbd{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;}
pre{background:var(--rm-surface-alt);padding:var(--rm-s3);border-radius:var(--rm-r-card);overflow:auto;}
code{background:var(--rm-surface-alt);padding:.15em .4em;border-radius:4px;}
pre code{background:none;padding:0;}
hr{border:0;border-top:1px solid var(--rm-border);margin:var(--rm-s5) 0;}
hr.rm-hairline{border-top:1px solid var(--rm-accent);opacity:.65;}
table{width:100%;border-collapse:collapse;margin:0 0 var(--rm-s3);}
th,td{text-align:left;padding:var(--rm-s2);border-bottom:1px solid var(--rm-border);}
th{font-family:var(--rm-font-body);font-weight:600;font-size:var(--rm-fs-small);}
::selection{background:var(--rm-selection-bg);color:var(--rm-selection-text);}

/* ==========================================================================
   3 · ACCESSIBILITY
   ========================================================================== */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;
  margin:-1px;overflow:hidden;padding:0;position:absolute!important;word-wrap:normal!important;}
.screen-reader-text:focus{background:var(--rm-surface);clip:auto!important;clip-path:none;color:var(--rm-brand);
  display:block;font-size:1rem;font-weight:600;height:auto;left:8px;line-height:normal;padding:16px 24px;
  border-radius:var(--rm-r-button);text-decoration:none;top:8px;width:auto;z-index:100000;box-shadow:var(--rm-shadow-lift);}
.skip-link{position:absolute;left:-9999px;}
.skip-link:focus{left:8px;top:8px;z-index:100000;}
:focus-visible{outline:2px solid var(--rm-violet);outline-offset:3px;border-radius:2px;}
a:focus:not(:focus-visible){outline:none;}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;}
  .rm-reveal,.rm-rise{opacity:1!important;transform:none!important;transition-delay:0s!important;}
}

/* ==========================================================================
   4 · LAYOUT PRIMITIVES
   ========================================================================== */
.rm-container{width:100%;max-width:var(--rm-content-width);margin-inline:auto;padding-inline:var(--rm-gutter);}
.rm-container--reading{max-width:var(--rm-reading-width);}
.rm-section{padding-block:var(--rm-section-y);}
.rm-section--tight{padding-block:clamp(48px,4vw,80px);}
.rm-section--plum{background:var(--rm-plum);color:#f3eef8;}
.rm-section--plum h1,.rm-section--plum h2,.rm-section--plum h3{color:#fff;}
.rm-section--mist{background:var(--rm-surface-alt);}
.rm-eyebrow{font-family:var(--rm-font-body);font-size:var(--rm-fs-label);font-weight:600;
  text-transform:uppercase;letter-spacing:.22em;color:var(--rm-violet);margin:0 0 var(--rm-s2);display:block;}
.rm-section--plum .rm-eyebrow{color:var(--rm-lilac);}
.rm-lede{font-size:1.25rem;color:var(--rm-text-soft);max-width:60ch;}
.rm-grid{display:grid;gap:var(--rm-gutter);}
.rm-grid--2{grid-template-columns:repeat(2,1fr);}
.rm-grid--3{grid-template-columns:repeat(3,1fr);}
.rm-grid--4{grid-template-columns:repeat(4,1fr);}
.rm-center{text-align:center;}
.rm-measure{max-width:var(--rm-measure);}
.rm-flow > * + *{margin-top:var(--rm-s3);}

/* Scroll reveal (JS adds .is-visible; no-JS shows content) */
.rm-reveal{opacity:0;transform:translateY(16px);transition:opacity var(--rm-dur) var(--rm-ease),transform var(--rm-dur) var(--rm-ease);}
.rm-reveal.is-visible{opacity:1;transform:none;}
.no-js .rm-reveal{opacity:1;transform:none;}

/* ==========================================================================
   5 · BUTTONS & CTAs  (Brand Manual CTA system)
   ========================================================================== */
.rm-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--rm-font-body);font-size:1rem;font-weight:600;line-height:1;letter-spacing:.01em;
  padding:16px 28px;border-radius:var(--rm-r-button);border:1.5px solid transparent;cursor:pointer;
  transition:background-color var(--rm-dur-fast) var(--rm-ease),color var(--rm-dur-fast) var(--rm-ease),
    border-color var(--rm-dur-fast) var(--rm-ease),transform var(--rm-dur-fast) var(--rm-ease);
  text-align:center;}
.rm-btn--primary{background:var(--rm-plum);color:#fff;}
.rm-btn--primary:hover{background:var(--rm-aubergine);color:#fff;transform:translateY(-1px);}
.rm-btn--secondary{background:transparent;color:var(--rm-brand);border-color:var(--rm-plum);}
.rm-btn--secondary:hover{background:var(--rm-plum);color:#fff;}
[data-theme="dark"] .rm-btn--secondary{color:var(--rm-lilac);border-color:var(--rm-lilac);}
[data-theme="dark"] .rm-btn--secondary:hover{background:var(--rm-lilac);color:var(--rm-aubergine);}
.rm-section--plum .rm-btn--primary{background:#fff;color:var(--rm-plum);}
.rm-section--plum .rm-btn--primary:hover{background:var(--rm-lilac);color:var(--rm-aubergine);}
.rm-link-arrow{font-weight:600;color:var(--rm-violet);display:inline-flex;align-items:center;gap:.4em;
  border-bottom:1px solid var(--rm-lilac);padding-bottom:2px;}
.rm-link-arrow .rm-arrow{transition:transform var(--rm-dur-fast) var(--rm-ease);}
.rm-link-arrow:hover .rm-arrow{transform:translateX(4px);}

/* ==========================================================================
   6 · TAGS / PILLS  (pill radius reserved for tags only)
   ========================================================================== */
.rm-tag{display:inline-block;font-family:var(--rm-font-body);font-size:var(--rm-fs-label);font-weight:500;
  letter-spacing:.02em;padding:6px 16px;border-radius:var(--rm-r-pill);border:1px solid var(--rm-border-strong);
  color:var(--rm-text-soft);background:transparent;transition:all var(--rm-dur-fast) var(--rm-ease);}
a.rm-tag:hover{border-color:var(--rm-violet);color:var(--rm-brand);background:var(--rm-surface-alt);}
.rm-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0;}
.rm-tags li{margin:0;}

/* ==========================================================================
   7 · CARDS
   ========================================================================== */
.rm-card{background:var(--rm-surface);border:1px solid var(--rm-border);border-radius:var(--rm-r-card);
  padding:var(--rm-s5);transition:transform var(--rm-dur-fast) var(--rm-ease),box-shadow var(--rm-dur-fast) var(--rm-ease);
  display:flex;flex-direction:column;height:100%;}
.rm-card--link:hover{transform:translateY(-2px);box-shadow:var(--rm-shadow-lift);}
.rm-card--mist{background:var(--rm-surface-alt);border-color:transparent;}
.rm-card__eyebrow{font-family:var(--rm-font-body);font-size:var(--rm-fs-label);font-weight:600;
  text-transform:uppercase;letter-spacing:.18em;color:var(--rm-violet);margin-bottom:var(--rm-s2);}
.rm-card__title{font-size:var(--rm-fs-h4);margin-bottom:var(--rm-s2);}
.rm-card__title a{color:inherit;}
.rm-card__title a:hover{color:var(--rm-brand);}
.rm-card__text{color:var(--rm-text-soft);margin-bottom:var(--rm-s3);}
.rm-card__meta{margin-top:auto;font-size:var(--rm-fs-small);color:var(--rm-text-muted);
  font-family:var(--rm-font-body);letter-spacing:.02em;}
.rm-card__media{margin:calc(-1 * var(--rm-s5)) calc(-1 * var(--rm-s5)) var(--rm-s4);border-radius:var(--rm-r-card) var(--rm-r-card) 0 0;overflow:hidden;aspect-ratio:16/10;}
.rm-card__media img{width:100%;height:100%;object-fit:cover;}

/* ==========================================================================
   8 · SITE HEADER  (sticky, translucent)
   ========================================================================== */
.rm-header{position:sticky;top:0;z-index:900;background:var(--rm-header-bg);
  backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid transparent;transition:border-color var(--rm-dur) var(--rm-ease),background-color var(--rm-dur) var(--rm-ease);}
.rm-header.is-scrolled{border-bottom-color:var(--rm-border);}
.rm-header__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--rm-s4);
  min-height:76px;}
.rm-brand-mark{display:inline-flex;align-items:center;gap:12px;font-family:var(--rm-font-display);
  font-size:1.4rem;font-weight:500;letter-spacing:.06em;color:var(--rm-heading);text-transform:uppercase;}
.rm-brand-mark:hover{color:var(--rm-brand);}
.rm-brand-mark img{max-height:40px;width:auto;}
.rm-brand-mark .rm-sigil{flex:0 0 auto;}
.rm-nav{display:flex;align-items:center;gap:var(--rm-s4);}
.rm-menu{display:flex;align-items:center;gap:var(--rm-s4);list-style:none;margin:0;padding:0;
  font-family:var(--rm-font-body);font-size:1rem;font-weight:500;}
.rm-menu li{margin:0;position:relative;}
.rm-menu a{color:var(--rm-text);padding:8px 2px;display:inline-block;position:relative;}
.rm-menu a::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1.5px;
  background:var(--rm-violet);transition:right var(--rm-dur-fast) var(--rm-ease);}
.rm-menu a:hover,.rm-menu .current-menu-item > a{color:var(--rm-brand);}
.rm-menu a:hover::after,.rm-menu .current-menu-item > a::after{right:0;}
.rm-menu .sub-menu{position:absolute;top:100%;left:0;min-width:200px;background:var(--rm-surface);
  border:1px solid var(--rm-border);border-radius:var(--rm-r-card);box-shadow:var(--rm-shadow-lift);
  padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:all var(--rm-dur-fast) var(--rm-ease);z-index:10;}
.rm-menu li:hover > .sub-menu,.rm-menu li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:translateY(0);}
.rm-menu .sub-menu a{display:block;padding:8px 12px;border-radius:6px;}
.rm-menu .sub-menu a::after{display:none;}
.rm-menu .sub-menu a:hover{background:var(--rm-surface-alt);}
.rm-header__actions{display:flex;align-items:center;gap:var(--rm-s2);}

/* Theme (dark mode) toggle */
.rm-theme-toggle{width:40px;height:40px;border-radius:var(--rm-r-button);border:1px solid var(--rm-border);
  background:transparent;color:var(--rm-text);display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all var(--rm-dur-fast) var(--rm-ease);}
.rm-theme-toggle:hover{border-color:var(--rm-violet);color:var(--rm-brand);}
.rm-theme-toggle .rm-icon-moon{display:none;}
.rm-theme-toggle .rm-icon-sun{display:block;}
[data-theme="dark"] .rm-theme-toggle .rm-icon-moon{display:block;}
[data-theme="dark"] .rm-theme-toggle .rm-icon-sun{display:none;}

/* Mobile nav toggle */
.rm-nav-toggle{display:none;width:44px;height:44px;border:1px solid var(--rm-border);border-radius:var(--rm-r-button);
  background:transparent;cursor:pointer;padding:0;align-items:center;justify-content:center;color:var(--rm-text);}
.rm-nav-toggle:hover{border-color:var(--rm-violet);}
.rm-nav-toggle span{display:block;width:20px;height:1.5px;background:currentColor;position:relative;transition:all var(--rm-dur-fast) var(--rm-ease);}
.rm-nav-toggle span::before,.rm-nav-toggle span::after{content:"";position:absolute;left:0;width:20px;height:1.5px;background:currentColor;transition:all var(--rm-dur-fast) var(--rm-ease);}
.rm-nav-toggle span::before{top:-6px;}
.rm-nav-toggle span::after{top:6px;}
.rm-nav-toggle[aria-expanded="true"] span{background:transparent;}
.rm-nav-toggle[aria-expanded="true"] span::before{top:0;transform:rotate(45deg);}
.rm-nav-toggle[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg);}

/* Reading progress bar */
.rm-progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:1000;background:transparent;pointer-events:none;}
.rm-progress__fill{height:100%;width:0;background:linear-gradient(90deg,var(--rm-violet),var(--rm-gold));
  transition:width 80ms linear;}

/* ==========================================================================
   9 · SIGIL  (interlocking-circle signature — violet + gold)
   ========================================================================== */
.rm-sigil{display:inline-block;line-height:0;}
.rm-sigil circle{fill:none;stroke-width:1.5;}
.rm-sigil .rm-sigil-a{stroke:var(--rm-violet);}
.rm-sigil .rm-sigil-b{stroke:var(--rm-gold);}
[data-theme="dark"] .rm-sigil .rm-sigil-a{stroke:var(--rm-lilac);}

/* ==========================================================================
   10 · HOMEPAGE — HERO
   ========================================================================== */
.rm-hero{position:relative;padding-block:clamp(56px,6vw,112px) var(--rm-section-y);overflow:hidden;}
/* ambient wash: one soft lilac glow behind the visual, one whisper behind the headline */
.rm-hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(42% 55% at 78% 42%,color-mix(in srgb,var(--rm-lilac) 34%,transparent),transparent 70%),
    radial-gradient(30% 40% at 12% 18%,color-mix(in srgb,var(--rm-mist) 60%,transparent),transparent 70%);}
[data-theme="dark"] .rm-hero::before{
  background:
    radial-gradient(42% 55% at 78% 42%,color-mix(in srgb,var(--rm-violet) 22%,transparent),transparent 70%),
    radial-gradient(30% 40% at 12% 18%,color-mix(in srgb,var(--rm-plum) 30%,transparent),transparent 70%);}
.rm-hero__grid{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(32px,5vw,72px);align-items:center;}
.rm-hero__title{font-size:var(--rm-fs-h1);margin-bottom:var(--rm-s3);}
.rm-hero__title span{display:block;}
.rm-hero__title em{font-style:italic;color:var(--rm-plum);display:block;}
[data-theme="dark"] .rm-hero__title em{color:var(--rm-lilac);}
.rm-hero__lede{font-size:1.375rem;color:var(--rm-text-soft);max-width:44ch;margin-bottom:var(--rm-s5);line-height:1.5;}
.rm-hero__actions{display:flex;flex-wrap:wrap;gap:var(--rm-s2);align-items:center;}
.rm-hero__media{position:relative;}

/* Portrait badge — a personal photo slot overlapping the concept graphic */
.rm-hero__portrait{position:absolute;left:-4%;bottom:2%;width:30%;aspect-ratio:1;border-radius:50%;
  overflow:hidden;box-shadow:var(--rm-shadow-lift);background:var(--rm-surface);
  border:3px solid var(--rm-bg);}
.rm-hero__portrait-img{width:100%;height:100%;object-fit:cover;display:block;}
.rm-hero__media--duotone .rm-hero__portrait-img{filter:grayscale(1);}
.rm-hero__media--duotone .rm-hero__portrait::after{content:"";position:absolute;inset:0;
  background:var(--rm-plum);mix-blend-mode:color;opacity:.32;pointer-events:none;}
.rm-hero__portrait:has(.rm-hero__portrait-placeholder){
  border:1.5px dashed var(--rm-border-strong);background:var(--rm-surface-alt);}
.rm-hero__portrait-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  color:var(--rm-text-muted);}
@media (max-width:560px){.rm-hero__portrait{width:26%;}}

.rm-hero__media img{border-radius:var(--rm-r-image);width:100%;aspect-ratio:4/5;object-fit:cover;box-shadow:var(--rm-shadow);}
.rm-hero__media--duotone img{filter:grayscale(1);}
.rm-hero__media--duotone::after{content:"";position:absolute;inset:0;border-radius:var(--rm-r-image);
  background:var(--rm-plum);mix-blend-mode:color;opacity:.32;pointer-events:none;}

.rm-hero__placeholder{border-radius:var(--rm-r-image);aspect-ratio:4/5;width:100%;
  background:linear-gradient(160deg,var(--rm-lilac),var(--rm-mist));display:flex;align-items:center;justify-content:center;}

/* Staggered rise: children fade up one after another once the intro is revealed */
.rm-rise{opacity:0;transform:translateY(18px);
  transition:opacity .6s var(--rm-ease),transform .6s var(--rm-ease);
  transition-delay:calc(var(--rise,1) * 110ms);}
.rm-reveal.is-visible .rm-rise,.no-js .rm-rise{opacity:1;transform:none;}

/* Hero visual — the intersection composition (AI ∩ Marketing ∩ Purpose = clarity) */
.rm-hero__visual{aspect-ratio:1;width:100%;max-width:520px;margin-inline:auto;}
.rm-hero__venn{width:100%;height:100%;display:block;}
.rm-venn__set{transform-origin:240px 240px;animation:rm-breathe 9s var(--rm-ease) infinite alternate;}
.rm-venn__set--b{animation-delay:-3s;}
.rm-venn__set--c{animation-delay:-6s;}
.rm-venn__lens{animation:rm-lens-pulse 9s ease-in-out infinite alternate;}
.rm-venn__field{transform-origin:240px 240px;animation:rm-drift 90s linear infinite;}
.rm-venn__orbit{transform-origin:240px 240px;animation:rm-drift 36s linear infinite;}
.rm-venn__label{font-family:var(--rm-font-body);font-size:11px;font-weight:600;
  letter-spacing:.22em;fill:var(--rm-text-muted);}
.rm-venn__clarity{font-family:var(--rm-font-display);font-style:italic;font-size:30px;
  fill:var(--rm-heading);animation:rm-clarity-in 1.4s var(--rm-ease) .9s both;}
@keyframes rm-breathe{from{transform:scale(1);}to{transform:scale(1.025);}}
@keyframes rm-lens-pulse{from{opacity:.55;}to{opacity:1;}}
@keyframes rm-drift{to{transform:rotate(360deg);}}
@keyframes rm-clarity-in{from{opacity:0;}to{opacity:1;}}

/* PROOF BAR */
.rm-proof{border-top:1px solid var(--rm-border);border-bottom:1px solid var(--rm-border);}
.rm-proof__row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--rm-s4);padding-block:var(--rm-s4);}
.rm-proof__item{display:flex;flex-direction:column;gap:2px;}
.rm-proof__num{font-family:var(--rm-font-display);font-size:2rem;font-weight:500;color:var(--rm-brand);line-height:1;}
.rm-proof__label{font-size:var(--rm-fs-small);color:var(--rm-text-muted);letter-spacing:.02em;}

/* MISSION STATEMENT */
.rm-mission{text-align:center;}
.rm-mission__text{font-family:var(--rm-font-display);font-size:clamp(1.75rem,1.2rem + 2.4vw,2.75rem);
  line-height:1.3;color:var(--rm-heading);max-width:20ch;margin-inline:auto;font-weight:500;}
.rm-mission__text em{font-style:italic;color:var(--rm-plum);}

/* LOGO STRIP */
.rm-logos__label{text-align:center;margin-bottom:var(--rm-s4);}
.rm-logos__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(24px,5vw,64px);}
.rm-logos__row li{margin:0;list-style:none;font-family:var(--rm-font-display);font-size:1.375rem;
  color:var(--rm-text-muted);letter-spacing:.02em;opacity:.85;}
.rm-logos__row img{max-height:34px;width:auto;opacity:.6;filter:grayscale(1);transition:opacity var(--rm-dur-fast) var(--rm-ease);}
.rm-logos__row img:hover{opacity:1;}

/* SECTION HEADS */
.rm-sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--rm-s3);margin-bottom:var(--rm-s5);}
.rm-sec-head__title{margin:0;}
.rm-sec-head p{margin:8px 0 0;color:var(--rm-text-soft);}

/* FEATURED ARTICLES (editorial list) */
.rm-articles{list-style:none;margin:0;padding:0;}
.rm-articles__item{padding-block:var(--rm-s4);border-top:1px solid var(--rm-border);}
.rm-articles__item:last-child{border-bottom:1px solid var(--rm-border);}
.rm-articles__link{display:grid;grid-template-columns:auto 1fr auto;gap:var(--rm-s4);align-items:baseline;color:inherit;}
.rm-articles__index{font-family:var(--rm-font-display);font-size:1.25rem;color:var(--rm-accent);}
.rm-articles__title{font-family:var(--rm-font-display);font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem);
  color:var(--rm-heading);font-weight:500;margin:0;transition:color var(--rm-dur-fast) var(--rm-ease);}
.rm-articles__meta{font-size:var(--rm-fs-small);color:var(--rm-text-muted);white-space:nowrap;}
.rm-articles__link:hover .rm-articles__title{color:var(--rm-brand);}

/* SERVICES / SPEAKING GRID reuse .rm-card */
.rm-service__price{font-family:var(--rm-font-display);color:var(--rm-brand);font-size:1.25rem;margin-bottom:var(--rm-s2);}

/* TESTIMONIALS */
.rm-quote{background:var(--rm-surface);border:1px solid var(--rm-border);border-radius:var(--rm-r-card);padding:var(--rm-s5);height:100%;display:flex;flex-direction:column;}
.rm-quote__mark{font-family:var(--rm-font-display);font-size:3rem;line-height:.6;color:var(--rm-lilac);margin-bottom:var(--rm-s2);}
.rm-quote__text{font-family:var(--rm-font-display);font-size:1.375rem;font-style:italic;line-height:1.45;color:var(--rm-heading);margin-bottom:var(--rm-s4);}
.rm-quote__who{margin-top:auto;display:flex;align-items:center;gap:12px;}
.rm-quote__avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;background:var(--rm-mist);}
.rm-quote__name{font-weight:600;font-size:var(--rm-fs-small);}
.rm-quote__role{font-size:var(--rm-fs-small);color:var(--rm-text-muted);}

/* NEWSLETTER BAND */
.rm-newsletter{text-align:center;}
.rm-newsletter__title{color:#fff;margin-bottom:var(--rm-s2);}
.rm-newsletter__text{color:var(--rm-lilac);max-width:46ch;margin-inline:auto;margin-bottom:var(--rm-s4);}
.rm-form{display:flex;gap:12px;max-width:480px;margin-inline:auto;flex-wrap:wrap;}
.rm-form input[type=email],.rm-form input[type=text]{flex:1;min-width:200px;padding:16px 20px;border-radius:var(--rm-r-button);
  border:1.5px solid transparent;background:rgba(255,255,255,.94);font-family:var(--rm-font-body);font-size:1rem;color:var(--rm-aubergine);}
.rm-form input:focus{outline:2px solid var(--rm-lilac);outline-offset:2px;}
.rm-form__note{font-size:var(--rm-fs-small);color:var(--rm-lilac);margin-top:var(--rm-s2);opacity:.85;}

/* RESOURCE LIBRARY reuse cards; CTA closing band */
.rm-cta-band{text-align:center;}
.rm-cta-band__title{margin-bottom:var(--rm-s3);}

/* ==========================================================================
   11 · POST / PAGE CONTENT  (editorial reading experience)
   ========================================================================== */
.rm-article__header{text-align:center;margin-bottom:var(--rm-s6);}
.rm-article__eyebrow{margin-bottom:var(--rm-s2);}
.rm-article__title{font-size:var(--rm-fs-h1);margin-bottom:var(--rm-s3);}
.rm-article__meta{font-family:var(--rm-font-body);font-size:var(--rm-fs-small);color:var(--rm-text-muted);
  display:flex;flex-wrap:wrap;gap:var(--rm-s2);justify-content:center;align-items:center;letter-spacing:.02em;}
.rm-article__meta span{display:inline-flex;align-items:center;gap:var(--rm-s2);}
.rm-article__hero{margin:var(--rm-s6) 0;border-radius:var(--rm-r-image);overflow:hidden;}
.rm-content{max-width:var(--rm-reading-width);margin-inline:auto;}
.rm-content > *{max-width:100%;}
.rm-content p{margin-bottom:var(--rm-s4);}
.rm-content h2{margin-top:var(--rm-s6);}
.rm-content h3{margin-top:var(--rm-s5);}
.rm-content img{border-radius:var(--rm-r-image);}
.rm-content figcaption{font-size:var(--rm-fs-small);color:var(--rm-text-muted);text-align:center;margin-top:var(--rm-s2);}
.rm-content > p:first-of-type::first-letter{font-family:var(--rm-font-display);font-size:3.6em;line-height:.82;
  float:left;font-weight:500;color:var(--rm-plum);margin:.05em .12em 0 0;}
.rm-content a{border-bottom:1px solid var(--rm-lilac);}
.rm-content a:hover{border-bottom-color:var(--rm-violet);}

/* wide / full alignments */
.alignwide{width:min(100% + 12vw,1080px);margin-inline:auto;max-width:1080px;}
.alignfull{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);}
.alignleft{float:left;margin:.4em var(--rm-s4) var(--rm-s2) 0;}
.alignright{float:right;margin:.4em 0 var(--rm-s2) var(--rm-s4);}
.aligncenter{margin-inline:auto;display:block;}
.wp-caption{max-width:100%;}
.wp-caption-text{font-size:var(--rm-fs-small);color:var(--rm-text-muted);text-align:center;margin-top:8px;}
.sticky .rm-card,.rm-card.is-sticky{border-color:var(--rm-lilac);}

/* Post footer: tags, share, author, nav */
.rm-post-footer{max-width:var(--rm-reading-width);margin:var(--rm-s6) auto 0;padding-top:var(--rm-s5);border-top:1px solid var(--rm-accent);}
.rm-share{display:flex;align-items:center;gap:var(--rm-s2);flex-wrap:wrap;margin-bottom:var(--rm-s5);}
.rm-share__label{font-size:var(--rm-fs-label);text-transform:uppercase;letter-spacing:.18em;color:var(--rm-text-muted);font-weight:600;}
.rm-share a{width:40px;height:40px;border-radius:var(--rm-r-button);border:1px solid var(--rm-border);
  display:inline-flex;align-items:center;justify-content:center;color:var(--rm-text);transition:all var(--rm-dur-fast) var(--rm-ease);}
.rm-share a:hover{border-color:var(--rm-violet);color:var(--rm-brand);transform:translateY(-1px);}
.rm-author{display:flex;gap:var(--rm-s3);align-items:flex-start;background:var(--rm-surface-alt);padding:var(--rm-s4);border-radius:var(--rm-r-card);margin-bottom:var(--rm-s5);}
.rm-author img{width:64px;height:64px;border-radius:50%;object-fit:cover;}
.rm-author__name{font-family:var(--rm-font-display);font-size:1.375rem;margin-bottom:4px;}
.rm-postnav{display:grid;grid-template-columns:1fr 1fr;gap:var(--rm-s3);}
.rm-postnav a{display:block;padding:var(--rm-s3);border:1px solid var(--rm-border);border-radius:var(--rm-r-card);color:inherit;transition:all var(--rm-dur-fast) var(--rm-ease);}
.rm-postnav a:hover{border-color:var(--rm-violet);transform:translateY(-2px);}
.rm-postnav__dir{font-size:var(--rm-fs-label);text-transform:uppercase;letter-spacing:.16em;color:var(--rm-text-muted);}
.rm-postnav__t{font-family:var(--rm-font-display);font-size:1.125rem;color:var(--rm-heading);}
.rm-postnav .next{text-align:right;}

/* Inline subscribe (blog posts) */
.rm-inline-sub{max-width:var(--rm-reading-width);margin:var(--rm-s6) auto;background:var(--rm-surface-alt);
  border-radius:var(--rm-r-card);padding:var(--rm-s5);text-align:center;}
.rm-inline-sub h3{margin-bottom:var(--rm-s2);}
.rm-inline-sub p{color:var(--rm-text-soft);margin-bottom:var(--rm-s3);}
.rm-inline-sub .rm-form input{background:var(--rm-surface);border-color:var(--rm-border);color:var(--rm-text);}

/* ==========================================================================
   12 · ARCHIVE / BLOG
   ========================================================================== */
.rm-page-head{text-align:center;padding-block:clamp(48px,5vw,88px) var(--rm-s5);}
.rm-page-head__title{font-size:var(--rm-fs-h1);margin-bottom:var(--rm-s2);}
.rm-page-head__desc{color:var(--rm-text-soft);max-width:56ch;margin-inline:auto;}
.rm-filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:var(--rm-s4);}
.rm-post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--rm-gutter);}
.rm-pagination{display:flex;justify-content:center;gap:8px;margin-top:var(--rm-s6);flex-wrap:wrap;}
.rm-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;
  padding:0 12px;border-radius:var(--rm-r-button);border:1px solid var(--rm-border);color:var(--rm-text);font-weight:500;
  transition:all var(--rm-dur-fast) var(--rm-ease);}
.rm-pagination .page-numbers:hover,.rm-pagination .current{background:var(--rm-plum);color:#fff;border-color:var(--rm-plum);}

/* ==========================================================================
   13 · COMMENTS
   ========================================================================== */
.rm-comments{max-width:var(--rm-reading-width);margin:var(--rm-s6) auto 0;padding-top:var(--rm-s5);border-top:1px solid var(--rm-border);}
.rm-comments__title{margin-bottom:var(--rm-s4);}
.comment-list{list-style:none;margin:0;padding:0;}
.comment-list ol{list-style:none;}
.comment-body{padding:var(--rm-s3) 0;border-bottom:1px solid var(--rm-border);}
.comment-author{display:flex;align-items:center;gap:12px;margin-bottom:8px;}
.comment-author .avatar{border-radius:50%;}
.comment-author .fn{font-weight:600;font-style:normal;}
.comment-metadata{font-size:var(--rm-fs-small);color:var(--rm-text-muted);}
.comment-respond{margin-top:var(--rm-s5);}
.comment-form{display:grid;gap:var(--rm-s3);}
.comment-form p{margin:0;}
.comment-form label{display:block;font-size:var(--rm-fs-small);font-weight:600;margin-bottom:6px;}
.comment-form input,.comment-form textarea{width:100%;padding:14px 16px;border:1px solid var(--rm-border);
  border-radius:var(--rm-r-button);background:var(--rm-surface);color:var(--rm-text);font-family:var(--rm-font-body);font-size:1rem;}
.comment-form input:focus,.comment-form textarea:focus{outline:2px solid var(--rm-violet);outline-offset:1px;border-color:var(--rm-violet);}
.comment-reply-link,.comment-edit-link{font-size:var(--rm-fs-small);font-weight:600;}

/* ==========================================================================
   14 · SEARCH & 404
   ========================================================================== */
.rm-searchform{display:flex;gap:8px;max-width:520px;margin-inline:auto;}
.rm-searchform input[type=search]{flex:1;padding:14px 18px;border:1px solid var(--rm-border);border-radius:var(--rm-r-button);
  background:var(--rm-surface);color:var(--rm-text);font-size:1rem;font-family:var(--rm-font-body);}
.rm-searchform input[type=search]:focus{outline:2px solid var(--rm-violet);outline-offset:1px;border-color:var(--rm-violet);}
.rm-404{text-align:center;padding-block:clamp(64px,8vw,140px);}
.rm-404__code{font-family:var(--rm-font-display);font-size:clamp(5rem,10vw,9rem);color:var(--rm-lilac);line-height:1;margin-bottom:var(--rm-s3);}
.rm-404__links{display:flex;gap:var(--rm-s2);justify-content:center;flex-wrap:wrap;margin-top:var(--rm-s4);}

/* ==========================================================================
   15 · SITE FOOTER
   ========================================================================== */
.rm-footer{background:var(--rm-aubergine);color:#d9d1e4;padding-block:var(--rm-s7) var(--rm-s5);}
.rm-footer a{color:#d9d1e4;}
.rm-footer a:hover{color:#fff;}
.rm-footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--rm-s5);margin-bottom:var(--rm-s6);}
.rm-footer__brand .rm-brand-mark{color:#fff;}
.rm-footer__tag{font-family:var(--rm-font-display);font-size:1.375rem;font-style:italic;color:var(--rm-lilac);max-width:26ch;margin-top:var(--rm-s3);}
.rm-footer__col h4{font-family:var(--rm-font-body);font-size:var(--rm-fs-label);text-transform:uppercase;letter-spacing:.18em;color:#a99cbb;margin-bottom:var(--rm-s3);}
.rm-footer__col ul{list-style:none;margin:0;padding:0;}
.rm-footer__col li{margin-bottom:12px;}
.rm-footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--rm-s3);align-items:center;
  padding-top:var(--rm-s4);border-top:1px solid rgba(255,255,255,.1);font-size:var(--rm-fs-small);color:#a99cbb;}
.rm-social{display:flex;gap:12px;list-style:none;margin:0;padding:0;}
.rm-social a{width:40px;height:40px;border-radius:var(--rm-r-button);border:1px solid rgba(255,255,255,.15);
  display:inline-flex;align-items:center;justify-content:center;transition:all var(--rm-dur-fast) var(--rm-ease);}
.rm-social a:hover{border-color:var(--rm-lilac);transform:translateY(-1px);}

/* Widgets */
.rm-widget{margin-bottom:var(--rm-s5);}
.rm-widget .widget-title{font-family:var(--rm-font-body);font-size:var(--rm-fs-label);text-transform:uppercase;letter-spacing:.18em;color:var(--rm-text-muted);margin-bottom:var(--rm-s3);}
.rm-sidebar ul{list-style:none;padding:0;}
.rm-sidebar li{margin-bottom:10px;}

/* ==========================================================================
   16 · CUSTOM BLOCKS (front-end)
   ========================================================================== */
.wp-block-richelle-mayor-callout{background:var(--rm-surface-alt);border-left:2px solid var(--rm-gold);
  border-radius:var(--rm-r-card);padding:var(--rm-s4) var(--rm-s5);margin:var(--rm-s5) 0;}
.wp-block-richelle-mayor-callout .rm-callout__label{font-size:var(--rm-fs-label);text-transform:uppercase;
  letter-spacing:.18em;color:var(--rm-violet);font-weight:600;margin-bottom:8px;display:block;}
.wp-block-richelle-mayor-pull-quote{text-align:center;max-width:640px;margin:var(--rm-s6) auto;}
.wp-block-richelle-mayor-pull-quote .rm-pq__text{font-family:var(--rm-font-display);font-size:clamp(1.5rem,1.2rem+1.4vw,2.25rem);
  font-style:italic;color:var(--rm-plum);line-height:1.35;}
.wp-block-richelle-mayor-pull-quote .rm-pq__cite{display:block;margin-top:var(--rm-s3);font-family:var(--rm-font-body);
  font-size:var(--rm-fs-small);text-transform:uppercase;letter-spacing:.16em;color:var(--rm-text-muted);font-style:normal;}
.wp-block-richelle-mayor-cta{background:var(--rm-plum);color:#f3eef8;border-radius:var(--rm-r-card);
  padding:var(--rm-s6) var(--rm-s5);text-align:center;margin:var(--rm-s6) 0;}
.wp-block-richelle-mayor-cta h3{color:#fff;margin-bottom:var(--rm-s2);}
.wp-block-richelle-mayor-cta p{color:var(--rm-lilac);margin-bottom:var(--rm-s4);}
.wp-block-richelle-mayor-feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--rm-gutter);margin:var(--rm-s5) 0;}

/* ==========================================================================
   17 · UTILITIES
   ========================================================================== */
.rm-mt-0{margin-top:0;}.rm-mb-0{margin-bottom:0;}
.rm-hidden{display:none!important;}
.rm-gold-rule{width:64px;height:1px;background:var(--rm-accent);border:0;margin:var(--rm-s3) 0;}
.rm-visually-quiet{color:var(--rm-text-muted);}

/* ==========================================================================
   18 · RESPONSIVE
   ========================================================================== */
@media (max-width:1024px){
  .rm-hero__grid{grid-template-columns:1fr;}
  .rm-hero__media{max-width:440px;order:-1;}
  .rm-footer__top{grid-template-columns:1fr 1fr;}
}
@media (max-width:860px){
  .rm-nav-toggle{display:inline-flex;}
  .rm-nav{position:fixed;inset:76px 0 auto 0;background:var(--rm-bg);border-bottom:1px solid var(--rm-border);
    flex-direction:column;align-items:stretch;gap:0;padding:var(--rm-s3) var(--rm-gutter) var(--rm-s5);
    transform:translateY(-8px);opacity:0;visibility:hidden;transition:all var(--rm-dur) var(--rm-ease);max-height:calc(100vh - 76px);overflow:auto;}
  .rm-nav.is-open{transform:translateY(0);opacity:1;visibility:visible;}
  .rm-menu{flex-direction:column;align-items:stretch;gap:0;width:100%;}
  .rm-menu li{border-bottom:1px solid var(--rm-border);}
  .rm-menu a{padding:16px 0;font-size:1.125rem;}
  .rm-menu a::after{display:none;}
  .rm-menu .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;background:transparent;padding:0 0 8px 16px;}
  .rm-grid--3,.rm-grid--4,.rm-post-grid{grid-template-columns:repeat(2,1fr);}
  .rm-articles__link{grid-template-columns:1fr;gap:6px;}
  .rm-articles__meta{white-space:normal;}
  .rm-postnav{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .rm-grid--2,.rm-grid--3,.rm-grid--4,.rm-post-grid{grid-template-columns:1fr;}
  .rm-footer__top{grid-template-columns:1fr;}
  .rm-content > p:first-of-type::first-letter{font-size:3em;}
  .rm-form{flex-direction:column;}
  .rm-form input[type=email]{min-width:0;}
  blockquote{font-size:1.25rem;}
}

/* ==========================================================================
   19 · PRINT
   ========================================================================== */
@media print{
  .rm-header,.rm-footer,.rm-progress,.rm-share,.rm-newsletter,.rm-inline-sub,.rm-nav-toggle,.rm-theme-toggle{display:none!important;}
  body{background:#fff;color:#000;}
  .rm-content{max-width:100%;}
  a{color:#000;border:0;}
}
