/*
Theme Name:  Inspiro Child
Template:    inspiro
Description: Child theme for Concierge Atelier -- full brand identity system
Version:     4.0.0
Author:      Concierge Atelier
*/

/*
 * GOOGLE FONTS -- font-display: swap flag
 * In functions.php, append &display=swap to the Google Fonts URL:
 * fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;1,300
 *   &family=Cormorant+SC:wght@300&family=Jost:wght@200;300&display=swap
 * This improves CLS and FCP scores on all pages.
 */

/* =============================================================================
   CSS CUSTOM PROPERTIES
   Never use raw hex values outside this block. Always reference variables.
   ============================================================================= */

:root {
    /* Brand colors */
    --obsidian:      #0C0B09;
    --charcoal:      #1A1917;
    --charcoal-lt:   #2F2D29;
    --gold:          #C9A96E;
    --gold-dark:     #A8824A;
    --gold-pale:     #E8D5A8;
    --navy:          #1A2540;
    --beige:         #EDE3D0;
    --ivory:         #FAF7F2;
    --muted:         #7A756C;

    /* Layout tokens */
    --ca-max-width:  1100px;
    --ca-max-narrow: 740px;
    --ca-pad:        clamp(3.5rem, 7vw, 6rem) clamp(1.25rem, 4vw, 2rem);
    --ca-section-gap: clamp(4rem, 8vw, 7rem);
    --ca-transition: 350ms ease;
}

/* =============================================================================
   BASE
   ============================================================================= */

html,
body {
    font-family: 'Jost', sans-serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.85;
    background-color: var(--obsidian);
    color: var(--ivory);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden; /* prevent horizontal scroll on mobile */
}

/* =============================================================================
   FILM GRAIN -- SVG fractal noise overlay, fixed full-viewport, pointer-none
   ============================================================================= */

body::after {
    content: '';
    position: fixed;
    inset: 0;
    opacity: 0.04;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 9999;
}

/* =============================================================================
   TYPOGRAPHY SYSTEM
   Cormorant Garamond: display headings, pull quotes, italic accents
   Cormorant SC:       labels, eyebrows, nav, buttons ONLY
   Jost:               body copy, captions, footer nav
   ============================================================================= */

/* All headings -- Cormorant Garamond 300 */
h1, h2, h3, h4, h5, h6,
.entry-title,
.entry-title a,
.page-title,
.widget-title,
.wp-block-heading {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 300;
    letter-spacing: 0.04em;
    line-height: 1.15;
    color: var(--ivory);
}

/* Display / hero -- 42-56px */
h1 {
    font-size: clamp(3rem, 5vw, 3.5rem);
    line-height: 1.1;
    letter-spacing: 0.04em;
    text-transform: none;
}

/* Section headings -- 28-36px */
h2 {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    letter-spacing: 0.04em;
}

h3 {
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    letter-spacing: 0.04em;
}

h4 {
    font-size: clamp(1.05rem, 1.5vw, 1.25rem);
    letter-spacing: 0.04em;
}

h5, h6 {
    font-size: 0.9375rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

/* Site title / logo -- Cormorant SC, gold */
.site-title,
.site-title a {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.125rem;
    font-weight: 300;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--gold);
}

/* Navigation -- Cormorant SC, 11px */
.main-navigation a,
.main-navigation li a,
.navbar-nav .nav-link,
.navbar-nav .menu-item a {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(250, 247, 242, 0.95);
    transition: color var(--ca-transition);
    white-space: nowrap;
}

.main-navigation a:hover,
.main-navigation li a:hover,
.main-navigation .current-menu-item > a {
    color: var(--gold);
}

/* Text-shadow on nav links — improves readability over any hero without font-size increase */
.main-navigation a,
.main-navigation li a,
.navbar-nav .nav-link,
.navbar-nav .menu-item a {
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.75);
}

/* Eyebrows / labels -- Cormorant SC, 14px, gold */
.ca-eyebrow,
.ca-section-eyebrow,
.eyebrow,
.section-label,
[class*="eyebrow"] {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 14px;
    font-weight: 300;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--gold);
    display: block;
    margin-bottom: 1.25rem;
}

/* Button type face -- Cormorant SC, 12px */
.btn,
button,
input[type="submit"],
.wp-block-button__link,
.wp-element-button {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.4em;
    text-transform: uppercase;
}

/* Body copy */
.entry-content,
.entry-summary,
.page-content,
.wp-block-paragraph {
    font-family: 'Jost', sans-serif;
    font-size: 1rem;
    line-height: 1.85;
    font-weight: 300;
    color: var(--ivory);
}

/* Captions -- Jost 200, 12px, uppercase, muted */
.entry-footer,
.post-meta,
.cat-links,
.tags-links,
figcaption,
.wp-element-caption {
    font-family: 'Jost', sans-serif;
    font-size: 0.6875rem;
    font-weight: 200;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--muted);
}

/* Pull quotes / blockquotes -- Cormorant Garamond italic */
blockquote,
.wp-block-quote {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.75rem;
    font-weight: 300;
    font-style: italic;
    letter-spacing: 0.02em;
    line-height: 1.5;
    color: var(--ivory);
    border: none;
    padding: 0;
}

blockquote cite,
.wp-block-quote cite,
.wp-block-quote footer {
    font-family: 'Jost', sans-serif;
    font-size: 0.6875rem;
    font-weight: 200;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    font-style: normal;
    color: var(--muted);
}

/* Section subtitle -- italic accent, 17px */
.ca-section-subtitle,
.ca-dest-hero-sub,
.ca-journal-subtitle {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 17px;
    font-weight: 300;
    font-style: italic;
    color: rgba(250, 247, 242, 0.7);
    letter-spacing: 0.02em;
}

/* Form inputs */
input,
select,
textarea {
    font-family: 'Jost', sans-serif;
    font-size: 0.9375rem;
    font-weight: 300;
    background-color: var(--charcoal);
    color: var(--ivory);
    border: 1px solid rgba(201, 169, 110, 0.15);
}

/* =============================================================================
   HEADER -- semi-transparent charcoal, blur(16px), gold border
   ============================================================================= */

/* Nav glass — frosted obsidian.
   Lighter than the old 0.92 so the blur is visible as a gloss layer.
   Text-shadow on nav links (see below) handles readability without font-size increase.
   Targets .navbar too — parent theme sets its own bg there, must override. */
.site-header,
#masthead,
.navbar,
#site-navigation {
    background: rgba(10, 8, 7, 0.28) !important;
    backdrop-filter: blur(20px) saturate(140%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(140%) !important;
    border-bottom: 1px solid rgba(201, 169, 110, 0.16) !important;
    box-shadow: 0 1px 0 rgba(201, 169, 110, 0.05),
                0 4px 24px rgba(0, 0, 0, 0.18);
}

/* Slightly deeper blur on hover — makes the gloss feel interactive */
.navbar:hover,
#site-navigation:hover {
    backdrop-filter: blur(28px) saturate(160%) !important;
    -webkit-backdrop-filter: blur(28px) saturate(160%) !important;
}

/* Hide parent theme search icon — not used on this site */
#sb-search,
.sb-search {
    display: none !important;
}

/* =============================================================================
   FOOTER -- professional proportions
   ============================================================================= */

/* Suppress parent template copyright credit */
.site-info > .copyright > span:last-child {
    display: none !important;
}

/* Base reset -- avoids blanket override of child class selectors */
.site-footer {
    font-family: 'Jost', sans-serif;
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    color: rgba(250, 247, 242, 0.4);
}

.site-footer .widget-title {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.45em;
    text-transform: uppercase;
    color: var(--gold);
}

/* Custom footer -- 3-column grid */
.ca-footer-custom {
    background-color: var(--obsidian);
    border-top: 1px solid rgba(201, 169, 110, 0.15);
    padding: 3.5rem 1.5rem 0;
    font-size: inherit;
}

.ca-footer-grid {
    max-width: var(--ca-max-width);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 4rem;
    padding-bottom: 4rem;
    border-bottom: 1px solid rgba(201, 169, 110, 0.08);
}

.ca-footer-brand-name {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 14px;
    font-weight: 300;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 0.75rem;
    display: block;
}

.ca-footer-tagline {
    font-family: 'Jost', sans-serif;
    font-size: 13px;
    font-weight: 300;
    line-height: 1.7;
    color: rgba(250, 247, 242, 0.6);
    margin-bottom: 0.75rem;
    max-width: 260px;
}

.ca-footer-cities {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: rgba(201, 169, 110, 0.5);
}

.ca-footer-nav-heading {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--gold);
    display: block;
    margin-bottom: 0;
}

.ca-footer-nav-cols {
    display: flex;
    gap: 2.5rem;
    margin-top: 1rem;
}

.ca-footer-nav-cols .ca-footer-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.ca-footer-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.ca-footer-nav-list li {
    margin-bottom: 0.75rem;
}

.ca-footer-nav-list a,
.ca-footer-nav-cols a {
    font-family: 'Jost', sans-serif;
    font-size: 12px;
    font-weight: 300;
    color: rgba(250, 247, 242, 0.5);
    text-decoration: none;
    letter-spacing: 0.04em;
    transition: color var(--ca-transition);
}

.ca-footer-nav-list a:hover,
.ca-footer-nav-cols a:hover {
    color: rgba(250, 247, 242, 0.85);
    text-decoration: none;
}

.ca-footer-whatsapp-label {
    font-family: 'Jost', sans-serif;
    font-size: 12px;
    font-weight: 300;
    line-height: 1.65;
    color: rgba(250, 247, 242, 0.6);
    margin-bottom: 1rem;
    margin-top: 0.75rem;
}

.ca-footer-bottom {
    max-width: var(--ca-max-width);
    margin: 0 auto;
    padding: 20px 0 2rem;
    border-top: 1px solid rgba(201, 169, 110, 0.08);
    text-align: center;
    font-family: 'Jost', sans-serif;
    font-size: 11px;
    font-weight: 200;
    color: rgba(122, 117, 108, 0.5);
    letter-spacing: 0.04em;
}

/* =============================================================================
   BUTTONS
   Ghost style is the default for all buttons.
   Primary (gold fill) is reserved for .ca-whatsapp-btn only.
   ============================================================================= */

/* Ghost default */
.btn,
.btn-default,
.btn-secondary,
.wp-block-button__link,
.wp-element-button {
    background: rgba(12, 11, 9, 0.08);
    border: 1px solid rgba(250, 247, 242, 0.18);
    color: rgba(250, 247, 242, 0.75);
    padding: 14px 36px;
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-radius: 0;
    box-shadow: none;
    text-decoration: none;
    display: inline-block;
    cursor: pointer;
    transition: border-color var(--ca-transition),
                color var(--ca-transition),
                background-color var(--ca-transition);
}

.btn:hover,
.btn-default:hover,
.btn-secondary:hover,
.wp-block-button__link:hover,
.wp-element-button:hover {
    border-color: var(--gold);
    color: var(--gold-pale);
    background-color: rgba(201, 169, 110, 0.1);
    text-decoration: none;
}

/* Hero area -- Inspiro inline styles need !important to override */
.custom-header .btn,
.header-image .btn,
.has-header-video .custom-header a.btn,
.has-header-image .custom-header a.btn,
.custom-header-media + .custom-header-content .btn,
.site-header .btn {
    background: rgba(12, 11, 9, 0.08) !important;
    border: 1px solid rgba(250, 247, 242, 0.2) !important;
    color: rgba(250, 247, 242, 0.7) !important;
    padding: 14px 36px !important;
    font-family: 'Cormorant SC', serif !important;
    font-size: 12px !important;
    font-weight: 300 !important;
    letter-spacing: 0.4em !important;
    text-transform: uppercase !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    transition: all 300ms ease !important;
    text-decoration: none !important;
}

.custom-header .btn:hover,
.header-image .btn:hover,
.has-header-video .custom-header a.btn:hover,
.has-header-image .custom-header a.btn:hover,
.custom-header-media + .custom-header-content .btn:hover {
    border-color: var(--gold) !important;
    color: var(--gold-pale) !important;
    background: rgba(201, 169, 110, 0.1) !important;
    text-decoration: none !important;
}

/* Primary -- WhatsApp CTA only. Muted forest green: reads as messaging,
   harmonises with obsidian + gold without using standard WhatsApp #25D366. */
.ca-whatsapp-btn {
    display: inline-block;
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    background-color: var(--wa-green);
    color: var(--ivory);
    padding: 14px 36px;
    text-decoration: none;
    border: none;
    border-radius: 0;
    margin-top: 2rem;
    transition: background-color var(--ca-transition), color var(--ca-transition);
}

.ca-whatsapp-btn:hover {
    background-color: var(--wa-green-lt);
    color: var(--ivory);
    text-decoration: none;
}

.ca-whatsapp-btn--large {
    padding: 16px 44px;
}

/* Apply wa-green fill to any WhatsApp link not using .ca-whatsapp-btn */
a[href*="wa.me"]:not(.ca-whatsapp-btn),
a[href*="whatsapp.com"]:not(.ca-whatsapp-btn) {
    background-color: var(--wa-green) !important;
    color: var(--ivory) !important;
    border-color: var(--wa-green) !important;
}

a[href*="wa.me"]:not(.ca-whatsapp-btn):hover,
a[href*="whatsapp.com"]:not(.ca-whatsapp-btn):hover {
    background-color: var(--wa-green-lt) !important;
    color: var(--ivory) !important;
}

/* CTA text link -- ghost text with animated gold underline */
.ca-cta-link {
    display: inline-block;
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 9px;
    font-weight: 300;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: rgba(250, 247, 242, 0.5);
    text-decoration: none;
    position: relative;
    padding-right: 0;
    transition: color var(--ca-transition), padding-right var(--ca-transition);
}

.ca-cta-link::after {
    content: '';
    position: absolute;
    right: -36px;
    top: 50%;
    width: 0;
    height: 0.75px;
    background-color: var(--gold);
    transition: width var(--ca-transition);
    transform: translateY(-50%);
}

.ca-cta-link:hover {
    color: var(--ivory);
    text-decoration: none;
    padding-right: 40px;
}

.ca-cta-link:hover::after {
    width: 32px;
}

/* Page CTA block -- ghost (V2: solid fill reserved for WhatsApp only) */
.ca-cta-button .wp-block-button__link {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    background: transparent;
    color: rgba(250, 247, 242, 0.82);
    border: 1px solid rgba(250, 247, 242, 0.28);
    padding: 14px 36px;
    border-radius: 0;
    transition: border-color var(--ca-transition), color var(--ca-transition);
}

.ca-cta-button .wp-block-button__link:hover {
    border-color: var(--gold);
    color: var(--gold-pale);
    background: transparent;
}

/* =============================================================================
   SHARED LAYOUT UTILITIES
   ============================================================================= */

.ca-section-inner {
    max-width: var(--ca-max-width);
    margin: 0 auto;
    padding: var(--ca-pad);
}

.ca-section-heading {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 300;
    letter-spacing: 0.04em;
    color: var(--ivory);
    margin-bottom: 3rem;
    line-height: 1.15;
}

.ca-section-cta {
    margin-top: 2.5rem;
    text-align: center;
}

.ca-divider {
    border: none;
    border-top: 1px solid rgba(201, 169, 110, 0.2);
    width: 60px;
    margin: 0 auto 2.5rem;
}

/* =============================================================================
   SVG ORNAMENTS
   ============================================================================= */

.ca-ornament-divider {
    display: flex;
    justify-content: center;
    margin-bottom: 2.5rem;
    color: var(--gold);
}

.ca-ornament-divider svg {
    max-width: 100%;
}

/* L-shaped corner bracket ornaments on work cards */
.ca-work-card::before,
.ca-work-card::after {
    content: '';
    position: absolute;
    width: 14px;
    height: 14px;
    border-color: rgba(201, 169, 110, 0.45);
    border-style: solid;
    pointer-events: none;
}

.ca-work-card::before {
    top: 14px;
    left: 14px;
    border-width: 0.75px 0 0 0.75px;
}

.ca-work-card::after {
    bottom: 14px;
    right: 14px;
    border-width: 0 0.75px 0.75px 0;
}

/* Pillar and step separators */
.ca-pillar-sep,
.ca-hiw-sep {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* =============================================================================
   CARD BORDERS
   Default: 1px solid gold at 12% opacity. Hover: 35% opacity.
   No drop shadows anywhere on the site.
   ============================================================================= */

.ca-work-card,
.ca-testimonial,
.ca-dest-card,
.ca-journal-full-card,
.ca-founder-image-placeholder {
    border: 1px solid rgba(201, 169, 110, 0.12);
    transition: border-color var(--ca-transition);
}

.ca-work-card:hover,
.ca-testimonial:hover,
.ca-dest-card:hover,
.ca-journal-full-card:hover {
    border-color: rgba(201, 169, 110, 0.35);
}

/* =============================================================================
   SCROLL REVEALS
   JS adds .ca-visible when element enters viewport.
   .ca-revealed kept as alias for backward compatibility.
   .no-js fallback reveals all elements immediately.
   ============================================================================= */

.ca-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 600ms ease, transform 600ms ease;
    transition-delay: calc(var(--stagger, 0) * 100ms);
}

.ca-reveal.ca-visible,
.ca-reveal.ca-revealed {
    opacity: 1;
    transform: translateY(0);
}

.no-js .ca-reveal {
    opacity: 1;
    transform: none;
    transition: none;
}

/* Legacy fade-up system */
.ca-animate {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 500ms ease, transform 500ms ease;
}

.ca-animate.ca-visible {
    opacity: 1;
    transform: translateY(0);
}

.no-js .ca-animate {
    opacity: 1;
    transform: none;
    transition: none;
}

/* =============================================================================
   PARALLAX BASE STATE
   ============================================================================= */

.ca-parallax,
.custom-header-media {
    will-change: transform;
}

/* =============================================================================
   ACCESSIBILITY
   ============================================================================= */

