/*
Theme Name: Clinica Aurea
Theme URI: https://clinicaaurreatorino.com
Author: Minnesota Consulting
Author URI: https://minnesota-consulting.com
Description: Tema WordPress personalizzato per Clinica Aurea — design premium, layout responsive e interfaccia di lusso.
Version: 2.3.3
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: elite-clinic
Tags: one-column, custom-menu, featured-images, translation-ready, custom-logo
*/

/* ==========================================================================
   CSS CUSTOM PROPERTIES
   ========================================================================== */

:root {
    --ec-primary: #212952;
    --ec-primary-rgb: 33, 41, 82;
    --ec-accent-gold: #b59c58;
    --ec-accent-gold-rgb: 181, 156, 88;
    --ec-bg-light: #f5f7f8;
    --ec-bg-dark: #0f1923;
    --ec-white: #ffffff;
    --ec-slate-50: #f8fafc;
    --ec-slate-100: #f1f5f9;
    --ec-slate-200: #e2e8f0;
    --ec-slate-300: #cbd5e1;
    --ec-slate-400: #94a3b8;
    --ec-slate-500: #64748b;
    --ec-slate-600: #475569;
    --ec-slate-900: #0f172a;
    --ec-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --ec-transition: 0.3s ease;
    --ec-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --ec-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
    --ec-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
    --ec-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    --ec-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

/* ==========================================================================
   RESET & BASE
   ========================================================================== */

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--ec-font-sans);
    font-size: 16px;
    line-height: 1.5;
    color: var(--ec-slate-900);
    background-color: var(--ec-bg-light);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
}

button {
    cursor: pointer;
    font-family: inherit;
    border: none;
    background: none;
}

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

.ec-container {
    width: 100%;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

@media (min-width: 640px) {
    .ec-container {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

@media (min-width: 1024px) {
    .ec-container {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

.ec-section {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
}

@media (min-width: 768px) {
    .ec-section {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }
}

/* Fix admin bar gap on mobile */
body.admin-bar .ec-header {
    top: var(--wp-admin--admin-bar--height, 0px);
}

.ec-bg-white {
    background-color: var(--ec-white);
}

/* ==========================================================================
   HEADER / NAVIGATION
   ========================================================================== */

.ec-header {
    position: sticky;
    top: 0;
    z-index: 50;
    width: 100%;
    background: #ffffff;
    border-bottom: 1px solid rgba(var(--ec-primary-rgb), 0.1);
}

.ec-header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 3.5rem;
}

.ec-header__logo {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
    line-height: 0;
}

/* Custom logo uploaded via WP Customizer */
.ec-header__logo .ec-custom-logo {
    max-height: 2.25rem;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

/* Responsive: shrink logo on small screens */
@media (max-width: 480px) {
    .ec-header__logo .ec-custom-logo {
        max-height: 1.75rem;
    }
}

/* Fallback SVG icon (when no custom logo) */
.ec-header__logo-icon {
    width: 1.75rem;
    height: 1.75rem;
    color: var(--ec-primary);
    flex-shrink: 0;
}

.ec-header__logo-text {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -0.025em;
    color: var(--ec-primary);
    text-transform: uppercase;
}

.ec-header__logo-text span {
    color: var(--ec-accent-gold);
}

/* Desktop Navigation */
.ec-nav {
    display: none;
    gap: 2.5rem;
}

@media (min-width: 768px) {
    .ec-nav {
        display: flex;
    }
}

.ec-nav a {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--ec-slate-600);
    transition: color var(--ec-transition);
}

.ec-nav a:hover,
.ec-nav a.current-menu-item > a,
.ec-nav .current_page_item > a {
    color: var(--ec-primary);
}

/* Header CTA */
.ec-header__cta {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.ec-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.625rem 1.5rem;
    background: var(--ec-primary);
    color: var(--ec-white);
    font-size: 0.875rem;
    font-weight: 700;
    border-radius: 0.5rem;
    transition: all var(--ec-transition);
}

.ec-btn-primary:hover {
    box-shadow: var(--ec-shadow-lg);
    transform: scale(1.02);
}

/* Mobile Menu Button */
.ec-mobile-menu-btn {
    display: block;
    color: var(--ec-primary);
    padding: 0.5rem;
}

@media (min-width: 768px) {
    .ec-mobile-menu-btn {
        display: none;
    }
}

.ec-header__cta .ec-btn-primary {
    display: none;
}

@media (min-width: 640px) {
    .ec-header__cta .ec-btn-primary {
        display: inline-flex;
    }
}

/* Mobile Menu Overlay */
.ec-mobile-menu {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 100;
    background: rgba(0, 0, 0, 0.5);
}

.ec-mobile-menu.is-open {
    display: block;
}

.ec-mobile-menu__panel {
    position: absolute;
    top: 0;
    right: 0;
    width: 80%;
    max-width: 320px;
    height: 100%;
    background: var(--ec-white);
    padding: 2rem;
    overflow-y: auto;
    box-shadow: var(--ec-shadow-2xl);
    transform: translateX(100%);
    transition: transform 0.3s ease;
}

.ec-mobile-menu.is-open .ec-mobile-menu__panel {
    transform: translateX(0);
}

.ec-mobile-menu__close {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 2rem;
}

.ec-mobile-menu__close button {
    color: var(--ec-slate-500);
    padding: 0.5rem;
}

.ec-mobile-menu__nav {
    list-style: none;
}

.ec-mobile-menu__nav li {
    border-bottom: 1px solid var(--ec-slate-100);
}

.ec-mobile-menu__nav a {
    display: block;
    padding: 1rem 0;
    font-size: 1rem;
    font-weight: 500;
    color: var(--ec-slate-600);
    transition: color var(--ec-transition);
}

.ec-mobile-menu__nav a:hover {
    color: var(--ec-primary);
}

.ec-mobile-menu__cta {
    margin-top: 2rem;
}

.ec-mobile-menu__cta .ec-btn-primary {
    width: 100%;
    padding: 1rem;
}

/* ==========================================================================
   HERO SECTION
   ========================================================================== */

.ec-hero {
    position: relative;
    height: 85vh;
    min-height: 600px;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.ec-hero__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.ec-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(var(--ec-primary-rgb), 0.8), rgba(var(--ec-primary-rgb), 0.2));
    z-index: 1;
}

.ec-hero__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ec-hero__content {
    position: relative;
    z-index: 2;
    max-width: 42rem;
}

.ec-hero__badge {
    display: inline-block;
    padding: 0.375rem 1rem;
    margin-bottom: 1.5rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ec-accent-gold);
    background: rgba(var(--ec-accent-gold-rgb), 0.1);
    border: 1px solid rgba(var(--ec-accent-gold-rgb), 0.2);
    border-radius: 9999px;
}

.ec-hero__title {
    font-size: 3rem;
    font-weight: 800;
    color: var(--ec-white);
    line-height: 1.1;
    margin-bottom: 2rem;
}

@media (min-width: 768px) {
    .ec-hero__title {
        font-size: 4.5rem;
    }
}

.ec-hero__title span {
    color: var(--ec-accent-gold);
}

.ec-hero__description {
    font-size: 1.125rem;
    color: var(--ec-slate-200);
    margin-bottom: 2.5rem;
    font-weight: 300;
    line-height: 1.75;
}

@media (min-width: 768px) {
    .ec-hero__description {
        font-size: 1.25rem;
    }
}

.ec-hero__actions {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 640px) {
    .ec-hero__actions {
        flex-direction: row;
    }
}

.ec-btn-gold {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1rem 2rem;
    background: var(--ec-accent-gold);
    color: var(--ec-primary);
    font-weight: 700;
    border-radius: 0.5rem;
    transition: all var(--ec-transition);
}

.ec-btn-gold:hover {
    background: rgba(var(--ec-accent-gold-rgb), 0.9);
}

.ec-btn-glass {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 2rem;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: var(--ec-white);
    font-weight: 700;
    border-radius: 0.5rem;
    transition: all var(--ec-transition);
}

.ec-btn-glass:hover {
    background: rgba(255, 255, 255, 0.2);
}

/* ==========================================================================
   ABOUT / MISSION SECTION
   ========================================================================== */

.ec-about {
    background: var(--ec-white);
}

.ec-about__grid {
    display: grid;
    gap: 4rem;
    align-items: center;
}

@media (min-width: 1024px) {
    .ec-about__grid {
        grid-template-columns: 1fr 1fr;
    }
}

.ec-about__image-wrapper {
    position: relative;
}

.ec-about__image {
    aspect-ratio: 4 / 5;
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: var(--ec-shadow-2xl);
}

.ec-about__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ec-about__badge {
    position: absolute;
    bottom: -2rem;
    right: -2rem;
    width: 12rem;
    height: 12rem;
    background: var(--ec-accent-gold);
    border-radius: 0.5rem;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    box-shadow: var(--ec-shadow-xl);
}

@media (min-width: 1024px) {
    .ec-about__badge {
        display: flex;
    }
}

.ec-about__badge-inner {
    text-align: center;
    color: var(--ec-primary);
}

.ec-about__badge-number {
    display: block;
    font-size: 2.25rem;
    font-weight: 900;
    margin-bottom: 0.25rem;
}

.ec-about__badge-text {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.ec-about__content {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.ec-section-eyebrow {
    font-size: 0.875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--ec-primary);
}

.ec-section-title {
    font-size: 2.25rem;
    font-weight: 800;
    color: var(--ec-slate-900);
    line-height: 1.2;
}

@media (min-width: 768px) {
    .ec-section-title {
        font-size: 3rem;
    }
}

.ec-about__text {
    font-size: 1.125rem;
    color: var(--ec-slate-600);
    line-height: 1.75;
}

.ec-about__features {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 768px) {
    .ec-about__features {
        grid-template-columns: 1fr 1fr;
    }
}

.ec-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.ec-feature-item__icon {
    padding: 0.5rem;
    background: rgba(var(--ec-primary-rgb), 0.05);
    border-radius: 0.5rem;
    color: var(--ec-primary);
    flex-shrink: 0;
}

.ec-feature-item__icon svg {
    width: 1.5rem;
    height: 1.5rem;
}

.ec-feature-item__title {
    font-weight: 700;
    color: var(--ec-slate-900);
    margin-bottom: 0.25rem;
}

.ec-feature-item__desc {
    font-size: 0.875rem;
    color: var(--ec-slate-500);
}

.ec-link-arrow {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--ec-primary);
    font-weight: 700;
    padding-top: 1rem;
}

.ec-link-arrow svg {
    width: 1.25rem;
    height: 1.25rem;
    transition: transform var(--ec-transition);
}

.ec-link-arrow:hover svg {
    transform: translateX(0.25rem);
}

/* ==========================================================================
   SERVICES SECTION
   ========================================================================== */

.ec-services {
    background: var(--ec-bg-light);
}

.ec-services__header {
    text-align: center;
    max-width: 48rem;
    margin: 0 auto 2rem;
}

@media (min-width: 768px) {
    .ec-services__header {
        margin-bottom: 4rem;
    }
}

.ec-services__grid {
    display: grid;
    gap: 2rem;
}

@media (min-width: 768px) {
    .ec-services__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .ec-services__grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.ec-service-card {
    background: var(--ec-white);
    padding: 2rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(var(--ec-primary-rgb), 0.05);
    box-shadow: var(--ec-shadow-sm);
    transition: all var(--ec-transition);
}

.ec-service-card:hover {
    border-color: var(--ec-accent-gold);
}

.ec-service-card__icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.5rem;
    background: rgba(var(--ec-primary-rgb), 0.05);
    color: var(--ec-primary);
    transition: all var(--ec-transition);
}

.ec-service-card:hover .ec-service-card__icon {
    background: var(--ec-accent-gold);
    color: var(--ec-white);
}

.ec-service-card__icon svg {
    width: 1.5rem;
    height: 1.5rem;
}

.ec-service-card__title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--ec-slate-900);
    margin-bottom: 1rem;
}

