/*
 * e|spaces Global Typography & Utilities
 * Extracted from Craft CMS main.scss compiled output.
 *
 * IMPORTANT: Uses !important throughout because TwentyTwentyFive
 * block theme uses high-specificity :where() selectors that
 * override normal cascade. This is the only reliable way to
 * ensure our styles win in an FSE child theme.
 */


/* ═══ TWENTYTWENTYFIVE BLOCK THEME LAYOUT OVERRIDES ══════════════════
   TT5 wraps all content in .wp-site-blocks with layout constraints
   (max-width, margin auto, etc.) that prevent custom templates from
   rendering full-width. These rules bust out of those constraints
   for ALL our custom template pages.
   ════════════════════════════════════════════════════════════════════ */

/* Remove global content size constraints */
.wp-site-blocks {
    --wp--style--global--content-size: none !important;
    --wp--style--global--wide-size: none !important;
}

/* Hide TT5 default header/nav — replaced by our custom espaces header */
#header[role="banner"] { display: none !important; height: 0 !important; overflow: hidden !important; margin: 0 !important; padding: 0 !important; }
#header[role="banner"] + hr { display: none !important; }
/* Hide TT5 default footer */
.wp-site-blocks > footer { display: none !important; }
#footer[role="contentinfo"] { display: none !important; }
#footer[role="contentinfo"] + hr { display: none !important; }
/* Hide "Proudly powered by WordPress" and any TT5 footer credit */
.wp-site-blocks > p:last-child a[href*="wordpress.org"] { display: none !important; }
.wp-site-blocks > p:last-child:has(a[href*="wordpress.org"]) { display: none !important; }
.powered-by-wordpress, .site-info { display: none !important; }
a[href="https://wordpress.org/"] { display: none !important; }
.wp-site-blocks > header { display: none !important; }
.wp-site-blocks > .wp-block-template-part { display: none !important; }
/* Kill margin gap left by hidden header on all wp-site-blocks children */
body .wp-site-blocks > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
body .wp-site-blocks > .espaces-notification-bar { margin-block-start: 0 !important; }
body .wp-site-blocks > .espaces-header { margin-block-start: 0 !important; }
:root .is-layout-flow > .espaces-notification-bar { margin-block-start: 0 !important; }
:root .is-layout-flow > .espaces-header { margin-block-start: 0 !important; }
:root .is-layout-constrained > .espaces-notification-bar { margin-block-start: 0 !important; }
:root .is-layout-constrained > .espaces-header { margin-block-start: 0 !important; }