:focus-visible {
    outline: 1.5px solid var(--gold);
    outline-offset: 3px;
}

a:focus-visible,
button:focus-visible,
.ca-whatsapp-btn:focus-visible,
.ca-cta-link:focus-visible {
    outline: 1.5px solid var(--gold);
    outline-offset: 4px;
    text-decoration: none;
}

/* =============================================================================
   VIDEO OVERLAY -- hide branding on inner pages (not homepage)
   ============================================================================= */

body.has-header-image:not(.inspiro-front-page):not(.home) .custom-header .site-branding,
body.has-header-video:not(.inspiro-front-page):not(.home) .custom-header .site-branding {
    display: none;
}

/* =============================================================================
   HERO -- gradient overlay, eyebrow, headline, CTA button
   ============================================================================= */

/* Obsidian gradient on hero media — unchanged from approved version */
.custom-header-media::after {
    background: linear-gradient(
        180deg,
        rgba(12, 11, 9, 0.65) 0%,
        rgba(12, 11, 9, 0.55) 45%,
        rgba(12, 11, 9, 0.82) 100%
    ) !important;
}

.ca-hero-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
    position: relative;
    z-index: 1;
    padding: 2.5rem 4rem;
}

/* Hero gradient — homepage: pseudo-element spreads beyond content box so no visible rectangle */
.ca-hero-content::before {
    content: '';
    position: absolute;
    inset: -4rem -6rem;
    background: radial-gradient(ellipse at center, rgba(10,9,8,0.52) 0%, transparent 70%);
    z-index: -1;
    pointer-events: none;
}

/* Cover-block hero pages: no inner-container background (WP overlay is sufficient) */

/* Hero subtitle paragraph — all cover block inner containers */
.wp-block-cover__inner-container > p {
    font-size: 16px !important;
    line-height: 1.7;
    color: rgba(250,247,242,0.72);
    letter-spacing: 0.02em;
}

.ca-hero-eyebrow {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 14px;
    font-weight: 300;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--gold);
    margin: 0;
}

.ca-hero-headline {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(2rem, 5vw, 2.625rem);
    font-weight: 300;
    font-style: italic;
    letter-spacing: 0.02em;
    color: var(--ivory);
    line-height: 1.25;
    margin: 0;
    text-transform: none;
}

.ca-hero-subtext {
    font-family: 'Jost', sans-serif;
    font-weight: 300;
    font-size: 16px;
    line-height: 1.7;
    color: rgba(250, 247, 242, 0.6);
    margin: 0;
    letter-spacing: 0.04em;
}

.ca-hero-cta {
    display: inline-block;
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: rgba(250, 247, 242, 0.7);
    text-decoration: none;
    background: rgba(12, 11, 9, 0.08);
    border: 1px solid rgba(250, 247, 242, 0.2);
    padding: 14px 36px;
    margin-top: 0.5rem;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: border-color var(--ca-transition),
                color var(--ca-transition),
                background-color var(--ca-transition);
}

.ca-hero-cta:hover {
    border-color: var(--gold);
    color: var(--gold-pale);
    background-color: rgba(201, 169, 110, 0.12);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    text-decoration: none;
}

.ca-hero-location {
    font-family: 'Jost', sans-serif;
    font-size: 0.6875rem;
    font-weight: 200;
    letter-spacing: 0.2em;
    color: rgba(250, 247, 242, 0.5);
    margin: 0;
}

/* Scroll indicator arrow */
#scroll-to-content {
    position: absolute;
    bottom: 2.5rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 4;
    cursor: pointer;
}

#scroll-to-content::after {
    content: '';
    display: block;
    width: 18px;
    height: 18px;
    border-right: 0.75px solid rgba(250, 247, 242, 0.3);
    border-bottom: 0.75px solid rgba(250, 247, 242, 0.3);
    transform: rotate(45deg);
    animation: ca-scroll-bounce 2.2s ease-in-out infinite;
    margin: 0 auto;
}

#scroll-to-content .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

@keyframes ca-scroll-bounce {
    0%, 100% { transform: rotate(45deg) translateY(0); opacity: 0.4; }
    50%       { transform: rotate(45deg) translateY(6px); opacity: 0.8; }
}

/* =============================================================================
   HOME -- The Access (first section below hero)
   ============================================================================= */

.ca-the-access {
    background-color: var(--charcoal);
    text-align: center;
}

.ca-access-inner {
    max-width: 680px;
    margin: 0 auto;
    padding: var(--ca-pad);
}

.ca-access-heading {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.625rem, 3vw, 2rem);
    font-weight: 300;
    font-style: italic;
    letter-spacing: 0.02em;
    color: var(--ivory);
    margin-bottom: 2rem;
    line-height: 1.3;
}

.ca-access-body p {
    font-family: 'Jost', sans-serif;
    font-size: 0.9375rem;
    line-height: 1.9;
    color: rgba(250, 247, 242, 0.75);
    font-weight: 300;
    margin-bottom: 1.25rem;
    text-align: left;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* =============================================================================
   HOME -- How It Works
   ============================================================================= */

.ca-how-it-works {
    background-color: var(--charcoal);
    padding: var(--ca-pad);
    text-align: center;
}

.ca-hiw-inner {
    max-width: 960px;
    margin: 0 auto;
}

.ca-hiw-heading {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.625rem, 3vw, 2.5rem);
    font-weight: 300;
    letter-spacing: 0.04em;
    color: var(--ivory);
    margin-bottom: 4rem;
    line-height: 1.15;
}

.ca-hiw-steps {
    display: grid;
    grid-template-columns: 1fr 40px 1fr 40px 1fr;
    gap: 0;
    margin-bottom: 3.5rem;
    align-items: start;
}

.ca-hiw-step {
    padding: 0 1.5rem;
    text-align: center;
}

.ca-hiw-number {
    display: block;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 3.5rem;
    font-weight: 300;
    color: var(--gold);
    letter-spacing: 0.05em;
    line-height: 1;
    margin-bottom: 1.25rem;
    opacity: 0.6;
}

.ca-hiw-step-title {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 1rem;
    font-weight: 300;
    letter-spacing: 0.2em;
    color: var(--ivory);
    margin-bottom: 1rem;
    line-height: 1.3;
}

.ca-hiw-step-desc {
    font-family: 'Jost', sans-serif;
    font-size: 0.875rem;
    line-height: 1.85;
    color: rgba(250, 247, 242, 0.65);
    font-weight: 300;
}

.ca-hiw-cta {
    margin-top: 1rem;
}

/* =============================================================================
   HOME -- Selected Work (2-column case cards)
   ============================================================================= */

.ca-selected-work {
    background-color: var(--obsidian);
    text-align: center;
}

.ca-selected-work .ca-section-inner {
    padding: var(--ca-pad);
}

.ca-work-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin-bottom: 2.5rem;
    text-align: left;
}

.ca-work-card {
    position: relative;
    background-color: var(--charcoal-lt);
    padding: 2.5rem;
}

.ca-work-card-location {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 1rem;
}

.ca-work-card-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.75rem;
    font-weight: 300;
    letter-spacing: 0.03em;
    color: var(--ivory);
    margin-bottom: 1.25rem;
    line-height: 1.3;
}

.ca-work-card-teaser {
    font-family: 'Jost', sans-serif;
    font-size: 0.875rem;
    line-height: 1.85;
    color: rgba(250, 247, 242, 0.65);
    margin-bottom: 1.75rem;
}

/* =============================================================================
   HOME -- Testimonials
   ============================================================================= */

.ca-testimonials {
    background-color: var(--obsidian);
    text-align: center;
}

.ca-testimonials .ca-section-inner {
    padding: var(--ca-pad);
}

.ca-testimonial-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
    margin-top: 2rem;
}

.ca-testimonial {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.25rem, 2vw, 1.625rem);
    font-weight: 300;
    font-style: italic;
    line-height: 1.6;
    color: var(--ivory);
    padding: 2rem;
    margin: 0;
    text-align: center;
    background-color: var(--charcoal);
    position: relative;
}

.ca-testimonial::before {
    content: '\201C';
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 4rem;
    color: var(--gold);
    opacity: 0.4;
    position: absolute;
    top: 0.5rem;
    left: 1.25rem;
    line-height: 1;
}

.ca-testimonial p {
    margin-bottom: 1.25rem;
    color: var(--ivory);
    position: relative;
    z-index: 1;
}

.ca-testimonial cite {
    font-family: 'Jost', sans-serif;
    font-size: 0.6rem;
    font-weight: 200;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--muted);
    font-style: normal;
}

/* =============================================================================
   HOME -- Where We Operate (navy section)
   ============================================================================= */

.ca-where-we-operate {
    background-color: var(--navy);
    text-align: center;
}

.ca-where-we-operate .ca-section-inner {
    padding: var(--ca-pad);
}

.ca-where-we-operate .ca-eyebrow {
    color: rgba(201, 169, 110, 0.7);
}

.ca-geography-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    margin-top: 3rem;
    text-align: left;
}

.ca-geo-item {
    border-top: 1px solid rgba(201, 169, 110, 0.2);
    padding-top: 1.5rem;
}

.ca-geo-city {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 1rem;
    font-weight: 300;
    letter-spacing: 0.2em;
    color: var(--gold-pale);
    margin-bottom: 0.875rem;
}

.ca-geo-desc {
    font-family: 'Jost', sans-serif;
    font-size: 0.8125rem;
    line-height: 1.85;
    color: rgba(250, 247, 242, 0.6);
    font-weight: 300;
}

/* =============================================================================
   HOME -- Destinations Preview (navy)
   ============================================================================= */

.ca-destinations-preview {
    background-color: var(--navy);
    text-align: center;
}

.ca-destinations-preview .ca-section-inner {
    padding: var(--ca-pad);
}

.ca-dest-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    margin-top: 3rem;
    text-align: left;
}

.ca-dest-card {
    background-color: rgba(250, 247, 242, 0.04);
}

.ca-dest-image {
    width: 100%;
    aspect-ratio: 16 / 9;
    background-color: var(--charcoal-lt);
    overflow: hidden;
    transition: transform 600ms ease;
}

.ca-dest-card:hover .ca-dest-image {
    transform: scale(1.04);
}

.ca-dest-card-body {
    padding: 2rem;
}

.ca-dest-city {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 1.25rem;
    font-weight: 300;
    letter-spacing: 0.2em;
    color: var(--ivory);
    margin-bottom: 0.75rem;
}

.ca-dest-tagline {
    font-family: 'Jost', sans-serif;
    font-size: 0.875rem;
    font-weight: 300;
    color: rgba(250, 247, 242, 0.6);
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

/* =============================================================================
   HOME -- Journal Preview (charcoal)
   ============================================================================= */

.ca-journal-preview {
    background-color: var(--charcoal);
    text-align: center;
}

.ca-journal-preview .ca-section-inner {
    padding: var(--ca-pad);
}

.ca-journal-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-top: 2.5rem;
    text-align: left;
}

.ca-journal-card {
    border-top: 1px solid rgba(201, 169, 110, 0.15);
    padding-top: 1.5rem;
}

.ca-journal-card-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.25rem;
    font-weight: 300;
    font-style: italic;
    color: var(--ivory);
    margin-bottom: 0.875rem;
    line-height: 1.4;
    transition: color 300ms ease;
}

.ca-journal-card:hover .ca-journal-card-title {
    color: var(--gold-pale);
}

.ca-journal-card-intro {
    font-family: 'Jost', sans-serif;
    font-size: 0.8125rem;
    font-weight: 300;
    line-height: 1.8;
    color: rgba(250, 247, 242, 0.6);
    margin-bottom: 1.25rem;
}

/* =============================================================================
   HOME -- Final CTA (charcoal, narrow)
   ============================================================================= */

.ca-homepage-cta {
    background-color: var(--charcoal);
    text-align: center;
}

.ca-homepage-cta .ca-section-inner {
    padding: 5rem 1.5rem;
    max-width: var(--ca-max-narrow);
    margin: 0 auto;
}

.ca-cta-heading {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 300;
    font-style: italic;
    letter-spacing: 0.02em;
    color: var(--ivory);
    margin-bottom: 1.5rem;
    line-height: 1.25;
}

.ca-cta-subtext {
    font-family: 'Jost', sans-serif;
    font-size: 0.9375rem;
    line-height: 1.85;
    color: rgba(250, 247, 242, 0.65);
    font-weight: 300;
    margin-bottom: 0.5rem;
}

/* =============================================================================
   ABOUT -- Philosophy Pillars
   ============================================================================= */

.ca-philosophy {
    background-color: var(--charcoal);
    text-align: center;
}

.ca-philosophy .ca-section-inner {
    padding: var(--ca-pad);
}

.ca-pillars {
    display: grid;
    grid-template-columns: 1fr 40px 1fr 40px 1fr;
    gap: 0;
    margin-top: 1rem;
    text-align: left;
    align-items: start;
}

.ca-pillar {
    border-top: 1px solid rgba(201, 169, 110, 0.3);
    padding-top: 1.75rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.ca-pillar-title {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 1rem;
    font-weight: 300;
    letter-spacing: 0.2em;
    color: var(--ivory);
    margin-bottom: 1.25rem;
}

.ca-pillar-desc {
    font-family: 'Jost', sans-serif;
    font-size: 0.875rem;
    line-height: 1.85;
    color: rgba(250, 247, 242, 0.65);
    font-weight: 300;
}

/* =============================================================================
   ABOUT -- Founder
   ============================================================================= */

.ca-founder {
    background-color: var(--obsidian);
}

.ca-founder-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: center;
    padding: var(--ca-pad);
    max-width: var(--ca-max-width);
    margin: 0 auto;
}

.ca-founder-image-placeholder {
    background-color: var(--charcoal);
    aspect-ratio: 4 / 5;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    font-family: 'Jost', sans-serif;
    font-size: 0.625rem;
    font-weight: 200;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.ca-founder-quote {
    padding: 2rem 0;
}

.ca-founder-quote-text {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 300;
    font-style: italic;
    line-height: 1.6;
    color: var(--ivory);
}

/* =============================================================================
   SERVICE PAGES -- What to Expect (diamond bullet list)
   ============================================================================= */

.ca-what-to-expect {
    background-color: var(--charcoal);
}

.ca-what-to-expect .ca-section-inner {
    padding: var(--ca-pad);
    max-width: var(--ca-max-narrow);
    margin: 0 auto;
}

.ca-expect-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.ca-expect-item {
    font-family: 'Jost', sans-serif;
    font-size: 0.9375rem;
    line-height: 1.85;
    color: var(--ivory);
    font-weight: 300;
    padding: 1.375rem 0 1.375rem 2rem;
    border-bottom: 1px solid rgba(201, 169, 110, 0.1);
    position: relative;
}

.ca-expect-item:first-child {
    border-top: 1px solid rgba(201, 169, 110, 0.1);
}

.ca-expect-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 1.85rem;
    width: 5px;
    height: 5px;
    border: 0.75px solid var(--gold);
    transform: rotate(45deg);
}

/* =============================================================================
   SERVICE PAGES -- Case Teaser (navy)
   ============================================================================= */

.ca-case-teaser {
    background-color: var(--navy);
    text-align: center;
}

.ca-case-teaser .ca-section-inner {
    padding: 4rem 1.5rem;
    max-width: var(--ca-max-narrow);
    margin: 0 auto;
}

.ca-case-teaser .ca-eyebrow {
    color: rgba(201, 169, 110, 0.6);
}

.ca-case-teaser-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 300;
    font-style: italic;
    color: var(--ivory);
    letter-spacing: 0.03em;
    margin-bottom: 2rem;
    line-height: 1.4;
}

/* =============================================================================
   SERVICE PAGES -- Service CTA (charcoal)
   ============================================================================= */

.ca-service-cta {
    background-color: var(--charcoal);
    text-align: center;
}

.ca-service-cta .ca-section-inner {
    padding: 4.5rem 1.5rem;
    max-width: var(--ca-max-narrow);
    margin: 0 auto;
}

.ca-service-cta-heading {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 300;
    letter-spacing: 0.04em;
    color: var(--ivory);
    margin-bottom: 1.25rem;
    line-height: 1.3;
}

.ca-service-cta-sub {
    font-family: 'Jost', sans-serif;
    font-size: 0.875rem;
    line-height: 1.85;
    color: rgba(250, 247, 242, 0.6);
    font-weight: 300;
    margin-bottom: 0.5rem;
}

/* =============================================================================
   PORTFOLIO -- Full case studies page
   ============================================================================= */

.ca-portfolio-placeholder {
    padding: 8rem 1.5rem;
    text-align: center;
    max-width: 640px;
    margin: 0 auto;
}

.ca-portfolio-title {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: clamp(2rem, 4vw, 3.25rem);
    font-weight: 300;
    letter-spacing: 0.18em;
    color: var(--ivory);
    margin-bottom: 2rem;
}

.ca-portfolio-intro {
    font-family: 'Jost', sans-serif;
    font-size: 1rem;
    line-height: 1.85;
    color: var(--ivory);
    font-weight: 300;
    margin-bottom: 1rem;
}

.ca-portfolio-sub {
    font-family: 'Jost', sans-serif;
    font-size: 0.9375rem;
    color: rgba(250, 247, 242, 0.55);
    font-weight: 300;
    margin-bottom: 2.5rem;
}

.ca-case-study {
    padding: 3.5rem 1.5rem;
    border-bottom: 1px solid rgba(201, 169, 110, 0.08);
}

.ca-case-study:nth-child(odd) {
    background-color: var(--charcoal);
}

.ca-case-study:nth-child(even) {
    background-color: var(--obsidian);
}

.ca-case-study-inner {
    max-width: var(--ca-max-width);
    margin: 0 auto;
}

.ca-case-eyebrow {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.45em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 1.25rem;
    display: block;
}

.ca-case-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 300;
    letter-spacing: 0.03em;
    color: var(--ivory);
    margin-bottom: 3rem;
    line-height: 1.2;
}

