/*
Theme Name: Generic Child Theme
Template: seeko
Version: 1.0.3
*/


/* 1. SECTION: Header */
/* Header */

/* 1.1 Header login button — white bg + gold border variant (S58) */
/* Header Login Button Styles — AMENDMENT S58: white bg + gold border + gold text
   (Rob's direction 2026-04-14). Replaces previous gold-bg/blue-text variant. */
/* 1.1.1 Header login button base (white bg + gold border + gold text) */
.header-login-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    font-family: "Montserrat", Sans-serif;
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.2;
    text-transform: uppercase;
    padding: 0.2rem 1.25rem;
    border-radius: 2rem;
    background-color: #FFFFFF !important;
    color: #CC9900 !important;
    border: 1px solid #CC9900 !important;
    border-bottom-width: 2px !important;
    outline: none;
    box-shadow: 0 2px 4px rgba(3, 27, 131, 0.12);
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease, color 0.3s ease;
}
/* end of 1.1.1 */

/* 1.1.2 Logged-in variant — natural-case text */
.header-login-btn.logged-in {
    text-transform: none; /* Natural case for "Hi, Name" */
}
/* end of 1.1.2 */

/* 1.1.3 Login button icon container */
.header-login-btn .login-icon {
    margin-right: 8px;
    display: inline-flex;
    align-items: center;
    height: 1em;
    vertical-align: middle;
}
/* end of 1.1.3 */

/* 1.1.4 Login button icon svg sizing */
.header-login-btn .login-icon svg {
    width: 1em;
    height: 1em;
    vertical-align: middle;
    position: relative;
    top: -1px;
}
/* end of 1.1.4 */

/* 1.1.5 Login button hover (scale + invert to gold bg + navy text) */
.header-login-btn:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 12px rgba(2, 22, 106, 0.4);
    background-color: #FFD700 !important;
    color: #031B83 !important;
    text-decoration: none !important;
}
/* end of 1.1.5 */
/* end of 1.1 */

/* 1.2 Unified header logout + logged-in dashboard button sizing (S58) */
/* AMENDMENT S58 2026-04-14: Unified header button sizing — LOGOUT + DASHBOARD must
   be visually identical. Previous rogue .header-logout-btn block (font-size 0.85rem,
   padding 0.2rem 0.8rem) made LOGOUT smaller than DASHBOARD. This replaces it with
   a combined rule targeting BOTH .header-logout-btn and .header-login-btn.logged-in
   so they share every dimension-related property. Colour is inherited from the
   base .header-login-btn rule above (gold bg + navy text). */
/* 1.2.1 Logout + dashboard buttons — unified sizing/colour base */
.header-logout-btn,
.header-login-btn.logged-in {
    background-color: #CC9900 !important;
    color: #031B83 !important;
    border: none !important;
    font-family: Montserrat, sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.9rem !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
    padding: 0.4rem 1.1rem !important;
    min-width: 185px !important;
    line-height: 1.2 !important;
    text-align: center !important;
    border-radius: 9999px !important;
    margin: 0 4px !important;
    text-decoration: none !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.08) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
/* end of 1.2.1 */

/* 1.2.2 Logout + dashboard buttons — D055 invert hover */
.header-logout-btn:hover,
.header-login-btn.logged-in:hover {
    /* S73 T-FU-S73-01 2026-04-20 — D055 invert fix: was #FFD700 (non-brand yellow) + navy kept;
       now proper invert navy bg + gold text to match all other D055 hovers site-wide. */
    background-color: #031B83 !important;
    color: #CC9900 !important;
    box-shadow: 0 6px 12px rgba(2, 22, 106, 0.4) !important;
    transform: scale(1.05);
    text-decoration: none !important;
}
/* end of 1.2.2 */

/* 1.2.3 Logout + dashboard buttons — icon stroke colour */
.header-logout-btn .login-icon svg,
.header-login-btn.logged-in .login-icon svg {
    stroke: #031B83;
}
/* end of 1.2.3 */
/* end of 1.2 */
/* end of 1 */


/* 2. SECTION: Pricing Page */
/* Pricing Page */


