/**
 * Main Frontend Stylesheet — DrPaio Premium Design System
 * File: assets/css/main.css
 * Matches: src/app/globals.css (Next.js Tailwind → vanilla CSS)
 */

/* ═══════════════════════════════════════════════════════════════
   CSS Custom Properties (Design Tokens)
   ═══════════════════════════════════════════════════════════════ */
:root {
    color-scheme: only light;
    /* ── DrPaio Clinical Blue Palette ── */
    --color-obsidian: #042C53;
    --color-obsidian-soft: #0C447C;
    --color-midnight: #185FA5;
    --color-ivory: #F7FBFF;
    --color-ivory-warm: #EAF4FB;
    --color-ivory-deep: #B5D4F4;

    --color-gold: #378ADD;
    --color-gold-light: #B5D4F4;
    --color-gold-pale: #EAF4FB;
    --color-gold-dark: #185FA5;

    --color-sage: #378ADD;
    --color-sage-light: #B5D4F4;
    --color-sage-dark: #185FA5;

    --color-smoke: #6B8CAF;
    --color-ash: #185FA5;
    --color-charcoal: #042C53;

    /* ── Typography ── */
    --font-display: 'Montserrat', system-ui, -apple-system, sans-serif;
    --font-serif: 'Montserrat', system-ui, -apple-system, sans-serif;
    --font-body: 'Montserrat', system-ui, -apple-system, sans-serif;

    /* ── Clinical Shadows ── */
    --shadow-gold: 0 0 40px rgba(55, 138, 221, 0.15);
    --shadow-card: 0 2px 8px rgba(4, 44, 83, 0.03), 0 8px 24px rgba(4, 44, 83, 0.05);
    --shadow-card-hover: 0 4px 12px rgba(4, 44, 83, 0.04), 0 16px 40px rgba(4, 44, 83, 0.10);
    --shadow-deep: 0 32px 80px rgba(4, 44, 83, 0.18);

    /* ── Spacing ── */
    --space-section: clamp(60px, 8vw, 110px);
    --space-component: clamp(40px, 5vw, 72px);

    /* ── Transitions ── */
    --ease-luxury: cubic-bezier(0.25, 0.46, 0.45, 0.94);
    --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
    --duration-fast: 200ms;
    --duration-med: 400ms;
    --duration-slow: 700ms;

    /* ── Radii ── */
    --radius-sm: 0.375rem;
    --radius-md: 0.5rem;
    --radius-lg: 0.75rem;
    --radius-xl: 1rem;
    --radius-2xl: 1.25rem;
    --radius-full: 9999px;

    /* ── Layout ── */
    --container-max: 1200px;
    --container-narrow: 768px;
    --header-height: 80px;

    /* ── Type Scale ── */
    --text-hero: clamp(3.5rem, 8vw, 7rem);
    --text-h2: clamp(1.75rem, 4vw, 2.5rem);
    --text-h3: clamp(1.25rem, 2.5vw, 1.75rem);
}

html,
body {
    color-scheme: only light;
    overflow-x: clip;
    font-family: var(--font-body);
    font-weight: 400;
}

/* ═══════════════════════════════════════════════════════════════
   Reset & Base
   ═══════════════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 1rem;
    line-height: 1.7;
    color: var(--color-charcoal);
    background-color: var(--color-ivory);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: clip;
}
/* On the front page the body sits behind the hero. */
body.home {
    background-color: var(--color-ivory);
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--color-gold); text-decoration: none; transition: color var(--duration-fast) var(--ease-luxury); }
a:hover { color: var(--color-gold-dark); }

h1, h2, h3 {
    font-family: var(--font-display);
    font-weight: 500;
    line-height: 1.2;
    font-size: clamp(1.8rem, 2.6vw, 2.5rem);
}
h4, h5, h6 {
    font-family: var(--font-body);
    font-weight: 500;
}

::selection { background: var(--color-gold-pale); color: var(--color-obsidian); }

:focus-visible {
    outline: 2px solid var(--color-gold);
    outline-offset: 2px;
}

.dc-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Premium scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--color-ivory-warm); }
::-webkit-scrollbar-thumb { background: var(--color-gold); border-radius: 3px; }

/* ═══════════════════════════════════════════════════════════════
   Layout
   ═══════════════════════════════════════════════════════════════ */
.dc-container {
    width: 100%;
    max-width: var(--container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: clamp(1rem, 4vw, 2.5rem);
    padding-right: clamp(1rem, 4vw, 2.5rem);
}
.dc-container--narrow { max-width: var(--container-narrow); }

/* Explicit reset for <main> wrapper — prevents any browser/WP default gap */
.dc-main { display: block; margin-top: 0; padding-top: 0; overflow-x: clip; }

@media (max-width: 480px) {
    .dc-container { padding-left: 1.25rem; padding-right: 1.25rem; }
}

/* ═══════════════════════════════════════════════════════════════
   Section Heading
   ═══════════════════════════════════════════════════════════════ */
.dc-section-heading {
    text-align: center;
    margin-bottom: var(--space-component);
}
.dc-section-heading__eyebrow {
    display: inline-block;
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 0.75rem;
}
.dc-section-heading__title {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 1rem;
    letter-spacing: -0.02em;
}
.dc-section-heading__subtitle {
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 300;
    color: var(--color-smoke);
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.7;
}

/* Dark variant */
.dc-section-heading--dark .dc-section-heading__title { color: var(--color-ivory); }
.dc-section-heading--dark .dc-section-heading__subtitle { color: rgba(234, 244, 251, 0.7); }

/* Left-aligned variant (used by WhyUs) */
.dc-section-heading__eyebrow--left,
.dc-section-heading__title--left { text-align: left; }

/* ═══════════════════════════════════════════════════════════════
   Noise Texture Utility
   ═══════════════════════════════════════════════════════════════ */
.dc-testimonials::before,
.dc-cta__noise,
.dc-hero__noise {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.03;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' 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: 0;
}

/* ═══════════════════════════════════════════════════════════════
   Animations
   ═══════════════════════════════════════════════════════════════ */
@keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeUp {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes pulse-gold {
    0%, 100% { box-shadow: 0 0 0 0 rgba(55, 138, 221, 0.4); }
    50% { box-shadow: 0 0 0 12px rgba(55, 138, 221, 0); }
}
@keyframes heroScrollPulse {
    0%, 100% { transform: scaleY(0); transform-origin: top; }
    50% { transform: scaleY(1); transform-origin: top; }
}
@keyframes dc-spin {
    to { transform: rotate(360deg); }
}

.hero-fade-up {
    animation: heroFadeUp 0.8s var(--ease-luxury) both;
}

/* Scroll-triggered animate */
.dc-animate {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s var(--ease-luxury), transform 0.6s var(--ease-luxury);
}
.dc-animate.is-visible {
    opacity: 1;
    transform: translate(0, 0);
}

@media (prefers-reduced-motion: reduce) {
    .hero-fade-up, .dc-animate {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Buttons
   ═══════════════════════════════════════════════════════════════ */
.dc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.5;
    border: 1px solid transparent;
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: all var(--duration-fast) var(--ease-luxury);
    text-decoration: none;
    white-space: nowrap;
}

.dc-btn--gold {
    background: var(--color-gold);
    color: #FFFFFF;
    border-color: var(--color-gold);
}
.dc-btn--gold:hover {
    background: var(--color-gold-dark);
    border-color: var(--color-gold-dark);
    color: #FFFFFF;
    box-shadow: var(--shadow-gold);
}

.dc-btn--outline {
    background: transparent;
    color: var(--color-charcoal);
    border-color: rgba(55, 138, 221, 0.3);
}
.dc-btn--outline:hover {
    border-color: var(--color-gold);
    background: rgba(55, 138, 221, 0.05);
    color: var(--color-gold-dark);
}

.dc-btn--outline-ivory {
    background: transparent;
    color: var(--color-ivory);
    border-color: rgba(234, 244, 251, 0.2);
}
.dc-btn--outline-ivory:hover {
    border-color: rgba(55, 138, 221, 0.4);
    background: rgba(55, 138, 221, 0.05);
    color: var(--color-gold-light);
}

.dc-btn--lg { padding: 1rem 2rem; font-size: 1rem; }
.dc-btn--sm { padding: 0.5rem 1rem; font-size: 0.8125rem; }
.dc-btn--full { width: 100%; }

.dc-btn svg { flex-shrink: 0; }

/* ═══════════════════════════════════════════════════════════════
   A1 – Skip navigation link
   ═══════════════════════════════════════════════════════════════ */
.dc-skip-link {
    position: absolute;
    top: -100%;
    left: 1rem;
    z-index: 9999;
    padding: 0.75rem 1.25rem;
    background: var(--color-gold, #c9a96e);
    color: var(--color-obsidian, #042c53);
    font-weight: 600;
    font-size: 0.875rem;
    border-radius: 0 0 0.5rem 0.5rem;
    text-decoration: none;
    transition: top 0.15s ease;
}
.dc-skip-link:focus {
    top: 0;
}

/* ═══════════════════════════════════════════════════════════════
   Header
   ═══════════════════════════════════════════════════════════════ */
.dc-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--color-obsidian);
    height: var(--header-height);
    /* R8: safe-area-inset for notched devices */
    padding-top: env(safe-area-inset-top, 0px);
    transition:
        box-shadow var(--duration-fast) var(--ease-luxury),
        transform 260ms var(--ease-luxury);
    will-change: transform;
}
.dc-header--scrolled {
    box-shadow: 0 4px 20px rgba(4, 44, 83, 0.08);
}
.dc-header--hidden {
    transform: translateY(calc(-100% - env(safe-area-inset-top, 0px)));
}
.dc-header:focus-within {
    transform: translateY(0);
}
/* Sub-pixel gap kill: extends the header background 8 px below its box.
   Combined with body.home { background: obsidian } this is bulletproof. */
.dc-header::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 8px;
    background: var(--color-obsidian);
    pointer-events: none;
    z-index: 1;
}

.dc-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 clamp(1rem, 3vw, 2.5rem);
}

/* Logo */
.dc-header__logo {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0.375rem 0;
    text-decoration: none;
    line-height: 0;
}
.dc-header__logo-image {
    display: block;
    width: clamp(11.5rem, 22vw, 16.5rem);
    height: auto;
    max-width: 100%;
}

/* Desktop nav */
.dc-header__nav {
    display: flex;
    align-items: center;
}
.dc-header__nav-list {
    display: flex;
    list-style: none;
    gap: 0.25rem;
    margin: 0;
    padding: 0;
}
.dc-header__nav-item {
    position: relative;
}
.dc-header__nav-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    gap: 0.25rem;
    padding: 0.625rem 1rem;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 400;
    color: rgba(247, 251, 255, 0.65);
    border-radius: var(--radius-md);
    transition: color var(--duration-fast) var(--ease-luxury);
    text-decoration: none;
    position: relative;
    letter-spacing: 0.01em;
}
.dc-header__nav-link:hover {
    color: var(--color-ivory);
}
.dc-header__nav-link--active {
    color: var(--color-gold);
}
.dc-header__nav-indicator {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 16px;
    height: 2px;
    background: var(--color-gold);
    border-radius: 1px;
}
.dc-header__chevron {
    opacity: 0.5;
    transition: transform var(--duration-fast);
}

/* Dropdown — pure CSS :hover */
/* ::after on the <li> creates an invisible hover bridge.
   Hovering the pseudo-element keeps <li>:hover active so the
   cursor can travel from the nav link down to the dropdown panel
   without ever losing the hover state. */
.dc-header__nav-item--dropdown::after {
    content: '';
    position: absolute;
    top: 100%;
    left: -20px;
    right: -20px;
    height: 14px;   /* bridge between link bottom and dropdown top */
    z-index: 99;
}
.dc-header__dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 2px);   /* 2 px visual gap */
    left: 50%;
    transform: translateX(-50%);
    min-width: 240px;
    background: var(--color-obsidian-soft);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-deep);
    padding: 0.5rem;
    z-index: 100;
}
.dc-header__nav-item--dropdown:hover .dc-header__dropdown,
.dc-header__nav-item--dropdown:focus-within .dc-header__dropdown {
    display: block;
}
.dc-header__nav-item--dropdown:hover .dc-header__chevron,
.dc-header__nav-item--dropdown:focus-within .dc-header__chevron {
    transform: rotate(180deg);
}
.dc-header__dropdown-link {
    display: block;
    padding: 0.625rem 1rem;
    font-size: 0.8125rem;
    color: rgba(234, 244, 251, 0.8);
    border-radius: var(--radius-md);
    transition: all var(--duration-fast);
    text-decoration: none;
}
.dc-header__dropdown-link:hover {
    background: rgba(55, 138, 221, 0.15);
    color: var(--color-gold-light);
}
.dc-header__dropdown-link--active { color: var(--color-gold); }

/* Header actions */
.dc-header__actions {
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* Language Switcher */
.dc-lang-switcher {
    display: flex;
    gap: 2px;
    border: 1px solid rgba(247, 251, 255, 0.2);
    border-radius: var(--radius-md);
    overflow: hidden;
}
.dc-lang-switcher__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0.625rem 0.75rem;
    font-size: 0.6875rem;
    font-weight: 500;
    text-transform: uppercase;
    color: rgba(247, 251, 255, 0.5);
    transition: all var(--duration-fast);
    text-decoration: none;
}
.dc-lang-switcher__link:hover { color: var(--color-ivory); }
.dc-lang-switcher__link--active {
    background: var(--color-gold);
    color: #FFFFFF;
}

/* Header CTA */
.dc-header__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0.625rem 1rem;
    font-size: 0.8125rem;
}

/* Mobile toggle */
.dc-header__menu-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    width: 44px;
    height: 44px;
    padding: 0;
}
.dc-hamburger {
    display: flex;
    flex-direction: column;
    gap: 5px;
    width: 24px;
}
.dc-hamburger span {
    display: block;
    height: 2px;
    background: var(--color-ivory);
    border-radius: 2px;
    transition: all var(--duration-fast);
}

/* Mobile Menu */
.dc-mobile-menu {
    display: none;
    position: fixed;
    top: var(--header-height);
    left: 0;
    right: 0;
    bottom: auto;
    height: calc(100vh - var(--header-height));
    height: calc(100svh - var(--header-height));
    background: var(--color-obsidian);
    z-index: 1001;
    padding: 2rem 1.5rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
.dc-mobile-menu.is-open { display: flex; flex-direction: column; }
.dc-mobile-menu.is-open nav {
    display: flex;
    flex: 1;
    min-height: 0;
    flex-direction: column;
}
#mobile-menu-toggle[aria-expanded="true"] .dc-hamburger span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
#mobile-menu-toggle[aria-expanded="true"] .dc-hamburger span:nth-child(2) {
    opacity: 0;
}
#mobile-menu-toggle[aria-expanded="true"] .dc-hamburger span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}
.dc-mobile-menu__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.dc-mobile-menu__link {
    display: block;
    padding: 1rem;
    font-size: 1.125rem;
    font-weight: 400;
    color: var(--color-ivory);
    border-radius: var(--radius-md);
    transition: background var(--duration-fast);
    text-decoration: none;
}
.dc-mobile-menu__link:hover { background: rgba(55, 138, 221, 0.08); }
.dc-mobile-menu__cta-wrap { margin-top: 1rem; }
.dc-mobile-menu__cta {
    display: block;
    padding: 1rem;
    text-align: center;
    background: var(--color-gold);
    color: #FFFFFF;
    border-radius: var(--radius-full);
    font-weight: 500;
    transition: background var(--duration-fast);
    text-decoration: none;
}
.dc-mobile-menu__cta:hover { background: var(--color-gold-dark); color: #FFFFFF; }

.dc-mobile-menu__footer {
    margin-top: auto;
    padding-top: 2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: flex-start;
}
.dc-mobile-menu__phone {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: rgba(234, 244, 251, 0.6);
    font-size: 0.875rem;
    text-decoration: none;
}
.dc-mobile-menu__phone:hover { color: var(--color-gold); }

.dc-lang-switcher--mobile {
    border-color: rgba(255, 255, 255, 0.08);
    width: auto;
    align-self: flex-start;
}

.dc-lang-switcher--mobile .dc-lang-switcher__link {
    min-width: 3.6rem;
    padding: 0.625rem 0.9rem;
}

/* Hamburger at 900 px — prevents cramped nav on tablets/small laptops */
@media (max-width: 900px) {
    .dc-header__nav,
    .dc-header__actions .dc-lang-switcher,
    .dc-header__cta { display: none; }
    .dc-header__menu-toggle { display: block; }
}

/* ═══════════════════════════════════════════════════════════════
   Hero
   ═══════════════════════════════════════════════════════════════ */
/* Legacy preloader and legacy 3D/mobile hero styles removed.
   Current front-page hero lives in assets/css/hero-anime.css. */

.dc-social-proof {
    background: var(--color-obsidian);
    border-bottom: 1px solid rgba(247, 251, 255, 0.08);
}
.dc-social-proof__inner {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 3rem 1rem;
}
.dc-social-proof__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    text-align: center;
}
.dc-social-proof__stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}
.dc-social-proof__value {
    display: flex;
    align-items: baseline;
    gap: 0.125rem;
}
.dc-social-proof__number {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 500;
    color: var(--color-ivory);
    letter-spacing: -0.02em;
}
.dc-social-proof__suffix {
    font-family: var(--font-display);
    font-size: clamp(1rem, 2vw, 1.25rem);
    font-weight: 400;
    color: var(--color-gold);
}
.dc-social-proof__label {
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 400;
    color: rgba(247, 251, 255, 0.5);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

@media (max-width: 640px) {
    .dc-social-proof__grid { grid-template-columns: repeat(2, 1fr); }
}

/* ═══════════════════════════════════════════════════════════════
   Services Section
   ═══════════════════════════════════════════════════════════════ */
.dc-services {
    background: var(--color-ivory);
    padding: var(--space-section) 0;
}
.dc-services__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-bottom: var(--space-component);
}
.dc-service-card {
    display: block;
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-2xl);
    overflow: hidden;
    transition: all var(--duration-med) var(--ease-luxury);
    text-decoration: none;
    color: inherit;
}
.dc-service-card--wide {
    grid-column: span 2;
}
.dc-service-card--span-3 {
    grid-column: span 3;
}
.dc-service-card:hover {
    border-color: rgba(55, 138, 221, 0.3);
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-4px);
    color: inherit;
}
.dc-service-card__image {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}
.dc-service-card--wide .dc-service-card__image {
    aspect-ratio: 2 / 1;
}
.dc-service-card--span-3 .dc-service-card__image {
    aspect-ratio: 3 / 1;
}
/* Uniform image height: x2/x3 cards become wider but never taller than x1, keeping rows balanced. */
.dc-services__grid .dc-service-card__image,
.dc-services__grid .dc-service-card--wide .dc-service-card__image,
.dc-services__grid .dc-service-card--span-3 .dc-service-card__image {
    aspect-ratio: auto;
    height: 220px;
}
.dc-services__grid .dc-service-card--wide .dc-service-card__image,
.dc-services__grid .dc-service-card--span-3 .dc-service-card__image {
    height: 205px;
}
.dc-services__grid .dc-service-card--span-3 {
    display: grid;
    grid-template-columns: minmax(18rem, 0.52fr) minmax(0, 0.48fr);
    align-items: stretch;
}
.dc-services__grid .dc-service-card--span-3 .dc-service-card__image {
    height: clamp(19rem, 25vw, 22rem);
    min-height: 0;
    aspect-ratio: auto;
    background: transparent;
}
.dc-service-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    transition: transform var(--duration-slow) var(--ease-luxury);
}
.dc-services__grid .dc-service-card--span-3 .dc-service-card__image img,
body.home .dc-services .dc-service-card--span-3 .dc-service-card__image img {
    object-fit: cover;
    object-position: center center;
    transform: none;
}
.dc-service-card:hover .dc-service-card__image img {
    transform: scale(1.05);
}
.dc-services__grid .dc-service-card--span-3:hover .dc-service-card__image img,
body.home .dc-services .dc-service-card--span-3:hover .dc-service-card__image img {
    transform: none;
}
.dc-service-card__body {
    padding: 1.5rem;
}
.dc-service-card--wide .dc-service-card__body,
.dc-service-card--span-3 .dc-service-card__body {
    padding: 1.25rem 1.35rem;
}
.dc-service-card__icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    background: rgba(55, 138, 221, 0.1);
    border-radius: var(--radius-xl);
    margin-bottom: 1rem;
}
.dc-service-card__icon {
    color: var(--color-gold);
    font-size: 1rem;
}
.dc-service-card__title {
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 0.5rem;
}
.dc-service-card__desc {
    font-size: 0.875rem;
    font-weight: 300;
    color: var(--color-smoke);
    margin-bottom: 1rem;
    line-height: 1.6;
}
.dc-service-card__practitioner {
    margin-bottom: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(4, 44, 83, 0.08);
}
.dc-service-card__practitioner-name {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-charcoal);
}
.dc-service-card__practitioner-role {
    margin: 0.1875rem 0 0;
    font-size: 0.8125rem;
    font-weight: 300;
    color: var(--color-smoke);
}
.dc-service-card__link {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-gold);
    transition: gap var(--duration-fast);
}
.dc-service-card:hover .dc-service-card__link { gap: 0.5rem; }

.dc-services__footer {
    text-align: center;
}