.ca-case-body {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
}

.ca-case-block {
    border-top: 1px solid rgba(201, 169, 110, 0.15);
    padding-top: 1.75rem;
}

.ca-case-label {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 1rem;
}

.ca-case-block p {
    font-family: 'Jost', sans-serif;
    font-size: 0.9375rem;
    line-height: 1.85;
    color: rgba(250, 247, 242, 0.75);
    font-weight: 300;
}

.ca-portfolio-cta {
    background-color: var(--obsidian);
    text-align: center;
    padding: 4rem 1.5rem;
    border-top: 1px solid rgba(201, 169, 110, 0.12);
}

.ca-portfolio-cta-inner {
    max-width: var(--ca-max-narrow);
    margin: 0 auto;
}

.ca-portfolio-cta-text {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.25rem, 2.5vw, 1.875rem);
    font-weight: 300;
    font-style: italic;
    color: var(--ivory);
    margin-bottom: 0.5rem;
    line-height: 1.6;
}

/* =============================================================================
   EXPERIENCES LOOKBOOK -- 3-column overlay cards
   ============================================================================= */

.ca-experiences-grid {
    background-color: var(--obsidian);
}

.ca-experiences-grid .ca-section-inner {
    padding: var(--ca-pad);
    text-align: center;
}

.ca-experiences-note {
    font-family: 'Jost', sans-serif;
    font-size: 0.8125rem;
    font-weight: 200;
    color: var(--muted);
    letter-spacing: 0.1em;
    margin-bottom: 3rem;
    font-style: italic;
}

.ca-exp-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    margin-top: 1rem;
    text-align: left;
    background-color: rgba(201, 169, 110, 0.08);
}

/* Overlay card -- image fills card, content appears on hover */
.ca-exp-card {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background-color: var(--obsidian);
}

.ca-exp-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    transition: transform 600ms ease;
    overflow: hidden;
}

.ca-exp-image .ca-exp-img-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.ca-exp-image::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(12, 11, 9, 0.85) 0%,
        rgba(12, 11, 9, 0.2) 55%,
        transparent 100%
    );
    transition: background 400ms ease;
}

.ca-exp-card:hover .ca-exp-image .ca-exp-img-bg,
.ca-exp-card:hover .ca-exp-image {
    transform: scale(1.04);
}

.ca-exp-card:hover .ca-exp-image::before {
    background: rgba(12, 11, 9, 0.72);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.ca-exp-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.25rem;
    z-index: 1;
}

.ca-exp-card:hover .ca-exp-overlay {
    justify-content: center;
    align-items: center;
    text-align: center;
}

.ca-exp-cat {
    position: absolute;
    top: 1rem;
    left: 1.25rem;
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 8px;
    font-weight: 300;
    letter-spacing: 0.4em;
    color: var(--gold);
    opacity: 0.85;
    transition: opacity 300ms ease;
}

.ca-exp-card:hover .ca-exp-cat {
    opacity: 1;
}

.ca-exp-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.125rem;
    font-weight: 300;
    color: var(--ivory);
    line-height: 1.35;
    margin-bottom: 0;
}

.ca-exp-card:hover .ca-exp-title {
    margin-bottom: 0.25rem;
}

.ca-exp-hover-content {
    font-family: 'Jost', sans-serif;
    font-size: 0.8125rem;
    font-weight: 300;
    line-height: 1.75;
    color: rgba(250, 247, 242, 0.8);
    margin-top: 0.5rem;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 400ms ease, transform 400ms ease;
}

.ca-exp-card:hover .ca-exp-hover-content {
    opacity: 1;
    transform: translateY(0);
}

/* Suppress cached old card-body markup */
.ca-exp-card-body {
    display: none;
}

/* =============================================================================
   DESTINATION PAGES
   ============================================================================= */

.ca-destination-hero {
    background-color: var(--charcoal);
    padding: 5rem 1.5rem 4rem;
    text-align: center;
    border-bottom: 1px solid rgba(201, 169, 110, 0.1);
}

.ca-dest-hero-inner {
    max-width: var(--ca-max-narrow);
    margin: 0 auto;
}

.ca-dest-hero-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(2.5rem, 6vw, 4rem);
    font-weight: 300;
    letter-spacing: 0.04em;
    color: var(--ivory);
    margin-bottom: 1rem;
    line-height: 1;
}

.ca-destination-editorial {
    background-color: var(--obsidian);
    padding: var(--ca-pad);
}

.ca-dest-editorial-inner {
    max-width: var(--ca-max-narrow);
    margin: 0 auto;
}

.ca-dest-editorial-inner p {
    font-family: 'Jost', sans-serif;
    font-size: 1rem;
    font-weight: 300;
    line-height: 1.9;
    color: rgba(250, 247, 242, 0.8);
    margin-bottom: 1.75rem;
}

.ca-destination-services {
    background-color: var(--charcoal);
}

.ca-destination-services .ca-section-inner {
    padding: var(--ca-pad);
}

.ca-dest-services-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem 4rem;
    margin-top: 2.5rem;
}

.ca-dest-service-title {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 0.9375rem;
    font-weight: 300;
    letter-spacing: 0.1em;
    color: var(--ivory);
    margin-bottom: 0.875rem;
    line-height: 1.5;
}

.ca-dest-service-desc {
    font-family: 'Jost', sans-serif;
    font-size: 0.875rem;
    font-weight: 300;
    line-height: 1.8;
    color: rgba(250, 247, 242, 0.6);
}

.ca-destination-callout {
    background-color: var(--navy);
    text-align: center;
    padding: 4rem 1.5rem;
}

.ca-dest-callout-inner {
    max-width: var(--ca-max-narrow);
    margin: 0 auto;
}

.ca-dest-callout-text {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.25rem, 2.5vw, 1.625rem);
    font-weight: 300;
    font-style: italic;
    color: var(--ivory);
    letter-spacing: 0.02em;
    line-height: 1.5;
}

/* =============================================================================
   JOURNAL LANDING PAGE
   ============================================================================= */

.ca-journal-landing {
    background-color: var(--obsidian);
}

.ca-journal-landing .ca-section-inner {
    padding: var(--ca-pad);
}

.ca-journal-full-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
}

.ca-journal-full-card {
    border-top: 1px solid rgba(201, 169, 110, 0.12);
    border-right: 1px solid rgba(201, 169, 110, 0.08);
    padding: 2.5rem;
    transition: background-color var(--ca-transition);
}

.ca-journal-full-card:nth-child(even) {
    border-right: none;
}

.ca-journal-full-card:hover {
    background-color: rgba(201, 169, 110, 0.03);
}

.ca-journal-full-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.375rem;
    font-weight: 300;
    font-style: italic;
    color: var(--ivory);
    margin-bottom: 1rem;
    line-height: 1.4;
    transition: color 300ms ease;
}

.ca-journal-full-card:hover .ca-journal-full-title {
    color: var(--gold-pale);
}

.ca-journal-full-intro {
    font-family: 'Jost', sans-serif;
    font-size: 0.875rem;
    font-weight: 300;
    line-height: 1.85;
    color: rgba(250, 247, 242, 0.6);
    margin-bottom: 1.5rem;
}

/* Journal entry page */
.ca-journal-entry-page .entry-content p {
    font-family: 'Jost', sans-serif;
    font-size: 1.0625rem;
    font-weight: 300;
    line-height: 2;
    color: rgba(250, 247, 242, 0.85);
    margin-bottom: 1.75rem;
    max-width: 680px;
}

.ca-journal-back-inner {
    text-align: center;
    padding-bottom: 2rem;
}

/* =============================================================================
   CONTACT
   ============================================================================= */

.ca-contact-guide {
    background-color: var(--charcoal);
}

.ca-contact-guide .ca-section-inner {
    padding: var(--ca-pad);
    max-width: var(--ca-max-narrow);
    margin: 0 auto;
    text-align: center;
}

.ca-contact-preamble {
    font-family: 'Jost', sans-serif;
    font-size: 1rem;
    line-height: 1.85;
    color: rgba(250, 247, 242, 0.7);
    font-weight: 300;
    margin-bottom: 2.5rem;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
}

.ca-what-to-include-heading {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 0.9375rem;
    font-weight: 300;
    letter-spacing: 0.2em;
    color: var(--ivory);
    margin: 3.5rem 0 1.5rem;
}

.ca-include-list {
    list-style: none;
    padding: 0;
    margin: 0 auto 3rem;
    max-width: 400px;
    text-align: left;
}

.ca-include-list li {
    font-family: 'Jost', sans-serif;
    font-size: 0.875rem;
    line-height: 1.85;
    color: rgba(250, 247, 242, 0.7);
    font-weight: 300;
    padding: 0.875rem 0 0.875rem 1.75rem;
    border-bottom: 1px solid rgba(201, 169, 110, 0.1);
    position: relative;
}

.ca-include-list li:first-child {
    border-top: 1px solid rgba(201, 169, 110, 0.1);
}

.ca-include-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 1.375rem;
    width: 4px;
    height: 4px;
    border: 0.75px solid var(--gold);
    transform: rotate(45deg);
}

.ca-contact-promise {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.125rem;
    font-weight: 300;
    font-style: italic;
    color: rgba(250, 247, 242, 0.45);
    margin-top: 2rem;
}

/* =============================================================================
   PRINT STYLES
   ============================================================================= */

@media print {
    body::after { display: none; }

    :root {
        --gold:     #333;
        --ivory:    #000;
        --obsidian: #fff;
        --charcoal: #fff;
    }

    .ca-whatsapp-btn,
    .ca-footer-custom { display: none; }
}

/* =============================================================================
   RESPONSIVE -- 1024px
   ============================================================================= */

@media (max-width: 1024px) {
    .ca-geography-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .ca-case-body {
        grid-template-columns: 1fr 1fr;
        gap: 2rem;
    }

    .ca-footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 3rem;
    }

    .ca-footer-grid > *:first-child {
        grid-column: 1 / -1;
    }

    .ca-hiw-steps,
    .ca-pillars {
        grid-template-columns: 1fr;
    }

    .ca-hiw-sep,
    .ca-pillar-sep {
        display: none;
    }

    .ca-pillar {
        padding-left: 0;
        padding-right: 0;
    }

    .ca-dest-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .ca-exp-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .ca-journal-full-grid {
        grid-template-columns: 1fr;
    }

    .ca-journal-full-card:nth-child(even) {
        border-right: none;
    }

    .ca-dest-services-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

/* =============================================================================
   RESPONSIVE -- 768px
   Scale touch targets, reduce hero text, tighten padding
   ============================================================================= */

@media (max-width: 768px) {
    :root {
        --ca-pad: 4rem 1.25rem;
    }

    .ca-section-heading,
    .ca-cta-heading {
        font-size: 1.875rem;
    }

    .ca-work-grid {
        grid-template-columns: 1fr;
    }

    .ca-testimonial-list {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .ca-geography-grid {
        grid-template-columns: 1fr 1fr;
        gap: 1.5rem;
    }

    .ca-founder-inner {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .ca-case-body {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .ca-case-title {
        font-size: 2rem;
    }

    .ca-footer-grid {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .ca-footer-grid > *:first-child {
        grid-column: auto;
    }

    .ca-journal-grid {
        grid-template-columns: 1fr;
    }

    .ca-dest-hero-title {
        font-size: 2.25rem;
    }

    .ca-hero-headline {
        font-size: 1.625rem;
    }

    /* Disable expanding arrow on touch -- no hover state on mobile */
    .ca-cta-link:hover {
        padding-right: 0;
    }

    .ca-cta-link::after {
        display: none;
    }

    .ca-hiw-sep,
    .ca-pillar-sep {
        display: none;
    }
}

/* =============================================================================
   RESPONSIVE -- 480px
   Hide background video, disable stagger delays, full-width buttons
   ============================================================================= */

@media (max-width: 480px) {
    :root {
        --ca-pad: 3rem 1rem;
    }

    h1,
    .ca-case-title {
        font-size: 1.875rem;
    }

    .ca-geography-grid {
        grid-template-columns: 1fr;
    }

    .ca-exp-grid {
        grid-template-columns: 1fr;
    }

    /* Full-width primary button with 44px minimum touch target */
    .btn,
    .wp-block-button__link,
    .wp-element-button,
    .ca-hero-cta {
        min-height: 44px;
    }

    .ca-whatsapp-btn {
        display: block;
        text-align: center;
        min-height: 44px;
        line-height: 44px;
        padding-top: 0;
        padding-bottom: 0;
    }

    .ca-footer-custom {
        padding: 3rem 1rem 0;
    }

    .ca-hiw-number {
        font-size: 2.5rem;
    }

    /* 44px touch targets for footer nav links */
    .ca-footer-nav-list a {
        display: block;
        padding: 0.5rem 0;
    }

    .ca-cta-link {
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
    }

    .ca-hero-cta {
        padding: 14px 24px;
    }

    /* 16px minimum — prevents iOS Safari auto-zoom on input focus */
    input,
    select,
    textarea {
        font-size: 1rem;
    }

    /* Tighter portfolio case study padding on small screens */
    .ca-case-study {
        padding: 2.5rem 1rem;
    }
}

/* =============================================================================
   EXPERIENCES LOOKBOOK GRID
   ============================================================================= */

.ca-experiences-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background-color: rgba(201, 169, 110, 0.08);
    margin: 0;
}

.ca-experience-card {
    position: relative;
    overflow: hidden;
    aspect-ratio: 3 / 4;
    background-color: var(--charcoal);
    cursor: default;
}

.ca-experience-img {
    position: absolute;
    inset: 0;
    transition: filter 500ms ease, transform 500ms ease;
}

.ca-experience-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ca-experience-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.5rem;
    background: linear-gradient(to top, rgba(12,11,9,0.88) 0%, rgba(12,11,9,0.3) 60%, transparent 100%);
    transition: background 500ms ease;
}

.ca-experience-cat {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.4em;
    color: var(--gold);
    text-transform: uppercase;
    margin-bottom: 0.5rem;
    display: block;
}

.ca-experience-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.25rem;
    font-weight: 300;
    color: var(--ivory);
    margin: 0 0 0.75rem;
    line-height: 1.2;
}

.ca-experience-desc {
    font-family: 'Jost', sans-serif;
    font-size: 0.8125rem;
    font-weight: 300;
    color: rgba(250, 247, 242, 0.75);
    line-height: 1.6;
    margin: 0;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 400ms ease, opacity 400ms ease;
}

.ca-experience-card:hover .ca-experience-img {
    filter: brightness(0.55);
    transform: scale(1.03);
}

.ca-experience-card:hover .ca-experience-desc {
    max-height: 120px;
    opacity: 1;
}

@media (max-width: 768px) {
    .ca-experiences-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .ca-experiences-grid {
        grid-template-columns: 1fr;
    }

    .ca-experience-card {
        aspect-ratio: 4 / 3;
    }

    .ca-experience-desc {
        max-height: 80px;
        opacity: 1;
    }

    /* Show experience overlay without hover — no hover state on touch */
    .ca-exp-hover-content {
        opacity: 1;
        transform: translateY(0);
    }

    /* Always-dark overlay so text is readable without hover dimming */
    .ca-exp-image::before {
        background: rgba(12, 11, 9, 0.72);
    }
}

/* =============================================================================
   HERO ENTRANCE ANIMATION
   JS adds .ca-hero-anim-child to each child of the hero container.
   --hero-delay is set as an inline CSS property by JS (value in ms).
   ============================================================================= */

.ca-hero-anim-child {
    animation: ca-hero-fade-up 800ms cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
    animation-delay: calc(var(--hero-delay, 0) * 1ms);
}

@keyframes ca-hero-fade-up {
    from {
        opacity: 0;
        transform: translateY(22px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* =============================================================================
   NAV ITEM SPACING — keep all top-level items on one line
   Parent theme sets flex-wrap:wrap and 15px per-side li margins — override both.
   ============================================================================= */

/* Prevent nav from wrapping to a second row */
.navbar-nav {
    flex-wrap: nowrap !important;
}

/* Tighten per-item margins (parent: 0.9375em each side = 30px per item) */
.navbar-nav > li {
    margin: 0 0.45rem;
}

.main-navigation ul.nav-menu > li > a,
.main-navigation > div > ul > li > a {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

/* =============================================================================
   NAV HOVER UNDERLINE
   Slides left-to-right on hover. Active page: permanently visible.
   Skips parent items that open dropdowns.
   ============================================================================= */

.main-navigation li:not(.menu-item-has-children) > a {
    position: relative;
}

.main-navigation li:not(.menu-item-has-children) > a::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    width: 0;
    height: 0.75px;
    background-color: var(--gold);
    transition: width 300ms ease;
}

.main-navigation li:not(.menu-item-has-children) > a:hover::after,
.main-navigation .current-menu-item:not(.menu-item-has-children) > a::after,
.main-navigation .current-page-ancestor:not(.menu-item-has-children) > a::after {
    width: 100%;
}

/* =============================================================================
   CARD HOVER LIFT
   Adds subtle translateY lift to interactive cards.
   Combined with existing border-color transitions.
   ============================================================================= */

.ca-work-card {
    transition: border-color var(--ca-transition), transform 350ms ease;
}

.ca-work-card:hover {
    transform: translateY(-4px);
}

.ca-dest-card {
    transition: border-color var(--ca-transition), transform 350ms ease;
}

.ca-dest-card:hover {
    transform: translateY(-3px);
}

.ca-journal-full-card {
    transition: border-color var(--ca-transition),
                background-color var(--ca-transition),
                transform 350ms ease;
}

.ca-journal-full-card:hover {
    transform: translateY(-3px);
}

/* Portfolio case study — left-border gold reveal on hover */
.ca-case-study {
    border-left: 2px solid transparent;
    padding-left: calc(1.5rem - 2px);
    transition: border-left-color 400ms ease;
}

.ca-case-study:hover {
    border-left-color: rgba(201, 169, 110, 0.4);
}

/* =============================================================================
   ANIMATED DIVIDER
   JS adds .ca-divider-js; width expands from 0 when .ca-revealed is applied.
   ============================================================================= */

.ca-divider-js {
    width: 0 !important;
    opacity: 0;
    transition: width 900ms cubic-bezier(0.4, 0, 0.2, 1),
                opacity 500ms ease;
    /* Override default reveal transform — dividers expand, not fade-up */
    transform: none !important;
}

.ca-divider-js.ca-revealed {
    width: 60px !important;
    opacity: 1;
    transform: none !important;
}

/* =============================================================================
   SCROLL PROGRESS BAR
   Thin gold line at top of viewport. JS sets width %.
   ============================================================================= */

#ca-scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    height: 1.5px;
    width: 0%;
    background-color: var(--gold);
    z-index: 99999;
    pointer-events: none;
    opacity: 0.75;
    transform-origin: left;
}

/* =============================================================================
   BACK TO TOP BUTTON
   Appears bottom-left after 400px scroll. Gold arrow, matches chat bubble style.
   ============================================================================= */

#ca-back-top {
    position: fixed;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    width: 44px;
    height: 44px;
    background: rgba(26, 25, 23, 0.7);
    border: 1px solid rgba(201, 169, 110, 0.2);
    border-radius: 50%;
    color: var(--gold);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 9998;
    opacity: 0;
    pointer-events: none;
    transition: opacity 300ms ease,
                transform 300ms ease,
                border-color 300ms ease;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

#ca-back-top.ca-back-top-visible {
    opacity: 0.72;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
}

#ca-back-top:hover {
    opacity: 1;
    border-color: var(--gold);
}

#ca-back-top svg {
    width: 18px;
    height: 18px;
}