.ec-service-card__desc {
    font-size: 0.875rem;
    color: var(--ec-slate-500);
    line-height: 1.75;
    margin-bottom: 1.5rem;
}

.ec-service-card__link {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ec-primary);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.ec-service-card__link svg {
    width: 1rem;
    height: 1rem;
}

/* ==========================================================================
   SPECIALISTS SECTION
   ========================================================================== */

.ec-specialists {
    background: var(--ec-white);
}

.ec-specialists__header {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    margin-bottom: 4rem;
}

@media (min-width: 768px) {
    .ec-specialists__header {
        flex-direction: row;
        align-items: flex-end;
        justify-content: space-between;
    }
}

.ec-specialists__header-text {
    max-width: 36rem;
}

.ec-btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.5rem;
    border: 2px solid rgba(var(--ec-primary-rgb), 0.1);
    color: var(--ec-primary);
    font-weight: 700;
    border-radius: 0.5rem;
    transition: all var(--ec-transition);
    white-space: nowrap;
}

.ec-btn-outline:hover {
    border-color: var(--ec-accent-gold);
}

.ec-specialists__grid {
    display: grid;
    gap: 2.5rem;
}

@media (min-width: 768px) {
    .ec-specialists__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.ec-doctor-card {
    position: relative;
}

.ec-doctor-card__image {
    position: relative;
    overflow: hidden;
    border-radius: 0.75rem;
    margin-bottom: 1.5rem;
    background: var(--ec-slate-100);
    aspect-ratio: 3 / 4;
}

.ec-doctor-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.ec-doctor-card:hover .ec-doctor-card__image img {
    transform: scale(1.05);
}

.ec-doctor-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(var(--ec-primary-rgb), 0.8), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
    display: flex;
    align-items: flex-end;
    padding: 2rem;
}

.ec-doctor-card:hover .ec-doctor-card__overlay {
    opacity: 1;
}

.ec-doctor-card__overlay-btn {
    width: 100%;
    padding: 0.75rem;
    background: var(--ec-white);
    color: var(--ec-primary);
    font-weight: 700;
    border-radius: 0.375rem;
    box-shadow: var(--ec-shadow-lg);
    text-align: center;
}

.ec-doctor-card__name {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--ec-slate-900);
}

.ec-doctor-card__role {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--ec-accent-gold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.5rem;
}

.ec-doctor-card__bio {
    font-size: 0.875rem;
    color: var(--ec-slate-500);
}

/* ==========================================================================
   FACILITIES GALLERY
   ========================================================================== */

.ec-facilities {
    background: var(--ec-bg-light);
    overflow: hidden;
}

.ec-facilities__header {
    text-align: center;
    margin-bottom: 4rem;
}

.ec-facilities__grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-auto-rows: 280px;
    gap: 1.5rem;
}

@media (min-width: 768px) {
    .ec-facilities__grid {
        grid-template-columns: repeat(12, 1fr);
        grid-auto-rows: 280px;
    }

    /* Row 1: large (8) + small (4) */
    .ec-facilities__item:nth-child(1) { grid-column: 1 / 9;  grid-row: 1; }
    .ec-facilities__item:nth-child(2) { grid-column: 9 / 13; grid-row: 1; }
    /* Row 2: small (4) + large (8) — ALTERNATED */
    .ec-facilities__item:nth-child(3) { grid-column: 1 / 5;  grid-row: 2; }
    .ec-facilities__item:nth-child(4) { grid-column: 5 / 13; grid-row: 2; }
    /* Row 3: large (8) + small (4) */
    .ec-facilities__item:nth-child(5) { grid-column: 1 / 9;  grid-row: 3; }
    .ec-facilities__item:nth-child(6) { grid-column: 9 / 13; grid-row: 3; }
}

.ec-facilities__item {
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: var(--ec-shadow-lg);
    position: relative;
}

.ec-facilities__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.7s ease;
}

.ec-facilities__item:hover img {
    transform: scale(1.05);
}

/* ==========================================================================
   CTA SECTION
   ========================================================================== */

.ec-cta {
    background: var(--ec-primary);
    color: var(--ec-white);
    overflow: hidden;
    position: relative;
}

.ec-cta__bg {
    position: absolute;
    inset: 0;
    opacity: 0.1;
}

.ec-cta__bg svg {
    width: 100%;
    height: 100%;
}

.ec-cta__inner {
    max-width: 56rem;
    margin: 0 auto;
    text-align: center;
    position: relative;
    z-index: 1;
}

.ec-cta__title {
    font-size: 2.25rem;
    font-weight: 900;
    line-height: 1.2;
    margin-bottom: 2rem;
}

@media (min-width: 768px) {
    .ec-cta__title {
        font-size: 3rem;
    }
}

.ec-cta__desc {
    font-size: 1.25rem;
    color: var(--ec-slate-300);
    font-weight: 300;
    margin-bottom: 3rem;
}

.ec-cta__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
}

@media (min-width: 640px) {
    .ec-cta__actions {
        flex-direction: row;
    }
}

.ec-btn-gold--lg {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem 2.5rem;
    background: var(--ec-accent-gold);
    color: var(--ec-primary);
    font-weight: 900;
    border-radius: 0.5rem;
    box-shadow: var(--ec-shadow-xl);
    transition: transform var(--ec-transition);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    width: 100%;
}