@media (max-width: 960px) {
    .dc-services__grid { grid-template-columns: repeat(2, 1fr); }
    .dc-services__grid .dc-service-card--span-3 {
        grid-column: span 2;
        grid-template-columns: 1fr;
    }
    .dc-services__grid .dc-service-card__image,
    .dc-services__grid .dc-service-card--wide .dc-service-card__image,
    .dc-services__grid .dc-service-card--span-3 .dc-service-card__image {
        aspect-ratio: auto;
        height: 195px;
        min-height: 0;
    }
}
@media (max-width: 576px) {
    .dc-services__grid { grid-template-columns: 1fr; }
    .dc-services__grid .dc-service-card--wide,
    .dc-services__grid .dc-service-card--span-3 {
        grid-column: span 1;
        grid-template-columns: 1fr;
    }
    .dc-services__grid .dc-service-card__image,
    .dc-services__grid .dc-service-card--wide .dc-service-card__image,
    .dc-services__grid .dc-service-card--span-3 .dc-service-card__image {
        aspect-ratio: auto;
        height: 190px;
        min-height: 0;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Why Us Section
   ═══════════════════════════════════════════════════════════════ */
.dc-why-us {
    background: var(--color-ivory-warm);
    padding: var(--space-section) 0;
}
.dc-why-us__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 1fr);
    gap: clamp(2.25rem, 5vw, 4.5rem);
    align-items: center;
}
.dc-why-us__image-wrap {
    position: relative;
    isolation: isolate;
    max-width: 44rem;
    width: 100%;
    margin: 0 auto;
}
.dc-why-us__carousel {
    position: relative;
    display: grid;
    gap: 0.75rem;
    padding: 0.75rem;
    border: 1px solid rgba(55, 138, 221, 0.18);
    border-radius: var(--radius-xl);
    overflow: visible;
    box-shadow: 0 28px 70px rgba(4, 44, 83, 0.14);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(238, 246, 253, 0.86)),
        #ffffff;
}
.dc-why-us__stage {
    position: relative;
    height: clamp(340px, 43vw, 520px);
    max-height: calc(100vh - 15rem);
    min-height: 21rem;
    overflow: hidden;
    border-radius: calc(var(--radius-xl) - 0.25rem);
    background: linear-gradient(180deg, #f8fcff 0%, #edf6fd 100%);
}
.dc-why-us__slide {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    opacity: 0;
    margin: 0;
    transform: translateX(0);
    transition: opacity 0.28s ease;
    pointer-events: none;
}
.dc-why-us__slide.is-active {
    opacity: 1;
    pointer-events: auto;
}
.dc-why-us__media {
    min-height: 0;
    display: grid;
    place-items: center;
    padding: clamp(0.5rem, 1vw, 0.9rem);
}
.dc-why-us__slide img {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: contain;
    border-radius: var(--radius-md);
    background: transparent;
}
.dc-why-us__caption {
    position: static;
    display: grid;
    gap: 0.25rem;
    padding: 0.9rem 1rem 1rem;
    border-top: 1px solid rgba(181, 212, 244, 0.62);
    background: rgba(255, 255, 255, 0.92);
    color: var(--color-charcoal);
}
.dc-why-us__caption-count {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    color: var(--color-gold-dark);
}
.dc-why-us__caption strong {
    font-family: var(--font-serif);
    font-size: clamp(1rem, 1.15vw, 1.18rem);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: 0;
}
.dc-why-us__caption span:last-child {
    font-size: 0.84rem;
    line-height: 1.5;
    color: var(--color-smoke);
}
.dc-why-us__carousel-actions {
    position: absolute;
    inset: 50% 0.65rem auto;
    z-index: 3;
    display: flex;
    justify-content: space-between;
    pointer-events: none;
    transform: translateY(-50%);
}
.dc-why-us__nav-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 999px;
    background: rgba(4, 44, 83, 0.72);
    color: #ffffff;
    box-shadow: 0 12px 28px rgba(4, 44, 83, 0.18);
    cursor: pointer;
    pointer-events: auto;
    transition: transform 0.18s ease, background 0.18s ease;
}
.dc-why-us__nav-btn:hover,
.dc-why-us__nav-btn:focus-visible {
    background: rgba(4, 44, 83, 0.9);
    transform: scale(1.04);
}
.dc-why-us__carousel-indicators {
    position: static;
    display: flex;
    justify-content: center;
    align-items: center;
    width: max-content;
    margin: 0.45rem auto 0.15rem;
    gap: 0.48rem;
    padding: 0.48rem 0.82rem;
    border-radius: 999px;
    background: rgba(234, 244, 251, 0.9);
    box-shadow: 0 4px 12px rgba(4, 44, 83, 0.12);
}
.dc-why-us__carousel-indicator {
    width: 0.58rem;
    height: 0.58rem;
    flex: 0 0 auto;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(24, 95, 165, 0.34);
    cursor: pointer;
    transition: transform 0.18s ease, background 0.18s ease;
}
.dc-why-us__carousel-dot {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 999px;
    background: currentColor;
}
.dc-why-us__carousel-indicator.is-active,
.dc-why-us__carousel-indicator:hover,
.dc-why-us__carousel-indicator:focus-visible {
    background: var(--color-midnight);
    transform: scale(1.2);
}
.dc-why-us__image-accent {
    display: none;
}
.dc-why-us__content {
    display: flex;
    flex-direction: column;
}
.dc-why-us__lead {
    max-width: 34rem;
    margin-top: 1rem;
    color: var(--color-smoke);
    line-height: 1.75;
}
.dc-why-us__items {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    margin-top: 2rem;
}
.dc-why-us__item {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}
.dc-why-us__item-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    flex-shrink: 0;
    background: rgba(55, 138, 221, 0.1);
    border-radius: var(--radius-xl);
    color: var(--color-gold);
}
.dc-why-us__item-title {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 0.25rem;
}
.dc-why-us__item-desc {
    font-size: 0.875rem;
    font-weight: 300;
    color: var(--color-smoke);
    line-height: 1.6;
}

@keyframes dcWhyUsCarousel {
    0% {
        opacity: 0;
        transform: scale(1.04);
    }
    4%, 20% {
        opacity: 1;
        transform: scale(1);
    }
    24%, 100% {
        opacity: 0;
        transform: scale(1.03);
    }
}

@keyframes dcWhyUsIndicator {
    0%, 4% {
        transform: translateX(-100%);
    }
    20% {
        transform: translateX(0%);
    }
    24%, 100% {
        transform: translateX(100%);
    }
}

@media (max-width: 768px) {
    .dc-why-us__grid { grid-template-columns: 1fr; }
    .dc-why-us__stage {
        height: clamp(330px, 86vw, 470px);
        max-height: none;
        min-height: 20rem;
    }
    .dc-why-us__caption { padding: 0.8rem 0.9rem 0.9rem; }
    .dc-why-us__carousel-indicators {
        margin-top: 0.6rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dc-why-us__slide,
    .dc-why-us__carousel-indicator,
    .dc-why-us__nav-btn {
        animation: none;
        transition: none;
    }
    .dc-why-us__slide {
        opacity: 0;
        transform: none;
    }
    .dc-why-us__slide:first-child {
        opacity: 1;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Team Section
   ═══════════════════════════════════════════════════════════════ */
.dc-team {
    background: var(--color-ivory);
    padding: var(--space-section) 0;
}
.dc-team__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    max-width: 800px;
    margin: 0 auto;
}
.dc-team__card {
    text-align: center;
    transition: transform var(--duration-med) var(--ease-luxury);
}
.dc-team__card:hover { transform: translateY(-4px); }

.dc-team__avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 0;
    width: 8rem;
    height: 8rem;
    aspect-ratio: 1 / 1;
    margin: 0 auto 1.25rem;
    border-radius: 50%;
    border: 2px solid rgba(55, 138, 221, 0.28);
    background: linear-gradient(180deg, #f8fbff 0%, #f3f8fe 100%);
    box-shadow: 0 8px 24px rgba(4, 44, 83, 0.12);
    transition: all var(--duration-med) var(--ease-luxury);
}
.dc-team__card:hover .dc-team__avatar {
    border-color: rgba(55, 138, 221, 0.42);
    box-shadow: 0 10px 28px rgba(4, 44, 83, 0.16);
}
.dc-team__initials {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 600;
    color: var(--color-gold);
    letter-spacing: 0.1em;
}
.dc-team__photo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    border-radius: inherit;
}
.dc-team__name {
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 0.25rem;
}
.dc-team__role {
    font-size: 0.875rem;
    color: var(--color-gold);
    font-weight: 400;
    margin-bottom: 0.5rem;
}
.dc-team__specialties {
    font-size: 0.8125rem;
    font-weight: 300;
    color: var(--color-smoke);
}
.dc-team__footer {
    text-align: center;
    margin-top: 3rem;
}

@media (max-width: 640px) {
    .dc-team__grid { grid-template-columns: 1fr; }
    .dc-team__avatar { width: 6rem; height: 6rem; }
    .dc-team__initials { font-size: 1.5rem; }
}

/* ═══════════════════════════════════════════════════════════════
   Testimonials Section
   ═══════════════════════════════════════════════════════════════ */
.dc-testimonials {
    position: relative;
    background: var(--color-obsidian);
    padding: var(--space-section) 0;
}
.dc-testimonials__grid {
    display: grid;
    gap: 2rem;
    max-width: 1000px;
    margin: 0 auto;
}
.dc-testimonials__grid--balanced {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}
.dc-testimonials__grid--balanced .dc-testimonial-card {
    grid-column: span 2;
}
.dc-testimonials__grid--balanced .dc-testimonial-card--bottom {
    grid-column: span 3;
}

.dc-testimonial-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--color-obsidian-soft);
    border: 1px solid rgba(234, 244, 251, 0.05);
    border-radius: var(--radius-2xl);
    padding: 1.5rem;
    transition: all var(--duration-med) var(--ease-luxury);
    z-index: 1;
}
.dc-testimonial-card:hover {
    border-color: rgba(55, 138, 221, 0.2);
    box-shadow: var(--shadow-gold);
}
.dc-testimonial-card__quote {
    color: rgba(55, 138, 221, 0.3);
    margin-bottom: 1rem;
}
.dc-testimonial-card__stars {
    display: flex;
    gap: 2px;
    margin-bottom: 1rem;
    color: var(--color-gold);
}
.dc-testimonial-card__text {
    font-size: 0.875rem;
    font-weight: 300;
    color: rgba(234, 244, 251, 0.8);
    line-height: 1.7;
}
.dc-testimonial-card__footer {
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid rgba(234, 244, 251, 0.05);
}
.dc-testimonial-card__author {
    font-family: var(--font-display);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-gold);
}
.dc-testimonial-card__source {
    font-size: 0.75rem;
    color: var(--color-smoke);
    margin-top: 0.125rem;
}

@media (max-width: 768px) {
    .dc-testimonials__grid--balanced {
        grid-template-columns: 1fr;
    }

    .dc-testimonials__grid--balanced .dc-testimonial-card,
    .dc-testimonials__grid--balanced .dc-testimonial-card--bottom {
        grid-column: span 1;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Location Section
   ═══════════════════════════════════════════════════════════════ */
.dc-location {
    background: var(--color-ivory-warm);
    padding: var(--space-section) 0;
}
.dc-location__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}
.dc-location__map-wrap {
    border-radius: var(--radius-2xl);
    overflow: hidden;
    box-shadow: var(--shadow-card);
}
.dc-location__map {
    width: 100%;
    height: 100%;
    min-height: 400px;
    border: 0;
}
.dc-location__info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2rem;
}
.dc-location__info-item {
    display: flex;
    gap: 1rem;
}
.dc-location__info-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    flex-shrink: 0;
    background: rgba(55, 138, 221, 0.1);
    border-radius: var(--radius-xl);
    color: var(--color-gold);
}
.dc-location__info-label {
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 0.25rem;
}
.dc-location__info-value {
    font-size: 0.875rem;
    color: var(--color-ash);
    margin: 0;
}
.dc-location__info-link {
    display: block;
    font-size: 0.875rem;
    color: var(--color-ash);
    transition: color var(--duration-fast);
    text-decoration: none;
    margin-top: 0.125rem;
}
.dc-location__info-link:hover { color: var(--color-gold); }

/* Schedule */
.dc-location__schedule {
    background: var(--color-ivory);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-2xl);
    padding: 1.5rem;
}
.dc-location__schedule-title {
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 1rem;
}
.dc-location__schedule-rows {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.dc-location__schedule-row {
    display: flex;
    justify-content: space-between;
    font-size: 0.875rem;
}
.dc-location__schedule-day { color: var(--color-ash); }
.dc-location__schedule-hours { color: var(--color-charcoal); font-weight: 500; }
.dc-location__schedule-hours--closed { color: var(--color-gold-dark); font-weight: 400; }

@media (max-width: 768px) {
    .dc-location__grid { grid-template-columns: 1fr; }
    .dc-location__map { min-height: 280px; }
}

/* ═══════════════════════════════════════════════════════════════
   FAQ Section
   ═══════════════════════════════════════════════════════════════ */
.dc-faq {
    background: var(--color-ivory);
    padding: var(--space-section) 0;
}
.dc-faq__list {
    border-top: 1px solid rgba(212, 207, 198, 0.5);
}
.dc-faq__item {
    border-bottom: 1px solid rgba(212, 207, 198, 0.5);
    padding: 1.25rem 0;
}
.dc-faq__question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    padding: 0;
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-charcoal);
}
.dc-faq__question:hover { color: var(--color-gold-dark); }
.dc-faq__question-text {
    flex: 1;
    padding-right: 1rem;
}
.dc-faq__chevron {
    flex-shrink: 0;
    color: var(--color-gold);
    transition: transform var(--duration-med) var(--ease-luxury);
}
.dc-faq__item.is-open .dc-faq__chevron {
    transform: rotate(180deg);
}
.dc-faq__answer {
    overflow: hidden;
    transition: max-height var(--duration-med) var(--ease-luxury), opacity var(--duration-med);
}
.dc-faq__answer[hidden] {
    display: none;
}
.dc-faq__answer p {
    padding-top: 0.75rem;
    font-size: 0.875rem;
    font-weight: 300;
    line-height: 1.7;
    color: var(--color-smoke);
}

@media (min-width: 640px) {
    .dc-faq__question { font-size: 1.125rem; }
}

/* ═══════════════════════════════════════════════════════════════
   CTA Section
   ═══════════════════════════════════════════════════════════════ */
.dc-cta {
    position: relative;
    background: var(--color-obsidian);
    overflow: hidden;
    padding: var(--space-section) 0;
}
.dc-cta__bg {
    position: absolute;
    inset: 0;
}
.dc-cta__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(135deg, rgba(4, 34, 67, 0.58), rgba(36, 116, 198, 0.28) 48%, rgba(7, 22, 42, 0.66));
}
.dc-cta__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.7;
    filter: saturate(0.92) contrast(1.02) brightness(0.82);
    transform: scale(1.03);
}
.dc-cta__noise {
    z-index: 1;
    opacity: 0.04;
}
.dc-cta__gradient {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 20%, rgba(98, 177, 255, 0.14), transparent 42%);
    z-index: 1;
}
.dc-cta__content {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 1rem;
}
.dc-cta__eyebrow {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 400;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 1rem;
}
.dc-cta__title {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 4.5vw, 3rem);
    font-weight: 500;
    color: var(--color-ivory);
    letter-spacing: -0.02em;
    margin-bottom: 1rem;
}
.dc-cta__subtitle {
    font-size: 1rem;
    font-weight: 300;
    color: var(--color-smoke);
    max-width: 500px;
    margin: 0 auto 2.5rem;
}
.dc-cta__phone {
    color: var(--color-gold);
    transition: color var(--duration-fast);
    text-decoration: none;
}
.dc-cta__phone:hover { color: var(--color-gold-light); }

.dc-cta__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.dc-cta__actions .dc-btn {
    min-width: 17rem;
    justify-content: center;
}

@media (min-width: 640px) {
    .dc-cta__actions { flex-direction: row; justify-content: center; }
}

@media (max-width: 640px) {
    .dc-cta__actions {
        width: 100%;
        align-items: stretch;
    }

    .dc-cta__actions .dc-btn {
        width: 100%;
        min-width: 0;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Footer
   ═══════════════════════════════════════════════════════════════ */
.dc-footer {
    background: var(--color-obsidian);
    color: rgba(234, 244, 251, 0.6);
    padding: var(--space-section) 0 0;
}
.dc-footer a {
    color: rgba(234, 244, 251, 0.6);
    text-decoration: none;
    transition: color var(--duration-fast);
}
.dc-footer a:hover { color: var(--color-gold); }

.dc-footer__container {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 1rem;
}

/* Logo */
.dc-footer__logo-section {
    margin-bottom: var(--space-component);
}
.dc-footer__logo {
    display: inline-block;
    text-decoration: none;
    margin-bottom: 0.75rem;
}
.dc-footer__logo-image {
    display: block;
    width: clamp(13rem, 25vw, 18rem);
    height: auto;
    max-width: 100%;
}
.dc-footer__tagline {
    font-size: 0.875rem;
    font-weight: 300;
    color: var(--color-smoke);
    max-width: 300px;
}

/* Grid */
.dc-footer__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2rem;
    align-items: start;
}
.dc-footer__col {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.dc-footer__heading {
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-ivory);
    margin-bottom: 1rem;
}
.dc-footer__heading--schedule {
    margin-top: 0;
}
.dc-footer__heading--social {
    margin-top: 1.5rem;
}
.dc-footer__links {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}
.dc-footer__links a {
    font-size: 0.875rem;
    display: block;
    line-height: 1.35;
}

/* Contact column */
.dc-footer__contact {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.dc-footer__contact-item {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.45;
    min-width: 0;
}
.dc-footer__contact-item svg { flex-shrink: 0; opacity: 0.6; }
.dc-footer__contact-item[href^="mailto:"] {
    overflow-wrap: anywhere;
    word-break: break-word;
}
.dc-footer__contact-item--address {
    align-items: flex-start;
    line-height: 1.4;
}

/* Social */
.dc-footer__social {
    display: flex;
    gap: 0.75rem;
}
.dc-footer__social-mobile-group {
    display: none;
}
.dc-footer__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    /* R6: minimum 44×44px touch target */
    min-width: 2.75rem;
    min-height: 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all var(--duration-fast);
}
.dc-footer__social-link:hover {
    border-color: var(--color-gold);
    background: rgba(55, 138, 221, 0.1);
    color: var(--color-gold);
}

/* Schedule in footer */
.dc-footer__schedule {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}
.dc-footer__schedule .dc-footer__schedule-row--weekend-combined {
    display: none;
}
.dc-footer__schedule-row {
    display: grid;
    grid-template-columns: 7.75rem minmax(0, 1fr);
    align-items: baseline;
    font-size: 0.75rem;
    gap: 0.5rem;
}
.dc-footer__schedule-row span:last-child {
    text-align: right;
}
.dc-footer__closed { color: var(--color-gold-dark); }

/* Divider */
.dc-footer__divider {
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--color-gold), transparent);
    margin-top: var(--space-component);
}

/* Bottom bar */
.dc-footer__bottom {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    padding: 1.5rem 0;
    gap: 1.25rem;
    justify-items: center;
}
.dc-footer__copyright {
    font-size: 0.8125rem;
    color: var(--color-smoke);
    max-width: 48rem;
}
.dc-footer__copyright { text-align: center; }
.dc-footer__copyright p { margin: 0; }
.dc-footer__nrs {
    font-size: 0.75rem;
    color: var(--color-ash);
    margin-top: 0.125rem;
}
.dc-footer__legal-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.5rem;
}
.dc-footer__legal-nav a {
    font-size: 0.8125rem;
}

@media (max-width: 768px) {
    .dc-footer {
        padding: clamp(2.75rem, 10vw, 3.75rem) 0 0;
    }

    .dc-footer__logo-section {
        margin-bottom: 1.5rem;
        text-align: center;
    }

    .dc-footer__tagline {
        margin: 0 auto;
        max-width: 24rem;
        font-size: 0.84rem;
    }

    .dc-footer__grid {
        grid-template-columns: 1fr;
        gap: 1.9rem;
        justify-items: center;
        text-align: center;
    }

    .dc-footer__col {
        align-items: center;
        width: 100%;
        max-width: 22rem;
    }

    .dc-footer__heading {
        margin-bottom: 0.7rem;
    }

    .dc-footer__heading--schedule {
        margin-top: 0;
    }

    .dc-footer__heading--social {
        margin-top: 1.5rem;
    }

    /* Single centered Social block at the end (schedule column) */
    .dc-footer__social-mobile-group {
        display: none;
    }

    .dc-footer__links {
        align-items: center;
    }

    .dc-footer__links a {
        text-align: center;
    }

    .dc-footer__contact {
        align-items: center;
    }

    .dc-footer__contact-item {
        justify-content: center;
        text-align: center;
    }

    .dc-footer__social {
        justify-content: center;
    }

    .dc-footer__schedule {
        width: 100%;
        max-width: 17rem;
    }

    .dc-footer__schedule-row--saturday,
    .dc-footer__schedule-row--sunday {
        display: none;
    }

    .dc-footer__schedule .dc-footer__schedule-row--weekend-combined {
        display: grid;
    }

    .dc-footer__links {
        gap: 0.45rem;
    }

    .dc-footer__links a,
    .dc-footer__contact-item {
        font-size: 0.82rem;
        line-height: 1.35;
    }

    .dc-footer__contact {
        gap: 0.55rem;
    }

    .dc-footer__social-link {
        min-width: 2.55rem;
        min-height: 2.55rem;
        width: 2.55rem;
        height: 2.55rem;
    }

    .dc-footer__schedule-row {
        grid-template-columns: 6.8rem minmax(0, 1fr);
        font-size: 0.72rem;
    }

    .dc-footer__divider {
        margin-top: 1.6rem;
    }

    .dc-footer__bottom {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
        padding: 1rem 0 1.25rem;
        gap: 0.85rem;
    }

    .dc-footer__legal-nav {
        justify-content: center;
        gap: 0.7rem 1rem;
    }

    .dc-footer__legal-nav a {
        font-size: 0.76rem;
    }
}
@media (max-width: 480px) {
    .dc-header__logo-image {
        width: clamp(9.8rem, 44vw, 12rem);
    }

    .dc-footer__logo-image {
        width: clamp(10.6rem, 56vw, 13.5rem);
    }

    .dc-footer__grid {
        grid-template-columns: 1fr;
        gap: 1.6rem;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Cards (generic)
   ═══════════════════════════════════════════════════════════════ */
.dc-card {
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: box-shadow var(--duration-fast) var(--ease-luxury);
}
.dc-card:hover { box-shadow: var(--shadow-card); }

/* ═══════════════════════════════════════════════════════════════
   Badges
   ═══════════════════════════════════════════════════════════════ */
.dc-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.625rem;
    font-size: 0.75rem;
    font-weight: 500;
    border-radius: var(--radius-full);
    line-height: 1.4;
}
.dc-badge--gold { background: var(--color-gold-pale); color: var(--color-gold-dark); }
.dc-badge--outline { background: transparent; border: 1px solid var(--color-ivory-deep); color: var(--color-ash); }

/* ═══════════════════════════════════════════════════════════════
   Forms
   ═══════════════════════════════════════════════════════════════ */
.dc-form { display: flex; flex-direction: column; gap: 1rem; }
.dc-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 640px) { .dc-form__row { grid-template-columns: 1fr; } }
.dc-form__group { display: flex; flex-direction: column; gap: 0.25rem; }
.dc-form__label { font-size: 0.875rem; font-weight: 500; color: var(--color-charcoal); }