@media (max-width: 480px) {
    #ca-back-top {
        bottom: 5.5rem;
        left: 50%;
        transform: translateX(-50%) translateY(10px);
        width: 40px;
        height: 40px;
    }

    #ca-back-top.ca-back-top-visible {
        transform: translateX(-50%) translateY(0);
    }
}

/* =============================================================================
   CUSTOM CURSOR
   Gold dot that follows the mouse on pointer/hover devices only.
   Expands to ring outline over interactive elements.
   ============================================================================= */

#ca-cursor {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 8px;
    height: 8px;
    background-color: var(--gold);
    border-radius: 50%;
    pointer-events: none;
    z-index: 99997;
    opacity: 0;
    will-change: transform;
    transition: width 220ms ease,
                height 220ms ease,
                background-color 220ms ease,
                border-color 220ms ease,
                opacity 200ms ease;
}

#ca-cursor.ca-cursor-hover {
    width: 22px;
    height: 22px;
    background-color: transparent;
    border: 1px solid rgba(201, 169, 110, 0.6);
    opacity: 0.7 !important;
}

#ca-cursor.ca-cursor-visible {
    opacity: 0.8;
}

@media (pointer: fine) and (hover: hover) {
    #ca-cursor {
        display: block;
    }

    html,
    a,
    button,
    [role="button"],
    input,
    label,
    select,
    textarea {
        cursor: none !important;
    }
}

@media (pointer: coarse) {
    #ca-cursor {
        display: none !important;
    }
}

/* =============================================================================
   CURSOR DISABLED — per UX review. Gold dot removed entirely.
   Restore default system cursor everywhere.
   ============================================================================= */

#ca-cursor {
    display: none !important;
}

@media (pointer: fine) and (hover: hover) {
    html {
        cursor: auto !important;
    }

    a,
    button,
    [role="button"],
    label,
    select {
        cursor: pointer !important;
    }
}

/* =============================================================================
   GOLD COLOR SYSTEM — richer, higher-contrast values
   Overrides :root block. All downstream CSS variables update automatically.
   ============================================================================= */

:root {
    --gold:        #C4921E;
    --gold-dark:   #A37318;
    --gold-pale:   #DEB86A;
    /* WhatsApp button — muted forest green. Reads as messaging without
       clashing with the gold palette. Stays harmonious on obsidian. */
    --wa-green:    #3A6042;
    --wa-green-lt: #4A7854;
}

/* =============================================================================
   SIDE NAVIGATION — Keep Inspiro panel hidden. Custom hamburger overlay below.
   ============================================================================= */

#side-nav,
.side-nav,
.side-nav-overlay {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.navbar-toggle {
    display: none !important;
}

/* =============================================================================
   MOBILE NAVIGATION v2 — Slide-panel overlay
   Hamburger top-right below 1024px. Spring-eased full-screen overlay.
   Slide panels for Services / Destinations. Swipe-to-close.
   ============================================================================= */

/* =============================================================================
   MOBILE NAVIGATION v2 — Native-app panel architecture
   Slide panels, spring animation, swipe-to-close.
   Breakpoint: 1024px (hamburger visible below this).
   ============================================================================= */

/* Scroll lock */
body.ca-nav-open {
    overflow: hidden;
}

/* Hide hamburger when nav is open — close X inside overlay takes over.
   Without this, the hamburger (z-index 10001) sits on top of the close
   button (z-index 10000) at identical coordinates, making it unreachable. */
body.ca-nav-open .ca-mob-ham {
    display: none !important;
}

/* Hamburger trigger */
.ca-mob-ham {
    display: none;
    position: fixed;
    top: 12px;
    right: 16px;
    z-index: 10001;
    width: 48px;
    height: 48px;
    background: transparent;
    border: none;
    padding: 13px;
    cursor: pointer;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
}

@media (max-width: 1024px) {
    .ca-mob-ham { display: flex; }
    .main-navigation,
    #primary-navigation { display: none !important; }
}

.ca-mob-ham span {
    display: block;
    width: 22px;
    height: 1px;
    background: var(--gold);
    border-radius: 1px;
}

/* Overlay */
.ca-mob-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: var(--obsidian);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.42s cubic-bezier(0.32, 0.72, 0, 1),
                opacity 0.32s ease;
    will-change: transform;
}

.ca-mob-overlay.is-open {
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
}

/* Close button — top right of overlay */
.ca-mob-close {
    position: absolute;
    top: 12px;
    right: 16px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--gold);
    flex-shrink: 0;
    z-index: 2;
}

/* Panel wrapper — clips the slide transition */
.ca-mob-panels {
    flex: 1;
    position: relative;
    overflow: hidden;
    margin-top: 64px;
}

/* Individual panels */
.ca-mob-panel {
    position: absolute;
    inset: 0;
    overflow-y: auto;
    padding: 0 36px 24px;
    transition: transform 0.38s cubic-bezier(0.32, 0.72, 0, 1);
    -webkit-overflow-scrolling: touch;
}

.ca-mob-panel--main {
    transform: translateX(0);
}

.ca-mob-panel--main.is-pushed {
    transform: translateX(-100%);
}

.ca-mob-panel--sub {
    transform: translateX(100%);
}

.ca-mob-panel--sub.is-visible {
    transform: translateX(0);
}

/* Back button */
.ca-mob-back {
    display: flex;
    align-items: center;
    gap: 10px;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--muted);
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 11px;
    font-weight: 300;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    padding: 16px 0 20px;
    min-height: 48px;
    transition: color 0.2s ease;
}

.ca-mob-back:hover { color: var(--ivory); }

/* Sub-panel title */
.ca-mob-sub-title {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 11px;
    font-weight: 300;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--gold);
    margin: 0 0 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(201,169,110,0.15);
}

/* Nav list */
.ca-mob-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Individual items — stagger animation */
.ca-mob-item {
    border-bottom: 1px solid rgba(201,169,110,0.1);
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.32s ease calc(var(--item-i, 0) * 50ms),
                transform 0.32s ease calc(var(--item-i, 0) * 50ms),
                border-color 0.2s ease;
}

.ca-mob-item.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Link row */
.ca-mob-item > a.ca-mob-link,
.ca-mob-item > a.ca-mob-link--solo {
    display: flex;
    align-items: center;
    flex: 1;
    padding: 18px 0;
    min-height: 48px;
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 15px;
    font-weight: 300;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--ivory);
    text-decoration: none;
    transition: color 0.2s ease;
}

/* Items that have a chevron: flex row */
.ca-mob-item:has(.ca-mob-chevron) {
    display: flex;
    align-items: center;
}

.ca-mob-item:has(.ca-mob-chevron) > a.ca-mob-link {
    flex: 1;
}

/* Fallback for browsers without :has() support (older Android WebViews) */
.ca-mob-item--has-children {
    display: flex;
    align-items: center;
}

.ca-mob-item--has-children > a.ca-mob-link {
    flex: 1;
}

.ca-mob-item a:hover { color: var(--gold-pale); }

/* Chevron button */
.ca-mob-chevron {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--gold);
    transition: color 0.2s ease;
}

.ca-mob-chevron:hover { color: var(--gold-pale); }

/* Sub-list items — smaller font */
.ca-mob-list--sub .ca-mob-link--sub {
    display: block;
    padding: 14px 0;
    min-height: 48px;
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--ivory);
    text-decoration: none;
    transition: color 0.2s ease;
}

.ca-mob-list--sub .ca-mob-link--sub:hover { color: var(--gold-pale); }

/* WhatsApp — bottom of overlay */
.ca-mob-wa {
    flex-shrink: 0;
    padding: 24px 36px 36px;
    border-top: 1px solid rgba(201,169,110,0.12);
}

.ca-mob-wa a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 52px;
    padding: 14px 24px;
    background: var(--wa-green);
    color: var(--ivory);
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.2s ease;
}

.ca-mob-wa a:hover { background: var(--wa-green-lt); }

/* =============================================================================
   PORTFOLIO — Content width constraints and animation entry states
   Prevents text from spanning full viewport width on full-width template.
   ============================================================================= */

.ca-case-study-inner {
    max-width: var(--ca-max-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
    box-sizing: border-box !important;
}

.ca-portfolio-placeholder,
.ca-portfolio-cta-inner {
    max-width: var(--ca-max-narrow) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Case study — visible hover state for desktop */
.ca-case-study {
    transition: border-left-color 400ms ease, background-color 500ms ease;
}

.ca-case-study:nth-child(odd):hover {
    background-color: var(--charcoal);
}

.ca-case-study:nth-child(even):hover {
    background-color: var(--obsidian);
}

/* Case block columns — stagger reveal handled by JS --stagger var */
.ca-case-block {
    transition: opacity 600ms ease, transform 600ms ease;
    transition-delay: calc(var(--stagger, 0) * 120ms);
}

/* =============================================================================
   CTA BUTTON — Refined ghost style matching visual identity
   Lightweight: transparent bg, hairline border, editorial hover underline.
   ============================================================================= */

.wp-block-button .wp-block-button__link,
.wp-block-buttons .wp-block-button__link {
    background: transparent !important;
    border: 1px solid rgba(250, 247, 242, 0.28) !important;
    color: rgba(250, 247, 242, 0.82) !important;
    padding: 13px 40px !important;
    font-family: 'Cormorant SC', Georgia, serif !important;
    font-size: 12px !important;
    font-weight: 300 !important;
    letter-spacing: 0.45em !important;
    text-transform: uppercase !important;
    border-radius: 1px !important;
    text-decoration: none !important;
    display: inline-block !important;
    transition: border-color 350ms ease,
                color 350ms ease,
                text-decoration-color 350ms ease !important;
}

.wp-block-button .wp-block-button__link:hover,
.wp-block-buttons .wp-block-button__link:hover {
    border-color: var(--gold) !important;
    color: var(--gold-pale) !important;
    background: transparent !important;
    text-decoration: underline !important;
    text-underline-offset: 4px !important;
    text-decoration-color: rgba(201, 169, 110, 0.5) !important;
}

/* =============================================================================
   HOMEPAGE SECTION POLISH — below-the-fold improvements only
   Hero video and general layout untouched.
   ============================================================================= */

/* Tighten up section eyebrow spacing */
.ca-section .ca-eyebrow,
.wp-block-group .ca-eyebrow {
    margin-bottom: 1rem;
}

/* Service/dest cards on homepage — stronger border on hover */
.ca-dest-card:hover,
.ca-work-card:hover {
    border-color: rgba(196, 146, 30, 0.45);
}

/* "Learn More About Us" text link — match updated gold */
.ca-cta-link::after {
    background-color: var(--gold);
}

/* =============================================================================
   V2: FLUID NEGATIVE SPACE & READABILITY
   Gutenberg .ca-section groups use fluid vertical padding.
   Prose pages (journal articles) cap line length for readability.
   Inter-section breathing room via --ca-section-gap.
   ============================================================================= */

/* Fluid vertical padding on all Gutenberg ca-section groups */
.wp-block-group.ca-section {
    padding-top:    var(--ca-section-gap);
    padding-bottom: var(--ca-section-gap);
}

/* Stacked sections: no double-gap between adjacent ones */
.wp-block-group.ca-section + .wp-block-group.ca-section {
    padding-top: calc(var(--ca-section-gap) * 0.6);
}

/* Prose width cap — journal articles and narrow text pages */
.wp-block-group.ca-section[style*="contentSize:740px"] > .wp-block-group__inner-container,
.wp-block-group.ca-section .wp-block-paragraph,
.wp-block-group.ca-section .wp-block-heading {
    max-width: var(--ca-max-narrow);
    margin-left:  auto;
    margin-right: auto;
}

/* Body text: slightly more line-height on narrow prose */
.wp-block-group[style*="contentSize:740px"] p {
    line-height: 1.95;
    font-size: clamp(0.9375rem, 1.2vw, 1rem);
}

/* Paragraph spacing within sections */
.wp-block-group.ca-section .wp-block-paragraph + .wp-block-paragraph {
    margin-top: 1.25em;
}

/* Divider vertical breathing room */
.wp-block-separator.ca-divider {
    margin-top:    clamp(2rem, 4vw, 3.5rem);
    margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

/* Cover block (hero) min-height fluid */
.wp-block-cover.ca-hero {
    min-height: clamp(44vh, 52vh, 60vh) !important;
}

/* Image rendering — smooth scaling, no GPU layer promotion */
.wp-block-cover__image-background,
.wp-block-image img {
    image-rendering: auto;
}

/* =============================================================================
   MOBILE PERFORMANCE — disable GPU-expensive effects below 768px
   backdrop-filter and film grain are the two largest paint costs on mobile.
   All visual effects preserved on desktop.
   ============================================================================= */

@media (max-width: 768px) {

    /* Kill backdrop-filter on the specific elements that carry it.
       Avoids the * selector which forces style recalculation on every node. */
    .site-header,
    #masthead,
    .btn,
    .btn-default,
    .btn-secondary,
    .wp-block-button__link,
    .wp-element-button,
    .custom-header .btn,
    .header-image .btn,
    .has-header-video .custom-header a.btn,
    .has-header-image .custom-header a.btn,
    .custom-header-media + .custom-header-content .btn,
    .site-header .btn,
    .ca-hero-cta,
    #ca-back-top,
    .wp-block-button .wp-block-button__link,
    .wp-block-buttons .wp-block-button__link {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    /* Film grain — fixed SVG filter repaints full viewport on every scroll */
    body::after {
        display: none;
    }

    /* Scroll progress bar — marginal value on mobile, saves a paint layer */
    #ca-scroll-progress {
        display: none;
    }

    /* Parallax — already disabled in JS below 768px, belt-and-suspenders */
    .ca-parallax {
        transform: none !important;
    }

    /* Release GPU compositing layer on hero; parallax already handled above */
    .ca-parallax,
    .custom-header-media {
        will-change: auto;
    }

    /* Reveal transitions — shorter on mobile for perceived speed */
    .ca-reveal {
        transition-duration: 400ms !important;
    }

    /* Buttons — solid background replaces glass effect */
    .wp-block-button__link,
    .wp-block-button .wp-block-button__link,
    .wp-block-buttons .wp-block-button__link {
        background: rgba(12, 11, 9, 0.85) !important;
    }
}

/* =============================================================================
   PORTFOLIO PAGE — Case study styling
   Targets h6 eyebrows and h3 titles within the portfolio page.
   Body class .ca-page-portfolio added via functions.php body_class filter.
   ============================================================================= */

.ca-page-portfolio .entry-content h6 {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--gold);
    margin-top: 4rem;
    margin-bottom: 0.4rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(201, 169, 110, 0.15);
}

.ca-page-portfolio .entry-content h3 {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.4rem, 2.2vw, 1.8rem);
    font-weight: 300;
    font-style: italic;
    color: var(--ivory);
    margin-top: 0.3rem;
    margin-bottom: 1.2rem;
}

.ca-page-portfolio .entry-content .wp-block-separator {
    border-color: rgba(201, 169, 110, 0.1);
    margin: 3rem 0;
}

.ca-page-portfolio .entry-content p em,
.ca-page-portfolio .entry-content li em {
    color: var(--gold-pale);
    font-style: italic;
}

/* =============================================================================
   DESTINATION CARDS — Hover image blur + link
   Used on /destinations/ page with .ca-dest-card elements.
   ============================================================================= */

.ca-dest-card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background-color: rgba(201, 169, 110, 0.08);
    margin: 0 0 1px;
}

.ca-dest-card {
    position: relative;
    display: block;
    min-height: 280px;
    overflow: hidden;
    text-decoration: none;
    color: var(--ivory);
    cursor: pointer;
}

.ca-dest-card-bg {
    position: absolute;
    inset: -12px;
    width: calc(100% + 24px);
    height: calc(100% + 24px);
    background-size: cover;
    background-position: center;
    background-color: var(--charcoal);
    transition: filter 500ms ease, transform 500ms ease;
}

.ca-dest-card-dim {
    position: absolute;
    inset: 0;
    background: rgba(12, 11, 9, 0.52);
    transition: background 400ms ease;
    z-index: 1;
}

.ca-dest-card:hover .ca-dest-card-bg {
    transform: scale(1.04);
}

