/*
Theme Name:   Relationup Child
Theme URI:    https://www.relationup.com/
Description:  Child theme for GeneratePress. Holds the Relationup design system:
              brand tokens, homepage sections, article typography, header, footer
              and navigation styling. Fonts are enqueued from functions.php.
Author:       Relationup
Author URI:   https://www.relationup.com/
Template:     generatepress
Version:      1.0.0
Text Domain:  relationup-child
*/

/* ============================================================
   HOW THIS FILE IS ORGANISED

   1. Site-owner CSS that predates the redesign (top bar, quiz
      banner, misc). Left exactly as it was.
   2. The Relationup design system, in labelled sections.

   Brand tokens live in :root inside section 2 — change a colour
   or font there and it propagates everywhere.

   NOTE: rules scoped to .ru-layout target the homepage. If the
   homepage is ever recreated it gets a new ID and those rules
   must be updated (29 occurrences).
   ============================================================ */

/* RelationUp Top Announcement Bar */
.relationup-topbar {
    width: 100%;
    background: #F8E8EC;
    color: #5C3B48;
    text-align: center;
    font-size: 15px;
    font-weight: 500;
    line-height: 1;
    padding: 7px 15px;
    letter-spacing: 0.2px;
    box-sizing: border-box;
}
.inside-header .site-logo {
	  margin-left: auto;
    margin-right: 40px;
}
.relationship-quiz-banner {
    background: #f8dfe7;
    min-height: 110px;
    padding: 18px 28px;
    border-radius: 6px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
}