.dc-input,
.dc-textarea {
    width: 100%;
    padding: 0.75rem 1rem;
    font-family: var(--font-body);
    font-size: 0.9375rem;
    font-weight: 300;
    color: var(--color-charcoal);
    background: var(--color-ivory);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-lg);
    transition: border-color var(--duration-fast), box-shadow var(--duration-fast);
}
.dc-input:focus,
.dc-textarea:focus {
    outline: none;
    border-color: var(--color-gold);
    box-shadow: 0 0 0 3px rgba(55, 138, 221, 0.15);
}
.dc-input--error { border-color: #D94F4F; }
.dc-textarea { resize: vertical; min-height: 100px; }

.dc-form__error {
    font-size: 0.75rem;
    color: #D94F4F;
    display: none;
}
.dc-form__error.is-visible { display: block; }

.dc-form__alert {
    padding: 1rem;
    border-radius: var(--radius-md);
    font-size: 0.875rem;
}
.dc-form__alert--success { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.dc-form__alert--error   { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

/* ═══════════════════════════════════════════════════════════════
   Auth Section
   ═══════════════════════════════════════════════════════════════ */
.dc-section--auth {
    min-height: calc(100vh - var(--header-height));
    display: flex;
    align-items: center;
    background: var(--color-ivory);
}
.dc-auth-card { padding: 2rem; }
.dc-auth-card__header { text-align: center; margin-bottom: 2rem; }

/* ═══════════════════════════════════════════════════════════════
   404
   ═══════════════════════════════════════════════════════════════ */
.dc-section--404 {
    min-height: calc(100vh - var(--header-height) - 200px);
    display: flex;
    align-items: center;
    text-align: center;
}
.dc-404__code {
    font-family: var(--font-display);
    font-size: 8rem;
    font-weight: 500;
    color: var(--color-gold-pale);
    line-height: 1;
    margin-bottom: 1rem;
}

/* ═══════════════════════════════════════════════════════════════
   Blog Index — Premium redesign
   ═══════════════════════════════════════════════════════════════ */

/* ── Toolbar (filter pills + search) ── */
.dc-blog-index__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 3rem;
    flex-wrap: wrap;
}
.dc-blog-index__cats {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.dc-blog-filter {
    display: inline-flex;
    align-items: center;
    padding: 0.375rem 1rem;
    border-radius: var(--radius-full);
    font-size: 0.8125rem;
    font-weight: 400;
    text-decoration: none;
    border: 1px solid var(--color-ivory-deep);
    color: var(--color-smoke);
    background: transparent;
    transition: all var(--duration-fast) var(--ease-luxury);
    white-space: nowrap;
}
.dc-blog-filter:hover {
    border-color: var(--color-gold);
    color: var(--color-gold-dark);
    background: var(--color-gold-pale);
}
.dc-blog-filter--active {
    background: var(--color-charcoal);
    border-color: var(--color-charcoal);
    color: var(--color-ivory);
    font-weight: 500;
}

/* ── Inline search ── */
.dc-blog-index__search {
    position: relative;
    flex-shrink: 0;
}
.dc-blog-index__search-input {
    padding: 0.5rem 2.5rem 0.5rem 1.125rem;
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-full);
    font-size: 0.875rem;
    font-family: var(--font-body);
    background: var(--color-ivory-warm);
    color: var(--color-charcoal);
    width: 220px;
    transition: border-color var(--duration-fast), box-shadow var(--duration-fast);
}
.dc-blog-index__search-input::placeholder { color: var(--color-smoke); }
.dc-blog-index__search-input:focus {
    outline: none;
    border-color: var(--color-gold);
    box-shadow: 0 0 0 3px rgba(55, 138, 221, 0.1);
}
.dc-blog-index__search-btn {
    position: absolute;
    right: 0.875rem;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--color-smoke);
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    transition: color var(--duration-fast);
}
.dc-blog-index__search-btn:hover { color: var(--color-gold); }

/* ── Featured post card ── */
.dc-blog-featured {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-radius: var(--radius-2xl);
    overflow: hidden;
    margin-bottom: 3rem;
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--color-ivory-deep);
    transition: box-shadow var(--duration-med) var(--ease-luxury),
                transform var(--duration-med) var(--ease-luxury);
    min-height: 380px;
}
.dc-blog-featured:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-3px);
    color: inherit;
}
.dc-blog-featured__thumb {
    position: relative;
    overflow: hidden;
}
.dc-blog-featured__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--duration-slow) var(--ease-luxury);
}
.dc-blog-featured:hover .dc-blog-featured__thumb img { transform: scale(1.05); }
.dc-blog-featured__thumb-placeholder {
    width: 100%;
    height: 100%;
    min-height: 380px;
    background: linear-gradient(140deg, var(--color-midnight) 0%, var(--color-obsidian) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.dc-blog-featured__thumb-placeholder::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 60%, rgba(201,169,110,0.14) 0%, transparent 65%);
}
.dc-blog-featured__thumb-initial {
    font-family: var(--font-display);
    font-size: 7rem;
    font-weight: 600;
    color: rgba(55, 138, 221, 0.18);
    position: relative;
    z-index: 1;
    letter-spacing: -0.04em;
    line-height: 1;
    text-transform: uppercase;
    user-select: none;
}
.dc-blog-featured__thumb-cat {
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-ivory);
    background: rgba(4, 44, 83, 0.6);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-radius: var(--radius-full);
    padding: 0.3rem 0.75rem;
    z-index: 2;
}
.dc-blog-featured__body {
    padding: 2.75rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: var(--color-ivory-warm);
}
.dc-blog-featured__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.75rem;
    color: var(--color-smoke);
    margin-bottom: 1.25rem;
}
.dc-blog-featured__meta-sep { opacity: 0.3; font-size: 0.625rem; }
.dc-blog-featured__eyebrow {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-gold-dark);
}
.dc-blog-featured__title {
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 2.5vw, 2.125rem);
    font-weight: 500;
    color: var(--color-charcoal);
    line-height: 1.2;
    letter-spacing: -0.02em;
    margin-bottom: 1rem;
}
.dc-blog-featured__excerpt {
    font-size: 0.9375rem;
    font-weight: 300;
    color: var(--color-smoke);
    line-height: 1.7;
    margin-bottom: 1.75rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.dc-blog-featured__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-gold-dark);
    transition: gap var(--duration-fast);
}
.dc-blog-featured:hover .dc-blog-featured__cta { gap: 0.625rem; }
@media (max-width: 800px) {
    .dc-blog-featured { grid-template-columns: 1fr; min-height: auto; }
    .dc-blog-featured__thumb-placeholder { min-height: 240px; }
    .dc-blog-featured__thumb-initial { font-size: 4rem; }
    .dc-blog-featured__body { padding: 1.75rem; }
}

/* ── Blog grid ── */
.dc-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}
@media (max-width: 960px) { .dc-blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .dc-blog-grid { grid-template-columns: 1fr; } }

/* ── Blog card ── */
.dc-blog-card {
    display: flex;
    flex-direction: column;
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-2xl);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: all var(--duration-med) var(--ease-luxury);
}
.dc-blog-card:hover {
    border-color: rgba(55, 138, 221, 0.3);
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-4px);
    color: inherit;
}
/* Thumbnail */
.dc-blog-card__thumb {
    position: relative;
    aspect-ratio: 16/9;
    overflow: hidden;
    flex-shrink: 0;
}
.dc-blog-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--duration-slow) var(--ease-luxury);
}
.dc-blog-card:hover .dc-blog-card__thumb img { transform: scale(1.05); }
/* Premium placeholder — dark gradient + category initial */
.dc-blog-card__thumb-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(140deg, #185FA5 0%, #0a0a16 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.dc-blog-card__thumb-placeholder::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 40% 50%, rgba(201,169,110,0.1) 0%, transparent 65%);
}
.dc-blog-card__initial {
    font-family: var(--font-display);
    font-size: 3rem;
    font-weight: 600;
    color: rgba(55, 138, 221, 0.22);
    position: relative;
    z-index: 1;
    line-height: 1;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    user-select: none;
}
/* Category badge bottom-left of image */
.dc-blog-card__cat-badge {
    position: absolute;
    bottom: 0.625rem;
    left: 0.625rem;
    font-size: 0.5875rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-ivory);
    background: rgba(4, 44, 83, 0.62);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-radius: var(--radius-full);
    padding: 0.2rem 0.625rem;
    z-index: 2;
}
/* Body */
.dc-blog-card__body {
    padding: 1.25rem 1.5rem 1.5rem;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.dc-blog-card__meta {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.725rem;
    color: var(--color-smoke);
    margin-bottom: 0.625rem;
}
.dc-blog-card__meta-sep { opacity: 0.3; }
.dc-blog-card__title {
    font-family: var(--font-display);
    font-size: 1.0625rem;
    font-weight: 500;
    color: var(--color-charcoal);
    line-height: 1.3;
    letter-spacing: -0.01em;
    margin-bottom: 0.5rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.dc-blog-card__excerpt {
    font-size: 0.875rem;
    font-weight: 300;
    color: var(--color-smoke);
    line-height: 1.65;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 1rem;
}
.dc-blog-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid var(--color-ivory-deep);
    padding-top: 0.875rem;
    margin-top: auto;
}
.dc-blog-card__read-link {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-gold-dark);
    transition: gap var(--duration-fast);
}
.dc-blog-card:hover .dc-blog-card__read-link { gap: 0.5rem; }
.dc-blog-card__time {
    font-size: 0.725rem;
    color: var(--color-smoke);
    opacity: 0.6;
}

/* ── Blog empty state ── */
.dc-blog-empty {
    text-align: center;
    padding: 5rem 1rem;
}
.dc-blog-empty__icon { font-size: 3rem; margin-bottom: 1rem; }
.dc-blog-empty__title {
    font-family: var(--font-display);
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
    color: var(--color-charcoal);
}
.dc-blog-empty__text { color: var(--color-smoke); font-size: 0.9375rem; }

/* ═══════════════════════════════════════════════════════════════
   Avatar
   ═══════════════════════════════════════════════════════════════ */
.dc-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(55, 138, 221, 0.1);
    color: var(--color-gold);
    font-weight: 600;
    overflow: hidden;
}
.dc-avatar--sm { width: 36px; height: 36px; font-size: 0.875rem; }
.dc-avatar--md { width: 48px; height: 48px; font-size: 1rem; }
.dc-avatar--lg { width: 80px; height: 80px; font-size: 1.5rem; }

/* ═══════════════════════════════════════════════════════════════
   Dropdown
   ═══════════════════════════════════════════════════════════════ */
.dc-dropdown { position: relative; }
.dc-dropdown__menu {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    min-width: 180px;
    background: var(--color-ivory);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
    padding: 0.25rem 0;
    z-index: 100;
}
.dc-dropdown.is-open .dc-dropdown__menu { display: block; }
.dc-dropdown__item {
    display: block;
    width: 100%;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    color: var(--color-charcoal);
    text-align: left;
    border: none;
    background: none;
    cursor: pointer;
    text-decoration: none;
}
.dc-dropdown__item:hover { background: var(--color-ivory-warm); }

/* ═══════════════════════════════════════════════════════════════
   Pagination
   ═══════════════════════════════════════════════════════════════ */
.dc-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: var(--space-component);
}
.dc-pagination__link {
    padding: 0.5rem 1rem;
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-md);
    font-size: 0.875rem;
    transition: all var(--duration-fast);
    color: var(--color-charcoal);
}
.dc-pagination__link:hover {
    border-color: var(--color-gold);
    color: var(--color-gold);
}

/* ═══════════════════════════════════════════════════════════════
   Cookie Banner
   ═══════════════════════════════════════════════════════════════ */
.dc-cookie-banner {
    position: fixed;
    left: 50%;
    bottom: 1rem;
    transform: translateX(-50%);
    width: min(960px, calc(100% - 1rem));
    z-index: 2100;
}
.dc-cookie-banner--hidden {
    display: none !important;
}
.dc-cookie-banner__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.95rem 1rem;
    border-radius: 1.25rem;
    border: 1px solid rgba(55, 138, 221, 0.28);
    background: rgba(4, 44, 83, 0.96);
    box-shadow: 0 18px 40px rgba(4, 44, 83, 0.24);
    backdrop-filter: blur(10px);
}
.dc-cookie-banner__text {
    margin: 0;
    color: rgba(234, 244, 251, 0.94);
    font-size: 0.9375rem;
    line-height: 1.5;
}
.dc-cookie-banner__link {
    color: var(--color-gold-light);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}
.dc-cookie-banner__actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}
.dc-cookie-banner .dc-btn--outline {
    border-color: rgba(234, 244, 251, 0.28);
    color: var(--color-ivory);
    background: transparent;
}
.dc-cookie-banner .dc-btn--outline:hover {
    border-color: var(--color-gold);
    background: rgba(55, 138, 221, 0.12);
}
@media (max-width: 768px) {
    .dc-cookie-banner {
        width: calc(100% - 0.75rem);
        bottom: 0.375rem;
    }
    .dc-cookie-banner__inner {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
        padding: 0.75rem;
        border-radius: 1rem;
    }
    .dc-cookie-banner__text {
        font-size: 0.84rem;
        line-height: 1.45;
    }
    .dc-cookie-banner__actions {
        flex-direction: row;
        flex-wrap: wrap;
        width: 100%;
        gap: 0.5rem;
    }
    .dc-cookie-banner .dc-btn {
        flex: 1 1 calc(50% - 0.25rem);
        width: auto;
        min-width: 8.5rem;
        justify-content: center;
        padding: 0.7rem 0.95rem;
        font-size: 0.8rem;
    }
}

@media (max-width: 360px) {
    .dc-cookie-banner__actions {
        flex-direction: column-reverse;
    }
    .dc-cookie-banner .dc-btn {
        width: 100%;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Text Gradient
   ═══════════════════════════════════════════════════════════════ */
.text-gradient-gold {
    background: linear-gradient(135deg, #378ADD 0%, #B5D4F4 50%, #378ADD 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ═══════════════════════════════════════════════════════════════
   Utility Classes
   ═══════════════════════════════════════════════════════════════ */
.dc-text-center { text-align: center; }
.dc-text-muted  { color: var(--color-smoke); }
.dc-py-lg       { padding-top: var(--space-section); padding-bottom: var(--space-section); }

/* ═══════════════════════════════════════════════════════════════
   Section (Generic Interior Sections)
   ═══════════════════════════════════════════════════════════════ */
.dc-section {
    padding: var(--space-section) 0;
}
.dc-section--ivory      { background: var(--color-ivory); }
.dc-section--ivory-warm { background: var(--color-ivory-warm); }
.dc-section__header {
    text-align: center;
    margin-bottom: var(--space-component);
}
.dc-section__eyebrow {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 0.75rem;
}
.dc-section__title {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 1rem;
    letter-spacing: -0.02em;
}
.dc-section__subtitle {
    font-size: 1rem;
    font-weight: 300;
    color: var(--color-smoke);
    max-width: 560px;
    margin: 0 auto;
}

/* ═══════════════════════════════════════════════════════════════
   Button Extras
   ═══════════════════════════════════════════════════════════════ */
.dc-btn--outline-light {
    background: transparent;
    color: var(--color-ivory);
    border-color: rgba(234, 244, 251, 0.2);
}
.dc-btn--outline-light:hover {
    border-color: var(--color-gold);
    color: var(--color-gold);
    background: rgba(55, 138, 221, 0.08);
}
.dc-btn__text { transition: opacity var(--duration-fast); }

/* ═══════════════════════════════════════════════════════════════
   Link Variants
   ═══════════════════════════════════════════════════════════════ */
.dc-link {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-gold);
    transition: gap var(--duration-fast), color var(--duration-fast);
}
.dc-link:hover { gap: 0.625rem; color: var(--color-gold-dark); }
.dc-link--back { flex-direction: row-reverse; }
.dc-link--back:hover { gap: 0.625rem; }

/* ═══════════════════════════════════════════════════════════════
   Badge Extras
   ═══════════════════════════════════════════════════════════════ */
.dc-badge--sm { font-size: 0.6875rem; padding: 0.125rem 0.5rem; }

/* ═══════════════════════════════════════════════════════════════
   Page Hero (Interior Pages)
   ═══════════════════════════════════════════════════════════════ */
.dc-page-hero {
    position: relative;
    padding: clamp(4rem, 10vw, 7rem) 0 clamp(3rem, 6vw, 5rem);
    text-align: center;
    overflow: hidden;
}
.dc-page-hero--dark {
    background: linear-gradient(135deg, var(--color-obsidian) 0%, var(--color-obsidian-soft) 50%, var(--color-midnight) 100%);
}
.dc-page-hero--team {
    background: linear-gradient(180deg, #f7fbff 0%, #eef6ff 100%);
}
.dc-page-hero--team .dc-page-hero__noise {
    opacity: 0.02;
}
.dc-page-hero--team .dc-page-hero__eyebrow {
    color: var(--color-midnight);
}
.dc-page-hero--team .dc-page-hero__title {
    color: var(--color-charcoal);
}
.dc-page-hero--team .dc-page-hero__subtitle {
    color: var(--color-smoke);
}
.dc-page-hero--404 {
    min-height: calc(70vh - var(--header-height));
    display: flex;
    align-items: center;
    justify-content: center;
}
.dc-page-hero__noise {
    position: absolute;
    inset: 0;
    opacity: 0.03;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' 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: 0;
}
.dc-page-hero__eyebrow {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 400;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 1rem;
    position: relative;
    z-index: 1;
}
.dc-page-hero__title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 5vw, 3rem);
    font-weight: 500;
    color: var(--color-ivory);
    letter-spacing: -0.02em;
    margin-bottom: 1rem;
    position: relative;
    z-index: 1;
}
.dc-page-hero__subtitle {
    font-size: 1rem;
    font-weight: 300;
    color: var(--color-smoke);
    max-width: 520px;
    margin: 0 auto;
    line-height: 1.7;
    position: relative;
    z-index: 1;
}
.dc-page-hero__divider {
    width: 48px;
    height: 2px;
    background: var(--color-gold);
    margin: 1.5rem auto 0;
    border-radius: 1px;
    position: relative;
    z-index: 1;
}
.dc-404__actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    margin-top: 2rem;
    position: relative;
    z-index: 1;
}

/* ═══════════════════════════════════════════════════════════════
   Breadcrumb
   ═══════════════════════════════════════════════════════════════ */
.dc-breadcrumb {
    background: var(--color-ivory-warm);
    border-bottom: 1px solid var(--color-ivory-deep);
    padding: 0.75rem 0;
}
.dc-breadcrumb__list {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 0.8125rem;
    color: var(--color-smoke);
}
.dc-breadcrumb__list a {
    color: var(--color-gold);
    text-decoration: none;
}
.dc-breadcrumb__list a:hover { color: var(--color-gold-dark); }

/* ═══════════════════════════════════════════════════════════════
   Team Page
   ═══════════════════════════════════════════════════════════════ */
.dc-team-page__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2.5rem;
    max-width: 900px;
    margin: 0 auto;
}

.dc-team-card {
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-2xl);
    padding: 2rem;
    text-align: center;
    transition: all var(--duration-med) var(--ease-luxury);
}
.dc-team-card:hover {
    border-color: rgba(55, 138, 221, 0.3);
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-4px);
}

.dc-team-card__avatar-wrap {
    position: relative;
    width: 8rem;
    height: 8rem;
    padding: 0;
    margin: 0 auto 1.5rem;
    overflow: hidden;
    border-radius: 50%;
    border: 2px solid rgba(55, 138, 221, 0.28);
    background: linear-gradient(180deg, #f8fbff 0%, #f3f8fe 100%);
    box-shadow: 0 8px 24px rgba(4, 44, 83, 0.12);
}
.dc-team-card__avatar-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
    border: 0;
    position: relative;
    z-index: 1;
}
.dc-team-card__avatar-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    border: 0;
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    color: var(--color-gold);
    position: relative;
    z-index: 1;
}
.dc-team-card__avatar-glow {
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    opacity: 0;
    transition: opacity var(--duration-med);
}
.dc-team-card:hover .dc-team-card__avatar-glow {
    opacity: 0.5;
}

.dc-team-card__name {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 0.5rem;
}
.dc-team-card__role-badge {
    display: inline-flex;
    padding: 0.2rem 0.75rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: var(--radius-full);
    margin-bottom: 0.5rem;
}
.dc-team-card__title {
    font-size: 0.875rem;
    font-weight: 400;
    color: var(--color-smoke);
    margin-bottom: 0.75rem;
}
.dc-team-card__specialties {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    justify-content: center;
    margin-bottom: 1rem;
}
.dc-team-card__specialty {
    display: inline-block;
    padding: 0.2rem 0.625rem;
    font-size: 0.6875rem;
    font-weight: 400;
    color: var(--color-ash);
    background: var(--color-ivory);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-full);
}
.dc-team-card__bio {
    font-size: 0.875rem;
    font-weight: 300;
    line-height: 1.7;
    color: var(--color-smoke);
    margin-bottom: 1rem;
}
.dc-team-card__experience {
    font-size: 0.8125rem;
    font-weight: 400;
    color: var(--color-gold-dark);
}