.ca-dest-card:hover .ca-dest-card-dim {
    background: rgba(12, 11, 9, 0.35);
}

.ca-dest-card-info {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.75rem 1.5rem;
}

.ca-dest-card-region {
    display: block;
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 9px;
    font-weight: 300;
    letter-spacing: 0.4em;
    color: var(--gold);
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.ca-dest-card-name {
    display: block;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.3rem, 2vw, 1.6rem);
    font-weight: 300;
    font-style: italic;
    color: var(--ivory);
    line-height: 1.1;
    transition: color 350ms ease;
}

.ca-dest-card:hover .ca-dest-card-name {
    color: var(--gold-pale);
}

.ca-dest-card-teaser {
    display: block;
    font-size: 12px;
    font-weight: 300;
    color: rgba(250, 247, 242, 0.65);
    margin-top: 0.5rem;
    line-height: 1.6;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 400ms ease, opacity 400ms ease;
}

.ca-dest-card:hover .ca-dest-card-teaser {
    max-height: 80px;
    opacity: 1;
}

@media (max-width: 768px) {
    /* Carousel wrapper — same pattern as .ca-portfolio-viewport */
    .ca-dest-card-grid {
        display: flex;
        overflow-x: scroll;
        scroll-snap-type: x mandatory;
        scroll-snap-stop: always;
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-x;
        scrollbar-width: none;
        -ms-overflow-style: none;
        gap: 0.75rem;
        padding-inline: 1.25rem;
        scroll-padding-inline: 1.25rem;
        background-color: transparent;
    }
    .ca-dest-card-grid::-webkit-scrollbar { display: none; }

    .ca-dest-card {
        flex-shrink: 0;
        width: calc(85% - 1.25rem);
        min-height: 260px;
        scroll-snap-align: start;
        border-radius: 2px;
    }

    /* Permanent gradient — no hover-only state on touch (locked decision) */
    .ca-dest-card-dim {
        background: linear-gradient(to bottom, transparent 40%, rgba(12,11,9,0.75) 100%);
    }
    .ca-dest-card:hover .ca-dest-card-dim {
        background: linear-gradient(to bottom, transparent 40%, rgba(12,11,9,0.75) 100%);
    }

    /* Strip hover blur/scale on mobile */
    .ca-dest-card:hover .ca-dest-card-bg {
        filter: none;
        transform: none;
    }

    /* Destination name: large Cormorant Garamond italic, bottom-anchored (locked decision) */
    .ca-dest-card-name {
        font-size: 1.6rem;
        font-style: italic;
    }

    /* Hide teaser on mobile — name only, image does the work (locked decision) */
    .ca-dest-card-teaser {
        display: none;
    }

    /* Hide region eyebrow on mobile — clean card, name only */
    .ca-dest-card-region {
        display: none;
    }
}
/* No 480px breakpoint — carousel handles all mobile sizes */

/* =============================================================================
   CONTACT FORM — Two-step, brand-consistent styling
   ============================================================================= */

.ca-contact-form {
    max-width: 600px;
    margin: 0 auto;
}

.ca-form-step {
    display: none;
}

.ca-form-step.active {
    display: block;
}

.ca-form-step-label {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    letter-spacing: 0.4em;
    color: var(--gold);
    text-transform: uppercase;
    margin-bottom: 2rem;
}

.ca-form-field {
    margin-bottom: 1.5rem;
}

.ca-form-field input[type="text"],
.ca-form-field input[type="email"],
.ca-form-field select,
.ca-form-field textarea {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(250, 247, 242, 0.2);
    color: var(--ivory);
    font-family: 'Jost', sans-serif;
    font-size: 15px;
    font-weight: 300;
    padding: 0.75rem 0;
    outline: none;
    transition: border-color 300ms ease;
    -webkit-appearance: none;
    border-radius: 0;
}

.ca-form-field input:focus,
.ca-form-field select:focus,
.ca-form-field textarea:focus {
    border-bottom-color: var(--gold);
}

.ca-form-field input::placeholder,
.ca-form-field textarea::placeholder {
    color: var(--muted);
    font-weight: 300;
}

.ca-form-field select {
    cursor: pointer;
    color: var(--muted);
}

.ca-form-field select option {
    background: var(--charcoal);
    color: var(--ivory);
}

.ca-form-field textarea {
    resize: none;
    line-height: 1.85;
}

.ca-form-label {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    letter-spacing: 0.35em;
    color: var(--muted);
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.ca-form-radio-group {
    padding: 0.5rem 0;
}

.ca-radio-label {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 14px;
    font-weight: 300;
    color: rgba(250, 247, 242, 0.75);
    margin-bottom: 0.75rem;
    cursor: pointer;
    transition: color 250ms ease;
}

.ca-radio-label:hover {
    color: var(--ivory);
}

.ca-radio-label input[type="radio"] {
    accent-color: var(--gold);
    width: 14px;
    height: 14px;
    cursor: pointer;
    flex-shrink: 0;
}

.ca-form-btn {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    background: transparent;
    border: 1px solid rgba(250, 247, 242, 0.28);
    color: rgba(250, 247, 242, 0.82);
    padding: 13px 40px;
    border-radius: 1px;
    cursor: pointer;
    transition: border-color 300ms ease, color 300ms ease;
    margin-top: 1.5rem;
}

.ca-form-btn:hover {
    border-color: var(--gold);
    color: var(--gold-pale);
}

.ca-form-btn--ghost {
    border-color: rgba(250, 247, 242, 0.12);
    color: var(--muted);
    padding: 13px 24px;
}

.ca-form-actions {
    display: flex;
    gap: 1rem;
    align-items: center;
    margin-top: 0.5rem;
}

.ca-form-success {
    text-align: center;
    padding: 3rem 0;
}

.ca-form-success p {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.3rem;
    font-weight: 300;
    font-style: italic;
    color: var(--gold-pale);
}

.ca-form-error {
    color: rgba(220, 80, 60, 0.9);
    font-size: 14px;
    margin-bottom: 1rem;
}

/* =============================================================================
   PARTNER LOGOS SECTION — About page
   ============================================================================= */

.ca-partner-logos {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}

.ca-partner-logos img {
    height: 70px;
    width: auto;
    max-width: 160px;
    object-fit: contain;
    flex-shrink: 1;
}

/* Dark brand logos — invert to white to match the row */
.ca-partner-logos img[alt="Four Seasons"],
.ca-partner-logos img[alt="Fairmont"],
.ca-partner-logos img[alt="EDITION"],
.ca-partner-logos img[alt="Edition"],
.ca-partner-logos img[alt="EDITION Hotels"] {
    filter: brightness(0) invert(1);
}

/* =============================================================================
   V2: PAGE TITLE SUPPRESSION
   The structural .entry-title creates a gap between the header and the hero.
   Hero headline provides heading context. Hide the structural title globally
   on pages, keeping exactly one H1 (the hero or first cover block heading).
   ============================================================================= */

body.page:not(.home) .entry-header {
    display: none !important;
}

/* Journal entry pages — keep entry-header for articles where hero is absent */
body.ca-journal-entry-page .entry-header {
    display: block !important;
}

/* =============================================================================
   V2: CONTACT FORM UX FIXES
   cursor: text on input fields — browser default is sometimes wrong on dark.
   ============================================================================= */

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea,
.ca-form-field input[type="text"],
.ca-form-field input[type="email"],
.ca-form-field input[type="tel"],
.ca-form-field textarea,
form input[type="text"],
form input[type="email"],
form input[type="tel"],
form textarea {
    cursor: text !important;
}

/* =============================================================================
   V2: SERVICE PAGES — SECTION VISUAL DIFFERENTIATION
   Alternating obsidian / charcoal gives each section a distinct zone.
   Applied to all .page-{slug} body classes WordPress generates automatically.
   ============================================================================= */

.ca-page-private-travel-design .ca-destination-editorial,
.ca-page-exclusive-experiences .ca-destination-editorial,
.ca-page-lifestyle-concierge .ca-destination-editorial,
.ca-page-corporate-executive .ca-destination-editorial,
.ca-page-special-projects .ca-destination-editorial {
    background-color: var(--charcoal);
}

.ca-page-private-travel-design .ca-destination-services,
.ca-page-exclusive-experiences .ca-destination-services,
.ca-page-lifestyle-concierge .ca-destination-services,
.ca-page-corporate-executive .ca-destination-services,
.ca-page-special-projects .ca-destination-services {
    background-color: var(--obsidian);
}

/* =============================================================================
   V2: FOOTER NAV — heading now a span, consistent with brand column headings
   ============================================================================= */

.ca-footer-nav-heading {
    font-size: 11px;
    letter-spacing: 0.4em;
}

/* =============================================================================
   V2: DESTINATION PAGES — hero cover blocks for image-driven layouts
   Parallax depth on hero images (landscape photography pages).
   ============================================================================= */

.ca-destination-hero-cover.wp-block-cover {
    min-height: clamp(52vh, 60vh, 70vh) !important;
}

.ca-destination-hero-cover .wp-block-cover__image-background {
    transition: transform 600ms ease;
}

/* =============================================================================
   CONTACT PAGE — Hero as full-screen background, glass panels overlay
   Form visible without scrolling on both desktop and mobile
   Inspiro structure: .entry-cover-image > .single-featured-image-header img
   ============================================================================= */

/* Article becomes the full-screen positioning context */
.page-contact #main,
.page-contact #main > article {
    position: relative;
    height: 100svh;
    overflow: hidden;
}

/* Cover image fills full height as background layer */
.page-contact .entry-cover-image {
    position: absolute !important;
    inset: 0 !important;
    height: 100svh !important;
    overflow: hidden;
    z-index: 0;
}

.page-contact .single-featured-image-header {
    position: absolute !important;
    inset: 0 !important;
    height: 100% !important;
}

.page-contact .single-featured-image-header img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Hide page title — hero is background only */
.page-contact .entry-header {
    display: none;
}

/* Content overlays hero */
.page-contact .entry-content {
    position: absolute;
    inset: 0;
    z-index: 10;
    margin-top: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 100px 2rem 2rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/* Constrain panels to readable width on desktop */
.page-contact .entry-content > .wp-block-group {
    max-width: 680px;
    width: 100%;
}

/* Info row (Based In / Coverage / Response) */
.page-contact .entry-content > .wp-block-group:first-child {
    background: rgba(26,25,23,0.82) !important;
    backdrop-filter: blur(20px) saturate(120%);
    -webkit-backdrop-filter: blur(20px) saturate(120%);
    border: 1px solid rgba(250,247,242,0.1);
    border-radius: 2px 2px 0 0;
    max-width: 680px;
}

.page-contact .entry-content > .wp-block-group:first-child .wp-block-columns {
    padding: 1.25rem 2rem;
    border-bottom: 1px solid rgba(201,169,110,0.12);
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 0;
}

.page-contact .entry-content > .wp-block-group:first-child .ca-eyebrow {
    font-size: 9px;
    margin-bottom: 3px;
}

.page-contact .entry-content > .wp-block-group:first-child .wp-block-columns p:not(.ca-eyebrow) {
    font-size: 0.82rem;
    margin: 0;
    line-height: 1.5;
    letter-spacing: 0.04em;
}

.page-contact .entry-content > .wp-block-group:first-child .wp-block-separator {
    display: none;
}

.page-contact .entry-content > .wp-block-group:first-child .wp-block-buttons {
    padding: 1.25rem 2rem 0.5rem;
    max-width: none;
}

.page-contact .entry-content > .wp-block-group:first-child .wp-block-buttons + p {
    padding: 0 2rem 1.25rem;
    font-size: 0.8rem;
}

/* Form section */
.page-contact .entry-content > .wp-block-group:nth-child(2) {
    background: rgba(18,17,15,0.88) !important;
    backdrop-filter: blur(20px) saturate(120%);
    -webkit-backdrop-filter: blur(20px) saturate(120%);
    border: 1px solid rgba(250,247,242,0.08);
    border-top: none;
    max-width: 680px;
    padding-top: 1.75rem !important;
    padding-bottom: 2rem !important;
}

/* Email fallback */
.page-contact .entry-content > .wp-block-group:nth-child(3) {
    background: rgba(18,17,15,0.75) !important;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(250,247,242,0.06);
    border-top: none;
    border-radius: 0 0 2px 2px;
    max-width: 680px;
    padding: 0.9rem 2rem !important;
}

/* =============================================================================
   SERVICE DETAIL PAGES — Mobile vertical stack
   Desktop has text right / image left. Mobile must stack vertically.
   ============================================================================= */

@media (max-width: 768px) {
    .ca-page-private-travel-design .wp-block-columns,
    .ca-page-exclusive-experiences .wp-block-columns,
    .ca-page-lifestyle-concierge .wp-block-columns,
    .ca-page-corporate-executive .wp-block-columns,
    .ca-page-special-projects .wp-block-columns {
        flex-direction: column !important;
    }

    .ca-page-private-travel-design .wp-block-column,
    .ca-page-exclusive-experiences .wp-block-column,
    .ca-page-lifestyle-concierge .wp-block-column,
    .ca-page-corporate-executive .wp-block-column,
    .ca-page-special-projects .wp-block-column {
        flex-basis: 100% !important;
        width: 100% !important;
        min-width: 100% !important;
    }
}

/* =============================================================================
   SERVICES LANDING PAGE — Card section background treatment
   The 5-card grid on the services overview sits on plain navy. Add depth.
   ============================================================================= */

.page-services .ca-services-grid-section,
.page-services .wp-block-group.ca-section:has(.ca-service-card) {
    background: var(--charcoal) !important;
    border-top: 1px solid rgba(201,169,110,0.1);
    border-bottom: 1px solid rgba(201,169,110,0.1);
}

/* =============================================================================
   V2: FOOTER UTILITY COLUMN — col heading uses nav-heading style already
   (no changes needed; footer-widgets.php updated separately)
   ============================================================================= */

/* =============================================================================
   SELECTED ENGAGEMENTS — Horizontal scroll carousel
   ============================================================================= */

.ca-portfolio-viewport {
    overflow: hidden;
    width: 100%;
    margin: 2rem 0 0.5rem;
}

.ca-portfolio-track {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    gap: 1.5rem;
    padding: 1rem 0 3rem;
}

.ca-portfolio-track::-webkit-scrollbar {
    display: none;
}

.ca-portfolio-card {
    flex: 0 0 min(680px, 80vw);
    scroll-snap-align: start;
    background: var(--charcoal);
    border: 1px solid rgba(201,169,110,0.15);
    padding: 2.5rem 2rem 2rem;
    display: flex;
    flex-direction: column;
    transition: border-color 0.3s;
}

.ca-portfolio-card:hover {
    border-color: rgba(201,169,110,0.4);
}

.ca-portfolio-card-num {
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--gold);
    margin: 0 0 0.75rem;
}

.ca-portfolio-card-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(1.35rem, 2.5vw, 1.9rem);
    font-weight: 300;
    color: var(--ivory);
    margin: 0 0 1rem;
    line-height: 1.25;
}

.ca-portfolio-card-teaser {
    color: rgba(240,236,226,0.72);
    font-size: 0.94rem;
    line-height: 1.72;
    flex: 1;
    margin: 0 0 1.75rem;
}

.ca-portfolio-card-link {
    font-size: 10px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--gold);
    text-decoration: none;
    border-bottom: 1px solid rgba(201,169,110,0.4);
    padding-bottom: 2px;
    align-self: flex-start;
    transition: border-color 0.2s, opacity 0.2s;
}

.ca-portfolio-card-link:hover {
    opacity: 0.7;
    border-color: var(--gold);
}

.ca-portfolio-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin: 0 0 1rem;
}

.ca-portfolio-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(201,169,110,0.3);
    cursor: pointer;
    border: none;
    padding: 0;
    transition: background 0.3s, transform 0.3s;
}

.ca-portfolio-dot.active {
    background: var(--gold);
    transform: scale(1.4);
}

.ca-case-study {
    scroll-margin-top: 5rem;
}

@media (max-width: 768px) {
    /* Peek-next: show edge of next card */
    .ca-portfolio-track {
        padding-inline: 1.25rem;
        scroll-padding-inline: 1.25rem;
        scroll-snap-stop: always;
        padding-top: 0.5rem;
        padding-bottom: 2rem;
    }

    .ca-portfolio-card {
        flex: 0 0 calc(85% - 1.25rem);
        padding: 0 0 1.5rem;
    }

    /* Image via ::before — CSS-only, no HTML or SQL changes needed */
    .ca-portfolio-card {
        position: relative;
    }

    .ca-portfolio-card::before {
        content: '';
        display: block;
        width: 100%;
        height: 140px;
        background-size: cover;
        background-position: center;
        margin-bottom: 1rem;
        border-radius: 1px;
    }

    .ca-portfolio-card:nth-child(1)::before { background-image: url('/wp-content/uploads/2026/03/portfolio-01.jpg'); }
    .ca-portfolio-card:nth-child(2)::before { background-image: url('/wp-content/uploads/2026/03/portfolio-02.jpg'); }
    .ca-portfolio-card:nth-child(3)::before { background-image: url('/wp-content/uploads/2026/03/portfolio-03.jpg'); }
    .ca-portfolio-card:nth-child(4)::before { background-image: url('/wp-content/uploads/2026/03/portfolio-04.jpg'); }
    .ca-portfolio-card:nth-child(5)::before { background-image: url('/wp-content/uploads/2026/03/portfolio-05.jpg'); }
    .ca-portfolio-card:nth-child(6)::before { background-image: url('/wp-content/uploads/2026/03/portfolio-06.jpg'); }

    /* Card inner padding restored after ::before image */
    .ca-portfolio-card-num,
    .ca-portfolio-card-title,
    .ca-portfolio-card-teaser,
    .ca-portfolio-card-link {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }

    /* Dot indicators: line pattern matching other carousels */
    .ca-portfolio-dots {
        gap: 0.375rem;
        padding: 0 1.25rem;
    }

    .ca-portfolio-dot {
        width: auto;
        flex: 1;
        height: 2px;
        border-radius: 1px;
        background: rgba(250,247,242,0.3);
        transform: none;
    }

    .ca-portfolio-dot.active {
        background: var(--ivory);
        transform: none;
    }
}

