/*
Theme Name: Ova Cezan Child Theme
Theme URI: http://ovathemes.com/portfolio
Description: This is child theme of cezan
Author: Ovatheme
Author URI: http://ovathemes.com
Template: ova-cezan
Version: 1.0
Tags: translation-ready, left-sidebar, right-sidebar
Text Domain:  ova-cezan-child
*/

/* =========================================================================
   Jcob AI — child overrides. Design alignment pass targets the official
   Cezan demo (https://cezan.ovathemes.com/) while keeping locked content
   rules and prior UX decisions (no literal "X" glyphs, form spacing).
   ========================================================================= */

/* --- Accent: theme-native coral used on demo headings/links. */
:root {
    --jcob-accent: #ed4a43;
    --jcob-ink: #333;
    --jcob-muted: #777;
    --jcob-line: #e5e5e5;
    --jcob-grey: #f6f6f6;
}

/* =========================================================================
   GLOBAL: suppress literal "X" decorations (user rejected as broken).
   Demo uses them as design signature; we keep the slogan/button spacing
   without the glyph.
   ========================================================================= */
.ui-decor:after {
    content: none !important;
    padding: 0 !important;
}
.ui-slogan .ui-decor {
    display: none;
}

/* =========================================================================
   BUTTONS — restore Cezan-native CTA language (demo "READ ABOUT US"):
   small uppercase label, no box border, short vertical accent line that
   sits ABOVE the label (not floating detached), underline on hover.
   Previous ghost-button outline felt un-Cezan / wireframe.
   ========================================================================= */
.ui-decor-line {
    display: block !important;
    margin: 0 auto 14px !important;
    line-height: 1;
    text-align: center;
}
.ui-decor-line:before {
    display: inline-block;
    width: 1px;
    height: 48px;
    content: '';
    background-color: var(--jcob-ink);
}
.b-btn br {
    display: none;
}
.b-btn {
    text-align: center;
}
.b-btn__inner {
    display: inline-block;
    padding: 0 4px 4px;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.18em;
    line-height: 1.4;
    text-transform: uppercase;
    color: var(--jcob-ink);
    border: none;
    border-bottom: 1px solid transparent;
    background-color: transparent;
    cursor: pointer;
    box-shadow: none;
}
.b-btn__inner:hover,
.b-btn__inner:focus {
    color: var(--jcob-accent);
    border-bottom-color: var(--jcob-accent);
    background-color: transparent;
}
/* Kill our old boxed-button after-pseudo if any linger from cascade. */
.b-btn__inner:after {
    display: none;
}
/* Hero / dark slider: white line + white label, accent underline on hover. */
.main-slider .ui-decor-line:before,
.main-slider .b-btn .ui-decor-line:before {
    background-color: #fff;
}
.main-slider .b-btn__inner,
.main-slider__btn.b-btn__inner {
    color: #fff;
    background-color: transparent;
    border-bottom-color: transparent;
}
.main-slider .b-btn__inner:hover,
.main-slider__btn.b-btn__inner:hover {
    color: #fff;
    border-bottom-color: #fff;
}
/* Form submit spacing — demo clears room under fields for the accent line. */
.ui-form .b-btn {
    display: block;
    width: 100%;
    margin-top: 40px;
    text-align: center;
}

/* =========================================================================
   FORMS — match demo Contact field language: flat, no radius, quiet borders,
   full-width rhythm. Keep Name|Company row + full-width textarea/email.
   ========================================================================= */