/* 2.1 Pricing card base gradients + text colours per tier */
/* Pricing cards — base blue style (Free, Premium, Venue) */
/* 2.1.1 Default pricing card — blue gradient */
.pricing-card {
    background-image: linear-gradient(45deg, #031B83 0%, #00CCFF 100%) !important;
}
/* end of 2.1.1 */

/* 2.1.2 Default pricing card descendants — gold text */
.pricing-card * {
    color: #CC9900 !important;
}
/* end of 2.1.2 */

/* 2.1.3 Standard + Organiser cards — gold gradient */
/* Gold style — Standard & Organiser */
.pricing-card.pricing-basic,
.pricing-card.pricing-pro {
    background-image: linear-gradient(45deg, #CC9900 0%, #FFD700 100%) !important;
}
/* end of 2.1.3 */

/* 2.1.4 Standard + Organiser descendants — blue text */
.pricing-card.pricing-basic *,
.pricing-card.pricing-pro * {
    color: #031B83 !important;
}
/* end of 2.1.4 */

/* 2.1.5 Premium card — blue gradient (matches default) */
/* Blue style — Premium (same as Free/Venue base) */
.pricing-card.pricing-intermediate {
    background-image: linear-gradient(45deg, #031B83 0%, #00CCFF 100%) !important;
}
/* end of 2.1.5 */

/* 2.1.6 Premium card descendants — gold text */
.pricing-card.pricing-intermediate * {
    color: #CC9900 !important;
}
/* end of 2.1.6 */

/* 2.1.7 Blue cards — gold pricing titles (PMPro override) */
/* Force gold titles on blue cards — override PMPro h3 !important from functions.php */
.pricing-card .pricing-title,
.pricing-card h3.pricing-title,
#pmpro_form .pricing-card .pricing-title,
.pmpro_checkout .pricing-card .pricing-title {
    color: #CC9900 !important;
}
/* end of 2.1.7 */

/* 2.1.8 Gold cards — blue pricing titles (PMPro override) */
/* Standard & Organiser (gold cards) — titles stay blue */
.pricing-card.pricing-basic .pricing-title,
.pricing-card.pricing-pro .pricing-title,
#pmpro_form .pricing-card.pricing-basic .pricing-title,
#pmpro_form .pricing-card.pricing-pro .pricing-title,
.pmpro_checkout .pricing-card.pricing-basic .pricing-title,
.pmpro_checkout .pricing-card.pricing-pro .pricing-title {
    color: #031B83 !important;
}
/* end of 2.1.8 */
/* end of 2.1 */
/* <!-- AMENDMENT v2.4 (2026-04-04): Complete pricing card overhaul — compact, no animations, uniform height --> */

/* 2.2 Kill pricing animations (Seeko hover + Elementor entrance) */
/* Kill ALL pricing animations — Seeko theme hover, Elementor entrance, everything */
/* 2.2.1 Kill all transitions/animations across pricing card subtree */
.pricing-card,
.pricing-card *,
.pricing-card .pricing-price,
.pricing-card .pricing-price strong,
.pricing-card .pricing-price strong > span,
.pricing-card .pricing-price > span,
.pricing-card h4.pricing-price,
.pricing-card .btn-pricing,
.pricing-card .btn-pricing .btn,
.pricing-card .btn-pricing a.btn {
    transition: none !important;
    animation: none !important;
}
/* end of 2.2.1 */

/* 2.2.2 Kill Elementor fadeInUp entrance on pricing-card wrappers */
/* Kill Elementor fadeInUp entrance animation on pricing card widget wrappers */
.elementor-widget:has(.pricing-card),
.elementor-element:has(.pricing-card) {
    animation: none !important;
    animation-duration: 0s !important;
    animation-delay: 0s !important;
    transition: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}
/* end of 2.2.2 */

/* 2.2.3 Force Elementor invisible-state visible on pricing-card */
.elementor-invisible:has(.pricing-card) {
    visibility: visible !important;
    opacity: 1 !important;
}
/* end of 2.2.3 */

/* 2.2.4 Kill .animated/.fadeInUp class animations on pricing-card */
.animated:has(.pricing-card),
.fadeInUp:has(.pricing-card) {
    animation: none !important;
    animation-duration: 0s !important;
}
/* end of 2.2.4 */
/* end of 2.2 */

/* 2.3 Compact card base + title */
/* Compact card base — override Seeko's bloated 2rem padding */
/* 2.3.1 Pricing card flex column + tight padding */
.pricing-card {
    display: flex !important;
    flex-direction: column !important;
    padding: 1rem 1.25rem !important;
    margin-bottom: 0 !important;
}
/* end of 2.3.1 */

/* 2.3.2 Compact pricing title */
/* Compact title — override Seeko's 1rem padding + 27px margin */
.pricing-card .pricing-title {
    padding: 0.4rem 0 !important;
    margin-bottom: 0.5rem !important;
    font-size: 1.5rem !important;
    line-height: 1.3 !important;
}
/* end of 2.3.2 */

/* 2.3.3 Popular card — top margin reset */
.pricing-popular.pricing-card {
    margin-top: 0;
}
/* end of 2.3.3 */

/* 2.3.4 Popular card title divider spacing */
.pricing-popular.pricing-card .pricing-title::after {
    margin-top: 0.3rem !important;
}
/* end of 2.3.4 */
/* end of 2.3 */

/* 2.4 Compact feature list + description */
/* Compact feature list */
/* 2.4.1 Pricing-features list container */
.pricing-card .pricing-features {
    margin-bottom: 0.5rem !important;
    padding: 0 !important;
}
/* end of 2.4.1 */

/* 2.4.2 Pricing-features list items */
.pricing-card .pricing-features li {
    padding: 0.15rem 0 !important;
    margin: 0 !important;
    font-size: 0.9rem !important;
    line-height: 1.4 !important;
}
/* end of 2.4.2 */

/* 2.4.3 Pricing description block compacted */
/* Compact description */
.pricing-card .pricing-desc {
    margin-bottom: 0.25rem !important;
    max-height: none !important;
}
/* end of 2.4.3 */
/* end of 2.4 */

/* 2.5 Compact price layout */
/* Compact price — override Seeko's padding and flex layout */
/* 2.5.1 Compact price block (padding + margin) */
.pricing-card .pricing-price,
.pricing-card h4.pricing-price {
    padding: 0.4rem 0 !important;
    margin-bottom: 0.5rem !important;
}
/* end of 2.5.1 */
/* end of 2.5 */

/* 2.6 Force price subscription text to always show */
/* Force price subscription text ("per Month") to always show — Seeko hides it */
/* 2.6.1 Pricing-price direct span — block + visible */
.pricing-card .pricing-price > span {
    height: auto !important;
    overflow: visible !important;
    opacity: 1 !important;
    max-width: none !important;
    display: block !important;
}
/* end of 2.6.1 */

/* 2.6.2 Pricing-price strong > span — visibility unlock */
.pricing-card .pricing-price strong > span {
    max-width: none !important;
    opacity: 1 !important;
    overflow: visible !important;
}
/* end of 2.6.2 */
/* end of 2.6 */

/* 2.7 Force pricing button to always show (override Seeko hover-reveal) */
/* Force button to always show — override Seeko's height:0 hover-reveal mechanism */
/* 2.7.1 Pricing button container always-visible base */
.pricing-card .btn-pricing {
    height: auto !important;
    overflow: visible !important;
    margin-top: auto !important;
    padding: 0 !important;
}
/* end of 2.7.1 */

/* 2.7.2 Pricing button container hover (kill Seeko outline + size) */
.pricing-card .btn-pricing:hover {
    border: none !important;
    outline: none !important;
    height: auto !important;
}
/* end of 2.7.2 */
/* end of 2.7 */



/* 2.8 Pricing card buttons — opposing colours per tier */
/* Button Opposing Colors Per Card — gold button on blue cards, blue button on gold cards */
/* 2.8.1 Blue cards (default + Premium) — gold button base */
.pricing-card .btn-pricing a.btn,
.pricing-card.pricing-intermediate .btn-pricing a.btn {
    background: linear-gradient(-135deg, #FFD700 5%, #CC9900 50%) !important;
    border-radius: 0.43rem !important;
    opacity: 1 !important;
    color: #031B83 !important;
    display: block !important;
    width: 100% !important;
    border: none !important;
}
/* end of 2.8.1 */

/* 2.8.2 Blue cards — gold button hover */
.pricing-card .btn-pricing a.btn:hover,
.pricing-card.pricing-intermediate .btn-pricing a.btn:hover {
    background: linear-gradient(225deg, #FFD700 50%, #CC9900 100%) !important;
    color: black !important;
}
/* end of 2.8.2 */

/* 2.8.3 Gold cards (Standard + Organiser) — blue button base */
.pricing-card.pricing-basic .btn-pricing a.btn,
.pricing-card.pricing-pro .btn-pricing a.btn {
    background: linear-gradient(-135deg, #00CCFF 5%, #031B83 50%) !important;
    border-radius: 0.43rem !important;
    opacity: 1 !important;
    color: #CC9900 !important;
    display: block !important;
    width: 100% !important;
    border: none !important;
}
/* end of 2.8.3 */

/* 2.8.4 Gold cards — blue button hover */
.pricing-card.pricing-basic .btn-pricing a.btn:hover,
.pricing-card.pricing-pro .btn-pricing a.btn:hover {
    background: linear-gradient(225deg, #00CCFF 50%, #031B83 100%) !important;
    color: black !important;
}
/* end of 2.8.4 */
/* end of 2.8 */
/* end of 2 */







/* 3. SECTION: Profile Page */
/* Profile Page */

/* 3.1 Remove breadcrumbs from profile page */
/* Remove breadcrumbs from profile page */
.svq-breadcrumb { display: none; }
/* end of 3 */


/* 4. SECTION: Media & rtMedia (upload, gallery, notifications) */
/* 4.1 Generic rtMedia uploader div + buttons */
/* Generic Media Upload and Gallery Styles */
/* 4.1.1 rtMedia uploader container */
.rtmedia-uploader-div {
    background-color: #FAFAFA;
    border: 2px solid #031B83;
    border-radius: 0.43rem;
    padding: 1rem;
}
/* end of 4.1.1 */

/* 4.1.2 rtMedia uploader file-input + button base */
.rtmedia-uploader-div .rtm-file-input,
.rtmedia-uploader-div button {
    font-family: "Montserrat", sans-serif !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    border-radius: 0.43rem !important;
    padding: 0.25rem 1rem !important;
    box-shadow: 0 12px 20px -16px rgba(2, 22, 106, 0.6) !important;
    background-color: #031B83 !important;
    color: #FAFAFA !important;
    transition: transform 0.4s ease-in-out !important;
}
/* end of 4.1.2 */
/* end of 4.1 */

/* 4.2 rtMedia uploader button hover (hover-capable vs touch split) */
/* P2.33b — only apply hover scale on real hover devices to prevent
   touch-tap overflow on phones/tablets.
   Phase 2a S65: background-color lifted to base (identical across both media queries). */
/* 4.2.1 rtMedia uploader button base hover (background only) */
.rtmedia-uploader-div button:hover,
.rtmedia-uploader-div button.photo-limit-disabled:hover {
    background-color: #002060 !important;
}
/* end of 4.2.1 */
/* 4.2.2 Hover-capable devices — apply scale */
@media (hover: hover) and (pointer: fine) {
    .rtmedia-uploader-div button:hover,
    .rtmedia-uploader-div button.photo-limit-disabled:hover {
        transform: scale(1.1) !important;
    }
}
/* end of 4.2.2 */
/* 4.2.3 Touch devices — suppress scale to prevent overflow */
@media (hover: none) {
    .rtmedia-uploader-div button:hover,
    .rtmedia-uploader-div button.photo-limit-disabled:hover {
        transform: none !important;
    }
}
/* end of 4.2.3 */

/* 4.2.4 Photo-limit-disabled button state */
.rtmedia-uploader-div button.photo-limit-disabled {
    background-color: #031B83 !important; /* Preserve base color when disabled */
    opacity: 0.7 !important;
    cursor: not-allowed !important;
}
/* end of 4.2.4 */
/* end of 4.2 */

/* 4.3 rtMedia container, list-item, thumbnail */
/* 4.3.1 rtMedia list container */
.rtmedia-container .rtmedia-list {
    border: 2px solid #CC9900;
    border-radius: 0.43rem;
    padding: 1rem;
    background-color: #FAFAFA;
    box-shadow: 0 2px 5px rgba(2, 22, 106, 0.2);
}
/* end of 4.3.1 */

/* 4.3.2 rtMedia list item */
.rtmedia-container .rtmedia-list-item {
    border-radius: 0.43rem;
    overflow: hidden;
    margin: 0.5rem;
}
/* end of 4.3.2 */

/* 4.3.3 rtMedia item thumbnail base */
.rtmedia-item-thumbnail img {
    border-radius: 0.43rem;
    box-shadow: 0 1px 3px rgba(2, 22, 106, 0.3);
    transition: transform 0.3s ease;
}
/* end of 4.3.3 */

/* 4.3.4 rtMedia item thumbnail hover */
.rtmedia-item-thumbnail img:hover {
    transform: scale(1.05);
}
/* end of 4.3.4 */
/* end of 4.3 */

/* 4.4 rtMedia item title typography */
.rtmedia-item-title h4 {
    font-family: "Montserrat", sans-serif;
    font-size: 1.25rem;
    color: #031B83;
    text-transform: uppercase;
    margin-top: 0.5rem;
}

/* 4.5 BuddyPress item-list tabs — brand navy */
#buddypress .item-list-tabs li a,
#buddypress .item-list-tabs li span {
    color: #031B83 !important;
}

/* 4.6 rtMedia options buttons */
/* 4.6.1 rtMedia options buttons base */
#rtm-media-options a,
#rtm-media-options button {
    background-color: #031B83 !important;
    color: #FAFAFA !important;
    border-radius: 0.43rem !important;
    padding: 0.25rem 1rem !important;
}
/* end of 4.6.1 */

/* 4.6.2 rtMedia options buttons hover */
#rtm-media-options a:hover,
#rtm-media-options button:hover {
    background-color: #002060 !important;
}
/* end of 4.6.2 */
/* end of 4.6 */

/* 4.7 rtMedia success/warning notifications */
/* rtMedia success/warning notifications — on brand */
/* 4.7.1 rtMedia success notification */
.rtmedia-success {
    background-color: #fff8e1 !important;
    color: #031B83 !important;
    border: 1px solid #CC9900 !important;
    border-bottom: 1px solid #CC9900 !important;
    border-radius: 6px !important;
    text-shadow: none !important;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 13px;
}
/* end of 4.7.1 */

/* 4.7.2 rtMedia warning notification */
.rtmedia-warning {
    background-color: #fff3cd !important;
    color: #856404 !important;
    border: 1px solid #CC9900 !important;
    border-bottom: 1px solid #CC9900 !important;
    border-radius: 6px !important;
    text-shadow: none !important;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 13px;
}
/* end of 4.7.2 */
/* end of 4.7 */
/* end of 4 */

/* 5. SECTION: Tablet header overrides (768–1024px) */
/* 5.1 Constraint documentation block */
/* Tablet top bar — show LOGOUT + DASHBOARD, hide email + social icons.

   KEY CONSTRAINTS (do not violate — each fixes a specific Elementor bug):

   1. Email + social widgets are COLLAPSED, not display:none. Using display:none
      triggers Elementor's frontend JS responsive-visibility system, which then
      re-evaluates sibling widget visibility and applies inline display:none to
      the shortcode widget (ddcd584) after page load. Collapsing to zero-size
      keeps them in the flex layout but invisible, so Elementor JS doesn't fire.

   2. Container 5eb96116 MUST be position:relative. Elementor sticky JS makes
      both 512ec1a5 (outer) and 5eb96116 (inner) position:fixed. When inner goes
      fixed, it pops out of 79b2e73 (navy bg), collapsing the navy bar. Forcing
      relative on inner keeps it inside the navy bg. The outer still handles sticky.

   3. Container 79b2e73 MUST be flex-direction:row. Elementor sets it to column
      at tablet breakpoint. Column + collapsed widgets = bloated height.

   4. Widget ddcd584 has --order:99999 set by Elementor (base rule, no MQ).
      Both the custom property AND the resolved order must be reset to 0,
      or the widget renders outside the visible flex area.

   5. ddcd584 itself needs display:flex forced, not just its child .elementor-shortcode.
      Elementor JS can set display:none as an inline style on the widget wrapper.
      The !important on the stylesheet rule beats a non-!important inline style.
      If Elementor ever adds !important to its inline style, we'd need a JS observer
      — but currently it sets bare inline display:none without !important.
*/
/* 5.2 Tablet-only media query — Elementor header fix-ups */
/* TABLET ONLY (768–1024px) — does NOT touch mobile (≤767px).
   Mobile header already works via Elementor's native responsive layout. */
@media (min-width: 768px) and (max-width: 1024px) {
    /* 5.2.1 Collapse email + social icons to zero size */
    /* Collapse email + social icons to zero size */
    .elementor-element-3e8df955,
    .elementor-element-c38eb63 {
        visibility: hidden !important;
        width: 0 !important; min-width: 0 !important; max-width: 0 !important;
        height: 0 !important; min-height: 0 !important; max-height: 0 !important;
        padding: 0 !important; margin: 0 !important; border: 0 !important; /* intentional: border:0 part of tablet-only collapse-to-zero; base has no border to drift — Phase 2a S65 */
        overflow: hidden !important; flex: 0 0 0px !important; opacity: 0 !important; /* intentional: tablet-only visual hide (paired with visibility:hidden); 1920/1280/360 must remain opacity 1 — Phase 2a S65 */
    }
    /* end of 5.2.1 */

    /* 5.2.2 Kill Elementor sticky spacer ghost on navy bar */
    /* Kill Elementor sticky spacer ghost — visibility:hidden still occupies flex space */
    .elementor-element-79b2e73 > .elementor-sticky__spacer {
        display: none !important;
    }
    /* end of 5.2.2 */

    /* 5.2.3 Sticky-rebuild flash mask (opacity transition) */
    /* Mask the flash when rtMedia triggers Elementor sticky rebuild —
       buttons briefly disappear then reappear as the observer fixes it.
       A short opacity transition smooths this so it's not a hard flash. */
    .elementor-element-5eb96116,
    .elementor-element-ddcd584 {
        transition: opacity 0.15s ease !important; /* intentional: tablet-only rebuild-flash mask; not needed at other viewports — Phase 2a S65 */
    }
    /* end of 5.2.3 */

    /* 5.2.4 Navy bar — row layout, centred, zero gap */
    /* Navy bar: row layout, slim, centre — zero the gap so spacer remnants can't split */
    .elementor-element-79b2e73 {
        flex-direction: row !important; --flex-direction: row !important;
        justify-content: center !important; --justify-content: center !important;
        align-items: center !important; --align-items: center !important;
        min-height: 0 !important; padding: 0 !important; overflow: hidden !important;
        gap: 0px !important; --row-gap: 0px !important; --column-gap: 0px !important; --gap: 0px !important;
    }
    /* end of 5.2.4 */

    /* 5.2.5 Inner top-bar container — full-width centred flex */
    /* Inner top-bar container: in flow, full width, centred.
       flex: 1 1 100% is critical — without it, flex-grow:0 shrinks to content width (367px). */
    .elementor-element-5eb96116 {
        position: relative !important;
        justify-content: center !important; --justify-content: center !important;
        padding: 10px 0 !important;
        width: 100% !important; --width: 100% !important; max-width: 100% !important;
        flex: 1 1 100% !important;
    }
    /* end of 5.2.5 */

    /* 5.2.6 Shortcode widget — force flex centre with reset order */
    /* Shortcode widget: force FLEX (not block), centre, reset order.
       text-align:center is the fallback if display reverts to block. */
    .elementor-element-ddcd584 {
        display: flex !important;
        order: 0 !important; --order: 0 !important;
        flex: 1 1 100% !important;
        justify-content: center !important; --justify-content: center !important;
        text-align: center !important;
        width: 100% !important; height: auto !important;
        overflow: visible !important;
    }
    /* end of 5.2.6 */

    /* 5.2.7 Shortcode child — flex centred row with gap */
    /* .elementor-shortcode is the DIRECT child — .elementor-widget-container does NOT exist here */
    .elementor-element-ddcd584 > .elementor-shortcode {
        display: flex !important; justify-content: center !important; width: 100% !important; gap: 10px; text-align: center !important;
    }
    /* end of 5.2.7 */

    /* 5.2.8 Logo + hamburger inset on tablet */
    /* Bring logo + hamburger in from edges — proportional to desktop (210/1280 ≈ 16%) */
    .elementor-element-c49a54f {
        padding-left: 120px !important;
        padding-right: 120px !important;
    }
    /* end of 5.2.8 */

    /* 5.2.9 Kill admin-bar sticky offset on tablet */
    /* Kill admin-bar ghost offset */
    .elementor-element-512ec1a5.elementor-sticky--active {
        top: 0px !important;
    }
    /* end of 5.2.9 */

    /* 5.2.10 Hide admin bar on tablet */
    #wpadminbar { display: none !important; }
    /* end of 5.2.10 */

    /* 5.2.11 Cancel admin-bar html top margin on tablet */
    html { margin-top: 0 !important; }
    /* end of 5.2.11 */
}
/* end of 5.2 */

/* 5.3 SECTION: Hide social icons in navy header at ≤1080 */
/* Rob 2026-04-29 (S80): "From 1080 down, remove the social media icons from the
   top header." At 1025-1080 the social-icons widget squeezes the LOGOUT/DASHBOARD
   buttons too close to the centre — hide it. At 768-1024 it's already hidden by
   §5.2.1 (which also hides the email widget for tablet centred-shortcode layout).
   At ≤768 this rule continues to hide socials so mobile only shows the LOGOUT/
   DASHBOARD buttons (per Rob's mobile expectation). Email widget is unaffected. */
@media (max-width: 1080px) {
    /* 5.3.1 Collapse social icons widget to zero size */
    .elementor-element-c38eb63 {
        visibility: hidden !important;
        width: 0 !important;
        min-width: 0 !important;
        max-width: 0 !important;
        height: 0 !important;
        min-height: 0 !important;
        max-height: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        border: 0 !important;
        overflow: hidden !important;
        flex: 0 0 0px !important;
        opacity: 0 !important;
    }
    /* end of 5.3.1 */
}
/* end of 5.3 */
/* end of 5 */

/* 6. SECTION: Mobile header + rtMedia overrides (≤768px) */
@media (max-width: 768px) {
    /* 6.1 rtMedia list padding tightened on mobile */
    .rtmedia-container .rtmedia-list {
        padding: 0.75rem;
    }
    /* end of 6.1 */

    /* 6.2 rtMedia uploader buttons tightened on mobile */
    .rtmedia-uploader-div .rtm-file-input,
    .rtmedia-uploader-div button {
        padding: 0.2rem 0.8rem;
        font-size: 0.9rem;
    }
    /* end of 6.2 */

    /* 6.3 Mobile top-bar inner container centring */
    /* Centre the top bar on mobile with equal vertical padding */
    .elementor-element-5eb96116 {
        justify-content: center !important;
        padding: 10px 0 !important;
    }
    /* end of 6.3 */

    /* 6.4 Mobile shortcode widget — Logout + Dashboard side-by-side */
    /* Centre Logout + Dashboard buttons side-by-side on mobile */
    .elementor-element-ddcd584 .elementor-shortcode {
        display: flex !important;
        flex-direction: row !important;
        justify-content: center !important;
        gap: 10px;
    }
    /* end of 6.4 */

    /* 6.5 Mobile hamburger toggle alignment */
    /* Push hamburger menu toward the right on mobile — align with content inner edge */
    .elementor-element-73da155c .elementor-menu-toggle {
        margin: 0 15px 0 auto !important;
    }
    /* end of 6.5 */

    /* 6.6 Hide WP admin bar on mobile */
    /* Hide WP admin bar on mobile frontend — it's noise for a social site */
    #wpadminbar {
        display: none !important;
    }
    /* end of 6.6 */

    /* 6.7 Cancel admin-bar html top margin on mobile */
    html {
        margin-top: 0 !important;
    }
    /* end of 6.7 */
}
/* end of 6 */



/* 7. SECTION: Desktop header row (≥1025px) */
/* Desktop header row — equal padding pushes logo and nav inward symmetrically.
   100px per side on a ~1400px container leaves ~1200px for logo + nav. */
@media (min-width: 1025px) {
    .elementor-element-c49a54f {
        padding-left: 100px !important;
        padding-right: 100px !important;
    }
}
/* end of 7 */

/* 8. SECTION: BuddyPress profile navigation */
/* 8.1 Hide legacy BP profile tabs */
/* Hide old BuddyPress "Profile" tab — replaced by custom widget system */
#xprofile-personal-li {
    display: none !important;
}

/* 8.2 Hide "My Profile" customise tab */
/* Hide "My Profile" (customise) tab from nav — accessed via header Profile button instead */
#customise-personal-li {
    display: none !important;
}

/* 8.3 Uniform main nav position across profile tabs */
/* Uniform main nav position across tabs */
/* 8.3.1 Item-nav base positioning */
#item-body #item-nav {
    position: relative; /* Base relative */
}
/* end of 8.3.1 */