@media (min-width: 640px) {
    .ec-btn-gold--lg {
        width: auto;
    }
}

.ec-btn-gold--lg:hover {
    transform: scale(1.05);
}

.ec-cta__phone {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--ec-white);
    font-weight: 700;
    font-size: 1.125rem;
    transition: color var(--ec-transition);
}

.ec-cta__phone:hover {
    color: var(--ec-accent-gold);
}

.ec-cta__phone-icon {
    padding: 0.5rem;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ec-cta__phone-icon svg {
    width: 1.5rem;
    height: 1.5rem;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

.ec-footer {
    background: var(--ec-slate-900);
    color: var(--ec-slate-400);
    padding-top: 4rem;
    padding-bottom: 4rem;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.ec-footer__grid {
    display: grid;
    gap: 3rem;
    margin-bottom: 4rem;
}

@media (min-width: 768px) {
    .ec-footer__grid {
        grid-template-columns: 1.5fr 1fr 1fr 1fr;
    }
}

.ec-footer__brand {
    margin-bottom: 1.5rem;
}

.ec-footer__brand-logo {
    max-height: 3rem;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

.ec-footer__brand-name {
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.025em;
    color: var(--ec-white);
    text-transform: uppercase;
    margin-bottom: 1.5rem;
}

.ec-footer__brand-name span {
    color: var(--ec-accent-gold);
}

.ec-footer__brand-desc {
    font-size: 0.875rem;
    line-height: 1.75;
    margin-bottom: 1.5rem;
}

.ec-footer__socials {
    display: flex;
    gap: 1rem;
}

.ec-footer__social-link {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--ec-transition);
}

.ec-footer__social-link:hover {
    background: var(--ec-accent-gold);
    color: var(--ec-primary);
}

.ec-footer__social-link svg {
    width: 1.25rem;
    height: 1.25rem;
}

.ec-footer__heading {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--ec-white);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 1.5rem;
}

.ec-footer__links {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.ec-footer__links a {
    font-size: 0.875rem;
    transition: color var(--ec-transition);
}

.ec-footer__links a:hover {
    color: var(--ec-accent-gold);
}

.ec-footer__contact-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.875rem;
}

.ec-footer__contact-item svg {
    width: 1.25rem;
    height: 1.25rem;
    color: var(--ec-accent-gold);
    flex-shrink: 0;
    margin-top: 0.125rem;
}

.ec-footer__bottom {
    padding-top: 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: center;
    font-size: 0.75rem;
}

@media (min-width: 768px) {
    .ec-footer__bottom {
        flex-direction: row;
        justify-content: space-between;
    }
}

.ec-footer__bottom-links {
    display: flex;
    gap: 2rem;
}

.ec-footer__bottom-links a,
.ec-footer__bottom-links li a {
    transition: color var(--ec-transition);
}

.ec-footer__bottom-links a:hover,
.ec-footer__bottom-links li a:hover {
    color: var(--ec-white);
}

/* wp_nav_menu legal links (inline) */
.ec-footer__bottom-links li {
    display: inline;
    list-style: none;
}

.ec-footer__bottom-links li + li {
    margin-left: 2rem;
}

/* ==========================================================================
   CHI SIAMO PAGE
   ========================================================================== */

/* ── Hero ── */
.ec-chi-hero {
    position: relative;
    height: 600px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.ec-chi-hero__bg {
    position: absolute;
    inset: 0;
}

.ec-chi-hero__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ec-chi-hero__overlay {
    position: absolute;
    inset: 0;
    background: rgba(var(--ec-primary-rgb), 0.6);
}

.ec-chi-hero__content {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 56rem;
    margin: 0 auto;
}

.ec-chi-hero__eyebrow {
    display: block;
    color: var(--ec-accent-gold);
    font-weight: 700;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    font-size: 0.8125rem;
    margin-bottom: 1rem;
}

.ec-chi-hero__title {
    color: var(--ec-white);
    font-size: 3rem;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin-bottom: 1.5rem;
}

@media (min-width: 768px) {
    .ec-chi-hero__title {
        font-size: 4.5rem;
    }
}

.ec-chi-hero__desc {
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.125rem;
    font-weight: 300;
    line-height: 1.75;
    max-width: 42rem;
    margin: 0 auto 2.5rem;
}

@media (min-width: 768px) {
    .ec-chi-hero__desc {
        font-size: 1.25rem;
    }
}

/* ── Story Section ── */
.ec-chi-story {
    display: grid;
    gap: 4rem;
    align-items: center;
}

@media (min-width: 1024px) {
    .ec-chi-story {
        grid-template-columns: 1fr 1fr;
    }
}

.ec-chi-story__text {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.ec-chi-story__prose {
    font-size: 1.125rem;
    color: var(--ec-slate-500);
    line-height: 1.8;
}

.ec-chi-story__prose p {
    margin-bottom: 1.5rem;
}

.ec-chi-story__prose p:last-child {
    margin-bottom: 0;
}

.ec-chi-story__stats {
    display: flex;
    gap: 3rem;
    margin-top: 0.5rem;
}

.ec-chi-stat {
    padding-left: 1.5rem;
    border-left: 4px solid var(--ec-accent-gold);
}

.ec-chi-stat__number {
    display: block;
    font-size: 2.25rem;
    font-weight: 700;
    color: var(--ec-primary);
}

.ec-chi-stat__label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 600;
    color: var(--ec-slate-400);
}

.ec-chi-story__image-wrapper {
    position: relative;
}

.ec-chi-story__image {
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: var(--ec-shadow-2xl);
}

.ec-chi-story__image img {
    width: 100%;
    height: 500px;
    object-fit: cover;
}

.ec-chi-story__image-badge {
    display: none;
    position: absolute;
    bottom: -1.5rem;
    left: -1.5rem;
    background: var(--ec-accent-gold);
    padding: 2rem;
    border-radius: 0.75rem;
    box-shadow: var(--ec-shadow-lg);
    color: var(--ec-primary);
}

@media (min-width: 768px) {
    .ec-chi-story__image-badge {
        display: block;
    }
}

.ec-chi-story__image-badge i,
.ec-chi-story__image-badge svg {
    width: 2.5rem;
    height: 2.5rem;
}

/* ── Values Section ── */
.ec-chi-values {
    background: var(--ec-bg-light);
}

.ec-chi-values__header {
    text-align: center;
    margin-bottom: 4rem;
}

.ec-chi-values__grid {
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr;
}

@media (min-width: 768px) {
    .ec-chi-values__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.ec-chi-value-card {
    background: var(--ec-white);
    padding: 2.5rem;
    border-radius: 1rem;
    border: 1px solid rgba(var(--ec-primary-rgb), 0.05);
    box-shadow: var(--ec-shadow-sm);
    transition: all var(--ec-transition);
}

.ec-chi-value-card:hover {
    border-color: rgba(var(--ec-accent-gold-rgb), 0.3);
}

.ec-chi-value-card__icon {
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--ec-primary-rgb), 0.05);
    color: var(--ec-accent-gold);
    margin-bottom: 1.5rem;
    transition: background var(--ec-transition);
}

.ec-chi-value-card:hover .ec-chi-value-card__icon {
    background: rgba(var(--ec-accent-gold-rgb), 0.1);
}

.ec-chi-value-card__icon i,
.ec-chi-value-card__icon svg {
    width: 2.25rem;
    height: 2.25rem;
}

.ec-chi-value-card__title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--ec-primary);
    margin-bottom: 1rem;
}

.ec-chi-value-card__desc {
    color: rgba(var(--ec-primary-rgb), 0.6);
    line-height: 1.75;
}

/* ── Commitment Section ── */
.ec-chi-commitment {
    display: flex;
    flex-direction: column;
    gap: 4rem;
    align-items: center;
}

@media (min-width: 1024px) {
    .ec-chi-commitment {
        flex-direction: row;
        gap: 5rem;
    }
}

.ec-chi-commitment__images {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    width: 100%;
}

@media (min-width: 1024px) {
    .ec-chi-commitment__images {
        width: 50%;
        flex-shrink: 0;
    }
}

.ec-chi-commitment__img {
    border-radius: 1rem;
    height: 20rem;
    width: 100%;
    object-fit: cover;
    box-shadow: var(--ec-shadow-lg);
}

.ec-chi-commitment__img--right {
    margin-top: 3rem;
}

.ec-chi-commitment__content {
    width: 100%;
}