/* Profile button on team card */
.dc-team-card__profile-btn {
    margin-top: 1.25rem;
    font-size: 0.8125rem;
    padding: 0.5rem 1.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}
.dc-team-card__profile-btn svg { transition: transform var(--duration-fast); }
.dc-team-card:hover .dc-team-card__profile-btn svg { transform: translateX(3px); }

@media (max-width: 640px) {
    .dc-team-page__grid { grid-template-columns: 1fr; }
    .dc-team-card__avatar-wrap { width: 6rem; height: 6rem; }
    .dc-team-card__avatar-fallback { font-size: 1.5rem; }
}

/* ═══════════════════════════════════════════════════════════════
   Member Profile Page
   ═══════════════════════════════════════════════════════════════ */
.dc-member-hero { padding: 4rem 0 3rem; }

.dc-member-hero__back {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: rgba(248,245,240,.55);
    text-decoration: none;
    margin-bottom: 2.5rem;
    transition: color var(--duration-fast);
}
.dc-member-hero__back:hover { color: var(--color-gold-light); }

.dc-page-hero--team .dc-member-hero__back {
    color: var(--color-midnight);
}
.dc-page-hero--team .dc-member-hero__back:hover {
    color: var(--color-charcoal);
}

.dc-member-hero__layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 3rem;
    align-items: center;
}

.dc-member-hero__avatar-wrap { position: relative; }
.dc-member-hero__avatar-img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: var(--radius-2xl);
    border: 3px solid rgba(201,169,110,.25);
    box-shadow: 0 0 0 8px rgba(201,169,110,.06);
}
.dc-member-hero__avatar-fallback {
    width: 100%;
    aspect-ratio: 1;
    border-radius: var(--radius-2xl);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 3.5rem;
    font-weight: 500;
    color: var(--color-ivory);
}

.dc-member-hero__role-badge {
    display: inline-block;
    padding: 0.25rem 0.875rem;
    background: rgba(201,169,110,.12);
    color: var(--color-gold-light);
    border: 1px solid rgba(201,169,110,.25);
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 1rem;
}
.dc-page-hero--team .dc-member-hero__role-badge {
    background: rgba(55, 138, 221, 0.1);
    color: var(--color-midnight);
    border-color: rgba(55, 138, 221, 0.25);
}
.dc-member-hero__name {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    font-weight: 500;
    color: var(--color-ivory);
    margin-bottom: 0.5rem;
    letter-spacing: -0.01em;
}
.dc-page-hero--team .dc-member-hero__name {
    color: var(--color-charcoal);
}
.dc-member-hero__title {
    font-size: 1rem;
    font-weight: 300;
    color: rgba(248,245,240,.6);
    margin-bottom: 1rem;
}
.dc-page-hero--team .dc-member-hero__title {
    color: var(--color-smoke);
}
.dc-member-hero__experience {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--color-gold-light);
    margin-bottom: 1.5rem;
}
.dc-page-hero--team .dc-member-hero__experience {
    color: var(--color-midnight);
}

.dc-member-hero__social {
    display: flex;
    gap: 0.75rem;
}
.dc-member-hero__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--radius-full);
    border: 1px solid rgba(255,255,255,.12);
    color: rgba(248,245,240,.55);
    transition: all var(--duration-fast);
    text-decoration: none;
}
.dc-member-hero__social-link:hover {
    border-color: var(--color-gold);
    color: var(--color-gold);
    background: rgba(201,169,110,.08);
}

/* Member body */
.dc-member-body {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 3rem;
    align-items: start;
}
.dc-member-body__bio {
    font-size: 1rem;
    font-weight: 300;
    color: var(--color-smoke);
    line-height: 1.8;
    margin-bottom: 1.25rem;
}
.dc-member-body__bio--extended { color: rgba(101,100,96,.8); }

.dc-member-quote {
    border-left: 3px solid var(--color-gold);
    padding: 0.75rem 0 0.75rem 1.5rem;
    margin: 0 0 1.75rem;
    font-family: var(--font-display);
    font-size: 1.0625rem;
    font-style: italic;
    color: var(--color-charcoal);
    line-height: 1.6;
}

.dc-member-education { margin-top: 2rem; }
.dc-member-education__title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-charcoal);
    margin-bottom: 1rem;
}
.dc-member-education__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}
.dc-member-education__item {
    padding: 0.625rem 1rem;
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-lg);
    font-size: 0.875rem;
    color: var(--color-smoke);
}

/* Member aside cards */
.dc-member-aside-card {
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-2xl);
    padding: 1.5rem;
    margin-bottom: 1.25rem;
}
.dc-member-aside-card__title {
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-charcoal);
    margin-bottom: 1rem;
}
.dc-member-aside-card__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.dc-member-aside-card__item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    font-size: 0.875rem;
    color: var(--color-smoke);
}
.dc-member-aside-card__dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}
.dc-member-aside-card--contact .dc-member-aside-card__contact-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--color-smoke);
    text-decoration: none;
    padding: 0.375rem 0;
    transition: color var(--duration-fast);
}
.dc-member-aside-card--contact .dc-member-aside-card__contact-row:hover { color: var(--color-gold-dark); }

.dc-mt-sm { margin-top: 0.75rem; }

@media (max-width: 900px) {
    .dc-member-hero__layout { grid-template-columns: 180px 1fr; gap: 2rem; }
    .dc-member-body { grid-template-columns: 1fr; }
    .dc-member-body__aside { order: -1; }
}
@media (max-width: 600px) {
    .dc-member-hero__layout { grid-template-columns: 1fr; justify-items: center; text-align: center; }
    .dc-member-hero__avatar-wrap { width: 160px; }
    .dc-member-hero__social { justify-content: center; }
    .dc-member-hero__experience { justify-content: center; }
}


/* ═══════════════════════════════════════════════════════════════
   Values Section
   ═══════════════════════════════════════════════════════════════ */
.dc-values__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    max-width: 900px;
    margin: 0 auto;
}
.dc-value-card {
    text-align: center;
    padding: 1.5rem;
    background: var(--color-ivory);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-2xl);
    transition: all var(--duration-med) var(--ease-luxury);
}
.dc-value-card:hover {
    border-color: rgba(55, 138, 221, 0.3);
    box-shadow: var(--shadow-card);
    transform: translateY(-2px);
}
.dc-value-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    margin: 0 auto 1rem;
    background: rgba(55, 138, 221, 0.1);
    border-radius: var(--radius-xl);
    color: var(--color-gold);
}
.dc-value-card__dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-gold);
}
.dc-value-card__title {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 0.5rem;
}
.dc-value-card__desc {
    font-size: 0.875rem;
    font-weight: 300;
    color: var(--color-smoke);
    line-height: 1.6;
}

@media (max-width: 640px) {
    .dc-values__grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   Info Card (Contact / Booking sidebar)
   ═══════════════════════════════════════════════════════════════ */
.dc-info-card {
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-2xl);
    padding: 1.5rem;
    transition: all var(--duration-med) var(--ease-luxury);
}
.dc-info-card:hover {
    box-shadow: var(--shadow-card);
}
.dc-info-card--highlight {
    background: linear-gradient(135deg, rgba(55, 138, 221, 0.08), rgba(55, 138, 221, 0.02));
    border-color: var(--color-gold);
}
.dc-info-card__icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    background: rgba(55, 138, 221, 0.1);
    border-radius: var(--radius-xl);
    margin-bottom: 0.75rem;
    color: var(--color-gold);
}
.dc-info-card__icon-wrap--gold {
    background: var(--color-gold);
    color: var(--color-obsidian);
}
.dc-info-card__title {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 0.25rem;
}
.dc-info-card__text {
    font-size: 0.875rem;
    font-weight: 300;
    color: var(--color-smoke);
    line-height: 1.6;
    margin: 0;
}
.dc-info-card__link {
    display: block;
    font-size: 0.875rem;
    color: var(--color-ash);
    text-decoration: none;
    margin-top: 0.25rem;
    transition: color var(--duration-fast);
}
.dc-info-card__link:hover { color: var(--color-gold); }
.dc-info-card__link--gold {
    color: var(--color-gold);
    font-weight: 500;
}
.dc-info-card__link--gold:hover { color: var(--color-gold-dark); }
.dc-info-card__schedule {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.8125rem;
    color: var(--color-smoke);
    margin-top: 0.5rem;
}

/* ═══════════════════════════════════════════════════════════════
   Contact Page
   ═══════════════════════════════════════════════════════════════ */
.dc-contact-page__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: start;
}
.dc-contact-page__form {
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-2xl);
    padding: 2rem;
}
.dc-contact-page__form-title {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 1.5rem;
}
.dc-contact-page__sidebar {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

@media (max-width: 768px) {
    .dc-contact-page__grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   Contact Map
   ═══════════════════════════════════════════════════════════════ */
.dc-contact-map {
    border-radius: var(--radius-2xl);
    overflow: hidden;
    box-shadow: var(--shadow-card);
}
.dc-contact-map__iframe {
    display: block;
    width: 100%;
    height: 360px;
    border: 0;
    vertical-align: bottom;
}

@media (max-width: 640px) {
    .dc-contact-map__iframe {
        height: 290px;
    }

    body.page-template-page-contacto .dc-footer,
    body.page-template-page-contacto-php .dc-footer {
        padding-top: clamp(1.5rem, 6vw, 2.1rem);
    }
}

/* ═══════════════════════════════════════════════════════════════
   About Page
   ═══════════════════════════════════════════════════════════════ */
.dc-about-page__intro-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}
.dc-about-page__intro-grid--single {
    grid-template-columns: minmax(0, 1fr);
}
.dc-about-page__intro-copy {
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-2xl);
    padding: 1.5rem;
}
.dc-about-page__kpis {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}
.dc-about-page__kpi-card {
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-xl);
    padding: 1rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.dc-about-page__kpi-value {
    font-family: var(--font-display);
    font-size: 1.5rem;
    color: var(--color-gold-dark);
}
.dc-about-page__kpi-label {
    font-size: 0.8125rem;
    color: var(--color-ash);
}
.dc-about-page__history-heading {
    margin-bottom: 0.8rem;
}
.dc-about-page__history {
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-2xl);
    padding: 1.5rem;
}
.dc-about-page__history--timeline {
    position: static;
}
.dc-about-page__history-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.dc-about-page__milestone {
    background: var(--color-ivory);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-xl);
    padding: 1rem;
    min-height: 10rem;
}
.dc-about-page__year {
    display: inline-block;
    font-family: var(--font-display);
    font-size: 1.125rem;
    color: var(--color-gold-dark);
    margin-bottom: 0.5rem;
}
.dc-about-page__gallery {
    position: relative;
    border-radius: var(--radius-xl);
    border: 1px solid rgba(181, 212, 244, 0.85);
    background: #dbeaf6;
    box-shadow: 0 10px 28px rgba(4, 44, 83, 0.12);
    overflow: hidden;
}
.dc-about-page__showcase {
    max-width: 50rem;
    margin: 0 auto;
}
.dc-about-page__carousel-viewport {
    overflow: hidden;
    position: relative;
}
.dc-about-page__carousel-track {
    display: flex;
    transition: transform 560ms var(--ease-luxury);
    will-change: transform;
}
.dc-about-page__gallery-item {
    width: 100%;
    flex: 0 0 100%;
    position: relative;
    aspect-ratio: 4 / 3;
    min-height: clamp(14rem, 32vw, 20rem);
    background: linear-gradient(180deg, #d9e7f3 0%, #cddfed 100%);
}
.dc-about-page__gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transform: scale(1.01);
    transition: transform var(--duration-med) var(--ease-luxury);
}
.dc-about-page__gallery-item.is-active img {
    transform: scale(1.03);
}
.dc-about-page__slide-caption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 1rem 1.1rem;
    background: linear-gradient(180deg, rgba(4, 44, 83, 0.05) 0%, rgba(4, 44, 83, 0.78) 88%);
    color: var(--color-ivory);
}
.dc-about-page__slide-caption strong {
    font-size: 1rem;
    letter-spacing: 0;
    font-family: var(--font-display);
    color: #ffffff;
}
.dc-about-page__slide-caption span {
    font-size: 0.875rem;
    color: rgba(247, 251, 255, 0.9);
    opacity: 1;
    max-width: 48ch;
}

.dc-why-us .dc-about-page__gallery-item {
    min-height: clamp(13rem, 30vw, 19rem);
}

.dc-why-us .dc-about-page__slide-caption span {
    font-size: 0.82rem;
    line-height: 1.45;
}
.dc-about-page__carousel-controls {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 0.75rem;
    pointer-events: none;
}
.dc-about-page__carousel-btn {
    pointer-events: auto;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.62);
    background: rgba(4, 44, 83, 0.46);
    color: var(--color-ivory);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform var(--duration-fast), background var(--duration-fast), border-color var(--duration-fast);
}
.dc-about-page__carousel-btn:hover {
    transform: scale(1.04);
    border-color: #ffffff;
    background: rgba(4, 44, 83, 0.78);
}
.dc-about-page__carousel-dots {
    position: static;
    display: flex;
    justify-content: center;
    align-items: center;
    width: fit-content;
    max-width: calc(100% - 2rem);
    gap: 0.5rem;
    margin: 1rem auto 1rem;
    padding: 0.45rem 0.9rem;
    border-radius: 999px;
    background: rgba(234, 244, 251, 0.85);
    box-shadow: 0 4px 12px rgba(4, 44, 83, 0.12);
}

.dc-why-us .dc-about-page__carousel-dots {
    margin-left: auto;
    margin-right: auto;
}
.dc-about-page__carousel-dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    border: 0;
    background: rgba(24, 95, 165, 0.34);
    cursor: pointer;
    transition: transform var(--duration-fast), background var(--duration-fast);
}
.dc-about-page__carousel-dot.is-active {
    background: var(--color-midnight);
    transform: scale(1.2);
}
.dc-about-page__thumbs {
    display: flex;
    justify-content: center;
    gap: clamp(0.5rem, 2vw, 1.1rem);
    flex-wrap: wrap;
    margin: 1rem auto 0;
    padding: 0.85rem;
    max-width: min(100%, 46rem);
    border-radius: var(--radius-xl);
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 8px 20px rgba(4, 44, 83, 0.1);
}
.dc-about-page__thumb {
    display: block;
    width: clamp(4rem, 11vw, 5.75rem);
    height: clamp(3rem, 8vw, 4.125rem);
    padding: 0;
    border: 2px solid var(--color-ivory-deep);
    border-radius: var(--radius-xl);
    overflow: hidden;
    background: transparent;
    opacity: 0.72;
    cursor: pointer;
    transition: opacity var(--duration-fast), transform var(--duration-fast), border-color var(--duration-fast), box-shadow var(--duration-fast);
}
.dc-about-page__thumb:hover {
    opacity: 1;
    transform: translateY(-2px) scale(1.03);
    box-shadow: var(--shadow-card-hover);
}
.dc-about-page__thumb.is-active {
    opacity: 1;
    border-color: var(--color-gold);
    box-shadow: var(--shadow-card);
}
.dc-about-page__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.dc-about-page__carousel-hint {
    margin-top: 0.75rem;
    text-align: center;
    font-size: 0.8125rem;
    color: var(--color-ash);
}
.dc-about-page__copy {
    max-width: 70ch;
    margin-left: auto;
    margin-right: auto;
}
.dc-about-page__pillars {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.dc-about-page__pillar {
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-xl);
    padding: 1.1rem 1rem;
}
.dc-about-page__pillar h3 {
    margin: 0 0 0.45rem;
    font-size: 1rem;
    color: var(--color-charcoal);
}
.dc-about-page__pillar p {
    margin: 0;
    font-size: 0.875rem;
    color: var(--color-ash);
}

@media (max-width: 1024px) {
    .dc-why-us__grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    .dc-why-us__content {
        order: 2;
    }
    .dc-why-us__image-wrap {
        order: 1;
    }
    .dc-why-us__items {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem;
        margin-top: 1.25rem;
    }
    .dc-about-page__intro-grid {
        grid-template-columns: 1fr;
    }
    .dc-about-page__history-grid { grid-template-columns: 1fr; }
    .dc-about-page__pillars { grid-template-columns: 1fr; }
    .dc-about-page__gallery img {
        object-fit: contain;
        transform: none;
    }
    .dc-about-page__gallery-item.is-active img {
        transform: none;
    }

    .dc-about-page__showcase {
        max-width: 42rem;
    }
}
@media (max-width: 900px) {
    .dc-about-page__slide-caption {
        position: static;
        padding: 0.75rem 0.8rem;
        background: #f1f8fd;
        color: var(--color-charcoal);
        border-top: 1px solid rgba(181, 212, 244, 0.85);
    }
    .dc-about-page__slide-caption strong {
        color: var(--color-charcoal);
    }
    .dc-about-page__slide-caption span {
        color: var(--color-ash);
    }
}
@media (max-width: 640px) {
    .dc-why-us__items {
        grid-template-columns: 1fr;
    }
    .dc-about-page__slide-caption {
        position: static;
        padding: 0.75rem 0.8rem;
        background: #f1f8fd;
        color: var(--color-charcoal);
        border-top: 1px solid rgba(181, 212, 244, 0.85);
    }
    .dc-about-page__slide-caption strong {
        color: var(--color-charcoal);
    }
    .dc-about-page__slide-caption span {
        color: var(--color-ash);
    }
    .dc-about-page__carousel-btn {
        width: 2.5rem;
        height: 2.5rem;
    }
    .dc-about-page__gallery-item {
        aspect-ratio: 4 / 3;
        min-height: 12rem;
    }
    .dc-about-page__carousel-controls { top: 50%; }
}

/* ═══════════════════════════════════════════════════════════════
   Booking Page
   ═══════════════════════════════════════════════════════════════ */
.dc-booking-page__grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 3rem;
    align-items: start;
}
.dc-booking-page__form {
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-2xl);
    padding: 2rem;
}
.dc-booking-page__sidebar {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

@media (max-width: 768px) {
    .dc-booking-page__grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   Wizard (Multi-step Booking Form)
   ═══════════════════════════════════════════════════════════════ */
.dc-wizard__steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-bottom: 2rem;
}
.dc-wizard__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    cursor: default;
    position: relative;
    flex: 1;
    max-width: 120px;
}
.dc-wizard__step::after {
    content: '';
    position: absolute;
    top: 16px;
    left: calc(50% + 16px);
    width: calc(100% - 32px);
    height: 2px;
    background: var(--color-ivory-deep);
    z-index: 0;
}
.dc-wizard__step:last-child::after { display: none; }
.dc-wizard__step.is-active::after,
.dc-wizard__step.is-completed::after {
    background: var(--color-gold);
}
.dc-wizard__step-number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    font-size: 0.8125rem;
    font-weight: 600;
    background: var(--color-ivory);
    border: 2px solid var(--color-ivory-deep);
    color: var(--color-smoke);
    position: relative;
    z-index: 1;
    transition: all var(--duration-fast) var(--ease-luxury);
}
.dc-wizard__step.is-active .dc-wizard__step-number {
    background: var(--color-gold);
    border-color: var(--color-gold);
    color: var(--color-obsidian);
}
.dc-wizard__step.is-completed .dc-wizard__step-number {
    background: var(--color-gold-pale);
    border-color: var(--color-gold);
    color: var(--color-gold-dark);
}
.dc-wizard__step-label {
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--color-smoke);
    text-align: center;
    white-space: nowrap;
}
.dc-wizard__step.is-active .dc-wizard__step-label {
    color: var(--color-gold-dark);
}

/* Panels */
.dc-wizard__panel {
    display: none;
}
.dc-wizard__panel.is-active {
    display: block;
    animation: fadeUp 0.3s var(--ease-luxury) both;
}
.dc-wizard__panel-title {
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 0.5rem;
}

/* Wizard navigation */
.dc-wizard__nav {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-ivory-deep);
}
.dc-wizard__nav-spacer { flex: 1; }

@media (max-width: 480px) {
    .dc-wizard__step-label { display: none; }
    .dc-wizard__steps { gap: 0.25rem; }
}

/* ═══════════════════════════════════════════════════════════════
   Form Success State
   ═══════════════════════════════════════════════════════════════ */
.dc-form-success {
    text-align: center;
    padding: 3rem 1.5rem;
}
.dc-form-success__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    margin: 0 auto 1.5rem;
    background: rgba(122, 158, 135, 0.1);
    border-radius: 50%;
    color: var(--color-sage);
}
.dc-form-success__title {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 0.5rem;
}
.dc-form-success__text {
    font-size: 0.9375rem;
    font-weight: 300;
    color: var(--color-smoke);
    margin-bottom: 1.5rem;
}

/* ═══════════════════════════════════════════════════════════════
   Summary (Booking Confirmation Step)
   ═══════════════════════════════════════════════════════════════ */
.dc-summary {
    background: var(--color-ivory);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
}
.dc-summary__row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.625rem 0;
    border-bottom: 1px solid rgba(212, 207, 198, 0.4);
}
.dc-summary__row:last-child { border-bottom: none; }
.dc-summary__label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-smoke);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.dc-summary__value {
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--color-charcoal);
    text-align: right;
}

/* ═══════════════════════════════════════════════════════════════
   Form Extras (Checkbox, Alert)
   ═══════════════════════════════════════════════════════════════ */