/* 8.3.2 Activity tab — taller item-nav offset */
.activity #item-body #item-nav {
    margin-top: 50px !important; /* Higher for activity/media */
}
/* end of 8.3.2 */

/* 8.3.3 Other profile tabs — shorter item-nav offset */
.profile #item-body #item-nav,
.notifications #item-body #item-nav,
.messages #item-body #item-nav,
.friends #item-body #item-nav,
.groups #item-body #item-nav,
.settings #item-body #item-nav {
    margin-top: 15px !important; /* Lower for other tabs; adjust to match */
}
/* end of 8.3.3 */

/* 8.4 Remove white background on all tabs */
/* Remove white background on all tabs */
#item-body,
#item-body .col-inner {
    background-color: transparent !important; /* Clear background */
}    
    
/* 8.5 Media tab — main nav + subnav offsets */
/* 8.5.1 Media tab — main nav offset */
/* Move main nav down on media tab */
.media #item-body #item-nav {
    margin-top: 50px !important; /* Push down; variant: 40px */
    position: relative;
}
/* end of 8.5.1 */

/* 8.5.2 Media tab — subnav offsets (rtmedia menu/uploader) */
/* Move subnav (rtmedia menu/uploader) down on media tab */
.media #subnav.item-list-tabs,
.media .rtm-media-type-list {
    margin-top: 30px !important; /* Push down; variant: 20px */
    padding-top: 10px; /* Extra space if needed */
}
/* end of 8.5.2 */