.section-form-contacts {
    padding-top: 40px;
    padding-bottom: 140px;
}
.b-form-contacts {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}
.b-form-contacts .form-control {
    height: 52px;
    padding: 14px 0;
    margin-bottom: 28px;
    font-size: 13px;
    letter-spacing: 0.02em;
    color: var(--jcob-ink);
    border: none;
    border-bottom: 1px solid #ccc;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    -webkit-box-shadow: none;
}
.b-form-contacts textarea.form-control {
    height: 120px;
    padding-top: 16px;
    resize: none; /* hide corner grip — breaks the underline aesthetic */
}
.b-form-contacts .form-control:focus {
    border-bottom-color: var(--jcob-accent);
    outline: none;
    box-shadow: none;
    -webkit-box-shadow: none;
}
.b-form-contacts .form-control::placeholder {
    color: #aaa;
    text-transform: none;
}
.b-form-contacts .wpcf7-not-valid-tip {
    margin: -14px 0 14px;
    font-size: 11px;
    color: var(--jcob-accent);
}
.b-form-contacts .wpcf7-response-output {
    margin: 20px 0 0;
    border-width: 1px;
    font-size: 13px;
}
/* Honeypot must stay invisible and not affect layout (CF7 Apps honeypot). */
.b-form-contacts [data-cf7apps-honeypot],
.b-form-contacts .waitlist-extra-wrap,
.b-form-contacts .contact-extra-wrap,
.b-form-contacts .hp-message {
    position: absolute !important;
    left: -10000px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    border: 0 !important;
}

/* =========================================================================
   TYPOGRAPHY / SECTIONS — demo rhythm: large top pads, muted body, accent H2.
   ========================================================================= */
body {
    color: var(--jcob-muted);
}
.ui-title-block,
.ui-title-page,
h1, h2, h3 {
    color: var(--jcob-accent);
}
.ui-slogan {
    letter-spacing: 0.22em;
    color: var(--jcob-ink);
}
/* Wide tracking orphans last words on phones (e.g. "…BUILD" / "AFTER."). */
@media (max-width: 767px) {
    .ui-slogan {
        letter-spacing: 0.08em;
    }
    .b-btn__inner {
        letter-spacing: 0.1em;
    }
}
.main-slider__title,
.main-slider__subtitle,
.main-slider__emphasis,
.b-title-page {
    color: #fff;
}
/* Theme defaults the hero desc to text-align:right; keep it centered. */
.main-slider__subtitle {
    text-align: center;
}
/* Interior pages: clear the fixed transparent header. */
body:not(.page-template-home_template) .page-section,
body:not(.page-template-home_template) .site-main > .container,
body:not(.page-template-home_template) #main > .container {
    padding-top: 0;
}
/* Interior pages: solid bar so white logo stays readable on light content. */
body:not(.home) .header.header-background-trans,
body:not(.page-template-home_template) .header.header-background-trans {
    background: rgba(30, 30, 30, 0.92);
}

/* =========================================================================
   HOME HERO HEADER — match Cezan demo: transparent bar over full-bleed image,
   smaller monogram, fixed overlay (theme's .ova_default_header forces
   background:#000 + position:relative which creates the black strip).
   ========================================================================= */
body.home .header.ova_default_header,
body.page-template-home_template .header.ova_default_header {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1000;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none;
}
/* Demo uses full-bleed header edges, not the boxed/centered container. */
body.home .header.header-boxed-width .container.container-boxed-width,
body.page-template-home_template .header.header-boxed-width .container.container-boxed-width,
body.home .header .navbar > .container,
body.page-template-home_template .header .navbar > .container {
    width: 100% !important;
    max-width: none !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
body.home .header.ova_default_header .navbar,
body.page-template-home_template .header.ova_default_header .navbar {
    background: transparent !important;
    padding-top: 22px !important;
    padding-bottom: 22px !important;
    min-height: 0 !important;
}
/* Logo left + hamburger right across the full header.
   Bootstrap .container clearfix ::before/::after become flex items and
   collapse space-between toward the center — kill those pseudos. */
body.home .header .navbar > .container,
body.page-template-home_template .header .navbar > .container {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
}
body.home .header .navbar > .container::before,
body.home .header .navbar > .container::after,
body.page-template-home_template .header .navbar > .container::before,
body.page-template-home_template .header .navbar > .container::after {
    display: none !important;
    content: none !important;
}
body.home .header .header-navibox-1,
body.home .header .header-navibox-3,
body.page-template-home_template .header .header-navibox-1,
body.page-template-home_template .header .header-navibox-3 {
    float: none !important;
    display: flex !important;
    align-items: center !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    line-height: 1 !important;
    margin: 0 !important;
}
body.home .header .header-navibox-3,
body.page-template-home_template .header .header-navibox-3 {
    margin-left: auto !important;
}
body.home .header .navbar-nav,
body.home .header .navbar-nav > li,
body.page-template-home_template .header .navbar-nav,
body.page-template-home_template .header .navbar-nav > li {
    display: flex !important;
    align-items: center !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}
body.home .header .toggle-menu-button,
body.page-template-home_template .header .toggle-menu-button {
    display: inline-flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
}
body.home .header .toggle-menu-button-icon,
body.page-template-home_template .header .toggle-menu-button-icon {
    top: 0 !important;
}

/* =========================================================================
   FULLSCREEN PRIMARY MENU — match Cezan demo overlay (centered all-caps
   stack, white X close) with Montserrat from the theme’s intended nav type
   (parent header.css; never loaded for the overlay, so Lato won).
   Background: abstract dark geometric surface (assets/menu-overlay-bg.png)
   with a light scrim so white links stay readable over the facets.
   Font model from client: geometric sans used on “MINIMAL DESIGN” hero.
   ========================================================================= */
.wrap-fixed-menu {
    background-color: #1a1a1a;
    background-image:
        linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45)),
        url("assets/menu-overlay-bg.png");
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