@media (min-width: 1024px) {
    .ec-chi-commitment__content {
        width: 50%;
    }
}

.ec-chi-commitment__list {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    margin-top: 2rem;
}

.ec-chi-commitment__item {
    display: flex;
    gap: 1.25rem;
}

.ec-chi-commitment__item-icon {
    flex-shrink: 0;
    color: var(--ec-accent-gold);
}

.ec-chi-commitment__item-icon i,
.ec-chi-commitment__item-icon svg {
    width: 1.75rem;
    height: 1.75rem;
}

.ec-chi-commitment__item-title {
    font-weight: 700;
    color: var(--ec-primary);
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
}

.ec-chi-commitment__item-desc {
    color: rgba(var(--ec-primary-rgb), 0.6);
    line-height: 1.75;
}

/* ── CTA Circles (Chi Siamo variant) ── */
.ec-cta__circles {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.ec-cta__circle {
    position: absolute;
    border-radius: 50%;
    background: rgba(var(--ec-accent-gold-rgb), 0.05);
}

.ec-cta__circle--top {
    width: 24rem;
    height: 24rem;
    top: 0;
    right: 0;
    transform: translate(50%, -50%);
}

.ec-cta__circle--bottom {
    width: 16rem;
    height: 16rem;
    bottom: 0;
    left: 0;
    transform: translate(-50%, 50%);
}

/* ==========================================================================
   PAGE HERO (inner pages)
   ========================================================================== */

.ec-page-hero {
    position: relative;
    background: var(--ec-primary);
    padding: 4rem 0;
    overflow: hidden;
    text-align: center;
}

.ec-page-hero__pattern {
    position: absolute;
    inset: 0;
    opacity: 0.08;
    background-image: radial-gradient(circle at 2px 2px, var(--ec-accent-gold) 1px, transparent 0);
    background-size: 40px 40px;
}

.ec-page-hero__inner {
    position: relative;
    z-index: 1;
}

.ec-page-hero__title {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--ec-white);
    margin: 0;
}

@media (min-width: 768px) {
    .ec-page-hero__title {
        font-size: 3rem;
    }
}

.ec-page-hero__desc {
    color: var(--ec-slate-300);
    max-width: 42rem;
    margin: 1rem auto 0;
    font-size: 1.125rem;
    line-height: 1.75;
    font-weight: 300;
}

/* ==========================================================================
   PROSE — Typography for editor content
   ========================================================================== */

.ec-prose {
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
    font-size: 1rem;
    line-height: 1.8;
    color: var(--ec-slate-600);
}

/* Headings */
.ec-prose h1,
.ec-prose h2,
.ec-prose h3,
.ec-prose h4,
.ec-prose h5,
.ec-prose h6 {
    color: var(--ec-primary);
    font-weight: 700;
    line-height: 1.3;
    margin-top: 2.5rem;
    margin-bottom: 1rem;
}

.ec-prose h1:first-child,
.ec-prose h2:first-child,
.ec-prose h3:first-child {
    margin-top: 0;
}

.ec-prose h1 { font-size: 2.25rem; }
.ec-prose h2 {
    font-size: 1.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid rgba(var(--ec-accent-gold-rgb), 0.25);
}
.ec-prose h3 { font-size: 1.375rem; }
.ec-prose h4 { font-size: 1.125rem; }
.ec-prose h5 { font-size: 1rem; }
.ec-prose h6 {
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ec-accent-gold);
}

/* Paragraphs */
.ec-prose p {
    margin-bottom: 1.5rem;
}

.ec-prose p:last-child {
    margin-bottom: 0;
}

/* Strong / Bold */
.ec-prose strong,
.ec-prose b {
    color: var(--ec-slate-900);
    font-weight: 600;
}

/* Italic */
.ec-prose em,
.ec-prose i {
    font-style: italic;
}

/* Links */
.ec-prose a {
    color: var(--ec-accent-gold);
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color var(--ec-transition);
}

.ec-prose a:hover {
    color: var(--ec-primary);
}

/* Lists */
.ec-prose ul,
.ec-prose ol {
    margin-bottom: 1.5rem;
    padding-left: 1.5rem;
}

.ec-prose ul {
    list-style: none;
}

.ec-prose ul li {
    position: relative;
    padding-left: 1.25rem;
    margin-bottom: 0.5rem;
}

.ec-prose ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.65em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ec-accent-gold);
}

.ec-prose ol {
    list-style: decimal;
}

.ec-prose ol li {
    margin-bottom: 0.5rem;
    padding-left: 0.25rem;
}

.ec-prose ol li::marker {
    color: var(--ec-accent-gold);
    font-weight: 600;
}

/* Blockquote */
.ec-prose blockquote {
    border-left: 4px solid var(--ec-accent-gold);
    padding: 1.25rem 1.5rem;
    margin: 2rem 0;
    background: rgba(var(--ec-accent-gold-rgb), 0.05);
    border-radius: 0 0.5rem 0.5rem 0;
    color: var(--ec-slate-700);
    font-size: 1.0625rem;
    font-style: italic;
}

.ec-prose blockquote p:last-child {
    margin-bottom: 0;
}

/* Horizontal Rule */
.ec-prose hr {
    border: none;
    height: 2px;
    background: linear-gradient(to right, var(--ec-accent-gold), transparent);
    margin: 3rem 0;
}

/* Images */
.ec-prose img {
    border-radius: 0.75rem;
    box-shadow: var(--ec-shadow-lg);
    margin: 2rem 0;
}

.ec-prose figure {
    margin: 2rem 0;
}

.ec-prose figcaption {
    text-align: center;
    font-size: 0.875rem;
    color: var(--ec-slate-400);
    margin-top: 0.75rem;
}

/* Tables */
.ec-prose table {
    width: 100%;
    border-collapse: collapse;
    margin: 2rem 0;
    font-size: 0.9375rem;
}

.ec-prose th {
    background: var(--ec-primary);
    color: var(--ec-white);
    font-weight: 600;
    text-align: left;
    padding: 0.75rem 1rem;
}

.ec-prose th:first-child {
    border-radius: 0.5rem 0 0 0;
}

.ec-prose th:last-child {
    border-radius: 0 0.5rem 0 0;
}

.ec-prose td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--ec-slate-100);
}

.ec-prose tr:hover td {
    background: rgba(var(--ec-accent-gold-rgb), 0.03);
}

/* Code */
.ec-prose code {
    background: var(--ec-slate-100);
    color: var(--ec-primary);
    padding: 0.15em 0.4em;
    border-radius: 0.25rem;
    font-size: 0.9em;
}

.ec-prose pre {
    background: var(--ec-slate-900);
    color: var(--ec-slate-200);
    padding: 1.5rem;
    border-radius: 0.75rem;
    overflow-x: auto;
    margin: 2rem 0;
    font-size: 0.875rem;
    line-height: 1.7;
}

.ec-prose pre code {
    background: none;
    color: inherit;
    padding: 0;
}

/* WordPress specific blocks */
.ec-prose .wp-block-separator {
    border: none;
    height: 2px;
    background: linear-gradient(to right, var(--ec-accent-gold), transparent);
    margin: 3rem 0;
}

.ec-prose .wp-block-image {
    margin: 2rem 0;
}

.ec-prose .wp-block-image img {
    border-radius: 0.75rem;
}

.ec-prose .wp-block-columns {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    margin: 2rem 0;
}

.ec-prose .wp-block-column {
    flex: 1;
    min-width: 250px;
}

/* ==========================================================================
   ARCHIVE: SPECIALISTS PAGE
   ========================================================================== */

/* ── Hero ── */
.ec-archive-hero {
    position: relative;
    background: var(--ec-primary);
    padding: 6rem 0;
    overflow: hidden;
    text-align: center;
}

.ec-archive-hero__pattern {
    position: absolute;
    inset: 0;
    opacity: 0.1;
    background-image: radial-gradient(circle at 2px 2px, var(--ec-accent-gold) 1px, transparent 0);
    background-size: 40px 40px;
}

.ec-archive-hero__inner {
    position: relative;
    z-index: 1;
}

.ec-archive-hero__eyebrow {
    display: block;
    color: var(--ec-accent-gold);
    text-transform: uppercase;
    letter-spacing: 0.3em;
    font-size: 0.75rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.ec-archive-hero__title {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--ec-white);
    margin-bottom: 1.5rem;
}

@media (min-width: 768px) {
    .ec-archive-hero__title {
        font-size: 3rem;
    }
}

.ec-archive-hero__desc {
    color: var(--ec-slate-300);
    max-width: 42rem;
    margin: 0 auto;
    font-size: 1.125rem;
    line-height: 1.75;
    font-weight: 300;
}

