/*
Theme Name: revfittherapy staging walk GP Child
Template: generatepress
Version: 1.2.3
Description: GeneratePress child theme generated by the Phasma migration rail from the source site's own stylesheets. Reproduces the global look; see the engagement's draft record for what was not carried.
*/

/* Design tokens — written by the Phasma migration rail from the signed design brief.
 *
 * PLATFORM-OWNED. Every value below was validated before it was written and none of it is
 * model output; the stylesheet under it refers to these by name. Polish the site here:
 * change a value once and every rule that uses it follows. Values the brief did not give
 * (or that it gave badly — see the draft record's `brief_unhonoured`) carry the neutral
 * default, so the site renders either way.
 */
:root {
	--phasma-color-primary: #8e010a;
	--phasma-color-secondary: #002563;
	--phasma-color-background: #ffffff;
	--phasma-color-text: #1a1a1a;
	--phasma-color-muted: #5a5a5a;
	--phasma-color-accent: #8e010a;
	--phasma-color-header: #ffffff;
	--phasma-color-surface_alt: #f6f3f1;
	--phasma-color-border: #e6e1dd;
	--phasma-color-on_dark: #ffffff;
	--phasma-color-on-primary: #ffffff;
	--phasma-color-on-secondary: #ffffff;
	--phasma-font-heading: Roboto;
	--phasma-font-body: Open Sans;
	--phasma-size-body: 17px;
	--phasma-line-body: 1.6;
	--phasma-weight-body: 400;
	--phasma-family-body: Open Sans;
	--phasma-size-eyebrow: 13px;
	--phasma-line-eyebrow: 1.4;
	--phasma-weight-eyebrow: 600;
	--phasma-family-eyebrow: Open Sans;
	--phasma-size-h1: clamp(34px, calc(34px + 1.6vw), 56px);
	--phasma-line-h1: 1.1;
	--phasma-weight-h1: 700;
	--phasma-family-h1: Roboto;
	--phasma-size-h2: clamp(28px, calc(28px + 0.9vw), 40px);
	--phasma-line-h2: 1.15;
	--phasma-weight-h2: 700;
	--phasma-family-h2: Roboto;
	--phasma-size-h3: 24px;
	--phasma-line-h3: 1.25;
	--phasma-weight-h3: 700;
	--phasma-family-h3: Roboto;
	--phasma-size-h4: 20px;
	--phasma-line-h4: 1.3;
	--phasma-weight-h4: 700;
	--phasma-family-h4: Roboto;
	--phasma-size-nav: 13px;
	--phasma-line-nav: 1.4;
	--phasma-weight-nav: 600;
	--phasma-family-nav: Open Sans;
	--phasma-size-small: 14px;
	--phasma-line-small: 1.5;
	--phasma-weight-small: 400;
	--phasma-container-max: 1200px;
	--phasma-grid-columns: 12;
	--phasma-space-1: 4px;
	--phasma-space-2: 8px;
	--phasma-space-3: 12px;
	--phasma-space-4: 16px;
	--phasma-space-5: 24px;
	--phasma-space-6: 32px;
	--phasma-space-7: 48px;
	--phasma-space-8: 64px;
	--phasma-space-9: 96px;
	--phasma-space-section: 72px;
	--phasma-btn-radius: 8px;
	--phasma-btn-pad-y: 14px;
	--phasma-btn-pad-x: 24px;
	--phasma-btn-min-height: 48px;
	--phasma-btn-font: 16px;
	--phasma-btn-weight: 600;
	--phasma-btn-transform: none;
	--phasma-btn2-radius: 8px;
	--phasma-btn2-pad-y: 12px;
	--phasma-btn2-pad-x: 22px;
	--phasma-btn2-min-height: 48px;
	--phasma-btn2-font: 16px;
	--phasma-btn2-weight: 600;
	--phasma-btn2-transform: none;
	--phasma-focus-ring: 3px;
	--phasma-card-radius: 12px;
	--phasma-card-border: 1px solid var(--phasma-color-border, #e5e5e5);
	--phasma-card-shadow: none;
}

@media (max-width: 782px) {
	:root {
		--phasma-size-body: 16px;
		--phasma-size-h3: 22px;
		--phasma-space-section: 44px;
		--phasma-size-h4: 19px;
	}
}

/* ==========================================================================
   RevFit Therapy — GeneratePress Child Theme
   Fonts: Roboto (headings) · Open Sans (body/nav/eyebrow)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. BASE TYPOGRAPHY
   -------------------------------------------------------------------------- */
body {
    font-family: var(--phasma-font-body), sans-serif;
    font-size: var(--phasma-size-body);
    font-weight: var(--phasma-weight-body);
    line-height: var(--phasma-line-body);
    color: var(--phasma-color-text);
    background-color: var(--phasma-color-background);
}

h1, .h1 {
    font-family: var(--phasma-family-h1), sans-serif;
    font-size: var(--phasma-size-h1);
    font-weight: var(--phasma-weight-h1);
    line-height: var(--phasma-line-h1);
    color: var(--phasma-color-text);
}

h2, .h2 {
    font-family: var(--phasma-family-h2), sans-serif;
    font-size: var(--phasma-size-h2);
    font-weight: var(--phasma-weight-h2);
    line-height: var(--phasma-line-h2);
    color: var(--phasma-color-text);
}

h3, .h3 {
    font-family: var(--phasma-family-h3), sans-serif;
    font-size: var(--phasma-size-h3);
    font-weight: var(--phasma-weight-h3);
    line-height: var(--phasma-line-h3);
    color: var(--phasma-color-text);
}

h4, .h4 {
    font-family: var(--phasma-family-h4), sans-serif;
    font-size: var(--phasma-size-h4);
    font-weight: var(--phasma-weight-h4);
    line-height: var(--phasma-line-h4);
    color: var(--phasma-color-text);
}

h5, .h5 {
    font-family: var(--phasma-family-h3), sans-serif;
    font-size: var(--phasma-size-small);
    font-weight: var(--phasma-weight-h3);
    line-height: var(--phasma-line-small);
    color: var(--phasma-color-text);
}

h6, .h6 {
    font-family: var(--phasma-family-eyebrow), sans-serif;
    font-size: var(--phasma-size-eyebrow);
    font-weight: var(--phasma-weight-eyebrow);
    line-height: var(--phasma-line-eyebrow);
    color: var(--phasma-color-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

p {
    margin-top: 0;
    margin-bottom: var(--phasma-space-5);
    color: var(--phasma-color-text);
}

/* Minimum font-size guard — no text below 13px */
small, .small, figcaption, caption,
.wp-caption-text, .entry-meta, .comment-metadata {
    font-size: var(--phasma-size-eyebrow);
    line-height: var(--phasma-line-eyebrow);
}

/* --------------------------------------------------------------------------
   2. LINKS
   -------------------------------------------------------------------------- */
a {
    color: var(--phasma-color-primary);
    text-decoration: none;
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

a:hover,
a:focus {
    color: var(--phasma-color-primary);
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

/* --------------------------------------------------------------------------
   3. LAYOUT & CONTAINER
   -------------------------------------------------------------------------- */
.container,
.container-fluid,
.site-inner,
.inside-site-inner,
.wp-site-blocks {
    max-width: var(--phasma-container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--phasma-space-5);
    padding-right: var(--phasma-space-5);
    width: 100%;
    box-sizing: border-box;
}

/* Full-width content — no max-width on paragraphs or lists (no sidebar) */
.entry-content p,
.entry-content ul,
.entry-content ol,
.entry-content dl {
    max-width: none;
}

/* --------------------------------------------------------------------------
   4. HEADER LAYOUT (colours owned by platform — layout only)
   -------------------------------------------------------------------------- */
.site-header {
    min-height: 76px;
    display: flex;
    align-items: center;
}

.site-header .site-branding {
    display: table;
    height: 76px;
}

.site-header .site-branding a {
    display: table-cell;
    vertical-align: middle;
}

.site-header .site-branding a img {
    display: block;
    max-height: 48px;
    width: auto;
}

/* Navigation layout */
.site-header .main-navigation ul li a {
    font-family: var(--phasma-family-nav), sans-serif;
    font-size: var(--phasma-size-nav);
    font-weight: var(--phasma-weight-nav);
    line-height: var(--phasma-line-nav);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 28px var(--phasma-space-3);
    display: block;
    text-decoration: none;
    transition: text-decoration-color 0.2s ease;
}

.site-header .main-navigation ul li a:hover,
.site-header .main-navigation ul li a:focus {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
    text-decoration-color: var(--phasma-color-primary);
}

.site-header .main-navigation ul.menu > li.current-menu-item > a,
.site-header .main-navigation ul.menu > li.current > a,
.site-header .main-navigation ul li a.active {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
    text-decoration-color: var(--phasma-color-primary);
}

/* Submenu layout */
.site-header .main-navigation ul li ul {
    position: absolute;
    top: 100%;
    left: 0;
    width: 200px;
    z-index: 99;
    opacity: 0;
    visibility: hidden;
    transform: scaleY(0);
    transform-origin: 0 0 0;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.site-header .main-navigation ul > li:hover > ul {
    opacity: 1;
    visibility: visible;
    transform: scaleY(1);
}

.site-header .main-navigation ul li ul li {
    display: block;
    border-bottom: 1px solid rgba(255,255,255,0.15);
    transition: all 0.3s ease;
}

.site-header .main-navigation ul li ul li:last-child {
    border-bottom: none;
}

.site-header .main-navigation ul li ul li a {
    text-transform: none;
    letter-spacing: 0;
    padding: 10px 15px;
    display: block;
}

/* 3rd level */
.site-header .main-navigation ul li ul li ul {
    left: 200px;
    top: 0;
}

/* Mega menu layout */
.site-header .main-navigation ul li.mega-menu > ul.sub-menu {
    padding: 10px 0;
    width: 420px;
}

.site-header .main-navigation ul li.mega-menu > ul.sub-menu > li {
    display: block;
    float: left;
    margin: 0 var(--phasma-space-2);
    width: 220px;
    border: none;
}

.site-header .main-navigation ul li.mega-menu > ul.sub-menu > li ul {
    position: relative;
    width: inherit;
    left: inherit;
    box-shadow: none;
}

.site-header .main-navigation ul li.mega-menu > ul.sub-menu > li > a {
    font-weight: 600;
    margin-bottom: 1px;
}

/* Search box layout */
.site-header .search-box .search-text {
    height: 34px;
    left: 0;
    margin-right: 3px;
    opacity: 0;
    padding: 0;
    position: absolute;
    top: 100%;
    visibility: hidden;
    width: 0;
    z-index: 99;
    transition: all 0.3s ease;
    box-shadow: none;
    border: 1px solid var(--phasma-color-border);
}

.site-header .search-box .search-text.active {
    left: -112px;
    opacity: 1;
    padding: 0 10px;
    visibility: visible;
    width: 180px;
}

.cart-icon-area,
.header-icon-seperator,
.search-box-area {
    padding-top: 20px;
    padding-bottom: 20px;
}

/* --------------------------------------------------------------------------
   5. FOCUS RING (accessibility)
   -------------------------------------------------------------------------- */
:focus-visible {
    outline: var(--phasma-focus-ring) solid var(--phasma-color-primary);
    outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   6. COLOUR TOKENS — primary/secondary surfaces
   -------------------------------------------------------------------------- */
.gym-primary-color,
.gym-primary-colour {
    color: var(--phasma-color-primary);
}

.gym-primary-bgcolor,
.gym-primary-bgcolour {
    background-color: var(--phasma-color-primary);
}

/* --------------------------------------------------------------------------
   7. SECTION BANDS
   Bands alternate background / surface_alt.
   No background images on bands.
   .phasma-band padding & .phasma-band--alt surface are the platform's.
   -------------------------------------------------------------------------- */
section,
.rt-section {
    background-image: none;
}

/* --------------------------------------------------------------------------
   8. CARDS
   -------------------------------------------------------------------------- */
.rt-owl-post-2 .single-item,
.rt-vc-post-list .rtin-item,
.rt-post-grid .single-item {
    border-radius: var(--phasma-card-radius);
    border: var(--phasma-card-border);
    box-shadow: var(--phasma-card-shadow);
    overflow: hidden;
}

/* --------------------------------------------------------------------------
   9. FORMS
   -------------------------------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea,
select {
    color: var(--phasma-color-text);
    border: 1px solid var(--phasma-color-border);
    border-radius: var(--phasma-space-1);
    font-family: var(--phasma-font-body), sans-serif;
    font-size: var(--phasma-size-body);
    padding: var(--phasma-space-2) var(--phasma-space-3);
    width: 100%;
    box-sizing: border-box;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus,
select:focus {
    color: var(--phasma-color-text);
    border-color: var(--phasma-color-primary);
    outline: var(--phasma-focus-ring) solid var(--phasma-color-primary);
    outline-offset: 0;
}

textarea {
    width: 100%;
}

/* --------------------------------------------------------------------------
   10. THEME BUTTON HELPERS (non-platform buttons)
      Note: .wp-block-button__link, .wp-element-button, .phasma-btn,
      and form submits are owned by the platform — not styled here.
   -------------------------------------------------------------------------- */
.rdtheme-button-2 {
    border-radius: var(--phasma-btn-radius);
    display: inline-block;
    font-family: var(--phasma-font-body), sans-serif;
    font-size: var(--phasma-btn-font);
    font-weight: var(--phasma-btn-weight);
    text-transform: var(--phasma-btn-transform);
    padding: var(--phasma-btn-pad-y) var(--phasma-btn-pad-x);
    min-height: var(--phasma-btn-min-height);
    text-align: center;
    background-color: var(--phasma-color-primary);
    color: var(--phasma-color-on-primary);
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.rdtheme-button-2:hover,
.rdtheme-button-2:focus {
    opacity: 0.88;
    color: var(--phasma-color-on-primary);
    text-decoration: none;
}

.rdtheme-button-3 {
    border-radius: var(--phasma-btn2-radius);
    display: inline-block;
    font-family: var(--phasma-font-body), sans-serif;
    font-size: var(--phasma-btn2-font);
    font-weight: var(--phasma-btn2-weight);
    text-transform: var(--phasma-btn2-transform);
    padding: var(--phasma-btn2-pad-y) var(--phasma-btn2-pad-x);
    min-height: var(--phasma-btn2-min-height);
    text-align: center;
    background-color: var(--phasma-color-background);
    color: var(--phasma-color-text);
    border: 2px solid var(--phasma-color-primary);
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.rdtheme-button-3:hover,
.rdtheme-button-3:focus {
    background-color: var(--phasma-color-primary);
    color: var(--phasma-color-on-primary);
    text-decoration: none;
}

/* --------------------------------------------------------------------------
   11. TOP BAR
   -------------------------------------------------------------------------- */
#tophead {
    font-size: var(--phasma-size-eyebrow);
    padding: var(--phasma-space-2) 0;
    background-color: var(--phasma-color-secondary);
    color: var(--phasma-color-on_dark);
}

#tophead .tophead-contact a,
#tophead .tophead-links ul li a,
#tophead .tophead-social li a {
    color: var(--phasma-color-on_dark);
    text-decoration: none;
}

#tophead .tophead-contact a:hover,
#tophead .tophead-links ul li a:hover,
#tophead .tophead-social li a:hover {
    text-decoration: underline;
}

#tophead .tophead-contact .fa,
#tophead .tophead-social li a:hover {
    color: var(--phasma-color-on_dark);
}

/* --------------------------------------------------------------------------
   12. FOOTER
   -------------------------------------------------------------------------- */
.footer-top-area {
    background-color: var(--phasma-color-secondary);
    color: var(--phasma-color-on_dark);
    padding: var(--phasma-space-9) 0 var(--phasma-space-6);
}

.footer-bottom-area {
    background-color: var(--phasma-color-secondary);
    padding: var(--phasma-space-4) 0;
}

.footer-bottom-area .footer-bottom p {
    color: var(--phasma-color-on_dark);
    margin: 0;
    text-align: center;
}

.footer-top-area a,
.footer-bottom-area a {
    color: var(--phasma-color-on_dark);
    text-decoration: none;
}

.footer-top-area a:hover,
.footer-bottom-area a:hover {
    text-decoration: underline;
}

/* --------------------------------------------------------------------------
   13. BANNER / BREADCRUMBS
   -------------------------------------------------------------------------- */
.entry-banner .entry-banner-content h1 {
    font-size: var(--phasma-size-h1);
    line-height: var(--phasma-line-h1);
    padding-bottom: var(--phasma-space-7);
    padding-top: var(--phasma-space-9);
    text-align: center;
    color: var(--phasma-color-on_dark);
}

.breadcrumb-area .entry-breadcrumb {
    background-color: var(--phasma-color-primary);
    display: inline-block;
    border-radius: 30px;
    padding: var(--phasma-space-3) var(--phasma-space-6);
    position: relative;
    top: 22px;
}

.breadcrumb-area .entry-breadcrumb span,
.breadcrumb-area .entry-breadcrumb span a {
    color: var(--phasma-color-on_dark);
}

/* --------------------------------------------------------------------------
   14. OWL CAROUSEL NAVIGATION (accent elements)
   -------------------------------------------------------------------------- */
.rt-owl-nav-1 .owl-custom-nav .owl-prev,
.rt-owl-nav-1 .owl-custom-nav .owl-next,
.rt-owl-nav-2 .owl-theme .owl-nav > div {
    background-color: var(--phasma-color-primary);
    color: var(--phasma-color-on-primary);
    border-radius: var(--phasma-space-1);
}

.rt-owl-nav-1 .owl-custom-nav .owl-prev:hover,
.rt-owl-nav-1 .owl-custom-nav .owl-next:hover,
.rt-owl-nav-2 .owl-theme .owl-nav > div:hover {
    background-color: var(--phasma-color-secondary);
}

.rt-owl-dot-1 .owl-theme .owl-dots .owl-dot.active span,
.rt-owl-dot-1 .owl-theme .owl-dots .owl-dot:hover span {
    background-color: var(--phasma-color-primary);
}

/* Owl title decorative underline */
.rt-owl-title-1 .owl-title::after {
    background-color: var(--phasma-color-primary);
}

/* --------------------------------------------------------------------------
   15. SECTION TITLES
   -------------------------------------------------------------------------- */
.section-title {
    margin-bottom: var(--phasma-space-7);
}

.rt-owl-nav-1 .owl-custom-nav-title,
.rt-owl-title-1 .owl-title {
    color: var(--phasma-color-text);
}

.rt-owl-title-1 .owl-description {
    color: var(--phasma-color-muted);
}

/* --------------------------------------------------------------------------
   16. POST / CONTENT CARDS — date badges, thumbnails
   -------------------------------------------------------------------------- */
.rt-owl-post-1 .single-item-meta .date,
.rt-owl-post-2 .single-item-content .date,
.rt-owl-post-3 .single-item-meta .date,
.rt-post-grid .single-item .rt-date {
    background-color: var(--phasma-color-primary);
    color: var(--phasma-color-on-primary);
    font-weight: 600;
    font-size: var(--phasma-size-eyebrow);
}

.rt-owl-post-1 .single-item .single-item-content h3 a,
.rt-owl-post-3 .single-item .single-item-content h3 a {
    color: var(--phasma-color-text);
}

.rt-owl-post-1 .single-item .single-item-content h3 a:hover,
.rt-owl-post-3 .single-item .single-item-content h3 a:hover {
    color: var(--phasma-color-primary);
}

.rt-owl-post-2 .single-item .single-item-meta h3 a {
    color: var(--phasma-color-text);
}

.rt-vc-post-list .rtin-item .rtin-right .rtin-date {
    color: var(--phasma-color-primary);
    font-size: var(--phasma-size-eyebrow);
    font-weight: 600;
}

.rt-vc-post-list .rtin-item .rtin-right .rtin-title a {
    color: var(--phasma-color-text);
}

/* --------------------------------------------------------------------------
   17. TEAM COMPONENTS
   -------------------------------------------------------------------------- */
.rt-owl-team-1 .vc-team-meta {
    background-color: var(--phasma-color-primary);
    color: var(--phasma-color-on-primary);
    border-radius: 30px;
}

.rt-owl-team-1 .vc-team-meta h3 a {
    color: var(--phasma-color-on-primary);
}

.rt-owl-team-1 .vc-overly ul li a {
    border: 2px solid var(--phasma-color-primary);
}

.rt-owl-team-1 .vc-overly ul li a:hover {
    background-color: var(--phasma-color-primary);
}

.rt-owl-team-2 .vc-team-meta .name {
    background-color: var(--phasma-color-primary);
    color: var(--phasma-color-on-primary);
}

.rt-owl-team-4 .vc-item:hover .name {
    color: var(--phasma-color-primary);
}

.rt-owl-team-4 .vc-item:hover .designation {
    color: var(--phasma-color-muted);
}

/* --------------------------------------------------------------------------
   18. SCROLL-TO-TOP
   -------------------------------------------------------------------------- */
.scrollToTop {
    border: 1px solid var(--phasma-color-primary);
    color: var(--phasma-color-primary);
    bottom: var(--phasma-space-3);
    right: var(--phasma-space-3);
    left: auto;
    height: 38px;
    line-height: 38px;
    width: 38px;
    text-align: center;
    text-decoration: none;
    position: fixed;
    display: block;
    transition: all 500ms ease-in-out;
    background-color: var(--phasma-color-background);
    border-radius: var(--phasma-space-1);
}

.scrollToTop:hover {
    background-color: var(--phasma-color-primary);
    color: var(--phasma-color-on-primary);
}

/* --------------------------------------------------------------------------
   19. WOOCOMMERCE HELPERS
   -------------------------------------------------------------------------- */
.cart-icon-products .widget_shopping_cart .mini_cart_item a:hover {
    color: var(--phasma-color-primary);
}

.header-icon-area .cart-icon-area .cart-icon-num {
    background-color: var(--phasma-color-primary);
    color: var(--phasma-color-on-primary);
    font-size: var(--phasma-size-eyebrow);
    border-radius: 50%;
    min-height: 19px;
    min-width: 19px;
    line-height: 18px;
    text-align: center;
    position: absolute;
}

/* --------------------------------------------------------------------------
   20. UTILITY SPACING CLASSES (map to spacing scale)
   -------------------------------------------------------------------------- */
.mt10  { margin-top: var(--phasma-space-3); }
.mt20  { margin-top: var(--phasma-space-4); }
.mt30  { margin-top: var(--phasma-space-5); }
.mt40  { margin-top: var(--phasma-space-6); }
.mt50  { margin-top: var(--phasma-space-7); }
.mt60  { margin-top: var(--phasma-space-8); }
.mt70  { margin-top: var(--phasma-space-8); }
.mt80  { margin-top: var(--phasma-space-9); }
.mt90  { margin-top: var(--phasma-space-9); }
.mt100 { margin-top: var(--phasma-space-9); }
.mb15  { margin-bottom: var(--phasma-space-4); }
.mb20  { margin-bottom: var(--phasma-space-4); }
.mb30  { margin-bottom: var(--phasma-space-5); }
.mb40  { margin-bottom: var(--phasma-space-6); }
.mb50  { margin-bottom: var(--phasma-space-7); }
.mb60  { margin-bottom: var(--phasma-space-8); }
.mb70  { margin-bottom: var(--phasma-space-8); }
.mb80  { margin-bottom: var(--phasma-space-9); }
.mb90  { margin-bottom: var(--phasma-space-9); }
.mb100 { margin-bottom: var(--phasma-space-9); }

.padding-space {
    padding-top: var(--phasma-space-section);
    padding-bottom: var(--phasma-space-section);
}

.padding-top  { padding-top: var(--phasma-space-section); }
.padding-bottom { padding-bottom: var(--phasma-space-section); }

/* --------------------------------------------------------------------------
   21. TABLES
   -------------------------------------------------------------------------- */
.table {
    color: var(--phasma-color-text);
    border-color: var(--phasma-color-border);
}

.table td,
.table th {
    border-top: 1px solid var(--phasma-color-border);
}

.table thead th {
    border-bottom: 2px solid var(--phasma-color-border);
    color: var(--phasma-color-text);
    font-family: var(--phasma-font-heading), sans-serif;
    font-weight: var(--phasma-weight-h4);
}

/* --------------------------------------------------------------------------
   22. PRELOADER
   -------------------------------------------------------------------------- */
#preloader {
    background-color: var(--phasma-color-background);
}

/* --------------------------------------------------------------------------
   23. CONTACT FORM 7 & GENERIC PLUGIN FORMS
   -------------------------------------------------------------------------- */
.wpcf7 input[type="submit"] {
    font-family: var(--phasma-font-body), sans-serif;
    font-size: var(--phasma-btn-font);
    font-weight: var(--phasma-btn-weight);
}

/* --------------------------------------------------------------------------
   24. RESPONSIVE — mobile ramp is handled by the platform via token
       redefinition inside its own media query. No font-size overrides here.
   -------------------------------------------------------------------------- */
@media (max-width: 782px) {
    .site-header .main-navigation ul li a {
        padding: var(--phasma-space-3) var(--phasma-space-3);
    }

    .container,
    .container-fluid,
    .site-inner,
    .inside-site-inner {
        padding-left: var(--phasma-space-4);
        padding-right: var(--phasma-space-4);
    }
}

/* Header — PLATFORM-OWNED (layout.header = surface). The colours come from the tokens above; the model's stylesheet may not set them. */
.site-header,
.main-navigation,
.main-navigation ul ul {
	background-color: var(--phasma-color-background);
}
.main-navigation .main-nav ul li a {
	font-size: 13px;
}
.site-header .main-title a,
.site-header .main-title a:hover,
.site-header .site-description,
.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-items {
	color: var(--phasma-color-text);
}
@media (min-width: 769px) {
	.site-header .inside-header {
		flex-wrap: wrap;
		row-gap: 12px;
	}
	.site-header .inside-header > .main-navigation {
		flex-shrink: 0;
		max-width: 100%;
	}
	.main-navigation .main-nav ul li a {
		padding-left: 8px;
		padding-right: 8px;
	}
}
.site-header .header-image {
	max-height: 64px;
	width: auto;
}

/* Full-width sections — PLATFORM-OWNED (F-W37). A top-level .alignfull reaches the viewport
   edges; its content stays on the page's own column. The model's stylesheet may not move it. */
html,
body {
	overflow-x: clip;
}
.no-sidebar .entry-content > .alignfull {
	box-sizing: border-box;
	width: auto;
	max-width: 100vw;
	margin: 0 calc(50% - 50vw);
	padding-left: calc(50vw - 50%);
	padding-right: calc(50vw - 50%);
}
.no-sidebar .entry-content > .wp-block-group.alignfull.has-background {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top: var(--phasma-space-5, 48px);
	padding-bottom: var(--phasma-space-5, 48px);
}
.no-sidebar .entry-content > .wp-block-group.alignfull > .wp-block-group__inner-container {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}
.entry-content .wp-block-cover:not(.has-text-color) {
	color: #fff;
}
.entry-content .wp-block-cover.is-light:not(.has-text-color) {
	color: #000;
}
.entry-content .wp-block-group.has-text-color :is(h1, h2, h3, h4, h5, h6, p, li, label, legend),
.entry-content .wp-block-cover:not(.has-text-color)
	:is(h1, h2, h3, h4, h5, h6, p, li, label, legend) {
	color: inherit;
}
.entry-content .wp-block-group.has-text-color a:not(.wp-block-button__link),
.entry-content .wp-block-cover:not(.has-text-color) a:not(.wp-block-button__link) {
	color: inherit;
	text-decoration: underline;
}
.separate-containers .inside-article:has(> .entry-content > .alignfull:first-child),
.one-container .site-content:has(.entry-content > .alignfull:first-child) {
	padding-top: 0;
}
.site-main:has(.entry-content > .alignfull:first-child) {
	margin-top: 0;
}
.site-content:has(.entry-content > .alignfull:first-child),
.entry-content:has(> .alignfull:first-child) {
	padding-top: 0;
}

/* Phasma: the converted footer (platform-owned, DD-TG3) — the source's own words in the brief's tokens. */
.site-footer .phasma-footer-chrome { background: var(--phasma-color-text, #111111); color: var(--phasma-color-on_dark, #e9e9e9); padding: 56px 24px 24px; text-align: left; }
.phasma-footer-chrome > * { max-width: var(--phasma-container-max, 1200px); margin-left: auto; margin-right: auto; }
.site-info:has(.phasma-footer-chrome) { padding: 0; background: var(--phasma-color-text, #111111); }
.site-info:has(.phasma-footer-chrome) .inside-site-info { max-width: none; padding: 0; display: block; }
.phasma-footer-chrome .wp-block-columns { gap: 32px; margin-bottom: 32px; }
.phasma-footer-chrome h2, .phasma-footer-chrome h3, .phasma-footer-chrome h4 { color: #ffffff; font-size: 18px; margin: 0 0 12px; }
.phasma-footer-chrome p, .phasma-footer-chrome li { color: inherit; font-size: 15px; }
.phasma-footer-chrome a { color: inherit; text-decoration: none; }
.phasma-footer-chrome a:hover, .phasma-footer-chrome a:focus-visible { text-decoration: underline; }
.phasma-footer-chrome ul { list-style: none; padding-left: 0; }
.phasma-footer-chrome img { max-width: 100%; height: auto; }
.phasma-footer-chrome > p:last-child { text-align: center; font-size: 13px; margin-top: 8px; }
.phasma-footer-chrome ul:has(a[href*="facebook.com"]),
.phasma-footer-chrome ul:has(a[href*="twitter.com"]),
.phasma-footer-chrome ul:has(a[href*="x.com"]),
.phasma-footer-chrome ul:has(a[href*="instagram.com"]),
.phasma-footer-chrome ul:has(a[href*="youtube.com"]),
.phasma-footer-chrome ul:has(a[href*="linkedin.com"]) { display: flex; flex-wrap: wrap; gap: 8px; }
.phasma-footer-chrome a[href*="facebook.com"],
.phasma-footer-chrome a[href*="twitter.com"],
.phasma-footer-chrome a[href*="x.com"],
.phasma-footer-chrome a[href*="instagram.com"],
.phasma-footer-chrome a[href*="youtube.com"],
.phasma-footer-chrome a[href*="linkedin.com"] { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; font-size: 0; border-radius: 50%; background: var(--phasma-color-primary, #8e010a); color: #ffffff; }}
.phasma-footer-chrome a[href*="facebook.com"]::before,
.phasma-footer-chrome a[href*="twitter.com"]::before,
.phasma-footer-chrome a[href*="x.com"]::before,
.phasma-footer-chrome a[href*="instagram.com"]::before,
.phasma-footer-chrome a[href*="youtube.com"]::before,
.phasma-footer-chrome a[href*="linkedin.com"]::before { content: ''; display: block; width: 20px; height: 20px; background: currentColor; -webkit-mask: center / contain no-repeat; mask: center / contain no-repeat; }
.phasma-footer-chrome a[href*="facebook.com"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M14 8h3V4h-3c-2.8 0-5 2.2-5 5v2H7v4h2v9h4v-9h3l1-4h-4V9c0-.6.4-1 1-1z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M14 8h3V4h-3c-2.8 0-5 2.2-5 5v2H7v4h2v9h4v-9h3l1-4h-4V9c0-.6.4-1 1-1z'/%3E%3C/svg%3E"); }
.phasma-footer-chrome a[href*="twitter.com"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M3 3h4.5l4.2 5.8L16.8 3H21l-7.2 8.3L21.5 21H17l-4.6-6.3L7 21H2.8l7.6-8.7z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M3 3h4.5l4.2 5.8L16.8 3H21l-7.2 8.3L21.5 21H17l-4.6-6.3L7 21H2.8l7.6-8.7z'/%3E%3C/svg%3E"); }
.phasma-footer-chrome a[href*="x.com"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M3 3h4.5l4.2 5.8L16.8 3H21l-7.2 8.3L21.5 21H17l-4.6-6.3L7 21H2.8l7.6-8.7z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M3 3h4.5l4.2 5.8L16.8 3H21l-7.2 8.3L21.5 21H17l-4.6-6.3L7 21H2.8l7.6-8.7z'/%3E%3C/svg%3E"); }
.phasma-footer-chrome a[href*="instagram.com"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M7 2h10a5 5 0 0 1 5 5v10a5 5 0 0 1-5 5H7a5 5 0 0 1-5-5V7a5 5 0 0 1 5-5zm0 2a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3zm5 3.5a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM17.5 5.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M7 2h10a5 5 0 0 1 5 5v10a5 5 0 0 1-5 5H7a5 5 0 0 1-5-5V7a5 5 0 0 1 5-5zm0 2a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3zm5 3.5a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM17.5 5.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2z'/%3E%3C/svg%3E"); }
.phasma-footer-chrome a[href*="youtube.com"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M23 7.2a3 3 0 0 0-2.1-2.1C19 4.6 12 4.6 12 4.6s-7 0-8.9.5A3 3 0 0 0 1 7.2 31 31 0 0 0 .5 12a31 31 0 0 0 .5 4.8 3 3 0 0 0 2.1 2.1c1.9.5 8.9.5 8.9.5s7 0 8.9-.5a3 3 0 0 0 2.1-2.1 31 31 0 0 0 .5-4.8 31 31 0 0 0-.5-4.8zM9.8 15.1V8.9L15.2 12z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M23 7.2a3 3 0 0 0-2.1-2.1C19 4.6 12 4.6 12 4.6s-7 0-8.9.5A3 3 0 0 0 1 7.2 31 31 0 0 0 .5 12a31 31 0 0 0 .5 4.8 3 3 0 0 0 2.1 2.1c1.9.5 8.9.5 8.9.5s7 0 8.9-.5a3 3 0 0 0 2.1-2.1 31 31 0 0 0 .5-4.8 31 31 0 0 0-.5-4.8zM9.8 15.1V8.9L15.2 12z'/%3E%3C/svg%3E"); }
.phasma-footer-chrome a[href*="linkedin.com"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM3 9h4v12H3zm7 0h3.8v1.7h.1c.5-1 1.8-2 3.8-2 4 0 4.8 2.6 4.8 6V21h-4v-5.6c0-1.3 0-3-1.9-3s-2.1 1.4-2.1 2.9V21h-4z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM3 9h4v12H3zm7 0h3.8v1.7h.1c.5-1 1.8-2 3.8-2 4 0 4.8 2.6 4.8 6V21h-4v-5.6c0-1.3 0-3-1.9-3s-2.1 1.4-2.1 2.9V21h-4z'/%3E%3C/svg%3E"); }
@media (max-width: 781px) { .phasma-footer-chrome .wp-block-columns { flex-direction: column; } }

/* Pricing cards — PLATFORM-OWNED (R-TG5): converted cards in the brief's tokens. */
.entry-content .phasma-pricing-card { display: flex; flex-direction: column; height: 100%; box-sizing: border-box; margin: 0; text-align: center; padding: var(--phasma-space-6, 32px) var(--phasma-space-5, 24px); background: var(--phasma-color-background, #ffffff); color: var(--phasma-color-text, #1a1a1a); border: var(--phasma-card-border, 1px solid var(--phasma-color-border, #e5e5e5)); border-radius: var(--phasma-card-radius, 8px); box-shadow: var(--phasma-card-shadow, none); }
.entry-content .phasma-pricing-card > .wp-block-group__inner-container { display: flex; flex-direction: column; flex: 1 1 auto; box-sizing: border-box; width: 100%; max-width: none; margin: 0; padding: 0; }
.entry-content .phasma-pricing-card :is(h1, h2, h3, h4, h5, h6, p, ul) { margin: 0 0 var(--phasma-space-4, 16px); }
.entry-content .phasma-pricing-card .phasma-price { line-height: 1.1; }
.phasma-pricing-card .phasma-price__amount { font-size: var(--phasma-size-h2, 40px); font-weight: 700; color: var(--phasma-color-primary, #111111); }
.phasma-pricing-card .phasma-price__period { margin-left: 4px; font-size: var(--phasma-size-small, 14px); color: var(--phasma-color-muted, #5b6874); }
.entry-content .phasma-pricing-card ul { list-style: none; padding-left: 0; }
.entry-content .phasma-pricing-card .wp-block-buttons { display: flex; justify-content: center; margin: auto 0 0; padding: 0; }

/* Buttons — PLATFORM-OWNED (components.button). The metrics come from the tokens above; the model's stylesheet may not set them. */
.wp-block-button__link,
.wp-element-button,
.phasma-btn,
input[type="submit"],
a.wp-block-button__link:not(.has-background) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--phasma-btn-radius);
	padding: var(--phasma-btn-pad-y) var(--phasma-btn-pad-x);
	min-height: var(--phasma-btn-min-height);
	font-size: var(--phasma-btn-font);
	font-weight: var(--phasma-btn-weight);
	text-transform: var(--phasma-btn-transform);
	text-decoration: none;
	line-height: 1.2;
	background-color: var(--phasma-color-primary);
	border: 0;
	color: var(--phasma-color-on-primary);
}
.wp-block-button.is-style-outline > .wp-block-button__link,
.phasma-btn--secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--phasma-btn2-radius);
	padding: var(--phasma-btn2-pad-y) var(--phasma-btn2-pad-x);
	min-height: var(--phasma-btn2-min-height);
	font-size: var(--phasma-btn2-font);
	font-weight: var(--phasma-btn2-weight);
	text-transform: var(--phasma-btn2-transform);
	text-decoration: none;
	line-height: 1.2;
	background-color: transparent;
	border: 2px solid var(--phasma-color-secondary);
	color: var(--phasma-color-secondary);
}
.wp-block-button__link:focus-visible,
.wp-element-button:focus-visible,
.phasma-btn:focus-visible,
input[type="submit"]:focus-visible,
a:focus-visible {
	outline: var(--phasma-focus-ring) solid var(--phasma-color-secondary);
	outline-offset: 2px;
}

/* Section bands — PLATFORM-OWNED (layout.section_pad, tokens.surface_alt). */
.phasma-band {
	padding-top: var(--phasma-space-section);
	padding-bottom: var(--phasma-space-section);
}
.phasma-band--alt {
	background-color: var(--phasma-color-surface_alt);
	color: var(--phasma-color-text);
}

/* Page title — PLATFORM-OWNED (the h1 role). */
.entry-header h1.entry-title {
	font-size: var(--phasma-size-h1);
	line-height: var(--phasma-line-h1);
	font-weight: var(--phasma-weight-h1);
	font-family: var(--phasma-family-h1), sans-serif;
}

/* Page banner — PLATFORM-OWNED (the source's title strip; the h1 role, on_dark). */
.phasma-banner {
	position: relative;
	background-color: var(--phasma-color-text, #1a1a1a);
	background-size: cover;
	background-position: center;
	color: var(--phasma-color-on_dark, #ffffff);
}
.phasma-banner::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}
.phasma-banner__inner {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--phasma-space-section, 48px) 20px;
	min-height: 308px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-align: center;
}
.phasma-banner__title {
	margin: 0;
	color: var(--phasma-color-on_dark, #ffffff);
	font-size: var(--phasma-size-h1);
	line-height: var(--phasma-line-h1);
	font-weight: var(--phasma-weight-h1);
	font-family: var(--phasma-family-h1), sans-serif;
}
.phasma-banner__trail {
	margin-top: 12px;
	font-size: 14px;
	opacity: 0.85;
}
.phasma-banner__trail a {
	color: var(--phasma-color-on_dark, #ffffff);
	text-decoration: none;
}
.phasma-banner__trail span + span::before {
	content: "\203A";
	margin: 0 8px;
}
@media (max-width: 782px) {
	.phasma-banner__inner {
		min-height: 154px;
	}
}

/* Phasma sections: the section library's tokens, answered by this theme's. */
html:root {
	--pd-color-accent: var(--phasma-color-accent);
	--pd-color-border: var(--phasma-color-border);
	--pd-color-muted: var(--phasma-color-muted);
	--pd-color-on-dark: var(--phasma-color-on_dark);
	--pd-color-on-secondary: var(--phasma-color-on-secondary);
	--pd-color-primary: var(--phasma-color-primary);
	--pd-color-secondary: var(--phasma-color-secondary);
	--pd-color-surface: var(--phasma-color-background);
	--pd-color-surface-alt: var(--phasma-color-surface_alt);
	--pd-color-text: var(--phasma-color-text);
	--pd-color-text-muted: var(--phasma-color-muted);
	--pd-container-max-width: var(--phasma-container-max);
	--pd-font-body: var(--phasma-font-body), sans-serif;
	--pd-font-heading: var(--phasma-font-heading), sans-serif;
	--pd-radius-lg: var(--phasma-card-radius);
	--pd-radius-sm: var(--phasma-btn-radius);
	--phasma-header-h-compact: 76px;
}