/* 8.6 Activity subnav offset fix for items with counts */
/* Fix activity subnav offset for items with counts */
.activity #subnav.item-list-tabs ul li a {
    display: flex;
    align-items: center;
}
/* end of 8 */





/* 9. SECTION: Blog Page */
/* Blog Page */

/* 9.1 Generic blog index styles (hide defaults, brand btn-tag, meta alignment) */
/* Generic blog index styles */
/* 9.1.1 Hide blog index entry titles */
.blog .entry-title {
    display: none !important;
}
/* end of 9.1.1 */

/* 9.1.2 Blog page entry-content top-spacing reset */
.page-id-[blog-page-id] .site-main .entry-content > *:first-child {
    margin-top: 0; /* Clean top spacing */
}
/* end of 9.1.2 */

/* 9.1.3 Hide Seeko blog intro block */
.blog .svq-blog-intro {
        display: none !important;
}
/* end of 9.1.3 */

/* 9.1.4 Hide author-wrapper */
.author-wrapper {
    display: none !important;
}
/* end of 9.1.4 */

/* 9.1.5 Hide entry-footer */
.entry-footer {
    display: none !important;
}
/* end of 9.1.5 */

/* 9.1.6 Hide post nav2 (next/prev) */
.nav2-post {
    display: none !important;
}
/* end of 9.1.6 */