.dc-form__group--checkbox {
    flex-direction: row;
    align-items: flex-start;
    gap: 0.625rem;
}
.dc-hp-field {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.dc-checkbox {
    width: 18px;
    height: 18px;
    accent-color: var(--color-gold);
    flex-shrink: 0;
    margin-top: 2px;
    cursor: pointer;
}
.dc-form__checkbox-label {
    font-size: 0.8125rem;
    font-weight: 300;
    color: var(--color-smoke);
    cursor: pointer;
    line-height: 1.5;
}
.dc-form__checkbox-label a {
    color: var(--color-gold);
    text-decoration: underline;
}
.dc-alert {
    padding: 0.75rem 1rem;
    border-radius: var(--radius-md);
    font-size: 0.875rem;
    line-height: 1.5;
}
.dc-alert--error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.dc-alert--success { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }

/* ═══════════════════════════════════════════════════════════════
   Service Detail Page
   ═══════════════════════════════════════════════════════════════ */
.dc-service-hero {
    position: relative;
    height: 360px;
    overflow: hidden;
}
.dc-service-hero__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
}
.dc-service-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(4, 44, 83, 0.6), transparent);
}

.dc-service-detail__title {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 0.5rem;
}
.dc-service-detail__tagline {
    font-size: 1.125rem;
    font-weight: 300;
    color: var(--color-gold);
    margin-bottom: 1rem;
}
.dc-service-detail__desc {
    font-size: 1rem;
    font-weight: 300;
    color: var(--color-smoke);
    line-height: 1.8;
    margin-bottom: 1.5rem;
    max-width: 700px;
}
.dc-service-detail__divider {
    width: 48px;
    height: 2px;
    background: var(--color-gold);
    margin: 2rem 0;
    border-radius: 1px;
}

/* Tech box */
.dc-service-detail__tech-box {
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-2xl);
    padding: 1.5rem;
    margin-bottom: 2rem;
}
.dc-service-detail__tech-title {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 0.5rem;
}
.dc-service-detail__tech-text {
    font-size: 0.875rem;
    font-weight: 300;
    color: var(--color-smoke);
    line-height: 1.6;
}

/* Benefits */
.dc-service-detail__benefits { margin-bottom: 2rem; }
.dc-service-detail__benefits-title {
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 1rem;
}
.dc-service-detail__benefits-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.dc-service-detail__benefits-list li {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.9375rem;
    font-weight: 300;
    color: var(--color-ash);
}
.dc-service-detail__benefits-list li::before {
    content: '';
    width: 8px;
    height: 8px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--color-gold);
}

.dc-service-detail__specialist {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    padding: 1.5rem;
    margin-bottom: 2rem;
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-2xl);
}
.dc-service-detail__specialist-photo-link {
    display: block;
    line-height: 0;
}
.dc-service-detail__specialist-photo {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: var(--shadow-card);
}
.dc-service-detail__specialist-label {
    margin: 0 0 0.375rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-gold);
}
.dc-service-detail__specialist-name {
    margin: 0;
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--color-charcoal);
}
.dc-service-detail__specialist-role {
    margin: 0.375rem 0 0.75rem;
    font-size: 0.9375rem;
    font-weight: 300;
    line-height: 1.6;
    color: var(--color-smoke);
}

/* CTA box */
.dc-service-detail__cta-box {
    background: linear-gradient(135deg, rgba(55, 138, 221, 0.08) 0%, rgba(55, 138, 221, 0.02) 100%);
    border: 1px solid rgba(55, 138, 221, 0.2);
    border-radius: var(--radius-2xl);
    padding: 2rem;
    text-align: center;
    margin-bottom: 3rem;
}
.dc-service-detail__cta-actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    margin-top: 1.25rem;
    flex-wrap: wrap;
}

/* Related services */
.dc-service-detail__related { margin-top: 3rem; }
.dc-service-detail__related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1.5rem;
    margin-top: 1.5rem;
}
.dc-service-card--compact .dc-service-card__body { padding: 1rem; }
.dc-service-card--compact .dc-service-card__title { font-size: 1rem; }
.dc-service-card__tech {
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--color-gold);
    margin-top: 0.375rem;
}
.dc-service-detail__back {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-gold);
    margin-top: 2rem;
    transition: gap var(--duration-fast);
    text-decoration: none;
}
.dc-service-detail__back:hover { gap: 0.625rem; color: var(--color-gold-dark); }

@media (max-width: 768px) {
    .dc-service-hero { height: 240px; }
    .dc-service-detail__specialist {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .dc-service-detail__specialist-photo-link,
    .dc-service-detail__specialist-photo {
        margin-inline: auto;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Services Page (Listing)
   ═══════════════════════════════════════════════════════════════ */
/* Reuses .dc-services__grid from homepage */

/* ═══════════════════════════════════════════════════════════════
   Legal Page
   ═══════════════════════════════════════════════════════════════ */
.dc-prose {
    max-width: var(--container-narrow);
    margin: 0 auto;
    font-size: 0.9375rem;
    font-weight: 300;
    line-height: 1.8;
    color: var(--color-ash);
}
.dc-prose h2 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin: 2.5rem 0 1rem;
}
.dc-prose h3 {
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin: 2rem 0 0.75rem;
}
.dc-prose p { margin-bottom: 1rem; }
.dc-prose ul,
.dc-prose ol {
    margin-bottom: 1rem;
    padding-left: 1.5rem;
}
.dc-prose li { margin-bottom: 0.375rem; }
.dc-prose a {
    color: var(--color-gold);
    text-decoration: underline;
}
.dc-prose strong { font-weight: 500; color: var(--color-charcoal); }

.dc-legal__back {
    text-align: center;
    margin-top: 3rem;
}

/* ═══════════════════════════════════════════════════════════════
   Blog Archive Extras
   ═══════════════════════════════════════════════════════════════ */
.dc-blog__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    align-items: center;
    margin-bottom: 2rem;
}
.dc-blog__search {
    display: flex;
    gap: 0.5rem;
    flex: 1;
    min-width: 220px;
}
.dc-blog__search .dc-input {
    flex: 1;
}
.dc-blog__categories {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}
.dc-blog__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 2rem;
    flex-wrap: wrap;
}
.dc-blog__header-left { flex: 1; }
.dc-blog__count {
    font-size: 0.875rem;
    color: var(--color-smoke);
    margin-top: 0.25rem;
}
.dc-blog-card__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.75rem;
    color: var(--color-smoke);
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}
.dc-blog-card__meta-sep { opacity: 0.35; }
.dc-blog-card__categories {
    display: flex;
    gap: 0.25rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}
.dc-blog-card__image-link {
    display: block;
    overflow: hidden;
}
.dc-blog-card__image-link img {
    transition: transform var(--duration-slow) var(--ease-luxury);
}
.dc-blog-card__image-link:hover img {
    transform: scale(1.05);
        transform: scale(1.015);
}
.dc-blog-card__footer {
    margin-top: auto;
    padding-top: 0.75rem;
}
.dc-pagination__info {
    font-size: 0.8125rem;
    color: var(--color-smoke);
}

/* Blog submit panel (for logged-in clients) */
.dc-blog__submit-banner {
    background: linear-gradient(135deg, rgba(55, 138, 221, 0.08) 0%, rgba(55, 138, 221, 0.03) 100%);
    border: 1px solid rgba(55, 138, 221, 0.2);
    border-radius: var(--radius-2xl);
    padding: 1.5rem 2rem;
    margin-bottom: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.dc-blog__submit-banner-text { flex: 1; }
.dc-blog__submit-banner-title {
    font-family: var(--font-display);
    font-size: 1.0625rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 0.25rem;
}
.dc-blog__submit-banner-sub {
    font-size: 0.875rem;
    font-weight: 300;
    color: var(--color-smoke);
}

/* Submit form overlay/panel */
.dc-blog-submit-form {
    display: none;
    background: var(--color-ivory-warm);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-2xl);
    padding: 2rem;
    margin-bottom: 2.5rem;
}
.dc-blog-submit-form.is-open { display: block; animation: fadeUp 0.3s var(--ease-luxury) both; }
.dc-blog-submit-form__title {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 1.5rem;
}
.dc-blog-submit-form__close {
    float: right;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--color-smoke);
    padding: 0.25rem;
    font-size: 1.125rem;
    line-height: 1;
    transition: color var(--duration-fast);
    margin-top: -0.25rem;
}
.dc-blog-submit-form__close:hover { color: var(--color-charcoal); }
.dc-blog-submit-form__pending-note {
    background: rgba(55, 138, 221, 0.08);
    border: 1px solid rgba(55, 138, 221, 0.2);
    border-radius: var(--radius-md);
    padding: 0.75rem 1rem;
    font-size: 0.8125rem;
    color: var(--color-gold-dark);
    margin-bottom: 1.25rem;
}

/* Empty state */
.dc-blog__empty {
    text-align: center;
    padding: 4rem 1rem;
}
.dc-blog__empty-icon {
    font-size: 3rem;
    margin-bottom: 1rem;
    opacity: 0.3;
}
.dc-blog__empty-title {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--color-charcoal);
    margin-bottom: 0.5rem;
}
.dc-blog__empty-sub {
    font-size: 0.9375rem;
    font-weight: 300;
    color: var(--color-smoke);
}

/* ═══════════════════════════════════════════════════════════════
   Blog Single Post
   ═══════════════════════════════════════════════════════════════ */
.dc-blog-post {
    margin: 0 auto;
}
.dc-blog-post__section {
    padding-top: clamp(2.5rem, 4vw, 4rem);
}
.dc-blog-post__cover-shell {
    position: relative;
    margin-top: clamp(-4rem, -5vw, -5.5rem);
    z-index: 2;
}
.dc-blog-post__cover {
    border-radius: var(--radius-2xl);
    overflow: hidden;
    box-shadow: var(--shadow-card);
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: var(--color-charcoal);
}
.dc-blog-post__cover-image {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
}
.dc-blog-post__dek {
    max-width: 46rem;
    margin: 1rem auto 0;
    font-size: 1.0625rem;
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.78);
}
.dc-blog-post__meta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.82);
    margin-bottom: 0.5rem;
    flex-wrap: wrap;
}
.dc-blog-post__meta-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.85rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(12px);
}
.dc-blog-post__categories {
    display: flex;
    gap: 0.375rem;
    flex-wrap: wrap;
    margin-bottom: 2rem;
}
.dc-blog-post__footer {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--color-ivory-deep);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}
.dc-blog-post__tags {
    display: flex;
    gap: 0.375rem;
    flex-wrap: wrap;
}
.dc-blog-post__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.85fr);
    gap: clamp(1.5rem, 3vw, 3rem);
    align-items: start;
}
.dc-blog-post__main {
    display: grid;
    gap: 1.5rem;
}
.dc-blog-post__content-card,
.dc-blog-post__sidebar-card,
.dc-blog-post__resources,
.dc-blog-post__author-card,
.dc-blog-post__after {
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(4, 44, 83, 0.08);
    border-radius: var(--radius-2xl);
    box-shadow: 0 24px 60px rgba(4, 44, 83, 0.08);
}
.dc-blog-post__content-card {
    padding: clamp(1.5rem, 3vw, 3rem);
}
.dc-blog-post__content {
    max-width: none;
    font-size: 1.0625rem;
    line-height: 1.9;
    color: #435160;
}
.dc-blog-post__content > *:first-child {
    margin-top: 0;
}
.dc-blog-post__content > p:first-of-type {
    font-size: 1.125rem;
    color: var(--color-charcoal);
}
.dc-blog-post__content > p:first-of-type::first-letter {
    float: left;
    margin: 0.15rem 0.6rem 0 0;
    font-family: var(--font-display);
    font-size: 3.2rem;
    line-height: 0.8;
    color: var(--color-gold-dark);
}
.dc-blog-post__content h2 {
    position: relative;
    padding-top: 1rem;
    margin-top: 3rem;
}
.dc-blog-post__content h2::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4rem;
    height: 3px;
    background: linear-gradient(90deg, var(--color-gold) 0%, #4f97db 100%);
    border-radius: 999px;
}
.dc-blog-post__content blockquote {
    margin: 2rem 0;
    padding: 1.25rem 1.5rem;
    border-left: 4px solid #4f97db;
    border-radius: 0 var(--radius-xl) var(--radius-xl) 0;
    background: linear-gradient(135deg, rgba(79, 151, 219, 0.08) 0%, rgba(245, 247, 250, 0.9) 100%);
    color: var(--color-charcoal);
}
.dc-blog-post__content ul li::marker,
.dc-blog-post__content ol li::marker {
    color: #4f97db;
}
.dc-blog-post__sidebar {
    position: sticky;
    top: 2rem;
    display: grid;
    gap: 1rem;
}
.dc-blog-post__sidebar-card {
    padding: 1.35rem 1.4rem;
}
.dc-blog-post__sidebar-card--cta {
    background: linear-gradient(155deg, #042c53 0%, #0f4f87 100%);
    color: #fff;
}
.dc-blog-post__sidebar-card--cta h2 {
    margin: 0.35rem 0 0.75rem;
    color: #fff;
    font-size: 1.35rem;
}
.dc-blog-post__sidebar-card--cta p {
    color: rgba(255, 255, 255, 0.78);
}
.dc-blog-post__sidebar-kicker {
    display: inline-flex;
    margin-bottom: 0.75rem;
    padding: 0.4rem 0.7rem;
    border-radius: 999px;
    background: rgba(4, 44, 83, 0.06);
    color: #0f4f87;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.dc-blog-post__sidebar-card--cta .dc-blog-post__sidebar-kicker {
    background: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.9);
}
.dc-blog-post__sidebar-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.9rem;
}
.dc-blog-post__sidebar-list li {
    display: grid;
    gap: 0.2rem;
    padding-bottom: 0.9rem;
    border-bottom: 1px solid rgba(4, 44, 83, 0.08);
}
.dc-blog-post__sidebar-list li:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}
.dc-blog-post__sidebar-label {
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-smoke);
}
.dc-blog-post__sidebar-value {
    font-size: 0.98rem;
    color: var(--color-charcoal);
}
.dc-blog-post__sidebar-text {
    margin: 0 0 0.85rem;
    color: var(--color-ash);
}
.dc-blog-post__cta-button {
    width: 100%;
    justify-content: center;
    margin-top: 0.5rem;
}

/* ─── Blog Post Author Card (Improved Design) ─── */
.dc-blog-post__author-card {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    gap: 1.5rem;
    padding: clamp(1.5rem, 3vw, 2.2rem);
    align-items: center;
}

.dc-blog-post__author-card::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: min(200px, 30%);
    height: 100%;
    background: radial-gradient(circle at 100% 50%, rgba(79, 151, 219, 0.15) 0%, transparent 70%);
    pointer-events: none;
}

.dc-blog-post__author-card img {
    transition: transform 0.3s ease;
}

.dc-blog-post__author-card:hover img {
    transform: scale(1.05);
}

.dc-blog-post__author-avatar-wrap {
    width: 116px;
    height: 116px;
    border-radius: 28px;
    overflow: hidden;
    background: #fff;
    box-shadow: var(--shadow-card);
}

.dc-blog-post__author-avatar {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dc-blog-post__author-role {
    display: inline-flex;
    margin-bottom: 0.5rem;
    color: #0f4f87;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.dc-blog-post__author-name {
    margin: 0;
    color: var(--color-charcoal);
    font-size: 1.5rem;
}

.dc-blog-post__author-text {
    margin: 0.8rem 0 0;
    color: var(--color-ash);
    line-height: 1.75;
}

/* ─── Blog Post Resources Section ─── */
.dc-blog-post__resources {
    animation: fadeInUp 0.5s ease;
    padding: clamp(1.5rem, 3vw, 2.2rem);
}

.dc-blog-post__resources-head {
    margin-bottom: 1.5rem;
}

.dc-blog-post__resources-head h2 {
    margin: 0 0 0.4rem;
}

.dc-blog-post__resources-head p {
    margin: 0;
    color: var(--color-ash);
}

.dc-blog-post__resources h3 {
    margin: 0 0 1.25rem 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-charcoal);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.dc-blog-post__resources > div + div {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--color-ivory-deep);
}

.dc-blog-post__resource-list {
    display: grid;
    gap: 0.85rem;
}

/* ─── Resource Links (PDFs + Related) ─── */
.dc-resource-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
    background: linear-gradient(135deg, #f5f7fa 0%, #ecf2f8 100%);
    border: 1px solid var(--color-ivory-deep);
    border-radius: var(--radius-lg);
    text-decoration: none;
    color: var(--color-charcoal);
    font-weight: 500;
    font-size: 0.9375rem;
    transition: all var(--duration-fast) var(--ease-luxury);
    position: relative;
    overflow: hidden;
}

.dc-resource-link::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(79, 151, 219, 0.1) 0%, rgba(79, 151, 219, 0) 100%);
    opacity: 0;
    transition: opacity var(--duration-fast);
}

.dc-resource-link:hover {
    border-color: #4f97db;
    box-shadow: 0 4px 12px rgba(79, 151, 219, 0.15);
    transform: translateY(-2px);
}

.dc-resource-link:hover::before {
    opacity: 1;
}

.dc-resource-link > span:first-child {
    font-size: 1.25rem;
    flex-shrink: 0;
}

.dc-resource-link__action {
    margin-left: auto;
    color: #0f4f87;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.dc-blog-post__after {
    padding: 1.4rem 1.5rem;
}

.dc-blog-post__share {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
}

.dc-blog-post__share-label {
    color: var(--color-smoke);
    font-size: 0.875rem;
}

.dc-blog-post__share-link {
    padding-inline: 0.9rem;
}

@media (max-width: 1024px) {
    .dc-blog-post__layout {
        grid-template-columns: 1fr;
    }

    .dc-blog-post__sidebar {
        position: static;
    }
}

@media (max-width: 768px) {
    .dc-blog-post__cover-shell {
        margin-top: -2rem;
    }

    .dc-blog-post__meta-item {
        width: 100%;
        justify-content: center;
    }

    .dc-blog-post__author-card {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .dc-blog-post__author-avatar-wrap {
        margin: 0 auto;
    }

    .dc-blog-post__content-card,
    .dc-blog-post__resources,
    .dc-blog-post__after,
    .dc-blog-post__sidebar-card {
        padding: 1.2rem;
    }

    .dc-blog-post__content {
        font-size: 1rem;
    }

    .dc-blog-post__content > p:first-of-type::first-letter {
        font-size: 2.6rem;
        margin-right: 0.45rem;
    }
}

@media (max-width: 600px) {
    .dc-resource-link {
        padding: 0.75rem 0.875rem;
        font-size: 0.875rem;
    }

    .dc-resource-link > span:first-child {
        font-size: 1rem;
    }
}

/* ─── Fade-in animation ─── */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(1rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ═══════════════════════════════════════════════════════════════
   Print Styles
   ═══════════════════════════════════════════════════════════════ */
@media print {
    .dc-header, .dc-footer, .dc-hero__cta, .dc-hero__scroll,
    .dc-header__menu-toggle, .dc-cta { display: none !important; }
    body { color: #000; background: #fff; }
    .dc-card { box-shadow: none; border: 1px solid #ccc; }
}

/* ═══════════════════════════════════════════════════════════════
   R4 – Prevent iOS auto-zoom on form inputs (font-size >= 16px)
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
    input,
    select,
    textarea {
        font-size: 1rem !important; /* 16px – prevents iOS zoom */
    }
}

/* ═══════════════════════════════════════════════════════════════
   Self-hosted fonts (Montserrat) — GDPR-safe, no external requests.
   Latin subset covers Spanish/Galician accents and punctuation.
   ═══════════════════════════════════════════════════════════════ */
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 200;
    font-display: swap;
    src: url('../fonts/montserrat-200.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url('../fonts/montserrat-300.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/montserrat-400.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/montserrat-500.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/montserrat-600.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/montserrat-700.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../fonts/montserrat-800.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Front-page hero redesign: white clinical look inspired by reference.
   Also used as a fallback to avoid dependency on separate hero-anime.css deploy. */
.dc-hero-anime {
    --hero-bg-top: #fbfdff;
    --hero-bg-mid: #f2f8ff;
    --hero-bg-btm: #ecf4fd;
    --hero-blue-900: #0c3c6d;
    --hero-blue-700: #1f63a4;
    --hero-blue-500: #4f97db;
    --hero-blue-300: #b9daf6;
    --hero-ink: #14385c;
    --hero-mute: rgba(20, 56, 92, 0.7);
    --hero-faint: rgba(20, 56, 92, 0.36);
    position: relative;
    min-height: max(640px, calc(100svh - var(--header-height)));
    padding: clamp(5.8rem, 10vh, 7rem) 0 clamp(5.4rem, 11vh, 7.4rem);
    background:
        radial-gradient(120% 90% at 0% 20%, rgba(111, 198, 255, 0.16) 0%, rgba(111, 198, 255, 0) 56%),
        linear-gradient(180deg, var(--hero-bg-top) 0%, var(--hero-bg-mid) 52%, var(--hero-bg-btm) 100%);
    color: var(--hero-ink);
    overflow: clip;
}

.dc-hero-anime__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.dc-hero-anime__blob {
    position: absolute;
    border-radius: 50%;
}

.dc-hero-anime__blob--a {
    width: min(52vw, 620px);
    aspect-ratio: 1;
    left: -16%;
    top: -26%;
    background: radial-gradient(circle, rgba(90, 168, 231, 0.22) 0%, rgba(90, 168, 231, 0) 72%);
}

.dc-hero-anime__blob--b {
    width: min(44vw, 520px);
    aspect-ratio: 1;
    right: -14%;
    bottom: -18%;
    background: radial-gradient(circle, rgba(185, 218, 246, 0.44) 0%, rgba(185, 218, 246, 0) 72%);
}

.dc-hero-anime__mesh {
    position: absolute;
    right: clamp(-14px, 2vw, 16px);
    top: 0;
    width: min(35vw, 380px);
    height: auto;
    color: var(--hero-blue-500);
    opacity: 0.33;
}

.dc-hero-anime__progress {
    position: absolute;
    top: 0;
    left: 0;
    height: 2px;
    width: 0%;
    background: linear-gradient(90deg, var(--hero-blue-500) 0%, var(--hero-blue-300) 100%);
    box-shadow: 0 0 18px rgba(79, 151, 219, 0.25);
    z-index: 3;
}

.dc-hero-anime__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(280px, 1.1fr) minmax(240px, 500px);
    align-items: center;
    gap: clamp(1rem, 4vw, 4rem);
}

.dc-hero-anime__copy {
    max-width: 620px;
}

.dc-hero-anime__eyebrow {
    font-size: 0.72rem;
    letter-spacing: 0.34em;
    text-transform: uppercase;
    color: rgba(31, 99, 164, 0.9);
    margin-bottom: 1.1rem;
}

.dc-hero-anime__title {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.24rem;
    font-family: var(--font-body);
    font-weight: 200;
    letter-spacing: 0.045em;
    font-size: clamp(2.35rem, 6vw, 5.45rem);
    line-height: 0.96;
    text-transform: uppercase;
    color: var(--hero-blue-900);
}

.dc-hero-anime__title-accent {
    color: var(--hero-blue-500);
    font-weight: 300;
}

.dc-hero-anime__subtitle {
    margin: 1.35rem 0 0;
    max-width: 42ch;
    font-size: clamp(0.95rem, 1.35vw, 1.05rem);
    line-height: 1.74;
    color: var(--hero-mute);
    letter-spacing: 0.02em;
}

.dc-hero-anime__cta {
    margin-top: 1.5rem;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.82rem 1.75rem;
    border: 1px solid rgba(31, 99, 164, 0.3);
    border-radius: 999px;
    color: var(--hero-blue-900);
    text-decoration: none;
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 500;
    background: rgba(255, 255, 255, 0.72);
    transition: transform 180ms ease, border-color 180ms ease, background-color 180ms ease, color 180ms ease;
}

.dc-hero-anime__cta:hover {
    transform: translateY(-2px);
    border-color: var(--hero-blue-500);
    background: var(--hero-blue-900);
    color: #ffffff;
}

.dc-hero-anime__visual {
    position: relative;
    width: min(100%, 500px);
    margin-inline: auto;
    aspect-ratio: 1 / 1;
    display: grid;
    place-items: center;
}

.dc-hero-anime__ring {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(31, 99, 164, 0.24);
}

.dc-hero-anime__ring--outer {
    inset: 2%;
}

.dc-hero-anime__ring--inner {
    inset: 15%;
    border-color: rgba(79, 151, 219, 0.3);
}

.dc-hero-anime__image-wrap {
    position: relative;
    width: clamp(216px, 50vw, 384px);
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: radial-gradient(circle at 40% 30%, rgba(255, 255, 255, 0.94) 0%, rgba(205, 229, 247, 0.62) 34%, rgba(124, 180, 226, 0.18) 72%, rgba(45, 83, 126, 0) 100%);
    box-shadow: 0 28px 64px rgba(17, 64, 106, 0.22);
}

.dc-hero-anime__image {
    width: 84%;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 20px 28px rgba(19, 69, 114, 0.22));
}

.dc-hero-anime__orb {
    width: clamp(204px, 46vw, 350px);
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    background:
        radial-gradient(circle at 38% 34%, rgba(255, 255, 255, 0.95) 0%, rgba(219, 236, 250, 0.82) 28%, rgba(144, 193, 231, 0.52) 54%, rgba(91, 155, 206, 0.24) 72%, rgba(91, 155, 206, 0) 100%),
        conic-gradient(from 180deg at 50% 50%, rgba(79, 151, 219, 0.2), rgba(12, 60, 109, 0.04), rgba(79, 151, 219, 0.2));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.85),
        0 24px 54px rgba(17, 64, 106, 0.16);
}