@media (max-width: 768px) {
    /* Mobile: use svh for iOS viewport height fix */
    .page-contact #main,
    .page-contact #main > article {
        height: 100svh;
    }

    .page-contact .entry-cover-image {
        height: 100svh !important;
    }

    /* Mobile: account for iOS safe areas, full-width panels */
    .page-contact .entry-content {
        padding: calc(60px + env(safe-area-inset-top)) 1.25rem
                 calc(1rem + env(safe-area-inset-bottom));
        align-items: stretch;
    }

    .page-contact .entry-content > .wp-block-group,
    .page-contact .entry-content > .wp-block-group:first-child,
    .page-contact .entry-content > .wp-block-group:nth-child(2),
    .page-contact .entry-content > .wp-block-group:nth-child(3) {
        max-width: 100%;
    }

    .page-contact .entry-content > .wp-block-group:first-child .wp-block-columns {
        padding: 0.75rem 1rem;
        flex-direction: column;
        gap: 0.5rem;
    }

    .page-contact .entry-content > .wp-block-group:first-child .wp-block-buttons {
        padding: 0.75rem 1rem 0.25rem;
    }

    .page-contact .entry-content > .wp-block-group:first-child .wp-block-buttons + p {
        padding: 0 1rem 0.75rem;
        font-size: 0.78rem;
    }

    .page-contact .entry-content > .wp-block-group:nth-child(2) {
        padding-top: 1rem !important;
        padding-bottom: 1.25rem !important;
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .page-contact .entry-content > .wp-block-group:nth-child(3) {
        margin-top: 0.5rem;
        border-radius: 2px;
        padding: 0.75rem 1rem !important;
    }

    /* iOS input zoom prevention — 16px mandatory */
    .page-contact input,
    .page-contact textarea,
    .page-contact select {
        font-size: 16px;
        -webkit-appearance: none;
        appearance: none;
        border-radius: 0;
    }

    /* Compact form fields */
    .page-contact .ca-contact-form input,
    .page-contact .ca-contact-form textarea {
        padding: 10px 14px;
        margin-bottom: 0.5rem;
    }

    .page-contact .ca-contact-form textarea {
        min-height: 60px;
        max-height: 80px;
    }
}

/* =============================================================================
   SERVICES OVERVIEW — Full-screen snap-scroll panels
   ============================================================================= */

/* Hide blank theme hero area on services page — panels replace it */
.page-services #custom-header,
.page-services .custom-header,
.page-services .custom-header-media {
    display: none !important;
}

/* Break every ancestor out of overflow constraints so 100vw panels work */
.page-services #content,
.page-services #primary,
.page-services #main,
.page-services .hentry,
.page-services .entry-content {
    overflow: visible !important;
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Remove the container width constraint on the site layout itself */
.page-services .container,
.page-services .site-content {
    max-width: none !important;
    padding: 0 !important;
}

/* No snap-scroll on services page — grid layout replaces panel stacking */

.ca-services-intro {
    text-align: center;
    padding: 5rem 2rem 4rem;
    border-bottom: 1px solid rgba(201,169,110,0.12);
    max-width: 680px;
    margin: 0 auto;
}

.ca-services-intro-h1 {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-weight: 300;
    font-size: clamp(2rem, 4vw, 3.5rem);
    color: var(--ivory);
    margin: 0.5rem 0;
    line-height: 1.15;
}

.ca-services-intro-sub {
    color: rgba(240,236,226,0.6);
    font-size: clamp(0.9rem, 1.5vw, 1rem);
    letter-spacing: 0.08em;
    margin: 0.5rem 0 0;
}

/* 2-up grid: pairs side by side, 5th card full-width */
.ca-services-panels {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: rgba(201,169,110,0.12);
}

.ca-sp {
    height: clamp(380px, 52vh, 600px);
    position: relative;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    overflow: hidden;
    transition: transform 0.4s ease;
}

/* 5th card spans both columns */
.ca-sp:nth-child(5) {
    grid-column: 1 / -1;
    height: clamp(320px, 42vh, 500px);
    align-items: center;
    justify-content: center;
}

.ca-sp:hover {
    transform: scale(1.01);
    z-index: 2;
}

.ca-sp-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(10,12,18,0.88) 0%,
        rgba(10,12,18,0.45) 45%,
        rgba(10,12,18,0.15) 100%
    );
    transition: background 0.4s ease;
}

.ca-sp:hover .ca-sp-overlay {
    background: linear-gradient(
        to top,
        rgba(10,12,18,0.82) 0%,
        rgba(10,12,18,0.38) 45%,
        rgba(10,12,18,0.10) 100%
    );
}

/* 5th card: centered overlay */
.ca-sp:nth-child(5) .ca-sp-overlay {
    background: rgba(10,12,18,0.55);
}

.ca-sp-inner {
    position: relative;
    z-index: 2;
    padding: 2rem 2.25rem;
    max-width: 520px;
}

/* 5th card: center inner */
.ca-sp:nth-child(5) .ca-sp-inner {
    text-align: center;
    margin: 0 auto;
}

.ca-sp-inner .ca-eyebrow {
    margin-bottom: 0.625rem;
    opacity: 0.7;
}

.ca-sp-title {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-weight: 300;
    font-size: clamp(1.6rem, 2.8vw, 2.4rem);
    color: var(--ivory);
    margin: 0 0 0.875rem;
    line-height: 1.15;
}

.ca-sp-desc {
    color: rgba(240,236,226,0.78);
    font-size: clamp(0.875rem, 1.2vw, 0.9375rem);
    line-height: 1.7;
    margin: 0 0 1.5rem;
    max-width: 380px;
}

.ca-sp:nth-child(5) .ca-sp-desc {
    margin-left: auto;
    margin-right: auto;
}

.ca-sp-link {
    display: inline-block;
    font-size: 9px;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--gold);
    text-decoration: none;
    border: 1px solid rgba(201,169,110,0.45);
    padding: 0.7rem 1.75rem;
    transition: background 0.3s, border-color 0.3s, color 0.3s;
}

.ca-sp-link:hover {
    background: rgba(201,169,110,0.1);
    border-color: var(--gold);
    color: var(--ivory);
}

.ca-services-cta {
    text-align: center;
    padding: 5rem 2rem 6rem;
    border-top: 1px solid rgba(201,169,110,0.12);
}

.ca-services-cta-title {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-weight: 300;
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    color: var(--ivory);
    margin: 0.5rem 0 1rem;
}

.ca-services-cta-desc {
    color: rgba(240,236,226,0.65);
    max-width: 440px;
    margin: 0 auto 2rem;
    font-size: 0.95rem;
    line-height: 1.7;
}

/* Mobile: single column stack */
@media (max-width: 768px) {
    .ca-services-panels {
        grid-template-columns: 1fr;
        gap: 1px;
    }

    .ca-sp,
    .ca-sp:nth-child(5) {
        height: clamp(280px, 62vw, 420px);
        grid-column: 1;
        align-items: flex-end;
        justify-content: flex-start;
    }

    .ca-sp:nth-child(5) .ca-sp-inner {
        text-align: left;
        margin: 0;
    }

    .ca-sp:nth-child(5) .ca-sp-desc {
        margin-left: 0;
        margin-right: 0;
    }

    .ca-sp-inner {
        padding: 1.5rem 1.25rem;
    }

    .ca-sp-title {
        font-size: clamp(1.4rem, 5.5vw, 1.9rem);
    }

    .ca-sp-desc {
        font-size: 0.875rem;
        margin-bottom: 1.25rem;
    }

    .ca-services-intro {
        padding: 3.5rem 1.5rem 2.5rem;
    }
}

/* =============================================================================
   SERVICE DETAIL PAGES — Cinematic editorial redesign (Sprint 2)
   Full-bleed 100svh hero + alternating image/text sections with scroll-reveal
   ============================================================================= */

/* Make all ancestors full-width — same pattern as .page-services */
.ca-page-private-travel-design #primary,
.ca-page-exclusive-experiences #primary,
.ca-page-lifestyle-concierge #primary,
.ca-page-corporate-executive #primary,
.ca-page-special-projects #primary,
.ca-page-private-travel-design #main,
.ca-page-exclusive-experiences #main,
.ca-page-lifestyle-concierge #main,
.ca-page-corporate-executive #main,
.ca-page-special-projects #main,
.ca-page-private-travel-design .hentry,
.ca-page-exclusive-experiences .hentry,
.ca-page-lifestyle-concierge .hentry,
.ca-page-corporate-executive .hentry,
.ca-page-special-projects .hentry {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Reset entry-content to block */
.ca-page-private-travel-design .entry-content,
.ca-page-exclusive-experiences .entry-content,
.ca-page-lifestyle-concierge .entry-content,
.ca-page-corporate-executive .entry-content,
.ca-page-special-projects .entry-content {
    display: block !important;
    padding: 0 !important;
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
}

/* Hero: full-width cinematic — no breakout needed, parent is already full-width */
.ca-page-private-travel-design .entry-content > .wp-block-cover,
.ca-page-exclusive-experiences .entry-content > .wp-block-cover,
.ca-page-lifestyle-concierge .entry-content > .wp-block-cover,
.ca-page-corporate-executive .entry-content > .wp-block-cover,
.ca-page-special-projects .entry-content > .wp-block-cover {
    width: 100% !important;
    min-height: 100svh !important;
    max-height: none !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Inner container: fill cover width, center all text */
.ca-page-private-travel-design .entry-content > .wp-block-cover .wp-block-cover__inner-container,
.ca-page-exclusive-experiences .entry-content > .wp-block-cover .wp-block-cover__inner-container,
.ca-page-lifestyle-concierge .entry-content > .wp-block-cover .wp-block-cover__inner-container,
.ca-page-corporate-executive .entry-content > .wp-block-cover .wp-block-cover__inner-container,
.ca-page-special-projects .entry-content > .wp-block-cover .wp-block-cover__inner-container {
    width: 100% !important;
    max-width: 860px !important;
    margin: 0 auto !important;
    text-align: center !important;
}

/* Scroll-down indicator after hero */
.ca-page-private-travel-design .entry-content > .wp-block-cover::after,
.ca-page-exclusive-experiences .entry-content > .wp-block-cover::after,
.ca-page-lifestyle-concierge .entry-content > .wp-block-cover::after,
.ca-page-corporate-executive .entry-content > .wp-block-cover::after,
.ca-page-special-projects .entry-content > .wp-block-cover::after {
    content: '';
    position: absolute;
    bottom: 2.5rem;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    height: 60px;
    background: linear-gradient(to bottom, transparent, rgba(250,247,242,0.45));
    animation: ca-scroll-line 2s ease-in-out infinite;
}

@keyframes ca-scroll-line {
    0%, 100% { opacity: 0; transform: translateX(-50%) scaleY(0); transform-origin: top; }
    50% { opacity: 1; transform: translateX(-50%) scaleY(1); transform-origin: top; }
}

/* Hide entry-header on service detail pages */
.ca-page-private-travel-design .entry-header,
.ca-page-exclusive-experiences .entry-header,
.ca-page-lifestyle-concierge .entry-header,
.ca-page-corporate-executive .entry-header,
.ca-page-special-projects .entry-header {
    display: none;
}

/* ── Service editorial body ────────────────────────────────────────────────── */

.ca-svc-body {
    background: var(--obsidian);
}

/* Intro strip */
.ca-svc-intro {
    max-width: 760px;
    margin: 0 auto;
    padding: 6rem 2rem 5rem;
    text-align: center;
}

.ca-svc-intro-eyebrow {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    letter-spacing: 0.5em;
    text-transform: uppercase;
    color: var(--gold);
    display: block;
    margin-bottom: 1.5rem;
}

.ca-svc-intro-text {
    font-size: clamp(16px, 1.8vw, 18px);
    line-height: 1.85;
    color: rgba(250,247,242,0.82);
    font-weight: 300;
}

/* ── Alternating image/text sections ──────────────────────────────────────── */

.ca-svc-items {
    display: flex;
    flex-direction: column;
}

.ca-svc-item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: clamp(400px, 52vh, 580px);
}

.ca-svc-item:nth-child(odd) {
    background: var(--obsidian);
}

.ca-svc-item:nth-child(even) {
    background: var(--charcoal);
}

/* Image panel */
.ca-svc-item-image {
    overflow: hidden;
    position: relative;
}

.ca-svc-item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.06);
    transition: transform 1.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.ca-svc-item.ca-visible .ca-svc-item-image img {
    transform: scale(1.0);
}

/* Image-right variant */
.ca-svc-item--right .ca-svc-item-image {
    order: 2;
}

.ca-svc-item--right .ca-svc-item-content {
    order: 1;
}

/* Content panel */
.ca-svc-item-content {
    padding: clamp(3rem, 5vw, 5rem) clamp(2.5rem, 5vw, 4.5rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.25rem;
}

.ca-svc-item-eyebrow {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    letter-spacing: 0.5em;
    text-transform: uppercase;
    color: var(--gold);
    display: block;
}

.ca-svc-item-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(22px, 2.8vw, 30px);
    font-weight: 300;
    font-style: italic;
    line-height: 1.25;
    color: var(--ivory);
    margin: 0;
}

.ca-svc-item-desc {
    font-size: 15px;
    line-height: 1.9;
    color: rgba(250,247,242,0.72);
    font-weight: 300;
    max-width: 46ch;
}

/* Text-only items — no image column */
.ca-svc-item--text {
    grid-template-columns: 1fr;
    min-height: auto;
    border-top: 1px solid rgba(201,169,110,0.12);
}

.ca-svc-item--text .ca-svc-item-content {
    max-width: 680px;
    margin: 0 auto;
    padding: 4rem clamp(2rem, 8vw, 6rem);
}

/* Gold rule above each section title */
.ca-svc-item-content::before {
    content: '';
    display: block;
    width: 30px;
    height: 1px;
    background: var(--gold);
    margin-bottom: 0.25rem;
}

.ca-svc-item--text .ca-svc-item-content::before {
    margin-bottom: 1rem;
}

/* Scroll-reveal: override base .ca-animate for editorial items */
.ca-svc-item.ca-animate {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.85s ease, transform 0.85s ease;
}

.ca-svc-item.ca-animate.ca-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ── Service detail CTA section ───────────────────────────────────────────── */

.ca-svc-cta-section {
    padding: 6.5rem 2rem;
    text-align: center;
    background: var(--obsidian);
    border-top: 1px solid rgba(201,169,110,0.15);
}

.ca-svc-cta-eyebrow {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    letter-spacing: 0.5em;
    color: var(--gold);
    display: block;
    margin-bottom: 1rem;
}

.ca-svc-cta-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(26px, 3.5vw, 36px);
    font-weight: 300;
    font-style: italic;
    color: var(--ivory);
    margin: 0 0 2.5rem;
    line-height: 1.3;
}

.ca-svc-ghost-btn {
    display: inline-block;
    padding: 0.9rem 2.5rem;
    border: 1px solid rgba(250,247,242,0.28);
    color: var(--ivory);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

.ca-svc-ghost-btn:hover {
    background: rgba(250,247,242,0.07);
    border-color: rgba(250,247,242,0.5);
    color: var(--ivory);
    text-decoration: none;
}

/* ── Mobile ────────────────────────────────────────────────────────────────── */

@media (max-width: 900px) {
    .ca-page-private-travel-design .entry-content > .wp-block-cover,
    .ca-page-exclusive-experiences .entry-content > .wp-block-cover,
    .ca-page-lifestyle-concierge .entry-content > .wp-block-cover,
    .ca-page-corporate-executive .entry-content > .wp-block-cover,
    .ca-page-special-projects .entry-content > .wp-block-cover {
        min-height: 80svh !important;
    }

    .ca-svc-item {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .ca-svc-item-image {
        height: 60vw;
        min-height: 260px;
    }

    .ca-svc-item--right .ca-svc-item-image,
    .ca-svc-item--right .ca-svc-item-content {
        order: unset;
    }

    .ca-svc-intro {
        padding: 4rem 1.5rem 3rem;
    }

    .ca-svc-cta-section {
        padding: 4.5rem 1.5rem;
    }
}

/* =============================================================================
   SITE LOGO — Image mark in navigation
   Works regardless of whether WP custom logo is set or theme outputs text.
   ============================================================================= */

.site-title--logo {
    margin: 0;
    padding: 0;
    line-height: 1;
}

.site-title--logo a {
    display: flex;
    align-items: center;
    text-decoration: none;
}

.ca-site-logo {
    display: block;
    height: 44px;
    width: 44px;
    object-fit: contain;
    filter: brightness(0) invert(1);
    transition: opacity 0.2s;
}

.ca-site-logo:hover {
    opacity: 0.75;
}

/* Nav logo: icon mark + "CONCIERGE ATELIER" text side by side */
.header-logo-wrapper .custom-logo-text {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 13px;
    font-weight: 300;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--gold);
    text-decoration: none;
    white-space: nowrap;
    transition: opacity 0.2s;
}

.header-logo-wrapper .custom-logo-text::before {
    content: '';
    display: block;
    width: 30px;
    height: 30px;
    background: url('/wp-content/themes/inspiro-child/images/ca-logo.png') no-repeat center / contain;
    filter: brightness(0) invert(1);
    flex-shrink: 0;
}

.header-logo-wrapper .custom-logo-text:hover {
    opacity: 0.75;
}

@media (max-width: 768px) {
    .ca-site-logo { height: 36px; width: 36px; }
    .header-logo-wrapper .custom-logo-text { font-size: 11px; letter-spacing: 0.2em; }
    .header-logo-wrapper .custom-logo-text::before { width: 26px; height: 26px; }
}

/* =============================================================================
   PORTFOLIO CAROUSEL — Card image
   ============================================================================= */

.ca-portfolio-card-img {
    width: 100%;
    height: 200px;
    overflow: hidden;
    margin-bottom: 1.5rem;
    flex-shrink: 0;
}

.ca-portfolio-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s;
}