/* Kill max-width on all constrained layout children */
.is-layout-constrained > .office-single,
.is-layout-constrained > .staff-listing-page,
.is-layout-constrained > .blog-single,
.is-layout-constrained > .meeting-rooms-page,
.is-layout-constrained > .locations-index,
.is-layout-constrained > .regional-location,
.is-layout-constrained > .review-single,
.is-layout-constrained > .reviews-archive,
.is-layout-flow > .office-single,
.is-layout-flow > .staff-listing-page,
.is-layout-flow > .blog-single,
.is-layout-flow > .meeting-rooms-page,
.is-layout-flow > .locations-index,
.is-layout-flow > .regional-location,
.is-layout-flow > .review-single,
.is-layout-flow > .reviews-archive {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Also handle the :where() constrained selector TT5 uses */
:where(.is-layout-constrained) > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Override on specific archive/single body classes */
body.post-type-archive-location .wp-site-blocks > *,
body.single-location .wp-site-blocks > *,
body.single-article .wp-site-blocks > *,
body.single-regional_location .wp-site-blocks > *,
body.page .wp-site-blocks > * {
    max-width: none !important;
}

body.post-type-archive-location main,
body.single-location main,
body.single-article main,
body.single-regional_location main,
body.page main {
    max-width: none !important;
    padding: 0 !important;
}

/* Kill theme paragraph first-child/first-of-type overrides globally */
.office-single p:first-child,
.staff-listing-page p:first-child,
.blog-single p:first-child,
.meeting-rooms-page p:first-child,
.locations-index p:first-child,
.regional-location p:first-child {
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
}

/* ═══ INTER FONT ═════════════════════════════════════════════════════ */
@font-face {
    font-family: Inter;
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('https://rsms.me/inter/font-files/InterVariable.woff2?v=4.1') format('woff2');
}
@font-face {
    font-family: Inter;
    font-style: italic;
    font-weight: 100 900;
    font-display: swap;
    src: url('https://rsms.me/inter/font-files/InterVariable-Italic.woff2?v=4.1') format('woff2');
}


/* ═══ HEADING CLASSES ════════════════════════════════════════════════ */

.h1 {
    font-size: calc(48px + 16 * ( (100vw - 400px) / 1232)) !important;
    line-height: calc(100% + 20 * ( (100vw - 400px) / 1180)) !important;
    font-weight: inherit;
}
@media (min-width: 1280px) {
    .h1 { font-size: 64px !important; line-height: 120% !important; }
}
@media (max-width: 400px) {
    .h1 { font-size: 48px !important; line-height: 100% !important; }
}

.h2 {
    font-size: calc(32px + 8 * ( (100vw - 400px) / 1248)) !important;
    line-height: calc(120% + 0 * ( (100vw - 400px) / 1160)) !important;
    font-weight: inherit;
}
@media (min-width: 1280px) {
    .h2 { font-size: 40px !important; line-height: 120% !important; }
}
@media (max-width: 400px) {
    .h2 { font-size: 32px !important; line-height: 120% !important; }
}

.h3 {
    font-size: calc(28px + 8 * ( (100vw - 400px) / 1252)) !important;
    line-height: calc(120% + 0 * ( (100vw - 400px) / 1160)) !important;
    font-weight: inherit;
}
@media (min-width: 1280px) {
    .h3 { font-size: 36px !important; line-height: 120% !important; }
}
@media (max-width: 400px) {
    .h3 { font-size: 28px !important; line-height: 120% !important; }
}

.h4 {
    font-size: calc(20px + 4 * ( (100vw - 400px) / 1260)) !important;
    line-height: calc(120% + 0 * ( (100vw - 400px) / 1160)) !important;
    font-weight: inherit;
}
@media (min-width: 1280px) {
    .h4 { font-size: 24px !important; line-height: 120% !important; }
}
@media (max-width: 400px) {
    .h4 { font-size: 20px !important; line-height: 120% !important; }
}

.h5 {
    font-size: calc(18px + 2 * ( (100vw - 400px) / 1262)) !important;
    line-height: calc(120% + 0 * ( (100vw - 400px) / 1160)) !important;
    font-weight: inherit;
}
@media (min-width: 1280px) {
    .h5 { font-size: 20px !important; line-height: 120% !important; }
}
@media (max-width: 400px) {
    .h5 { font-size: 18px !important; line-height: 120% !important; }
}

.h6 {
    font-size: 18px !important;
    line-height: 120% !important;
    font-weight: inherit;
}


/* ═══ SIZE CLASSES ═══════════════════════════════════════════════════ */

.size-sm {
    font-size: 14px !important;
    line-height: 140% !important;
}

.size-lg {
    font-size: 20px !important;
    line-height: 120% !important;
}


/* ═══ FONT WEIGHT CLASSES ════════════════════════════════════════════ */

.font-normal   { font-weight: 400 !important; font-variation-settings: 'wght' 400 !important; }
.uppercase     { text-transform: uppercase !important; }
.capitalize    { text-transform: capitalize !important; }


/* ═══ COLOR UTILITIES ════════════════════════════════════════════════ */

.text-gold       { color: rgba(209, 167, 33, 1) !important; }
.text-grey       { color: rgba(174, 192, 207, 1) !important; }
.text-grey-dark  { color: rgb(102 102 102) !important; }
.text-white      { color: #fff !important; }

.bg-gold         { background-color: rgba(209, 167, 33, 1) !important; }
.bg-gold-50      { background-color: rgba(252, 250, 234, 1) !important; }
.bg-grey-light   { background-color: rgba(250, 250, 249, 1) !important; }
.bg-black        { background-color: #000 !important; }


/* ═══ BUTTONS ════════════════════════════════════════════════════════ */

.btn {
    border-radius: 9999px !important;
    border: 1px solid transparent !important;
    padding: 0.75rem 1rem !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 140% !important;
    transition: all 0.3s ease !important;
    display: inline-block !important;
    text-decoration: none !important;
    cursor: pointer !important;
    font-family: Inter, arial, sans-serif !important;
}

.btn.btn-sm {
    padding: 0.5rem 0.75rem !important;
}

.btn.btn-primary {
    border-color: rgba(209, 167, 33, 1) !important;
    background-color: rgba(209, 167, 33, 1) !important;
    color: rgba(252, 250, 234, 1) !important;
}
.btn.btn-primary:hover {
    border-color: rgba(252, 250, 234, 1) !important;
    background-color: rgba(252, 250, 234, 1) !important;
    color: rgba(209, 167, 33, 1) !important;
}

.btn.btn-secondary {
    border-color: rgba(252, 250, 234, 1) !important;
    background-color: rgba(252, 250, 234, 1) !important;
    color: rgba(209, 167, 33, 1) !important;
}
.btn.btn-secondary:hover {
    border-color: rgba(209, 167, 33, 1) !important;
    background-color: #fff !important;
    color: rgba(209, 167, 33, 1) !important;
}

.btn-gold {
    background-color: rgba(209, 167, 33, 1) !important;
    color: rgba(252, 250, 234, 1) !important;
    border: none !important;
    padding: 0.5rem 1.25rem !important;
    border-radius: 9999px !important;
    font-weight: 600 !important;
    font-size: 0.875rem !important;
    cursor: pointer !important;
    display: inline-block !important;
    text-decoration: none !important;
}
.btn-gold:hover {
    background-color: rgba(252, 250, 234, 1) !important;
    color: rgba(209, 167, 33, 1) !important;
}


/* ═══ TAGLINE ════════════════════════════════════════════════════════ */

.text-tagline {
    font-size: 0.875rem !important;
    line-height: 140% !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 3px !important;
}
.text-tagline.tagline-tight {
    letter-spacing: 1.5px !important;
}
.text-tagline.tagline-xs {
    font-size: 0.75rem !important;
    line-height: 1rem !important;
}
.text-tagline.tagline-sm {
    font-size: 0.75rem !important;
    line-height: 1rem !important;
    letter-spacing: 2px !important;
}


/* ═══ PROSE ══════════════════════════════════════════════════════════ */

.prose {
    line-height: 160% !important;
}
.prose a {
    color: rgba(209, 167, 33, 1) !important;
    text-decoration: none !important;
}
.prose a:hover {
    text-decoration: underline !important;
}
.prose h1 a, .prose h2 a, .prose h3 a, .prose h4 a, .prose h5 a, .prose h6 a {
    color: rgba(19, 19, 25, 1) !important;
    text-decoration: underline !important;
    text-decoration-style: dotted !important;
}
.prose h1 a:hover, .prose h2 a:hover, .prose h3 a:hover,
.prose h4 a:hover, .prose h5 a:hover, .prose h6 a:hover {
    color: rgba(209, 167, 33, 1) !important;
    text-decoration: none !important;
}
.prose p {
    margin-top: 1.25em;
    margin-bottom: 1.25em;
}
.prose p:first-child { margin-top: 0; }
.prose p:last-child  { margin-bottom: 0; }

/* Rich content prose (blog body, etc.) */
.prose.rich-content {
    color: #1a1a1a !important;
    font-size: 1rem !important;
    line-height: 175% !important;
}
.prose.rich-content h2 {
    font-size: 2em !important;
    font-weight: 700 !important;
    line-height: 120% !important;
    margin-top: 1.5em !important;
    margin-bottom: 0.5em !important;
    color: #1a1a1a !important;
    letter-spacing: -0.02em !important;
}
.prose.rich-content h3 {
    font-size: 1.5em !important;
    font-weight: 700 !important;
    line-height: 130% !important;
    margin-top: 1.5em !important;
    margin-bottom: 0.5em !important;
    color: #1a1a1a !important;
}
.prose.rich-content a {
    color: rgba(209, 167, 33, 1) !important;
    text-decoration: none !important;
}
.prose.rich-content a:hover {
    text-decoration: underline !important;
}

/* Office description prose */
.prose.office-description {
    font-size: 1rem !important;
    line-height: 160% !important;
    color: rgb(102 102 102) !important;
}

/* Rich content inside regional-location needs higher specificity to beat .regional-location .prose */
.regional-location .prose.rich-content {
    color: #1a1a1a !important;
    font-size: 1rem !important;
    line-height: 175% !important;
}
.regional-location .prose.rich-content p {
    color: #1a1a1a !important;
    font-size: 1rem !important;
    line-height: 175% !important;
}
.regional-location .prose.rich-content h1 {
    font-size: 2.25em !important; font-weight: 700 !important;
    line-height: 120% !important; color: #1a1a1a !important;
    margin-top: 2em !important; margin-bottom: 0.5em !important;
}
.regional-location .prose.rich-content h2 {
    font-size: 2em !important; font-weight: 700 !important;
    line-height: 120% !important; color: #1a1a1a !important;
    margin-top: 1.5em !important; margin-bottom: 0.5em !important;
}
.regional-location .prose.rich-content h3 {
    font-size: 1.5em !important; font-weight: 700 !important;
    line-height: 130% !important; color: #1a1a1a !important;
    margin-top: 1.5em !important; margin-bottom: 0.5em !important;
}
.regional-location .prose.rich-content h4 {
    font-size: 1.25em !important; font-weight: 600 !important;
    line-height: 140% !important; color: #1a1a1a !important;
    margin-top: 1.5em !important; margin-bottom: 0.5em !important;
}
.regional-location .prose.rich-content a {
    color: rgba(209,167,33,1) !important; text-decoration: none !important;
}
.regional-location .prose.rich-content a:hover {
    text-decoration: underline !important;
}
.regional-location .prose.rich-content strong,
.regional-location .prose.rich-content b {
    font-weight: 700 !important; font-variation-settings: 'wght' 700 !important;
}
.regional-location .prose.rich-content li {
    color: #1a1a1a !important;
    font-size: 1rem !important;
    line-height: 175% !important;
}

/* Person card / meeting room card prose */
.person-card .prose p,
.meeting-room-card .prose p {
    margin: 0 !important;
}


/* ═══ CONTAINER ══════════════════════════════════════════════════════ */

.container {
    max-width: 1280px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
}
@media (min-width: 640px) {
    .container { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
}
@media (min-width: 1024px) {
    .container { padding-left: 2rem !important; padding-right: 2rem !important; }
}


/* ═══ GLOBAL BODY RESET FOR CUSTOM TEMPLATES ═════════════════════════
   All our custom templates wrap content in a page-level class.
   These rules ensure Inter font, proper paragraph rendering, and
   correct heading behavior across all templates.
   ════════════════════════════════════════════════════════════════════ */

.office-single,
.staff-listing-page,
.blog-single,
.meeting-rooms-page,
.locations-index,
.regional-location,
.review-single,
.reviews-archive {
    font-family: Inter, arial, sans-serif !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Reset all paragraphs inside our templates to prevent TT5 overrides */
.office-single p,
.staff-listing-page p,
.blog-single p,
.meeting-rooms-page p,
.locations-index p,
.regional-location p {
    font-size: 1rem !important;
    font-weight: 400 !important;
    line-height: 1.75 !important;
}

/* Reset heading inheritance inside custom templates */
.office-single h1, .office-single h2, .office-single h3,
.office-single h4, .office-single h5, .office-single h6,
.staff-listing-page h1, .staff-listing-page h2, .staff-listing-page h3,
.staff-listing-page h4, .staff-listing-page h5, .staff-listing-page h6,
.blog-single h1, .blog-single h2, .blog-single h3,
.blog-single h4, .blog-single h5, .blog-single h6,
.meeting-rooms-page h1, .meeting-rooms-page h2, .meeting-rooms-page h3,
.meeting-rooms-page h4, .meeting-rooms-page h5, .meeting-rooms-page h6,
.locations-index h1, .locations-index h2, .locations-index h3,
.locations-index h4, .locations-index h5, .locations-index h6,
.regional-location h1, .regional-location h2, .regional-location h3,
.regional-location h4, .regional-location h5, .regional-location h6 {
    font-weight: 700 !important;
    font-variation-settings: 'wght' 700 !important;
    color: #1a1a1a !important;
    margin: 0 !important;
    letter-spacing: -0.02em !important;
}

/* Override TT5's h1-h6{font-weight:inherit} globally */
h1, h2, h3, h4, h5, h6 {
    font-weight: 700 !important;
    font-variation-settings: 'wght' 700 !important;
}

.font-bold     { font-weight: 700 !important; font-variation-settings: 'wght' 700 !important; }
.font-semibold { font-weight: 600 !important; font-variation-settings: 'wght' 600 !important; }
.font-medium   { font-weight: 500 !important; font-variation-settings: 'wght' 500 !important; }

/* ═══ PROSE / RICH CONTENT TYPOGRAPHY ════════════════════════════════
   Global styles for all .prose and .rich-content blocks.
   ═══════════════════════════════════════════════════════════════════ */
.regional-location .prose {
    color: rgb(102 102 102) !important;
    font-size: 1rem !important;
    line-height: 160% !important;
}
.regional-location .prose p {
    font-size: 1rem !important;
    font-weight: 400 !important;
    line-height: 1.75 !important;
    color: rgb(102 102 102) !important;
    margin-top: 1.25em !important;
    margin-bottom: 1.25em !important;
}
.regional-location .prose > p:first-child { margin-top: 0 !important; }
.regional-location .prose > p:last-child { margin-bottom: 0 !important; }

/* Headings inside prose */
.regional-location .prose h1 {
    font-size: 2.25em !important; font-weight: 700 !important; font-variation-settings: 'wght' 700 !important;
    line-height: 1.2 !important; color: #1a1a1a !important; letter-spacing: -0.02em !important;
    margin-top: 2em !important; margin-bottom: 0.5em !important;
}
.regional-location .prose h2 {
    font-size: 1.5em !important; font-weight: 700 !important; font-variation-settings: 'wght' 700 !important;
    line-height: 1.3 !important; color: #1a1a1a !important; letter-spacing: -0.02em !important;
    margin-top: 1.5em !important; margin-bottom: 0.5em !important;
}
.regional-location .prose h3 {
    font-size: 1.25em !important; font-weight: 700 !important; font-variation-settings: 'wght' 700 !important;
    line-height: 1.4 !important; color: #1a1a1a !important;
    margin-top: 1.5em !important; margin-bottom: 0.5em !important;
}
.regional-location .prose h4 {
    font-size: 1em !important; font-weight: 600 !important; font-variation-settings: 'wght' 600 !important;
    line-height: 1.5 !important; color: #1a1a1a !important;
    margin-top: 1.5em !important; margin-bottom: 0.5em !important;
}
.regional-location .prose > h1:first-child,
.regional-location .prose > h2:first-child,
.regional-location .prose > h3:first-child,
.regional-location .prose > h4:first-child { margin-top: 0 !important; }

/* Links */
.regional-location .prose a { color: rgba(209,167,33,1) !important; text-decoration: none !important; }
.regional-location .prose a:hover { text-decoration: underline !important; }

/* Links inside headings */
.regional-location .prose h1 a, .regional-location .prose h2 a,
.regional-location .prose h3 a, .regional-location .prose h4 a {
    color: #1a1a1a !important; text-decoration: underline !important;
    text-decoration-style: dotted !important; text-underline-offset: 3px !important;
}
.regional-location .prose h1 a:hover, .regional-location .prose h2 a:hover,
.regional-location .prose h3 a:hover, .regional-location .prose h4 a:hover {
    color: rgba(209,167,33,1) !important;
}

/* Lists */
.regional-location .prose ul, .regional-location .prose ol {
    padding-left: 1.625em !important; margin-top: 1.25em !important; margin-bottom: 1.25em !important;
}
.regional-location .prose li {
    margin-top: 0.5em !important; margin-bottom: 0.5em !important;
    font-size: 1rem !important; font-weight: 400 !important; line-height: 1.75 !important;
    color: rgb(102 102 102) !important;
}
.regional-location .prose ul > li { list-style-type: disc !important; }
.regional-location .prose ol > li { list-style-type: decimal !important; }
.regional-location .prose ul ul > li { list-style-type: circle !important; }

/* Bold / Italic */
.regional-location .prose strong, .regional-location .prose b {
    font-weight: 700 !important; font-variation-settings: 'wght' 700 !important;
}
.regional-location .prose a strong, .regional-location .prose a b {
    color: inherit !important;
}
.regional-location .prose em, .regional-location .prose i { font-style: italic !important; }

/* Blockquotes */
.regional-location .prose blockquote {
    border-left: 0.25rem solid #e5e7eb !important; padding-left: 1em !important;
    margin: 1.6em 0 !important; font-style: italic !important; color: #6b7280 !important;
}
.regional-location .prose blockquote p { color: #6b7280 !important; }

/* HR */
.regional-location .prose hr {
    border: none !important; border-top: 1px solid #e5e7eb !important; margin: 3em 0 !important;
}

/* Images */
.regional-location .prose img {
    max-width: 100% !important; height: auto !important; margin: 2em 0 !important;
    border-radius: 0.375rem !important;
}

/* Tables */
.regional-location .prose table { width: 100% !important; border-collapse: collapse !important; margin: 2em 0 !important; }
.regional-location .prose th {
    font-weight: 700 !important; font-variation-settings: 'wght' 700 !important;
    text-align: left !important; padding: 0.75rem 1rem !important;
    border-bottom: 2px solid #e5e7eb !important; color: #1a1a1a !important; font-size: 0.875rem !important;
}
.regional-location .prose td {
    padding: 0.75rem 1rem !important; border-bottom: 1px solid #e5e7eb !important;
    font-size: 0.875rem !important; color: rgb(102 102 102) !important;
}

/* Code */
.regional-location .prose code {
    background: #f3f4f6 !important; padding: 0.2em 0.4em !important;
    border-radius: 0.25rem !important; font-size: 0.875em !important;
}
.regional-location .prose pre {
    background: #1a1a1a !important; color: #e5e7eb !important;
    padding: 1rem !important; border-radius: 0.375rem !important;
    overflow-x: auto !important; margin: 2em 0 !important;
}


/* ═══ ALPINE CLOAK ═══════════════════════════════════════════════════ */

[x-cloak] { display: none !important; }