/* Demo-like top offset before HOME (parent used padding-top: 10%;
   nested full-height wrappers make flex centering a no-op). */
.wrap-fixed-menu .fullscreen-center-menu {
    display: block;
    padding-top: 20vh;
    padding-bottom: 60px;
    box-sizing: border-box;
    overflow-y: auto;
}
.wrap-fixed-menu .fullscreen-center-menu .menu-main-menu-container,
.wrap-fixed-menu .fullscreen-center-menu .slidebar-nav-menu,
.wrap-fixed-menu .fullscreen-center-menu .slidebar-nav-menu > nav {
    height: auto !important;
}

.fullscreen-center-menu .slidebar-nav-menu,
.fullscreen-center-menu .dl-menuwrapper,
.fullscreen-center-menu .dl-menu {
    width: 100%;
}

.fullscreen-center-menu li {
    font-size: 30px;
    line-height: 1.85;
    text-transform: uppercase;
}

#menu-primary-menu > li > a,
.fullscreen-center-menu li a {
    font-family: "Montserrat", sans-serif;
    font-weight: 300;
    font-size: inherit;
    letter-spacing: 0.06em;
    color: #fff;
    line-height: inherit;
}

.fullscreen-center-menu li a:hover,
.fullscreen-center-menu li a:focus {
    color: #fff;
    opacity: 0.7;
}

/* Submenu chevrons (ElegantIcons arrow_carrot-right) — white, inset. */
.fullscreen-center-menu li.has-children > a > span,
.fullscreen-center-menu li.has-children > a .arrow_carrot-right {
    color: #fff;
    font-size: 0.85em;
    margin-left: 0.15em;
    vertical-align: middle;
}

/* Close: white square, black × (parent already does this; lock it in). */
.wrap-fixed-menu .fullmenu-close {
    top: 0;
    right: 0;
    width: 60px;
    height: 60px;
    background-color: #fff !important;
    border: none;
    opacity: 1 !important;
}
.wrap-fixed-menu .fullmenu-close,
.wrap-fixed-menu .fullmenu-close * {
    color: #000;
}

@media (max-width: 767px) {
    .fullscreen-center-menu li {
        font-size: 22px;
        line-height: 1.9;
    }
}