.dc-hero-anime__scroll {
    position: absolute;
    left: 50%;
    bottom: 1.2rem;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    z-index: 2;
    color: var(--hero-faint);
    text-transform: uppercase;
    letter-spacing: 0.29em;
    font-size: 0.62rem;
}

.dc-hero-anime__scroll i {
    width: 1px;
    height: 34px;
    background: linear-gradient(to bottom, rgba(79, 151, 219, 0.8), transparent);
}

.dc-hero-anime__step2 {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: grid;
    place-items: center;
    pointer-events: none;
    opacity: 0;
    transform: translate3d(0, 24px, 0);
}

.dc-hero-anime__step2-box {
    text-align: center;
    max-width: 680px;
    padding: 0 1.25rem;
}

.dc-hero-anime__step2-eyebrow {
    font-size: 0.68rem;
    letter-spacing: 0.34em;
    text-transform: uppercase;
    color: rgba(31, 99, 164, 0.85);
    margin-bottom: 1.1rem;
}

.dc-hero-anime__step2-title {
    margin: 0;
    font-family: var(--font-body);
    font-size: clamp(1.95rem, 4.6vw, 4rem);
    line-height: 1.05;
    font-weight: 200;
    color: #0c3c6d;
    letter-spacing: 0.01em;
}

.dc-hero-anime__step2-title em {
    display: block;
    margin-top: 0.35rem;
    font-style: normal;
    color: #4f97db;
    font-weight: 300;
}

.dc-hero-anime__step2-body {
    margin: 1.25rem auto 0;
    max-width: 46ch;
    font-size: 0.95rem;
    line-height: 1.8;
    color: rgba(20, 56, 92, 0.7);
    letter-spacing: 0.02em;
}

@media (max-width: 980px) {
    .dc-hero-anime {
        min-height: unset;
        padding-top: max(5.2rem, calc(var(--header-height) + 1.4rem));
        padding-bottom: 5.75rem;
    }

    .dc-hero-anime__inner {
        grid-template-columns: 1fr;
        gap: 1.8rem;
    }

    .dc-hero-anime__copy {
        text-align: center;
        margin-inline: auto;
    }

    .dc-hero-anime__subtitle {
        margin-inline: auto;
    }

    .dc-hero-anime__mesh {
        opacity: 0.2;
        width: min(50vw, 300px);
    }
}

@media (max-width: 680px) {
    .dc-hero-anime {
        padding-top: max(5rem, calc(var(--header-height) + 1.1rem));
        padding-bottom: 5.5rem;
    }

    .dc-hero-anime__eyebrow {
        font-size: 0.64rem;
        letter-spacing: 0.24em;
    }

    .dc-hero-anime__title {
        font-size: clamp(1.95rem, 10.4vw, 3.15rem);
        letter-spacing: 0.03em;
    }

    .dc-hero-anime__subtitle {
        font-size: 0.92rem;
        line-height: 1.6;
    }

    .dc-hero-anime__cta {
        font-size: 0.7rem;
        padding: 0.76rem 1.25rem;
        letter-spacing: 0.13em;
    }

    .dc-hero-anime__scroll {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dc-hero-anime__progress,
    .dc-hero-anime__scroll {
        display: none;
    }
}

/* Home-specific palette: white / blue alternation with dental-clinic tones. */
body.home {
    background-color: #ffffff;
}

/* Avoid whitespace text-node gap right after <main> on front page. */
body.home .dc-main {
    line-height: 0;
}

body.home .dc-main > * {
    line-height: 1.7;
}

body.home .dc-social-proof,
body.home .dc-testimonials {
    background: #0d3f73;
}

body.home .dc-services,
body.home .dc-team,
body.home .dc-location {
    background: #ffffff;
}

body.home .dc-why-us,
body.home .dc-faq {
    background: #eef6fd;
}

body.home .dc-social-proof {
    border-bottom: 1px solid rgba(234, 244, 251, 0.12);
}

/* ═══════════════════════════════════════════════════════════════
    VIDEO HERO — scroll-driven scrub animation
    ═══════════════════════════════════════════════════════════════ */

/* ── Preloader ─────────────────────────────────────── */
/* Poster-first autoplay hero — the video only fades in once it is actually playing. */
#dc-hero-video-el {
    opacity: 0;
    transition: opacity 0.7s ease;
}

#dc-hero-canvas.is-ready #dc-hero-video-el {
    opacity: 1;
}

html.dc-hero-loading #dc-hero-video-el,
body.dc-hero-loading #dc-hero-video-el {
    opacity: 0;
}

.dc-hero-preloader {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 9999;
    height: 2px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease 0.05s;
}

html.dc-hero-loading .dc-hero-preloader,
body.dc-hero-loading .dc-hero-preloader {
    opacity: 1;
}

.dc-hero-preloader.done {
    opacity: 0;
}

.dc-hero-preloader__bar {
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: var(--lp, 0%);
    background: linear-gradient(90deg, var(--color-gold) 0%, var(--color-midnight) 100%);
    transition: width 0.18s linear;
    border-radius: 0 2px 2px 0;
}

/* ── Hero canvas shell ─────────────────────────────── */
.dc-hero-canvas {
    position: relative;
    min-height: calc(100vh - var(--header-height));
    min-height: calc(100svh - var(--header-height));
    max-width: 100%;
    overflow: hidden;
    background:
        radial-gradient(circle at 12% 22%, rgba(140, 185, 240, 0.28), transparent 32%),
        radial-gradient(circle at 88% 18%, rgba(255, 210, 143, 0.26), transparent 30%),
        linear-gradient(135deg, #edf4fb 0%, #f8fbff 52%, #fff7ea 100%);
}

.dc-hero-canvas__sticky {
    position: relative;
    min-height: calc(100vh - var(--header-height));
    min-height: calc(100svh - var(--header-height));
    width: 100%;
    overflow: hidden;
}

.dc-hero-canvas__poster-wrap {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
}

.dc-hero-canvas__poster,
.dc-hero-canvas__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 52%;
}

.dc-hero-canvas__poster {
    z-index: 0;
    transition: opacity 0.55s ease;
}

#dc-hero-canvas.is-ready .dc-hero-canvas__poster {
    opacity: 0;
}

.dc-hero-canvas__video {
    z-index: 1;
    display: block;
}

/* soft edge vignette over the canvas */
.dc-hero-canvas__sticky::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(120% 85% at 50% 62%, transparent 48%, rgba(4, 44, 83, 0.045) 100%);
    z-index: 2;
}

/* ── Content overlay ───────────────────────────────── */
.dc-hero-canvas__content {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: flex-end;
    min-height: calc(100vh - var(--header-height));
    min-height: calc(100svh - var(--header-height));
    padding: clamp(1.25rem, 4.2vw, 3.5rem) clamp(1.25rem, 5vw, 4.75rem) clamp(2rem, 8vh, 4.5rem);
    pointer-events: none;
    contain: paint;
}

/* ── Brand block (bottom-left) ─────────────────────── */
.dc-hero-canvas__brand {
    position: relative;
    width: min(34rem, 44vw);
    max-width: 88vw;
    pointer-events: none;
}

.dc-hero-canvas__eyebrow {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-family: var(--font-body);
    font-size: 0.68rem;
    font-weight: 500;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 0.6rem;
}

.dc-hero-canvas__eyebrow::before {
    content: "";
    display: block;
    width: 24px;
    height: 1px;
    background: currentColor;
    flex-shrink: 0;
}

.dc-hero-canvas__title {
    font-family: var(--font-display);
    font-size: clamp(1.95rem, 4.2vw, 2.9rem);
    font-weight: 400;
    line-height: 1;
    color: var(--color-obsidian);
    margin: 0 0 0.8rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-shadow: 0 1px 10px rgba(255, 255, 255, 0.72);
}

.dc-hero-canvas__title--text {
    display: flex;
    flex-direction: column;
    gap: 0.04em;
}

.dc-hero-canvas__title-line {
    display: block;
    color: var(--color-obsidian);
}

.dc-hero-canvas__title-line--sub {
    color: var(--color-midnight);
}

.dc-hero-canvas__title em {
    color: var(--color-gold);
    font-style: normal;
}

.dc-hero-canvas__title--logo {
    margin: 0;
    line-height: 0;
    text-shadow: none;
}

.dc-hero-canvas__logo {
    display: block;
    width: 100%;
    height: auto;
    max-height: clamp(5rem, 15vh, 9.5rem);
    object-fit: contain;
    filter: drop-shadow(0 18px 38px rgba(4, 44, 83, 0.16));
}

.dc-hero-canvas__tagline {
    max-width: 28ch;
    font-family: var(--font-body);
    font-size: clamp(0.8rem, 1.05vw, 0.9rem);
    font-weight: 400;
    color: rgba(4, 44, 83, 0.8);
    letter-spacing: 0.12em;
    line-height: 1.55;
    text-transform: uppercase;
    margin: 0 0 1.2rem;
}

.dc-hero-canvas__actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    pointer-events: auto;
}

/* ── Outline btn on the light canvas needs more presence ─── */
.dc-hero-canvas__actions .dc-btn--outline {
    border-color: rgba(4, 44, 83, 0.5);
    color: var(--color-obsidian);
    background: rgba(255, 255, 255, 0.72);
}

.dc-hero-canvas__actions .dc-btn--outline:hover {
    border-color: var(--color-midnight);
    background: rgba(255, 255, 255, 0.32);
    color: var(--color-midnight);
}

/* Responsive ────────────────────────────────────── */
@media (max-width: 780px) {
    .dc-hero-canvas,
    .dc-hero-canvas__sticky,
    .dc-hero-canvas__content {
        min-height: calc(100vh - var(--header-height));
        min-height: calc(100svh - var(--header-height));
    }

    .dc-hero-canvas__poster,
    .dc-hero-canvas__video {
        object-fit: cover;
        object-position: 50% 50%;
    }

    .dc-hero-canvas__content {
        flex-direction: column;
        align-items: center;
        justify-content: flex-end;
        padding: 1.5rem 1.15rem calc(1.7rem + env(safe-area-inset-bottom));
    }

    .dc-hero-canvas__brand {
        width: min(24rem, 78vw);
        max-width: 78vw;
    }

    .dc-hero-canvas__title {
        font-size: clamp(1.35rem, 5.5vw, 1.9rem);
    }

    .dc-hero-canvas__tagline {
        font-size: 0.88rem;
        max-width: 26ch;
    }
}

@media (max-width: 480px) {
    .dc-hero-canvas__poster,
    .dc-hero-canvas__video {
        object-fit: cover;
        object-position: 50% 50%;
    }

    .dc-hero-canvas__content {
        justify-content: flex-end;
        align-items: center;
        padding: 0.75rem 0.9rem calc(0.95rem + env(safe-area-inset-bottom));
        text-align: center;
    }

    .dc-hero-canvas__brand {
        width: 100%;
        max-width: min(17.75rem, 78vw);
        margin: 0 auto;
        padding: 0;
        border-radius: 0;
        background: transparent;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        box-shadow: none;
    }

    .dc-hero-canvas__title {
        margin: 0;
    }

    .dc-hero-canvas__logo {
        max-height: clamp(3.7rem, 14svh, 5.9rem);
        filter: drop-shadow(0 14px 26px rgba(4, 44, 83, 0.18));
    }
}

@media (max-width: 420px) {
    .dc-hero-canvas__actions {
        flex-direction: row;
        justify-content: center;
        flex-wrap: wrap;
        align-items: center;
        width: 100%;
    }

    .dc-hero-canvas__actions .dc-btn {
        width: auto;
        min-width: 8rem;
        max-width: 10.5rem;
    }
}

/* Very small phones (≤375px) */
@media (max-width: 375px) {
    .dc-hero-canvas__brand {
        max-width: min(16.25rem, 76vw);
    }
}

@media (prefers-reduced-motion: reduce) {
    .dc-hero-preloader {
        display: none;
    }

    #dc-hero-video-el {
        display: none;
    }

    .dc-hero-canvas__poster {
        opacity: 1 !important;
    }
}

@media (max-width: 640px) {
    body.home .dc-services,
    body.home .dc-why-us,
    body.home .dc-team,
    body.home .dc-testimonials,
    body.home .dc-location,
    body.home .dc-faq,
    body.home .dc-cta {
        padding: clamp(2.75rem, 9vw, 3.75rem) 0;
    }

    body.home .dc-section-heading {
        margin-bottom: 1.7rem;
    }

    body.home .dc-section-heading__title {
        font-size: clamp(1.65rem, 7vw, 2.1rem);
        margin-bottom: 0.65rem;
    }

    body.home .dc-section-heading__subtitle {
        max-width: 32rem;
        font-size: 0.9rem;
        line-height: 1.6;
    }

    body.home .dc-services__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.9rem;
        margin-bottom: 1.25rem;
    }

    body.home .dc-service-card {
        border-radius: 1.2rem;
    }

    body.home .dc-service-card__image {
        aspect-ratio: 1 / 1.08;
    }

    body.home .dc-service-card__body {
        padding: 0.95rem;
    }

    body.home .dc-service-card__icon-wrap {
        width: 2rem;
        height: 2rem;
        margin-bottom: 0.75rem;
    }

    body.home .dc-service-card__title {
        font-size: 0.98rem;
        line-height: 1.2;
        margin-bottom: 0.35rem;
    }

    body.home .dc-service-card__desc {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        line-clamp: 3;
        overflow: hidden;
        font-size: 0.78rem;
        line-height: 1.45;
        margin-bottom: 0.65rem;
    }

    body.home .dc-service-card__practitioner {
        margin-bottom: 0.75rem;
        padding-top: 0.75rem;
    }

    body.home .dc-service-card__practitioner-name {
        font-size: 0.78rem;
    }

    body.home .dc-service-card__practitioner-role,
    body.home .dc-service-card__link {
        font-size: 0.72rem;
    }

    body.home .dc-team__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem 0.85rem;
        max-width: none;
    }

    body.home .dc-team__avatar {
        width: 4.75rem;
        height: 4.75rem;
        margin-bottom: 0.9rem;
    }

    body.home .dc-team__name {
        font-size: 0.95rem;
        line-height: 1.15;
    }

    body.home .dc-team__role {
        font-size: 0.75rem;
        margin-bottom: 0.35rem;
    }

    body.home .dc-team__specialties {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        line-clamp: 3;
        overflow: hidden;
        font-size: 0.72rem;
        line-height: 1.45;
    }

    body.home .dc-services__footer,
    body.home .dc-team__footer {
        margin-top: 1.75rem;
    }

    body.home .dc-testimonials__grid {
        gap: 0.85rem;
    }

    body.home .dc-testimonials__grid--balanced {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.home .dc-testimonials__grid--balanced .dc-testimonial-card,
    body.home .dc-testimonials__grid--balanced .dc-testimonial-card--bottom {
        grid-column: span 1;
    }

    body.home .dc-testimonials__grid--balanced .dc-testimonial-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        width: min(24rem, 100%);
        justify-self: center;
    }

    body.home .dc-testimonial-card {
        padding: 1rem;
        border-radius: 1.2rem;
    }

    body.home .dc-testimonial-card__quote {
        width: 24px;
        height: 24px;
        margin-bottom: 0.65rem;
    }

    body.home .dc-testimonial-card__stars {
        margin-bottom: 0.65rem;
    }

    body.home .dc-testimonial-card__text {
        font-size: 0.78rem;
        line-height: 1.55;
    }

    body.home .dc-testimonial-card__footer {
        margin-top: auto;
        padding-top: 0.7rem;
    }

    body.home .dc-testimonial-card__author {
        font-size: 0.78rem;
    }

    body.home .dc-testimonial-card__source {
        font-size: 0.68rem;
    }

    body.home .dc-why-us__items {
        gap: 1rem;
        margin-top: 1.25rem;
    }

    body.home .dc-why-us__lead {
        margin-top: 0.75rem;
        line-height: 1.65;
    }

    /* Installations section: mobile-first structure and stable carousel sizing */
    body.home .dc-why-us__grid {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    body.home .dc-why-us__image-wrap,
    body.home .dc-about-page__showcase,
    body.home .dc-about-page__gallery {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    body.home .dc-about-page__gallery {
        border-radius: 1rem;
    }

    .dc-why-us .dc-about-page__gallery-item,
    body.home .dc-about-page__gallery-item,
    body.front-page .dc-about-page__gallery-item {
        aspect-ratio: 4 / 5;
        min-height: 0;
        height: min(68svh, 30rem);
    }

    /* Mobile fallback: avoid half-shifted track by rendering only active slide. */
    .dc-why-us .dc-about-page__carousel-track {
        display: block;
        transform: none !important;
    }

    .dc-why-us .dc-about-page__gallery-item {
        display: none;
        width: 100%;
    }

    .dc-why-us .dc-about-page__gallery-item.is-active {
        display: block;
    }

    .dc-why-us .dc-about-page__gallery img,
    body.home .dc-about-page__gallery img,
    body.front-page .dc-about-page__gallery img {
        object-fit: cover;
        object-position: center;
        transform: none;
    }

    body.home .dc-about-page__carousel-controls {
        padding: 0 0.4rem;
    }

    body.home .dc-about-page__carousel-btn {
        width: 2.35rem;
        height: 2.35rem;
    }

    body.home .dc-about-page__carousel-dots {
        margin: 0.65rem auto 0.25rem;
        padding: 0.35rem 0.65rem;
        gap: 0.38rem;
    }

    body.home .dc-about-page__slide-caption {
        padding: 0.65rem 0.7rem;
    }

    body.home .dc-about-page__slide-caption strong {
        font-size: 0.9rem;
        line-height: 1.25;
    }

    body.home .dc-about-page__slide-caption span {
        font-size: 0.78rem;
        line-height: 1.45;
    }

    body.home .dc-why-us__content {
        width: 100%;
    }

    body.home .dc-why-us__item {
        gap: 0.75rem;
    }

    body.home .dc-why-us__item-title {
        font-size: 0.94rem;
        line-height: 1.35;
    }
}

/* ═══════════════════════════════════════════════════════════════
   FRONT-PAGE HERO  (inlined to avoid separate file dependency)
   ═══════════════════════════════════════════════════════════════ */
.dc-hero-anime {
    --hero-bg-top: #ffffff;
    --hero-bg-mid: #f5f9ff;
    --hero-bg-btm: #eaf3fc;
    --hero-blue: #1a5fa0;
    --hero-blue-soft: #4f97db;
    --hero-ink: #0d3f73;
    --hero-mute: rgba(13, 63, 115, 0.72);
    --hero-faint: rgba(13, 63, 115, 0.18);
    position: relative;
    min-height: max(460px, calc(76svh - var(--header-height)));
    padding: clamp(2.8rem, 5.2vh, 4rem) 0 clamp(2.1rem, 4vh, 3rem);
    background: linear-gradient(180deg, var(--hero-bg-top) 0%, var(--hero-bg-mid) 56%, var(--hero-bg-btm) 100%);
    color: var(--hero-ink);
    overflow: clip;
}
.dc-hero-anime__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.dc-hero-anime__noise {
    position: absolute;
    inset: 0;
    opacity: 0.05;
    background-image: radial-gradient(currentColor 0.6px, transparent 0.6px);
    background-size: 8px 8px;
    color: var(--hero-blue);
}
.dc-hero-anime__blob {
    position: absolute;
    border-radius: 50%;
}
.dc-hero-anime__halo {
    position: absolute;
    border-radius: 999px;
    filter: blur(48px);
}
.dc-hero-anime__blob--a {
    width: min(46vw, 540px);
    aspect-ratio: 1;
    left: -14%;
    top: -22%;
    background: radial-gradient(circle, rgba(79, 151, 219, 0.11) 0%, rgba(79, 151, 219, 0) 72%);
}
.dc-hero-anime__blob--b {
    width: min(52vw, 620px);
    aspect-ratio: 1;
    right: -20%;
    bottom: -24%;
    background: radial-gradient(circle, rgba(185, 218, 246, 0.28) 0%, rgba(185, 218, 246, 0) 72%);
}
.dc-hero-anime__halo--a {
    width: min(46vw, 600px);
    height: min(30vw, 360px);
    left: -6%;
    top: 16%;
    background: rgba(118, 180, 234, 0.2);
}
.dc-hero-anime__halo--b {
    width: min(38vw, 500px);
    height: min(26vw, 320px);
    right: 3%;
    top: 20%;
    background: rgba(26, 95, 160, 0.16);
}
.dc-hero-anime__mesh {
    position: absolute;
    right: clamp(-14px, 2vw, 16px);
    top: clamp(14px, 4vh, 42px);
    width: min(38vw, 410px);
    height: auto;
    color: var(--hero-blue-soft);
    opacity: 0.22;
}
.dc-hero-anime__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(320px, 1fr);
    justify-content: center;
    align-items: center;
    gap: 0;
}
.dc-hero-anime__copy {
    max-width: 760px;
    margin-inline: auto;
    text-align: center;
}
.dc-hero-anime__eyebrow {
    font-size: 0.72rem;
    letter-spacing: 0.34em;
    text-transform: uppercase;
    color: var(--hero-blue);
    margin-bottom: 1.15rem;
}
.dc-hero-anime__title {
    margin: 0;
    font-family: var(--font-body);
    font-weight: 300;
    letter-spacing: 0.028em;
    font-size: clamp(2.2rem, 5.2vw, 4.6rem);
    line-height: 1.04;
    color: var(--hero-ink) !important;
}
.dc-hero-anime__meta {
    margin: 1.15rem 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}