/* 9.1.7 Brand btn-tag base colours */
.btn-tag {
    background-color: #CC9900;
    color: #031B83 !important; /* AMENDMENT S47: D055 brand rule */
}
/* end of 9.1.7 */

/* 9.1.8 Brand btn-tag hover */
.btn-tag:hover {
    background-color: #FFD700 !important;
    color: #031B83 !important;
}
/* end of 9.1.8 */

/* 9.1.9 Meta-category bottom margin */
.meta-category {
    margin-bottom: 2.5rem !important;
}
/* end of 9.1.9 */

/* 9.1.10 Entry-middle centred */
.entry-middle {
    text-align: center;
}
/* end of 9.1.10 */

/* 9.1.11 Meta-category centred (duplicate selector — paired with 9.1.9 for alignment override) */
.meta-category {
    text-align: center;
}
/* end of 9.1.11 */



/* 9.2 Blog cards — clean card design with brand accents */
/* Blog Cards — clean card design with brand accents */

/* Base card styles — white card, subtle shadow, gold accent border */
.post-card {
    background: #FFFFFF !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 8px rgba(3, 27, 131, 0.08) !important;
    padding: 0 !important;
    transition: box-shadow 0.25s ease, transform 0.25s ease !important;
    overflow: hidden !important;
    border: 1px solid rgba(3, 27, 131, 0.06) !important;
    background-image: none !important;
}

