.website-theme.theme-heading-newsreader { --font-serif: "Website Newsreader", Georgia, "Times New Roman", serif; }
.website-theme.theme-heading-manrope { --font-serif: "Website Manrope", Inter, ui-sans-serif, system-ui, sans-serif; }
.website-theme.theme-heading-system-serif { --font-serif: Georgia, "Times New Roman", serif; }
.website-theme.theme-heading-system-sans { --font-serif: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.website-theme.theme-body-newsreader { --font-sans: "Website Newsreader", Georgia, serif; }
.website-theme.theme-body-manrope { --font-sans: "Website Manrope", Inter, ui-sans-serif, system-ui, sans-serif; }
.website-theme.theme-body-system-serif { --font-sans: Georgia, "Times New Roman", serif; }
.website-theme.theme-body-system-sans { --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }

.brand-lockup-visual { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.brand-logo-image { display: block; width: auto; max-width: min(12rem, 36vw); height: 2.65rem; object-fit: contain; object-position: left center; }
.navbar-nav > .nav-item { position: relative; }
.nav-submenu { position: absolute; top: calc(100% - .15rem); left: .35rem; z-index: 40; min-width: 14rem; margin: 0; padding: .55rem; list-style: none; border: 1px solid color-mix(in srgb, var(--color-ink) 12%, transparent); border-radius: .85rem; background: color-mix(in srgb, var(--color-paper) 96%, white); box-shadow: 0 20px 50px color-mix(in srgb, var(--color-ink) 16%, transparent); opacity: 0; pointer-events: none; transform: translateY(-.35rem); transition: opacity 160ms ease, transform 160ms ease; }
.nav-item.has-children:hover > .nav-submenu,
.nav-item.has-children:focus-within > .nav-submenu { opacity: 1; pointer-events: auto; transform: translateY(0); }
.nav-submenu-link { display: block; padding: .7rem .8rem .7rem calc(.8rem + (var(--nav-depth, 1) - 1) * .75rem); border-radius: .55rem; color: var(--color-muted); font-size: .88rem; text-decoration: none; }
.nav-submenu-link:hover,
.nav-submenu-link:focus,
.nav-submenu-link.is-active { background: color-mix(in srgb, var(--color-ink) 7%, transparent); color: var(--color-ink); }
.cms-module { padding: clamp(3.5rem, 7vw, 7rem) 0; }
.cms-module + .cms-module { border-top: 1px solid color-mix(in srgb, currentColor 10%, transparent); }
.cms-columns-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(1rem, 3vw, 2.5rem); }
.cms-column { min-width: 0; }
.cms-column > .cms-module { min-width: 0; padding-block: 1.25rem; }
.cms-column > .cms-module:first-child { padding-top: 0; }
.cms-column .site-shell { width: 100%; max-width: none; padding-inline: 0; }
.cms-column .cms-text-image { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
.cms-column .cms-hero { min-height: auto; }
.cms-column .cms-hero-content { padding: 2rem 1rem; }
.cms-column-empty { color: var(--color-muted); }
@media (min-width: 48rem) { .cms-columns-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); } }
@media (min-width: 64rem) { .cms-columns-grid { grid-template-columns: repeat(var(--cms-column-count), minmax(0, 1fr)); } }
.cms-copy { max-width: 52rem; }
.cms-copy p { white-space: normal; }
.cms-media { display: block; width: 100%; height: auto; }
.cms-image-frame { overflow: hidden; margin: 0; }
.cms-image-frame img { width: 100%; height: 100%; object-fit: cover; }
.cms-image-frame figcaption { margin-top: .75rem; color: var(--color-muted); font-size: .9rem; }
.cms-hero { min-height: min(78vh, 52rem); position: relative; display: grid; align-items: end; overflow: hidden; color: white; }
.cms-hero picture, .cms-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; }
.cms-hero img { width: 100%; height: 100%; object-fit: cover; }
.cms-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 10%, rgba(0,0,0,.72) 100%); }
.cms-hero-content { position: relative; z-index: 1; padding-block: clamp(3rem, 8vw, 7rem); max-width: 55rem; }
.cms-hero.has-no-media { min-height: auto; color: inherit; background: linear-gradient(135deg, color-mix(in srgb, var(--color-wine) 8%, white), var(--color-paper) 68%); }
.cms-hero.has-no-media::after { display: none; }
.cms-hero.has-no-media .cms-hero-content { padding-block: clamp(5rem, 10vw, 9rem); }
.cms-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.cms-text-image { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 6rem); align-items: center; }
.cms-text-image.is-image-left .cms-text-image-media { order: -1; }
.cms-gallery-grid { display: grid; grid-template-columns: repeat(var(--cms-columns, 3), minmax(0, 1fr)); gap: clamp(1rem, 2vw, 2rem); }
.cms-gallery-card img { aspect-ratio: 4 / 3; }
.cms-gallery-card.is-compact img { aspect-ratio: 1 / 1; }
.cms-gallery-card-copy { padding-top: 1rem; }
.cms-faq-list { display: grid; gap: .75rem; max-width: 62rem; }
.cms-faq-list details { border: 1px solid color-mix(in srgb, var(--color-ink) 12%, transparent); border-radius: 1rem; padding: 1rem 1.25rem; background: color-mix(in srgb, var(--color-paper) 84%, white); }
.cms-faq-list summary { cursor: pointer; font-weight: 700; }
.cms-faq-answer { padding-top: 1rem; color: var(--color-muted); }
.cms-testimonial-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.cms-testimonial { border: 1px solid color-mix(in srgb, var(--color-ink) 12%, transparent); border-radius: 1.25rem; padding: clamp(1.25rem, 3vw, 2rem); background: color-mix(in srgb, var(--color-paper) 84%, white); }
.cms-testimonial-images { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .35rem; margin: calc(clamp(1.25rem, 3vw, 2rem) * -1) calc(clamp(1.25rem, 3vw, 2rem) * -1) 1.25rem; overflow: hidden; border-radius: 1.2rem 1.2rem 0 0; }
.cms-testimonial-images img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.cms-testimonial blockquote { margin: 0 0 1rem; font-size: 1.08rem; }
.cms-spacer-small { height: 2rem; }
.cms-spacer-medium { height: 4rem; }
.cms-spacer-large { height: 7rem; }
.cms-rule { border: 0; border-top: 1px solid color-mix(in srgb, var(--color-ink) 15%, transparent); margin: 0; }
.theme-preview-bar { position: sticky; top: 0; z-index: 2000; display: flex; justify-content: space-between; gap: 1rem; padding: .7rem clamp(1rem, 3vw, 2rem); background: #0b132b; color: white; font: 500 .9rem/1.3 "Website Manrope", sans-serif; }
.theme-preview-bar a { color: #ffd166; text-underline-offset: .2em; }

@media (max-width: 991.98px) {
  .nav-submenu { position: static; min-width: 0; margin: 0 0 .35rem; padding: 0 0 0 .75rem; border: 0; border-radius: 0; background: transparent; box-shadow: none; opacity: 1; pointer-events: auto; transform: none; }
  .nav-submenu-link { padding-block: .55rem; }
}

@media (max-width: 767.98px) {
  .cms-text-image, .cms-testimonial-grid { grid-template-columns: 1fr; }
  .cms-gallery-grid { grid-template-columns: 1fr; }
  .cms-text-image .cms-text-image-media { order: -1; }
  .cms-hero { min-height: 68vh; }
  .theme-preview-bar { align-items: flex-start; flex-direction: column; }
}

/* Modules keep their layout within their allocated column, across presets. */
.website-theme .cms-column > .cms-module { padding-block: 1.25rem; }
.website-theme .cms-column .cms-text-image,
.website-theme .cms-column .studio-panel,
.website-theme .cms-column .inquiry-layout { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
.website-theme .cms-column .inquiry-form { min-width: 0; padding: 1rem; grid-template-columns: minmax(0, 1fr); }
.website-theme .cms-column .form-row { grid-template-columns: minmax(0, 1fr); }
.website-theme .cms-column .form-field { min-width: 0; grid-template-columns: minmax(0, 1fr); }
.website-theme .cms-column .form-control,
.website-theme .cms-column .form-select { min-width: 0; max-width: 100%; }
.website-theme .cms-column .form-check-label,
.website-theme .cms-column .cms-copy { overflow-wrap: anywhere; }
.website-theme .cms-columns .cms-column h1,
.website-theme .cms-columns .cms-column h2,
.website-theme .cms-columns .cms-column h3,
.website-theme .cms-columns .cms-column .cms-heading-hero,
.website-theme .cms-columns .cms-column .cms-heading-section,
.website-theme .cms-columns .cms-column .cms-heading-card { max-width: 100%; font-size: clamp(1.3rem, 1.8vw, 2.2rem); line-height: 1.15; overflow-wrap: anywhere; }
.website-theme .cms-column .btn { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.cms-hero.has-media .hero-copy, .cms-hero.has-media .section-kicker { color: #fff; }
.cms-hero img { object-position: var(--cms-hero-focus-x, 50%) var(--cms-hero-focus-y, 50%); }
.has-theme-preview-bar .site-header { top: var(--theme-preview-bar-height, 3rem); }
@media (max-width: 767.98px) {
  .cms-hero img { object-position: var(--cms-hero-mobile-focus-x, var(--cms-hero-focus-x, 50%)) var(--cms-hero-mobile-focus-y, var(--cms-hero-focus-y, 50%)); }
}
.website-theme .inquiry-form .form-check-input:checked { background-color: var(--color-wine); border-color: var(--color-wine); }
.website-theme .inquiry-form .form-check .invalid-feedback { grid-column: 2; }
.cms-column { container-type: inline-size; container-name: cms-column; overflow-wrap: anywhere; }
.website-theme .cms-column .cms-gallery-card:nth-child(3n + 1) { transform: none; }
@container cms-column (max-width: 30rem) {
  .website-theme .cms-column .cms-gallery-grid,
  .website-theme .cms-column .cms-testimonial-grid { grid-template-columns: minmax(0, 1fr); }
}

.cms-lightbox-trigger { display: block; cursor: zoom-in; }
.cms-lightbox-trigger:focus-visible { outline: 3px solid var(--color-accent, #efa000); outline-offset: 4px; }
.cms-hero .cms-hero-enlarge { position: absolute; right: 1.5rem; bottom: 1.5rem; z-index: 3; padding: .6rem 1rem; background: rgba(10,15,30,.8); border: 1px solid rgba(255,255,255,.55); border-radius: 2rem; color: #fff; font-size: .8rem; }
.cms-lightbox-open { overflow: hidden; }
.cms-lightbox { width: min(96vw, 100rem); max-width: none; height: 94dvh; max-height: 94dvh; padding: 1rem 1.5rem; border: 1px solid #374151; border-radius: 1rem; background: #101525; color: #fff; }
.cms-lightbox::backdrop { background: rgba(4,8,18,.88); }
.cms-lightbox[open] { display: flex; flex-direction: column; }
.cms-lightbox-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.cms-lightbox button { display: inline-flex; align-items: center; justify-content: center; min-width: 2.75rem; min-height: 2.75rem; border: 1px solid #64748b; border-radius: .6rem; background: #222b40; color: #fff; padding: .4rem .8rem; }
.cms-lightbox button:focus-visible { outline: 3px solid #f6ac27; outline-offset: 3px; }
.cms-lightbox [hidden] { display: none !important; }
.cms-lightbox-stage { display: flex; align-items: center; justify-content: center; gap: 1rem; flex: 1; min-height: 0; padding: 1rem 0; }
.cms-lightbox-stage img { object-fit: contain; max-width: calc(100% - 8rem); max-height: 100%; width: auto; height: auto; }
.cms-lightbox-stage button { font-size: 2rem; flex: 0 0 2.75rem; }
.cms-lightbox p { text-align: center; font-size: .85rem; margin: .2rem 0; }
.cms-lightbox [data-error] { color: #fbbf24; }
@media (max-width: 575.98px) {
  .cms-lightbox { padding: .75rem; width: 98vw; height: 94dvh; }
  .cms-lightbox-stage { position: relative; gap: 0; }
  .cms-lightbox-stage img { max-width: 100%; }
  .cms-lightbox-stage button { position: absolute; bottom: .5rem; background: rgba(22,32,50,.9); }
  .cms-lightbox-stage [data-prev] { left: .5rem; }
  .cms-lightbox-stage [data-next] { right: .5rem; }
}

/* Per-module overrides are opt-in. Child modules keep their own settings. */
.website-theme [data-cms-width="normal"] > .site-shell { width: 100%; max-width: 65.25rem; padding-inline: clamp(1rem, 3vw, 2rem); }
.website-theme [data-cms-width="full"] > .site-shell { width: 100%; max-width: none; padding-inline: clamp(1rem, 3vw, 2rem); }
.website-theme .cms-column [data-cms-width] > .site-shell { max-width: 100%; padding-inline: .5rem; }
.website-theme [data-cms-align="left"] > .site-shell { margin-inline: 0 auto; }
.website-theme [data-cms-align="center"] > .site-shell { margin-inline: auto; }
.website-theme [data-cms-align="right"] > .site-shell { margin-inline: auto 0; }
.website-theme [data-cms-align="left"]:not(.cms-columns) > .site-shell { text-align: left; }
.website-theme [data-cms-align="center"]:not(.cms-columns) > .site-shell { text-align: center; }
.website-theme [data-cms-align="right"]:not(.cms-columns) > .site-shell { text-align: right; }
.website-theme [data-cms-align="left"]:not(.cms-columns) > .site-shell .cms-actions { justify-content: flex-start; }
.website-theme [data-cms-align="center"]:not(.cms-columns) > .site-shell .cms-actions { justify-content: center; }
.website-theme [data-cms-align="right"]:not(.cms-columns) > .site-shell .cms-actions { justify-content: flex-end; }
.website-theme [data-cms-heading-align="left"] > .site-shell .cms-heading-section,
.website-theme [data-cms-heading-align="left"] > .site-shell .cms-heading-hero { text-align: left; margin-inline: 0 auto; }
.website-theme [data-cms-heading-align="center"] > .site-shell .cms-heading-section,
.website-theme [data-cms-heading-align="center"] > .site-shell .cms-heading-hero { text-align: center; margin-inline: auto; }
.website-theme [data-cms-heading-align="right"] > .site-shell .cms-heading-section,
.website-theme [data-cms-heading-align="right"] > .site-shell .cms-heading-hero { text-align: right; margin-inline: auto 0; }
.website-theme .cms-rich-text { text-align: start; }
.website-theme .cms-cta .studio-panel { color: var(--cms-cta-text, inherit); }
.website-theme .cms-cta .studio-panel .cms-copy,
.website-theme .cms-cta .studio-panel .cms-heading-section { color: var(--cms-cta-text, inherit); }
.website-theme .cms-cta .studio-panel .btn { display: inline-flex; gap: .55rem; align-items: center; justify-content: center; }
.website-theme .cms-cta .studio-panel[style*="--cms-cta-text"] .btn { color: var(--cms-cta-text); border: 1px solid currentColor; background: transparent; }
.website-theme .cms-cta .ui-icon { flex-shrink: 0; }
.cms-cta-icon { display: flex; margin-bottom: 1.25rem; }
.website-theme .cms-cta[data-cms-align] .studio-panel { display: flex; flex-direction: column; align-items: stretch !important; }
.website-theme .cms-cta[data-cms-align="left"] .cms-cta-icon { justify-content: flex-start; }
.website-theme .cms-cta[data-cms-align="center"] .cms-cta-icon { justify-content: center; }
.website-theme .cms-cta[data-cms-align="right"] .cms-cta-icon { justify-content: flex-end; }
.website-theme .cms-cta[data-cms-align] .cms-copy { max-width: none; }
.website-theme .cms-cta[data-cms-align="left"] .btn { align-self: flex-start; }
.website-theme .cms-cta[data-cms-align="center"] .btn { align-self: center; }
.website-theme .cms-cta[data-cms-align="right"] .btn { align-self: flex-end; }
.website-theme [class*="cms-spacer-"][data-cms-width="normal"] { max-width: 61.25rem; margin-inline: auto; }
.website-theme .cms-hero[style*="padding-top"] > .cms-hero-content { padding-top: 0; }
.website-theme .cms-hero[style*="padding-bottom"] > .cms-hero-content { padding-bottom: 0; }

.website-theme [class*="cms-spacer-"][data-cms-align="left"] { margin-inline: 0 auto; }
.website-theme [class*="cms-spacer-"][data-cms-align="center"] { margin-inline: auto; }
.website-theme [class*="cms-spacer-"][data-cms-align="right"] { margin-inline: auto 0; }

/* Legal sections use a reading hierarchy within one CMS block. */
.website-theme .cms-legal .cms-legal-section-heading { font-size: clamp(1.35rem, 2.2vw, 1.8rem); line-height: 1.3; margin-bottom: .65rem; }
.website-theme .cms-legal .quiet-copy { overflow-wrap: anywhere; }