/* When user scrolls, keep theme sticky white bar behaviour. */
body.home .header.ova_default_header.navbar-scrolling,
body.page-template-home_template .header.ova_default_header.navbar-scrolling {
    background-color: rgba(255, 255, 255, 0.95) !important;
}
/* Logo: demo-scale monogram, left-aligned like CENAZ mark. */
body.home .header .navbar-brand,
body.page-template-home_template .header .navbar-brand {
    padding: 0 !important;
    margin: 0 !important;
    height: auto !important;
    float: none;
}
.header .navbar-brand img.normal-logo,
.header .navbar-brand img.scroll-logo,
.header .navbar-brand img {
    display: block;
    width: 56px !important;
    height: 56px !important;
    max-width: 56px !important;
    max-height: 56px !important;
    object-fit: contain;
}
/* Slightly larger on interior pages still, but not the old 256px. */
body:not(.home):not(.page-template-home_template) .header .navbar-brand img {
    width: 60px !important;
    height: 60px !important;
    max-width: 60px !important;
    max-height: 60px !important;
}
/* Footer mark stays modest. */
.jcob-footer__brand img {
    width: 56px !important;
    height: 56px !important;
}
/* Page title band (Work With Us, Team, Services, etc.) */
.page-header,
.b-title-page,
.ui-title-page {
    letter-spacing: 0.02em;
}
/* Editorial body copy on About / Work With Us */
.wpb_text_column p {
    font-size: 14px;
    line-height: 1.85;
    color: var(--jcob-muted);
}
.wpb_text_column p + p {
    margin-top: 22px;
}

/* =========================================================================
   IMAGES — demo grayscale-until-hover is the signature look, but founder +
   team headshots must stay full color (user: grayscale looked "broken").
   ========================================================================= */
img {
    -webkit-filter: grayscale(100%);
    filter: grayscale(100%);
    -webkit-transition: filter 0.35s ease;
    transition: filter 0.35s ease;
}
img:hover {
    -webkit-filter: grayscale(0);
    filter: grayscale(0);
}
/* Keep people photos and brand logos in full color always. */
.jcob-team-grid img,
.section-type-3 img,
.jcob-photo-caption + img,
img[alt*="Synthia"],
img[alt*="founder"],
img[alt*="Jcob AI"],
img[src*="team-"],
img[src*="synthia"],
img[src*="founder"],
img[src*="jcob-ai-logo"],
.header img,
.jcob-footer__brand img {
    -webkit-filter: none !important;
    filter: none !important;
}

/* =========================================================================
   TEAM — hierarchical grid (solo / solo / pairs), square tiles.
   ========================================================================= */
.jcob-team-intro {
    margin-bottom: 12px;
}
.jcob-team-intro .wpb_text_column p,
.jcob-team-outro .wpb_text_column p {
    font-size: 15px;
    line-height: 1.75;
    color: var(--jcob-muted);
    text-align: center;
}
.jcob-team-outro {
    margin-top: 12px;
    margin-bottom: 40px;
}
.jcob-team-grid.vc_row {
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
}
.jcob-team-grid .b-team__media img {
    border-radius: 0 !important;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    width: 100%;
}
.jcob-team-grid .b-team a {
    pointer-events: none;
    cursor: default;
}
.jcob-team-grid .b-team {
    margin-bottom: 28px;
}
.jcob-team-solo .b-team {
    margin-bottom: 36px;
}
.jcob-team-grid .b-team__name,
.jcob-team-grid .b-team__title {
    letter-spacing: 0.04em;
}
@media (max-width: 767px) {
    .jcob-team-solo .vc_col-sm-offset-3 {
        margin-left: 0 !important;
    }
}

/* =========================================================================
   HOME extras
   ========================================================================= */
.jcob-photo-caption {
    margin-top: 12px;
    font-size: 12px;
    font-style: italic;
    color: #999;
    text-align: center;
}

/* =========================================================================
   ABOUT — editorial story bands: shared top edge, matched photo frames,
   even gutters, clearer vertical rhythm between sections.
   ========================================================================= */