/* 9.3 Blog card hover lift */
/* Subtle lift on hover — no scale to prevent mobile overflow */
.post-card:hover {
    box-shadow: 0 6px 20px rgba(3, 27, 131, 0.12) !important;
    transform: translateY(-3px) !important;
    border-color: rgba(204, 153, 0, 0.3) !important;
}

/* 9.4 Blog card text colours + typography */
/* Text colors — navy headings, muted body */
.post-card * {
    color: #1A1A2E !important;
    font-family: "Nunito Sans", Sans-serif !important;
}
.post-card h2, .post-card h3, .post-card h4 {
    font-family: "Montserrat", Sans-serif !important;
    font-weight: 700 !important;
    color: #031B83 !important;
    line-height: 1.3 !important;
}

/* 9.5 Blog card category tag (gold pill) */
/* Category tag — gold pill */
.post-card .btn-tag,
.post-card .meta-category a {
    background: #CC9900 !important;
    color: #031B83 !important;
    border-radius: 9999px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    padding: 3px 12px !important;
}

/* 9.6 Blog card hero image */
/* Hero image — full width, cropped to ratio */
.aimg-card-hover img {
    border-radius: 12px 12px 0 0 !important;
    box-shadow: none !important;
    width: 100% !important;
    height: 200px !important;
    object-fit: cover !important;
}