/* ── Filter Bar ── */
.ec-filter-bar {
    position: sticky;
    top: 3.5rem; /* matches header height */
    z-index: 40;
    background: var(--ec-white);
    border-bottom: 1px solid var(--ec-slate-200);
    box-shadow: var(--ec-shadow-sm);
}

body.admin-bar .ec-filter-bar {
    top: calc(3.5rem + 32px);
}

@media screen and (max-width: 782px) {
    body.admin-bar .ec-filter-bar {
        top: calc(3.5rem + 46px);
    }
}

.ec-filter-bar__inner {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem 0;
    align-items: center;
    justify-content: space-between;
}

@media (min-width: 768px) {
    .ec-filter-bar__inner {
        flex-direction: row;
    }
}

/* Search Input */
.ec-filter-bar__search {
    position: relative;
    width: 100%;
    max-width: 100%;
}

@media (min-width: 768px) {
    .ec-filter-bar__search {
        max-width: 28rem;
    }
}

.ec-filter-bar__search-icon {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--ec-slate-400);
    width: 1.25rem;
    height: 1.25rem;
    transition: color var(--ec-transition);
    pointer-events: none;
}

.ec-filter-bar__search-input {
    width: 100%;
    padding: 0.75rem 1rem 0.75rem 3rem;
    background: var(--ec-slate-50);
    border: 1px solid transparent;
    border-radius: 0.75rem;
    font-size: 0.875rem;
    font-family: var(--ec-font-sans);
    color: var(--ec-slate-900);
    outline: none;
    transition: all var(--ec-transition);
}

.ec-filter-bar__search-input::placeholder {
    color: var(--ec-slate-400);
}

.ec-filter-bar__search-input:focus {
    border-color: var(--ec-accent-gold);
    background: var(--ec-white);
}

.ec-filter-bar__search-input:focus ~ .ec-filter-bar__search-icon {
    color: var(--ec-accent-gold);
}

/* Filter Chips */
.ec-filter-bar__chips {
    display: flex;
    gap: 0.5rem;
    overflow-x: auto;
    padding-bottom: 0.5rem;
    width: 100%;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.ec-filter-bar__chips::-webkit-scrollbar {
    display: none;
}

@media (min-width: 768px) {
    .ec-filter-bar__chips {
        width: auto;
        padding-bottom: 0;
    }
}

.ec-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 1.25rem;
    border-radius: 9999px;
    font-size: 0.875rem;
    font-weight: 500;
    white-space: nowrap;
    border: none;
    cursor: pointer;
    font-family: var(--ec-font-sans);
    transition: all var(--ec-transition);
    background: var(--ec-slate-100);
    color: var(--ec-slate-600);
}

.ec-chip:hover {
    background: rgba(var(--ec-accent-gold-rgb), 0.1);
    color: var(--ec-accent-gold);
}

.ec-chip--active {
    background: var(--ec-primary);
    color: var(--ec-white);
}

.ec-chip--active:hover {
    background: var(--ec-primary);
    color: var(--ec-white);
}

/* ── Specialist Cards Grid ── */
.ec-spec-grid {
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .ec-spec-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .ec-spec-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 1280px) {
    .ec-spec-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* ── Specialist Card ── */
.ec-spec-card {
    display: flex;
    flex-direction: column;
    background: var(--ec-white);
    border-radius: 0.75rem;
    overflow: hidden;
    border: 1px solid var(--ec-slate-100);
    box-shadow: var(--ec-shadow-sm);
    transition: all var(--ec-transition);
}

.ec-spec-card:hover {
    box-shadow: var(--ec-shadow-xl);
}

.ec-spec-card__image {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
}

.ec-spec-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.ec-spec-card:hover .ec-spec-card__image img {
    transform: scale(1.05);
}

.ec-spec-card__image-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1rem;
    background: linear-gradient(to top, rgba(var(--ec-primary-rgb), 0.8), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.ec-spec-card:hover .ec-spec-card__image-overlay {
    opacity: 1;
}

.ec-spec-card__profile-btn {
    display: block;
    width: 100%;
    padding: 0.5rem;
    background: var(--ec-accent-gold);
    color: var(--ec-white);
    font-weight: 700;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    border-radius: 0.25rem;
    text-align: center;
    transition: background var(--ec-transition);
}

.ec-spec-card__profile-btn:hover {
    background: rgba(var(--ec-accent-gold-rgb), 0.9);
}

.ec-spec-card__body {
    padding: 1.5rem;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.ec-spec-card__specialty {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ec-accent-gold);
    margin-bottom: 0.25rem;
}

.ec-spec-card__name {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--ec-primary);
    margin-bottom: 0.5rem;
    transition: color var(--ec-transition);
}

.ec-spec-card:hover .ec-spec-card__name,
.ec-spec-card__name a:hover {
    color: var(--ec-accent-gold);
}

.ec-spec-card__name a {
    color: inherit;
}

.ec-spec-card__credentials {
    font-size: 0.875rem;
    color: var(--ec-slate-500);
    font-weight: 500;
}

.ec-spec-card__meta {
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid var(--ec-slate-100);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.ec-spec-card__experience {
    font-size: 0.75rem;
    color: var(--ec-slate-400);
}

.ec-spec-card__rating {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--ec-slate-900);
}

.ec-spec-card__rating svg {
    width: 0.75rem;
    height: 0.75rem;
}

/* ── Pagination ── */
.ec-spec-pagination {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    margin-top: 5rem;
}

.ec-spec-pagination__count {
    font-size: 0.875rem;
    color: var(--ec-slate-500);
}

.ec-btn-load-more {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 2rem;
    background: var(--ec-white);
    border: 2px solid var(--ec-accent-gold);
    color: var(--ec-accent-gold);
    font-weight: 700;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    border-radius: 0.75rem;
    cursor: pointer;
    font-family: var(--ec-font-sans);
    transition: all var(--ec-transition);
}

.ec-btn-load-more:hover {
    background: var(--ec-accent-gold);
    color: var(--ec-white);
}

.ec-btn-load-more svg {
    transition: transform var(--ec-transition);
}

.ec-btn-load-more:hover svg {
    transform: translateY(2px);
}

.ec-btn-load-more.is-loading {
    opacity: 0.6;
    pointer-events: none;
}

/* ── Empty State ── */
.ec-specialists-empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: 4rem 2rem;
    color: var(--ec-slate-500);
    font-size: 1.125rem;
}

/* ── Archive CTA ── */
.ec-archive-cta {
    background: var(--ec-slate-100);
    border-top: 1px solid var(--ec-slate-200);
    padding: 6rem 0;
}

.ec-archive-cta__inner {
    max-width: 56rem;
    margin: 0 auto;
    text-align: center;
}

.ec-archive-cta__title {
    font-size: 1.875rem;
    font-weight: 700;
    color: var(--ec-primary);
    margin-bottom: 1.5rem;
}

.ec-archive-cta__desc {
    font-size: 1.125rem;
    color: var(--ec-slate-600);
    line-height: 1.75;
    margin-bottom: 2.5rem;
}

.ec-archive-cta__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}

@media (min-width: 640px) {
    .ec-archive-cta__actions {
        flex-direction: row;
    }
}

/* ==========================================================================
   CATEGORY ARCHIVE: UNIVERSAL CARD GRID
   ========================================================================== */

.ec-cat-grid {
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .ec-cat-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .ec-cat-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ── Category Card ── */
.ec-cat-card {
    display: flex;
    flex-direction: column;
    background: var(--ec-white);
    border-radius: 0.75rem;
    overflow: hidden;
    border: 1px solid rgba(var(--ec-primary-rgb), 0.05);
    box-shadow: var(--ec-shadow-sm);
    transition: all var(--ec-transition);
}

.ec-cat-card:hover {
    border-color: var(--ec-accent-gold);
    box-shadow: var(--ec-shadow-xl);
}

.ec-cat-card__image {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.ec-cat-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.ec-cat-card:hover .ec-cat-card__image img {
    transform: scale(1.05);
}

.ec-cat-card__body {
    padding: 1.5rem;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.ec-cat-card__title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--ec-slate-900);
    margin-bottom: 0.75rem;
    line-height: 1.3;
}

.ec-cat-card__title a {
    color: inherit;
    transition: color var(--ec-transition);
}

.ec-cat-card:hover .ec-cat-card__title a {
    color: var(--ec-primary);
}

.ec-cat-card__excerpt {
    font-size: 0.875rem;
    color: var(--ec-slate-500);
    line-height: 1.7;
    margin-bottom: 1.5rem;
    flex-grow: 1;
}

.ec-cat-card__link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ec-primary);
    margin-top: auto;
}