/* Heart column */
.relationship-quiz-banner > .wp-block-column:first-child {
    flex: 0 0 18%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Heart image */
.relationship-quiz-banner > .wp-block-column:first-child img {
    width: 90px;
    height: auto;
    display: block;
}

/* Text column */
.relationship-quiz-banner > .wp-block-column:nth-child(2) {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Heading */
.relationship-quiz-banner h2 {
    margin: 0 0 6px;
    font-size: 28px;
    line-height: 1.2;
    color: #5b174f;
}

/* Description */
.relationship-quiz-banner p {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
}

/* Button column */
.relationship-quiz-banner > .wp-block-column:nth-child(3) {
    flex: 0 0 22%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Button */
.relationship-quiz-banner .wp-block-button__link {
    background: #b52f70;
    color: #fff;
    padding: 11px 24px;
    border-radius: 5px;
    font-size: 14px;
    text-decoration: none;
    white-space: nowrap;
}

/* Button hover */
.relationship-quiz-banner .wp-block-button__link:hover {
    background: #92245b;
}


/* ============================================================
   WHY px AND NOT rem
   Sites commonly set html{font-size:62.5%} (=10px) so that 1rem
   equals 10px. relationup.com does exactly that. Every rem here
   would then render at 62.5% of its intended size — a hero
   heading dropping from 57px to 35px.

   These values are px so the design renders identically no
   matter what root size the host site uses. em is still used
   for button padding, where scaling with the element is wanted.
   ============================================================ */
/* ===== Relationup design system (added by Claude) ===== */
:root{
--ru-plum:#5C1A3D; --ru-plum-deep:#45102C; --ru-pink:#BE2A6E; --ru-pink-hover:#9E1D5A;
--ru-pink-soft:#F7DCE6; --ru-pink-pale:#FCEFF3; --ru-pink-band:#F6D6E2; --ru-cream:#FFF9F6;
--ru-sage:#CCDACF; --ru-sage-btn:#6E8A76; --ru-sage-btn-hv:#587059;
--ru-ink:#4B3A43; --ru-muted:#7A6570; --ru-line:#EFDDE4;
--ru-font-head:'Playfair Display',Georgia,serif; --ru-font-body:'Poppins',-apple-system,'Segoe UI',sans-serif;
--ru-wrap:1200px; --ru-radius:10px; --ru-shadow:0 2px 14px rgba(92,26,61,.07);
}
.ru-layout .entry-content{font-family:var(--ru-font-body);color:var(--ru-ink);}
.ru-layout .entry-content h1,.ru-layout .entry-content h2,.ru-layout .entry-content h3,.ru-layout .entry-content h4{font-family:var(--ru-font-head);color:var(--ru-plum);font-weight:600;line-height:1.15;letter-spacing:-.01em;margin:0;}
.ru-layout .entry-content p{margin:0;line-height:1.65;}
.ru-layout .entry-content a{text-decoration:none;}
.ru-layout .entry-content img{display:block;}
.ru-layout .entry-content .wp-block-button__link{font-family:var(--ru-font-body);font-size:15.04px;font-weight:600;padding:.85em 1.6em;border-radius:6px;background:var(--ru-pink);color:#fff;display:inline-flex;align-items:center;gap:.6em;transition:background .2s ease,transform .2s ease;}
.ru-layout .entry-content .wp-block-button__link:hover{background:var(--ru-pink-hover);transform:translateY(-1px);color:#fff;}
.ru-btn-sage .wp-block-button__link{background:var(--ru-sage-btn);}
.ru-btn-sage .wp-block-button__link:hover{background:var(--ru-sage-btn-hv);}
.ru-arrow .wp-block-button__link::after{content:"→";font-size:1.05em;line-height:1;}
.ru-hero{background:var(--ru-pink-soft);overflow:hidden;}
.ru-hero .wp-block-columns{max-width:none;margin:0;gap:0;align-items:stretch;}
.ru-hero .ru-hero-copy{padding:80px 48px 80px max(24px,calc((100vw - var(--ru-wrap)) / 2));display:flex;flex-direction:column;justify-content:center;}
.ru-eyebrow{font-size:11.84px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ru-pink);margin-bottom:17.6px !important;}
.ru-hero h1{font-size:clamp(38.4px,4.4vw,56.8px);line-height:1.08;margin-bottom:21.6px !important;}
.ru-hero h1 em{font-style:italic;display:block;font-weight:500;}
.ru-hero-lede{font-size:16.32px;color:var(--ru-muted);max-width:544px;margin-bottom:32px !important;}
.ru-hero .ru-hero-media{padding:0 !important;}
.ru-hero .ru-hero-media figure,.ru-hero .ru-hero-media img{height:100%;margin:0;}
.ru-hero .ru-hero-media img{width:100%;object-fit:cover;min-height:420px;}
.ru-section{padding:72px 24px;}
.ru-section--cream{background:var(--ru-cream);}
.ru-section-head{text-align:center;margin-bottom:44px;}
.ru-section-head h2{font-size:clamp(28.8px,3vw,36.8px);margin-bottom:9.6px;}
.ru-section-head p{color:var(--ru-muted);font-size:15.36px;}
.ru-head-row{max-width:var(--ru-wrap);margin:0 auto 32px;display:flex;align-items:baseline;justify-content:space-between;gap:16px;}
.ru-head-row h2{font-size:clamp(27.2px,2.8vw,34.4px);}
.ru-viewall{font-size:14.4px;font-weight:500;color:var(--ru-plum);display:inline-flex;gap:6.4px;align-items:center;white-space:nowrap;}
.ru-viewall:hover{color:var(--ru-pink);}
.ru-cats{max-width:var(--ru-wrap);margin-inline:auto;display:grid;grid-template-columns:repeat(6,1fr);gap:18.4px;}
.ru-cat{background:var(--ru-pink-pale);border-radius:var(--ru-radius);padding:30.4px 16px;text-align:center;transition:transform .22s ease,box-shadow .22s ease;}
.ru-cat:hover{transform:translateY(-4px);box-shadow:var(--ru-shadow);}
.ru-cat svg{width:36px;height:36px;margin:0 auto 14.4px;stroke:var(--ru-plum);fill:none;stroke-width:1.5;}
.ru-cat h3{font-size:16.96px;margin-bottom:5.6px;}
.ru-cat p{font-size:13.28px;color:var(--ru-muted);}
.ru-cards{max-width:var(--ru-wrap);margin-inline:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:25.6px;}
.ru-card{background:#fff;border-radius:var(--ru-radius);overflow:hidden;box-shadow:var(--ru-shadow);display:flex;flex-direction:column;transition:transform .22s ease,box-shadow .22s ease;}
.ru-card:hover{transform:translateY(-4px);box-shadow:0 10px 26px rgba(92,26,61,.13);}
.ru-card figure{margin:0;}
.ru-card img{width:100%;aspect-ratio:16/10;object-fit:cover;}
.ru-card-body{padding:20px 21.6px 25.6px;}
.ru-tag{display:inline-block;background:var(--ru-pink-pale);color:var(--ru-pink);font-size:10.56px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;padding:.4em .85em;border-radius:3px;margin-bottom:14.4px;}
.ru-card h3{font-size:19.84px;line-height:1.3;margin-bottom:9.6px;}
.ru-card p{font-size:14.08px;color:var(--ru-muted);}
.ru-promos{max-width:var(--ru-wrap);margin-inline:auto;display:grid;grid-template-columns:1fr 1fr;gap:25.6px;}
.ru-promo{border-radius:var(--ru-radius);overflow:hidden;position:relative;min-height:250px;display:flex;align-items:center;}
.ru-promo--pink{background:var(--ru-pink-soft);}
.ru-promo--sage{background:var(--ru-sage);}
.ru-promo .ru-promo-copy{padding:38.4px;max-width:56%;position:relative;z-index:2;}
.ru-promo .ru-eyebrow{color:var(--ru-plum);opacity:.7;}
.ru-promo--sage .ru-eyebrow{color:#3E5544;}
.ru-promo h2{font-size:31.2px;margin-bottom:11.2px;}
.ru-promo--sage h2{color:#2F4436;}
.ru-promo p{font-size:14.4px;color:var(--ru-muted);margin-bottom:24px !important;}
.ru-promo .ru-promo-img{position:absolute;inset:0 0 0 auto;width:50%;z-index:1;}
.ru-promo .ru-promo-img img{width:100%;height:100%;object-fit:cover;-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 38%);mask-image:linear-gradient(to right,transparent 0%,#000 38%);}
.ru-quiz{max-width:var(--ru-wrap);margin-inline:auto;background:var(--ru-pink-band);border-radius:var(--ru-radius);padding:33.6px 38.4px;display:flex;align-items:center;gap:28.8px;}
.ru-quiz svg{width:60px;height:60px;flex:none;stroke:var(--ru-pink);fill:none;stroke-width:1.5;}
.ru-quiz .ru-quiz-copy{flex:1;}
.ru-quiz h2{font-size:27.2px;margin-bottom:5.6px;}
.ru-quiz p{font-size:14.72px;color:var(--ru-muted);}
.ru-posts .wp-block-post-template{display:grid !important;grid-template-columns:repeat(4,1fr);gap:22.4px;max-width:var(--ru-wrap);margin-inline:auto;list-style:none;padding:0;}
.ru-posts .wp-block-post{background:#fff;border-radius:var(--ru-radius);overflow:hidden;box-shadow:var(--ru-shadow);transition:transform .22s ease,box-shadow .22s ease;}
.ru-posts .wp-block-post:hover{transform:translateY(-4px);box-shadow:0 10px 26px rgba(92,26,61,.13);}
.ru-posts .wp-block-post-featured-image{margin:0;}
.ru-posts .wp-block-post-featured-image img{width:100%;aspect-ratio:16/10;object-fit:cover;}
.ru-posts .ru-post-body{padding:16px 17.6px 21.6px;}
.ru-posts .wp-block-post-terms{display:inline-block;background:var(--ru-pink-pale);color:var(--ru-pink);font-size:10.08px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;padding:.38em .8em;border-radius:3px;margin-bottom:11.2px;}
.ru-posts .wp-block-post-terms a{color:inherit;}
.ru-posts .wp-block-post-title{font-family:var(--ru-font-head);font-size:16.32px;line-height:1.32;color:var(--ru-plum);margin:0;}
.ru-posts .wp-block-post-title a{color:inherit;}
.ru-posts .wp-block-post-title a:hover{color:var(--ru-pink);}
.ru-cats > *,.ru-cards > *,.ru-promos > *,.ru-quiz > *{margin-block:0 !important;}
.ru-cat h3 a,.ru-card h3 a{color:inherit;}
.ru-cat h3 a:hover,.ru-card h3 a:hover{color:var(--ru-pink);}
.ru-layout .entry-content .wp-block-buttons{margin:0;}
@media (max-width:1100px){.ru-cats{grid-template-columns:repeat(3,1fr);}.ru-posts .wp-block-post-template{grid-template-columns:repeat(2,1fr);}}
@media (max-width:900px){.ru-hero .wp-block-columns{flex-direction:column-reverse;}.ru-hero .wp-block-column{flex-basis:100% !important;}.ru-hero .ru-hero-copy{padding:48px 24px;}.ru-hero .ru-hero-media img{min-height:300px;}.ru-cards{grid-template-columns:1fr;}.ru-promos{grid-template-columns:1fr;}.ru-promo .ru-promo-copy{max-width:64%;}.ru-quiz{flex-direction:column;text-align:center;}}
@media (max-width:640px){.ru-section{padding:48px 20px;}.ru-cats{grid-template-columns:repeat(2,1fr);gap:13.6px;}.ru-posts .wp-block-post-template{grid-template-columns:1fr;}.ru-promo{min-height:auto;}.ru-promo .ru-promo-copy{max-width:100%;padding:28.8px;}.ru-promo .ru-promo-img{display:none;}.ru-head-row{flex-direction:column;align-items:flex-start;gap:8px;}}
/* ===== GeneratePress header / footer ===== */
.top-bar{background:var(--ru-pink-pale) !important;color:var(--ru-plum);font-family:var(--ru-font-body);font-size:13.12px;padding:8.8px 0;}
.top-bar .inside-top-bar{max-width:var(--ru-wrap);margin-inline:auto;display:flex;align-items:center;justify-content:center;position:relative;padding-inline:24px;}
.top-bar .widget{margin:0;padding:0;}
.top-bar p{margin:0;}
.top-bar a{color:var(--ru-plum);}
.top-bar .ru-social{position:absolute;right:24px;top:50%;transform:translateY(-50%);display:flex;gap:13.6px;}
.top-bar .ru-social a{color:var(--ru-plum);opacity:.75;line-height:0;}
.top-bar .ru-social a:hover{opacity:1;}
.top-bar .ru-social svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;}
.site-header{background:#fff !important;border-bottom:1px solid var(--ru-line);padding:14.4px 0;}
.site-header .inside-header{max-width:var(--ru-wrap);margin-inline:auto;display:flex;align-items:center;gap:40px;padding-inline:24px;}
.site-header .site-logo{margin:0;flex:none;}
/* HEADER LOGO SIZE — change this one number */
.site-header .site-logo img{width:var(--ru-logo-width,210px);height:auto;display:block;}
.main-navigation{background:transparent !important;flex:1;}
.main-navigation .inside-navigation{padding:0;max-width:none;justify-content:flex-end;}
.main-navigation .main-nav > ul{display:flex;align-items:center;gap:24px;}


.main-navigation .dropdown-menu-toggle{padding-left:4.8px;}
.main-navigation .gp-icon svg{width:.62em;height:.62em;}
.main-navigation ul ul{background:#fff;border:1px solid var(--ru-line);border-radius:8px;box-shadow:0 8px 24px rgba(92,26,61,.12);padding:6.4px 0;min-width:230px;}
.main-navigation ul ul li a{padding:8.8px 17.6px !important;border-bottom:none !important;font-size:13.76px;}

.main-navigation .menu-toggle{color:var(--ru-plum);font-family:var(--ru-font-body);font-weight:500;}
.site-footer{background:var(--ru-plum-deep);}
.site-footer #footer-widgets{background:var(--ru-plum-deep) !important;padding:54.4px 0 35.2px;}
.site-footer .footer-widgets-container,.site-footer .inside-footer-widgets{max-width:var(--ru-wrap);margin-inline:auto;padding-inline:24px;display:flex;flex-wrap:wrap;gap:40px;}
.site-footer .inside-footer-widgets > div{flex:1 1 200px;}
.site-footer .widget{background:transparent;padding:0;margin:0;border:none;}
.site-footer .widget-title{color:#fff !important;font-family:var(--ru-font-body) !important;font-size:13.92px !important;font-weight:600;letter-spacing:.02em;text-transform:none;margin-bottom:16px;}
.site-footer p,.site-footer .textwidget{color:#DDBFCE;font-size:13.92px;line-height:1.65;}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8.8px;}
.site-footer ul li{margin:0;border:none;}
.site-footer ul li a{color:#DDBFCE !important;font-size:13.76px;text-decoration:none;}
.site-footer ul li a:hover{color:#fff !important;}
.site-info{background:var(--ru-plum-deep);color:#C7A3B6;font-size:12.8px;text-align:center;padding:19.2px 24px 32px;border-top:1px solid rgba(255,255,255,.08);}
.site-info a{color:#DDBFCE;}
.site-footer .ru-subscribe{display:flex;gap:8.8px;margin-top:17.6px;}
.site-footer .ru-subscribe input[type=email]{flex:1;min-width:0;padding:.72em .95em;border:none;border-radius:5px;font-family:var(--ru-font-body);font-size:13.6px;}
.site-footer .ru-subscribe button{border:none;border-radius:5px;padding:.72em 1.3em;cursor:pointer;background:var(--ru-pink);color:#fff;font-family:var(--ru-font-body);font-size:13.6px;font-weight:600;}
.site-footer .ru-subscribe button:hover{background:var(--ru-pink-hover);}
@media (max-width:1024px){.site-header .inside-header{gap:19.2px;}.main-navigation .main-nav > ul{gap:16px;}.main-navigation .main-nav ul li a{font-size:13.44px;}}
@media (max-width:768px){.site-header .inside-header{flex-wrap:wrap;}.site-footer .inside-footer-widgets{flex-direction:column;gap:32px;}.top-bar .ru-social{display:none;}}
/* front page: hide the page title, let sections run full width */
.ru-layout .entry-header,.ru-layout .entry-title{display:none;}
.ru-layout .site-content .content-area,.ru-layout .site-main,.ru-layout .entry-content{max-width:none;padding:0;margin:0;}
.ru-layout .separate-containers .inside-article{padding:0;}
.ru-layout .site-content{padding:0;}

/* ============================================================
   PORTABILITY NOTE
   These homepage rules used to be scoped to .page-id-396, which
   broke the moment the page was recreated on another site with a
   different ID. They now key off .ru-layout — the wrapper
   class in the homepage block markup itself. Paste that markup
   into any site running this theme and the layout follows.
   ============================================================ */
/* ===== Front page: full-bleed, no sidebar ===== */
.ru-layout .widget-area.is-right-sidebar,
.ru-layout .widget-area.is-left-sidebar{display:none !important;}
.ru-layout .site-content{display:block !important;max-width:none !important;padding:0 !important;margin:0 !important;}
.ru-layout .content-area{width:100% !important;max-width:none !important;padding:0 !important;margin:0 !important;float:none !important;}
.ru-layout .site-main{margin:0 !important;padding:0 !important;}
.ru-layout .inside-article{padding:0 !important;}
.ru-layout .entry-content{max-width:none !important;margin:0 !important;padding:0 !important;}
.ru-layout .entry-header,.ru-layout .entry-title,.ru-layout .entry-meta{display:none !important;}
.ru-layout article,.ru-layout .post{margin:0 !important;padding:0 !important;border:none !important;box-shadow:none !important;}

/* front page: release the constrained-layout + grid containers */
.ru-layout #page,
.ru-layout .site-content,
.ru-layout .content-area,
.ru-layout .grid-container{max-width:none !important;width:100% !important;padding-left:0 !important;padding-right:0 !important;}
.ru-layout .entry-content > .wp-block-group__inner-container{max-width:none !important;padding-left:0 !important;padding-right:0 !important;}
.ru-layout .entry-content .wp-block-group__inner-container{max-width:none;}
.ru-layout .ru-hero{max-width:none !important;}
/* keep the header/footer rails at 1200 */
.site-header .inside-header,.top-bar .inside-top-bar,
.site-footer .footer-widgets-container{max-width:var(--ru-wrap) !important;}

/* WP wraps group children in .wp-block-group__inner-container — let the
   grid/flex layouts reach the real children */
.ru-layout .entry-content .wp-block-group__inner-container{display:contents;}
/* alignfull inside our page shouldn't pull negative margins */
.ru-layout .entry-content .alignfull{margin-left:0 !important;margin-right:0 !important;width:100% !important;max-width:none !important;}


/* GeneratePress button colours override ours — reassert brand pink */
.ru-layout .entry-content .wp-block-button__link{background-color:var(--ru-pink) !important;background-image:none !important;color:#fff !important;border:none !important;}
.ru-layout .entry-content .wp-block-button__link:hover,.ru-layout .entry-content .wp-block-button__link:focus{background-color:var(--ru-pink-hover) !important;color:#fff !important;}
.ru-layout .entry-content .ru-btn-sage .wp-block-button__link{background-color:var(--ru-sage-btn) !important;}
.ru-layout .entry-content .ru-btn-sage .wp-block-button__link:hover{background-color:var(--ru-sage-btn-hv) !important;}
/* FORCE NARCISSISM BUTTON COLOR */
body .ru-layout .entry-content .wp-block-buttons .wp-block-button a.wp-block-button__link[href*="narcissism"] {
    background: #FFF9F6 !important;
    background-color: #FFF9F6 !important;
    color: #5C1A3D !important;
    border-color: #FFF9F6 !important;
}

/* HOVER */
body .ru-layout .entry-content .wp-block-buttons .wp-block-button a.wp-block-button__link[href*="narcissism"]:hover {
    background: #5C1A3D !important;
    background-color: #5C1A3D !important;
    color: #FFF9F6 !important;
    border-color: #5C1A3D !important;
}
body .ru-layout .entry-content .wp-block-buttons .wp-block-button a.wp-block-button__link[href*="narcissism"] {
    background-color: #FFF9F6 !important;
    color: #5C1A3D !important;
    border: none !important;
}

body .ru-layout .entry-content .wp-block-buttons .wp-block-button a.wp-block-button__link[href*="narcissism"]:hover {
    background-color: #F3E6E1 !important;
    color: #5C1A3D !important;
}
/* CATEGORY CARDS */
.ru-cat {
    min-height: 200px !important;
    padding: 19.2px 16px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

/* ICON */
.ru-cat img {
    width: 100px !important;
    height: 100px !important;
    object-fit: contain !important;
    margin: 0 auto 20px !important;
}

/* TITLE */
.ru-cat h2,
.ru-cat h3,
.ru-cat h4 {
    margin: 0 !important;
    line-height: 1.2 !important;
}

/* DESCRIPTION */
.ru-cat p {
    margin: 4px 0 0 !important;
    line-height: 1.35 !important;
}
/* ===== Single post ===== */
:root{--ru-read:720px;--ru-font-read:'Lora',Georgia,serif;}
.single-post .site-content{display:block;}
.single-post .content-area{width:100% !important;max-width:none !important;float:none;}
.single-post .widget-area.is-right-sidebar{display:none !important;}
.single-post .inside-article{padding:0;}
.single-post .entry-content,.single-post .entry-header,.single-post .ru-post-furniture{max-width:var(--ru-read);margin-inline:auto;padding-inline:24px;}
.single-post .site-main{padding:40px 0 64px;}
.single-post .ru-crumbs{max-width:var(--ru-read);margin:0 auto 35.2px;padding-inline:24px;font-family:var(--ru-font-body);font-size:12.48px;color:var(--ru-muted);}
.single-post .ru-crumbs a{color:var(--ru-muted);}
.single-post .ru-crumbs a:hover{color:var(--ru-pink);}
.single-post .ru-crumbs span{margin:0 7.2px;opacity:.5;}
.single-post .entry-header{margin-bottom:32px;}
.single-post .ru-kicker{display:inline-block;font-family:var(--ru-font-body);font-size:10.88px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ru-pink);background:var(--ru-pink-pale);padding:.4em .8em;border-radius:3px;margin-bottom:17.6px;}
.single-post .entry-title{font-family:var(--ru-font-head);color:var(--ru-plum);font-size:clamp(33.6px,4vw,48px);line-height:1.12;letter-spacing:-.015em;font-weight:600;margin:0 0 16px;}
.single-post .ru-standfirst{font-family:var(--ru-font-read);font-size:18.56px;line-height:1.65;color:var(--ru-muted);margin:0 0 28.8px;}
.single-post .ru-byline{display:flex;align-items:center;gap:13.6px;flex-wrap:wrap;padding-bottom:25.6px;border-bottom:1px solid var(--ru-line);font-family:var(--ru-font-body);}
.single-post .ru-byline img{width:42px;height:42px;border-radius:50%;object-fit:cover;}
.single-post .ru-by-name{font-size:14.4px;font-weight:600;color:var(--ru-ink);}
.single-post .ru-by-meta{font-size:12.8px;color:var(--ru-muted);}
.single-post .ru-share{margin-left:auto;display:flex;align-items:center;gap:8.8px;}
.single-post .ru-share span{font-size:12.48px;color:var(--ru-muted);margin-right:3.2px;}
.single-post .ru-share a{width:34px;height:34px;border-radius:50%;border:1px solid var(--ru-line);display:grid;place-items:center;color:var(--ru-plum);transition:.18s ease;}
.single-post .ru-share a:hover{background:var(--ru-pink);border-color:var(--ru-pink);color:#fff;}
.single-post .ru-share svg{width:15px;height:15px;}
.single-post .post-image,.single-post .featured-image{max-width:var(--ru-read);margin:32px auto 38.4px;padding-inline:24px;}
.single-post .post-image img,.single-post .featured-image img{width:100%;border-radius:10px;display:block;}
.single-post .ru-toc{background:var(--ru-cream);border:1px solid var(--ru-line);border-radius:10px;padding:24px 27.2px;margin:0 0 41.6px;font-family:var(--ru-font-body);}
.single-post .ru-toc h2{font-family:var(--ru-font-head);font-size:17.28px;color:var(--ru-plum);margin:0 0 14.4px;font-weight:600;}
.single-post .ru-toc ol{columns:2;column-gap:32px;margin:0;padding:0;list-style:none;counter-reset:toc;}
.single-post .ru-toc li{counter-increment:toc;margin:0 0 8px;break-inside:avoid;}
.single-post .ru-toc a{font-size:13.76px;color:var(--ru-ink);line-height:1.4;}
.single-post .ru-toc a::before{content:counter(toc) ". ";color:var(--ru-pink);font-weight:600;}
.single-post .ru-toc a:hover{color:var(--ru-pink);}
.single-post .entry-content{font-family:var(--ru-font-read);font-size:var(--ru-body-size,19.04px);line-height:var(--ru-body-leading,1.78);color:var(--ru-ink);}
.single-post .entry-content > * + *{margin-top:24px;}
.single-post .entry-content h2,.single-post .entry-content h3{font-family:var(--ru-font-head);color:var(--ru-plum);letter-spacing:-.01em;font-weight:600;line-height:1.25;}
.single-post .entry-content h2{font-size:29.6px;margin-top:48px !important;margin-bottom:14.4px;}
.single-post .entry-content h3{font-size:21.6px;margin-top:38.4px !important;margin-bottom:11.2px;}
.single-post .entry-content a{color:var(--ru-pink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;}
.single-post .entry-content a:hover{color:var(--ru-pink-hover);}
.single-post .entry-content strong{color:var(--ru-plum);font-weight:600;}
.single-post .entry-content ul,.single-post .entry-content ol{padding-left:20.8px;}
.single-post .entry-content li{margin-bottom:9.6px;}
.single-post .entry-content li::marker{color:var(--ru-pink);}
.single-post .entry-content img{border-radius:10px;}
.single-post .entry-content figcaption{font-family:var(--ru-font-body);font-size:12.8px;color:var(--ru-muted);text-align:center;margin-top:11.2px;}
.single-post .entry-content blockquote{border:none;border-left:3px solid var(--ru-pink);background:none;margin:41.6px 0;padding:3.2px 0 3.2px 25.6px;font-family:var(--ru-font-head);font-style:italic;font-size:22.4px;line-height:1.5;color:var(--ru-plum);}
.single-post .entry-content blockquote p{margin:0;}
.single-post .entry-content blockquote cite{display:block;margin-top:12.8px;font-family:var(--ru-font-body);font-style:normal;font-size:13.6px;color:var(--ru-muted);}
.single-post .ru-topics{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:48px 0 0;padding-top:28.8px;border-top:1px solid var(--ru-line);font-family:var(--ru-font-body);}
.single-post .ru-topics-label{font-size:12.8px;color:var(--ru-muted);margin-right:4.8px;}
.single-post .ru-topics a{font-size:12.48px;color:var(--ru-plum);background:var(--ru-pink-pale);padding:.4em .85em;border-radius:100px;}
.single-post .ru-topics a:hover{background:var(--ru-pink);color:#fff;}
.single-post .ru-author{display:flex;gap:20.8px;align-items:flex-start;margin:40px 0 0;padding:28.8px;background:var(--ru-cream);border:1px solid var(--ru-line);border-radius:10px;font-family:var(--ru-font-body);}
.single-post .ru-author img{width:74px;height:74px;border-radius:50%;object-fit:cover;flex:none;}
.single-post .ru-author h3{font-family:var(--ru-font-head);font-size:17.92px;color:var(--ru-plum);margin:0 0 6.4px;}
.single-post .ru-author p{font-size:14.08px;line-height:1.6;color:var(--ru-muted);margin:0 0 9.6px;}
.single-post .ru-author a{font-size:13.6px;color:var(--ru-pink);font-weight:500;}
.single-post .ru-adjacent{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:40px 0 0;padding-top:28.8px;border-top:1px solid var(--ru-line);font-family:var(--ru-font-body);}
.single-post .ru-adj-label{font-size:12px;color:var(--ru-muted);margin-bottom:5.6px;display:block;}
.single-post .ru-adjacent a{font-family:var(--ru-font-head);font-size:16px;line-height:1.35;color:var(--ru-plum);}
.single-post .ru-adjacent a:hover{color:var(--ru-pink);}
.single-post .ru-adjacent > div:last-child{text-align:right;}
.single-post .inside-article,.single-post article.post{background:none;box-shadow:none;border:none;}
.single-post .entry-meta{display:none;}
@media (max-width:640px){
.single-post .ru-toc ol{columns:1;}
.single-post .entry-content{font-size:17.28px;line-height:1.72;}
.single-post .entry-content h2{font-size:24px;margin-top:38.4px !important;}
.single-post .ru-share{margin-left:0;width:100%;margin-top:12.8px;}
.single-post .ru-author{flex-direction:column;gap:16px;}
.single-post .ru-adjacent{grid-template-columns:1fr;gap:19.2px;}
.single-post .ru-adjacent > div:last-child{text-align:left;}
}

/* ===== Single post: sidebar layout ===== */
.single-post .site-content{display:flex;gap:56px;max-width:1200px;margin-inline:auto;padding:0 24px;align-items:flex-start;}
.single-post .content-area{flex:1 1 auto;min-width:0;max-width:760px;width:auto !important;}
.single-post .widget-area.is-right-sidebar{display:block !important;flex:0 0 320px;width:320px;position:sticky;top:32px;}
.single-post .entry-content,.single-post .entry-header,.single-post .ru-crumbs,
.single-post .post-image,.single-post .featured-image{max-width:700px;margin-inline:0;padding-inline:0;}
.single-post .site-main{padding:32px 0 64px;}
/* sidebar modules — light, no heavy cards */
.single-post .widget-area .widget{
  background:#fff;border:1px solid var(--ru-line);border-radius:10px;
  padding:22.4px 24px;margin-bottom:22.4px;font-family:var(--ru-font-body);
}
.single-post .widget-area .widget-title{
  font-family:var(--ru-font-head);font-size:16.8px;color:var(--ru-plum);
  font-weight:600;margin:0 0 16px;
}
.single-post .widget-area p{font-size:13.76px;line-height:1.6;color:var(--ru-muted);}
.single-post .widget-area ul{list-style:none;margin:0;padding:0;}
.single-post .widget-area ul li{margin:0 0 11.2px;font-size:14.08px;}
.single-post .widget-area ul li a{color:var(--ru-ink);}
.single-post .widget-area ul li a:hover{color:var(--ru-pink);}
.ru-side-author{text-align:left;}
.ru-side-author img{width:76px;height:76px;border-radius:50%;object-fit:cover;margin-bottom:12.8px;}
.ru-side-author .ru-side-name{font-family:var(--ru-font-head);font-size:16.8px;color:var(--ru-plum);}
.ru-side-author .ru-side-role{font-size:12.48px;color:var(--ru-pink);margin-bottom:9.6px;}
.ru-side-link{display:inline-block;margin-top:8px;font-size:13.44px;color:var(--ru-pink);font-weight:500;}
.ru-side-post{display:flex;gap:12.8px;margin-bottom:16px;}
.ru-side-post img{width:62px;height:62px;border-radius:8px;object-fit:cover;flex:none;}
.ru-side-post a{font-family:var(--ru-font-head);font-size:14.4px;line-height:1.3;color:var(--ru-plum);}
.ru-side-post a:hover{color:var(--ru-pink);}
.ru-side-post .ru-side-date{display:block;font-size:11.84px;color:var(--ru-muted);margin-top:4px;}
.ru-side-cta{background:var(--ru-pink-pale) !important;border-color:transparent !important;}
.ru-side-cta input[type=email]{width:100%;padding:.7em .9em;border:1px solid var(--ru-line);border-radius:6px;font-family:var(--ru-font-body);font-size:13.6px;margin-bottom:9.6px;background:#fff;}
.ru-side-cta button{width:100%;border:none;border-radius:6px;padding:.75em;background:var(--ru-pink);color:#fff;font-family:var(--ru-font-body);font-size:13.76px;font-weight:600;cursor:pointer;}
.ru-side-cta button:hover{background:var(--ru-pink-hover);}
.ru-side-cta .ru-side-note{font-size:11.84px;color:var(--ru-muted);margin-top:9.6px;}
@media (max-width:900px){
  .single-post .site-content{display:block;}
  .single-post .content-area{max-width:none;}
  .single-post .widget-area.is-right-sidebar{width:100%;position:static;margin-top:48px;}
  .single-post .entry-content,.single-post .entry-header,.single-post .ru-crumbs,
  .single-post .post-image,.single-post .featured-image{max-width:none;}
}

/* sidebar link polish */
.single-post .widget-area a{text-decoration:none;}
.single-post .widget-area a:hover{text-decoration:none;}
.single-post .widget-area .widget:last-child{margin-bottom:0;}

/* ===== Article buttons + image guard ===== */
.single-post .entry-content .wp-block-button__link,
.single-post .entry-content .wp-element-button,
.single-post .entry-content a.button{
  background-color:var(--ru-pink) !important;
  background-image:none !important;
  color:#fff !important;
  border:none !important;
  font-family:var(--ru-font-body) !important;
  font-size:14.72px !important;
  font-weight:600;
  letter-spacing:.01em;
  padding:.85em 1.9em !important;
  border-radius:6px !important;
  text-decoration:none !important;
  display:inline-block;
  transition:background .2s ease, transform .2s ease;
}
.single-post .entry-content .wp-block-button__link:hover,
.single-post .entry-content .wp-element-button:hover,
.single-post .entry-content a.button:hover{
  background-color:var(--ru-pink-hover) !important;
  color:#fff !important;
  transform:translateY(-1px);
}
.single-post .entry-content .wp-block-button.is-style-outline .wp-block-button__link{
  background-color:transparent !important;
  color:var(--ru-pink) !important;
  border:1.5px solid var(--ru-pink) !important;
}
.single-post .entry-content .wp-block-button.is-style-outline .wp-block-button__link:hover{
  background-color:var(--ru-pink) !important;
  color:#fff !important;
}
.single-post .entry-content .wp-block-buttons{margin:32px 0;}
/* never upscale an image beyond its natural size — small uploads stay sharp */
.single-post .featured-image img,
.single-post .post-image img{
  width:auto !important;
  max-width:100%;
  height:auto;
  display:block;
  margin-inline:auto;
}

/* ===== Featured image: full width, fixed 16:9 frame ===== */
.single-post .featured-image,
.single-post .post-image{width:100%;max-width:700px;margin:0 0 38.4px;padding:0;}
.single-post .featured-image img,
.single-post .post-image img{
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  aspect-ratio:16/9;
  object-fit:cover;
  object-position:center;
  border-radius:10px;
  display:block;
  margin:0 !important;
}
@media (max-width:900px){
  .single-post .featured-image,.single-post .post-image{max-width:none;}
}

/* ===== GenerateBlocks buttons -> theme ===== */
.entry-content a.gb-button,
a.gb-button.gb-button-text{background-color:var(--ru-pink) !important;background-image:none !important;color:#fff !important;border:none !important;border-radius:6px !important;font-family:var(--ru-font-body) !important;font-size:14.72px !important;font-weight:600 !important;line-height:1.2 !important;padding:.85em 1.9em !important;text-decoration:none !important;display:inline-block !important;transition:background .2s ease, transform .2s ease !important;}
.entry-content a.gb-button:hover,
a.gb-button.gb-button-text:hover{background-color:var(--ru-pink-hover) !important;color:#fff !important;text-decoration:none !important;transform:translateY(-1px);}
.entry-content a.gb-button:visited{color:#fff !important;}

/* ===== Any GB button, any tag (a / span / button / div) ===== */
.entry-content .gb-button,
.entry-content .gb-button.gb-button-text{background-color:var(--ru-pink) !important;background-image:none !important;color:#fff !important;border:none !important;border-radius:6px !important;font-family:var(--ru-font-body) !important;font-size:14.72px !important;font-weight:600 !important;line-height:1.2 !important;padding:.85em 1.9em !important;text-decoration:none !important;display:inline-block !important;cursor:pointer;transition:background .2s ease, transform .2s ease !important;}
.entry-content .gb-button:hover{background-color:var(--ru-pink-hover) !important;color:#fff !important;text-decoration:none !important;transform:translateY(-1px);}
.entry-content .gb-button:visited{color:#fff !important;}
/* empty gb-text blocks shouldn't render as coloured boxes */
.entry-content .gb-text:empty{display:none !important;}

/* ===== Footer: light blush, readable logo ===== */
:root{--ru-footer-bg:#FAEAEF;}
.site-footer{background:var(--ru-footer-bg) !important;}
.site-footer #footer-widgets{background:var(--ru-footer-bg) !important;border-top:1px solid var(--ru-line);}
.site-footer .widget-title{color:var(--ru-plum) !important;}
.site-footer p,.site-footer .textwidget{color:var(--ru-muted) !important;}
.site-footer ul li a{color:var(--ru-ink) !important;}
.site-footer ul li a:hover{color:var(--ru-pink) !important;}
.site-footer .ru-social a{color:var(--ru-plum) !important;}
.site-footer .ru-social a:hover{color:var(--ru-pink) !important;}
.site-footer img{max-width:190px;height:auto;}
.site-footer .ru-subscribe input[type=email]{background:#fff;border:1px solid var(--ru-line);color:var(--ru-ink);}
.site-footer .ru-subscribe input[type=email]::placeholder{color:#A08D97;}
.site-info{background:var(--ru-footer-bg) !important;color:var(--ru-muted) !important;border-top:1px solid var(--ru-line);}
.site-info a{color:var(--ru-plum) !important;}
.site-info a:hover{color:var(--ru-pink) !important;}

/* ===== Footer spacing + equal columns ===== */
.site-footer #footer-widgets{padding:48px 0 35.2px !important;}
.site-footer .footer-widgets-container{padding:0 !important;}
.site-footer .inside-footer-widgets{padding:0 24px !important;gap:40px !important;align-items:flex-start;}
.site-footer .inside-footer-widgets > div{flex:1 1 0 !important;min-width:0 !important;}
.site-footer .widget,.site-footer .widget.inner-padding{padding:0 !important;margin:0 !important;}
.site-footer .widget-title{margin-top:0 !important;}
.site-footer .ru-subscribe{flex-direction:column;gap:8.8px;margin-top:16px;}
.site-footer .ru-subscribe input[type=email],.site-footer .ru-subscribe button{width:100%;min-width:0;}
.site-info{padding:14.4px 24px !important;}

/* footer bar: kill GP's inner 20px padding */
.site-info .inside-site-info{padding:0 !important;}
.site-info{padding:13.6px 24px !important;}

/* footer rail: one container owns the width + gutters */
.site-footer .footer-widgets-container{max-width:var(--ru-wrap) !important;width:100% !important;margin:0 auto !important;padding:0 24px !important;display:block !important;}
.site-footer .inside-footer-widgets{max-width:none !important;width:100% !important;margin:0 !important;padding:0 !important;display:flex !important;gap:40px !important;align-items:flex-start;}
.site-info .inside-site-info{max-width:var(--ru-wrap) !important;width:100% !important;margin:0 auto !important;padding:0 24px !important;}
.site-info{padding:13.6px 0 !important;}

/* footer: even visual gaps — columns hug content, space spreads evenly */
.site-footer .inside-footer-widgets{justify-content:space-between !important;gap:32px !important;}
.site-footer .inside-footer-widgets > div{flex:0 1 auto !important;min-width:0 !important;}
.site-footer .footer-widget-1{flex:0 0 300px !important;max-width:300px !important;}
.site-footer .footer-widget-4{flex:0 0 260px !important;max-width:260px !important;}

/* nav: colours come from GeneratePress settings; CSS only shapes it */
.main-navigation .main-nav ul li a{font-family:var(--ru-font-body);font-size:14.4px;font-weight:500;padding:6.4px 0;line-height:1.3;border-bottom:2px solid transparent;transition:color .18s ease,border-color .18s ease;}
.main-navigation .main-nav ul li:hover > a,.main-navigation .main-nav ul li.current-menu-item > a,.main-navigation .main-nav ul li.current-menu-ancestor > a{border-bottom-color:var(--ru-pink);}
.main-navigation ul ul li a{border-bottom:none !important;}

/* nav: dropdown arrow shouldn't reserve 17px of dead space */
.main-navigation .main-nav ul li a .dropdown-menu-toggle{padding:0 0 0 5px !important;}
.main-navigation .main-nav ul li a .gp-icon{margin:0 !important;}

/* nav search icon: size it properly, theme colours, round hover */
.main-navigation .menu-bar-items{display:flex;align-items:center;margin-left:6.4px;}
.main-navigation .menu-bar-item > a{display:grid !important;place-items:center;width:38px;height:38px;padding:0 !important;border-radius:50%;color:var(--ru-plum) !important;transition:background .18s ease,color .18s ease;}
.main-navigation .menu-bar-item > a:hover,.main-navigation .menu-bar-item > a:focus{background:var(--ru-pink-pale) !important;color:var(--ru-pink) !important;}
.main-navigation .menu-bar-item > a .gp-icon,.main-navigation .menu-bar-item > a .gp-icon svg{width:19px !important;height:19px !important;}
.main-navigation .menu-bar-item > a svg{fill:currentColor !important;}
.main-navigation .menu-bar-item.search-item.active > a{background:var(--ru-pink-pale) !important;color:var(--ru-pink) !important;}

/* ============================================================
   MOVED OUT OF PAGE CONTENT
   These were inline <style> blocks inside the homepage. Living
   here instead means the page is pure blocks, and the styling
   survives if the page is ever re-created.
   ============================================================ */
.ru-promo--heal{background:#EBE1E8;}
.ru-promo--heal .ru-eyebrow{color:#8E4A6B;opacity:1;}
.ru-promo--heal h2{color:#5C1A3D;}
.ru-promo--heal p{color:#6B5560;}
.ru-layout .entry-content .ru-btn-heal .wp-block-button__link{background-color:#8E4A6B !important;white-space:nowrap;}
.ru-layout .entry-content .ru-btn-heal .wp-block-button__link:hover{background-color:#743A57 !important;}
.ru-bandwrap{padding:72px 24px;}
.ru-band{position:relative;}

.ru-band{background:var(--ru-plum);border-radius:16px;padding:41.6px 41.6px;display:flex;align-items:center;gap:38.4px;max-width:var(--ru-wrap);margin-inline:auto;overflow:hidden;}
.ru-band-copy{flex:0 0 290px;}
.ru-band-copy h2{color:#fff !important;font-size:32px;line-height:1.15;margin:0 0 4px;}
.ru-band-sub{font-family:var(--ru-font-head);font-style:italic;font-size:20.48px;color:#F0A2C4 !important;margin:0 0 16px !important;}
.ru-band-copy p:last-child{color:#E3C6D4 !important;font-size:14.72px;line-height:1.65;margin:0;}
.ru-band-shots{flex:1 1 auto;display:flex;justify-content:center;align-items:center;gap:17.6px;}
.ru-band-shots figure{position:relative;margin:0;width:152px;background:#fff;padding:8.8px 8.8px 32px;box-shadow:0 10px 26px rgba(0,0,0,.28);}
.ru-band-shots figure img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;border-radius:0;}
.ru-band-shots figure::before{content:"";position:absolute;top:-11px;left:50%;width:56px;height:21px;background:rgba(240,162,196,.8);transform:translateX(-50%) rotate(-3deg);}
.ru-band-shots figure:nth-of-type(1){transform:rotate(-6deg);}
.ru-band-shots figure:nth-of-type(2){transform:rotate(1.5deg);z-index:2;}
.ru-band-shots figure:nth-of-type(3){transform:rotate(-2.5deg);}
.ru-band-cta{flex:0 0 250px;text-align:center;}
.ru-band-cta .wp-block-button__link{white-space:nowrap;}
.ru-band-rule{display:flex;align-items:center;justify-content:center;gap:9.6px;margin:22.4px 0 12.8px;color:#F0A2C4;}
.ru-band-rule::before,.ru-band-rule::after{content:"";height:1px;width:38px;background:rgba(240,162,196,.5);}
.ru-band-note{color:#E3C6D4 !important;font-size:13.6px;line-height:1.55;margin:0 !important;}
@media (max-width:1000px){.ru-band{flex-direction:column;text-align:center;padding:35.2px 24px;}.ru-band-copy,.ru-band-cta{flex:none;width:100%;}.ru-band-shots{flex-wrap:wrap;}}
@media (max-width:640px){.ru-band-shots figure{width:120px;}}

/* polaroids are core Image blocks now — target them by position, not tag */
.ru-band-shots > *:nth-child(1){transform:rotate(-6deg);}
.ru-band-shots > *:nth-child(2){transform:rotate(1.5deg);z-index:2;}
.ru-band-shots > *:nth-child(3){transform:rotate(-2.5deg);}
.ru-band-shots .wp-block-image{margin:0;}

/* ===== Footer rail — final word =====
   The .grid-container max-width can be neutralised by GeneratePress's own
   layout settings, which differ per site. Put the rail on the element this
   theme owns instead, so gutters are symmetric regardless of GP config. */
.site-footer .footer-widgets-container{max-width:none !important;width:100% !important;padding:0 !important;margin:0 !important;}
.site-footer .inside-footer-widgets{max-width:var(--ru-wrap) !important;margin:0 auto !important;padding:0 24px !important;box-sizing:border-box !important;}

/* ===== Header: site-title fallback =====
   Sites without a custom logo show a text title. Style it on-brand rather
   than leaving it as the theme default. */
.site-header .site-title,.site-header .main-title{margin:0;}
.site-header .site-title a,.site-header .main-title a{
  font-family:var(--ru-font-head);font-size:27.2px;font-weight:600;
  color:var(--ru-plum);letter-spacing:-.01em;text-decoration:none;
}
.site-header .site-title a:hover,.site-header .main-title a:hover{color:var(--ru-pink);}
.site-header .site-description{
  font-family:var(--ru-font-body);font-size:13.12px;color:var(--ru-muted);margin-top:3.2px;
}

/* ============================================================
   LIVE-SITE HARDENING
   Two lessons from rolling this onto relationup.com:

   1. GeneratePress prints dynamic CSS inline (#generate-style-inline-css)
      AFTER this stylesheet, so equal-specificity rules lose. Its content
      width was pinning single posts to 900px, squeezing the reading
      measure to 48 characters instead of ~72.

   2. Deferring nav colours to GeneratePress settings was a mistake — those
      settings differ per site and are easy to miss. Colours belong here so
      the theme looks right the moment it is activated.
   ============================================================ */

/* --- Single post: own the layout widths --- */
.single-post .site-content{
  display:flex !important;
  gap:56px !important;
  max-width:var(--ru-wrap) !important;
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding:0 24px !important;
  align-items:flex-start !important;
}
.single-post .content-area{
  flex:1 1 auto !important;
  min-width:0 !important;
  max-width:760px !important;
  width:auto !important;
  float:none !important;
}
.single-post .widget-area.is-right-sidebar{
  display:block !important;
  flex:0 0 320px !important;
  width:320px !important;
  position:sticky;
  top:32px;
}
@media (max-width:900px){
  .single-post .site-content{display:block !important;padding:0 24px !important;}
  .single-post .content-area{max-width:none !important;}
  .single-post .widget-area.is-right-sidebar{width:100% !important;position:static;margin-top:48px;}
}

/* --- Navigation colours: self-contained, not reliant on theme settings --- */
.main-navigation .main-nav ul li a{color:var(--ru-ink) !important;}
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li:focus-within > a,
.main-navigation .main-nav ul li.current-menu-item > a,
.main-navigation .main-nav ul li.current-menu-ancestor > a{
  color:var(--ru-pink) !important;
  background-color:transparent !important;
}
.main-navigation ul ul{background-color:#fff !important;}
.main-navigation ul ul li a{color:var(--ru-ink) !important;background-color:#fff !important;}
.main-navigation ul ul li:hover > a,
.main-navigation ul ul li.current-menu-item > a{
  color:var(--ru-pink) !important;
  background-color:var(--ru-pink-pale) !important;
}

/* --- Top bar --- */
.top-bar{background-color:var(--ru-pink-pale) !important;}
.top-bar .inside-top-bar:empty{display:none;}
.top-bar .widget{margin:0;padding:0;}
.top-bar .menu{display:flex;gap:24px;justify-content:center;list-style:none;margin:0;padding:0;}
.top-bar .menu li a{color:var(--ru-plum) !important;font-size:13.6px;}
.top-bar .menu li a:hover{color:var(--ru-pink) !important;}

/* ============================================================
   Headings, titles and links rendered by GeneratePress Elements
   / GenerateBlocks templates. Those sit outside .entry-content,
   so the earlier rules never reached them: the post title was
   Nunito 36px #222, and 17 links were still Material purple
   #9C27B0 left over from an earlier setup.
   ============================================================ */

/* 2. Post title */
.single-post h1.gb-headline,
.single-post .gb-container h1{
  font-family:'Playfair Display',Georgia,serif !important;
  color:#5C1A3D !important;
  font-size:clamp(38.4px,4vw,48px) !important;
  line-height:1.12 !important;
  font-weight:600 !important;
  letter-spacing:-.015em !important;
}

/* 1. Headings anywhere in the article template */
.single-post h2.gb-headline,
.single-post h3.gb-headline,
.single-post h4.gb-headline,
.single-post .gb-container h2,
.single-post .gb-container h3{
  font-family:'Playfair Display',Georgia,serif !important;
  color:#5C1A3D !important;
}

/* 3. Links — retire the leftover #9C27B0 */
.single-post .gb-container a:not(.gb-button):not(.wp-block-button__link):not(.wp-element-button),
.single-post .entry-meta a,
.single-post .post-meta a{
  color:#BE2A6E !important;
}
.single-post .gb-container a:not(.gb-button):not(.wp-block-button__link):hover{
  color:#9E1D5A !important;
}
/* in-article prose links stay pink and underlined */
.single-post .entry-content a:not(.gb-button):not(.wp-block-button__link):not(.wp-element-button){
  color:#BE2A6E !important;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.single-post .entry-content a:not(.gb-button):not(.wp-block-button__link):hover{color:#9E1D5A !important;}


/* ============================================================
   COLOUR LOOPHOLES — found by auditing every element that owns
   its own text, on both the homepage and a single post.
   Eleven places were still falling back to theme defaults
   (#222, #666, #808080) or to a leftover sage green.
   ============================================================ */

/* Homepage */
.ru-layout .entry-content p{color:#4B3A43 !important;}
.ru-layout .ru-hero-lede{color:#7A6570 !important;}
.ru-layout .ru-viewall{color:#5C1A3D !important;}
.ru-layout .ru-viewall:hover{color:#BE2A6E !important;}
.ru-layout .ru-cat p,.ru-layout .ru-card p,.ru-layout .ru-quiz p{color:#7A6570 !important;}

/* Narcissism panel sits on plum now — the old sage-green eyebrow is unreadable */
.ru-promo--sage .ru-eyebrow{color:#F0A2C4 !important;opacity:1 !important;}
.ru-promo--sage h2{color:#fff !important;}
.ru-promo--sage p{color:#E3C6D4 !important;}

/* Footer copyright */
.site-info,.site-info span,.site-info p{color:#7A6570 !important;}

/* Single post — sidebar */
.single-post .widget-area a{color:#4B3A43 !important;}
.single-post .widget-area .ru-side-link{color:#BE2A6E !important;}
.single-post .widget-area .ru-side-post a{color:#5C1A3D !important;}
.single-post .widget-area .ru-side-post a:hover,
.single-post .widget-area a:hover{color:#BE2A6E !important;}

/* Single post — byline date */
.single-post time,.single-post .gb-container time{color:#7A6570 !important;}

/* Single post — comments were entirely untouched */
#comments h2,#comments h3,.comment-respond h3,.comments-title{
  font-family:'Playfair Display',Georgia,serif !important;
  color:#5C1A3D !important;
}
#comments,#comments p,#comments li,.comment-respond p,.comment-respond label{color:#4B3A43 !important;}
#comments a,.comment-respond a{color:#BE2A6E !important;}
.comment-form input[type=submit],.comment-form .submit{
  background-color:#BE2A6E !important;color:#fff !important;border:none !important;
  border-radius:6px !important;font-family:'Poppins',sans-serif !important;font-weight:600 !important;
}
.comment-form input[type=submit]:hover{background-color:#9E1D5A !important;}


/* Specificity correction: the blanket .entry-content p rule above (3 classes)
   was outranking .ru-hero-lede and the promo eyebrow (2 classes). Match its
   weight so the intended colours win. */
.ru-layout .entry-content .ru-hero-lede{color:#7A6570 !important;}
.ru-layout .entry-content .ru-promo--sage .ru-eyebrow{color:#F0A2C4 !important;opacity:1 !important;}
.ru-layout .entry-content .ru-promo--sage p{color:#E3C6D4 !important;}
.ru-layout .entry-content .ru-promo--heal .ru-eyebrow{color:#8E4A6B !important;opacity:1 !important;}
.ru-layout .entry-content .ru-promo--heal p{color:#6B5560 !important;}
.ru-layout .entry-content .ru-band-copy p{color:#E3C6D4 !important;}
.ru-layout .entry-content .ru-band-sub{color:#F0A2C4 !important;}
.ru-layout .entry-content .ru-band-note{color:#E3C6D4 !important;}
.ru-layout .entry-content .ru-eyebrow{color:#BE2A6E !important;}


/* ============================================================
   Breathing room before the footer.
   The article was ending flush against the footer — measured
   gap was 0px. The 64px padding on .site-main sits inside the
   container, so the outer boundary had nothing.
   ============================================================ */
.single-post .site-content{padding-bottom:80px !important;}
.single-post .widget-area.is-right-sidebar{margin-bottom:24px;}
.single-post .widget-area .widget:last-child{margin-bottom:0;}

/* stacked layout: the sidebar sits under the article, so it needs
   the same clearance underneath it */
@media (max-width:900px){
  .single-post .site-content{padding-bottom:56px !important;}
  .single-post .widget-area.is-right-sidebar{margin-bottom:0;}
}

/* archives and pages benefit from the same clearance */
.archive .site-content,.blog .site-content,.page:not(.ru-layout) .site-content{padding-bottom:80px;}


/* ============================================================
   Body copy weight.
   Something on single posts sets font-weight:600 on <body> and
   every paragraph inherited it — the article read as bold
   throughout. The homepage was unaffected (body 400 there), so
   this is specific to the post template.

   Pinned explicitly rather than chased upstream, so the theme
   is right regardless of the host site's typography settings.
   ============================================================ */
.single-post .entry-content,
.single-post .entry-content p,
.single-post .entry-content li,
.single-post .entry-content blockquote,
.single-post .ru-standfirst{font-weight:400 !important;}

/* bold stays bold where it is meant to */
.single-post .entry-content strong,
.single-post .entry-content b{font-weight:600 !important;}

/* card descriptions on the homepage were 600 too */
.ru-layout .entry-content .ru-card p,
.ru-layout .entry-content .ru-cat p,
.ru-layout .entry-content .ru-quiz p{font-weight:400 !important;}
