/* olgacaballero.com — Olga Caballero & Co. (APP-owned stylesheet). v3.
 *
 * Direction (Dani, 2026-07-16): "NYC law firm, superactual" — the OYCO
 * mock's world (ivory, gold accent, photo hero, dark practice-area cards
 * with ghost numerals) EVOLVED to a modern standard: huge Spectral Light
 * display type, sharp rectangular buttons with tracked uppercase labels,
 * hairline rules, strict spacing scale, gold used sparingly. Not the v1
 * espresso monochrome (rejected), not a literal copy of the mock
 * (also rejected — "mejorarlo, no ir atrás").
 *
 * Type: Spectral (display, 300-600) + Mulish (UI/body, 400-800);
 * Literata ships as the Cyrillic serif fallback (Spectral has none).
 * All fonts self-hosted (CSP zero external origins). Zero inline styles.
 */

@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/mulish-400-cyrillic-ext-19a692.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/mulish-400-cyrillic-661fd6.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/mulish-400-latin-ext-2db796.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/mulish-400-latin-120b6e.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/mulish-400-cyrillic-ext-19a692.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/mulish-400-cyrillic-661fd6.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/mulish-400-latin-ext-2db796.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/mulish-400-latin-120b6e.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/mulish-400-cyrillic-ext-19a692.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/mulish-400-cyrillic-661fd6.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/mulish-400-latin-ext-2db796.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/mulish-400-latin-120b6e.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/mulish-400-cyrillic-ext-19a692.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/mulish-400-cyrillic-661fd6.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/mulish-400-latin-ext-2db796.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/mulish-400-latin-120b6e.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../fonts/mulish-400-cyrillic-ext-19a692.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../fonts/mulish-400-cyrillic-661fd6.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../fonts/mulish-400-latin-ext-2db796.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Mulish';
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../fonts/mulish-400-latin-120b6e.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Spectral';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/spectral-i400-cyrillic-ext-36315a.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Spectral';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/spectral-i400-cyrillic-c43779.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Spectral';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/spectral-i400-latin-ext-362f0a.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Spectral';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/spectral-i400-latin-9efe49.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url('../fonts/spectral-300-cyrillic-ext-fdb9e4.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url('../fonts/spectral-300-cyrillic-f89663.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url('../fonts/spectral-300-latin-ext-f982a9.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url('../fonts/spectral-300-latin-9f96cc.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/spectral-400-cyrillic-ext-48d075.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/spectral-400-cyrillic-70e2aa.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/spectral-400-latin-ext-4aad0a.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/spectral-400-latin-f4a845.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/spectral-500-cyrillic-ext-e5c845.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/spectral-500-cyrillic-8123eb.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/spectral-500-latin-ext-fa8986.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/spectral-500-latin-23cff6.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/spectral-600-cyrillic-ext-449d27.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/spectral-600-cyrillic-bf9f6b.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/spectral-600-latin-ext-ba2613.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Spectral';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/spectral-600-latin-0340db.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Literata';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/literata-i400-cyrillic-ext-028e0f.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Literata';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/literata-i400-cyrillic-73fab2.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Literata';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/literata-i400-latin-ext-7765c2.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Literata';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/literata-i400-latin-12f2e0.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Literata';
    font-style: italic;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/literata-i400-cyrillic-ext-028e0f.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Literata';
    font-style: italic;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/literata-i400-cyrillic-73fab2.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Literata';
    font-style: italic;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/literata-i400-latin-ext-7765c2.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Literata';
    font-style: italic;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/literata-i400-latin-12f2e0.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Literata';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/literata-400-cyrillic-ext-5357d0.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Literata';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/literata-400-cyrillic-603024.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Literata';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/literata-400-latin-ext-068fa6.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Literata';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/literata-400-latin-7bd786.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Literata';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/literata-400-cyrillic-ext-5357d0.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Literata';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/literata-400-cyrillic-603024.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Literata';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/literata-400-latin-ext-068fa6.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Literata';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/literata-400-latin-7bd786.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Literata';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/literata-400-cyrillic-ext-5357d0.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
    font-family: 'Literata';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/literata-400-cyrillic-603024.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Literata';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/literata-400-latin-ext-068fa6.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Literata';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/literata-400-latin-7bd786.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ── Tokens ────────────────────────────────────────────────────────────── */
:root {
    --site-bg:      #f6f3ee;   /* ivory paper */
    --site-alt:     #efe9e1;   /* deeper parchment band */
    --site-card:    #fffdf9;   /* raised light surface */
    --site-ink:     #221d1a;   /* near-black warm */
    --site-fg:      #52493f;
    --site-muted:   #6f655f;
    --site-faint:   #9a8f86;
    --site-gold:    #9c7c4a;
    --site-gold-2:  #83653a;   /* hover */
    --site-dark:    #2e2723;   /* dark band base (espresso charcoal) */
    --site-dark-2:  #38302a;   /* card on dark */
    --site-dark-3:  #453b33;   /* card hover / gap lines */
    --site-line:    #e3dbd1;
    --site-line-2:  #d8cfc4;
    --site-input:   #d8cfc4;

    --f-serif: 'Spectral', 'Literata', Georgia, 'Times New Roman', serif;
    --f-sans:  'Mulish', ui-sans-serif, system-ui, 'Segoe UI', Roboto, Arial, sans-serif;

    --r-sm: 2px; --r-md: 4px; --r-lg: 6px;
    --shadow-lift: 0 24px 48px -28px rgba(34, 29, 26, .4);

    --shell-max: 1240px;
    --shell-pad: clamp(20px, 3vw, 30px);   /* = section pad: one aligned content box everywhere */

    /* ── Theme → module-library tokens (page-model §4) ── */
    --mod-bg:        var(--site-bg);
    --mod-fg:        var(--site-ink);
    --mod-muted:     var(--site-fg);
    --mod-accent:    var(--site-gold);
    --mod-accent-fg: #ffffff;
    --mod-surface:   var(--site-card);
    --mod-line:      var(--site-line);
    --mod-radius:    var(--r-md);
    --mod-maxw:      var(--shell-max);
    --mod-space:     30px;   /* core band padding = ×3 → 90px; grid gaps = ×1 */
}

/* Dark band context — re-maps module tokens */
.ox-dark {
    --mod-bg:        var(--site-dark);
    --mod-fg:        #f4f0ea;
    --mod-muted:     #c9beb2;
    --mod-accent:    var(--site-gold);
    --mod-accent-fg: #fff;
    --mod-surface:   var(--site-dark-2);
    --mod-line:      #5a4a44;
    background:
        radial-gradient(1200px 600px at 88% -12%, rgba(156, 124, 74, .18), transparent 60%),
        repeating-linear-gradient(135deg, rgba(255, 255, 255, .02) 0 1px, transparent 1px 10px),
        linear-gradient(165deg, #52443c, #463a35 46%, #3f342f);
    color: var(--mod-fg);
}

/* ── Base ─────────────────────────────────────────────────────────────── */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
[hidden] { display: none !important; }

body.site {
    font-family: var(--f-sans);
    font-size: 16.5px;
    line-height: 1.7;
    background: var(--site-bg);
    color: var(--site-ink);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }
.site-main a:not([class]) {
    color: var(--site-gold-2);
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, var(--site-gold) 45%, transparent);
    text-underline-offset: 3px;
}
.site-main a:not([class]):hover { text-decoration-color: var(--site-gold-2); }
::selection { background: #493d3a; color: #f4f0ea; }
input::placeholder, textarea::placeholder { color: var(--site-faint); }
button { font: inherit; cursor: pointer; }
img, svg { display: block; max-width: 100%; }
.muted { color: var(--site-muted); }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

:is(a, button, input, textarea, select, summary):focus-visible {
    outline: 2px solid var(--site-gold);
    outline-offset: 2px;
    border-radius: var(--r-sm);
}

h1, h2, h3, h4 {
    font-family: var(--f-serif);
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: -0.015em;
    margin: 0 0 .5em;
    text-wrap: balance;
}
h2 { font-size: clamp(2rem, 3.6vw, 3.2rem); font-weight: 300; }
h3 { font-size: 1.35rem; font-weight: 500; }

.shell { width: 100%; max-width: var(--shell-max); margin-inline: auto; padding-inline: var(--shell-pad); }
.site-main { flex: 1; width: 100%; }
.site-main > :is(.entry, .search-page, .site-crumbs, .blog) {
    width: 100%; max-width: var(--shell-max); margin-inline: auto;
    padding-inline: var(--shell-pad);
}

/* Tracked uppercase micro-label (the NYC eyebrow) */
.ox-eyebrow {
    display: block;
    font-family: var(--f-sans); font-size: .72rem; font-weight: 700;
    letter-spacing: .22em; text-transform: uppercase;
    color: var(--site-gold); margin: 0 0 18px;
}
.ox-meta { font-size: .72rem; font-weight: 700; letter-spacing: .18em;
    text-transform: uppercase; color: var(--site-faint); }

/* Buttons: rectangular, tracked uppercase — sitewide voice */
.ox-btn, .m-actions .m-btn {
    display: inline-flex; align-items: center; gap: 10px;
    font-family: var(--f-sans); font-size: .74rem; font-weight: 800;
    letter-spacing: .16em; text-transform: uppercase;
    padding: 16px 26px; border-radius: var(--r-sm);
    border: 1px solid transparent; white-space: nowrap;
    transition: background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}
.ox-btn--gold, .m-actions .m-btn--primary {
    background: var(--site-gold); color: #fff;
}
.ox-btn--gold:hover, .m-actions .m-btn--primary:hover { background: var(--site-gold-2); transform: translateY(-1px); }
.ox-btn--dark { background: var(--site-ink); color: #f4f0ea; }
.ox-btn--dark:hover { background: #000; transform: translateY(-1px); }
.ox-btn--line, .m-actions .m-btn:not(.m-btn--primary):not(.m-btn--inverse) {
    border-color: var(--site-line-2); color: var(--site-ink); background: transparent;
}
.ox-btn--line:hover, .m-actions .m-btn:not(.m-btn--primary):not(.m-btn--inverse):hover { border-color: var(--site-ink); }
.ox-dark .ox-btn--line, .m-actions .m-btn--inverse {
    border-color: rgba(244, 240, 234, .4); color: #f4f0ea; background: transparent;
}
.ox-hero .ox-btn--line {
    border-color: rgba(244, 240, 234, .5); color: #fff;
    background: rgba(34, 27, 23, .35); backdrop-filter: blur(3px);
}
.ox-hero .ox-btn--line:hover { border-color: #fff; background: rgba(34, 27, 23, .55); }
.ox-dark .ox-btn--line:hover, .m-actions .m-btn--inverse:hover { border-color: #f4f0ea; }

/* ── Header: ivory, slim, dark CTA block ──────────────────────────────── */
.site-header {
    position: sticky; top: 0; z-index: 40;
}
body.has-adminbar .site-header { top: var(--adminbar-h, 32px); }
.site-header {
    background: rgba(255, 255, 255, .92);
    backdrop-filter: blur(10px);
    border-block-end: 1px solid var(--site-line);
    transition: background .25s ease, border-color .25s ease;
}
.site-header.is-scrolled { background: rgba(255, 255, 255, .98); border-color: var(--site-line-2); }
.site-header-bar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 18px; min-height: 72px;
}
.site-header-left { display: flex; align-items: center; gap: clamp(18px, 3.4vw, 44px); min-width: 0; }
.site-brand img { height: 34px; width: auto; }
.site-brand span { font-family: var(--f-serif); font-weight: 500; font-size: 1.05rem; }

.site-nav { display: flex; align-items: center; gap: clamp(12px, 2vw, 26px); flex-wrap: wrap; }
.site-nav > a, .site-nav-sub > a {
    font-size: .72rem; font-weight: 700;
    letter-spacing: .14em; text-transform: uppercase;
    color: var(--site-fg); padding-block: 26px;
    border-block-end: 2px solid transparent;
    transition: color .15s ease, border-color .15s ease;
    white-space: nowrap;
}
.site-nav > a:hover, .site-nav-sub > a:hover { color: var(--site-ink); }
.site-nav > a.on, .site-nav-sub > a.on { color: var(--site-ink); border-block-end-color: var(--site-gold); }

.site-nav-sub { position: relative; }
.site-nav-drop {
    position: absolute; inset-inline-start: -14px; top: 100%;
    min-width: 240px; padding: 8px;
    display: none; flex-direction: column;
    background: var(--site-card);
    border: 1px solid var(--site-line);
    border-radius: var(--r-md);
    box-shadow: var(--shadow-lift);
}
.site-nav-sub:hover .site-nav-drop, .site-nav-sub:focus-within .site-nav-drop { display: flex; }
.site-nav-drop a { padding: 10px 12px; border-radius: var(--r-sm); font-size: .86rem;
    font-weight: 600; color: var(--site-fg); text-transform: none; letter-spacing: 0; }
.site-nav-drop a:hover, .site-nav-drop a.on { background: var(--site-alt); color: var(--site-ink); }

.site-actions { display: flex; align-items: center; gap: 12px; }
.site-icon-btn { display: grid; place-items: center; width: 38px; height: 38px;
    border: 1px solid var(--site-line-2); border-radius: var(--r-sm);
    color: var(--site-fg); transition: color .15s, border-color .15s; }
.site-icon-btn:hover { color: var(--site-ink); border-color: var(--site-ink); }
.site-icon-btn svg { width: 17px; height: 17px; }

.site-access { display: inline-flex; align-items: center; gap: 8px;
    height: 38px; padding-inline: 14px;
    border: 1px solid var(--site-line-2); border-radius: var(--r-sm);
    font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
    color: var(--site-fg); transition: color .15s, border-color .15s; }
.site-access:hover { color: var(--site-ink); border-color: var(--site-ink); }
.site-access svg { width: 15px; height: 15px; }

/* Language dropdown — the model's globe + code + chevron pill (CSS-only) */
.site-lang { position: relative; }
.site-lang > summary {
    list-style: none; cursor: pointer;
    display: inline-flex; align-items: center; gap: 7px;
    height: 38px; padding-inline: 12px;
    border: 1px solid var(--site-line-2); border-radius: var(--r-sm);
    font-size: .7rem; font-weight: 700; letter-spacing: .08em;
    color: var(--site-fg);
    transition: border-color .15s, color .15s;
}
.site-lang > summary::-webkit-details-marker { display: none; }
.site-lang > summary:hover { border-color: var(--site-ink); color: var(--site-ink); }
.site-lang > summary svg { width: 15px; height: 15px; }
.site-lang > summary .chev { width: 10px; height: 10px; }
.site-lang[open] > summary .chev { transform: rotate(180deg); }
.site-lang-panel {
    position: absolute; inset-inline-end: 0; top: calc(100% + 6px);
    min-width: 236px; z-index: 60;
    background: #fff; border: 1px solid var(--site-line);
    box-shadow: 0 12px 30px -12px rgba(44, 38, 35, .4);
    display: grid; grid-template-columns: 1fr 1fr;
}
.site-lang-panel a {
    display: flex; align-items: center; gap: 8px;
    padding: 11px 14px; font-size: 13px; color: #493d3a;
    border-block-end: 1px solid #f0ebe3;
}
.site-lang-panel a:nth-child(odd) { border-inline-end: 1px solid #f0ebe3; }
.site-lang-panel a:last-child,
.site-lang-panel a:nth-last-child(2):nth-child(odd) { border-block-end: 0; }
.site-lang-panel a:hover, .site-lang-panel a.on { background: var(--site-bg); }
.site-lang-panel .c { font-size: 11px; font-weight: 700; color: var(--site-faint); inline-size: 22px; }

.site-btn {
    display: inline-flex; align-items: center;
    height: 38px; padding-inline: 18px;
    font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
    border-radius: var(--r-sm);
    background: #493d3a; color: #f4f0ea; white-space: nowrap;
    transition: background .15s ease;
}
.site-btn:hover { background: #000; }
.site-btn--solid { background: var(--site-gold); }
.site-btn--solid:hover { background: var(--site-gold-2); }

/* ── Footer: deep, 4 columns, quiet ───────────────────────────────────── */
.site-footer { background: #38302d; color: #cabdb2; margin-block-start: auto; }
.site-footer-grid {
    display: grid; grid-template-columns: 2.2fr repeat(4, 1fr);
    gap: clamp(24px, 3vw, 48px); padding-block: 64px 48px;
}
.site-footer-brand img { height: 38px; width: auto; margin-block-end: 16px; }
.site-footer-brand p { margin: 0 0 14px; font-size: .88rem; line-height: 1.7; color: #a99c92; }
.site-footer h4 {
    font-family: var(--f-sans); font-size: .68rem; font-weight: 800;
    letter-spacing: .2em; text-transform: uppercase;
    color: var(--site-gold); margin: 4px 0 16px;
}
.site-footer-col { display: flex; flex-direction: column; gap: 10px; }
.site-footer-col a { font-size: .9rem; color: #cabdb2; transition: color .15s; }
.site-footer-col a:hover { color: #fff; }
.site-footer-office { margin: 16px 0 0; padding-block-start: 18px;
    border-block-start: 1px solid #4a413c;
    font-size: .88rem; line-height: 1.65; color: #cabdb2; }
.site-footer-office .ox-meta { margin-block-end: 3px; }
.site-footer-office a { color: inherit; }
.site-footer-office .ox-meta { color: var(--site-gold); display: block; margin-block-end: 2px; }
.site-footer-mail { display: flex; align-items: center; gap: 8px; margin: 14px 0 0;
    font-size: .9rem; }
.site-footer-mail svg { width: 15px; height: 15px; color: var(--site-gold); flex: none; }
.site-footer-mail a { color: #cabdb2; }
.site-footer-mail a:hover { color: #fff; }
.site-footer-legal {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 10px; padding-block: 20px;
    border-block-start: 1px solid #4a413c;
    font-size: .78rem; color: #7e7268;
}
.site-footer-legal a { color: #a99c92; }
.site-footer-legal a:hover { color: #fff; }
.site-footer-social { display: flex; gap: 8px; }
.site-footer-social a { display: grid; place-items: center; width: 34px; height: 34px;
    border: 1px solid #4a413c; border-radius: var(--r-sm); color: #a99c92;
    transition: color .15s, border-color .15s; }
.site-footer-social a:hover { color: #fff; border-color: #a99c92; }
.site-footer-social svg { width: 16px; height: 16px; }

/* ── HERO: full-bleed photo, huge Spectral Light, fused stat bar ──────── */
.ox-hero { position: relative; overflow: hidden; background: var(--site-dark); }
/* .m-inner only gets its shell inside .m-section (core scoping) — the hero
   and its stat bar live outside one, so give them the shell themselves. */
.ox-hero .m-inner, .ox-herostats .m-inner {
    width: 100%; max-width: var(--shell-max);
    margin-inline: auto; padding-inline: var(--shell-pad);
}
.ox-hero-media, .ox-hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.ox-hero-media img { object-fit: cover; }
.ox-hero-media::after {
    content: ''; position: absolute; inset: 0;
    background:
        linear-gradient(180deg, rgba(34, 27, 23, .38), transparent 32%),
        linear-gradient(100deg, rgba(34, 27, 23, .93) 8%, rgba(34, 27, 23, .55) 46%, rgba(34, 27, 23, .12) 84%);
}
.ox-hero-inner {
    position: relative; z-index: 1;
    padding-block: clamp(110px, 17vh, 190px) clamp(90px, 13vh, 150px);
    color: #f4f0ea;
}
.ox-hero .ox-eyebrow { color: #cdbfa4; }
.ox-hero h1 {
    font-weight: 300; font-size: clamp(2.9rem, 6.4vw, 5.5rem);
    line-height: 1.04; letter-spacing: -0.02em;
    max-width: 19ch; margin: 0 0 26px; color: #fff;
}
.ox-hero h1 em { font-style: italic; color: #e8d9c2; }
.ox-hero-lead { font-size: clamp(1.02rem, 1.5vw, 1.16rem); line-height: 1.75;
    max-width: 54ch; color: #d9cfc3; margin: 0 0 34px; }
.ox-hero .m-actions { display: flex; flex-wrap: wrap; gap: 14px; }

.ox-herostats {
    position: relative; z-index: 2;
    background: var(--site-card);
    border-block-end: 1px solid var(--site-line-2);
}
.ox-herostats-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.ox-herostats-grid > div { padding: 26px 24px;
    display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 3px 12px;
    align-content: center; }
.ox-herostats-grid > div + div { border-inline-start: 1px solid var(--site-line); }
.ox-herostats-grid .ic { grid-row: 1 / 3; align-self: start; color: var(--site-gold);
    margin-block-start: 2px; }
.ox-herostats-grid .ic svg { width: 21px; height: 21px; }
.ox-herostats-grid strong { display: block; font-family: var(--f-serif); font-weight: 500;
    font-size: 1.08rem; color: var(--site-ink); }
.ox-herostats-grid span { display: block; font-size: .85rem; color: var(--site-muted);
    line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 640px) {
    /* phones: the one-line rule would ellipsize mid-word — wrap to two */
    .ox-herostats-grid span { white-space: normal; display: -webkit-box;
        -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
}

/* ── Section scaffolding (rhythm comes from core's --mod-space knob;
      only the type scale is overridden for the display voice) ──────────── */
.m-section > .m-inner { padding-inline: var(--shell-pad); }

.m-sect-head h1, .m-sect-head h2 {
    font-family: var(--f-serif); font-weight: 300;
    font-size: clamp(2rem, 3.6vw, 3.2rem); letter-spacing: -0.015em;
}

/* Editorial split: statement left, prose right (The Firm) */
.ox-editorial { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(32px, 6vw, 96px);
    align-items: start; }
.ox-editorial h2 { margin: 0; }
.ox-editorial-body p { margin: 0 0 1.2em; color: var(--site-fg); font-size: 1.02rem; }
.ox-editorial-body p:last-of-type { margin-block-end: 0; }
.ox-editorial-body .lede { font-family: var(--f-serif); font-style: italic;
    font-size: 1.22rem; line-height: 1.6; color: var(--site-ink); }
.ox-link {
    display: inline-flex; align-items: center; gap: 8px; margin-block-start: 22px;
    font-size: .74rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase;
    color: var(--site-gold-2); border-block-end: 1px solid color-mix(in srgb, var(--site-gold) 50%, transparent);
    padding-block-end: 4px; transition: color .15s, border-color .15s;
}
.ox-link:hover { color: var(--site-ink); border-color: var(--site-ink); }

/* ── Practice areas: dark codex mosaic — compact cells, roman numerals ── */
.ox-areas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
    background: #5a4a44; border: 1px solid #5a4a44; }
.ox-areas a {
    display: grid; grid-template-columns: 2.7em minmax(0, 1fr) auto;
    align-items: start; min-width: 0;
    gap: 4px 12px; padding: 22px 22px 20px;
    background: var(--site-dark-2);
    transition: background .18s ease;
}
.ox-areas a:hover { background: var(--site-dark-3); }
.ox-areas .n { font-family: var(--f-serif); font-style: italic; font-weight: 400;
    font-size: .95rem; color: var(--site-gold); padding-block-start: 2px; }
.ox-areas .t { font-family: var(--f-serif); font-weight: 500; font-size: 1.08rem;
    line-height: 1.25; color: #f4f0ea; min-width: 0;
    /* uniform cells: reserve two title lines + one desc line everywhere,
       so a wrapped title (or the Core tag) never breaks row coherence */
    min-height: 4.5rem; }
@media (max-width: 640px) { .ox-areas .t { min-height: 0; } }
.ox-areas .t .s { display: block; font-family: var(--f-sans); font-weight: 400;
    font-size: .84rem; line-height: 1.5; color: #b7a99d; margin-block-start: 5px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ox-areas .tag { display: inline; margin-inline-start: 6px;
    font-size: 12px; color: var(--site-gold); vertical-align: 2px; }
.ox-areas .arr { color: var(--site-gold); opacity: 0; transform: translateX(-6px);
    transition: opacity .18s, transform .18s; padding-block-start: 2px; }
.ox-areas a:hover .arr { opacity: 1; transform: none; }
.site-main .ox-areas a { text-decoration: none; }
.ox-areas .all {
    grid-column: span 2;
    display: flex; align-items: center; justify-content: center; gap: 10px;
    font-size: .74rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase;
    color: #cdbfa4; background: color-mix(in srgb, var(--site-dark-2) 72%, transparent);
}
.ox-areas .all:hover { color: var(--site-gold); background: var(--site-dark-3); }
@media (max-width: 1080px) and (min-width: 641px) {
    .ox-areas { grid-template-columns: 1fr 1fr; }
    /* 15 cells: no hole at 2-col. Scoped ABOVE 640: at 1 column a span-2
       spawns an implicit second column and auto-flow pairs every row */
    .ox-areas a:last-child { grid-column: span 2; }
}
@media (max-width: 640px) {
    .ox-areas { grid-template-columns: 1fr; }
    .ox-areas .t .s { white-space: normal; display: -webkit-box;
        -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
}

/* Side-by-side text coherence: uniform line counts on card rows */
.ox-posts .m-card__body h3 { display: -webkit-box; -webkit-line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden; }
.ox-posts .m-card__body p { display: -webkit-box; -webkit-line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden; }
.ox-offices .m-card__body > p { display: -webkit-box; -webkit-line-clamp: 3;
    -webkit-box-orient: vertical; overflow: hidden; }

/* ── Stats: enormous gold numerals on light ───────────────────────────── */
.ox-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(20px, 3vw, 40px); }
.ox-stats .num {
    display: block; font-family: var(--f-serif); font-weight: 300;
    font-size: clamp(3rem, 5.6vw, 4.8rem); line-height: 1;
    color: var(--site-gold); letter-spacing: -0.02em;
}
.ox-stats .lbl { display: block; margin-block-start: 10px; font-size: .82rem;
    font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--site-muted); }
.ox-stats > div { padding-block: 8px; border-block-start: 2px solid var(--site-ink); }

/* Quotes band: keep the alt color, add a whisper of texture + the giant
   quotation ornament (Spectral, gold 7%) behind the top corner */
.ox-quotesband { position: relative; overflow: hidden;
    background:
        repeating-linear-gradient(135deg, rgba(34, 29, 26, .018) 0 1px, transparent 1px 10px),
        color-mix(in srgb, var(--site-ink) 4%, var(--site-bg)); }
.ox-quotesband .m-inner { position: relative; }

/* ── Client quotes: three voices, flat, serif italic ─────────────────── */
.ox-quotes { --qgap: clamp(20px, 2.6vw, 32px);
    display: grid; grid-auto-flow: column;
    grid-auto-columns: calc((100% - 2 * var(--qgap)) / 3);
    gap: var(--qgap);
    overflow-x: auto; scroll-snap-type: x mandatory;
    scrollbar-width: none; -ms-overflow-style: none;
    padding-block-end: 6px; }
.ox-quotes::-webkit-scrollbar { display: none; }
.ox-quotes figure { scroll-snap-align: start; }
.ox-car-nav { display: flex; gap: 10px; justify-content: flex-end;
    margin-block-start: 22px; }
.ox-car-nav button { display: grid; place-items: center;
    width: 38px; height: 38px; padding: 0;
    background: transparent; border: 1px solid var(--site-line-2);
    border-radius: var(--r-sm); color: var(--site-fg); cursor: pointer;
    transition: color .15s, border-color .15s; }
.ox-car-nav button:hover { color: var(--site-ink); border-color: var(--site-ink); }
.ox-car-nav svg { width: 16px; height: 16px; }
.ox-quotes figure { margin: 0; padding: 26px 26px 22px;
    background: var(--site-card); border: 1px solid var(--site-line);
    border-radius: var(--r-md); display: flex; flex-direction: column; }
.ox-quotes figure::before { content: '\201C';
    font-family: var(--f-serif); font-size: 3rem; line-height: .6;
    color: var(--site-gold); margin-block-end: 14px; }
.ox-quotes blockquote { margin: 0 0 14px; flex: 1;
    font-family: var(--f-serif); font-style: italic; font-size: 1.02rem;
    line-height: 1.65; color: var(--site-ink);
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
    overflow: hidden; }
.ox-quotes figure.open blockquote { -webkit-line-clamp: unset; display: block; }
/* Static bands (curated short quotes, no carousel): never clamp — newer
   Chromium paints the clamp ellipsis even when the stretched box already
   shows every line, so clamping short quotes yields stray "…" mid-text. */
.ox-quotes--full blockquote { -webkit-line-clamp: unset; display: block; }
.ox-more, .ox-orig { align-self: flex-start; margin: -6px 0 14px; padding: 0;
    background: none; border: 0; cursor: pointer;
    font-size: .7rem; font-weight: 800; letter-spacing: .16em;
    text-transform: uppercase; color: var(--site-gold-2); }
.ox-more:hover, .ox-orig:hover { color: var(--site-ink); }
.ox-quotes .stars { display: block; color: var(--site-gold);
    font-size: .8rem; letter-spacing: .18em; margin-block-end: 6px; }
.ox-quotes figcaption { font-size: .7rem; font-weight: 800;
    letter-spacing: .14em; text-transform: uppercase; color: var(--site-muted); }
.ox-quotes figcaption .m { display: block; margin-block-start: 3px;
    font-weight: 600; letter-spacing: .1em; color: var(--site-faint); }
@media (max-width: 1080px) { .ox-quotes { grid-auto-columns: calc((100% - var(--qgap)) / 2); } }
@media (max-width: 640px) { .ox-quotes { grid-auto-columns: 100%; } }

/* ── Office cards ─────────────────────────────────────────────────────── */
.ox-offices .m-grid--2 { gap: clamp(20px, 3vw, 36px); }
.ox-offices .m-card { border: 1px solid var(--site-line); border-radius: var(--r-md);
    overflow: hidden; background: var(--site-card); }
.ox-offices .m-card__media { aspect-ratio: 16 / 9; transition: transform .6s cubic-bezier(.2, .7, .3, 1); }
.ox-offices .m-card--lift:hover img.m-card__media { transform: scale(1.045); }
.ox-offices .m-card__body { padding: 26px 28px 28px; }
.ox-offices h3 { font-size: 1.5rem; font-weight: 400; margin: 6px 0 8px; }
.ox-offices .m-card__body p { color: var(--site-fg); font-size: .95rem; margin: 0 0 6px; }
.ox-officeinfo { margin-block: 16px 4px; border-block-start: 1px solid var(--site-line); }
.ox-officeinfo > div { display: flex; gap: 14px; padding-block: 10px;
    border-block-end: 1px solid var(--site-line); font-size: .9rem; color: var(--site-fg); }
.ox-officeinfo .ox-open { color: #4a7c59; font-weight: 700; }
.ox-hours-toggle { margin-inline-start: auto; padding: 2px; background: none;
    border: 0; cursor: pointer; color: var(--site-faint); flex: none;
    transition: color .15s, transform .2s; }
.ox-hours-toggle svg { width: 14px; height: 14px; display: block; }
.ox-hours-toggle:hover { color: var(--site-ink); }
.ox-hours-toggle.open { transform: rotate(180deg); }
.ox-officeinfo > div.ox-hours-panel { display: none; padding: 8px 0 10px 90px;
    border-block-end: 1px solid var(--site-line); }
.ox-officeinfo > div.ox-hours-panel.open { display: block; }
.ox-hours-panel > div { display: flex; justify-content: space-between;
    font-size: .84rem; color: var(--site-fg); padding-block: 3px; }
.ox-hours-panel > div.today { font-weight: 700; color: var(--site-ink); }
.ox-hours-panel > div > span:last-child { color: var(--site-muted); }
.ox-hours-panel > div.today > span:last-child { color: var(--site-ink); }
.ox-officeinfo .lbl { flex: 0 0 78px; font-size: .66rem; font-weight: 800;
    letter-spacing: .14em; text-transform: uppercase; color: var(--site-faint);
    padding-block-start: 4px; }

.m-link-arrow { display: inline-flex; align-items: center; gap: 8px; margin-block-start: 12px;
    font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase;
    color: var(--site-gold-2); }
.m-link-arrow:hover { color: var(--site-ink); }

/* Post cards (Insights index + the home live band) */
.ox-posts .m-card__body h3 { font-size: 1.15rem; font-weight: 500; margin: 2px 0 6px; }
.ox-posts .m-card__body p { font-size: .9rem; }
.ox-posts .ox-meta { margin-block-start: 10px; }
.ox-pager { display: flex; align-items: center; justify-content: center; gap: 20px;
    margin-block-start: 40px; }

/* ── Insights editorial: featured post + hairline mini list ──────────── */
.ox-postsplit { display: grid; grid-template-columns: 1.15fr .85fr;
    gap: clamp(24px, 3.4vw, 48px); align-items: stretch; }
.ox-feat { display: flex; flex-direction: column; background: var(--site-card);
    border: 1px solid var(--site-line); border-radius: var(--r-md); overflow: hidden; }
.ox-feat__media { width: 100%; aspect-ratio: 2 / 1; object-fit: cover;
    transition: transform .6s cubic-bezier(.2, .7, .3, 1); }
.ox-feat:hover .ox-feat__media { transform: scale(1.035); }
.ox-feat__body { flex: 1; display: flex; flex-direction: column;
    align-items: flex-start; padding: 26px 28px 26px; }
.ox-feat__body .ox-meta { margin-block-start: auto; }
.ox-feat__title { display: block; font-family: var(--f-serif); font-weight: 500;
    font-size: 1.45rem; line-height: 1.25; letter-spacing: -.01em;
    color: var(--site-ink); margin-block-end: 10px; text-wrap: balance; }
.ox-feat__text { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden; font-size: .95rem; line-height: 1.65; color: var(--site-fg);
    margin-block-end: 14px; }
.ox-minis { height: 100%; display: flex; flex-direction: column; }
.ox-mini { flex: 1; display: grid; grid-template-columns: 104px 1fr; gap: 16px;
    align-items: center; padding-block: 10px;
    border-block-end: 1px solid var(--site-line); }
.ox-mini:first-child { padding-block-start: 0; }
.ox-mini:last-child { border-block-end: 0; padding-block-end: 0; }
.ox-mini__thumb { width: 104px; aspect-ratio: 4 / 3; object-fit: cover;
    border-radius: var(--r-sm); }
.ox-mini__title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden; font-family: var(--f-serif); font-weight: 500;
    font-size: .99rem; line-height: 1.35; color: var(--site-ink);
    margin-block-end: 5px; transition: color .15s; }
.ox-mini:hover .ox-mini__title { color: var(--site-gold-2); }
.ox-mini__body { display: block; min-width: 0; }
@media (max-width: 900px) { .ox-postsplit { grid-template-columns: 1fr; } }

/* ── Business Center: copy + photo collage ────────────────────────────── */
.ox-bc { display: grid; grid-template-columns: 1fr 1.2fr;
    gap: clamp(28px, 4.5vw, 72px); align-items: center; }
.ox-bc-copy p { color: var(--site-fg); font-size: 1.02rem; line-height: 1.75;
    margin: 0 0 1.1em; }
.ox-bc-collage { display: grid; grid-template-columns: 1.35fr 1fr;
    grid-template-rows: 1fr 1fr; gap: 14px; }
.ox-bc-collage figure { margin: 0; overflow: hidden; border-radius: var(--r-md); }
.ox-bc-collage figure:first-child { grid-row: 1 / 3; }
.ox-bc-collage img { width: 100%; height: 100%; object-fit: cover;
    transition: transform .6s cubic-bezier(.2, .7, .3, 1); }
.ox-bc-collage figure:hover img { transform: scale(1.05); }
@media (max-width: 900px) { .ox-bc { grid-template-columns: 1fr; } }

/* Office maps: palette-toned embeds; colors bloom on hover */
.ox-map { position: relative; overflow: hidden; background: var(--site-alt); }
.ox-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
    filter: grayscale(.32) sepia(.22) saturate(.85) contrast(1.02);
    transition: filter .45s ease; }
.ox-offices .m-card:hover .ox-map iframe { filter: none; }
.ox-officelinks { display: flex; gap: 22px; flex-wrap: wrap; }

/* ── Services list (area landings): gold checks, two columns ─────────── */
.ox-svc { background: var(--site-card); border: 1px solid var(--site-line);
    border-radius: var(--r-md); padding: clamp(22px, 3vw, 34px); }
.ox-svc h2 { font-size: 1.1rem; font-weight: 500; margin: 0 0 16px; max-width: none; }
.ox-svc ul { list-style: none; margin: 0; padding: 0;
    display: grid; gap: 10px; }
.ox-svc li { position: relative; padding-inline-start: 26px;
    font-size: .95rem; line-height: 1.55; color: var(--site-fg); }
.ox-svc li::before { content: '✓'; position: absolute; inset-inline-start: 0;
    color: var(--site-gold); font-weight: 700; }

/* ── Team grid (firm page) ────────────────────────────────────────────── */
.ox-team { display: grid; grid-template-columns: repeat(4, 1fr);
    gap: clamp(18px, 2.6vw, 32px); }
.ox-team figure { margin: 0; }
.ox-team img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover;
    border-radius: var(--r-md); filter: grayscale(.15);
    transition: filter .4s ease; }
.ox-team figure:hover img { filter: none; }
.ox-team figcaption { padding-block-start: 12px; }
.ox-team .nm { display: block; font-family: var(--f-serif); font-weight: 500;
    font-size: 1.08rem; color: var(--site-ink); }
.ox-team .rl { display: block; font-size: .82rem; color: var(--site-muted);
    margin-block: 2px 6px; }
.ox-team .lg { display: block; font-size: .72rem; font-weight: 700;
    letter-spacing: .1em; text-transform: uppercase; color: var(--site-gold-2); }
@media (max-width: 1080px) { .ox-team { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ox-team { grid-template-columns: 1fr; } }

/* Page head band on dark (firm/areas heads) */
.ox-pagehead .m-sect-head { margin-block-end: 0; }
.ox-pagehead h1 { font-weight: 300; font-size: clamp(2.4rem, 4.6vw, 3.8rem);
    line-height: 1.06; margin: 0; }
.ox-pagehead .m-sect-head__sub { max-width: 60ch; }

/* ── CTA banner ───────────────────────────────────────────────────────── */
.ox-cta { display: flex; align-items: center; justify-content: space-between;
    gap: clamp(24px, 4vw, 56px); flex-wrap: wrap; }
.ox-cta > div { flex: 1 1 620px; max-width: 900px; }
.ox-cta h2 { margin: 0; max-width: none; }
.ox-cta p { margin: 12px 0 0; color: var(--mod-muted); max-width: 64ch; }

/* ── Core public surfaces ─────────────────────────────────────────────── */
/* visible breadcrumbs are OFF (Dani) — the BreadcrumbList JSON-LD from
   the core keeps feeding search engines */
.site-crumbs { display: none; }

.site-search-panel { background: var(--site-card); border: 1px solid var(--site-line);
    border-radius: var(--r-lg); box-shadow: var(--shadow-lift); }
.site-search-input { font-family: var(--f-serif); font-size: 1.25rem;
    background: transparent; border: 0; color: var(--site-ink); }
.search-page h1 { font-size: 2rem; font-weight: 300; }
.search-hit { border-block-end: 1px solid var(--site-line); padding-block: 18px; }
.search-hit a { color: var(--site-gold-2); }

/* Cookie banner: compact floating card, small buttons */
.cookie-consent { position: fixed; z-index: 80; inset-inline-start: 16px; bottom: 16px;
    max-width: 380px; background: var(--site-card); color: var(--site-fg);
    border: 1px solid var(--site-line); border-radius: var(--r-md);
    padding: 18px 20px; box-shadow: var(--shadow-lift); font-size: .85rem; }
.cookie-consent__text { margin: 0 0 12px; line-height: 1.55; }
.cookie-consent__text a { color: var(--site-gold-2); text-decoration: underline; }
.cookie-consent__actions { display: flex; gap: 8px; }
.cookie-consent__accept {
    border: none; background: var(--site-ink); color: #f4f0ea;
    font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
    padding: 9px 16px; border-radius: var(--r-sm); transition: background .15s; }
.cookie-consent__accept:hover { background: #000; }
.cookie-consent__decline {
    border: 1px solid var(--site-line-2); background: transparent; color: var(--site-muted);
    font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
    padding: 9px 16px; border-radius: var(--r-sm); }
.cookie-consent__decline:hover { color: var(--site-ink); border-color: var(--site-ink); }

/* Forms: sharp fields */
.site input[type="text"], .site input[type="email"], .site input[type="tel"],
.site textarea, .site select {
    font: inherit; color: var(--site-ink);
    background: #fff; border: 1px solid var(--site-input);
    border-radius: var(--r-sm); padding: 13px 14px; width: 100%;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.site textarea { min-height: 150px; resize: vertical; }
.site input:focus, .site textarea:focus, .site select:focus {
    outline: none; border-color: var(--site-ink);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--site-gold) 16%, transparent);
}

/* Draft preview marker (core public-page.php) */
.draft-badge { position: fixed; z-index: 90; bottom: 16px; inset-inline-end: 16px;
    padding: 8px 15px; border-radius: 999px; background: #b45309; color: #fff;
    font-size: 13px; font-weight: 700; box-shadow: 0 8px 18px -8px rgba(0, 0, 0, .4); }

/* ── Mobile menu (CSS-only details/summary) ───────────────────────────── */
.site-burger { display: none; position: relative; }
.site-burger > summary { list-style: none; display: grid; place-items: center;
    width: 38px; height: 38px; border: 1px solid var(--site-line-2);
    border-radius: var(--r-sm); color: var(--site-ink); cursor: pointer; }
.site-burger > summary::-webkit-details-marker { display: none; }
.site-burger > summary svg { width: 22px; height: 22px; }
.site-burger[open] > summary { background: var(--site-alt); }
.site-burger-panel {
    position: absolute; inset-inline-end: 0; top: calc(100% + 10px);
    min-width: 250px; padding: 10px; z-index: 50;
    display: flex; flex-direction: column;
    background: var(--site-card);
    border: 1px solid var(--site-line);
    border-radius: var(--r-md); box-shadow: var(--shadow-lift);
}
.site-burger-panel a { padding: 12px; border-radius: var(--r-sm);
    font-size: .92rem; font-weight: 600; color: var(--site-fg); }
.site-burger-panel a:hover, .site-burger-panel a.on { background: var(--site-alt); color: var(--site-ink); }
.site-burger-panel .sub { padding-inline-start: 24px; font-size: .86rem; font-weight: 400; }

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width: 1080px) {
    .site-nav { display: none; }
    .site-burger { display: block; }
    /* .ox-areas columns live in the codex block above — a duplicate rule
       here overrode its 640px single-column drop (launch-day fix) */
}
@media (max-width: 900px) {
    .ox-editorial { grid-template-columns: 1fr; }
    .ox-herostats-grid { grid-template-columns: 1fr 1fr; }
    .ox-herostats-grid > div:nth-child(3) { border-inline-start: 0; }
    .ox-herostats-grid > div:nth-child(n+3) { border-block-start: 1px solid var(--site-line); }
    .ox-stats { grid-template-columns: 1fr 1fr; gap: 28px; }
}
@media (max-width: 640px) {
    .ox-areas { grid-template-columns: 1fr; }
    .site-footer-grid { grid-template-columns: 1fr; padding-block: 44px 32px; }
    .site-header-bar { min-height: 62px; }
    .site-brand img { height: 28px; }
    .site-btn { display: none; }   /* header CTA yields to burger on phones */
}
@media (max-width: 1080px) and (min-width: 641px) {
    .site-footer-grid { grid-template-columns: 1fr 1fr; }
}

/* ── Motion: the site breathes (CSS-only; scroll reveals via native
      scroll-driven animations, progressive under @supports; everything
      gated behind prefers-reduced-motion) ───────────────────────────── */
@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }

    /* Hero: slow Ken Burns settle + staggered content entrance */
    /* Ken Burns pan+zoom: the photo breathes on its own (no scroll
       coupling); min scale 1.06 keeps the ±2% lateral pan covered.
       12s per leg (Dani: 22s still read as static) and a NEGATIVE delay:
       the photo lands mid-leg at full velocity — visibly alive from the
       first frame instead of easing out of a standstill. */
    .ox-hero-media img { animation: ox-kenburns 12s ease-in-out -6s infinite alternate;
        will-change: transform; }
    @keyframes ox-kenburns {
        from { transform: scale(1.06) translateX(-2%); }
        to   { transform: scale(1.16) translateX(2%); }
    }
    .ox-hero-inner > * { opacity: 0; transform: translateY(18px);
        animation: ox-rise .8s cubic-bezier(.2, .7, .3, 1) forwards; }
    .ox-hero-inner > *:nth-child(1) { animation-delay: .05s; }
    .ox-hero-inner > *:nth-child(2) { animation-delay: .16s; }
    .ox-hero-inner > *:nth-child(3) { animation-delay: .3s; }
    .ox-hero-inner > *:nth-child(4) { animation-delay: .44s; }
    .ox-herostats-grid > div { opacity: 0; transform: translateY(12px);
        animation: ox-rise .7s cubic-bezier(.2, .7, .3, 1) forwards; }
    .ox-herostats-grid > div:nth-child(1) { animation-delay: .55s; }
    .ox-herostats-grid > div:nth-child(2) { animation-delay: .67s; }
    .ox-herostats-grid > div:nth-child(3) { animation-delay: .79s; }
    .ox-herostats-grid > div:nth-child(4) { animation-delay: .91s; }
    @keyframes ox-rise { to { opacity: 1; transform: none; } }

    /* Scroll reveals — driven by site.js (IntersectionObserver adds
       .is-in; initial state gated behind html.ox-js so no-JS shows all).
       `translate` is used instead of transform: it composes with the
       cards' transform-based hover lift instead of fighting it. */
    .ox-js .ox-r { opacity: 0; translate: 0 26px;
        transition: opacity .65s cubic-bezier(.2, .7, .3, 1),
                    translate .65s cubic-bezier(.2, .7, .3, 1); }
    /* grid members: fast micro-reveal — the band completes in ~.5s,
       no half-empty mosaic while the visitor reads */
    .ox-js :is(.ox-areas, .ox-quotes, .ox-minis, .ox-stats, .ox-herostats-grid) > .ox-r {
        translate: 0 12px;
        transition-duration: .38s, .38s; }
    .ox-js .ox-r.is-in { opacity: 1; translate: 0 0; }

    /* Living hovers: post covers zoom like the office ones; nav underline
       grows; arrows nudge */
    .ox-posts .m-card__media { transition: transform .6s cubic-bezier(.2, .7, .3, 1); }
    .ox-posts .m-card--lift:hover .m-card__media { transform: scale(1.045); }
    .site-nav > a, .site-nav-sub > a { position: relative; border-block-end: 0 !important; }
    .site-nav > a::after, .site-nav-sub > a::after {
        content: ''; position: absolute; inset-inline: 0; bottom: 18px;
        block-size: 2px; background: var(--site-gold);
        transform: scaleX(0); transform-origin: 0 50%;
        transition: transform .22s cubic-bezier(.2, .7, .3, 1);
    }
    .site-nav > a:hover::after, .site-nav > a.on::after,
    .site-nav-sub > a:hover::after, .site-nav-sub > a.on::after { transform: scaleX(1); }
    .m-link-arrow, .ox-link { transition: color .15s, gap .18s cubic-bezier(.2, .7, .3, 1); }
    .m-link-arrow:hover, .ox-link:hover { gap: 12px; }
}

/* ── Inner pages: practice-areas index, contact, firm photo ──────────── */
/* Index = the codex on light paper: numbered hairline rows, no boxes */
.ox-index { border-block-start: 1px solid var(--site-line-2); }
.ox-index a { display: grid; grid-template-columns: 3.2em minmax(0, 1fr) auto;
    gap: 6px 18px; align-items: baseline; padding: 24px 10px;
    border-block-end: 1px solid var(--site-line-2);
    transition: background .18s ease; }
.ox-index a:hover { background: var(--site-card); }
.ox-index .n { font-family: var(--f-serif); font-weight: 300;
    font-size: 1.15rem; color: var(--site-gold-2); }
.ox-index .t { font-family: var(--f-serif); font-weight: 500;
    font-size: 1.35rem; line-height: 1.2; color: var(--site-ink);
    min-width: 0; }
.ox-index .s { display: block; font-family: var(--f-sans); font-weight: 400;
    font-size: .88rem; line-height: 1.5; color: var(--site-muted);
    margin-block-start: 4px; }
.ox-index .arr { align-self: center; color: var(--site-faint);
    transition: color .15s, transform .2s ease; }
.ox-index a:hover .arr { color: var(--site-gold-2); transform: translateX(4px); }

/* Contact: copy 2fr / form card 3fr, direct-reach rows share the
   officeinfo hairline idiom */
@media (min-width: 900px) { .m-split.ox-consult { grid-template-columns: 2fr 3fr; } }
.ox-contact { margin-block-start: 26px; border-block-start: 1px solid var(--site-line); }
.ox-contact > div { display: flex; gap: 14px; padding-block: 14px;
    border-block-end: 1px solid var(--site-line);
    font-size: 1.02rem; color: var(--site-ink); }
.ox-contact .lbl { flex: 0 0 118px; font-size: .66rem; font-weight: 800;
    letter-spacing: .14em; text-transform: uppercase; color: var(--site-faint);
    padding-block-start: 6px; }
.ox-formcard { background: var(--site-card); border: 1px solid var(--site-line);
    border-radius: var(--r-md); padding: clamp(24px, 3.4vw, 40px); }

/* ── Plain document pages (legal notice, privacy, cookies) ───────────── */
.site-main > .entry { max-width: 76ch; padding-block: clamp(48px, 7vw, 88px); }
.entry h1 { font-weight: 300; font-size: clamp(2.2rem, 3.6vw, 3rem); line-height: 1.1;
    margin: 0 0 18px; padding-block-end: 22px;
    border-block-end: 1px solid var(--site-line-2); }
.entry h2 { font-size: 1.45rem; font-weight: 500; margin: 2.2em 0 .6em; max-width: none; }
.entry p { color: var(--site-fg); line-height: 1.75; margin: 0 0 1.05em; }
.entry a { color: var(--site-gold-2); text-decoration: underline; }
.entry a:hover { color: var(--site-ink); }
.entry ul, .entry ol { color: var(--site-fg); line-height: 1.7;
    padding-inline-start: 1.3em; margin: 0 0 1.05em; }
.entry em { color: var(--site-muted); }

/* Firm page — the office photo band (Olga with a client, Costa Adeje);
   shares its section with the editorial, so it carries the inner gap */
.ox-firmimg { margin: 0 0 clamp(40px, 6vw, 64px); }
.ox-firmimg img { display: block; width: 100%; aspect-ratio: 2.3 / 1;
    object-fit: cover; border-radius: var(--r-md);
    border: 1px solid var(--site-line); }
.ox-firmimg figcaption { margin-block-start: 12px; font-size: .7rem;
    font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
    color: var(--site-faint); }
@media (max-width: 700px) { .ox-firmimg img { aspect-ratio: 16 / 10; } }

/* ── Blog (clonext feature-set, OX theme): index hero + featured card,
      category chips, pager · article head, prose, tags/share, sidebar,
      keep-reading ─────────────────────────────────────────────────────── */
.ox-bloghero-grid { display: grid; grid-template-columns: 1.05fr .95fr;
    gap: clamp(28px, 4.5vw, 72px); align-items: center; }
.ox-bloghero h1 { font-size: clamp(2.2rem, 3.8vw, 3.4rem); }

.ox-searchpill { display: flex; align-items: center; gap: 10px;
    margin-block-start: 26px; padding: 12px 16px; max-width: 360px;
    border: 1px solid #57493f; border-radius: var(--r-md);
    color: #b7a99d; font-size: .9rem;
    transition: border-color .15s, color .15s; }
.ox-searchpill svg { width: 16px; height: 16px; flex: none; }
.ox-searchpill:hover { border-color: var(--site-gold); color: #e8d9c2; }
.ox-searchpill--light { margin-block-start: 0; max-width: none;
    background: var(--site-card); border-color: var(--site-line-2);
    color: var(--site-muted); }
.ox-searchpill--light:hover { border-color: var(--site-gold); color: var(--site-ink); }

/* Featured card: ivory float on the espresso band */
.ox-blogfeat { display: flex; flex-direction: column; background: var(--site-card);
    border: 1px solid var(--site-line); border-radius: var(--r-md); overflow: hidden; }
.ox-blogfeat__media { position: relative; display: block; aspect-ratio: 2 / 1;
    background: var(--site-alt); overflow: hidden; }
.ox-blogfeat__media img { width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform .6s cubic-bezier(.2, .7, .3, 1); }
.ox-blogfeat:hover .ox-blogfeat__media img { transform: scale(1.035); }
.ox-blogfeat__badge { position: absolute; top: 12px; inset-inline-start: 12px;
    font-size: .62rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
    color: #f4f0ea; background: rgba(34, 27, 23, .72); padding: 6px 10px;
    border-radius: var(--r-sm); }
.ox-blogfeat__body { display: flex; flex-direction: column; align-items: flex-start;
    gap: 10px; padding: 24px 26px; }
.ox-blogfeat__title { font-family: var(--f-serif); font-weight: 500; font-size: 1.35rem;
    line-height: 1.25; color: var(--site-ink); text-wrap: balance; }
.ox-blogfeat__text { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden; font-size: .92rem; line-height: 1.6; color: var(--site-fg); }

/* Category chips */
.ox-chips { display: flex; flex-wrap: wrap; gap: 10px;
    margin-block-end: clamp(28px, 4vw, 44px); }
.ox-chips a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px;
    border: 1px solid var(--site-line-2); border-radius: var(--r-sm);
    font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
    color: var(--site-muted);
    transition: color .15s, border-color .15s, background .15s; }
.ox-chips a span { font-size: .7rem; font-weight: 700; color: var(--site-faint); }
.ox-chips a:hover { color: var(--site-ink); border-color: var(--site-ink); }
.ox-chips a.on { background: var(--site-ink); border-color: var(--site-ink); color: #f4f0ea; }
.ox-chips a.on span { color: #cdbfa4; }
.ox-blogempty { color: var(--site-muted); }

/* Pager */
.ox-pager__n { display: grid; place-items: center; min-width: 38px; height: 38px;
    border: 1px solid var(--site-line-2); border-radius: var(--r-sm);
    font-size: .85rem; color: var(--site-muted); }
.ox-pager__n.on { background: var(--site-ink); border-color: var(--site-ink); color: #f4f0ea; }
.ox-pager__n:hover:not(.on) { border-color: var(--site-ink); color: var(--site-ink); }
.ox-pager__step { font-size: .74rem; font-weight: 800; letter-spacing: .14em;
    text-transform: uppercase; color: var(--site-gold-2); }
.ox-pager__step:hover { color: var(--site-ink); }

/* Article head: firm author chip (imagotipo avatar) */
.ox-arthead h1 { max-width: 26ch; }
.ox-authorchip { display: inline-flex; align-items: center; gap: 12px; }
.ox-arthead .ox-authorchip { margin-block-start: 24px; }
.ox-authorchip img { width: 44px; height: 44px; border-radius: 50%; object-fit: contain;
    background: #fff; border: 1px solid var(--site-line-2); padding: 5px; }
.ox-authorchip strong { display: block; font-size: .95rem; color: var(--site-ink); }
.ox-authorchip em { display: block; font-style: normal; font-size: .78rem;
    color: var(--site-muted); margin-block-start: 2px; }
.ox-arthead .ox-authorchip strong { color: #f4f0ea; }
.ox-arthead .ox-authorchip em { color: #b7a99d; }

/* Article body: main column + sticky sidebar */
.ox-artgrid { display: grid; grid-template-columns: minmax(0, 1fr) 320px;
    gap: clamp(32px, 4.5vw, 72px); align-items: start; }
.ox-artcover { margin: 0 0 clamp(28px, 4vw, 44px); }
.ox-artcover img { display: block; width: 100%; aspect-ratio: 16 / 7; object-fit: cover;
    border-radius: var(--r-md); border: 1px solid var(--site-line); }

.ox-prose { max-width: 70ch; font-size: 1.03rem; line-height: 1.8; color: var(--site-fg); }
.ox-prose h2 { font-size: 1.5rem; font-weight: 500; margin: 1.8em 0 .6em; max-width: none; }
.ox-prose h3 { font-size: 1.18rem; font-weight: 600; margin: 1.6em 0 .5em; }
.ox-prose p { margin: 0 0 1.1em; }
.ox-prose ul, .ox-prose ol { margin: 0 0 1.1em; padding-inline-start: 1.35em; }
.ox-prose li { margin-block-end: .4em; }
.ox-prose a { color: var(--site-gold-2); text-decoration: underline; }
.ox-prose a:hover { color: var(--site-ink); }
.ox-prose blockquote { margin: 1.4em 0; padding: 4px 0 4px 20px;
    border-inline-start: 3px solid var(--site-gold);
    font-family: var(--f-serif); font-style: italic; font-size: 1.12rem;
    color: var(--site-ink); }
.ox-prose strong { color: var(--site-ink); }
.ox-prose img { max-width: 100%; border-radius: var(--r-md); }
.ox-prose hr { border: 0; border-block-start: 1px solid var(--site-line); margin: 2em 0; }

/* Deontology note: information, never advice */
.ox-artnote { max-width: 70ch; margin: 26px 0 0; padding-block-start: 14px;
    border-block-start: 1px solid var(--site-line);
    font-size: .8rem; color: var(--site-faint); }

/* In-article CTA band */
.ox-artcta { margin-block-start: clamp(30px, 4vw, 44px); background: var(--site-dark);
    border-radius: var(--r-md); padding: clamp(24px, 3.4vw, 40px); color: #f4f0ea; }
.ox-artcta h2 { color: #fff; font-size: 1.4rem; font-weight: 400; }
.ox-artcta p { color: #cbbfb2; }

/* Tags + share row (share squares echo the footer-social idiom) */
.ox-tagshare { display: flex; flex-wrap: wrap; align-items: center;
    justify-content: space-between; gap: 16px;
    margin-block-start: clamp(26px, 3.4vw, 36px); padding-block-start: 20px;
    border-block-start: 1px solid var(--site-line); }
.ox-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.ox-tagpill { padding: 6px 12px; border: 1px solid var(--site-line-2);
    border-radius: var(--r-sm); font-size: .76rem; color: var(--site-muted); }
.ox-share { display: inline-flex; align-items: center; gap: 8px; }
.ox-share__lbl { margin-inline-end: 4px; font-size: .66rem; font-weight: 800;
    letter-spacing: .14em; text-transform: uppercase; color: var(--site-faint); }
.ox-share a { display: grid; place-items: center; width: 34px; height: 34px;
    border: 1px solid var(--site-line-2); border-radius: var(--r-sm);
    color: var(--site-muted); transition: color .15s, border-color .15s; }
.ox-share a svg { width: 15px; height: 15px; }
.ox-share a:hover { color: var(--site-ink); border-color: var(--site-ink); }

/* Sidebar */
.ox-side { display: grid; gap: 18px; }
.ox-sidecard { background: var(--site-card); border: 1px solid var(--site-line);
    border-radius: var(--r-md); padding: 22px 24px; }
.ox-sidecard > p { margin: 14px 0 0; font-size: .88rem; line-height: 1.65;
    color: var(--site-fg); }
.ox-side__title { margin: 0 0 12px; max-width: none; font-size: .72rem; font-weight: 800;
    letter-spacing: .16em; text-transform: uppercase; color: var(--site-faint); }
.ox-sidelist { display: flex; flex-direction: column; }
.ox-sidelist a { display: flex; justify-content: space-between; gap: 12px;
    padding-block: 9px; border-block-end: 1px solid var(--site-line);
    font-size: .9rem; color: var(--site-fg); }
.ox-sidelist a:last-child { border-block-end: 0; padding-block-end: 0; }
.ox-sidelist a:hover span:first-child { color: var(--site-gold-2); }
.ox-sidelist .n { color: var(--site-faint); font-size: .8rem; }
.ox-sidelist--posts a { flex-direction: column; gap: 3px; }
.ox-sidelist--posts a > span:first-child { font-family: var(--f-serif); font-weight: 500;
    line-height: 1.35; color: var(--site-ink); }
.ox-sidelist--posts .d { font-size: .76rem; color: var(--site-faint); }
.ox-sidecard--dark { background: var(--site-dark); border-color: var(--site-dark);
    color: #f4f0ea; }
.ox-sidecard--dark .ox-side__title { font-family: var(--f-serif); font-size: 1.15rem;
    font-weight: 500; letter-spacing: 0; text-transform: none; color: #fff; }
.ox-sidecard--dark p { margin: 0 0 18px; font-size: .9rem; color: #cbbfb2; }

/* Keep reading */
.ox-keepreading { margin-block-start: clamp(48px, 7vw, 80px);
    padding-block-start: clamp(32px, 5vw, 48px);
    border-block-start: 1px solid var(--site-line); }
.ox-keepreading > h2 { font-size: 1.7rem; margin-block-end: 28px; }

@media (max-width: 1080px) {
    .ox-artgrid { grid-template-columns: 1fr; }
}
@media (max-width: 900px) { .ox-bloghero-grid { grid-template-columns: 1fr; } }

/* ── Contact page v2 (model metrics): 50/50 grid, label-less office
      blocks, COMPACT form card, mid-edge call floater ─────────────────── */
.ox-pagehead .m-sect-head { max-width: none; }   /* core caps at 46em — too tight for a hero band */
.ox-pagehead h1 { max-width: 30ch; }              /* measured on ITS font: roomy, one line at desk */
.ox-pagehead .m-sect-head__sub { max-width: 68ch; }

.ox-contactgrid { display: grid; grid-template-columns: 1fr 1fr;
    gap: clamp(28px, 4vw, 56px); align-items: start; }
.ox-cstack { display: grid; gap: 18px; }
.ox-cstack .ox-cdirect { margin-block-end: 4px; }
.ox-cstack .ox-cintro { margin-block: 6px 4px; }

/* Our-offices intro + COLLAPSED office cards (native details/summary —
   closed by default, the map iframe only loads on open) */
.ox-cintro h2 { font-size: 1.5rem; margin: 0 0 8px; max-width: none; }
.ox-cintro p { margin: 0; font-size: .95rem; line-height: 1.65; color: var(--site-fg); }
.ox-officeinfo a { color: inherit; }
.ox-officeinfo a:hover { color: var(--site-gold-2); }

details.ox-officecard { padding: 0; }   /* the core .m-card pads 37.5px — it was stacking */
details.ox-officecard summary {
    display: grid; grid-template-columns: auto 1fr auto;
    align-items: center; gap: 2px 18px;
    padding: 20px clamp(24px, 3.4vw, 40px);   /* sides = the form card's padding */
    cursor: pointer; list-style: none; }
.ox-officecard summary::-webkit-details-marker { display: none; }
.ox-officecard summary .thumb { grid-column: 1; grid-row: 1 / 4;
    width: 76px; min-width: 76px; height: 76px; object-fit: cover;
    align-self: center; border-radius: var(--r-sm);
    border: 1px solid var(--site-line); }
.ox-officecard summary .ox-meta { grid-column: 2; grid-row: 1; white-space: nowrap; }
.ox-officecard summary .nm { grid-column: 2; grid-row: 2;
    display: inline-flex; align-items: center; gap: 9px;
    font-family: var(--f-serif); font-weight: 500;
    font-size: 1.3rem; color: var(--site-ink); transition: color .15s; }
.ox-officecard summary .nm svg { width: 16px; height: 16px; flex: none;
    color: var(--site-gold); }
.ox-officecard summary:hover .nm { color: var(--site-gold-2); }
.ox-officecard summary .ph { grid-column: 3; grid-row: 2;
    justify-self: end; font-size: .95rem; font-weight: 700; }
.ox-officecard summary .lang { grid-column: 3; grid-row: 3;
    align-self: start; justify-self: end;
    font-size: .76rem; color: var(--site-muted); white-space: nowrap; }
.ox-officecard summary .ph a { display: inline-flex; align-items: center;
    gap: 7px; color: var(--site-ink); text-decoration: none; }
.ox-officecard summary .ph svg { width: 14px; height: 14px; flex: none;
    color: var(--site-gold); }
.ox-officecard summary .ph a:hover { color: var(--site-gold-2); }
/* actions column: live badge above the named pill, right-aligned */
.ox-officecard summary .st { grid-column: 3; grid-row: 1;
    align-self: center; justify-self: end; margin: 0;
    display: inline-flex; align-items: center; gap: 6px;
    padding: 0 10px; min-height: 22px; border-radius: 999px; white-space: nowrap;
    font-size: .7rem; font-weight: 700; letter-spacing: .04em; }
.ox-officecard summary .st:empty { display: none; }
.ox-officecard summary .st::before { content: ''; width: 6px; height: 6px;
    border-radius: 50%; background: currentColor; }
.ox-officecard summary .st.ox-open { color: #4a7c59;
    background: color-mix(in srgb, #4a7c59 10%, transparent); }
.ox-officecard summary .st.ox-closedst { color: var(--site-muted);
    background: var(--site-alt); }
.ox-officecard summary .vm { grid-column: 2; grid-row: 3;
    justify-self: start; align-self: start;
    display: inline-flex; align-items: center; gap: 6px;
    padding: 3px 10px; border: 1px solid var(--site-line-2);
    border-radius: var(--r-sm); white-space: nowrap;
    font-size: .66rem; font-weight: 800; letter-spacing: .1em;
    text-transform: uppercase; color: var(--site-gold-2);
    transition: color .15s, border-color .15s; }
.ox-officecard summary:hover .vm { color: var(--site-ink); border-color: var(--site-ink); }
.ox-officecard summary .vm svg { width: 14px; height: 14px;
    transition: transform .2s ease; }
.ox-officecard summary .vm .hide { display: none; }
details[open].ox-officecard summary .vm .show { display: none; }
details[open].ox-officecard summary .vm .hide { display: inline; }
details[open].ox-officecard summary .vm svg { transform: rotate(180deg); }
@media (max-width: 700px) {
    /* phone layout: status line on top, identity block with the photo,
       then the pill as a full-width tap target */
    details.ox-officecard summary { grid-template-columns: 64px 1fr auto;
        gap: 4px 14px; padding: 18px 20px; }
    .ox-officecard summary .ox-meta { grid-column: 1 / 3; grid-row: 1; }
    .ox-officecard summary .st { grid-column: 3; grid-row: 1;
        justify-self: end; align-self: center; }
    .ox-officecard summary .thumb { grid-column: 1; grid-row: 2 / 5;
        width: 64px; min-width: 64px; height: 64px; align-self: start; }
    .ox-officecard summary .nm { grid-column: 2 / 4; grid-row: 2; }
    .ox-officecard summary .ph { grid-column: 2 / 4; grid-row: 3; justify-self: start; }
    .ox-officecard summary .lang { grid-column: 2 / 4; grid-row: 4;
        justify-self: start; white-space: normal; }
    .ox-officecard summary .vm { grid-column: 1 / 4; grid-row: 5;
        justify-self: stretch; justify-content: center;
        margin-block-start: 12px; padding: 10px; }
    .ox-officecard__body { padding: 0 20px 20px; }
}
.ox-officecard__body { padding: 2px clamp(24px, 3.4vw, 40px) clamp(24px, 3.4vw, 40px); }
.ox-officecard .ox-cmap { aspect-ratio: 1.85 / 1; border-radius: var(--r-sm);
    border: 1px solid var(--site-line); margin-block-end: 12px; }
.ox-officecard .ox-officeinfo { margin-block-start: 4px; }

/* Direct block: small-caps label over the value (model idiom) */
.ox-cdirect { display: grid; grid-template-columns: auto 1fr;
    gap: 4px 16px; align-items: center;
    border-block-end: 1px solid var(--site-line-2);
    padding-block-end: 20px; }   /* leads the stack — rule closes it below */
.ox-cdirect .ic { grid-row: 1 / 3; display: grid; place-items: center;
    width: 48px; height: 48px; border-radius: 50%;
    border: 1px solid var(--site-line-2); background: var(--site-card);
    color: var(--site-gold-2); }
.ox-cdirect .ic svg { width: 20px; height: 20px; }
.ox-cdirect .lbl { display: block; font-size: .66rem; font-weight: 800;
    letter-spacing: .14em; text-transform: uppercase; color: var(--site-faint);
    margin-block-end: 4px; }
.ox-cdirect .mail { margin: 0; font-size: 1.05rem; font-weight: 700; }
.ox-cdirect .mail a { color: var(--site-ink); }
.ox-cdirect .mail a:hover { color: var(--site-gold-2); }
.ox-cdirect > div > p:last-child { margin: 2px 0 0; font-size: .88rem; color: var(--site-muted); }

/* Form card: model-compact — small tracked labels, 38px inputs, 16px gaps */
.ox-formcard h2 { font-size: 1.4rem; margin: 0 0 4px; max-width: none; }
.ox-formsub { margin: 0 0 18px; font-size: .87rem; color: var(--site-muted); }
.ox-formcard--sticky { }   /* sticky removed — Dani: follow-boxes never */
.ox-formcard .m-form { gap: 14px 12px; padding: 0; border: 0;
    background: transparent; }   /* ONE card: ours — not the core's box inside it */
.ox-formcard .m-form__field { gap: .4em; font-size: .68rem; font-weight: 800;
    letter-spacing: .12em; text-transform: uppercase; color: var(--site-muted); }
.ox-formcard .m-form__field input,
.ox-formcard .m-form__field select {
    height: 38px; padding: 0 11px; font-size: .93rem; line-height: 36px;
    letter-spacing: normal; text-transform: none; font-weight: 400; }
.ox-formcard .m-form__check input { height: auto; }
/* submit at the form's own scale; ESPRESSO like the header Book-now —
   gold buttons live on dark bands, brown on ivory (one language) */
.ox-formcard .m-form__submit { height: 38px; padding: 0 20px;
    font-size: .72rem; font-weight: 800; letter-spacing: .14em;
    text-transform: uppercase; border-radius: var(--r-sm);
    background: #493d3a; color: #f4f0ea; }
.ox-formcard .m-form__submit:hover { background: #382e2b; filter: none; }
.ox-formcard .m-form__field textarea {
    padding: 8px 11px; font-size: .93rem; letter-spacing: normal;
    text-transform: none; font-weight: 400;
    height: 96px; min-height: 0; resize: vertical; }
.ox-formcard .m-form__check { font-size: .8rem; color: var(--site-fg);
    align-items: center; }
/* full name gets the whole row (surnames are long in our market);
   email + phone pair up beneath it */
.ox-formcard .m-form__field:has(input[autocomplete="name"]),
.ox-formcard .m-form__field:has(select:not([name="time"])) { grid-column: 1 / -1; }
/* booking: preferred date + preferred time share one row, 50/50 (the time
   select is exempted from the full-row select rule; date inputs half-flow) */

@media (max-width: 900px) {
    .ox-contactgrid { grid-template-columns: 1fr; }
    /* /book premium: on phones the FORM leads — a "Book now" tap wants the
       form, not a scroll past the theory */
    .ox-bookgrid > aside { order: -1; }
}
@media (max-width: 640px) {
    /* call rows stack: office + languages, number beneath, full row tappable */
    .ox-callblock .row { flex-direction: column; gap: 6px; }
}

/* ── Book page: what-to-expect list, prefer-to-call, booking form ─────── */
.ox-expect { display: grid; gap: 20px; margin-block: 18px 32px; }
.ox-expect > div { display: grid; grid-template-columns: auto 1fr; gap: 2px 16px; }
.ox-expect .n { grid-row: 1 / 3; padding-block-start: 3px;
    font-family: var(--f-serif); font-weight: 300; font-size: 1.05rem;
    color: var(--site-gold-2); }
.ox-expect .t { font-family: var(--f-serif); font-weight: 500;
    font-size: 1.15rem; color: var(--site-ink); }
.ox-expect .b { font-size: .93rem; line-height: 1.6; color: var(--site-fg); }
.ox-callblock { border-block-start: 1px solid var(--site-line-2);
    padding-block-start: 20px; }
/* inside the closing form+FAQ band the call rows sit right under the FAQ
   at a fixed distance (bottom-anchoring broke when the taller appointment
   tab stretched the row) — no separator line */
.ox-faqform .ox-faq { margin-block-end: 28px; }
.ox-faqform .ox-callblock { border-block-start: 0; padding-block-start: 0; }
.ox-callblock h2, .ox-callblock h3 { font-family: var(--f-serif);
    font-weight: 500; color: var(--site-ink);
    font-size: 1.5rem; margin: 0 0 6px; max-width: none; }
.ox-callblock .row { display: flex; justify-content: space-between;
    align-items: flex-start; gap: 18px; padding-block: 13px;
    border-block-end: 1px solid var(--site-line); }
.ox-callblock .row:last-child { border-block-end: 0; }
.ox-callblock .who strong { display: block; font-size: .95rem;
    color: var(--site-ink); }
.ox-callblock .who .lang { display: block; margin-block-start: 2px;
    font-size: .78rem; color: var(--site-muted); }
.ox-callblock .num { flex: none; font-size: .98rem; font-weight: 700;
    color: var(--site-ink); text-decoration: none; }
.ox-callblock .num:hover { color: var(--site-gold-2); }
/* espresso action on ivory (the header Book-now language) */
.ox-btn--book { background: #493d3a; color: #f4f0ea; }
.ox-btn--book:hover { background: #382e2b; transform: translateY(-1px); }
.ox-cstack > .ox-btn--book { justify-content: center; }
/* booking form rows: type/area full · date+time pair · NAME FULL ·
   phone+email pair (Dani 2026-07-16) */
.ox-bookform .m-form__field:has(select) { grid-column: auto; }
.ox-bookform .m-form__field:has(select[name="type"]),
.ox-bookform .m-form__field:has(select[name="area"]) { grid-column: 1 / -1; }
.ox-bookform .m-form__field:has(input[type="email"]) { grid-column: auto; }

/* ── Insights: the featured post leads the CONTENT as a wide horizontal
      card — the dark head stays clean (Dani, 2026-07-17) ──────────────── */
.ox-blogfeat--lead { display: grid; grid-template-columns: 1.1fr 1fr;
    margin-block-end: clamp(28px, 4vw, 44px); }
.ox-blogfeat--lead .ox-blogfeat__media { aspect-ratio: auto;
    min-height: 300px; height: 100%; }
.ox-blogfeat--lead .ox-blogfeat__body { justify-content: center;
    gap: 12px; padding: clamp(24px, 3.4vw, 44px); }
.ox-blogfeat--lead .ox-blogfeat__title { font-size: clamp(1.5rem, 2.4vw, 2.05rem); }
.ox-blogfeat--lead .ox-blogfeat__text { -webkit-line-clamp: 3; }
@media (max-width: 900px) {
    .ox-blogfeat--lead { grid-template-columns: 1fr; }
    .ox-blogfeat--lead .ox-blogfeat__media { aspect-ratio: 2 / 1;
        min-height: 0; height: auto; }
}

/* ── Practice-areas INDEX: the extended codex (model-faithful) — gold
      icon, roman watermark, name, 2-line desc, learn-more ─────────────── */
.ox-areasx { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
    background: #5a4a44; border: 1px solid #5a4a44; }
.site-main .ox-areasx a { text-decoration: none; }
.ox-areasx a { position: relative; display: flex; flex-direction: column;
    gap: 10px; min-height: 216px; padding: clamp(24px, 2.6vw, 34px);
    background: var(--site-dark-2); transition: background .18s ease; }
.ox-areasx a:hover { background: var(--site-dark-3); }
.ox-areasx .num { position: absolute; top: 16px; inset-inline-end: 22px;
    font-family: var(--f-serif); font-weight: 300; line-height: 1;
    font-size: clamp(2.4rem, 3.6vw, 3.2rem); color: #fff; opacity: .08; }
.ox-areasx .ic { color: var(--site-gold); }
.ox-areasx .ic svg { width: 22px; height: 22px; display: block; }
.ox-areasx .t { margin-block-start: 4px; font-family: var(--f-serif);
    font-weight: 500; font-size: 1.28rem; line-height: 1.25; color: #fff; }
.ox-areasx .d { display: -webkit-box; -webkit-line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
    font-size: .9rem; line-height: 1.6; color: #b7a99d; }
.ox-areasx .more { margin-block-start: auto; padding-block-start: 12px;
    display: inline-flex; align-items: center; gap: 8px;
    font-size: .68rem; font-weight: 800; letter-spacing: .16em;
    text-transform: uppercase; color: var(--site-gold);
    transition: gap .18s cubic-bezier(.2, .7, .3, 1); }
.ox-areasx .more::after { content: '→'; }
.ox-areasx a:hover .more { gap: 13px; }
@media (max-width: 1080px) and (min-width: 641px) {
    .ox-areasx { grid-template-columns: 1fr 1fr; }
    .ox-areasx a:last-child { grid-column: span 2; }   /* 15 cells, no hole */
}
@media (max-width: 640px) {
    .ox-areasx { grid-template-columns: 1fr; }
    .ox-areasx a { min-height: 0; }
}

/* ── Practice-areas index, act II: the process strip + FAQ ───────────── */
.ox-steps { display: grid; grid-template-columns: repeat(4, 1fr);
    gap: clamp(22px, 3vw, 40px); }
.ox-steps > div { display: grid; grid-template-columns: auto 1fr; gap: 2px 14px; }
.ox-steps .n { grid-row: 1 / 3; padding-block-start: 3px;
    font-family: var(--f-serif); font-weight: 300; font-size: 1.05rem;
    color: var(--site-gold-2); }
.ox-steps .t { font-family: var(--f-serif); font-weight: 500;
    font-size: 1.12rem; color: var(--site-ink); }
.ox-steps .b { font-size: .9rem; line-height: 1.6; color: var(--site-fg); }
@media (max-width: 1080px) { .ox-steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px)  { .ox-steps { grid-template-columns: 1fr; } }

.ox-faqgrid { display: grid; grid-template-columns: 0.85fr 1.15fr;
    gap: clamp(32px, 5vw, 80px); align-items: start; }
.ox-faqintro h2 { margin-block-end: 14px; }
.ox-faqintro p { margin: 0 0 16px; font-size: .98rem; line-height: 1.7;
    color: var(--site-fg); max-width: 44ch; }
@media (max-width: 900px) { .ox-faqgrid { grid-template-columns: 1fr; } }
.ox-faq { border-block-start: 1px solid var(--site-line-2); }
details.ox-faq-item { border-block-end: 1px solid var(--site-line-2); }
.ox-faq-item summary { display: flex; align-items: center; gap: 16px;
    padding: 18px 4px; cursor: pointer; list-style: none;
    font-family: var(--f-serif); font-weight: 500; font-size: 1.12rem;
    color: var(--site-ink); transition: color .15s; }
.ox-faq-item summary::-webkit-details-marker { display: none; }
.ox-faq-item summary:hover { color: var(--site-gold-2); }
.ox-faq-item summary svg { width: 16px; height: 16px; flex: none;
    margin-inline-start: auto; color: var(--site-faint);
    transition: transform .2s ease; }
details[open].ox-faq-item summary svg { transform: rotate(180deg); }
.ox-faq-item p { margin: 0; padding: 0 4px 18px;
    font-size: .95rem; line-height: 1.7; color: var(--site-fg); max-width: 66ch; }

/* ── Area LANDING (model detail, geo-SEO layer) — head with watermark,
      photo, checks, steps, callout, area FAQ, related, side rail ──────── */
.ox-arealand-head { position: relative; overflow: hidden; }
.ox-arealand-head .num { position: absolute; top: 8px; inset-inline-end: 4vw;
    font-family: var(--f-serif); font-weight: 300; line-height: 1;
    font-size: clamp(8rem, 16vw, 15rem); color: #fff; opacity: .05;
    pointer-events: none; }
.ox-arealand-head h1 { padding-block-end: 18px; position: relative; }
.ox-arealand-head h1::after { content: ''; position: absolute; bottom: 0;
    inset-inline-start: 2px; width: 64px; height: 2px; background: var(--site-gold); }

.ox-areagrid { display: grid; grid-template-columns: minmax(0, 1fr) 320px;
    gap: clamp(32px, 4.5vw, 72px); align-items: start; }
.ox-areaimg { margin: 0 0 clamp(24px, 3.4vw, 40px); }
.ox-areaimg img { display: block; width: 100%; aspect-ratio: 16 / 7;
    object-fit: cover; border-radius: var(--r-md);
    border: 1px solid var(--site-line); }
.ox-arealand h2 { font-size: 1.5rem; margin: clamp(28px, 4vw, 44px) 0 18px; max-width: none; }
.ox-arealand > p { font-size: 1.03rem; line-height: 1.8;
    color: var(--site-fg); margin: 0 0 1.1em; }

.ox-checks { list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px 28px; }
.ox-checks li { position: relative; padding-inline-start: 26px;
    font-size: .95rem; line-height: 1.55; color: var(--site-fg); }
.ox-checks li::before { content: '✓'; position: absolute; inset-inline-start: 0;
    color: var(--site-gold); font-weight: 700; }

.ox-arealand .ox-steps { grid-template-columns: 1fr 1fr; }

.ox-callout { margin: clamp(28px, 4vw, 44px) 0; padding: 20px 24px;
    background: var(--site-alt); border-inline-start: 3px solid var(--site-gold);
    border-radius: var(--r-sm); font-family: var(--f-serif); font-style: italic;
    font-size: 1.1rem; line-height: 1.6; color: var(--site-ink); }
/* when the callout closes a band, its bottom margin must not stack on the
   section padding (Dani: extra air after Olga's card) */
.m-inner > .ox-callout:last-child { margin-block-end: 0; }

.ox-related { display: block; margin-block-start: clamp(28px, 4vw, 44px);
    padding: 20px 24px; background: var(--site-card);
    border: 1px solid var(--site-line); border-radius: var(--r-md);
    transition: border-color .15s; }
.site-main .ox-related { text-decoration: none; }
.ox-related:hover { border-color: var(--site-gold); }
.ox-related .rel-eyebrow { display: block; font-size: .66rem; font-weight: 800;
    letter-spacing: .14em; text-transform: uppercase; color: var(--site-gold-2);
    margin-block-end: 6px; }
.ox-related .rel-title { font-family: var(--f-serif); font-weight: 500;
    font-size: 1.12rem; color: var(--site-ink); }

.ox-areaside { display: grid; gap: 18px; }
.ox-areaside .ox-sidelist a { justify-content: flex-start; gap: 0;
    text-decoration: none; }
.ox-areaside .ox-sidelist .rn { color: var(--site-gold-2); font-family: var(--f-serif);
    flex: 0 0 2.2em; }
.ox-sidecard--dark .side-lines { display: grid; gap: 6px; margin-block-start: 16px; }
.ox-sidecard--dark .side-lines span { font-size: .85rem; color: #cbbfb2; }
.ox-sidecard--dark .side-lines a { color: #f4f0ea; font-weight: 700; text-decoration: none; }
.ox-sidecard--dark .side-lines a:hover { color: var(--site-gold); }

@media (max-width: 1080px) {
    .ox-areagrid { grid-template-columns: 1fr; }
    .ox-arealand-head .num { display: none; }
}
@media (max-width: 640px) { .ox-checks, .ox-arealand .ox-steps { grid-template-columns: 1fr; } }

/* ── Area landing v2: law-firm side rail + hybrid form tabs ──────────── */
/* Talk to a lawyer: live office status makes the card breathe */
.ox-sidecard--dark .side-live { display: grid; gap: 8px; margin-block-start: 18px; }
.ox-sidecard--dark .side-live > div { display: flex; align-items: baseline;
    justify-content: space-between; gap: 10px; font-size: .85rem; color: #cbbfb2; }
.ox-sidecard--dark .side-live a { color: #f4f0ea; font-weight: 700; text-decoration: none; white-space: nowrap; }
.ox-sidecard--dark .side-live a:hover { color: var(--site-gold); }
.ox-sidecard--dark .side-live .st { font-size: .72rem; }
.ox-sidecard--dark .side-live .st.ox-open { color: #7fb08d; font-weight: 700; }
.ox-sidecard--dark .side-live .st.ox-closedst { color: #8d8178; }
.ox-sidecard--dark .side-live .who { display: grid; gap: 1px; }
.ox-sidecard--dark .side-live .who em { font-style: normal; font-size: .74rem; color: #8d8178; }

/* the lawyer card — E-E-A-T: a face and a name behind the page */
.ox-lawcard { text-align: left; }
.ox-lawcard img { width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover;
    object-position: top; border-radius: var(--r-sm); margin-block-end: 12px; }
.ox-lawcard .nm { display: block; font-family: var(--f-serif); font-weight: 500;
    font-size: 1.1rem; color: var(--site-ink); }
.ox-lawcard .rl { display: block; font-size: .8rem; color: var(--site-muted); margin-block: 2px 6px; }
.ox-lawcard .lg { display: block; font-size: .7rem; font-weight: 700;
    letter-spacing: .1em; text-transform: uppercase; color: var(--site-gold-2); }

/* hybrid intake: CSS-only tabs — Message | Appointment */
.ox-hybrid { max-width: 720px; }
.ox-hybrid input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
/* keyboard focus lands on the hidden radios — surface it on their labels */
#oxh-msg:focus-visible ~ .ox-hybrid-tabs label[for="oxh-msg"],
#oxh-book:focus-visible ~ .ox-hybrid-tabs label[for="oxh-book"] {
    outline: 2px solid var(--site-gold-2); outline-offset: 2px; }
.ox-hybrid-tabs { display: flex; gap: 8px; margin-block-end: 22px; }
.ox-hybrid-tabs label { padding: 10px 18px; border: 1px solid var(--site-line-2);
    border-radius: var(--r-sm); cursor: pointer;
    font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
    color: var(--site-muted); transition: color .15s, border-color .15s, background .15s; }
.ox-hybrid-tabs label:hover { color: var(--site-ink); border-color: var(--site-ink); }
#oxh-msg:checked ~ .ox-hybrid-tabs label[for="oxh-msg"],
#oxh-book:checked ~ .ox-hybrid-tabs label[for="oxh-book"] {
    background: var(--site-ink); border-color: var(--site-ink); color: #f4f0ea; }
.ox-hybrid-panel { display: none; }
#oxh-msg:checked ~ .ox-hybrid-body .ox-hybrid-panel--msg { display: block; }
#oxh-book:checked ~ .ox-hybrid-body .ox-hybrid-panel--book { display: block; }

/* on-topic posts close the side rail UNBOXED: each row stands alone on
   the page background — no card, no hairlines (Dani, 2026-07-17) */
.ox-sidetopic { padding-inline: 4px; }
.ox-sidetopic .ox-minis { display: grid; gap: 16px; margin-block-start: 12px; }
.ox-sidetopic .ox-mini { grid-template-columns: 76px 1fr; gap: 12px;
    padding-block: 0; border: 0; }
.ox-sidetopic .ox-mini__thumb { width: 76px; border-radius: var(--r-sm); }
.ox-sidetopic .ox-mini__title { font-size: .92rem; }
.ox-sidetopic .ox-mini .ox-meta { font-size: .68rem; }

/* FAQ + hybrid intake share the closing band, full width */
.ox-faqform { display: grid; grid-template-columns: 1.05fr .95fr;
    gap: clamp(32px, 5vw, 80px); align-items: start; }
.ox-faqform h2 { font-size: 1.5rem; margin: 8px 0 18px; max-width: none; }
@media (max-width: 1080px) { .ox-faqform { grid-template-columns: 1fr; } }

/* Olga card, warmer: bio line + door to the team */
.ox-lawcard .bio { display: block; margin-block-start: 8px; font-size: .86rem;
    line-height: 1.6; color: var(--site-fg); }
.ox-lawcard .ox-link { margin-block-start: 10px; font-size: .68rem; }

/* every-area strip: full-width closer before the footer */
.ox-allareas { display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 12px 28px; }
.ox-allareas a { display: flex; align-items: baseline; gap: 10px;
    font-size: .95rem; color: var(--site-fg); text-decoration: none;
    transition: color .15s; }
.site-main .ox-allareas a { text-decoration: none; }
.ox-allareas a:hover { color: var(--site-gold-2); }
.ox-allareas .rn { flex: 0 0 2em; font-family: var(--f-serif);
    color: var(--site-gold-2); }
@media (max-width: 1080px) { .ox-allareas { grid-template-columns: 1fr 1fr 1fr; } }
@media (max-width: 900px)  { .ox-allareas { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px)  { .ox-allareas { grid-template-columns: 1fr; gap: 10px; } }

/* ── Area landing, identity pass: is-this-you band + language card ────── */
.ox-scen { display: grid; grid-template-columns: repeat(3, 1fr);
    gap: clamp(18px, 2.4vw, 28px); }
.ox-scen figure { margin: 0; display: flex; flex-direction: column; gap: 12px;
    padding: clamp(22px, 2.6vw, 30px); background: var(--site-dark-2);
    border-radius: var(--r-md); }
.ox-scen blockquote { margin: 0; font-family: var(--f-serif); font-style: italic;
    font-size: 1.06rem; line-height: 1.55; color: #f4f0ea; }
.ox-scen figcaption { margin-block-start: auto; font-size: .8rem; font-weight: 700;
    letter-spacing: .04em; color: var(--site-gold); }
@media (max-width: 900px) { .ox-scen { grid-template-columns: 1fr; } }
/* linked story plates (areas index): the whole card routes to its area */
.ox-scen > a { display: flex; flex-direction: column; gap: 12px;
    padding: clamp(22px, 2.6vw, 30px); background: var(--site-dark-2);
    border-radius: var(--r-md); text-decoration: none;
    transition: transform .18s, background .18s; }
.ox-scen > a:hover { transform: translateY(-3px); background: #443a31; }
.ox-scen .cap { margin-block-start: auto; font-size: .8rem; font-weight: 700;
    letter-spacing: .04em; color: var(--site-gold); }
.ox-scen > a:hover .cap { color: #d9b075; }

.ox-langcard .langs { display: block; margin-block-start: 10px;
    font-family: var(--f-serif); font-size: 1.02rem; line-height: 1.7;
    color: var(--site-ink); }
.ox-langcard p { margin: 10px 0 0; font-size: .84rem; color: var(--site-muted); }

/* ── Area landing v2: one-page firm site, no sidebar ──────────────────── */
.ox-heroctas { display: flex; flex-wrap: wrap; gap: 14px;
    margin-block-start: 28px; }
.ox-btn--tel { display: none; }
@media (max-width: 640px) { .ox-heroctas .ox-btn--tel { display: inline-flex; } }

.ox-areaintro { display: grid; grid-template-columns: 5fr 6fr;
    gap: clamp(32px, 5vw, 72px); align-items: center; }
.ox-areaintro figure { margin: 0; align-self: stretch; }
.ox-areaintro img { width: 100%; height: 100%; min-height: 340px;
    object-fit: cover; border-radius: var(--r-md); display: block; }
.ox-areaintro h2 { max-width: none; }
@media (max-width: 900px) {
    .ox-areaintro { grid-template-columns: 1fr; }
    .ox-areaintro img { min-height: 0; aspect-ratio: 16 / 10; }
}

/* engraved-emblem panel: espresso plate + certificate frame, any aspect */
.ox-vecpanel { position: relative; display: grid; place-items: center;
    background: radial-gradient(120% 100% at 50% 40%, #362d26, #292219 88%);
    border-radius: var(--r-md); padding: clamp(32px, 4vw, 48px);
    min-height: 340px; }
.ox-vecpanel::before { content: ''; position: absolute; inset: 14px;
    border: 1px solid rgba(185, 138, 85, .45); border-radius: 4px;
    pointer-events: none; }
.ox-vecpanel::after { content: ''; position: absolute; inset: 21px;
    border: 1px solid rgba(239, 233, 223, .13); border-radius: 2px;
    pointer-events: none; }
.ox-vecpanel svg { width: min(100%, 360px); height: auto; }

/* fused practice band: intro split + story plates + scope checks */
.ox-scenrow, .ox-scoperow { margin-block-start: clamp(46px, 6vw, 76px); }
.ox-scenrow .ox-eyebrow, .ox-scoperow .ox-eyebrow { display: block;
    margin-block-end: 6px; }
.ox-scenrow h3, .ox-scoperow h3, .ox-scopefill h3 { font-family: var(--f-serif);
    font-weight: 500; font-size: 1.5rem; line-height: 1.25;
    color: var(--site-ink); margin: 0 0 24px; }

/* scope folded under the editorial title: balances the split's height */
.ox-editorial { row-gap: clamp(30px, 4vw, 48px); }
.ox-editorial .ox-scopefill { grid-column: 1; align-self: start; }
.ox-scopefill h3 { font-size: 1.3rem; margin: 0 0 18px; }
.ox-scopefill .ox-eyebrow { display: block; margin-block-end: 6px; }
@media (min-width: 641px) {
    .ox-scopefill .ox-checks li { min-height: 3.1em; }
}
@media (min-width: 901px) {
    .ox-editorial .ox-editorial-body { grid-column: 2; grid-row: 1 / span 2; }
}
@media (max-width: 900px) {
    .ox-editorial .ox-scopefill { order: 3; }
}

.ox-checksband .ox-checks { grid-template-columns: repeat(3, 1fr);
    gap: 14px 40px; }
.ox-checksband .ox-checks li { font-size: .98rem; }
@media (max-width: 900px) { .ox-checksband .ox-checks { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ox-checksband .ox-checks { grid-template-columns: 1fr; } }

.ox-leadband { display: grid; grid-template-columns: minmax(240px, 320px) 1fr;
    gap: clamp(32px, 5vw, 72px); align-items: center; }
.ox-leadband figure { margin: 0; }
.ox-leadband img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover;
    border-radius: var(--r-md); display: block; }
.ox-leadband h2 { margin: 6px 0 4px; max-width: none; }
.ox-leadband .rl { display: block; margin-block-end: 18px; font-size: .74rem;
    font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
    color: var(--site-gold-2); }
.ox-leadband .langs { display: block; margin-block-start: 20px;
    font-family: var(--f-serif); font-size: 1.06rem; color: var(--site-ink); }
.ox-leadband .langnote { margin: 6px 0 0; font-size: .84rem;
    color: var(--site-muted); }
.ox-leadband .ox-link { margin-block-start: 18px; display: inline-block; }
@media (max-width: 800px) {
    .ox-leadband { grid-template-columns: 1fr; }
    .ox-leadband img { max-width: 340px; }
}

/* on-this-topic band: the featured card goes horizontal and contained */
.ox-topicband .ox-feat { display: grid; grid-template-columns: 2fr 3fr; }
.ox-topicband .ox-feat__media { height: 100%; min-height: 240px;
    aspect-ratio: auto; }
.ox-topicband .ox-feat__body { padding: clamp(24px, 3.4vw, 44px); }
.ox-topicband .ox-minis { margin-block-start: 18px; }
@media (max-width: 800px) {
    .ox-topicband .ox-feat { grid-template-columns: 1fr; }
    .ox-topicband .ox-feat__media { min-height: 0; aspect-ratio: 2 / 1; }
}

/* prefer-to-call rows under the closing-band FAQ */
.ox-faqcall { margin-block-start: 28px; padding-block-start: 22px;
    border-block-start: 1px solid var(--site-line-2); display: grid; gap: 10px; }
.ox-faqcall .lbl { font-size: .7rem; font-weight: 800; letter-spacing: .16em;
    text-transform: uppercase; color: var(--site-gold-2); }
.ox-faqcall .row { display: flex; justify-content: space-between;
    align-items: baseline; gap: 12px; flex-wrap: wrap; }
.ox-faqcall .row a { font-weight: 700; color: var(--site-ink);
    text-decoration: none; }
.ox-faqcall .row a:hover { color: var(--site-gold-2); }
.ox-faqcall .row em { font-style: normal; font-size: .82rem;
    color: var(--site-muted); margin-inline-start: 8px; }
.ox-faqcall .st { font-size: .72rem; font-weight: 700; letter-spacing: .06em; }
.ox-faqcall .st.ox-open { color: #4a7c59; }
.ox-faqcall .st.ox-closedst { color: var(--site-muted); }


/* ── search: the OX page skin over the core /search route ─────────────── */
.ox-searchform { margin-block-start: 26px; display: flex; align-items: center;
    gap: 12px; max-width: 560px; padding: 6px 6px 6px 16px;
    background: var(--site-card); border: 1px solid var(--site-line);
    border-radius: var(--r-sm); }
.ox-searchform svg { flex: none; width: 17px; height: 17px;
    stroke: var(--site-muted); }
.ox-searchform input { flex: 1 1 auto; min-width: 0; border: 0; outline: 0;
    background: transparent; font: inherit; font-size: .95rem;
    color: var(--site-ink); height: 38px; }
.ox-searchform button { flex: none; border: 0; cursor: pointer; height: 38px;
    padding: 0 22px; border-radius: var(--r-sm); background: #493d3a;
    color: #f4f0ea; font-size: .7rem; font-weight: 800; letter-spacing: .16em;
    text-transform: uppercase; transition: background .15s; }
.ox-searchform button:hover { background: #382e2b; }

.ox-search__list { max-width: 800px; display: flex; flex-direction: column; }
.ox-search__item { display: block; padding: 22px 2px;
    border-block-end: 1px solid var(--site-line); text-decoration: none; }
.ox-search__item:last-child { border-block-end: 0; }
.ox-search__type { display: block; font-size: .66rem; font-weight: 800;
    letter-spacing: .18em; text-transform: uppercase; color: var(--site-gold-2); }
.ox-search__title { display: block; margin-block-start: 6px;
    font-family: var(--f-serif); font-weight: 500; font-size: 1.25rem;
    line-height: 1.3; color: var(--site-ink); transition: color .15s; }
.ox-search__item:hover .ox-search__title { color: var(--site-gold-2); }
.ox-search__excerpt { display: block; margin-block-start: 6px;
    font-size: .92rem; line-height: 1.6; color: var(--site-fg); }
.ox-search__excerpt mark, .site-search__excerpt mark {
    background: color-mix(in srgb, var(--site-gold) 18%, transparent);
    color: var(--site-ink); font-weight: 600; border-radius: 3px; padding: 0 2px; }
.ox-search__empty { max-width: 560px; }
.ox-search__empty .big { margin: 0 0 8px; font-family: var(--f-serif);
    font-size: 1.4rem; color: var(--site-ink); }
.ox-search__empty p { margin: 0; color: var(--site-fg); }

/* header search overlay (core .site-search dialog classes, OX skin) */
.site-search { border: 0; padding: 0; margin: 12vh auto auto;
    width: min(640px, 92vw); border-radius: var(--r-md);
    background: var(--site-card); }
.site-search::backdrop { background: rgba(30, 24, 18, .5);
    backdrop-filter: blur(3px); }
.site-search__bar { display: flex; align-items: center; gap: 10px;
    padding: 16px 18px; border-bottom: 1px solid var(--site-line); }
.site-search__input { flex: 1 1 auto; min-width: 0; border: 0; outline: 0;
    background: transparent; font: inherit; font-size: 17px;
    color: var(--site-ink); }
.site-search__go { flex: 0 0 auto; border: 0; cursor: pointer; width: 38px;
    height: 38px; border-radius: var(--r-sm); background: #493d3a;
    color: #f4f0ea; font-size: 18px; line-height: 1; }
.site-search__go:hover { background: #382e2b; }
.site-search__results { max-height: min(52vh, 460px); overflow-y: auto;
    padding: 10px; }
.site-search__empty { margin: 0; padding: 18px 12px 22px; text-align: center;
    color: var(--site-muted); font-size: .95rem; }
.site-search__item { display: flex; gap: 14px; align-items: center;
    padding: 10px; border-radius: var(--r-sm); text-decoration: none;
    color: inherit; }
.site-search__item:hover, .site-search__item.is-active { background: var(--site-alt); }
.site-search__thumb { flex: 0 0 92px; aspect-ratio: 16 / 10;
    border-radius: var(--r-sm); overflow: hidden; display: grid;
    place-items: center;
    background: radial-gradient(120% 100% at 50% 40%, #362d26, #292219); }
.site-search__thumb img { width: 100%; height: 100%; object-fit: cover;
    display: block; }
.site-search__thumb svg { width: 26px; height: 26px; fill: none;
    stroke: rgba(244, 240, 234, .8); stroke-width: 1.5;
    stroke-linecap: round; stroke-linejoin: round; }
.site-search__body { flex: 1 1 auto; min-width: 0; display: block; }
.site-search__type { display: block; font-size: .64rem; font-weight: 800;
    letter-spacing: .16em; text-transform: uppercase; color: var(--site-gold-2); }
.site-search__title { display: block; margin-top: 2px;
    font-family: var(--f-serif); font-weight: 500; font-size: 1rem;
    line-height: 1.3; color: var(--site-ink); }
.site-search__excerpt { display: block; margin-top: 2px; font-size: .82rem;
    line-height: 1.5; color: var(--site-fg); overflow: hidden;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.site-search__all { display: block; padding: 13px 18px;
    border-top: 1px solid var(--site-line); text-align: center;
    text-decoration: none; font-size: .7rem; font-weight: 800;
    letter-spacing: .16em; text-transform: uppercase; color: var(--site-gold-2); }
.site-search__all:hover { background: var(--site-alt); }

/* header on phones: Access + language collapse to search-sized icon squares */
@media (max-width: 760px) {
    /* tighter bar: closer buttons, less side padding, smaller brand */
    .site-header .m-inner { padding-inline: 12px; }
    .site-header-bar { gap: 10px; }
    .site-actions { gap: 7px; }
    .site-brand img { height: 24px; }
    .site-access { width: 38px; height: 38px; padding: 0; gap: 0;
        display: grid; place-items: center; }
    .site-access span { display: none; }
    .site-access svg { width: 17px; height: 17px; }
    /* language switcher shows just the CODE (EN, ES…) on phones */
    .site-lang summary { width: 38px; height: 38px; padding: 0; gap: 0;
        display: grid; place-items: center; }
    .site-lang summary svg { display: none; }
    .site-lang summary > span { display: block; font-size: .72rem;
        font-weight: 800; letter-spacing: .08em; }
}