.ec-cat-card__link svg {
    width: 1rem;
    height: 1rem;
    transition: transform var(--ec-transition);
}

.ec-cat-card:hover .ec-cat-card__link svg {
    transform: translateX(3px);
}

/* Pagination */
.ec-cat-pagination {
    margin-top: 4rem;
    display: flex;
    justify-content: center;
}

.ec-cat-pagination .nav-links {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.ec-cat-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    height: 2.5rem;
    padding: 0 0.75rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--ec-slate-600);
    background: var(--ec-bg-light);
    transition: all var(--ec-transition);
    text-decoration: none;
}

.ec-cat-pagination .page-numbers:hover {
    background: rgba(var(--ec-accent-gold-rgb), 0.1);
    color: var(--ec-accent-gold);
}

.ec-cat-pagination .page-numbers.current {
    background: var(--ec-primary);
    color: var(--ec-white);
}

/* ==========================================================================
   CATEGORY ARCHIVE: SERVIZI CARDS
   ========================================================================== */

.ec-services-grid {
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .ec-services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .ec-services-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ── Servizio Card ── */
.ec-servizio-card {
    display: flex;
    flex-direction: column;
    background: var(--ec-white);
    border-radius: 0.75rem;
    overflow: hidden;
    border: 1px solid rgba(var(--ec-primary-rgb), 0.05);
    box-shadow: var(--ec-shadow-sm);
    transition: all var(--ec-transition);
    text-align: center;
}

.ec-servizio-card:hover {
    border-color: var(--ec-accent-gold);
    box-shadow: var(--ec-shadow-xl);
}

.ec-servizio-card__icon-area {
    padding: 2.5rem 2rem 0;
    display: flex;
    justify-content: center;
}

.ec-servizio-card__icon-img {
    width: 4.5rem;
    height: 4.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ec-servizio-card__icon-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.ec-servizio-card__icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--ec-primary-rgb), 0.05);
    color: var(--ec-primary);
    transition: all var(--ec-transition);
}

.ec-servizio-card:hover .ec-servizio-card__icon {
    background: var(--ec-accent-gold);
    color: var(--ec-white);
}

.ec-servizio-card__icon svg,
.ec-servizio-card__icon i {
    width: 1.5rem;
    height: 1.5rem;
}

.ec-servizio-card__body {
    padding: 1.5rem 2rem 2rem;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.ec-servizio-card__tag {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ec-accent-gold);
    margin-bottom: 0.5rem;
}

.ec-servizio-card__title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--ec-slate-900);
    margin-bottom: 0.75rem;
    line-height: 1.3;
}

.ec-servizio-card__title a {
    color: inherit;
    transition: color var(--ec-transition);
}

.ec-servizio-card:hover .ec-servizio-card__title a {
    color: var(--ec-primary);
}

.ec-servizio-card__excerpt {
    font-size: 0.875rem;
    color: var(--ec-slate-500);
    line-height: 1.7;
    margin-bottom: 1.5rem;
    flex-grow: 1;
}

.ec-servizio-card__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ec-primary);
    margin-top: auto;
}

.ec-servizio-card__link svg {
    width: 1rem;
    height: 1rem;
    transition: transform var(--ec-transition);
}

.ec-servizio-card:hover .ec-servizio-card__link svg {
    transform: translateX(3px);
}

/* ==========================================================================
   SINGLE: SPECIALIST DETAIL
   ========================================================================== */

.ec-specialist-single {
    display: grid;
    gap: 3rem;
    max-width: 1060px;
    margin: 0 auto;
}

@media (min-width: 768px) {
    .ec-specialist-single {
        grid-template-columns: 280px 1fr;
    }
}

.ec-specialist-single__sidebar {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.ec-specialist-single__photo {
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: var(--ec-shadow-lg);
}

.ec-specialist-single__photo img {
    width: 100%;
    height: auto;
    display: block;
}

.ec-specialist-single__meta {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1.25rem;
    background: var(--ec-bg-light);
    border-radius: 0.75rem;
}

.ec-specialist-single__meta-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--ec-slate-600);
}

.ec-specialist-single__meta-item i,
.ec-specialist-single__meta-item svg {
    width: 1rem;
    height: 1rem;
    color: var(--ec-accent-gold);
}

.ec-specialist-single__content {
    max-width: none;
}

/* ==========================================================================
   SINGLE POST HERO (split: photo left + info right)
   ========================================================================== */

.ec-single-hero {
    position: relative;
    background: var(--ec-primary);
    overflow: hidden;
}

.ec-single-hero__bg {
    position: absolute;
    inset: 0;
    opacity: 0.08;
    background-image: radial-gradient(circle at 2px 2px, var(--ec-accent-gold) 1px, transparent 0);
    background-size: 40px 40px;
}

.ec-single-hero__split {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
}

@media (min-width: 768px) {
    .ec-single-hero__split {
        flex-direction: row;
        align-items: stretch;
    }
}

/* Portrait photo */
.ec-single-hero__portrait {
    width: 100%;
    max-width: 360px;
    flex-shrink: 0;
}

@media (min-width: 768px) {
    .ec-single-hero__portrait {
        width: 40%;
        max-width: 420px;
    }
}

.ec-single-hero__portrait img {
    width: 100%;
    height: 100%;
    min-height: 400px;
    object-fit: cover;
    display: block;
}

/* Details */
.ec-single-hero__details {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 3rem 1.5rem;
    text-align: center;
}

@media (min-width: 768px) {
    .ec-single-hero__details {
        padding: 3rem 3rem 3rem 4rem;
        text-align: left;
        flex: 1;
    }
}

.ec-single-hero__details--full {
    align-items: center;
    padding: 4rem 1.5rem;
}

@media (min-width: 768px) {
    .ec-single-hero__details--full {
        align-items: flex-start;
    }
}

.ec-single-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--ec-accent-gold);
    font-weight: 700;
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    margin-bottom: 1rem;
}

.ec-single-hero__eyebrow-line {
    display: inline-block;
    width: 2rem;
    height: 2px;
    background: var(--ec-accent-gold);
}

.ec-single-hero__title {
    font-size: 2.25rem;
    font-weight: 700;
    color: var(--ec-white);
    line-height: 1.15;
}

@media (min-width: 768px) {
    .ec-single-hero__title {
        font-size: 3rem;
    }
}

.ec-single-hero__subtitle {
    color: var(--ec-slate-300);
    font-size: 1.0625rem;
    font-weight: 300;
    font-style: italic;
    margin-top: 0.5rem;
}

.ec-single-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 2rem;
}

.ec-btn--icon {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.ec-btn--icon i,
.ec-btn--icon svg {
    width: 1rem;
    height: 1rem;
}

/* ==========================================================================
   SINGLE POST BODY (content + sidebar)
   ========================================================================== */

.ec-single-body {
    display: grid;
    gap: 3rem;
    max-width: 1100px;
    margin: 0 auto;
}

@media (min-width: 1024px) {
    .ec-single-body {
        grid-template-columns: 1fr;
    }
}

.ec-single-body__main .ec-prose {
    max-width: none;
}

/* ── Sidebar ── */
.ec-single-body__sidebar {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.ec-sidebar-card {
    background: var(--ec-primary);
    color: var(--ec-white);
    border-radius: 0.75rem;
    padding: 1.75rem;
}

.ec-sidebar-card__title {
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 1.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.ec-sidebar-card__item {
    display: flex;
    gap: 0.75rem;
    font-size: 0.8125rem;
    line-height: 1.6;
    margin-bottom: 1rem;
    color: var(--ec-slate-300);
}

.ec-sidebar-card__item:last-child {
    margin-bottom: 0;
}

.ec-sidebar-card__item i,
.ec-sidebar-card__item svg {
    width: 1.125rem;
    height: 1.125rem;
    color: var(--ec-accent-gold);
    flex-shrink: 0;
    margin-top: 0.15rem;
}

.ec-sidebar-card__item strong {
    color: var(--ec-white);
    display: block;
}

/* ==========================================================================
   AREE DI COMPETENZA (from tags)
   ========================================================================== */

.ec-single-competenze {
    margin-top: 3rem;
    padding-top: 3rem;
    border-top: 1px solid var(--ec-slate-200);
}

.ec-single-competenze__title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--ec-primary);
    margin-bottom: 1.5rem;
}

.ec-single-competenze__grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .ec-single-competenze__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.ec-competenza-card {
    background: var(--ec-white);
    border: 1px solid var(--ec-slate-100);
    border-radius: 0.75rem;
    padding: 1.5rem;
    transition: all var(--ec-transition);
}

.ec-competenza-card:hover {
    border-color: var(--ec-accent-gold);
    box-shadow: var(--ec-shadow-md);
}

.ec-competenza-card__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: rgba(var(--ec-primary-rgb), 0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ec-accent-gold);
    margin-bottom: 0.75rem;
}