.dc-hero-anime__meta li {
    border: 1px solid rgba(26, 95, 160, 0.24);
    border-radius: 999px;
    padding: 0.34rem 0.82rem;
    font-size: 0.74rem;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--hero-mute);
    background: rgba(255, 255, 255, 0.58);
}
.dc-hero-anime__cta {
    margin-top: 1.9rem;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.88rem 1.86rem;
    border: 1px solid rgba(26, 95, 160, 0.3);
    border-radius: 999px;
    color: var(--hero-ink) !important;
    text-decoration: none;
    font-size: 0.78rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    background: rgba(26, 95, 160, 0.06);
    transition: transform 180ms ease, border-color 180ms ease, background-color 180ms ease, color 180ms ease;
}
.dc-hero-anime__cta:hover {
    transform: translateY(-2px);
    border-color: var(--hero-blue);
    background: rgba(26, 95, 160, 0.12);
    color: var(--hero-blue) !important;
}
.dc-hero-anime__visual {
    display: none !important;
}
.dc-hero-anime__visual {
    position: relative;
    width: min(100%, 520px);
    margin-inline: auto;
    aspect-ratio: 1/1;
    display: grid;
    place-items: center;
}
.dc-hero-anime__visual-shell {
    position: relative;
    width: 100%;
    aspect-ratio: 1;
    border-radius: 26px;
    background: linear-gradient(150deg, rgba(255, 255, 255, 0.72) 0%, rgba(239, 247, 255, 0.54) 100%);
    border: 1px solid rgba(26, 95, 160, 0.14);
    box-shadow: 0 30px 80px rgba(13, 63, 115, 0.14);
    display: grid;
    place-items: center;
}
.dc-hero-anime__visual-svg {
    position: relative;
    z-index: 1;
    width: clamp(220px, 88%, 420px);
    height: auto;
    color: var(--hero-blue);
    overflow: visible;
}
.dc-hero-anime__ring {
    fill: none;
    stroke: currentColor;
    transform-box: fill-box; transform-origin: center;
}
.dc-hero-anime__ring--1 { opacity: 0.22; stroke-width: 1.15; }
.dc-hero-anime__ring--2 { opacity: 0.16; stroke-width: 0.9; stroke-dasharray: 5 8; }
.dc-hero-anime__ring--3 { opacity: 0.3;  stroke-width: 1.35; }
.dc-hero-anime__tooth-path {
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linejoin: round;
    stroke-linecap: round;
}
.dc-hero-anime__tooth-path--inner {
    opacity: 0.65;
    stroke-width: 1.25;
}
.dc-hero-anime__tooth-smile {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.4;
    opacity: 0.46;
    stroke-linecap: round;
}
.dc-hero-anime__kpi-card {
    position: absolute;
    right: -22px;
    bottom: 24px;
    padding: 0.88rem 1rem;
    min-width: 126px;
    border-radius: 14px;
    background: rgba(13, 63, 115, 0.94);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.18);
    box-shadow: 0 14px 32px rgba(13, 63, 115, 0.24);
}
.dc-hero-anime__kpi-value {
    margin: 0;
    font-size: 1.28rem;
    font-weight: 700;
    letter-spacing: 0.06em;
}
.dc-hero-anime__kpi-label {
    margin: 0.2rem 0 0;
    font-size: 0.64rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    opacity: 0.86;
}
@media (max-width: 980px) {
    .dc-hero-anime {
        min-height: unset;
        padding-top: max(2.2rem, calc(var(--header-height) + 0.4rem));
        padding-bottom: 2.2rem;
    }

    .dc-hero-anime__inner {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .dc-hero-anime__copy {
        text-align: center;
        margin-inline: auto;
    }
    .dc-hero-anime__mesh {
        opacity: 0.14;
        width: min(52vw, 320px);
    }
}
@media (max-width: 680px) {
    .dc-hero-anime {
        padding-top: max(1.9rem, calc(var(--header-height) + 0.3rem));
        padding-bottom: 1.9rem;
    }
    .dc-hero-anime__eyebrow {
        font-size: 0.62rem;
        letter-spacing: 0.24em;
    }
    .dc-hero-anime__title {
        font-size: clamp(1.9rem, 9.6vw, 3rem);
        letter-spacing: 0.02em;
    }
    .dc-hero-anime__cta {
        font-size: 0.7rem;
        padding: 0.78rem 1.28rem;
        letter-spacing: 0.14em;
    }
}

body.home .dc-social-proof__number {
    color: #ffffff;
}

body.home .dc-social-proof__label {
    color: rgba(234, 244, 251, 0.72);
}

body.home .dc-testimonial-card {
    background: #134f8a;
    border: 1px solid rgba(234, 244, 251, 0.14);
}

body.home .dc-testimonial-card__text {
    color: rgba(247, 251, 255, 0.88);
}

body.home .dc-testimonial-card__source {
    color: rgba(234, 244, 251, 0.7);
}

.dc-whatsapp-bubble {
    position: fixed;
    right: 1rem;
    bottom: calc(1rem + env(safe-area-inset-bottom));
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    background: linear-gradient(145deg, #23b179 0%, #1a8f66 100%);
    box-shadow: 0 10px 24px rgba(20, 110, 78, 0.30);
    z-index: 1100;
    transition: transform 150ms ease, box-shadow 150ms ease;
}

.dc-whatsapp-bubble:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(20, 110, 78, 0.36);
}

.dc-whatsapp-bubble:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 2px;
}

body.dc-cookie-banner-visible .dc-whatsapp-bubble {
    bottom: calc(6.5rem + env(safe-area-inset-bottom));
}

@media (max-width: 680px) {
    .dc-whatsapp-bubble {
        width: 3.15rem;
        height: 3.15rem;
        right: 0.8rem;
        bottom: calc(0.8rem + env(safe-area-inset-bottom));
    }

    body.page-template-page-contacto .dc-main,
    body.page-template-page-contacto-php .dc-main {
        padding-bottom: 3.75rem;
    }

    body.page-template-page-cita .dc-main,
    body.page-template-page-cita-php .dc-main {
        padding-bottom: 5.75rem;
    }

    body.dc-cookie-banner-visible .dc-whatsapp-bubble {
        bottom: calc(7.25rem + env(safe-area-inset-bottom));
    }
}

/* Final brand/responsive hardening for client-approved logo and mobile home carousel. */
.dc-header__logo-image,
.dc-footer__logo-image,
.dc-hero-canvas__logo {
    object-fit: contain;
}

.dc-main,
.dc-section,
.dc-container,
.dc-about-page__intro-grid,
.dc-about-page__history-grid,
.dc-about-page__pillars,
.dc-services__grid,
.dc-footer__grid {
    min-width: 0;
}

.dc-section-heading__title,
.dc-page-hero__title,
.dc-page-hero__subtitle,
.dc-service-card__title,
.dc-about-page__pillar h3,
.dc-about-page p,
.dc-about-page__milestone p {
    overflow-wrap: anywhere;
}

.dc-about-page,
.dc-about-page * {
    box-sizing: border-box;
}

.dc-footer__logo-section {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.dc-footer__logo {
    display: inline-flex;
    align-items: center;
    line-height: 0;
}

.dc-hero-canvas__brand {
    width: min(34rem, 44vw);
    max-width: 88vw;
    transform: translateX(-1.2vw);
}

.dc-hero-canvas__title--logo {
    margin: 0;
    line-height: 0;
}

.dc-hero-canvas__logo {
    max-height: clamp(5rem, 15vh, 9.5rem);
    filter: drop-shadow(0 18px 38px rgba(4, 44, 83, 0.16));
}

.dc-why-us__content {
    min-width: 0;
    max-width: 100%;
}

body.home .dc-why-us .dc-section-heading__title {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.dc-why-us__carousel {
    gap: 0;
    padding: 0;
    overflow: hidden;
}

.dc-why-us__media {
    padding: 0;
    background: #eef6fd;
}

.dc-why-us__slide img {
    object-fit: cover;
    object-position: center;
    border-radius: 0;
}

.dc-why-us__carousel-indicators {
    margin: 0.7rem auto 0.7rem;
}

/* Final brand alignment pass. Keep the palette clinical-blue only, with the logo text doing the brand work. */
.dc-hero-canvas__brand {
    width: min(27rem, 34vw);
    max-width: 78vw;
    transform: none;
}

.dc-hero-canvas__logo {
    max-height: clamp(4.35rem, 11vh, 7rem);
}

.dc-why-us__slide {
    grid-template-rows: minmax(0, 1fr);
}

.dc-why-us__caption {
    display: none;
}

.dc-footer__logo-section {
    width: fit-content;
    align-items: center;
    text-align: center;
}

.dc-footer__tagline {
    max-width: 21rem;
    text-align: center;
}

@media (max-width: 780px) {
    .dc-hero-canvas__content {
        flex-direction: column;
        align-items: center;
        justify-content: flex-end;
        padding: 1.5rem 1.15rem calc(2rem + env(safe-area-inset-bottom));
    }

    .dc-hero-canvas__brand {
        width: min(18rem, 74vw);
        max-width: 74vw;
        transform: none;
    }
}

@media (max-width: 480px) {
    .dc-hero-canvas__brand {
        width: min(15.5rem, 68vw);
        max-width: min(15.5rem, 68vw);
        margin-inline: auto;
        transform: none;
    }

    .dc-hero-canvas__logo {
        max-height: clamp(3.2rem, 12svh, 5rem);
    }
}

/* Launch hardening: clear first-screen value proposition and conversion path. */
.dc-hero-canvas__brand {
    width: min(29rem, 38vw);
    pointer-events: auto;
}

.dc-hero-canvas__tagline {
    max-width: 31rem;
    margin: 0.85rem 0 1rem;
    font-size: clamp(0.76rem, 0.95vw, 0.9rem);
    font-weight: 500;
    letter-spacing: 0.08em;
    color: rgba(4, 44, 83, 0.86);
}

.dc-hero-canvas__actions {
    gap: 0.65rem;
}

.dc-hero-canvas__actions .dc-btn {
    min-height: 2.65rem;
    padding: 0.72rem 1.15rem;
    border-radius: 999px;
    font-size: 0.82rem;
}

.dc-service-card__image,
.dc-team__avatar,
.dc-team-card__avatar-wrap {
    background: linear-gradient(180deg, #f8fcff 0%, #e6f2fc 100%);
}

.dc-service-card__image img,
.dc-team__photo,
.dc-team-card__avatar-img {
    opacity: 1;
}

@media (max-width: 780px) {
    .dc-hero-canvas__brand {
        width: min(19rem, 76vw);
        max-width: min(19rem, 76vw);
        text-align: center;
    }

    .dc-hero-canvas__tagline {
        margin: 0.6rem auto 0.75rem;
        max-width: 24ch;
        font-size: 0.74rem;
        line-height: 1.35;
        letter-spacing: 0.06em;
    }

    .dc-hero-canvas__actions {
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .dc-hero-canvas__brand {
        width: min(17rem, 72vw);
        max-width: min(17rem, 72vw);
    }

    .dc-hero-canvas__actions .dc-btn {
        min-height: 2.35rem;
        padding: 0.58rem 0.9rem;
        font-size: 0.74rem;
    }
}

body.dc-cookie-banner-visible .dc-hero-canvas__content {
    padding-bottom: clamp(8rem, 16vh, 11rem);
}

@media (max-width: 480px) {
    body.dc-cookie-banner-visible .dc-hero-canvas__content {
        padding-bottom: calc(11rem + env(safe-area-inset-bottom));
    }

    .dc-hero-canvas__actions .dc-btn--outline {
        display: none;
    }
}

@media (max-width: 640px) {
    .dc-page-hero {
        padding-block: clamp(3.4rem, 14vw, 5rem) clamp(2rem, 9vw, 3rem);
    }

    .dc-page-hero__title {
        font-size: clamp(2rem, 10vw, 3rem);
        line-height: 1.05;
    }

    .dc-footer__logo-section {
        align-items: center;
        text-align: center;
    }

    .dc-footer__col {
        align-items: center;
        text-align: center;
    }

    .dc-footer__contact {
        width: 100%;
        align-items: center;
    }

    .dc-footer__contact-item {
        justify-content: center;
        text-align: center;
    }

    .dc-footer__tagline {
        margin-inline: auto;
    }

    .dc-footer__schedule-row span:last-child {
        text-align: right;
    }

    body.home .dc-services__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.8rem;
    }

    body.home .dc-service-card--wide,
    body.home .dc-service-card--span-3 {
        grid-column: 1 / -1;
    }
    body.home .dc-service-card--wide .dc-service-card__image,
    body.home .dc-service-card--span-3 .dc-service-card__image {
        aspect-ratio: 2 / 1;
    }

    body.home .dc-service-card {
        border-radius: 1rem;
        min-width: 0;
    }

    body.home .dc-service-card__image {
        aspect-ratio: 1 / 0.98;
    }

    body.home .dc-service-card__body {
        padding: 0.85rem;
    }

    body.home .dc-service-card__title {
        font-size: clamp(0.88rem, 4vw, 0.98rem);
        line-height: 1.18;
    }

    body.home .dc-service-card__desc {
        -webkit-line-clamp: 3;
        line-clamp: 3;
        font-size: 0.76rem;
        line-height: 1.4;
    }

    body.home .dc-service-card__practitioner-name {
        font-size: 0.75rem;
        line-height: 1.3;
    }

    body.home .dc-service-card__practitioner-role,
    body.home .dc-service-card__link {
        font-size: 0.7rem;
        line-height: 1.3;
    }

    .dc-about-page__intro-copy,
    .dc-about-page__history,
    .dc-about-page__milestone,
    .dc-about-page__pillar {
        border-radius: 1rem;
        max-width: 100%;
        min-width: 0;
        padding: 1rem;
    }

    .dc-about-page__intro-grid,
    .dc-about-page__history-grid,
    .dc-about-page__pillars,
    .dc-about-page__copy,
    .dc-about-page__milestone p,
    .dc-about-page__pillar p {
        width: 100%;
        max-width: 100%;
    }

    .dc-about-page__kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.55rem;
    }

    .dc-about-page__kpi-card {
        align-items: center;
        min-width: 0;
        padding: 0.8rem 0.55rem;
        text-align: center;
    }

    .dc-about-page__kpi-value {
        font-size: clamp(1.05rem, 5vw, 1.35rem);
        line-height: 1.1;
    }

    .dc-about-page__kpi-label {
        font-size: 0.72rem;
        line-height: 1.35;
    }

    .dc-about-page__showcase {
        width: 100%;
        max-width: none;
    }

    .dc-about-page__gallery {
        border-radius: 1rem;
    }

    .dc-about-page__gallery-item {
        aspect-ratio: 4 / 4.7;
        min-height: clamp(20rem, 78vw, 27rem);
    }

    .dc-about-page__gallery img {
        object-fit: cover;
        object-position: center;
    }

    .dc-about-page__carousel-controls {
        top: 42%;
        padding-inline: 0.45rem;
    }

    .dc-about-page__carousel-btn {
        width: 2.35rem;
        height: 2.35rem;
    }

    .dc-about-page__carousel-dots {
        max-width: calc(100% - 1rem);
        margin-block: 0.7rem;
        padding: 0.4rem 0.7rem;
    }

    .dc-about-page__carousel-hint {
        font-size: 0.75rem;
        line-height: 1.45;
    }
}

@media (max-width: 480px) {
    .dc-hero-canvas__poster,
    .dc-hero-canvas__video {
        object-position: 50% 50%;
    }

    .dc-hero-canvas__content {
        flex-direction: column;
        align-items: center;
        justify-content: flex-end;
        padding: 0.75rem 0.9rem calc(7.75rem + env(safe-area-inset-bottom));
    }

    .dc-hero-canvas__brand {
        width: min(18rem, 76vw);
        max-width: min(18rem, 76vw);
        margin-inline: auto;
        padding: 0;
        background: transparent;
        border-radius: 0;
        box-shadow: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        transform: none;
    }

    .dc-hero-canvas__logo {
        max-height: clamp(3.7rem, 14svh, 5.9rem);
        filter: drop-shadow(0 14px 26px rgba(4, 44, 83, 0.18));
    }

    .dc-why-us__image-wrap {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    .dc-why-us__carousel {
        width: 100%;
        gap: 0.55rem;
        padding: 0.55rem;
        border-radius: 1rem;
        overflow: hidden;
        box-shadow: 0 14px 34px rgba(4, 44, 83, 0.12);
    }

    .dc-why-us__stage {
        height: min(68svh, 28rem);
        min-height: 21rem;
        max-height: 28rem;
        border-radius: 0.85rem;
    }

    .dc-why-us__media {
        padding: 0;
        background: #eef6fd;
    }

    .dc-why-us__slide img {
        object-fit: cover;
        object-position: center;
        border-radius: 0;
    }

    .dc-why-us__caption {
        padding: 0.75rem 0.85rem 0.85rem;
    }

    .dc-why-us__caption strong {
        font-size: 0.95rem;
    }

    .dc-why-us__caption span:last-child {
        font-size: 0.78rem;
        line-height: 1.4;
    }

    body.home .dc-why-us .dc-section-heading__title {
        max-width: 17ch;
        font-size: clamp(1.45rem, 6.2vw, 1.82rem);
        line-height: 1.18;
    }

    .dc-why-us__nav-btn {
        width: 2.35rem;
        height: 2.35rem;
    }

    .dc-why-us__image-accent {
        display: none;
    }
}

@media (max-width: 370px) {
    body.home .dc-services__grid,
    .dc-about-page__kpis {
        grid-template-columns: 1fr;
    }

    body.home .dc-service-card--wide,
    body.home .dc-service-card--span-3 {
        grid-column: 1 / -1;
    }
    body.home .dc-service-card--wide .dc-service-card__image,
    body.home .dc-service-card--span-3 .dc-service-card__image {
        aspect-ratio: 1 / 1;
    }

    .dc-hero-canvas__brand {
        transform: translateX(-3vw);
    }
}

@media (max-width: 480px) {
    .dc-hero-canvas__brand {
        width: min(15.5rem, 68vw);
        max-width: min(15.5rem, 68vw);
        margin-inline: auto;
        transform: none;
    }

    .dc-hero-canvas__logo {
        max-height: clamp(3.2rem, 12svh, 5rem);
    }
}

/* Client polish 2026-05-19: tighter brand lockup, calmer hero copy and proportional nav rhythm. */
.dc-header__nav-list {
    gap: 0.35rem;
}

.dc-header__nav-link {
    padding-inline: 0.82rem;
}

.dc-header__nav-item--dropdown .dc-header__nav-link {
    padding-right: 0.64rem;
}

.dc-hero-canvas__brand {
    text-align: center;
}

.dc-hero-canvas__tagline {
    display: block;
    width: fit-content;
    max-width: 100%;
    margin: 0.72rem auto 1rem;
    color: rgba(31, 82, 121, 0.74);
    letter-spacing: 0.055em;
    text-align: center;
}

.dc-hero-canvas__actions {
    justify-content: center;
    margin-top: 0.2rem;
    transform: translateY(0.45rem);
}

@media (max-width: 900px) {
    .dc-header__nav-list {
        gap: 0.2rem;
    }
}

/* Surgical fix 2026-05-19: treatments cards image framing on home. */
body.home .dc-services .dc-service-card__image {
    background: linear-gradient(180deg, #f6fbff 0%, #e9f3fc 100%);
}

body.home .dc-services .dc-service-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover !important;
    object-position: center;
    transform: none;
}

body.home .dc-services .dc-service-card:hover .dc-service-card__image img {
    transform: scale(1.015);
}

/* Per-service framing to avoid bad crops while keeping full-bleed cards. */
body.home .dc-services .dc-service-card--cirugia-oral-e-implantologia .dc-service-card__image img {
    object-position: 50% 28%;
}

body.home .dc-services .dc-service-card--odontologia-general-y-conservadora .dc-service-card__image img {
    object-position: 50% 46%;
}

body.home .dc-services .dc-service-card--endodoncia .dc-service-card__image img {
    object-position: 52% 24%;
    transform: scale(1.28);
}

body.home .dc-services .dc-service-card--ortodoncia .dc-service-card__image img {
    object-position: 50% 50%;
    transform: scale(1.36);
}

body.home .dc-services .dc-service-card--periodoncia .dc-service-card__image img {
    object-position: 50% 34%;
    transform: scale(1.3);
}

body.home .dc-services .dc-service-card--odontopediatria .dc-service-card__image img {
    object-position: 52% 58%;
}

body.home .dc-services .dc-service-card--endodoncia:hover .dc-service-card__image img {
    transform: scale(1.295);
}

body.home .dc-services .dc-service-card--ortodoncia:hover .dc-service-card__image img {
    transform: scale(1.375);
}

body.home .dc-services .dc-service-card--periodoncia:hover .dc-service-card__image img {
    transform: scale(1.315);
}

body.home .dc-services .dc-service-card--span-3 .dc-service-card__image img,
body.home .dc-services .dc-service-card--span-3:hover .dc-service-card__image img {
    object-fit: contain;
    object-position: center center;
    transform: none;
}

@media (max-width: 640px) {
    body.home .dc-services .dc-service-card__image img {
        object-position: center;
    }
}

@media (max-width: 480px) {
    .dc-hero-canvas__tagline {
        max-width: 22ch;
        margin-top: 0.5rem;
        color: rgba(31, 82, 121, 0.78);
        letter-spacing: 0.045em;
    }

    .dc-hero-canvas__actions {
        margin-top: 0.1rem;
        transform: translateY(0.2rem);
    }
}

/* About page editorial redesign */
.dc-about-story {
    position: relative;
    overflow: hidden;
}
.dc-about-story--lead {
    padding-top: clamp(4.25rem, 8vw, 7rem);
    background:
        linear-gradient(180deg, rgba(4, 44, 83, 0.10) 0%, rgba(247, 251, 255, 0) 13rem),
        radial-gradient(circle at top left, rgba(56, 151, 231, 0.12), transparent 30rem),
        var(--color-ivory);
}
.dc-about-story::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 12% 12%, rgba(56, 151, 231, 0.12), transparent 28rem),
        linear-gradient(180deg, rgba(255, 255, 255, 0.68), transparent 42%);
}
.dc-about-story > .dc-container,
.dc-about-virtual > .dc-container,
.dc-about-gallery-section > .dc-container,
.dc-about-scope > .dc-container {
    position: relative;
    z-index: 1;
}
.dc-about-page__story-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(20rem, 0.78fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: center;
}
.dc-about-page__section-kicker {
    display: inline-flex;
    margin-bottom: 0.8rem;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-gold-dark);
}
.dc-about-page__intro-copy {
    padding: clamp(1.35rem, 3vw, 2.2rem);
    background: rgba(255, 255, 255, 0.78);
    border-color: rgba(181, 212, 244, 0.85);
    box-shadow: 0 18px 44px rgba(4, 44, 83, 0.08);
}
.dc-about-page__intro-copy .dc-section-heading__title {
    max-width: 13ch;
    margin-bottom: 1rem;
    line-height: 1.05;
}
.dc-about-page__lead {
    position: relative;
    max-width: 68ch;
    margin: 0 0 1.6rem;
    padding-left: 1.1rem;
    border-left: 3px solid var(--color-gold);
    font-size: clamp(1.06rem, 1.6vw, 1.2rem);
    font-weight: 500;
    line-height: 1.7;
    color: var(--color-charcoal);
}
.dc-about-page__intro-copy .dc-about-page__copy {
    margin: 0.7rem 0 0;
    max-width: 76ch;
    line-height: 1.72;
}
.dc-about-page__custom-copy h3 {
    margin: 1.4rem 0 0.55rem;
    font-size: clamp(1.05rem, 1.7vw, 1.2rem);
    line-height: 1.25;
    color: var(--color-charcoal);
}
.dc-about-page__custom-copy h3:first-child {
    margin-top: 0;
}
.dc-about-page__custom-copy p {
    margin: 0.7rem 0 0;
    max-width: 76ch;
    line-height: 1.72;
}
.dc-about-page__vision-blocks {
    display: grid;
    gap: 1.4rem;
    margin-top: 1.6rem;
}
.dc-about-page__vision-block {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem;
    align-items: start;
}
.dc-about-page__vision-block-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 0.6rem;
    background: rgba(56, 138, 221, 0.1);
    color: var(--color-gold-dark);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}