.ca-portfolio-card:hover .ca-portfolio-card-img img {
    transform: scale(1.04);
}

/* =============================================================================
   JOURNAL LISTING — Card image column
   ============================================================================= */

.ca-journal-card-img {
    flex: 0 0 240px;
    height: 160px;
    overflow: hidden;
    margin-right: 2rem;
    border-radius: 1px;
}

.ca-journal-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s;
}

.ca-journal-full-card:hover .ca-journal-card-img img {
    transform: scale(1.04);
}

@media (max-width: 768px) {
    .ca-journal-full-card {
        flex-wrap: wrap !important;
    }

    .ca-journal-card-img {
        flex: 0 0 100%;
        height: 200px;
        margin-right: 0;
        margin-bottom: 1.5rem;
    }
}

/* =============================================================================
   TEMPLATE: SERVICES FULL-SCREEN — template-services.php
   ============================================================================= */

/* Kill theme padding/margin for this template */
.page-template-template-services #content,
.page-template-template-services .site-content,
.page-template-template-services #primary,
.page-template-template-services #main {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
}

/* =============================================================================
   SERVICES CAROUSEL — horizontal, full-viewport, click navigation
   ============================================================================= */

/* Outer container — exactly one viewport tall, no overflow */
.ca-svc-carousel {
    position: relative;
    height: calc(100vh - 80px); /* 80px = nav height */
    overflow: hidden;
    background: var(--obsidian);
    color: var(--ivory);
    user-select: none;
}

/* Eyebrow + title pinned to top-center over all slides */
.ca-svc-page-header {
    position: absolute;
    top: 2rem;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    z-index: 20;
    pointer-events: none;
    white-space: nowrap;
}

.ca-svc-page-header .ca-eyebrow {
    margin-bottom: 0.5rem;
}

.ca-svc-title {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-weight: 300;
    font-size: clamp(1.8rem, 3.5vw, 2.8rem);
    color: var(--ivory);
    margin: 0;
    line-height: 1.1;
}

/* Sliding track */
.ca-svc-track {
    display: flex;
    height: 100%;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
}

/* Individual slide */
.ca-svc-slide {
    flex: 0 0 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
}

.ca-svc-slide-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1.04);
    transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.ca-svc-slide.is-active .ca-svc-slide-bg {
    transform: scale(1);
}

.ca-svc-slide-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        rgba(10,12,18,0.80) 0%,
        rgba(10,12,18,0.42) 60%,
        rgba(10,12,18,0.62) 100%
    );
}

.ca-svc-slide-inner {
    position: absolute;
    bottom: 10%;
    left: 8%;
    z-index: 5;
    max-width: 520px;
}

@media (min-width: 769px) {
    .ca-svc-slide-inner {
        top: 50%;
        bottom: auto;
        transform: translateY(-50%);
    }
}

.ca-svc-slide-num {
    display: block;
    font-size: 10px;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 1.25rem;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.45s 0.05s, transform 0.45s 0.05s;
}

.ca-svc-slide-title {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-weight: 300;
    font-size: clamp(2rem, 4.5vw, 3.8rem);
    color: var(--ivory);
    margin: 0 0 1.25rem;
    line-height: 1.1;
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.5s 0.15s, transform 0.5s 0.15s;
}

.ca-svc-slide-desc {
    color: rgba(240,236,226,0.72);
    font-size: clamp(0.88rem, 1.3vw, 0.98rem);
    line-height: 1.75;
    margin: 0 0 2rem;
    max-width: 380px;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.48s 0.25s, transform 0.48s 0.25s;
}

.ca-svc-slide-link {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--ivory);
    text-decoration: none;
    border-bottom: 1px solid rgba(250,247,242,0.3);
    padding-bottom: 4px;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.45s 0.35s, transform 0.45s 0.35s, border-color 0.2s;
}

.ca-svc-slide-link:hover { border-color: var(--ivory); }

/* Animate in active slide content */
.ca-svc-slide.is-active .ca-svc-slide-num,
.ca-svc-slide.is-active .ca-svc-slide-title,
.ca-svc-slide.is-active .ca-svc-slide-desc,
.ca-svc-slide.is-active .ca-svc-slide-link {
    opacity: 1;
    transform: translateY(0);
}

/* ── ARROW BUTTONS ──────────────────────────────────────── */
.ca-svc-prev,
.ca-svc-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 20;
    background: rgba(12,11,9,0.45);
    border: 1px solid rgba(201,169,110,0.25);
    border-radius: 50%;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--ivory);
    transition: background 0.2s, border-color 0.2s;
    backdrop-filter: blur(6px);
}

.ca-svc-prev { left: 1.5rem; }
.ca-svc-next { right: 1.5rem; }

.ca-svc-prev:hover,
.ca-svc-next:hover {
    background: rgba(12,11,9,0.7);
    border-color: var(--gold);
}

.ca-svc-prev svg,
.ca-svc-next svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    fill: none;
}

/* ── DOT NAVIGATION ─────────────────────────────────────── */
.ca-svc-dots {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 20;
    display: flex;
    gap: 10px;
    align-items: center;
}

.ca-svc-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(201,169,110,0.35);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: background 0.3s, transform 0.3s;
}

.ca-svc-dot.active {
    background: var(--gold);
    transform: scale(1.6);
}

/* ── MOBILE ──────────────────────────────────────────────── */
@media (max-width: 768px) {
    .ca-svc-carousel { height: calc(100svh - 60px); }
    .ca-svc-prev,
    .ca-svc-next { width: 40px; height: 40px; }
    .ca-svc-prev { left: 0.75rem; }
    .ca-svc-next { right: 0.75rem; }
    .ca-svc-slide-inner { left: 5%; max-width: calc(100% - 10%); }
    .ca-svc-page-header { top: 1.25rem; }

    /* Services dots — restyle to line indicators (locked decision) */
    .ca-svc-dots {
        bottom: 1.25rem;
        gap: 0.375rem;
        width: calc(100% - 2.5rem);
        left: 1.25rem;
        transform: none;
    }
    .ca-svc-dot {
        width: auto;
        flex: 1;
        height: 2px;
        border-radius: 1px;
        background: rgba(250,247,242,0.3);
        transform: none;
    }
    .ca-svc-dot.active {
        background: var(--ivory);
        transform: none;
    }
}

/* Mobile carousel dot indicators (shared pattern — destinations and future carousels) */
@media (max-width: 768px) {
    .ca-mob-dots {
        display: flex;
        gap: 0.375rem;
        padding: 0.75rem 1.25rem 0;
    }
    .ca-mob-dot {
        flex: 1;
        height: 2px;
        background: rgba(250,247,242,0.3);
        border-radius: 1px;
        transition: background 0.2s ease;
    }
    .ca-mob-dot.active {
        background: var(--ivory);
    }
}

@media (max-width: 768px) {
    .ca-partner-logos {
        gap: 1rem;
        justify-content: center;
    }
    .ca-partner-logos img {
        height: 44px;
        max-width: 100px;
    }
}

/* =============================================================================
   SERVICE SUB-PAGES — Visual fixes
   Affects: Private Travel Design, Exclusive Experiences, Lifestyle Concierge,
            Corporate & Executive, Special Projects
   Root cause: missing </div> caused all content to render inside the cover
   block, inheriting the 60% black dim. Fixed in DB. CSS below handles
   remaining issues: duplicate H1, font colour, mobile layout.
   ============================================================================= */

/* Hide theme-injected entry-title — H1 is inside the cover block */
.ca-page-private-travel-design .entry-header,
.ca-page-exclusive-experiences .entry-header,
.ca-page-lifestyle-concierge .entry-header,
.ca-page-corporate-executive .entry-header,
.ca-page-special-projects .entry-header {
    display: none !important;
}

/* Ensure content background matches brand charcoal (not parent theme #101010) */
.ca-page-private-travel-design .wp-block-group.has-primary-background-color,
.ca-page-exclusive-experiences .wp-block-group.has-primary-background-color,
.ca-page-lifestyle-concierge .wp-block-group.has-primary-background-color,
.ca-page-corporate-executive .wp-block-group.has-primary-background-color,
.ca-page-special-projects .wp-block-group.has-primary-background-color {
    background-color: var(--charcoal) !important;
}

/* Force text colour to ivory — parent theme colours-light can override */
.ca-page-private-travel-design .entry-content p,
.ca-page-exclusive-experiences .entry-content p,
.ca-page-lifestyle-concierge .entry-content p,
.ca-page-corporate-executive .entry-content p,
.ca-page-special-projects .entry-content p,
.ca-page-private-travel-design .entry-content h2,
.ca-page-exclusive-experiences .entry-content h2,
.ca-page-lifestyle-concierge .entry-content h2,
.ca-page-corporate-executive .entry-content h2,
.ca-page-special-projects .entry-content h2 {
    color: var(--ivory);
}

/* Cover hero — reduce dim slightly, ensure full width */
.ca-page-private-travel-design .wp-block-cover,
.ca-page-exclusive-experiences .wp-block-cover,
.ca-page-lifestyle-concierge .wp-block-cover,
.ca-page-corporate-executive .wp-block-cover,
.ca-page-special-projects .wp-block-cover {
    width: 100%;
}

/* =============================================================================
   SERVICE PAGES — H2 editorial treatment
   Gold left accent + short rule above each service item.
   Creates chapter-level separation without dividers.
   ============================================================================= */

.ca-page-private-travel-design .entry-content h2,
.ca-page-exclusive-experiences .entry-content h2,
.ca-page-lifestyle-concierge .entry-content h2,
.ca-page-corporate-executive .entry-content h2,
.ca-page-special-projects .entry-content h2 {
    border-left: 2px solid rgba(201,169,110,0.4);
    padding-left: 24px;
    margin-top: 60px;
    margin-bottom: 16px;
    font-family: 'Cormorant Garamond', serif;
    font-weight: 300;
    font-size: 28px;
    line-height: 1.2;
    color: var(--ivory);
}

.ca-page-private-travel-design .entry-content h2::before,
.ca-page-exclusive-experiences .entry-content h2::before,
.ca-page-lifestyle-concierge .entry-content h2::before,
.ca-page-corporate-executive .entry-content h2::before,
.ca-page-special-projects .entry-content h2::before {
    content: '';
    display: block;
    width: 32px;
    height: 1px;
    background: var(--gold);
    opacity: 0.5;
    margin-bottom: 16px;
}

.ca-page-private-travel-design .wp-block-group p,
.ca-page-exclusive-experiences .wp-block-group p,
.ca-page-lifestyle-concierge .wp-block-group p,
.ca-page-corporate-executive .wp-block-group p,
.ca-page-special-projects .wp-block-group p {
    max-width: 62ch;
}

/* Mobile — constrain content group padding, prevent extreme vertical stretch */
@media (max-width: 768px) {
    .ca-page-private-travel-design .entry-content .wp-block-group,
    .ca-page-exclusive-experiences .entry-content .wp-block-group,
    .ca-page-lifestyle-concierge .entry-content .wp-block-group,
    .ca-page-corporate-executive .entry-content .wp-block-group,
    .ca-page-special-projects .entry-content .wp-block-group {
        padding-top: 2.5rem !important;
        padding-bottom: 2.5rem !important;
        padding-left: 1.5rem !important;
        padding-right: 1.5rem !important;
    }

    .ca-page-private-travel-design .wp-block-cover,
    .ca-page-exclusive-experiences .wp-block-cover,
    .ca-page-lifestyle-concierge .wp-block-cover,
    .ca-page-corporate-executive .wp-block-cover,
    .ca-page-special-projects .wp-block-cover {
        min-height: 60svh !important;
    }

    .ca-page-private-travel-design .wp-block-cover h1,
    .ca-page-exclusive-experiences .wp-block-cover h1,
    .ca-page-lifestyle-concierge .wp-block-cover h1,
    .ca-page-corporate-executive .wp-block-cover h1,
    .ca-page-special-projects .wp-block-cover h1 {
        font-size: clamp(1.75rem, 7vw, 2.25rem) !important;
    }

    /* Mobile: swap left border for top rule on H2 service items */
    .ca-page-private-travel-design .entry-content h2,
    .ca-page-exclusive-experiences .entry-content h2,
    .ca-page-lifestyle-concierge .entry-content h2,
    .ca-page-corporate-executive .entry-content h2,
    .ca-page-special-projects .entry-content h2 {
        border-left: none;
        padding-left: 0;
        padding-top: 40px;
        border-top: 1px solid rgba(201,169,110,0.3);
        margin-top: 40px;
    }

    .ca-page-private-travel-design .entry-content h2::before,
    .ca-page-exclusive-experiences .entry-content h2::before,
    .ca-page-lifestyle-concierge .entry-content h2::before,
    .ca-page-corporate-executive .entry-content h2::before,
    .ca-page-special-projects .entry-content h2::before {
        display: none;
    }

    /* Ghost button border opacity: 0.28 → 0.45 on mobile */
    .ca-page-private-travel-design .wp-block-button__link,
    .ca-page-exclusive-experiences .wp-block-button__link,
    .ca-page-lifestyle-concierge .wp-block-button__link,
    .ca-page-corporate-executive .wp-block-button__link,
    .ca-page-special-projects .wp-block-button__link {
        border-color: rgba(250,247,242,0.45) !important;
        min-height: 48px;
        display: inline-flex;
        align-items: center;
    }
}

/* =============================================================================
   CRAFTED JOURNEYS — Full editorial template
   Pages: Signature Switzerland, Grand Tours of Europe, Event-Led Journeys,
          Family Heritage, Seasonal Escapes
   Pattern: custom HTML sections with ca-journey-* classes
   Mobile: gallery becomes full-screen scroll-snap portrait carousel
   ============================================================================= */

/* Hide theme-injected entry-title — H1 is inside the journey hero */
.ca-page-signature-switzerland .entry-header,
.ca-page-grand-tours-of-europe .entry-header,
.ca-page-event-led-journeys .entry-header,
.ca-page-family-heritage-shopping .entry-header,
.ca-page-seasonal-escapes .entry-header {
    display: none !important;
}

/* Full-width breakout for all journey sections */
.ca-journey-hero,
.ca-journey-intro,
.ca-journey-gallery,
.ca-journey-details,
.ca-journey-cta {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
}

/* --- HERO --- */
.ca-journey-hero {
    position: relative;
    min-height: 100svh;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}

.ca-journey-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        transparent 30%,
        rgba(12,11,9,0.72) 100%
    );
    z-index: 0;
}

.ca-journey-hero-inner {
    position: relative;
    z-index: 1;
    padding: 0 clamp(2rem, 6vw, 6rem) clamp(3rem, 8vh, 6rem);
    max-width: 820px;
}

.ca-journey-hero .ca-eyebrow {
    display: block;
    margin-bottom: 1rem;
    opacity: 0;
    animation: ca-fade-up 600ms ease forwards;
    animation-delay: 200ms;
}

.ca-journey-hero-title {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-weight: 300;
    font-size: clamp(2.25rem, 2rem + 4vw, 3.5rem);
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: var(--ivory);
    margin: 0 0 1.25rem;
    opacity: 0;
    animation: ca-fade-up 600ms ease forwards;
    animation-delay: 350ms;
}

.ca-journey-hero-sub {
    font-family: 'Jost', sans-serif;
    font-weight: 300;
    font-size: 1rem;
    line-height: 1.7;
    color: rgba(250,247,242,0.75);
    margin: 0;
    max-width: 52ch;
    opacity: 0;
    animation: ca-fade-up 600ms ease forwards;
    animation-delay: 500ms;
}