.ec-competenza-card__icon i,
.ec-competenza-card__icon svg {
    width: 1.25rem;
    height: 1.25rem;
}

.ec-competenza-card__name {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--ec-primary);
    margin-bottom: 0.25rem;
}

.ec-competenza-card__desc {
    font-size: 0.8125rem;
    color: var(--ec-slate-500);
    line-height: 1.6;
}

/* ==========================================================================
   ASSICURAZIONI GRID & CARDS
   ========================================================================== */

.ec-assicurazioni-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .ec-assicurazioni-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .ec-assicurazioni-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* ── Assicurazione Card ── */
.ec-assicurazione-card {
    display: flex;
    flex-direction: column;
    background: var(--ec-white);
    border-radius: 0.75rem;
    border: 1px solid var(--ec-slate-100);
    box-shadow: var(--ec-shadow-sm);
    transition: all var(--ec-transition);
    text-align: center;
    padding: 2rem 1.5rem;
}

.ec-assicurazione-card:hover {
    border-color: var(--ec-accent-gold);
    box-shadow: var(--ec-shadow-xl);
    transform: translateY(-2px);
}

.ec-assicurazione-card__logo-area {
    display: flex;
    justify-content: center;
    margin-bottom: 1.25rem;
}

.ec-assicurazione-card__logo {
    width: 4rem;
    height: 4rem;
    object-fit: contain;
}

.ec-assicurazione-card__logo-placeholder {
    width: 4rem;
    height: 4rem;
    border-radius: 0.75rem;
    background: var(--ec-slate-100);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ec-slate-400);
}

.ec-assicurazione-card__logo-placeholder i,
.ec-assicurazione-card__logo-placeholder svg {
    width: 1.75rem;
    height: 1.75rem;
}

.ec-assicurazione-card__body {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.ec-assicurazione-card__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--ec-primary);
    margin-bottom: 0.5rem;
}

.ec-assicurazione-card__title a {
    color: inherit;
    transition: color var(--ec-transition);
}

.ec-assicurazione-card:hover .ec-assicurazione-card__title a {
    color: var(--ec-accent-gold);
}

.ec-assicurazione-card__desc {
    font-size: 0.8125rem;
    color: var(--ec-slate-500);
    line-height: 1.6;
    margin-bottom: 1rem;
    flex-grow: 1;
}

.ec-assicurazione-card__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--ec-accent-gold);
    margin-top: auto;
    transition: color var(--ec-transition);
}

.ec-assicurazione-card__link:hover {
    color: var(--ec-primary);
}

.ec-assicurazione-card__link svg {
    transition: transform var(--ec-transition);
}

.ec-assicurazione-card:hover .ec-assicurazione-card__link svg {
    transform: translateX(3px);
}

/* ── Assicurazioni CTA ── */
.ec-assicurazioni-cta {
    background: var(--ec-bg-light);
    border-top: 1px solid var(--ec-slate-200);
    padding: 5rem 0;
}

.ec-assicurazioni-cta__inner {
    max-width: 42rem;
    margin: 0 auto;
    text-align: center;
}

.ec-assicurazioni-cta__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: var(--ec-accent-gold);
    color: var(--ec-white);
    margin-bottom: 1.5rem;
}

.ec-assicurazioni-cta__icon i,
.ec-assicurazioni-cta__icon svg {
    width: 1.5rem;
    height: 1.5rem;
}

.ec-assicurazioni-cta__title {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--ec-primary);
    margin-bottom: 1rem;
}

.ec-assicurazioni-cta__desc {
    font-size: 1rem;
    color: var(--ec-slate-600);
    line-height: 1.75;
    margin-bottom: 2rem;
}

.ec-assicurazioni-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
}

.ec-assicurazioni-cta__actions .ec-btn-gold,
.ec-assicurazioni-cta__actions .ec-btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.ec-assicurazioni-cta__actions i,
.ec-assicurazioni-cta__actions svg {
    width: 1rem;
    height: 1rem;
}

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

.ec-contact-cards {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .ec-contact-cards {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .ec-contact-cards {
        grid-template-columns: repeat(4, 1fr);
    }
}

.ec-contact-card {
    background: var(--ec-white);
    border: 1px solid var(--ec-slate-100);
    border-radius: 0.75rem;
    padding: 2rem;
    text-align: center;
    transition: all var(--ec-transition);
}

.ec-contact-card:hover {
    border-color: var(--ec-accent-gold);
    box-shadow: var(--ec-shadow-lg);
    transform: translateY(-2px);
}

.ec-contact-card__icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    background: rgba(var(--ec-primary-rgb), 0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.25rem;
    color: var(--ec-accent-gold);
    transition: background var(--ec-transition);
}

.ec-contact-card:hover .ec-contact-card__icon {
    background: rgba(var(--ec-accent-gold-rgb), 0.1);
}

.ec-contact-card__icon i,
.ec-contact-card__icon svg {
    width: 1.5rem;
    height: 1.5rem;
}

.ec-contact-card__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--ec-primary);
    margin-bottom: 0.5rem;
}

.ec-contact-card__text {
    font-size: 0.875rem;
    color: var(--ec-slate-500);
    line-height: 1.7;
}

.ec-contact-card__text a {
    color: var(--ec-accent-gold);
    font-weight: 600;
}

.ec-contact-card__text a:hover {
    color: var(--ec-primary);
}

/* ── Contact Body (content + map) ── */
.ec-contact-body {
    display: grid;
    gap: 2.5rem;
    grid-template-columns: 1fr;
}

@media (min-width: 1024px) {
    .ec-contact-body {
        grid-template-columns: 1fr 1fr;
        align-items: start;
    }
}

.ec-contact-body__content .ec-prose {
    max-width: none;
}

.ec-contact-map {
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: var(--ec-shadow-lg);
    height: 400px;
    background: var(--ec-slate-100);
}

.ec-contact-map iframe {
    display: block;
    width: 100%;
    height: 100%;
}

/* ── Contact Info Block (fallback if no page content) ── */
.ec-contact-info-block__title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--ec-primary);
    margin-bottom: 1rem;
}

.ec-contact-info-block__text {
    font-size: 1rem;
    color: var(--ec-slate-500);
    line-height: 1.75;
    margin-bottom: 2rem;
}

.ec-contact-info-block__details {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.ec-contact-info-block__detail {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.ec-contact-info-block__detail i,
.ec-contact-info-block__detail svg {
    width: 1.25rem;
    height: 1.25rem;
    color: var(--ec-accent-gold);
    flex-shrink: 0;
    margin-top: 0.2rem;
}

.ec-contact-info-block__detail strong {
    display: block;
    color: var(--ec-primary);
    font-weight: 700;
    font-size: 0.9375rem;
    margin-bottom: 0.125rem;
}

.ec-contact-info-block__detail span {
    font-size: 0.875rem;
    color: var(--ec-slate-500);
}

/* ==========================================================================
   CONTACT FORM 7 — Theme Integration
   ========================================================================== */

.ec-contact-form {
    background: var(--ec-white);
    border-radius: 1rem;
    padding: 2.5rem;
    box-shadow: var(--ec-shadow-lg);
}

.ec-contact-form h2 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--ec-primary);
    margin-bottom: 0.5rem;
}

.ec-contact-form > p {
    color: var(--ec-slate-500);
    margin-bottom: 2rem;
}

/* CF7 form layout */
.ec-contact-form .wpcf7-form p {
    margin-bottom: 1.25rem;
}

.ec-contact-form .wpcf7-form label {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ec-primary);
    margin-bottom: 0.5rem;
    letter-spacing: 0.02em;
}

.ec-contact-form .wpcf7-form input[type="text"],
.ec-contact-form .wpcf7-form input[type="email"],
.ec-contact-form .wpcf7-form input[type="tel"],
.ec-contact-form .wpcf7-form input[type="url"],
.ec-contact-form .wpcf7-form select,
.ec-contact-form .wpcf7-form textarea {
    width: 100%;
    padding: 0.875rem 1rem;
    border: 1.5px solid #e2e8f0;
    border-radius: 0.5rem;
    font-family: inherit;
    font-size: 0.9375rem;
    color: var(--ec-primary);
    background: #f8fafc;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    outline: none;
}

