/**
 * Ottero — Crown Bridge Frontend CSS
 * Supports the Ottero-owned Crown Bridge shell and Elementor sections.
 */

html {
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    text-rendering: geometricPrecision;
    -webkit-font-smoothing: antialiased;
}

/* Suppress common theme / WordPress shell leakage */
.site-footer,
.site-info,
.powered-by-wordpress,
.wp-site-blocks > footer,
.wp-site-blocks > header,
.wp-block-template-part,
header.wp-block-template-part,
footer.wp-block-template-part,
footer.entry-footer,
.entry-footer,
.post-navigation,
.comments-area {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
}

/* Elementor content breathing room */
.elementor-page .site-main,
.elementor-page main,
.elementor-page .entry-content {
    margin: 0 !important;
    padding: 0 !important;
    max-width: none !important;
}

/* Premium section finishing */
.cb-template-hero {
    background-image:
        linear-gradient(135deg, rgba(13, 27, 42, 0.98), rgba(13, 27, 42, 0.88)),
        radial-gradient(circle at top right, rgba(194, 168, 120, 0.22), transparent 34%);
}

.cb-template-hero .cb-heading .elementor-heading-title {
    max-width: 980px;
    font-size: clamp(42px, 6vw, 82px);
}

.cb-heading .elementor-heading-title {
    max-width: 880px;
    font-size: clamp(34px, 4vw, 56px);
}

.cb-copy {
    max-width: 850px;
}

.cb-copy p {
    margin-bottom: 0;
}

.cb-template-cta {
    text-align: left;
}

.cb-template-cta .cb-heading .elementor-heading-title {
    max-width: 780px;
}

/* Form */
.cb-consultation-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-top: 34px;
    max-width: 940px;
}

.cb-consultation-form label {
    display: block;
    font-weight: 800;
    margin-bottom: 8px;
}

.cb-consultation-form input,
.cb-consultation-form select,
.cb-consultation-form textarea {
    width: 100%;
    border: 1px solid rgba(13, 27, 42, 0.18);
    padding: 14px 14px;
    border-radius: 12px;
    background: #fff;
    font: inherit;
    box-sizing: border-box;
}

.cb-consultation-form textarea {
    min-height: 140px;
}

.cb-form-wide {
    grid-column: 1 / -1;
}

.cb-consultation-form button {
    grid-column: 1 / -1;
    background: var(--cb-navy);
    color: #fff;
    border: 0;
    border-radius: 999px;
    padding: 15px 22px;
    font-weight: 800;
    cursor: pointer;
}

@media (max-width: 767px) {
    .cb-consultation-form {
        grid-template-columns: 1fr;
    }

    .cb-template-hero .cb-heading .elementor-heading-title {
        font-size: clamp(38px, 11vw, 54px);
    }
}

