/* Snap Profile v5.8 — Design Control & Polish
   Safe typography, mobile controls, advanced gradients, focal points,
   custom dark palette, professional lightbox and sticky CTA designer. */
.site-v58{
  --v58-heading:var(--custom-heading,var(--theme-heading,#101828));
  --v58-body:var(--custom-body,var(--theme-body,#667085));
  --v58-card-heading:var(--v58-heading);
  --v58-card-body:var(--v58-body);
  --v58-divider-color:color-mix(in srgb,var(--site-border,#e4e7ec) 78%,transparent);
  line-height:var(--body-line-height,1.75);
}
.site-v58 :is(h1,h2,h3,h4,h5,h6){font-weight:var(--heading-weight,700)!important;letter-spacing:var(--heading-letter-spacing,0)!important}
.site-v58 :is(.hero-content h1,.carousel-copy h1){font-size:var(--display)!important;line-height:1.14!important}
.site-v58 :is(.section-heading h2,.about-copy h2,.contact-copy h2){font-size:var(--h2)!important;line-height:1.25!important}
.site-v58 :is(.section-v3 p,.hero-lead,.carousel-copy p,.contact-copy p){line-height:var(--body-line-height,1.75)}

/* Runtime contrast guard. Section-specific variables come from the server. */
.site-v58.auto-contrast .section-v3 :is(.section-heading h2,.section-heading h3,.about-copy h2,.contact-copy h2){color:var(--section-heading,var(--v58-heading))!important}
.site-v58.auto-contrast .section-v3 :is(.section-heading>p,.section-heading>div,.section-heading>div p,.about-copy>p,.contact-copy>p){color:var(--section-body,var(--v58-body))!important}
.site-v58.auto-contrast .section-v3.bg-custom :is(h1,h2,h3,h4,strong),
.site-v58.auto-contrast .section-v3.bg-gradient :is(h1,h2,h3,h4,strong),
.site-v58.auto-contrast .section-v3.bg-image :is(h1,h2,h3,h4,strong){color:var(--section-heading,var(--v58-heading))!important}
.site-v58.auto-contrast .section-v3.bg-custom :is(p,.section-kicker,.section-heading>div),
.site-v58.auto-contrast .section-v3.bg-gradient :is(p,.section-kicker,.section-heading>div),
.site-v58.auto-contrast .section-v3.bg-image :is(p,.section-kicker,.section-heading>div){color:var(--section-body,var(--v58-body))!important}

/* Advanced section gradients: two/three stops + linear/radial. */
.site-v58 .section-v3.bg-gradient.gradient-type-radial.gradient-three{background:radial-gradient(circle at 50% 35%,var(--section-gradient-from),var(--section-gradient-to),var(--section-gradient-third))!important}
.site-v58 .section-v3.bg-gradient.gradient-type-radial:not(.gradient-three){background:radial-gradient(circle at 50% 35%,var(--section-gradient-from),var(--section-gradient-to))!important}
.site-v58 .section-v3.bg-gradient.gradient-type-linear.gradient-three{background:linear-gradient(var(--section-gradient-angle,135deg),var(--section-gradient-from),var(--section-gradient-to),var(--section-gradient-third))!important}
.site-v58 .section-v3.bg-gradient.gradient-type-linear:not(.gradient-three){background:linear-gradient(var(--section-gradient-angle,135deg),var(--section-gradient-from),var(--section-gradient-to))!important}

/* Section dividers remain subtle by design. */
.site-v58 .section-v3{position:relative}
.site-v58 .section-v3.divider-straight{border-bottom:1px solid var(--v58-divider-color)}
.site-v58 .section-v3.divider-wave:after,.site-v58 .section-v3.divider-curve:after,.site-v58 .section-v3.divider-diagonal:after{content:"";position:absolute;z-index:3;inset-inline:0;bottom:-1px;height:26px;pointer-events:none;background:var(--site-bg-alt,#f8fafc)}
.site-v58 .section-v3.divider-wave:after{clip-path:path("M0 14 C160 2 320 26 480 14 C640 2 800 26 960 14 C1120 2 1280 26 1440 14 L1440 26 L0 26 Z")}
.site-v58 .section-v3.divider-curve:after{height:30px;border-radius:50% 50% 0 0/100% 100% 0 0;transform:translateY(16px)}
.site-v58 .section-v3.divider-diagonal:after{clip-path:polygon(0 58%,100% 0,100% 100%,0 100%)}

/* Hero overlay designer. */
.site-v58 :is(.hero-scrim,.carousel-shade){opacity:var(--hero-overlay-opacity,.35)!important;pointer-events:none}
.site-v58.hero-overlay-none :is(.hero-scrim,.carousel-shade){opacity:0!important;background:transparent!important}
.site-v58.hero-overlay-solid :is(.hero-scrim,.carousel-shade){background:var(--hero-overlay-color,#000)!important}
.site-v58.hero-overlay-gradient :is(.hero-scrim,.carousel-shade){background:linear-gradient(var(--hero-overlay-angle,180deg),var(--hero-overlay-color,#000),var(--hero-overlay-color-2,#000))!important}
.site-v58.hero-overlay-radial :is(.hero-scrim,.carousel-shade){background:radial-gradient(circle at 50% 42%,var(--hero-overlay-color,#000),var(--hero-overlay-color-2,#000))!important}

/* Focal point preservation on every public gallery composition. */
.site-v58 .gallery-open img{object-position:var(--focal-x,50%) var(--focal-y,50%)!important}

/* Custom dark palette. */
.site-v58.mode-dark.custom-dark-palette{--site-bg:var(--dark-site-bg)!important;--site-bg-alt:color-mix(in srgb,var(--dark-site-bg) 86%,white 14%)!important;--card-bg:var(--dark-card-bg)!important;--custom-heading:var(--dark-heading)!important;--custom-body:var(--dark-body)!important;--ink:var(--dark-heading)!important;--muted:var(--dark-body)!important;background:var(--dark-site-bg)!important;color:var(--dark-body)!important}
.site-v58.mode-dark.custom-dark-palette :is(.section-v3,.footer-info,.site-footer){color:var(--dark-body)}
.site-v58.mode-dark.custom-dark-palette :is(.product-card,.team-card,.certificate-card,.review-card,.form-v3,.booking-card,.faq-v3 details){background:var(--dark-card-bg)!important;color:var(--dark-heading)!important}
.site-v58.mode-dark.custom-dark-palette :is(h1,h2,h3,h4,strong){color:var(--dark-heading)!important}
.site-v58.mode-dark.custom-dark-palette p{color:var(--dark-body)}
@media (prefers-color-scheme:dark){
  .site-v58.mode-system.custom-dark-palette{--site-bg:var(--dark-site-bg)!important;--site-bg-alt:color-mix(in srgb,var(--dark-site-bg) 86%,white 14%)!important;--card-bg:var(--dark-card-bg)!important;--custom-heading:var(--dark-heading)!important;--custom-body:var(--dark-body)!important;--ink:var(--dark-heading)!important;--muted:var(--dark-body)!important;background:var(--dark-site-bg)!important;color:var(--dark-body)!important}
  .site-v58.mode-system.custom-dark-palette :is(.product-card,.team-card,.certificate-card,.review-card,.form-v3,.booking-card,.faq-v3 details){background:var(--dark-card-bg)!important;color:var(--dark-heading)!important}
  .site-v58.mode-system.custom-dark-palette :is(h1,h2,h3,h4,strong){color:var(--dark-heading)!important}
  .site-v58.mode-system.custom-dark-palette p{color:var(--dark-body)!important}
}

/* Sticky CTA designer. */
.site-v58 .sticky-cta-v58{background:color-mix(in srgb,var(--sticky-cta-bg,#fff) 94%,transparent)!important;color:var(--sticky-cta-text,#101828)!important;border:1px solid color-mix(in srgb,var(--sticky-cta-text) 12%,transparent);backdrop-filter:blur(18px)}
.site-v58 .sticky-cta-v58 a{background:transparent!important;color:var(--sticky-cta-text,#101828)!important;border:1px solid color-mix(in srgb,var(--sticky-cta-text) 12%,transparent);display:flex;align-items:center;justify-content:center;gap:7px}
.site-v58 .sticky-cta-v58 a svg{width:18px;height:18px;flex:none}
.site-v58.sticky-cta-floating .sticky-cta-v58{left:50%;right:auto;bottom:16px;transform:translateX(-50%);width:min(620px,calc(100% - 28px));border-radius:18px;padding:8px;box-shadow:0 18px 50px rgba(15,23,42,.18)}
.site-v58.sticky-cta-minimal .sticky-cta-v58{background:transparent!important;border:0!important;box-shadow:none!important;padding:8px 12px}
.site-v58.sticky-cta-minimal .sticky-cta-v58 a{background:var(--sticky-cta-bg)!important;box-shadow:0 8px 24px rgba(15,23,42,.12)}
.site-v58.sticky-has-whatsapp .floating-whatsapp{display:none!important}
@media(min-width:901px){
  .site-v58.sticky-cta-all .sticky-cta-v58{display:grid;position:fixed;z-index:999;grid-auto-flow:column;grid-auto-columns:minmax(130px,1fr);left:50%;right:auto;bottom:18px;transform:translateX(-50%);width:auto;min-width:360px;max-width:min(720px,calc(100vw - 40px));padding:8px;border-radius:18px;box-shadow:0 18px 55px rgba(15,23,42,.18)}
  .site-v58.sticky-cta-all .site-footer{padding-bottom:100px}
}

/* Professional lightbox. */
.site-v58 .lightbox-v58{padding:72px 86px 74px;background:rgba(3,6,12,.96);flex-direction:column;overflow:hidden}
.site-v58 .lightbox-v58.open{display:flex}
.site-v58 .lightbox-stage-v58{width:min(1280px,84vw);height:min(78vh,860px);display:grid;place-items:center;overflow:auto;touch-action:pan-y;background:rgba(255,255,255,.025);border-radius:18px}
.site-v58 .lightbox-stage-v58.is-zoomed{cursor:zoom-out}
.site-v58 .lightbox-v58 img{max-width:100%;max-height:100%;width:auto;height:auto;border-radius:12px;box-shadow:none;transition:transform .18s ease;transform-origin:center center;user-select:none}
.site-v58 .lightbox-toolbar-v58{position:absolute;z-index:3;top:18px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;color:#fff}
.site-v58 .lightbox-toolbar-v58>span{font:600 12px/1 var(--body-font);letter-spacing:.1em;color:#cbd5e1}
.site-v58 .lightbox-toolbar-v58>div{display:flex;gap:6px}
.site-v58 .lightbox-toolbar-v58 button,.site-v58 .lightbox-nav-v58{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);color:#fff;border-radius:12px;min-width:42px;height:42px;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(12px)}
.site-v58 .lightbox-toolbar-v58 #lightboxClose{position:static;width:42px;height:42px;font-size:24px}
.site-v58 .lightbox-toolbar-v58 #lightboxZoom{min-width:64px;font-size:11px}
.site-v58 .lightbox-nav-v58{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:50px;height:50px;font-size:20px}
.site-v58 .lightbox-nav-v58.prev{left:20px}.site-v58 .lightbox-nav-v58.next{right:20px}
.site-v58 .lightbox-v58>p{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);max-width:min(760px,80vw);margin:0;text-align:center;color:#f8fafc;font:500 13px/1.7 var(--body-font)}

/* Mobile controls. */
@media(max-width:900px){
  html:has(.site-v58){font-size:var(--mobile-base-font,15px)!important}
  .site-v58{font-size:var(--mobile-base-font,15px)!important}
  .site-v58 :is(.hero-content h1,.carousel-copy h1){font-size:var(--mobile-display)!important;letter-spacing:var(--heading-letter-spacing,0)!important}
  .site-v58 :is(.section-heading h2,.about-copy h2,.contact-copy h2){font-size:var(--mobile-h2)!important}
  .site-v58.mobile-gallery-cols-1.gallery-grid :is(.gallery-architectural-v54,.gallery-maison-v54,.gallery-editorial-v54,.gallery-local-v54){grid-template-columns:1fr!important}
  .site-v58.mobile-gallery-cols-2.gallery-grid :is(.gallery-architectural-v54,.gallery-maison-v54,.gallery-editorial-v54,.gallery-local-v54){grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .site-v58 .hide-on-mobile{display:none!important}
  .site-v58 .section-v3.mobile-spacing-compact{padding-block:44px!important}
  .site-v58 .section-v3.mobile-spacing-comfortable{padding-block:64px!important}
  .site-v58 .section-v3.mobile-spacing-airy{padding-block:86px!important}

  .site-v58.mobile-hero-image-first :is(.hero-shell,.art-hero){display:flex!important;flex-direction:column!important}
  .site-v58.mobile-hero-image-first :is(.hero-visual,.signature-static-rail,.local-action-card,.maison-signature,.editorial-caption,.signature-proof-panel){order:-1!important}
  .site-v58.mobile-hero-content-first :is(.hero-content,.carousel-copy){order:-1!important}

  .site-v58.mobile-header-logo-menu .brand-mark small,.site-v58.mobile-header-compact .brand-mark small{display:none!important}
  .site-v58.mobile-header-logo-menu .nav-cta{display:none!important}
  .site-v58.mobile-header-logo-cta .nav-cta{display:inline-flex!important;font-size:11px;padding:9px 12px}
  .site-v58.mobile-header-logo-cta .menu-toggle{display:none!important}
  .site-v58.mobile-header-centered .nav-shell{display:grid!important;grid-template-columns:44px 1fr 44px!important}
  .site-v58.mobile-header-centered .brand-mark{grid-column:2;justify-self:center;text-align:center}.site-v58.mobile-header-centered .nav-actions{grid-column:3;justify-self:end}.site-v58.mobile-header-centered .brand-mark div{display:none}
  .site-v58.mobile-header-bottom-nav .menu-toggle{display:none!important}
  .site-v58.mobile-header-bottom-nav .mobile-menu{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed!important;z-index:998;top:auto!important;bottom:0!important;left:0!important;right:0!important;inset-inline:0!important;opacity:1!important;transform:none!important;pointer-events:auto!important;border-radius:0!important;padding:7px max(7px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom))!important;background:color-mix(in srgb,var(--header-bg) 96%,transparent)!important;color:var(--header-text)!important;box-shadow:0 -8px 30px rgba(15,23,42,.12)!important}
  .site-v58.mobile-header-bottom-nav .mobile-menu a{border:0!important;text-align:center;padding:10px 4px!important;font-size:10px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .site-v58.mobile-header-bottom-nav .sticky-cta-v58{bottom:58px!important}
  .site-v58.mobile-header-bottom-nav .site-footer{padding-bottom:154px!important}

  .site-v58 .lightbox-v58{padding:62px 14px 70px}
  .site-v58 .lightbox-stage-v58{width:100%;height:72vh;border-radius:12px}
  .site-v58 .lightbox-nav-v58{top:auto;bottom:16px;width:44px;height:44px}.site-v58 .lightbox-nav-v58.prev{left:16px}.site-v58 .lightbox-nav-v58.next{right:16px}
  .site-v58 .lightbox-v58>p{bottom:22px;max-width:58vw;font-size:11px}
  .site-v58 .lightbox-toolbar-v58{left:12px;right:12px;top:10px}
}
@media(max-width:620px){
  .site-v58.mobile-gallery-cols-2.gallery-grid .gallery-open{min-height:0!important}
  .site-v58 .sticky-cta-v58{grid-template-columns:repeat(auto-fit,minmax(82px,1fr))!important}
  .site-v58 .sticky-cta-v58 a{padding:10px 6px!important;font-size:11px!important}
}

/* Cards use their own contrast target when custom surfaces differ from the page. */
.site-v58.auto-contrast :is(.product-card,.team-card,.certificate-card,.review-card,.form-v3,.booking-card,.faq-v3 details,.stats-wall article) :is(h2,h3,h4,strong){color:var(--card-heading,var(--v58-heading))!important}
.site-v58.auto-contrast :is(.product-card,.team-card,.certificate-card,.review-card,.form-v3,.booking-card,.faq-v3 details,.stats-wall article) p{color:var(--card-body,var(--v58-body))!important}
.site-v58.auto-contrast .section-v3.bg-image :is(.section-heading,.about-copy,.contact-copy){text-shadow:0 1px 18px rgba(0,0,0,.16)}
.site-v58.auto-contrast .site-nav.header-style-transparent:not(.scrolled),.site-v58.auto-contrast .site-nav.header-style-minimal:not(.scrolled){text-shadow:0 1px 14px rgba(0,0,0,.32)}