.ec-contact-form .wpcf7-form input:focus,
.ec-contact-form .wpcf7-form select:focus,
.ec-contact-form .wpcf7-form textarea:focus {
    border-color: var(--ec-accent-gold);
    box-shadow: 0 0 0 3px rgba(191, 163, 107, 0.15);
    background: var(--ec-white);
}

.ec-contact-form .wpcf7-form textarea {
    min-height: 140px;
    resize: vertical;
}

.ec-contact-form .wpcf7-form input[type="submit"],
.ec-contact-form .wpcf7-form button[type="submit"],
.ec-contact-form .wpcf7-form .wpcf7-submit,
.ec-contact-form input[type="submit"],
.ec-contact-form button[type="submit"],
.wpcf7 input[type="submit"],
.wpcf7 .wpcf7-submit {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 1rem 2.5rem;
    background-color: #b59c58 !important;
    background: #b59c58 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 0.5rem;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.15s ease;
    letter-spacing: 0.02em;
    width: auto;
    min-height: auto;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    position: relative !important;
    z-index: 1;
}

.ec-contact-form .wpcf7-form input[type="submit"]:hover,
.ec-contact-form .wpcf7-form button[type="submit"]:hover,
.ec-contact-form input[type="submit"]:hover,
.ec-contact-form button[type="submit"]:hover,
.wpcf7 input[type="submit"]:hover,
.wpcf7 .wpcf7-submit:hover {
    background: #a8914e !important;
    background-color: #a8914e !important;
    transform: translateY(-1px);
    opacity: 1 !important;
}

/* Ensure CF7 submit wrapper is visible */
.wpcf7-form p:last-of-type,
.ec-contact-form .wpcf7-form p:last-child {
    opacity: 1 !important;
    visibility: visible !important;
}

/* CF7 messages */
.ec-contact-form .wpcf7-response-output {
    border-radius: 0.5rem !important;
    padding: 1rem !important;
    font-size: 0.875rem;
    margin-top: 1rem !important;
}

.ec-contact-form .wpcf7-not-valid-tip {
    font-size: 0.8125rem;
    color: #e53e3e;
    margin-top: 0.25rem;
}

.ec-contact-form .wpcf7-spinner {
    margin-left: 1rem;
}

/* reCAPTCHA badge — hide visual badge (CF7 handles it inline) */
.grecaptcha-badge {
    visibility: hidden !important;
}

/* ==========================================================================
   ASSICURAZIONI — Grouped by Tag
   ========================================================================== */

.ec-assic-group {
    margin-bottom: 3rem;
}

.ec-assic-group:last-child {
    margin-bottom: 0;
}

.ec-assic-group__title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--ec-primary);
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid var(--ec-accent-gold);
}

.ec-assic-group__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    background: rgba(191, 163, 107, 0.12);
    border-radius: 0.5rem;
    color: var(--ec-accent-gold);
}

.ec-assic-group__icon i,
.ec-assic-group__icon svg {
    width: 1.25rem;
    height: 1.25rem;
}

.ec-assic-group__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem;
    height: 1.75rem;
    background: var(--ec-slate-100);
    color: var(--ec-slate-600);
    font-size: 0.8125rem;
    font-weight: 600;
    border-radius: 999px;
    margin-left: auto;
}

.ec-assic-group__toggle {
    text-align: center;
}

.ec-assic-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    cursor: pointer;
}

.ec-assic-toggle i,
.ec-assic-toggle svg {
    width: 1rem;
    height: 1rem;
    transition: transform 0.3s ease;
}

/* ==========================================================================
   PACCHETTI SALUTE — Grid & Cards
   ========================================================================== */

.ec-pacchetti-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .ec-pacchetti-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .ec-pacchetti-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.ec-pacchetto-card {
    background: var(--ec-white);
    border: 1px solid var(--ec-slate-100);
    border-radius: 0.75rem;
    overflow: hidden;
    transition: all var(--ec-transition);
}

.ec-pacchetto-card:hover {
    box-shadow: var(--ec-shadow-lg);
    transform: translateY(-2px);
}

.ec-pacchetto-card__image {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
}

.ec-pacchetto-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.ec-pacchetto-card:hover .ec-pacchetto-card__image img {
    transform: scale(1.05);
}

.ec-pacchetto-card__body {
    padding: 1.5rem;
}

.ec-pacchetto-card__tag {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ec-accent-gold);
    margin-bottom: 0.5rem;
}

.ec-pacchetto-card__title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--ec-primary);
    margin-bottom: 0.5rem;
}

.ec-pacchetto-card__title a {
    color: inherit;
}

.ec-pacchetto-card__title a:hover {
    color: var(--ec-accent-gold);
}

.ec-pacchetto-card__excerpt {
    font-size: 0.875rem;
    color: var(--ec-slate-500);
    line-height: 1.6;
    margin-bottom: 1rem;
}

.ec-pacchetto-card__link {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--ec-primary);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ec-pacchetto-card__link:hover {
    color: var(--ec-accent-gold);
}

/* ==========================================================================
   PACCHETTI SALUTE — Single Page
   ========================================================================== */

.ec-pacchetto-single {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.5rem;
    max-width: 1100px;
    margin: 0 auto;
}

@media (min-width: 1024px) {
    .ec-pacchetto-single {
        grid-template-columns: 1fr 380px;
    }
}

.ec-pacchetto-single__image {
    border-radius: 1rem;
    overflow: hidden;
    margin-bottom: 2rem;
}

.ec-pacchetto-single__image img {
    width: 100%;
    height: auto;
    display: block;
}

.ec-pacchetto-single__title {
    font-size: 2rem;
    font-weight: 800;
    color: var(--ec-primary);
    line-height: 1.2;
    margin-bottom: 0.75rem;
}

@media (min-width: 768px) {
    .ec-pacchetto-single__title {
        font-size: 2.5rem;
    }
}

.ec-pacchetto-single__subtitle {
    font-size: 1.0625rem;
    color: var(--ec-slate-500);
    line-height: 1.6;
    margin-bottom: 1.5rem;
}

.ec-pacchetto-single__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 2rem;
}

.ec-pacchetto-single__divider {
    height: 1px;
    background: var(--ec-slate-100);
    margin-bottom: 2rem;
}

/* Sidebar form */
.ec-pacchetto-single__sidebar {
    position: relative;
}

@media (min-width: 1024px) {
    .ec-pacchetto-single__sidebar {
        position: sticky;
        top: 5rem;
        align-self: start;
    }
}

.ec-pacchetto-single__form {
    border-radius: 1rem;
    padding: 2rem;
    box-shadow: var(--ec-shadow-lg);
    border: 1px solid var(--ec-slate-100);
}

.ec-pacchetto-single__form-header {
    text-align: center;
    margin-bottom: 1.5rem;
}

.ec-pacchetto-single__form-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    background: rgba(191, 163, 107, 0.12);
    border-radius: 50%;
    color: var(--ec-accent-gold);
    margin-bottom: 0.75rem;
}

.ec-pacchetto-single__form-icon i,
.ec-pacchetto-single__form-icon svg {
    width: 1.25rem;
    height: 1.25rem;
}

.ec-pacchetto-single__form-header h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--ec-primary);
    margin-bottom: 0.375rem;
}

.ec-pacchetto-single__form-header p {
    font-size: 0.875rem;
    color: var(--ec-slate-500);
}

/* ==========================================================================
   WORDPRESS SPECIFIC OVERRIDES
   ========================================================================== */

/* Screen reader text (WordPress accessibility) */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}

.screen-reader-text:focus {
    background-color: var(--ec-bg-light);
    border-radius: 3px;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    clip: auto !important;
    clip-path: none;
    color: var(--ec-primary);
    display: block;
    font-size: 0.875rem;
    font-weight: 700;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}

/* WordPress admin bar offset */
body.admin-bar .ec-header {
    top: 32px;
}

@media screen and (max-width: 782px) {
    body.admin-bar .ec-header {
        top: 46px;
    }
}

/* WordPress alignment classes */
.alignleft {
    float: left;
    margin-right: 1.5rem;
    margin-bottom: 1rem;
}

.alignright {
    float: right;
    margin-left: 1.5rem;
    margin-bottom: 1rem;
}

.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1rem;
}

.alignwide {
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
}

.alignfull {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(-50vw + 50%);
}

/* WordPress caption */
.wp-caption {
    max-width: 100%;
    margin-bottom: 1rem;
}

.wp-caption-text {
    font-size: 0.875rem;
    color: var(--ec-slate-500);
    padding-top: 0.5rem;
}
