:root {
    --es-bordeaux: #743549;
    --es-bordeaux-dark: #572535;
    --es-paper: #fffaf5;
    --es-linen: #f4e7dc;
    --es-ink: #302925;
    --es-copper: #aa765f;
}

html { scroll-behavior: smooth; }
body { margin: 0; color: var(--es-ink); background: var(--es-paper); }
.site-main { min-height: 55vh; }
.site-main > .wp-block-post-content, .site-main { overflow: clip; }
.es-site-header { position: relative; z-index: 50; padding: 1rem clamp(1rem,4vw,2rem); background: rgba(255,250,245,.97); border-bottom: 1px solid #ead8cc; }
.es-site-header .wp-block-site-title { margin: 0; font-family: Georgia,serif; font-size: clamp(1.5rem,3vw,2.1rem); }
.es-site-header .wp-block-site-title a { color: var(--es-bordeaux); text-decoration: none; }
.es-site-header .wp-block-navigation-item__content { font-weight: 600; }
.es-site-header .es-nav-cta { padding: .55rem 1rem; border-radius: 999px; background: var(--es-bordeaux); }
.es-site-header .es-nav-cta a { color: #fff; }
.es-site-footer { margin-top: clamp(3rem,8vw,7rem); padding: clamp(2rem,6vw,4rem) clamp(1rem,4vw,2rem) 1.5rem; color: #fff; background: var(--es-bordeaux-dark); }
.es-site-footer a, .es-site-footer h3 { color: #fff; }
.es-cookie-settings { padding: 0; border: 0; color: #fff; background: transparent; font: inherit; text-decoration: underline; cursor: pointer; }
.cmplz-cookiebanner .cmplz-category.cmplz-statistics { display: block !important; }
.cmplz-cookiebanner .cmplz-category.cmplz-preferences,
.cmplz-cookiebanner .cmplz-category.cmplz-marketing { display: none !important; }
.es-copyright { padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.25); font-size: .85rem; }
.wp-block-post-content > * { margin-block-start: 0; }
.wp-block-post-content > .wp-block-group, .es-single, .es-magazine { padding-inline: clamp(1rem,4vw,2rem); }
.es-section, .es-page-hero, .es-content-band, .es-cta, .es-legal { padding-block: clamp(2.5rem,7vw,6rem); }
.es-page-hero { max-width: 1120px; margin-inline: auto; }
.es-page-hero h1 { max-width: 900px; margin: .25rem 0 1rem; font-size: clamp(2.5rem,7vw,5.7rem); color: var(--es-bordeaux-dark); }
.es-lead { max-width: 760px; font-size: clamp(1.1rem,2vw,1.35rem); }
.es-centered { text-align: center; }
.es-values, .es-project-buttons { display: flex; flex-wrap: wrap; gap: .7rem; }
.es-values > * { padding: .45rem .75rem; border: 1px solid #d8bcae; border-radius: 999px; }
.es-card-grid, .es-work-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.25rem; max-width: 1120px; margin-inline: auto; }
.es-card, .es-work-card, .es-post-card { padding: clamp(1.25rem,3vw,2rem); border: 1px solid #ead8cc; border-radius: 18px; background: #fff; box-shadow: 0 12px 32px rgba(64,38,45,.07); }
.es-work-card img, .es-post-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 12px; }
.es-card-number, .es-card-kicker { color: var(--es-bordeaux); font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.es-content-band { margin-block: 2rem; padding-inline: clamp(1.5rem,5vw,4rem); color: #fff; background: var(--es-bordeaux-dark); }
.es-content-band h2, .es-content-band a { color: #fff; }
.es-two-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(1.5rem,5vw,4rem); }
.es-cta { margin-block: 2rem; padding-inline: clamp(1.5rem,5vw,4rem); text-align: center; background: var(--es-linen); }
.es-button, .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; padding: .75rem 1.15rem; border-radius: 999px; color: #fff !important; background: var(--es-bordeaux); font-weight: 700; text-decoration: none; }
.es-button-light { color: var(--es-bordeaux) !important; background: #fff; border: 1px solid var(--es-bordeaux); }
.es-native-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; max-width: 820px; margin: 2rem auto; padding: clamp(1.25rem,4vw,2.5rem); border-radius: 18px; background: #fff; box-shadow: 0 14px 45px rgba(64,38,45,.1); }
.es-native-form p { margin: 0; }
.es-project-buttons { justify-content: center; max-width: 900px; margin: 2rem auto; }
.wp-block-details { margin-block: .8rem; padding: 1rem 1.2rem; border: 1px solid #e2cdbf; border-radius: 10px; background: #fff; }
.wp-block-details summary { color: var(--es-bordeaux-dark); font-weight: 700; cursor: pointer; }
.es-legal { max-width: 850px; }
.es-legal h2 { margin-top: 2.4rem; }
.es-block-placeholder { padding: 2rem; border: 2px dashed #aa765f; background: #fffaf5; text-align: center; font-weight: 700; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { clip: auto; width: auto; height: auto; margin: 1rem; padding: .75rem 1rem; background: #fff; color: #000; z-index: 100000; }
:focus-visible { outline: 3px solid var(--es-copper); outline-offset: 3px; }

.elementor-nav-menu--main .menu-item-has-children:hover > .sub-menu,
.elementor-nav-menu--main .menu-item-has-children:focus-within > .sub-menu {
    display: block;
    position: absolute;
    min-width: 15rem;
    z-index: 1000;
    background: #fff;
    box-shadow: 0 12px 35px rgba(48, 41, 37, .15);
}

.es-form-notice { max-width: 1120px; margin: 1rem auto; padding: 1rem 1.25rem; border-radius: 8px; font-weight: 600; }
.es-form-notice--success { color: #184d2c; background: #e4f4e9; border: 1px solid #9bcbaa; }
.es-form-notice--error { color: #7d1723; background: #fbe8e9; border: 1px solid #df9da4; }
.es-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.es-project-dialog { width: min(880px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); padding: 0; border: 0; border-radius: 20px; color: var(--es-ink); background: var(--es-paper); box-shadow: 0 24px 80px rgba(42, 22, 29, .32); }
.es-project-dialog::backdrop { background: rgba(31, 22, 25, .68); backdrop-filter: blur(3px); }
.es-dialog-inner { padding: clamp(1.4rem, 4vw, 3rem); }
.es-dialog-close { position: absolute; top: .75rem; right: .9rem; width: 2.5rem; height: 2.5rem; padding: 0; border: 0; border-radius: 50%; color: #fff; background: var(--es-bordeaux); font-size: 1.8rem; line-height: 1; cursor: pointer; z-index: 2; }
.es-dialog-inner h2 { margin: 0 0 1.5rem; color: var(--es-ink); font-family: Georgia, serif; font-size: clamp(2rem, 5vw, 3.4rem); }
.es-eyebrow { margin: 0 0 .6rem; color: var(--es-bordeaux); font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.es-native-project-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.es-field label { display: grid; gap: .35rem; font-size: .85rem; font-weight: 600; }
.es-field input, .es-field textarea, .es-field select { width: 100%; min-height: 44px; box-sizing: border-box; padding: .72rem .8rem; border: 1px solid #dfc9bc; border-radius: 7px; color: var(--es-ink); background: #fff; font: inherit; }
.es-field textarea { resize: vertical; }
.es-field--full, .es-submit { grid-column: 1 / -1; }
.es-submit { min-height: 46px; border: 1px solid var(--es-bordeaux); border-radius: 999px; color: #fff; background: var(--es-bordeaux); font-weight: 700; cursor: pointer; }
.es-submit:hover { background: var(--es-bordeaux-dark); }

@media (max-width: 1024px) {
    .elementor-nav-menu--dropdown .sub-menu { display: block; position: static; }
}
@media (max-width: 767px) {
    .es-card-grid, .es-work-grid, .es-two-columns, .es-native-form { grid-template-columns: 1fr; }
    .es-site-header .wp-block-navigation { margin-left: auto; }
    .es-native-project-form { grid-template-columns: 1fr; }
    .es-project-dialog { width: calc(100vw - 1rem); max-height: calc(100vh - 1rem); }
    .es-dialog-inner { padding: 2.5rem 1rem 1.25rem; }
}