@keyframes ca-fade-up {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* --- INTRO --- */
.ca-journey-intro {
    background: var(--obsidian);
    padding: clamp(4rem, 8vw, 8rem) clamp(2rem, 6vw, 6rem);
}

.ca-journey-intro-inner {
    max-width: 1140px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: start;
}

.ca-journey-intro-lead .ca-eyebrow {
    display: block;
    margin-bottom: 1.5rem;
}

.ca-journey-intro-italic {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-weight: 300;
    font-size: clamp(1.25rem, 1rem + 1.25vw, 1.625rem);
    line-height: 1.55;
    color: var(--ivory);
    margin: 0;
}

.ca-journey-intro-body p {
    font-family: 'Jost', sans-serif;
    font-weight: 300;
    font-size: 1rem;
    line-height: 1.85;
    color: rgba(250,247,242,0.82);
    margin: 0 0 1.25rem;
    max-width: 58ch;
}

.ca-journey-intro-body p:last-child {
    margin-bottom: 0;
}

/* --- GALLERY --- */
.ca-journey-gallery {
    background: var(--charcoal);
    padding: clamp(3rem, 6vw, 5rem) 0;
}

.ca-gallery-section-label {
    font-family: 'Cormorant SC', serif;
    font-weight: 300;
    font-size: 13px;
    letter-spacing: 0.35em;
    color: var(--gold);
    text-align: center;
    display: block;
    padding: 0 clamp(2rem, 6vw, 6rem) 3rem;
}

/* Desktop: stacked alternating editorial items */
.ca-gallery-track {
    display: block;
}

.ca-gallery-item {
    display: grid;
    grid-template-columns: 55fr 45fr;
    min-height: 480px;
    border-top: 1px solid rgba(201,169,110,0.12);
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 600ms ease, transform 600ms ease;
}

.ca-gallery-item.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* First item: no top border (it would sit against the section label) */
.ca-gallery-item:first-child {
    border-top: none;
}

/* No-JS fallback: reveal all items immediately */
.no-js .ca-gallery-item {
    opacity: 1;
    transform: none;
    transition: none;
}

.ca-gallery-item:nth-child(even) {
    grid-template-columns: 45fr 55fr;
    direction: rtl;
}

.ca-gallery-item:nth-child(even) > * {
    direction: ltr;
}

.ca-gallery-item-image {
    background-size: cover;
    background-position: center;
    min-height: 400px;
}

.ca-gallery-item-text {
    background: var(--obsidian);
    padding: clamp(2.5rem, 5vw, 4rem) clamp(2rem, 4vw, 3.5rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.ca-gallery-item-caption {
    font-family: 'Cormorant SC', serif;
    font-weight: 300;
    font-size: 12px;
    letter-spacing: 0.35em;
    color: var(--gold);
    display: block;
    margin-bottom: 0.75rem;
}

.ca-gallery-item-title {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-weight: 300;
    font-size: clamp(1.5rem, 1.25rem + 1.5vw, 2.25rem);
    line-height: 1.15;
    color: var(--ivory);
    margin: 0 0 1.25rem;
}

.ca-gallery-item-body {
    font-family: 'Jost', sans-serif;
    font-weight: 300;
    font-size: 0.9375rem;
    line-height: 1.85;
    color: rgba(250,247,242,0.75);
    margin: 0;
    max-width: 48ch;
}

/* Dot navigation — hidden on desktop */
.ca-carousel-dots {
    display: none;
    justify-content: center;
    gap: 8px;
    padding-top: 2rem;
}

.ca-carousel-dot {
    width: 28px;
    height: 2px;
    background: rgba(250,247,242,0.28);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: background 250ms ease;
}

.ca-carousel-dot.is-active {
    background: var(--ivory);
}

/* --- DETAILS --- */
.ca-journey-details {
    background: var(--navy);
    padding: clamp(4rem, 8vw, 7rem) clamp(2rem, 6vw, 6rem);
    text-align: center;
}

.ca-journey-details-inner {
    max-width: 1000px;
    margin: 0 auto;
}

.ca-journey-details .ca-eyebrow {
    display: block;
    margin-bottom: 1rem;
}

.ca-journey-details-heading {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 300;
    font-size: clamp(1.75rem, 1.5rem + 1.5vw, 2.5rem);
    line-height: 1.15;
    color: var(--ivory);
    margin: 0 0 3rem;
}

.ca-details-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem 3rem;
    margin-top: 1rem;
}

.ca-details-card {
    text-align: left;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(201,169,110,0.3);
}

.ca-details-card-title {
    font-family: 'Cormorant SC', serif;
    font-weight: 300;
    font-size: 13px;
    letter-spacing: 0.35em;
    color: var(--gold);
    margin: 0 0 0.75rem;
}

.ca-details-card-body {
    font-family: 'Jost', sans-serif;
    font-weight: 300;
    font-size: 0.9375rem;
    line-height: 1.8;
    color: rgba(250,247,242,0.75);
    margin: 0;
}

/* --- CTA --- */
.ca-journey-cta {
    background: var(--obsidian);
    padding: clamp(4rem, 9vw, 8rem) clamp(2rem, 6vw, 6rem);
    text-align: center;
}

.ca-journey-cta-inner {
    max-width: 680px;
    margin: 0 auto;
}

.ca-journey-cta .ca-eyebrow {
    display: block;
    margin-bottom: 1.25rem;
}

.ca-journey-cta-heading {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-weight: 300;
    font-size: clamp(1.75rem, 1.5rem + 1.5vw, 2.5rem);
    line-height: 1.2;
    color: var(--ivory);
    margin: 0 0 1.25rem;
}

.ca-journey-cta-body {
    font-family: 'Jost', sans-serif;
    font-weight: 300;
    font-size: 1rem;
    line-height: 1.85;
    color: rgba(250,247,242,0.75);
    margin: 0 0 2.5rem;
    max-width: 52ch;
    margin-left: auto;
    margin-right: auto;
}

.ca-journey-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 44px;
    border: 1px solid rgba(250,247,242,0.28);
    background: transparent;
    color: var(--ivory);
    font-family: 'Cormorant SC', serif;
    font-weight: 300;
    font-size: 12px;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    text-decoration: none;
    transition: border-color 300ms ease, color 300ms ease;
    min-height: 48px;
}

.ca-journey-cta-btn:hover {
    border-color: var(--gold);
    color: var(--gold-pale);
}

/* =============================================================================
   CRAFTED JOURNEYS — Mobile (< 768px)
   Gallery becomes full-screen scroll-snap portrait carousel
   ============================================================================= */

@media (max-width: 767px) {

    .ca-journey-hero {
        min-height: 85svh;
    }

    .ca-journey-hero-title {
        font-size: clamp(1.875rem, 7vw, 2.5rem);
    }

    .ca-journey-intro-inner {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    /* Gallery: become scroll-snap carousel */
    .ca-journey-gallery {
        padding: 0;
        overflow: hidden;
    }

    .ca-gallery-section-label {
        padding: 2rem 1.5rem 1.5rem;
    }

    .ca-gallery-track {
        display: flex;
        overflow-x: scroll;
        scroll-snap-type: x mandatory;
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        touch-action: pan-x;
    }

    .ca-gallery-track::-webkit-scrollbar {
        display: none;
    }

    .ca-gallery-item {
        flex-shrink: 0;
        width: 100%;
        scroll-snap-align: start;
        scroll-snap-stop: always;
        display: block;
        position: relative;
        min-height: 75svh;
        border-top: none;
        opacity: 1;
        transform: none;
    }

    .ca-gallery-item-image {
        position: absolute;
        inset: 0;
        min-height: unset;
        background-size: cover;
        background-position: center;
    }

    .ca-gallery-item-image::after {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(
            to bottom,
            transparent 35%,
            rgba(12,11,9,0.85) 100%
        );
    }

    .ca-gallery-item-text {
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        background: transparent;
        padding: 2rem 1.5rem calc(2rem + env(safe-area-inset-bottom));
        z-index: 1;
        justify-content: flex-end;
    }

    .ca-gallery-item-body {
        max-width: none;
    }

    .ca-gallery-item:nth-child(even) {
        grid-template-columns: unset;
        direction: ltr;
    }

    /* Show dot navigation on mobile */
    .ca-carousel-dots {
        display: flex;
        padding: 1.25rem 0 1.5rem;
        background: var(--charcoal);
    }

    .ca-details-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .ca-details-card {
        padding: 1.5rem 0;
        border-top: 1px solid rgba(201,169,110,0.2);
    }

    .ca-details-card:first-child {
        border-top: none;
        padding-top: 0;
    }

    .ca-journey-cta-btn {
        border-color: rgba(250,247,242,0.45);
        width: 100%;
        max-width: 320px;
    }
}

/* ── HIW STRIP — editorial process statements ────────────────────────────── */
/* Hide numbers (01/02/03) and their trailing spacers */
.ca-hiw-strip .wp-block-column > p:first-child,
.ca-hiw-strip .wp-block-column > .wp-block-spacer {
    display: none;
}
/* Column layout: gold rule above, generous top space */
.ca-hiw-strip .wp-block-column {
    position: relative;
    padding-top: 3rem !important;
    opacity: 0;
    transform: translateY(22px);
    transition: opacity 0.75s ease, transform 0.75s ease;
}
.ca-hiw-strip .wp-block-column::before {
    content: '';
    display: block;
    width: 22px;
    height: 1px;
    background: var(--ca-gold, #C9A96E);
    opacity: 0.55;
    margin-bottom: 1.75rem;
}
/* Statement text — Cormorant italic, editorial scale */
.ca-hiw-strip .wp-block-column > p {
    font-family: 'Cormorant Garamond', serif !important;
    font-style: italic !important;
    font-weight: 300 !important;
    font-size: clamp(20px, 2vw, 26px) !important;
    line-height: 1.65 !important;
    letter-spacing: 0.005em !important;
}
/* Scroll-reveal: staggered entrance */
.ca-hiw-strip.ca-hiw-visible .wp-block-column:nth-child(1) {
    opacity: 1; transform: translateY(0); transition-delay: 0s;
}
.ca-hiw-strip.ca-hiw-visible .wp-block-column:nth-child(2) {
    opacity: 1; transform: translateY(0); transition-delay: 0.2s;
}
.ca-hiw-strip.ca-hiw-visible .wp-block-column:nth-child(3) {
    opacity: 1; transform: translateY(0); transition-delay: 0.4s;
}
@media (prefers-reduced-motion: reduce) {
    .ca-hiw-strip .wp-block-column {
        opacity: 1; transform: none; transition: none;
    }
}

/* ── Services page carousel ──────────────────────────────────────────────── */
.ca-svc-carousel-wrap {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: #0E151F;
}
.ca-svc-carousel {
    display: flex;
    overflow-x: scroll;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.ca-svc-carousel::-webkit-scrollbar { display: none; }
.ca-svc-slide {
    flex: 0 0 100%;
    scroll-snap-align: start;
    position: relative;
    height: 72vh;
    min-height: 500px;
    overflow: hidden;
}
.ca-svc-slide-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1.06);
    transition: transform 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.ca-svc-slide.is-active .ca-svc-slide-bg {
    transform: scale(1);
}
.ca-svc-slide::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(8,12,18,0.85) 0%,
        rgba(8,12,18,0.3) 55%,
        transparent 100%
    );
    pointer-events: none;
    z-index: 1;
}
.ca-svc-slide-inner {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 3rem 4rem;
    z-index: 2;
    max-width: 640px;
}
.ca-svc-slide-eyebrow {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--ca-gold, #C9A96E);
    display: block;
    margin-bottom: 0.6rem;
}
.ca-svc-slide-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    font-weight: 600;
    font-size: clamp(2.2rem, 4.5vw, 3.5rem);
    line-height: 1.1;
    color: var(--ca-ivory, #FAF7F2);
    margin: 0 0 0.875rem;
}
.ca-svc-slide-desc {
    font-family: 'Jost', sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.75;
    color: rgba(250,247,242,0.88);
    margin: 0 0 1.75rem;
}
.ca-svc-slide-link {
    display: inline-block;
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--ca-ivory, #FAF7F2);
    border: 1px solid rgba(250,247,242,0.35);
    padding: 0.7rem 1.75rem;
    text-decoration: none;
    transition: border-color 250ms ease, color 250ms ease;
}
.ca-svc-slide-link:hover {
    border-color: var(--ca-gold, #C9A96E);
    color: var(--ca-gold, #C9A96E);
}
/* Arrows */
.ca-svc-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    background: none;
    border: 1px solid rgba(250,247,242,0.2);
    color: var(--ca-ivory, #FAF7F2);
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: border-color 200ms ease, background 200ms ease;
    padding: 0;
}
.ca-svc-arrow:hover {
    border-color: var(--ca-gold, #C9A96E);
    background: rgba(201,169,110,0.08);
}
.ca-svc-arrow--prev { left: 2rem; }
.ca-svc-arrow--next { right: 2rem; }
/* Counter */
.ca-svc-counter {
    position: absolute;
    bottom: 2rem;
    left: 4rem;
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    letter-spacing: 0.3em;
    color: rgba(250,247,242,0.35);
    z-index: 10;
}
/* Dots */
.ca-svc-dots {
    position: absolute;
    bottom: 2rem;
    right: 4rem;
    display: flex;
    gap: 0.5rem;
    z-index: 10;
    align-items: center;
}
.ca-svc-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(250,247,242,0.25);
    border: none;
    cursor: pointer;
    transition: background 200ms ease, transform 200ms ease;
    padding: 0;
}
.ca-svc-dot.is-active {
    background: var(--ca-gold, #C9A96E);
    transform: scale(1.5);
}
/* Mobile */
@media (max-width: 768px) {
    .ca-svc-slide {
        height: 80svh;
        min-height: 520px;
    }
    .ca-svc-slide-inner {
        padding: 2rem 1.75rem;
        max-width: 100%;
    }
    .ca-svc-arrow { display: none; }
    .ca-svc-counter { left: 1.75rem; bottom: 1.5rem; }
    .ca-svc-dots { right: 1.75rem; bottom: 1.5rem; }
}

/* ── THE PRACTICE — clear section break from HIW strip ───────────────────── */
.ca-practice-section {
    padding-top: 140px !important;
    border-top: 1px solid rgba(201,169,110,0.1) !important;
    margin-top: 0 !important;
}

/* =============================================================================
   CRAFTED JOURNEYS — Full-viewport swipe showcase (Sprint 3)
   Parent page: /crafted-journeys/ — 5 journey slides, zero-scroll
   ============================================================================= */

/* Hide theme chrome on Crafted Journeys parent */
.page-crafted-journeys .entry-header,
.page-crafted-journeys .entry-cover-image,
.page-crafted-journeys .single-featured-image-header {
    display: none;
}

.page-crafted-journeys #main,
.page-crafted-journeys #main > article {
    position: relative;
    height: 100svh;
    overflow: hidden;
}

.page-crafted-journeys .entry-content {
    position: absolute;
    inset: 0;
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    overflow: hidden;
}

/* Showcase container */
.ca-journeys-showcase {
    position: relative;
    width: 100%;
    height: 100svh;
    overflow: hidden;
    background: var(--obsidian);
}

/* Individual slides */
.ca-journey-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.85s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
    cursor: pointer;
}

.ca-journey-slide.is-active {
    opacity: 1;
    pointer-events: auto;
}

/* Background image with subtle Ken Burns */
.ca-journey-slide-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1.06);
    transition: transform 7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.ca-journey-slide.is-active .ca-journey-slide-bg {
    transform: scale(1.0);
}

/* Dark gradient overlay */
.ca-journey-slide-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to right,
        rgba(13,13,13,0.72) 0%,
        rgba(13,13,13,0.38) 55%,
        rgba(13,13,13,0.18) 100%
    );
}

/* Centered content — left-aligned */
.ca-journey-slide-content {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 clamp(2.5rem, 8vw, 7rem);
    max-width: 620px;
}

.ca-journey-slide-num {
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    letter-spacing: 0.55em;
    color: var(--gold);
    display: block;
    margin-bottom: 1.5rem;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.6s ease 0.3s, transform 0.6s ease 0.3s;
}

.ca-journey-slide-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(34px, 5vw, 56px);
    font-weight: 300;
    font-style: italic;
    line-height: 1.15;
    color: var(--ivory);
    margin: 0 0 1.25rem;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.7s ease 0.45s, transform 0.7s ease 0.45s;
}

.ca-journey-slide-teaser {
    font-size: clamp(14px, 1.5vw, 16px);
    line-height: 1.75;
    color: rgba(250,247,242,0.75);
    font-weight: 300;
    margin: 0 0 2.5rem;
    max-width: 42ch;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.6s ease 0.6s, transform 0.6s ease 0.6s;
}

.ca-journey-slide-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--ivory);
    text-decoration: none;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.5s ease 0.75s, transform 0.5s ease 0.75s, color 0.25s ease;
}

.ca-journey-slide-cta svg {
    width: 20px;
    height: 20px;
    transition: transform 0.3s ease;
    flex-shrink: 0;
}

.ca-journey-slide-cta:hover {
    color: var(--gold);
    text-decoration: none;
}

.ca-journey-slide-cta:hover svg {
    transform: translateX(5px);
}

/* Reveal content when slide is active */
.ca-journey-slide.is-active .ca-journey-slide-num,
.ca-journey-slide.is-active .ca-journey-slide-title,
.ca-journey-slide.is-active .ca-journey-slide-teaser,
.ca-journey-slide.is-active .ca-journey-slide-cta {
    opacity: 1;
    transform: translateY(0);
}

/* Navigation arrows */
.ca-journey-prev,
.ca-journey-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 20;
    background: none;
    border: 1px solid rgba(250,247,242,0.22);
    color: var(--ivory);
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: border-color 0.25s ease, background 0.25s ease;
}

.ca-journey-prev { left: 2rem; }
.ca-journey-next { right: 2rem; }

.ca-journey-prev:hover,
.ca-journey-next:hover {
    border-color: rgba(250,247,242,0.55);
    background: rgba(250,247,242,0.06);
}

/* Progress dots */
.ca-journey-dots {
    position: absolute;
    bottom: 2.5rem;
    right: 2.5rem;
    display: flex;
    gap: 0.6rem;
    z-index: 20;
    align-items: center;
}

.ca-journey-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(250,247,242,0.28);
    border: none;
    cursor: pointer;
    transition: background 0.25s ease, transform 0.25s ease;
    padding: 0;
}

.ca-journey-dot.is-active {
    background: var(--gold);
    transform: scale(1.55);
}

/* Journey count — bottom left */
.ca-journey-count {
    position: absolute;
    bottom: 2.5rem;
    left: clamp(2.5rem, 8vw, 7rem);
    z-index: 20;
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 10px;
    letter-spacing: 0.45em;
    color: rgba(250,247,242,0.45);
}

/* Mobile */
@media (max-width: 768px) {
    .ca-journey-prev,
    .ca-journey-next {
        display: none;
    }

    .ca-journey-slide-content {
        padding: 0 1.75rem;
        justify-content: flex-end;
        padding-bottom: 6rem;
    }

    .ca-journey-slide-overlay {
        background: linear-gradient(
            to top,
            rgba(13,13,13,0.82) 0%,
            rgba(13,13,13,0.35) 60%,
            rgba(13,13,13,0.1) 100%
        );
    }

    .ca-journey-dots {
        bottom: 2rem;
        right: 1.75rem;
    }

    .ca-journey-count {
        bottom: 2rem;
        left: 1.75rem;
    }
}

/* =============================================================================
   Footer Location Line — ca-footer-location
   ============================================================================= */

.ca-footer-location {
    text-align: center;
    font-family: 'Cormorant SC', Georgia, serif;
    font-size: 0.625rem;
    font-weight: 300;
    letter-spacing: 0.35em;
    color: var(--muted, #7A756C);
    text-transform: uppercase;
    padding: 1.25rem 0 0.5rem;
    border-top: 1px solid rgba(201, 169, 110, 0.1);
    margin-top: 1rem;
}