/* Crown Bridge mobile/tablet menu fix */
.ottero-cb-mobile-panel {
    max-height: calc(100vh - 76px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.ottero-cb-mobile-panel a {
    line-height: 1.35;
}

.ottero-cb-mobile-group-title {
    color: var(--cb-gold) !important;
    font-weight: 800;
    padding-top: 14px !important;
}

.ottero-cb-simple-menu {
    width: 360px !important;
    left: -80px !important;
    grid-template-columns: 1fr !important;
}

.ottero-cb-mega {
    width: 920px !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

@media (max-width: 1180px) {
    .ottero-cb-mobile-panel {
        position: fixed;
        top: 76px;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 9998;
    }
}

/* Larger mobile/tablet navigation */
@media (max-width: 1180px) {
    .ottero-cb-mobile-panel {
        padding: 28px 30px 42px !important;
        font-size: 18px !important;
    }

    .ottero-cb-mobile-panel a,
    .ottero-cb-mobile-panel strong {
        font-size: 18px !important;
        padding: 13px 0 !important;
    }

    .ottero-cb-mobile-panel strong {
        font-size: 13px !important;
        letter-spacing: 0.18em !important;
        margin-top: 18px !important;
    }

    .ottero-cb-mobile-group-title {
        font-size: 20px !important;
        font-weight: 800 !important;
    }

    .ottero-cb-mobile-cta {
        font-size: 17px !important;
        padding: 16px 20px !important;
        margin-top: 24px !important;
    }
}

@media (max-width: 767px) {
    .ottero-cb-mobile-panel {
        font-size: 17px !important;
        padding: 24px 24px 38px !important;
    }

    .ottero-cb-mobile-panel a,
    .ottero-cb-mobile-panel strong {
        font-size: 17px !important;
        padding: 12px 0 !important;
    }

    .ottero-cb-mobile-group-title {
        font-size: 19px !important;
    }
}

/* Crown Bridge logo */
.ottero-cb-logo {
    display: flex;
    align-items: center;
    min-width: 300px;
}

.ottero-cb-logo img {
    width: 320px;
    max-width: 100%;
    height: auto;
    display: block;
}

/* Desktop nav spacing */
.ottero-cb-nav {
    gap: 34px !important;
}

/* Tablet */
@media (max-width: 1180px) {
    .ottero-cb-logo {
        min-width: 220px;
    }

    .ottero-cb-logo img {
        width: 240px;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .ottero-cb-logo {
        min-width: 160px;
    }

    .ottero-cb-logo img {
        width: 180px;
    }
}

/* =========================================
   Crown Bridge — Header Redesign
========================================= */

.ottero-cb-header {
    background: #f8f5f0 !important;
    border-bottom: 1px solid rgba(15, 28, 43, 0.08);
    box-shadow: 0 2px 18px rgba(15, 28, 43, 0.04);
}

/* Main navigation links */
.ottero-cb-nav a,
.ottero-cb-dropdown-trigger {
    color: #0f1c2b !important;
    font-weight: 500;
    letter-spacing: 0.03em;
    transition: all 0.25s ease;
}

/* Hover */
.ottero-cb-nav a:hover,
.ottero-cb-dropdown-trigger:hover {
    color: #8f744a !important;
}

/* Dropdown menus */
.ottero-cb-dropdown-menu {
    background: #ffffff !important;
    border: 1px solid rgba(15, 28, 43, 0.08);
    box-shadow: 0 18px 60px rgba(15, 28, 43, 0.12);
}

/* Dropdown links */
.ottero-cb-dropdown-menu a {
    color: #0f1c2b !important;
}

.ottero-cb-dropdown-menu a:hover {
    color: #8f744a !important;
}

/* Group titles */
.ottero-cb-dropdown-group-title {
    color: #0f1c2b !important;
    font-weight: 700;
}

/* Mobile menu */
.ottero-cb-mobile-panel {
    background: #f8f5f0 !important;
}

.ottero-cb-mobile-panel a,
.ottero-cb-mobile-panel strong {
    color: #0f1c2b !important;
}

/* Mobile menu button */
.ottero-cb-mobile-toggle span {
    background: #0f1c2b !important;
}

/* Header spacing */
.ottero-cb-header-inner {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
}

/* =========================================
   Crown Bridge Typography System
========================================= */

/* CMU Serif */
@font-face {
    font-family: 'CMU Serif';
    src: url('/wp-content/mu-plugins/ottero-crownbridge/assets/fonts/cmunrm.woff') format('woff');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'CMU Serif';
    src: url('/wp-content/mu-plugins/ottero-crownbridge/assets/fonts/cmunbx.woff') format('woff');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'CMU Serif';
    src: url('/wp-content/mu-plugins/ottero-crownbridge/assets/fonts/cmunti.woff') format('woff');
    font-weight: 400;
    font-style: italic;
}

@font-face {
    font-family: 'CMU Serif';
    src: url('/wp-content/mu-plugins/ottero-crownbridge/assets/fonts/cmunbi.woff') format('woff');
    font-weight: 700;
    font-style: italic;
}

/* Perandory */
@font-face {
    font-family: 'Perandory';
    src: url('/wp-content/mu-plugins/ottero-crownbridge/assets/fonts/PerandorySemiCondensed.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
}

/* =========================================
   Global Typography
========================================= */

body,
.elementor-widget-text-editor,
.elementor-widget-heading p,
.elementor-widget-heading div,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li {
    font-family: 'CMU Serif', serif !important;
    color: #0f1c2b;
    line-height: 1.7;
    letter-spacing: 0.01em;
}

/* Headings */
h1,
h2,
h3,
h4,
h5,
h6,
.elementor-heading-title {
    font-family: 'CMU Serif', serif !important;
    color: #0f1c2b;
    font-weight: 700;
    letter-spacing: -0.015em;
}

/* Hero headings */
.cb-heading h1,
.cb-heading h2,
.cb-heading {
    line-height: 1.12;
}

/* Navigation */
.ottero-cb-nav a,
.ottero-cb-dropdown-trigger,
.ottero-cb-mobile-panel a,
.ottero-cb-mobile-panel strong {
    font-family: 'Perandory', serif !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Dropdown menus */
.ottero-cb-dropdown-menu a {
    font-family: 'CMU Serif', serif !important;
    text-transform: none !important;
    letter-spacing: 0.01em !important;
}

/* Elegant body sizing */
body {
    font-size: 17px;
}

p {
    margin-bottom: 1.2em;
}

/* Refined spacing */
.cb-section {
    padding-top: 110px !important;
    padding-bottom: 110px !important;
}

/* Luxury editorial rhythm */
.cb-copy {
    max-width: 760px;
}

/* Menu sizing */
.ottero-cb-nav {
    gap: 42px !important;
}

/* Menu item sizing */
.ottero-cb-nav > a,
.ottero-cb-dropdown-trigger {
    font-size: 14px !important;
}

/* Mobile menu sizing */
@media (max-width: 1180px) {
    .ottero-cb-mobile-panel a,
    .ottero-cb-mobile-panel strong {
        font-size: 18px !important;
    }
}

/* CrownCare toggle-only nav */
.ottero-cb-toggle-only {
    cursor: default;
    user-select: none;
}

/* =========================================
   CrownCare — Final Editorial Layout System
========================================= */

body {
    background: #f8f5f0 !important;
}

/* Global CrownCare section discipline */
.elementor .cb-section,
.elementor .e-con.cb-section,
.cb-section {
    padding-top: 28px !important;
    padding-bottom: 28px !important;
}

/* Hero: controlled private-advisory proportion */
.elementor .cb-template-hero,
.elementor .e-con.cb-template-hero,
.cb-template-hero {
    min-height: 390px !important;
    padding-top: 78px !important;
    padding-bottom: 72px !important;
    display: flex !important;
    justify-content: center !important;
}

/* Hero typography */
.cb-template-hero .elementor-heading-title {
    color: #ffffff !important;
}

.cb-template-hero h1.elementor-heading-title {
    font-size: clamp(46px, 4.6vw, 76px) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.025em !important;
    max-width: 980px !important;
}

.cb-template-hero h6.elementor-heading-title {
    color: #c2a878 !important;
    font-family: 'Perandory', serif !important;
    font-size: 15px !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    margin-bottom: 18px !important;
}

/* Hero subtitle */
.cb-template-hero .cb-copy,
.cb-template-hero .cb-copy p {
    color: #ffffff !important;
    font-size: 20px !important;
    line-height: 1.55 !important;
    max-width: 820px !important;
    margin-top: 20px !important;
}

/* Long-form editorial copy */
.cb-template-content {
    background: #ffffff !important;
}

.cb-template-content .cb-copy,
.cb-template-content .cb-copy p {
    max-width: 920px !important;
    font-size: 20px !important;
    line-height: 1.75 !important;
    color: #0f1c2b !important;
    margin: 0 auto !important;
}

/* Content headings as editorial dividers */
.cb-template-content .elementor-heading-title {
    max-width: 920px !important;
    margin: 0 auto 18px auto !important;
    color: #0f1c2b !important;
    font-size: clamp(34px, 3vw, 48px) !important;
    line-height: 1.12 !important;
}

/* Ivory doctrine panels */
.cb-section-ivory {
    background: #f8f5f0 !important;
}

.cb-section-ivory .cb-copy,
.cb-section-ivory .cb-copy p {
    color: #0f1c2b !important;
}

/* Cards become editorial memorandum panels */
.cb-template-cards {
    padding-top: 42px !important;
    padding-bottom: 42px !important;
}

.cb-card-grid {
    max-width: 1080px !important;
    margin: 24px auto 0 auto !important;
    gap: 20px !important;
}

.cb-card {
    background: #ffffff !important;
    border: 1px solid rgba(15, 28, 43, 0.12) !important;
    border-left: 3px solid #c2a878 !important;
    box-shadow: none !important;
    padding: 26px 28px !important;
    min-height: unset !important;
}

.cb-card h3 {
    color: #0f1c2b !important;
    font-size: 24px !important;
    line-height: 1.15 !important;
    margin-bottom: 12px !important;
}

.cb-card p {
    color: #0f1c2b !important;
    font-size: 17px !important;
    line-height: 1.65 !important;
}

/* Quote sections */
.cb-section-ivory.cb-template-content .cb-copy p {
    font-size: 24px !important;
    line-height: 1.5 !important;
    font-style: italic !important;
    text-align: center !important;
    max-width: 860px !important;
}

/* Remove excessive default Elementor inner spacing */
.e-con-inner {
    gap: 0 !important;
}

/* Header polish */
.ottero-cb-header-inner {
    min-height: 96px !important;
}

.ottero-cb-logo img {
    width: 360px !important;
}

/* Mobile */
@media (max-width: 767px) {
    .elementor .cb-section,
    .elementor .e-con.cb-section,
    .cb-section {
        padding-top: 24px !important;
        padding-bottom: 24px !important;
    }

    .cb-template-hero {
        min-height: 320px !important;
        padding-top: 58px !important;
        padding-bottom: 54px !important;
    }

    .cb-template-hero h1.elementor-heading-title {
        font-size: 42px !important;
    }

    .cb-template-content .cb-copy,
    .cb-template-content .cb-copy p {
        font-size: 17px !important;
        line-height: 1.65 !important;
    }

    .cb-card {
        padding: 22px !important;
    }

    .ottero-cb-logo img {
        width: 210px !important;
    }
}

/* Remove default theme site branding leakage */
header.site-header,
.site-header,
.site-branding,
.site-title,
.site-title a,
.site-description,
.wp-block-site-title,
.wp-block-site-tagline,
header .site-title,
header .site-description {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

/* =========================================
   CrownCare Hero Width Correction
========================================= */

.cb-template-hero .e-con-inner {
    max-width: 1480px !important;
    width: 100% !important;
}

.cb-template-hero h1.elementor-heading-title {
    max-width: 1400px !important;
    width: 100% !important;
    white-space: nowrap !important;
    font-size: clamp(64px, 5.4vw, 104px) !important;
    line-height: 0.98 !important;
    letter-spacing: -0.04em !important;
}

.cb-template-hero .cb-copy,
.cb-template-hero .cb-copy p {
    max-width: 1400px !important;
    white-space: nowrap !important;
    font-size: 24px !important;
}

/* Mobile fallback */
@media (max-width: 1100px) {

    .cb-template-hero h1.elementor-heading-title {
        white-space: normal !important;
        font-size: clamp(46px, 8vw, 72px) !important;
    }

    .cb-template-hero .cb-copy,
    .cb-template-hero .cb-copy p {
        white-space: normal !important;
        font-size: 19px !important;
    }
}

/* Footer refinement: no sales CTA button */
.ottero-cb-footer-cta {
    display: none !important;
}


/* =========================================================
   Crown Bridge — Editorial Luxury Homepage Pass 1
   Purpose: reduce template feel, improve proportion, rhythm,
   header scale, hero discipline, text width and card restraint.
========================================================= */

/* -----------------------------
   Global editorial containment
------------------------------ */

:root {
    --cb-editorial-max: 1180px;
    --cb-reading-max: 760px;
    --cb-statement-max: 980px;
    --cb-navy: #0f1c2b;
    --cb-ivory: #f8f5f0;
    --cb-gold: #c2a878;
}

/* Better default page rhythm */
body {
    background: var(--cb-ivory) !important;
}

/* -----------------------------
   Header refinement
------------------------------ */

.ottero-cb-header {
    background: var(--cb-ivory) !important;
    border-bottom: 1px solid rgba(15, 28, 43, 0.08) !important;
}

.ottero-cb-header-inner {
    min-height: 92px !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    max-width: 1320px !important;
}

.ottero-cb-logo img {
    width: 300px !important;
    max-height: 82px !important;
    object-fit: contain !important;
}

.ottero-cb-nav,
.ottero-cb-nav a,
.ottero-cb-nav button {
    font-size: 15px !important;
    letter-spacing: 0.035em !important;
    line-height: 1 !important;
}

.ottero-cb-nav {
    gap: 34px !important;
}

/* -----------------------------
   Homepage hero discipline
------------------------------ */

.home .cb-template-hero,
.home .elementor .cb-template-hero,
.home .elementor .e-con.cb-template-hero {
    min-height: 510px !important;
    padding-top: 82px !important;
    padding-bottom: 82px !important;
    display: flex !important;
    align-items: center !important;
}

.home .cb-template-hero .e-con-inner,
.home .cb-template-hero > .e-con-inner {
    max-width: var(--cb-editorial-max) !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.home .cb-template-hero h1,
.home .cb-template-hero h1.elementor-heading-title,
.home .cb-template-hero .elementor-heading-title {
    max-width: var(--cb-statement-max) !important;
    font-size: clamp(56px, 5vw, 86px) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.035em !important;
    margin-bottom: 28px !important;
}

.home .cb-template-hero h6,
.home .cb-template-hero h6.elementor-heading-title {
    font-size: 14px !important;
    letter-spacing: 0.16em !important;
    margin-bottom: 22px !important;
    color: #ffffff !important;
}

.home .cb-template-hero .cb-copy,
.home .cb-template-hero .cb-copy p,
.home .cb-template-hero p {
    max-width: 840px !important;
    font-size: 19px !important;
    line-height: 1.6 !important;
    color: #ffffff !important;
}

/* Refine homepage buttons — no loud SaaS CTA feel */
.home .cb-template-hero .elementor-button,
.home .cb-template-hero a.elementor-button {
    background: transparent !important;
    color: #ffffff !important;
    border: 1px solid rgba(255,255,255,0.72) !important;
    border-radius: 999px !important;
    padding: 14px 28px !important;
    font-size: 15px !important;
    letter-spacing: 0.06em !important;
    box-shadow: none !important;
}

.home .cb-template-hero .elementor-button:hover,
.home .cb-template-hero a.elementor-button:hover {
    background: rgba(255,255,255,0.08) !important;
    color: #ffffff !important;
}

/* Suppress odd decorative gold button/pill behaviour in hero if present */
.home .cb-template-hero .elementor-button-wrapper::before,
.home .cb-template-hero .elementor-widget-button::before {
    display: none !important;
}

/* -----------------------------
   Homepage section rhythm
------------------------------ */

.home .cb-section,
.home .elementor .cb-section,
.home .elementor .e-con.cb-section {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
}

.home .cb-template-content .e-con-inner,
.home .cb-template-cards .e-con-inner {
    max-width: var(--cb-editorial-max) !important;
}

/* Editorial headings */
.home .cb-template-content .elementor-heading-title,
.home .cb-template-cards .elementor-heading-title {
    max-width: var(--cb-statement-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: 34px !important;
    font-size: clamp(38px, 3.5vw, 56px) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.025em !important;
}

/* Editorial paragraphs */
.home .cb-template-content .cb-copy,
.home .cb-template-content .cb-copy p {
    max-width: var(--cb-reading-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: 20px !important;
    line-height: 1.82 !important;
}

/* -----------------------------
   Cards become editorial panels
   Less SaaS, less box-grid feeling.
------------------------------ */

.home .cb-card-grid {
    max-width: var(--cb-editorial-max) !important;
    margin: 36px auto 0 auto !important;
    gap: 0 !important;
    border-top: 1px solid rgba(15, 28, 43, 0.14) !important;
}

.home .cb-card {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(15, 28, 43, 0.14) !important;
    border-left: 0 !important;
    box-shadow: none !important;
    padding: 34px 34px !important;
    min-height: unset !important;
}

.home .cb-card h3 {
    font-size: clamp(25px, 2vw, 34px) !important;
    line-height: 1.12 !important;
    margin-bottom: 14px !important;
    color: var(--cb-navy) !important;
}

.home .cb-card p {
    font-size: 18px !important;
    line-height: 1.7 !important;
    max-width: 520px !important;
    color: rgba(15, 28, 43, 0.92) !important;
}

/* On desktop, create a quieter editorial-grid feel */
@media (min-width: 900px) {
    .home .cb-card-grid {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
    }

    .home .cb-card {
        border-right: 1px solid rgba(15, 28, 43, 0.10) !important;
    }

    .home .cb-card:nth-child(3n) {
        border-right: 0 !important;
    }
}

/* -----------------------------
   Footer polish
------------------------------ */

.ottero-cb-footer {
    padding-top: 96px !important;
    padding-bottom: 48px !important;
}

.ottero-cb-footer-inner {
    max-width: 1240px !important;
}

.ottero-cb-footer a {
    text-decoration: none !important;
}

.ottero-cb-footer a:hover {
    color: #ffffff !important;
}

/* -----------------------------
   Mobile discipline
------------------------------ */

@media (max-width: 767px) {
    .ottero-cb-header-inner {
        min-height: 76px !important;
    }

    .ottero-cb-logo img {
        width: 210px !important;
        max-height: 64px !important;
    }

    .home .cb-template-hero,
    .home .elementor .cb-template-hero,
    .home .elementor .e-con.cb-template-hero {
        min-height: 430px !important;
        padding-top: 56px !important;
        padding-bottom: 56px !important;
    }

    .home .cb-template-hero h1,
    .home .cb-template-hero h1.elementor-heading-title {
        font-size: 44px !important;
        line-height: 1.04 !important;
    }

    .home .cb-template-hero .cb-copy,
    .home .cb-template-hero .cb-copy p,
    .home .cb-template-hero p {
        font-size: 17px !important;
        line-height: 1.65 !important;
    }

    .home .cb-section,
    .home .elementor .cb-section,
    .home .elementor .e-con.cb-section {
        padding-top: 52px !important;
        padding-bottom: 52px !important;
    }

    .home .cb-card {
        padding: 28px 0 !important;
    }

    .home .cb-card-grid {
        display: block !important;
    }
}


/* =========================================================
   Crown Bridge — Homepage Pass 1B Fixes
   Fix hero headline overflow + remove inelegant gold CTA marker
========================================================= */

/* Force hero headline to wrap elegantly */
.home .cb-template-hero h1,
.home .cb-template-hero h1.elementor-heading-title,
.home .cb-template-hero .elementor-heading-title {
    max-width: 940px !important;
    white-space: normal !important;
    overflow: visible !important;
    text-wrap: balance !important;
    font-size: clamp(52px, 4.2vw, 74px) !important;
    line-height: 1.06 !important;
}

/* Keep hero content contained */
.home .cb-template-hero .e-con-inner,
.home .cb-template-hero > .e-con-inner {
    max-width: 1180px !important;
    overflow: visible !important;
}

/* Remove the inelegant gold square/blob beside the CTA */
.home .cb-template-hero .elementor-widget-button::before,
.home .cb-template-hero .elementor-button-wrapper::before,
.home .cb-template-hero .elementor-button-link::before,
.home .cb-template-hero a.elementor-button::before {
    content: none !important;
    display: none !important;
}

/* Remove any standalone gold decorative pill inside hero */
.home .cb-template-hero [style*="background"],
.home .cb-template-hero .cb-accent,
.home .cb-template-hero .cb-gold-mark,
.home .cb-template-hero .cb-ornament {
    display: none !important;
}

/* Refine hero CTA into understated editorial link-button */
.home .cb-template-hero .elementor-button,
.home .cb-template-hero a.elementor-button {
    background: transparent !important;
    color: #ffffff !important;
    border: 1px solid rgba(255,255,255,0.56) !important;
    border-radius: 0 !important;
    padding: 13px 22px !important;
    font-size: 14px !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    box-shadow: none !important;
}

.home .cb-template-hero .elementor-button:hover,
.home .cb-template-hero a.elementor-button:hover {
    background: rgba(255,255,255,0.06) !important;
    border-color: rgba(255,255,255,0.82) !important;
}

/* Slightly reduce hero vertical bulk */
.home .cb-template-hero,
.home .elementor .cb-template-hero,
.home .elementor .e-con.cb-template-hero {
    min-height: 470px !important;
    padding-top: 68px !important;
    padding-bottom: 68px !important;
}

@media (max-width: 767px) {
    .home .cb-template-hero h1,
    .home .cb-template-hero h1.elementor-heading-title {
        font-size: 39px !important;
        max-width: 100% !important;
    }

    .home .cb-template-hero,
    .home .elementor .cb-template-hero,
    .home .elementor .e-con.cb-template-hero {
        min-height: 390px !important;
    }
}


/* =========================================================
   Crown Bridge — Mega Menu Viewport Containment Fix
========================================================= */

/* Ensure dropdowns cannot escape viewport */
.ottero-cb-nav,
.ottero-cb-header,
.ottero-cb-header-inner {
    overflow: visible !important;
}

/* Main advisory mega dropdown */
.ottero-cb-mega,
.ottero-cb-dropdown,
.ottero-cb-nav .ottero-cb-mega,
.ottero-cb-nav .ottero-cb-dropdown {
    max-width: calc(100vw - 80px) !important;
    box-sizing: border-box !important;
}

/* Keep advisory mega menu centred within viewport */
.ottero-cb-mega {
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: min(980px, calc(100vw - 80px)) !important;
}

/* Prevent text from causing overflow */
.ottero-cb-mega a,
.ottero-cb-dropdown a {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    line-height: 1.35 !important;
}

/* Make columns flexible rather than fixed overflow */
.ottero-cb-mega-grid,
.ottero-cb-mega-inner {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 42px !important;
    max-width: 100% !important;
}

/* Tablet containment */
@media (max-width: 1100px) {
    .ottero-cb-mega {
        width: min(860px, calc(100vw - 48px)) !important;
    }

    .ottero-cb-mega-grid,
    .ottero-cb-mega-inner {
        gap: 28px !important;
    }
}

/* Mobile/tablet: let menu become vertical */
@media (max-width: 767px) {
    .ottero-cb-mega,
    .ottero-cb-dropdown {
        left: 16px !important;
        right: 16px !important;
        transform: none !important;
        width: auto !important;
        max-width: none !important;
    }

    .ottero-cb-mega-grid,
    .ottero-cb-mega-inner {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }
}


/* =========================================================
   Crown Bridge — Remove Homepage Hero CTA Block
========================================================= */

.home .cb-template-hero .elementor-widget-button,
.home .cb-template-hero .elementor-button-wrapper,
.home .cb-template-hero a.elementor-button,
.home .cb-template-hero .elementor-button {
    display: none !important;
}

/* Remove any remaining decorative gold marker in hero */
.home .cb-template-hero .elementor-widget-button,
.home .cb-template-hero .elementor-widget-button *,
.home .cb-template-hero [class*="accent"],
.home .cb-template-hero [class*="gold"],
.home .cb-template-hero [class*="ornament"] {
    display: none !important;
}