.page-id-8 .posts-group {
    padding-top: 40px;
    padding-bottom: 88px;
}
.page-id-8 .jcob-about-header.section-first {
    padding-top: 20px !important;
    margin-bottom: 28px;
}
.page-id-8 .jcob-about-header .ui-slogan {
    margin-bottom: 10px;
}
.page-id-8 .jcob-about-header .ui-title-block {
    margin-bottom: 0;
}
.page-id-8 .jcob-about-band.vc_row {
    display: flex !important;
    flex-wrap: wrap;
    align-items: flex-start;
    margin-bottom: 56px;
}
.page-id-8 .jcob-about-band.vc_row:last-of-type {
    margin-bottom: 0;
}
.page-id-8 .jcob-about-copy .wpb_text_column {
    margin-bottom: 0;
}
.page-id-8 .jcob-about-copy .wpb_text_column p {
    max-width: 34em;
    font-size: 15px;
    line-height: 1.8;
    color: #555;
}
.page-id-8 .jcob-about-copy .wpb_text_column p + p {
    margin-top: 1.15em;
}
.page-id-8 .jcob-about-media .tilter,
.page-id-8 .jcob-about-media .tilter__figure,
.page-id-8 .jcob-about-media .wpb_single_image,
.page-id-8 .jcob-about-media .wpb_wrapper,
.page-id-8 .jcob-about-media .vc_single_image-wrapper {
    display: block;
    width: 100% !important;
    max-width: 100%;
    margin-bottom: 0 !important;
}
/* Theme scrollreveal starts at opacity 0 + scale(0.9), which leaves the
   second story band looking empty/misaligned until scrolled fully into
   view. Keep photos layout-stable on About. */
.page-id-8 .jcob-about-media .tilter__figure.scrollreveal,
.page-id-8 .jcob-about-media .scrollreveal {
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
}
/* Same for Team headshots — below-the-fold cards otherwise stay invisible
   until each row is scrolled into view (breaks full-page screenshots / QA). */
.page-id-9 .jcob-team-grid .scrollreveal,
.page-id-9 .jcob-team-grid .tilter__figure.scrollreveal {
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
}
.page-id-8 .jcob-about-media img {
    display: block;
    width: 100% !important;
    max-width: 100%;
    height: auto !important;
}
/* First band desk photo: soft square frame (source is nearly square). */
.page-id-8 .jcob-about-band--text-image .jcob-about-media img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center 18%;
}
/* Second band full-body portrait: keep natural ratio — no bottom crop. */
.page-id-8 .jcob-about-band--image-text .jcob-about-media img {
    aspect-ratio: auto;
    object-fit: initial;
    object-position: initial;
}
.page-id-8 .jcob-about-media .jcob-photo-caption.wpb_text_column {
    margin-top: 12px !important;
    margin-bottom: 0 !important;
}
.page-id-8 .jcob-about-media .jcob-photo-caption {
    margin-top: 0;
    text-align: left;
    letter-spacing: 0.02em;
}
@media (min-width: 992px) {
    .page-id-8 .jcob-about-band--text-image .jcob-about-copy .vc_column-inner {
        padding-right: 40px;
    }
    .page-id-8 .jcob-about-band--text-image .jcob-about-media .vc_column-inner {
        padding-left: 40px;
    }
    .page-id-8 .jcob-about-band--image-text .jcob-about-media .vc_column-inner {
        padding-right: 40px;
    }
    .page-id-8 .jcob-about-band--image-text .jcob-about-copy .vc_column-inner {
        padding-left: 40px;
    }
}
@media (max-width: 767px) {
    .page-id-8 .posts-group {
        padding-top: 28px;
        padding-bottom: 56px;
    }
    .page-id-8 .jcob-about-header.section-first {
        margin-bottom: 20px;
    }
    .page-id-8 .jcob-about-band.vc_row {
        margin-bottom: 48px;
    }
    .page-id-8 .jcob-about-media {
        margin-bottom: 18px;
    }
    .page-id-8 .jcob-about-band--text-image .jcob-about-media {
        margin-top: 6px;
        margin-bottom: 0;
    }
    .page-id-8 .jcob-about-copy .wpb_text_column p {
        max-width: none;
        font-size: 14px;
    }
}