/* 9.7 Gold accent bar at top of card */
/* Gold accent bar at top of card */
.post-card::before {
    content: '';
    display: block;
    height: 4px;
    background: linear-gradient(90deg, #CC9900 0%, #FFD700 100%);
}

/* No alternating backgrounds — consistent clean white cards */

/* 9.8 Entry content padding */
/* Entry content — comfortable padding */
.entry-content {
    padding: 1rem 1.25rem !important;
    margin: 0 !important;
}

/* 9.9 Seeko theme .btn-primary brand override (D055) */
/* D055 brand override: Seeko theme .btn-primary gold bg must use blue text */
.btn.btn-primary,
.btn.btn-primary:hover,
.btn.btn-primary:focus {
    color: #031B83 !important;
}
/* end of 9 */


/* 10. SECTION: Mobile responsive overrides — 360px floor */
/* ============================================================================
   MOBILE RESPONSIVE — 360px floor (Nothing Phone 3a)
   ============================================================================ */

/* 10.1 Mobile breakpoint (≤768px) — hover kills, full-bleed cards, overflow guards */
@media (max-width: 768px) {
    /* 10.1.1 Post-card hover lift reduced on touch */
    /* Kill all scale hover effects on touch — prevents horizontal overflow */
    .post-card:hover {
        transform: translateY(-2px) !important;
    }
    /* end of 10.1.1 */

    /* 10.1.2 rtMedia uploader button hover scale killed on touch */
    .rtmedia-uploader-div button:hover,
    .rtmedia-uploader-div button.photo-limit-disabled:hover {
        transform: none !important;
    }
    /* end of 10.1.2 */

    /* 10.1.3 rtMedia thumbnail hover scale killed on touch */
    .rtmedia-item-thumbnail img:hover {
        transform: none !important;
    }
    /* end of 10.1.3 */

    /* 10.1.4 Blog cards full-bleed + smaller radius on mobile */
    /* Blog cards — full bleed on mobile */
    .post-card {
        border-radius: 10px !important; /* intentional: mobile-only smaller radius (base is 12px per STYLING_GUIDE) — Phase 2a S65 */
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    /* end of 10.1.4 */

    /* 10.1.5 Blog card hero image height + radius on mobile */
    .aimg-card-hover img {
        height: 160px !important;
        border-radius: 10px 10px 0 0 !important; /* intentional: mobile-only radius matches parent .post-card 10px (base 12px 12px 0 0) — Phase 2a S65 */
    }
    /* end of 10.1.5 */

    /* 10.1.6 Entry-content padding tightened on mobile */
    .entry-content {
        padding: 0.75rem 1rem !important;
    }
    /* end of 10.1.6 */

    /* 10.1.7 Pricing cards full-bleed single-column on mobile */
    /* Pricing cards — single column, no overflow */
    .pricing-card {
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: 100% !important;
    }
    /* end of 10.1.7 */

    /* 10.1.8 Body horizontal-overflow guard */
    /* Prevent any element from exceeding viewport */
    body {
        overflow-x: hidden !important;
    }
    /* end of 10.1.8 */

    /* 10.1.9 Image fluid-size guard */
    /* Ensure images never exceed container */
    img {
        max-width: 100%;
        height: auto;
    }
    /* end of 10.1.9 */
}
/* end of 10.1 */

/* 10.2 Extra small viewport — 360px floor (≤400px) */
/* Extra small — 360px floor */
@media (max-width: 400px) {
    /* 10.2.1 Header buttons shrink in lockstep at extra-small */
    /* S58 2026-04-14: LOGOUT + DASHBOARD shrink together so they stay identical */
    .header-login-btn,
    .header-logout-btn,
    .header-login-btn.logged-in {
        font-size: 0.75rem !important;
        padding: 0.25rem 0.7rem !important;
        min-width: 0 !important;
    }
    /* end of 10.2.1 */

    /* 10.2.2 Post-card heading typography at extra-small */
    .post-card h2, .post-card h3, .post-card h4 {
        font-size: 1.1rem !important;
    }
    /* end of 10.2.2 */
}
/* end of 10.2 */

/* 10.3 Removed T230 mobile hamburger dropdown flattening (historical note) */
/* REMOVED: T230 mobile hamburger menu dropdown flattening (sub-arrow hiding,
   sub-menu inline, sub-item centering, text-indent compensation).
   Venues/Organisers are now top-level menu items — no dropdown sub-menus exist.
   Previously verified dropdown centering revoked as unnecessary. */
/* end of 10 */