.dc-about-page__vision-block-title {
    margin: 0.2rem 0 0.5rem;
    font-size: clamp(1.05rem, 1.7vw, 1.2rem);
    line-height: 1.25;
    color: var(--color-charcoal);
}
.dc-about-page__vision-block-body .dc-about-page__copy:first-of-type {
    margin-top: 0;
}
.dc-about-page__vision-panel {
    position: sticky;
    top: 7rem;
    align-self: start;
}
.dc-about-page__vision-photo {
    position: relative;
    margin: 0;
    overflow: hidden;
    aspect-ratio: 4 / 5;
    border: 1px solid rgba(181, 212, 244, 0.9);
    border-radius: var(--radius-2xl);
    background: #eaf4fb;
    box-shadow: 0 24px 54px rgba(4, 44, 83, 0.14);
}
.dc-about-page__vision-photo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transform: scale(1.02);
}
.dc-about-page__vision-card {
    width: min(88%, 22rem);
    margin: -5.8rem auto 0;
    position: relative;
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: var(--radius-xl);
    background: rgba(4, 44, 83, 0.9);
    color: #fff;
    box-shadow: 0 20px 42px rgba(4, 44, 83, 0.22);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
}
.dc-about-page__vision-card > span {
    display: block;
    margin-bottom: 0.8rem;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.72);
}
.dc-about-page__vision-point {
    padding: 0.72rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
}
.dc-about-page__vision-point strong {
    display: block;
    margin-bottom: 0.2rem;
    color: #fff;
}
.dc-about-page__vision-point p {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.74);
}
.dc-about-gallery-section {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(4, 44, 83, 0.97), rgba(18, 83, 136, 0.94)),
        var(--color-midnight);
    color: #fff;
}
.dc-about-gallery-section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 18% 10%, rgba(55, 138, 221, 0.24), transparent 25rem),
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent 38%);
}
.dc-about-gallery-section .dc-section-heading__title,
.dc-about-gallery-section .dc-section-heading__subtitle {
    color: #fff;
}
.dc-about-gallery-section .dc-section-heading__subtitle {
    color: rgba(247, 251, 255, 0.76);
}
.dc-about-gallery-section .dc-about-page__gallery {
    border-color: rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 24px 62px rgba(0, 0, 0, 0.24);
}
.dc-about-gallery-section .dc-about-page__thumbs {
    background: rgba(255, 255, 255, 0.12);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.18);
}
.dc-about-gallery-section .dc-about-page__thumb {
    border-color: rgba(255, 255, 255, 0.28);
}
.dc-about-gallery-section .dc-about-page__thumb.is-active {
    border-color: var(--color-gold);
}
.dc-about-gallery-section .dc-about-page__carousel-hint {
    color: rgba(247, 251, 255, 0.7);
}
.dc-about-tabs__nav {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 auto 1.75rem;
}
.dc-about-tabs__btn {
    appearance: none;
    -webkit-appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.08);
    color: rgba(247, 251, 255, 0.82);
    font-family: var(--font-body);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    padding: 0.6rem 1.25rem;
    border-radius: 999px;
    cursor: pointer;
    transition: background var(--duration-fast), color var(--duration-fast), border-color var(--duration-fast);
}
.dc-about-tabs__btn:hover {
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
}
.dc-about-tabs__btn.is-active {
    background: var(--color-gold);
    border-color: var(--color-gold);
    color: #fff;
}
.dc-about-tabs__panel[hidden] {
    display: none;
}
.dc-about-virtual {
    background:
        linear-gradient(180deg, var(--color-ivory-warm) 0%, var(--color-ivory) 100%);
    color: var(--color-charcoal);
}
.dc-about-page__virtual-grid {
    display: grid;
    grid-template-columns: minmax(16rem, 0.55fr) minmax(0, 1fr);
    gap: clamp(1rem, 3vw, 2rem);
    align-items: center;
}
.dc-about-page__virtual-copy .dc-section-heading__title,
.dc-about-page__virtual-copy .dc-section-heading__subtitle {
    color: var(--color-charcoal);
}
.dc-about-page__virtual-copy .dc-about-page__copy {
    margin: 0 0 1.1rem;
    color: var(--color-ash);
}
.dc-about-page__virtual-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 1.25rem;
}
.dc-about-page__virtual-actions .dc-btn--outline {
    color: var(--color-midnight);
    border-color: rgba(55, 138, 221, 0.34);
    background: rgba(255, 255, 255, 0.55);
}
.dc-about-page__virtual-actions .dc-btn--outline:hover {
    color: #fff;
    border-color: var(--color-midnight);
    background: var(--color-midnight);
}
.dc-about-page__virtual-frame {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    min-height: 22rem;
    border: 1px solid rgba(181, 212, 244, 0.76);
    border-radius: var(--radius-2xl);
    background: #eaf4fb;
    box-shadow: 0 24px 62px rgba(4, 44, 83, 0.14);
}
.dc-about-page__virtual-frame > img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    filter: saturate(1.06);
}
.dc-about-page__virtual-frame::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(4, 44, 83, 0.08), rgba(4, 44, 83, 0.34));
    pointer-events: none;
}
.dc-about-page__virtual-play {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 2;
    transform: translate(-50%, -50%);
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 3.35rem;
    padding: 0.75rem 1.05rem;
    border: 1px solid rgba(255, 255, 255, 0.78);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.94);
    color: var(--color-midnight);
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.26);
    transition: transform var(--duration-fast), background var(--duration-fast);
}
.dc-about-page__virtual-play:hover {
    transform: translate(-50%, -50%) scale(1.025);
    background: #ffffff;
}
.dc-about-page__virtual-play-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 999px;
    background: var(--color-gold);
    color: #fff;
    font-size: 0.78rem;
    letter-spacing: 0;
}
.dc-about-page__virtual-frame iframe {
    position: absolute;
    inset: 0;
    z-index: 3;
    width: 100%;
    height: 100%;
    display: block;
    border: 0;
}
.dc-about-page__virtual-frame.is-loaded > img,
.dc-about-page__virtual-frame.is-loaded::after,
.dc-about-page__virtual-frame.is-loaded .dc-about-page__virtual-play,
.dc-about-page__virtual-frame--live > img,
.dc-about-page__virtual-frame--live::after,
.dc-about-page__virtual-frame--live .dc-about-page__virtual-play {
    display: none;
}
.dc-about-virtual .dc-btn--gold {
    background: var(--color-gold);
    border-color: var(--color-gold);
    color: #ffffff;
}
.dc-about-virtual .dc-btn--gold:hover {
    background: var(--color-midnight);
    border-color: var(--color-midnight);
    color: #ffffff;
}
.dc-about-scope .dc-section-heading {
    max-width: 54rem;
    margin-inline: auto;
}
.dc-about-page__pillars {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
}
.dc-about-page__pillar {
    position: relative;
    min-height: 12.5rem;
    padding: 1.25rem;
    background: rgba(255, 255, 255, 0.78);
    border-color: rgba(181, 212, 244, 0.82);
    box-shadow: 0 14px 34px rgba(4, 44, 83, 0.07);
    transition: transform var(--duration-fast), box-shadow var(--duration-fast), border-color var(--duration-fast);
}
.dc-about-page__pillar:hover {
    transform: translateY(-3px);
    border-color: rgba(56, 151, 231, 0.72);
    box-shadow: 0 18px 42px rgba(4, 44, 83, 0.12);
}
.dc-about-page__pillar-index {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    margin-bottom: 0.8rem;
    border-radius: 999px;
    background: rgba(56, 151, 231, 0.13);
    color: var(--color-gold-dark);
    font-size: 0.76rem;
    font-weight: 700;
}
.dc-about-page__pillar h3 {
    line-height: 1.25;
}
.dc-about-page__pillar p {
    line-height: 1.65;
}
.dc-about-page__featured-pillar {
    margin: 1.25rem 0 1.6rem;
    padding: clamp(1.35rem, 3vw, 2rem);
    border: 1px solid rgba(181, 212, 244, 0.82);
    border-radius: var(--radius-2xl);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(234, 244, 251, 0.9)),
        var(--color-ivory);
    box-shadow: 0 18px 44px rgba(4, 44, 83, 0.08);
}
.dc-about-page__featured-pillar h3 {
    margin: 0 0 0.8rem;
    font-size: clamp(1.35rem, 2.4vw, 2rem);
    color: var(--color-charcoal);
}
.dc-about-page__featured-pillar p {
    margin: 0;
    columns: 2 24rem;
    column-gap: 2rem;
    line-height: 1.72;
    color: var(--color-ash);
}
.dc-about-page__scope-groups {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 2vw, 1.25rem);
    align-items: start;
    margin: 2.2rem 0 1.7rem;
}
.dc-about-page__scope-group:last-child {
    grid-column: 1 / -1;
}
.dc-about-page__scope-group:last-child .dc-about-page__scope-items {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}
.dc-about-page__scope-group:last-child .dc-about-page__scope-item:nth-child(-n+3) {
    grid-column: span 2;
}
.dc-about-page__scope-group:last-child .dc-about-page__scope-item:nth-child(n+4) {
    grid-column: span 3;
}
.dc-about-page__scope-group {
    min-width: 0;
    padding: 1.2rem;
    border: 1px solid rgba(181, 212, 244, 0.82);
    border-radius: var(--radius-2xl);
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 16px 38px rgba(4, 44, 83, 0.08);
}
.dc-about-page__scope-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    margin-bottom: 0.85rem;
    border-radius: 0.6rem;
    background: rgba(56, 151, 231, 0.1);
    color: var(--color-gold-dark);
}
.dc-about-page__scope-group h3 {
    margin: 0 0 1rem;
    font-size: clamp(1.05rem, 1.5vw, 1.25rem);
    line-height: 1.2;
    color: var(--color-charcoal);
}
.dc-about-page__scope-items {
    display: grid;
    gap: 0.7rem;
}
.dc-about-page__scope-item {
    display: flex;
    flex-direction: column;
    padding: 0.9rem;
    border: 1px solid rgba(181, 212, 244, 0.62);
    border-radius: 1rem;
    background: rgba(234, 244, 251, 0.62);
    text-align: left;
    width: 100%;
    cursor: pointer;
    transition: border-color 0.18s, box-shadow 0.18s, transform 0.18s;
}
.dc-about-page__scope-item--static {
    cursor: default;
}
.dc-about-page__scope-item:not(.dc-about-page__scope-item--static):hover {
    border-color: rgba(56, 151, 231, 0.5);
    box-shadow: 0 6px 20px rgba(4, 44, 83, 0.1);
    transform: translateY(-2px);
}
.dc-about-page__scope-item-inner {
    flex: 1;
}
.dc-about-page__scope-item h4 {
    margin: 0 0 0.35rem;
    font-size: 0.92rem;
    line-height: 1.3;
    color: var(--color-charcoal);
}
.dc-about-page__scope-item p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.58;
    color: var(--color-ash);
}
.dc-about-page__scope-item-arrow {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.6rem;
    color: var(--color-gold-dark);
    opacity: 0.5;
    transition: opacity 0.18s, transform 0.18s;
}
.dc-about-page__scope-item:hover .dc-about-page__scope-item-arrow {
    opacity: 1;
    transform: translateX(3px);
}
.dc-scope-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}
.dc-scope-modal[hidden] { display: none; }
.dc-scope-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(4, 28, 54, 0.72);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    cursor: pointer;
}
.dc-scope-modal__panel {
    position: relative;
    z-index: 1;
    background: #fff;
    border: 1px solid rgba(181, 212, 244, 0.82);
    border-radius: var(--radius-2xl);
    box-shadow: 0 32px 64px rgba(4, 44, 83, 0.2);
    padding: 2rem 2.25rem 2.25rem;
    max-width: 38rem;
    width: 100%;
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
    animation: dc-modal-in 0.22s ease;
}
@keyframes dc-modal-in {
    from { opacity: 0; transform: translateY(14px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0)   scale(1); }
}
.dc-scope-modal__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: none;
    border-radius: 999px;
    background: rgba(181, 212, 244, 0.3);
    color: var(--color-charcoal);
    cursor: pointer;
    transition: background 0.15s;
}
.dc-scope-modal__close:hover { background: rgba(56, 151, 231, 0.2); }
.dc-scope-modal__title {
    margin: 0 2.5rem 1rem 0;
    font-size: clamp(1.15rem, 2.5vw, 1.4rem);
    line-height: 1.25;
    color: var(--color-charcoal);
}
.dc-scope-modal__body p {
    margin: 0 0 0.9rem;
    font-size: 0.93rem;
    line-height: 1.7;
    color: var(--color-ash);
}
.dc-scope-modal__body p:last-child { margin-bottom: 0; }
@media (max-width: 480px) {
    .dc-scope-modal__panel {
        padding: 1.5rem 1.25rem 1.75rem;
        border-radius: 1rem;
        max-height: calc(100dvh - 1rem);
    }
}

@media (max-width: 1024px) {
    .dc-about-page__story-grid,
    .dc-about-page__virtual-grid {
        grid-template-columns: 1fr;
    }
    .dc-about-page__vision-panel {
        position: static;
        max-width: 42rem;
        margin-inline: auto;
    }
    .dc-about-page__vision-photo {
        aspect-ratio: 16 / 10;
    }
    .dc-about-page__pillars {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .dc-about-page__scope-groups {
        grid-template-columns: 1fr;
    }
    .dc-about-page__scope-group:last-child {
        grid-column: 1;
    }
    .dc-about-page__scope-group:last-child .dc-about-page__scope-items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .dc-about-page__scope-group:last-child .dc-about-page__scope-item:nth-child(-n+3),
    .dc-about-page__scope-group:last-child .dc-about-page__scope-item:nth-child(n+4) {
        grid-column: span 1;
    }
    .dc-about-page__scope-group:last-child .dc-about-page__scope-item:last-child {
        grid-column: 1 / -1;
    }
}

@media (max-width: 680px) {
    .dc-about-story,
    .dc-about-virtual,
    .dc-about-scope {
        overflow: hidden;
    }
    .dc-about-story--lead {
        padding-top: clamp(4.75rem, 16vw, 6rem);
    }
    .dc-about-page__story-grid {
        gap: 1.1rem;
    }
    .dc-about-page__intro-copy {
        padding: 1.05rem;
    }
    .dc-about-page__intro-copy .dc-section-heading__title {
        max-width: 100%;
        font-size: clamp(1.9rem, 8.5vw, 2.45rem);
    }
    .dc-about-page__lead,
    .dc-about-page__intro-copy .dc-about-page__copy {
        font-size: 0.95rem;
        line-height: 1.68;
    }
    .dc-about-page__vision-block {
        gap: 0.75rem;
    }
    .dc-about-page__vision-block-num {
        width: 1.85rem;
        height: 1.85rem;
        font-size: 0.72rem;
    }
    .dc-about-page__vision-photo {
        aspect-ratio: 4 / 3.4;
        border-radius: 1rem;
    }
    .dc-about-page__vision-card {
        width: calc(100% - 1.4rem);
        margin-top: -2.4rem;
        border-radius: 1rem;
    }
    .dc-about-page__virtual-frame {
        min-height: 17rem;
        aspect-ratio: 4 / 4.3;
        border-radius: 1rem;
    }
    .dc-about-page__virtual-actions {
        justify-content: center;
    }
    .dc-about-page__virtual-actions .dc-btn {
        width: min(100%, 18rem);
        justify-content: center;
    }
    .dc-about-page__virtual-play {
        width: calc(100% - 2rem);
        justify-content: center;
        white-space: normal;
        text-align: center;
    }
    .dc-about-page__pillars {
        grid-template-columns: 1fr;
    }
    .dc-about-page__scope-groups {
        margin-top: 1.35rem;
    }
    .dc-about-page__scope-group {
        padding: 1rem;
        border-radius: 1rem;
    }
    .dc-about-page__scope-group:last-child .dc-about-page__scope-items {
        grid-template-columns: 1fr;
    }
    .dc-about-page__scope-group:last-child .dc-about-page__scope-item:last-child {
        grid-column: 1;
    }
    .dc-about-page__pillar {
        min-height: 0;
        padding: 1rem;
    }
    .dc-about-page__featured-pillar {
        border-radius: 1rem;
        padding: 1.05rem;
    }
    .dc-about-page__featured-pillar p {
        columns: auto;
        font-size: 0.94rem;
        line-height: 1.68;
    }
}