/* Gulf AI Analysis posts-page masthead (child home.php + page 12 content) */
.blog .jcob-news-masthead.section-first {
    padding-top: 20px !important;
    margin-bottom: 48px;
}
.blog .jcob-news-masthead.vc_row {
    display: flex !important;
    flex-wrap: wrap;
    align-items: flex-start;
}
.blog .jcob-news-masthead-copy .ui-slogan {
    margin-bottom: 10px;
    font-size: 22px;
    font-weight: 500;
    letter-spacing: 0.16em;
}
.blog .jcob-news-masthead-copy .ui-title-block {
    margin-bottom: 18px;
}
.blog .jcob-news-masthead-copy .wpb_text_column p {
    max-width: 36em;
    font-size: 15px;
    line-height: 1.8;
    color: #555;
}
.blog .jcob-news-masthead-media .tilter,
.blog .jcob-news-masthead-media .tilter__figure,
.blog .jcob-news-masthead-media .wpb_single_image,
.blog .jcob-news-masthead-media .wpb_wrapper,
.blog .jcob-news-masthead-media .vc_single_image-wrapper {
    display: block;
    width: 100% !important;
    max-width: 100%;
    margin-bottom: 0 !important;
}
.blog .jcob-news-masthead-media img {
    display: block;
    width: 100% !important;
    max-width: 100%;
    height: auto !important;
}
@media (min-width: 992px) {
    .blog .jcob-news-masthead-media .vc_column-inner {
        padding-right: 40px;
    }
    .blog .jcob-news-masthead-copy .vc_column-inner {
        padding-left: 40px;
    }
}
@media (max-width: 767px) {
    .blog .jcob-news-masthead.section-first {
        margin-bottom: 32px;
    }
    .blog .jcob-news-masthead-media {
        margin-bottom: 20px;
    }
    .blog .jcob-news-masthead-copy .ui-slogan {
        font-size: 18px;
        letter-spacing: 0.1em;
    }
    .blog .jcob-news-masthead-copy .wpb_text_column p {
        max-width: none;
        font-size: 14px;
    }
}

.jcob-news-teaser {
    display: none !important;
}

/* =========================================================================
   APPROACH / SERVICES cards — demo-like solid grey blocks (not dashed temps).
   Content still carries [PLACEHOLDER] markers in copy.
   ========================================================================= */
.jcob-placeholder-card {
    height: 100%;
    padding: 36px 28px 40px;
    background: var(--jcob-grey);
    border: none;
}
.jcob-placeholder-card .jcob-step-number {
    display: block;
    font-size: 42px;
    font-weight: 900;
    line-height: 1;
    color: #ddd;
    margin-bottom: 18px;
}
.jcob-placeholder-card h3 {
    margin-top: 0;
    margin-bottom: 14px;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--jcob-ink);
}
.jcob-placeholder-card p {
    font-size: 13px;
    line-height: 1.7;
    color: var(--jcob-muted);
}
.jcob-framework .wpb_column,
.jcob-ladder .wpb_column {
    margin-bottom: 30px;
}

/* =========================================================================
   APPROACH — video under header + intro spacing
   ========================================================================= */
.page-id-10 .posts-group {
    padding-top: 24px;
}
.page-id-10 .section-first {
    padding-top: 32px !important;
}
.jcob-approach-media {
    margin-bottom: 8px;
}
.jcob-approach-video {
    display: block;
    width: 100%;
    height: auto;
    max-height: 70vh;
    background: var(--jcob-grey);
    /* GIF-like loop: no chrome, no interaction affordance. */
    pointer-events: none;
}
.jcob-approach-media .jcob-photo-caption {
    margin-top: 14px;
    margin-bottom: 0;
}
.jcob-approach-intro p,
.page-id-10 .jcob-approach-intro .wpb_text_column p {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

/* Services cards: keep a single top edge (no staggered "ladder" offsets).
   Earlier progression offsets made 01/02/03 look misaligned. */
.jcob-ladder.vc_row,
.jcob-ladder .vc_row {
    align-items: flex-start;
}
.jcob-ladder .jcob-ladder-card,
.jcob-ladder .jcob-ladder-card-1,
.jcob-ladder .jcob-ladder-card-2,
.jcob-ladder .jcob-ladder-card-3 {
    margin-top: 0 !important;
}
.jcob-ladder .wpb_column {
    margin-top: 0 !important;
}
.jcob-ladder .vc_column-inner {
    display: flex;
    align-items: stretch;
}
.jcob-ladder .jcob-placeholder-card {
    width: 100%;
}

/* =========================================================================
   FOOTER — centered, quieter, closer to demo density.
   ========================================================================= */
.footer .copyright {
    margin-left: 0;
    text-align: center;
}
.jcob-footer__brand {
    margin-bottom: 22px;
}
.jcob-footer__brand img {
    width: 72px;
    height: 72px;
    object-fit: contain;
}

/* --- HEADER logo sizing moved to HOME HERO HEADER block above
   (.navbar-brand img). Keep sticky/scroll logo filter-safe. */
.jcob-footer__menu,
.jcob-footer__social {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
}
.jcob-footer__menu li,
.jcob-footer__social li {
    display: inline-block;
    margin: 0 12px 8px;
}
.jcob-footer__menu a {
    color: var(--jcob-ink);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}
.jcob-footer__menu a:hover {
    color: var(--jcob-accent);
}
.jcob-footer__social a {
    color: var(--jcob-ink);
    font-size: 16px;
}
.jcob-footer__social a:hover {
    color: var(--jcob-accent);
}
.jcob-footer__address {
    margin-bottom: 0;
    font-size: 13px;
    letter-spacing: 0.04em;
    color: var(--jcob-muted);
}

/* =========================================================================
   Work With Us / Contact intro — tighten column so form doesn't feel sparse.
   ========================================================================= */
.jcob-wwu-intro p,
.page-id-13 .jcob-wwu-intro .wpb_text_column p,
.jcob-contact-intro p,
.page-id-14 .jcob-contact-intro .wpb_text_column p {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}
.page-id-13 .section-form-contacts,
.page-id-14 .section-form-contacts,
.page-id-7 .section-form-contacts {
    padding-top: 50px;
}
/* WWU only: cut the large empty band above the centered page header.
   Theme stacks .posts-group { padding-top: 100px } + .section-first (~143px). */
.page-id-13 .posts-group {
    padding-top: 24px;
}
.page-id-13 .section-first {
    padding-top: 32px !important;
}
.jcob-contact-meta {
    margin-top: 28px;
}
.jcob-contact-meta p {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: var(--jcob-muted);
}
.jcob-contact-meta p + p {
    margin-top: 8px;
}
.jcob-contact-label {
    display: inline-block;
    margin-right: 0.55em;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--jcob-ink);
}
.jcob-contact-meta a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}
.jcob-contact-meta a:hover {
    color: var(--jcob-accent);
}
.jcob-form-disclaimer {
    margin: 22px auto 0;
    max-width: 420px;
    font-size: 12px;
    line-height: 1.65;
    letter-spacing: 0.02em;
    color: var(--jcob-muted);
    text-align: center;
}
.jcob-form-disclaimer a {
    color: var(--jcob-ink);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.jcob-form-disclaimer a:hover {
    color: var(--jcob-accent);
}
.jcob-section-label {
    margin: 0 0 28px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--jcob-muted);
}
.page-id-13 .jcob-wwu-next {
    padding-top: 56px;
}
.page-id-13 .jcob-wwu-next-cards {
    padding-bottom: 40px;
}
.page-id-13 .jcob-wwu-next-cards .jcob-placeholder-card p {
    margin: 0;
    max-width: none;
}

/* Privacy Policy / Terms of Use — readable legal prose */
.jcob-privacy,
.jcob-terms {
    padding-bottom: 48px;
}
.jcob-privacy h2,
.jcob-terms h2 {
    margin: 2em 0 0.65em;
    font-size: 1.15em;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--jcob-ink);
}
.jcob-privacy h2:first-child,
.jcob-terms h2:first-child {
    margin-top: 0;
}
.jcob-privacy p,
.jcob-terms p {
    margin: 0 0 1em;
    line-height: 1.75;
    color: var(--jcob-ink);
}
.jcob-privacy a,
.jcob-terms a {
    color: var(--jcob-ink);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.jcob-privacy a:hover,
.jcob-terms a:hover {
    color: var(--jcob-accent);
}
