/* NDG Professional Tailor -- consolidated stylesheet
   Merged from 32 cascading files (style.css + 31 override/QA/fix files,
   loaded in this exact order in the old head.php) into one file, in the
   SAME order, so the visual result is unchanged. Only byte-for-byte
   duplicate rules were removed. Two more files (home-qa.css,
   homepage-qa-final.css) existed on disk but were never linked in
   head.php -- dead weight, not included here. */


/* ===== from css/style.css ===== */

/* NDG Professional Tailor - Exact Design Matching https://ndg.swanmedia.ca/ */

@import url('https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Candal&family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400&family=Roboto+Slab:wght@300;400;500;700&display=swap');

:root {
  --primary-teal: #2F6A82;
  --primary-teal-dark: #235366;
  --primary-dark: #22343f;
  --accent-lavender: #e3d8e7;
  --accent-lavender-hover: #d2c4d8;
  --text-dark: #22343f;
  --text-body: #555555;
  --text-sub: #424242;
  --text-muted: #707070;
  --accent-gold-brown: #ab968d;
  --bg-sand: #f0e7dc;
  --bg-light: #f8f8f8;
  --bg-white: #ffffff;
  --border-light: rgba(0, 0, 0, 0.08);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  font-family: 'Roboto', -apple-system, BlinkMacSystemFont, sans-serif;
  color: var(--text-body);
  background-color: #ffffff;
  -webkit-font-smoothing: antialiased;
}

body {
  overflow-x: hidden;
  line-height: 1.6;
}

/* Headings font */

h1, h2, h3, .font-abril {
  font-family: 'Abril Fatface', Georgia, serif;
  font-weight: 400;
}

.font-roboto {
  font-family: 'Roboto', sans-serif;
}

/* Global Container */

.container-custom {
  width: 100%;
  max-width: 1360px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

/* ==========================================================================
   Site Header / Navigation Bar (Exact match to https://ndg.swanmedia.ca/)
   ========================================================================== */

.site-header {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  background-color: #ffffff !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
  transition: all 0.3s ease;
}

.site-header.scrolled {
  background-color: rgba(255, 255, 255, 0.98) !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
}

.header-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  padding-bottom: 14px;
}

.header-logo img {
  width: 124px;
  height: auto;
  display: block;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav-link {
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #444444;
  text-decoration: none;
  padding: 8px 18px;
  margin: 0 2px;
  border-radius: 55px;
  display: inline-block;
  transition: all 0.25s ease;
  position: relative;
}

.nav-link:hover, .nav-link.active {
  color: var(--primary-teal) !important;
  background-color: var(--accent-lavender) !important;
  font-weight: 600;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Round offcanvas menu button (matches czico-062-menu-3) */

.btn-offcanvas-toggle {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background-color: var(--primary-teal);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  font-size: 15px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.btn-offcanvas-toggle:hover {
  background-color: var(--primary-dark);
  color: #ffffff;
  box-shadow: 0px 6px 18px rgba(47, 106, 130, 0.4);
  transform: scale(1.05);
}

/* Call button (matches cz_header_button / #22343f pill) */

.btn-header-call {
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #ffffff;
  background-color: var(--primary-dark);
  padding: 9px 26px;
  border-radius: 100px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  border: none;
  cursor: pointer;
}

.btn-header-call:hover {
  background-color: var(--primary-teal);
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(47, 106, 130, 0.3);
}

/* ==========================================================================
   Subpage Title Bar & Breadcrumbs (Matches ndg.swanmedia.ca)
   ========================================================================== */

.page-title-bar {
  background-color: #faf9f7;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  padding: 28px 0;
}

.page-title-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

.page-title-heading {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 32px;
  color: var(--primary-teal);
  margin: 0;
  line-height: 1.2;
}

.page-breadcrumbs {
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  color: #707070;
  display: flex;
  align-items: center;
  gap: 8px;
}

.page-breadcrumbs a {
  color: #707070;
  text-decoration: none;
  transition: color 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.page-breadcrumbs a:hover {
  color: var(--primary-teal);
}

.page-breadcrumbs i.fa-angle-double-right {
  font-size: 11px;
  color: #a0a0a0;
}

.page-breadcrumbs span {
  color: var(--primary-teal);
  font-weight: 500;
}

/* Legacy banner compatibility */

.page-banner {
  background-color: #faf9f7;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  padding: 36px 0;
  text-align: left;
}

.page-banner-title {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 34px;
  margin-bottom: 8px;
  color: var(--primary-teal);
}

.page-banner-desc {
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
  color: #666666;
  max-width: 680px;
  margin: 0;
}

/* ==========================================================================
   Hero Section (Container d105972)
   ========================================================================== */

.hero-section {
  background-image: url('/assets/NDG_professional-tailor-montreal2.jpg');
  background-position: right center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  padding-top: 110px;
  padding-bottom: 120px;
  min-height: 640px;
  display: flex;
  align-items: center;
}

@media (max-width: 1024px) {
  .hero-section {
    background-position: 75% center;
    padding-top: 80px;
    padding-bottom: 90px;
    min-height: 520px;
  }
}

@media (max-width: 767px) {
  .hero-section {
    background-position: 80% center;
    padding-top: 50px;
    padding-bottom: 70px;
    min-height: auto;
  }
}

.hero-content-wrap {
  max-width: 620px;
  position: relative;
  z-index: 5;
}

.hero-title-main {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 92px;
  line-height: 0.92;
  font-weight: 400;
  color: var(--primary-teal);
  margin-bottom: 12px;
  letter-spacing: -0.5px;
}

.hero-title-sub {
  font-family: 'Roboto', sans-serif;
  font-size: 42px;
  line-height: 1.1;
  font-weight: 400;
  color: #5e5e5e;
  margin-bottom: 24px;
  letter-spacing: 0.5px;
}

.hero-description {
  font-family: 'Roboto', sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.4;
  color: #424242;
  max-width: 520px;
  margin-bottom: 40px;
}

.hero-call-outline {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: 'Roboto', sans-serif;
  font-size: 19px;
  font-weight: 500;
  color: var(--primary-teal);
  background-color: transparent;
  border: 2px solid var(--primary-teal);
  padding: 13px 36px;
  border-radius: 9999px;
  text-decoration: none;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
}

.hero-call-outline i {
  font-size: 20px;
  color: var(--primary-teal);
  transition: transform 0.35s ease, color 0.35s ease;
}

.hero-call-outline:hover {
  background-color: var(--primary-teal);
  color: #ffffff !important;
  border-color: var(--primary-teal);
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(47, 106, 130, 0.28);
}

.hero-call-outline:hover i {
  color: #ffffff;
  animation: phoneRing 0.6s ease-in-out;
}

@keyframes phoneRing {
  0% { transform: rotate(0deg) scale(1); }
  20% { transform: rotate(-14deg) scale(1.15); }
  40% { transform: rotate(14deg) scale(1.15); }
  60% { transform: rotate(-8deg) scale(1.15); }
  80% { transform: rotate(8deg) scale(1.15); }
  100% { transform: rotate(0deg) scale(1); }
}

/* ==========================================================================
   4 Service Cards Section (Container e7bc656)
   ========================================================================== */

.service-cards-section {
  position: relative;
  z-index: 20;
  margin-top: -50px;
  margin-bottom: 80px;
}

.service-cards-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.service-card {
  background-color: #ffffff;
  border-radius: 20px;
  padding: 50px 30px 48px;
  text-align: center;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 0, 0, 0.03);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

.service-card:hover {
  background-color: #2F6A82 !important;
  transform: translateY(-8px);
  box-shadow: 0 20px 50px rgba(47, 106, 130, 0.35);
  border-color: #2F6A82;
}

.service-icon-wrapper {
  width: 95px;
  height: 95px;
  margin-bottom: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.service-icon-wrapper img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transition: transform 0.35s ease, opacity 0.3s ease, filter 0.35s ease;
}

.service-icon-hover {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  filter: brightness(0) invert(1);
}

.service-card:hover .service-icon-main {
  opacity: 0;
  transform: scale(0.9);
}

.service-card:hover .service-icon-hover {
  opacity: 1;
  transform: scale(1.05);
  filter: brightness(0) invert(1);
}

/* Fallback if only one icon image is in the wrapper */

.service-card:hover .service-icon-wrapper img:only-child {
  opacity: 1;
  filter: brightness(0) invert(1);
  transform: scale(1.05);
}

.service-card-title {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 24px;
  font-weight: 400;
  color: #000000;
  margin-bottom: 20px;
  line-height: 1.3;
  transition: color 0.3s ease;
}

.service-card:hover .service-card-title {
  color: #ffffff !important;
}

.service-card-desc {
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  font-weight: 300;
  line-height: 1.65;
  color: #555555;
  margin-bottom: 32px;
  padding: 0 10px;
  flex-grow: 1;
  transition: color 0.3s ease;
}

.service-card:hover .service-card-desc {
  color: #ffffff !important;
}

.service-card-btn {
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  font-style: italic;
  font-weight: 500;
  color: #2F6A82;
  background-color: #E3D8E7;
  padding: 10px 40px;
  border-radius: 25px;
  display: inline-block;
  transition: all 0.3s ease;
  margin-top: auto;
  border: none;
}

.service-card:hover .service-card-btn {
  background-color: #ffffff !important;
  color: #2F6A82 !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px);
}

/* ==========================================================================
   35 Years Experience Section (Container 1899070)
   ========================================================================== */

.experience-section {
  padding-top: 50px;
  padding-bottom: 80px;
}

.experience-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 50px;
  align-items: center;
}

.exp-badge-wrap {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 16px;
}

.exp-number {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 68px;
  line-height: 1;
  color: var(--primary-teal);
}

.exp-label {
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--accent-gold-brown);
  text-transform: uppercase;
}

.experience-heading {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 38px;
  line-height: 1.25;
  color: var(--primary-dark);
  margin-bottom: 24px;
}

.experience-text p {
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: #555555;
  margin-bottom: 18px;
}

.experience-img-wrap img {
  width: 100%;
  border-radius: 16px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
  object-fit: cover;
  max-height: 520px;
}

/* ==========================================================================
   Event Details Section (Container 2eab09c)
   ========================================================================== */

.event-details-section {
  background-color: #F8F8F8;
  background-image: url('/assets/NDG_professional-tailor-montreal-robe-soiree-ajustement.jpg');
  background-size: cover;
  background-position: center;
  position: relative;
  padding-top: 80px;
  padding-bottom: 80px;
  margin-top: 40px;
  margin-bottom: 60px;
}

.event-details-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: linear-gradient(90deg, #F0E7DC 32%, rgba(227, 216, 231, 0.15) 75%);
}

.event-details-content {
  position: relative;
  z-index: 5;
  max-width: 600px;
}

.event-subtitle {
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--primary-teal);
  display: block;
  margin-bottom: 12px;
}

.event-heading {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 38px;
  line-height: 1.25;
  color: var(--primary-dark);
  margin-bottom: 20px;
}

.event-text {
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: #424242;
  margin-bottom: 28px;
}

.event-bullets {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.event-bullet-item {
  display: flex;
  align-items: center;
  gap: 14px;
}

.event-bullet-icon {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.event-bullet-icon img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.event-bullet-text {
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--primary-dark);
}

/* ==========================================================================
   Elena Portrait Section (Container 4a94f0f)
   ========================================================================== */

.elena-section {
  padding-top: 60px;
  padding-bottom: 80px;
}

.elena-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 50px;
  align-items: center;
}

.elena-img-wrap img {
  width: 100%;
  border-radius: 16px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
  object-fit: cover;
  max-height: 540px;
}

.elena-role {
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--accent-gold-brown);
  display: block;
  margin-bottom: 8px;
}

.elena-heading {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 40px;
  line-height: 1.2;
  color: var(--primary-dark);
  margin-bottom: 12px;
}

.elena-divider {
  width: 30px;
  height: 3px;
  background-color: var(--primary-teal);
  margin-bottom: 24px;
}

.elena-text p {
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
  line-height: 1.75;
  color: #555555;
  margin-bottom: 18px;
}

/* ==========================================================================
   Interactive Tabs Showcase (Containers 1468e6c, fa0ea48)
   ========================================================================== */

.tabs-section {
  padding-top: 60px;
  padding-bottom: 80px;
  background-color: #faf9f7;
}

.tabs-nav-wrap {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  background-color: #E3D8E7;
  border-radius: 50px;
  padding: 6px;
  margin: 0 auto 45px auto;
  width: fit-content;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  gap: 4px;
}

.tab-btn {
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #727272;
  background: transparent;
  border: none;
  padding: 12px 22px;
  border-radius: 40px;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.25s ease;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.tab-btn:hover {
  color: var(--primary-teal);
}

.tab-btn.active {
  background-color: var(--primary-teal) !important;
  color: #ffffff !important;
  font-weight: 600;
  box-shadow: 0px 8px 24px rgba(47, 106, 130, 0.45);
}

.tab-panel {
  display: none;
}

.tab-panel.active {
  display: block;
  animation: fadeIn 0.4s ease;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.tab-content-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
  background: #ffffff;
  padding: 45px 50px;
  border-radius: 20px;
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.05);
}

.tab-text-side h3 {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 34px;
  color: var(--primary-dark);
  margin-bottom: 20px;
  line-height: 1.25;
}

.tab-text-side p {
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: #555555;
  margin-bottom: 16px;
}

.tab-stylish-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 20px;
  margin-top: 24px;
  list-style: none;
  padding: 0;
}

.tab-stylish-list li {
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #333333;
  display: flex;
  align-items: center;
  gap: 12px;
  line-height: 1.4;
}

.tab-stylish-list li i {
  color: var(--primary-teal);
  background-color: var(--accent-lavender);
  width: 24px;
  height: 24px;
  min-width: 24px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
}

.tab-img-side img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  border-radius: 14px;
}

/* 4 Step Process in Couture Sur Mesure Tab */

.process-steps-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 24px;
}

.process-step-item {
  text-align: center;
  padding: 16px 10px;
  background: #f8f8f8;
  border-radius: 12px;
}

.process-step-item img {
  width: 44px;
  height: 44px;
  margin-bottom: 8px;
  object-fit: contain;
}

.process-step-title {
  font-family: 'Roboto', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--primary-teal);
}

/* ==========================================================================
   Gallery Carousel / Réalisations (Container fe87780)
   ========================================================================== */

.gallery-section {
  padding-top: 70px;
  padding-bottom: 90px;
}

.gallery-heading {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 42px;
  text-align: center;
  color: var(--primary-dark);
  margin-bottom: 40px;
}

.gallery-carousel-track {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-bottom: 45px;
}

.gallery-thumb {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  aspect-ratio: 1 / 1;
  cursor: pointer;
}

.gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.gallery-thumb:hover img {
  transform: scale(1.08);
}

.gallery-thumb-overlay {
  position: absolute;
  inset: 0;
  background: rgba(47, 106, 130, 0.4);
  opacity: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-size: 24px;
  transition: opacity 0.3s ease;
}

.gallery-thumb:hover .gallery-thumb-overlay {
  opacity: 1;
}

.gallery-action-bar {
  display: flex;
  justify-content: center;
  gap: 20px;
}

.btn-gallery-call {
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--primary-teal);
  background-color: var(--accent-lavender);
  padding: 12px 34px;
  border-radius: 30px;
  text-decoration: none;
  transition: 0.3s;
}

.btn-gallery-call:hover {
  background-color: var(--primary-teal);
  color: #ffffff;
  transform: translateY(-2px);
}

.btn-gallery-book {
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: #ffffff;
  background-color: var(--primary-teal);
  padding: 12px 34px;
  border-radius: 30px;
  text-decoration: none;
  transition: 0.3s;
  border: none;
  cursor: pointer;
}

.btn-gallery-book:hover {
  background-color: var(--primary-dark);
  transform: translateY(-2px);
}

/* ==========================================================================
   Map & Contact Section
   ========================================================================== */

.map-section {
  position: relative;
  height: 440px;
  width: 100%;
  overflow: hidden;
}

.map-section iframe {
  width: 100%;
  height: 100%;
  border: none;
  filter: saturate(0.9) contrast(1.05);
}

.map-card-floating {
  position: absolute;
  top: 50%;
  right: 10%;
  transform: translateY(-50%);
  background: var(--primary-dark);
  color: #ffffff;
  padding: 36px 40px;
  border-radius: 16px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
  max-width: 380px;
  z-index: 10;
}

.map-card-title {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 26px;
  margin-bottom: 16px;
  color: var(--accent-lavender);
}

.map-card-item {
  margin-bottom: 12px;
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: #e2e8f0;
}

.map-card-item strong {
  color: #ffffff;
  display: block;
}

/* ==========================================================================
   Site Footer
   ========================================================================== */

.site-footer {
  background-color: var(--primary-dark);
  color: #ffffff;
  padding: 48px 0 24px;
}

.footer-brand {
  max-width: 680px;
  margin: 0 auto 34px;
  text-align: center;
}

.footer-logo-wrap {
  margin-bottom: 14px;
}

.footer-logo-wrap img {
  width: 132px;
  height: auto;
  margin: 0 auto;
  display: block;
  filter: brightness(0) invert(1);
}

.footer-local-description {
  margin: 0 auto 18px;
  max-width: 620px;
  color: rgba(255,255,255,.78);
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  line-height: 1.65;
}

.footer-social-icons {
  display: flex;
  justify-content: center;
  gap: 10px;
}

.social-icon-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background-color: rgba(227, 216, 231, 0.10);
  color: var(--accent-lavender);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-size: 16px;
  border: 1px solid rgba(227, 216, 231, 0.24);
  transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

.social-icon-btn:hover,
.social-icon-btn:focus-visible {
  background-color: var(--accent-lavender);
  color: var(--primary-dark);
  transform: translateY(-2px);
}

.footer-columns-grid {
  display: grid;
  grid-template-columns: 1.05fr .8fr 1.15fr .8fr;
  gap: 36px;
  padding: 30px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.10);
  border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}

.footer-col-item { text-align: left; }

.footer-col-label {
  margin: 0 0 13px;
  font-family: 'Roboto', sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--accent-gold-brown);
}

.footer-link-list,
.footer-contact-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-link-list li,
.footer-contact-list li {
  margin: 0 0 9px;
  color: rgba(255,255,255,.78);
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  line-height: 1.45;
}

.footer-link-list a,
.footer-contact-list a {
  color: rgba(255,255,255,.86);
  text-decoration: none;
  text-underline-offset: 4px;
}

.footer-link-list a:hover,
.footer-link-list a:focus-visible,
.footer-contact-list a:hover,
.footer-contact-list a:focus-visible {
  color: #ffffff;
  text-decoration: underline;
}

.footer-hours {
  margin: 0;
  color: rgba(255,255,255,.78);
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  line-height: 1.7;
}

.footer-hours strong {
  color: #ffffff;
  font-weight: 600;
}

.footer-bottom-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-top: 20px;
}

.footer-copyright {
  margin: 0;
  font-family: 'Roboto', sans-serif;
  font-size: 13px;
  color: rgba(255,255,255,.5);
}

.footer-legal {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Roboto', sans-serif;
  font-size: 13px;
  color: rgba(255,255,255,.5);
}

.footer-legal a {
  color: rgba(255,255,255,.65);
  text-decoration: none;
}

.footer-legal a:hover,
.footer-legal a:focus-visible { color: #ffffff; }

.footer-language { color: rgba(255,255,255,.65); }

/* ==========================================================================
   Slide-Over Offcanvas Drawer & Modal Popup
   ========================================================================== */

.offcanvas-drawer {
  position: fixed;
  top: 0;
  right: -420px;
  width: 380px;
  max-width: 90vw;
  height: 100vh;
  background-color: var(--primary-dark);
  color: #ffffff;
  z-index: 1000;
  box-shadow: -10px 0 40px rgba(0, 0, 0, 0.3);
  padding: 50px 36px;
  transition: right 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  overflow-y: auto;
}

.offcanvas-drawer.open {
  right: 0;
}

.offcanvas-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(3px);
  z-index: 999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.offcanvas-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

.offcanvas-close-btn {
  position: absolute;
  top: 24px;
  right: 24px;
  background: transparent;
  border: none;
  color: #ffffff;
  font-size: 24px;
  cursor: pointer;
}

/* Appointment Modal */

.appointment-modal {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(4px);
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  pointer-events: none;
  transition: all 0.3s ease;
}

.appointment-modal.open {
  opacity: 1;
  pointer-events: auto;
}

.modal-card {
  background: #ffffff;
  border-radius: 20px;
  padding: 40px;
  max-width: 520px;
  width: 100%;
  position: relative;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.2);
  transform: scale(0.95);
  transition: transform 0.3s ease;
}

.appointment-modal.open .modal-card {
  transform: scale(1);
}

.modal-close-btn {
  position: absolute;
  top: 20px;
  right: 20px;
  background: #f1f5f9;
  border: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.modal-title {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 30px;
  color: var(--primary-teal);
  margin-bottom: 8px;
}

.modal-subtitle {
  font-size: 15px;
  color: #64748b;
  margin-bottom: 24px;
}

.form-group {
  margin-bottom: 16px;
}

.form-label {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: #334155;
  margin-bottom: 6px;
}

.form-input, .form-textarea {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  outline: none;
  transition: border-color 0.2s;
}

.form-input:focus, .form-textarea:focus {
  border-color: var(--primary-teal);
  box-shadow: 0 0 0 3px rgba(47, 106, 130, 0.15);
}

.btn-form-submit {
  width: 100%;
  padding: 14px;
  border-radius: 30px;
  background-color: var(--primary-teal);
  color: #ffffff;
  font-weight: 600;
  font-size: 16px;
  border: none;
  cursor: pointer;
  transition: background-color 0.2s;
  margin-top: 8px;
}

.btn-form-submit:hover {
  background-color: var(--primary-dark);
}

/* Lightbox Modal */

.lightbox-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(5px);
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}

.lightbox-modal.open {
  opacity: 1;
  pointer-events: auto;
}

.lightbox-img {
  max-width: 90vw;
  max-height: 85vh;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
}

.lightbox-close {
  position: absolute;
  top: 24px;
  right: 24px;
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff;
  border: none;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  font-size: 24px;
  cursor: pointer;
}

/* Responsive Rules */

@media (max-width: 1024px) {
  .service-cards-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .gallery-carousel-track {
    grid-template-columns: repeat(2, 1fr);
  }
  .hero-title-main {
    font-size: 72px;
  }
}

@media (max-width: 768px) {
  .nav-links {
    display: none;
  }
  .hero-section {
    padding-top: 80px;
    padding-bottom: 60px;
    background-position: center;
    min-height: auto;
  }
  .hero-title-main {
    font-size: 54px;
  }
  .hero-title-sub {
    font-size: 32px;
  }
  .hero-description {
    font-size: 18px;
  }
  .service-cards-section {
    margin-top: 20px;
  }
  .service-cards-grid {
    grid-template-columns: 1fr;
  }
  .experience-grid, .elena-grid, .tab-content-grid {
    grid-template-columns: 1fr;
  }
  .process-steps-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .map-card-floating {
    position: static;
    transform: none;
    max-width: 100%;
    margin-top: 20px;
  }
  .map-section {
    height: auto;
  }
  .map-section iframe {
    height: 300px;
  }
  .footer-columns-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 34px;
  }
}

/* ==========================================================================
   FAQ Page Styles (Matches ndg.swanmedia.ca/faq/)
   ========================================================================== */

.faq-page-section {
  padding: 70px 0 90px;
  background-color: #faf9f7;
}

.faq-main-grid {
  display: grid;
  grid-template-columns: 1.85fr 1fr;
  gap: 50px;
  align-items: flex-start;
}

.faq-subtitle-top {
  font-family: 'Roboto', sans-serif;
  font-size: 22px;
  color: var(--primary-teal);
  font-weight: 600;
  margin-bottom: 8px;
}

.faq-title-main {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 38px;
  color: var(--primary-dark);
  margin-bottom: 16px;
  line-height: 1.25;
}

.faq-desc-text {
  font-family: 'Roboto', sans-serif;
  font-size: 17px;
  color: #666666;
  line-height: 1.7;
  margin-bottom: 35px;
}

.faq-badge-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
}

.faq-badge-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: #E3D8E7;
  color: var(--primary-teal);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}

.faq-badge-title {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 22px;
  color: var(--primary-teal);
  line-height: 1.2;
}

.faq-badge-sub {
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #666666;
}

/* Accordion list matching cz_acc exactly */

.cz-faq-accordion {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.cz-faq-item {
  border-radius: 20px;
  transition: all 0.3s ease;
}

.cz-faq-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 28px;
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  background-color: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 100px;
  cursor: pointer;
  text-align: left;
  transition: all 0.3s ease;
}

.cz-faq-toggle i {
  color: var(--primary-teal);
  font-size: 15px;
  transition: transform 0.3s ease;
}

.cz-faq-item.open .cz-faq-toggle {
  background-color: var(--primary-teal);
  color: #E3D8E7;
  font-weight: 700;
  font-size: 17px;
  border-color: rgba(255, 255, 255, 0.14);
  border-radius: 20px 20px 0 0;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.13);
}

.cz-faq-item.open .cz-faq-toggle i {
  color: #E3D8E7;
  transform: rotate(180deg);
}

.cz-faq-content {
  display: none;
  padding: 24px 30px;
  background-color: var(--primary-teal);
  color: #ffffff;
  border-radius: 0 0 20px 20px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12);
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  line-height: 1.7;
}

.cz-faq-item.open .cz-faq-content {
  display: block;
  animation: fadeIn 0.3s ease;
}

/* FAQ Sidebar */

.faq-sidebar-img {
  width: 100%;
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  object-fit: cover;
  max-height: 380px;
  margin-bottom: 30px;
}

.faq-ask-card {
  background: #ffffff;
  border-radius: 20px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  padding: 32px 28px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.04);
}

.faq-form-label {
  display: block;
  font-family: 'Roboto', sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: #555555;
  margin-bottom: 4px;
}

.faq-form-input, .faq-form-textarea {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 8px;
  font-size: 14px;
  color: #333333;
  margin-bottom: 14px;
  font-family: 'Roboto', sans-serif;
  outline: none;
  transition: border-color 0.2s;
}

.faq-form-input:focus, .faq-form-textarea:focus {
  border-color: var(--primary-teal);
}

.faq-form-btn {
  background-color: var(--primary-teal);
  color: #ffffff;
  padding: 12px 36px;
  border-radius: 100px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  float: right;
  transition: all 0.25s ease;
}

.faq-form-btn:hover {
  background-color: var(--primary-dark);
  box-shadow: 0 4px 15px rgba(34, 52, 63, 0.25);
}

/* ==========================================================================
   Contact Page Styles (Matches ndg.swanmedia.ca/contact-us/)
   ========================================================================== */

.contact-page-section {
  padding: 70px 0 90px;
  background-color: #faf9f7;
}

.contact-top-boxes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-bottom: 50px;
}

.contact-service-box {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 20px;
  padding: 35px 28px;
  display: flex;
  align-items: center;
  gap: 20px;
  text-decoration: none;
  transition: all 0.3s ease;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}

.contact-service-box:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 35px rgba(47, 106, 130, 0.15);
  border-color: rgba(47, 106, 130, 0.2);
}

.contact-box-icon {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background-color: #E3D8E7;
  color: var(--primary-teal);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
  transition: all 0.3s ease;
}

.contact-service-box:hover .contact-box-icon {
  background-color: var(--primary-teal);
  color: #ffffff;
  box-shadow: 0 6px 20px rgba(47, 106, 130, 0.4);
}

.contact-box-label {
  font-family: 'Roboto', sans-serif;
  font-size: 18px;
  color: rgba(102, 102, 102, 0.8);
  font-weight: 500;
  margin-bottom: 4px;
}

.contact-box-val {
  font-family: 'Roboto', sans-serif;
  font-size: 20px;
  font-weight: 900;
  color: var(--primary-teal);
}

/* Contact Main Section: 66% Map / 33% Contact Card */

.contact-main-grid {
  display: grid;
  grid-template-columns: 1.8fr 1fr;
  gap: 40px;
  align-items: stretch;
}

.contact-map-wrap {
  min-height: 580px;
  border-radius: 25px;
  overflow: hidden;
  box-shadow: 0 0 25px rgba(0, 0, 0, 0.12);
  position: relative;
}

.contact-map-wrap iframe {
  width: 100%;
  height: 100%;
  min-height: 580px;
  border: 0;
}

.contact-card-box {
  background-color: var(--primary-teal);
  color: #E3D8E7;
  padding: 45px 36px;
  border-radius: 20px;
  box-shadow: 0 10px 45px rgba(47, 106, 130, 0.45);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.contact-card-sub {
  font-family: 'Roboto', sans-serif;
  font-size: 18px;
  color: #E3D8E7;
  text-align: center;
  margin-bottom: 6px;
}

.contact-card-title {
  font-family: 'Abril Fatface', Georgia, serif;
  font-size: 36px;
  color: #E3D8E7;
  text-align: center;
  margin-bottom: 24px;
}

.contact-card-form label {
  color: rgba(255, 255, 255, 0.8);
  font-size: 13px;
  margin-bottom: 4px;
  display: block;
  font-family: 'Roboto', sans-serif;
}

.contact-card-form input,
.contact-card-form textarea,
.contact-card-form select {
  width: 100%;
  background: #ffffff;
  border: none;
  border-radius: 6px;
  padding: 12px 14px;
  font-size: 14px;
  color: #333333;
  margin-bottom: 12px;
  font-family: 'Roboto', sans-serif;
  outline: none;
}

.contact-card-form input:focus,
.contact-card-form textarea:focus,
.contact-card-form select:focus {
  box-shadow: 0 0 0 2px #E3D8E7;
}

.contact-card-btn {
  background-color: #E3D8E7;
  color: var(--primary-teal);
  border: none;
  border-radius: 100px;
  padding: 12px 36px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  float: right;
  box-shadow: 1px 10px 30px rgba(34, 52, 63, 0.3);
  transition: all 0.3s ease;
  margin-top: 6px;
}

.contact-card-btn:hover {
  background-color: #ffffff;
  color: var(--primary-dark);
  transform: translateY(-2px);
}

@media (max-width: 992px) {
  .faq-main-grid,
  .contact-main-grid {
    grid-template-columns: 1fr;
  }
  .contact-top-boxes {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .contact-map-wrap {
    min-height: 400px;
  }
  .contact-map-wrap iframe {
    min-height: 400px;
  }
}

@media (max-width: 640px) {
  .site-footer { padding: 40px 0 20px; }
  .footer-brand { margin-bottom: 26px; }
  .footer-logo-wrap img { width: 120px; }
  .footer-local-description { font-size: 14px; max-width: 340px; }
  .footer-columns-grid {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 26px 0;
  }
  .footer-col-item { text-align: left; }
  .footer-bottom-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
}


/* ===== from css/production-overrides.css ===== */

/* Production refinements preserving the source site's visual language */

body:has(#hero_section) .site-header{position:absolute;top:0;left:0;background:transparent!important;border-bottom-color:transparent!important;box-shadow:none!important;color:#fff}

body:has(#hero_section) .site-header .nav-link{color:#fff}

body:has(#hero_section) .site-header .header-logo img{filter:drop-shadow(0 2px 8px rgba(0,0,0,.12))}

body:has(#hero_section) .site-header.scrolled{position:fixed;background:#fff!important;border-bottom:1px solid rgba(0,0,0,.06)!important;box-shadow:0 4px 20px rgba(0,0,0,.08)!important}

body:has(#hero_section) .site-header.scrolled .nav-link{color:#444}

body:has(#hero_section) .hero-content-wrap{padding-top:74px}

.lang-switch{display:inline-flex;gap:4px;align-items:center;margin-left:8px;font-size:13px;font-weight:700}

.lang-switch a{color:inherit;text-decoration:none;padding:5px 7px;border-radius:14px}

.lang-switch a.active{background:var(--accent-lavender);color:var(--primary-dark)}

/* Inner page banner: source-inspired, branded, calm rather than oversized */

.page-title-bar{background:#2f7893!important;min-height:200px!important;display:flex!important;align-items:center!important;padding:52px 0 46px!important;border-bottom:0!important}

.page-title-container{width:100%;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto!important;column-gap:48px!important;row-gap:8px!important;align-items:center!important}

.page-title-container::before{content:'NDG PROFESSIONAL TAILOR';grid-column:1;grid-row:1;font-family:'Roboto',sans-serif;font-size:12px;font-weight:700;letter-spacing:.18em;color:rgba(255,255,255,.78);line-height:1.2}

.page-title-heading{grid-column:1;grid-row:2;color:#fff!important;margin:0!important;font-size:42px!important;line-height:1.08!important}

.page-breadcrumbs{grid-column:2;grid-row:1 / span 2;justify-self:end!important;align-self:center!important;font-size:14px!important}

.page-breadcrumbs,.page-breadcrumbs a,.page-breadcrumbs span,.page-breadcrumbs i{color:rgba(255,255,255,.9)!important}

/* Compact, branded footer */

.footer-v2,.site-footer{background:#2f6a82!important;color:#fff!important}

.footer-v2-inner{padding-top:46px!important;padding-bottom:22px!important}

.footer-brand-block{text-align:center;max-width:820px;margin:0 auto}

.footer-logo-link{display:inline-block;line-height:0}

.footer-v2-logo{display:block!important;width:220px!important;height:auto!important;max-width:58vw!important;margin:0 auto 16px!important;object-fit:contain!important}

.footer-brand-copy{max-width:760px;margin:0 auto 16px!important;font-size:15px!important;line-height:1.65!important;color:rgba(255,255,255,.92)!important}

.footer-socials{display:flex;gap:10px;margin-top:14px}

.footer-socials-centered{justify-content:center;margin-top:12px!important}

.footer-socials a{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.14)!important;color:#fff!important;text-decoration:none;transition:.2s ease}

.footer-socials a:hover{background:#fff!important;color:#2f6a82!important;transform:translateY(-2px)}

.footer-divider{height:1px;background:rgba(255,255,255,.18);margin:28px 0 30px}

.footer-columns-grid{display:grid!important;grid-template-columns:1.05fr 1.35fr 1fr .9fr!important;gap:42px!important;align-items:start!important}

.footer-col-item{min-width:0}

.footer-col-label{color:#eadfed!important;font-size:13px!important;font-weight:700!important;letter-spacing:.12em!important;text-transform:uppercase!important;margin:0 0 15px!important}

.footer-link-list,.footer-hours-list{list-style:none!important;padding:0!important;margin:0!important}

.footer-link-list li,.footer-hours-list li{margin:0 0 8px!important;line-height:1.55!important}

.footer-v2 a,.site-footer a{color:#fff!important;text-decoration:none}

.footer-link-list a:hover,.footer-contact-address a:hover{text-decoration:underline}

.footer-contact-address{font-style:normal!important;display:flex!important;flex-direction:column!important;gap:8px!important;line-height:1.55!important;color:rgba(255,255,255,.94)!important}

.footer-contact-address strong{color:#fff!important;font-weight:700!important}

.footer-contact-address span{display:block}

.footer-hours-list{line-height:1.55!important;color:rgba(255,255,255,.94)!important}

.footer-bottom-row{border-top:1px solid rgba(255,255,255,.16)!important;margin-top:28px!important;padding-top:18px!important}

.footer-copyright{margin:0!important;text-align:center!important;color:rgba(255,255,255,.65)!important;font-size:12px!important}

.home-map-info,.map-info-card{background:#2f6a82!important;color:#fff!important;border-radius:18px!important}

.home-map-info a,.map-info-card a{color:#fff!important}

.home-map-info h3,.map-info-card h3{color:#fff!important}

/* Homepage atelier section: match source image-first composition */

.home-source-about{padding:88px 0 96px!important;background:#fff!important}

.home-source-about-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:72px;align-items:center}

.home-source-image-stage{position:relative;padding:0 0 46px 42px;min-height:590px}

.home-source-image-backdrop{position:absolute;left:0;bottom:0;width:88%;height:86%;background:#e3d8e7;border-radius:24px;z-index:0}

.home-source-image-stage img{position:relative;z-index:2;width:100%;height:590px;object-fit:cover;border-radius:22px;box-shadow:0 22px 48px rgba(34,52,63,.15)}

.home-source-years-badge{position:absolute;z-index:3;left:8px;bottom:18px;background:#2f7893;color:#fff;border-radius:18px;padding:20px 28px;min-width:245px;display:flex;align-items:center;gap:18px;box-shadow:0 15px 30px rgba(34,52,63,.18)}

.home-source-years-badge strong{font-family:'Abril Fatface',Georgia,serif;font-size:58px;line-height:.9;color:#fff}

.home-source-years-badge span{font-family:'Abril Fatface',Georgia,serif;font-size:21px;line-height:1.15;color:#fff}

.home-source-copy h2{font-family:'Abril Fatface',Georgia,serif;font-size:44px;line-height:1.05;color:var(--primary-dark);margin:0 0 24px}

.home-source-copy p{font-size:17px;line-height:1.8;color:#646970;max-width:690px;margin:0 0 34px}

.home-source-benefits{display:grid;grid-template-columns:1fr 1fr;gap:18px 36px;margin:0 0 42px}

.home-source-benefits>div{display:flex;align-items:center;gap:12px;font-size:16px;color:#60656b}

.home-source-benefits i{width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#eee4f0;color:#2f7893;font-size:14px;flex:0 0 38px}

.home-source-cta{display:flex;justify-content:flex-end}

.home-source-cta .btn-gallery-book{display:inline-flex;align-items:center;gap:12px;padding:14px 30px;border-radius:999px;text-decoration:none}

/* Lightbox */

.lightbox-modal{isolation:isolate}

.lightbox-img{position:relative;z-index:1;pointer-events:none}

.lightbox-close{z-index:20!important}

.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:0;background:rgba(34,52,63,.92);color:#fff;font-size:24px;cursor:pointer;z-index:20!important;pointer-events:auto!important;display:flex;align-items:center;justify-content:center}

.lightbox-prev{left:24px}

.lightbox-next{right:24px}

.lightbox-nav:hover{background:#2f7893}

.service-local-intro{max-width:860px;margin:0 auto 46px;text-align:center}

.service-local-intro p{font-size:17px;line-height:1.78}

.local-proof{background:#f0e7dc;border-radius:20px;padding:26px 30px;margin:36px 0}

.local-proof strong{color:#2f6a82}

.service-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}

.service-hub-grid .service-card{height:100%}

.service-feature-band{margin-top:34px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);background:#f3edf4;border-radius:24px;overflow:hidden;align-items:stretch}

.service-feature-copy{padding:48px}

.service-feature-copy h2{font-family:'Abril Fatface',Georgia,serif;font-size:34px;line-height:1.16;color:var(--primary-dark);margin:0 0 16px}

.service-feature-copy p{font-size:17px;line-height:1.75;color:#5e6470;margin-bottom:24px}

.service-feature-band img{width:100%;height:100%;min-height:340px;object-fit:cover}

/* Rich service pages */

.service-process{margin-top:70px;padding-top:58px;border-top:1px solid #e8e2e8}

.service-process h2,.related-services h2{font-family:'Abril Fatface',Georgia,serif;color:var(--primary-dark);font-size:34px;text-align:center;margin-bottom:30px}

.service-process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}

.service-process-card{background:#f8f5f8;border-radius:18px;padding:28px}

.service-process-card strong{display:block;color:#2f7893;font-size:13px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px}

.service-process-card h3{font-family:'Roboto Slab',Georgia,serif;color:var(--primary-dark);font-size:20px;margin:0 0 10px}

.service-process-card p{line-height:1.7;color:#62666d;margin:0}

.related-services{margin-top:72px}

.related-services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}

.related-service-card{display:block;text-decoration:none;background:#fff;border:1px solid #eee6ef;border-radius:16px;padding:24px;transition:.2s ease}

.related-service-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(34,52,63,.08)}

.related-service-card h3{font-family:'Roboto Slab',Georgia,serif;font-size:18px;color:var(--primary-dark);margin:0 0 8px}

.related-service-card p{font-size:14px;line-height:1.55;color:#6b6f75;margin:0}

/* FAQ */

.faq-page-section{padding:86px 0}

.faq-main-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:56px;align-items:start}

.faq-left-col .experience-heading{margin-bottom:14px}

.cz-faq-accordion{margin-top:30px}

.cz-faq-item{border:1px solid #e8e1e9;border-radius:14px;margin-bottom:14px;background:#fff;overflow:hidden}

.cz-faq-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;background:none;border:0;padding:20px 22px;font-size:17px;font-weight:700;color:var(--primary-dark);cursor:pointer}

.cz-faq-toggle i{transition:transform .2s}

.cz-faq-item.open .cz-faq-toggle i{transform:rotate(180deg)}

.cz-faq-content{display:none;padding:0 22px 20px;color:#656970;line-height:1.72}

.cz-faq-item.open .cz-faq-content{display:block}

.faq-right-col{position:sticky;top:120px}

.faq-sidebar-img{width:100%;height:330px;object-fit:cover;border-radius:18px;margin-bottom:22px}

.faq-contact-card{background:#2f7893;color:#fff;border-radius:18px;padding:30px}

.faq-contact-card h2{font-family:'Abril Fatface',Georgia,serif;font-size:28px;color:#fff;margin:0 0 12px}

.faq-contact-card p{line-height:1.7;margin:0 0 22px}

.faq-contact-card .contact-card-btn{display:block;text-align:center}

/* Contact: source layout, form lives inside the teal information block */

.contact-page-section{padding:74px 0 88px!important}

.contact-main-grid{display:grid!important;grid-template-columns:minmax(0,1.55fr) minmax(360px,.72fr)!important;gap:32px!important;align-items:stretch!important}

.contact-map-wrap{min-height:650px!important;border-radius:24px!important;overflow:hidden!important;box-shadow:0 18px 45px rgba(34,52,63,.10)!important}

.contact-map-wrap iframe{width:100%!important;height:100%!important;min-height:650px!important;border:0!important}

.contact-card-box{background:#2f7893!important;color:#fff!important;border-radius:24px!important;padding:38px!important;box-shadow:0 18px 45px rgba(34,52,63,.12)!important;display:flex!important;flex-direction:column!important}

.contact-business-name{font-family:'Abril Fatface',Georgia,serif;font-size:31px!important;line-height:1.12!important;color:#fff!important;margin:0 0 8px!important}

.contact-address-copy{color:rgba(255,255,255,.9)!important;line-height:1.6!important;margin:0 0 22px!important}

.contact-card-form{margin-top:8px}

.contact-card-form label{display:block;font-size:12px;font-weight:700;letter-spacing:.04em;color:#fff;margin:0 0 6px}

.contact-card-form input,.contact-card-form select,.contact-card-form textarea{width:100%;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.97);color:#273844;border-radius:10px;padding:12px 13px;font:inherit;margin:0 0 13px;outline:none}

.contact-card-form textarea{min-height:112px;resize:vertical}

.contact-card-form input:focus,.contact-card-form select:focus,.contact-card-form textarea:focus{border-color:#eadfed;box-shadow:0 0 0 3px rgba(227,216,231,.18)}

.contact-form-actions{display:flex;gap:10px;align-items:center;margin-top:4px}

.contact-form-submit{flex:1;border:0;border-radius:999px;background:#e3d8e7;color:#2f6a82;font-weight:800;padding:13px 18px;font-size:14px}

.contact-form-submit[disabled]{opacity:.72;cursor:not-allowed}

.contact-phone-link{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#22343f;color:#fff!important;text-decoration:none;padding:13px 18px;font-weight:700;font-size:14px}

.contact-form-note{font-size:11px!important;line-height:1.5!important;color:rgba(255,255,255,.72)!important;margin:12px 0 0!important}

.contact-inline-socials{margin-top:18px!important}

.contact-form-section{display:none!important}

/* Editorial image treatment matching source compositions */

.about-image-stage{position:relative;padding:0 0 46px 42px;min-height:560px}

.about-image-stage::before{content:'';position:absolute;left:0;bottom:0;width:88%;height:86%;background:#e3d8e7;border-radius:24px;z-index:0}

.about-image-stage img{position:relative;z-index:2;width:100%;height:560px;object-fit:cover;border-radius:22px;box-shadow:0 22px 48px rgba(34,52,63,.15)}

.about-image-badge{position:absolute;z-index:3;left:8px;bottom:18px;min-width:235px;background:#2f7893;color:#fff;border-radius:18px;padding:22px 25px;box-shadow:0 15px 30px rgba(34,52,63,.18)}

.about-image-badge strong{display:block;font-family:'Abril Fatface',Georgia,serif;font-size:27px;line-height:1.05;margin-bottom:4px}

.about-image-badge span{display:block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.86)}

@media(max-width:900px){body:has(#hero_section) .site-header .main-nav{display:none}.lang-switch{margin-left:0}.lightbox-prev{left:8px}.lightbox-next{right:8px}.page-title-bar{min-height:175px!important;padding:42px 0 38px!important}.page-title-container{grid-template-columns:1fr!important}.page-title-container::before{grid-column:1;grid-row:1}.page-title-heading{grid-column:1;grid-row:2;font-size:36px!important}.page-breadcrumbs{grid-column:1;grid-row:3;justify-self:start!important;margin-top:8px}.home-source-about-grid,.service-hub-grid,.service-feature-band,.service-process-grid,.related-services-grid,.faq-main-grid,.contact-form-grid,.contact-main-grid{grid-template-columns:1fr!important}.home-source-image-stage{max-width:650px;margin:0 auto}.home-source-copy{max-width:720px;margin:0 auto}.home-source-copy h2{font-size:39px}.service-feature-copy{padding:34px}.faq-right-col{position:static}.contact-map-wrap,.contact-map-wrap iframe{min-height:430px!important}.footer-columns-grid{grid-template-columns:1fr 1fr!important;gap:28px!important}.footer-v2-logo{width:190px!important}.about-image-stage{max-width:620px;margin:0 auto 38px}}

@media(max-width:560px){.footer-columns-grid{grid-template-columns:1fr!important;text-align:center!important}.footer-contact-address{align-items:center!important}.footer-v2-inner{padding-top:36px!important}.footer-divider{margin:22px 0 24px}.footer-bottom-row{margin-top:22px!important}.contact-card-box{padding:28px!important}.contact-form-actions{flex-direction:column}.contact-form-submit,.contact-phone-link{width:100%}.about-image-stage{padding-left:22px;padding-bottom:36px;min-height:auto}.about-image-stage img{height:440px}.about-image-badge{left:0;bottom:10px;min-width:190px;padding:17px 18px}.about-image-badge strong{font-size:23px}.home-source-about{padding:62px 0 72px!important}.home-source-image-stage{padding-left:22px;padding-bottom:38px;min-height:auto}.home-source-image-stage img{height:480px}.home-source-years-badge{left:0;bottom:10px;min-width:210px;padding:16px 20px}.home-source-years-badge strong{font-size:46px}.home-source-years-badge span{font-size:17px}.home-source-copy h2{font-size:34px}.home-source-benefits{grid-template-columns:1fr}.home-source-cta{justify-content:flex-start}}


/* ===== from css/final-polish.css ===== */

/* Final homepage and brand polish */

body:has(#hero_section) .site-header .nav-link{color:#22343f!important;text-shadow:0 1px 10px rgba(255,255,255,.45)}

body:has(#hero_section) .site-header .lang-switch,body:has(#hero_section) .site-header .lang-switch a{color:#22343f!important}

body:has(#hero_section) .site-header.scrolled .nav-link{color:#444!important;text-shadow:none}

/* Make the logo readable on dark brand surfaces */

.footer-v2-logo,.offcanvas-drawer img[src*="ndg-professsional-tailor-logo1"]{filter:brightness(0) invert(1);opacity:.96}

/* Event section: source-like split with warm text field and dress on right */

.event-details-section{min-height:520px!important;margin:0!important;padding:92px 0 98px!important;background-position:center right!important;background-size:cover!important;overflow:visible!important}

.event-details-overlay{background:linear-gradient(90deg,#f4eadf 0%,#f4eadf 39%,rgba(244,234,223,.94) 48%,rgba(244,234,223,.28) 66%,rgba(244,234,223,0) 78%)!important}

.event-details-content{max-width:610px!important}

.event-subtitle{color:#2f7893!important;font-size:13px!important;letter-spacing:.15em!important;margin-bottom:18px!important}

.event-heading{font-size:46px!important;line-height:1.12!important;margin-bottom:24px!important}

.event-text{font-size:17px!important;line-height:1.75!important;max-width:590px!important}

.event-bullets{gap:18px!important;margin-top:30px!important}

.event-bullet-icon{width:30px!important;height:30px!important}

.event-bullet-icon img{width:25px!important;height:25px!important;transition:transform .3s ease,filter .3s ease}

.event-bullet-item:hover .event-bullet-icon img{transform:rotate(-8deg) scale(1.08)}

/* CTA immediately after event section */

.event-cta-section{position:relative;padding:0 0 92px;margin-top:-72px;z-index:8;pointer-events:none}

.event-cta-card{pointer-events:auto;max-width:1180px;margin:0 auto;background:#2f7893;color:#fff;border-radius:24px;padding:62px 54px 56px;text-align:center;box-shadow:0 24px 52px rgba(34,52,63,.18);position:relative;overflow:visible}

.event-cta-card h2{font-family:'Abril Fatface',Georgia,serif;font-size:48px;line-height:1.08;color:#fff;margin:0 0 18px}

.event-cta-card p{font-size:18px;line-height:1.6;color:rgba(255,255,255,.9);margin:0 auto 34px;max-width:760px}

.event-cta-btn{position:absolute;left:50%;bottom:-25px;transform:translateX(-50%);display:inline-flex;align-items:center;justify-content:center;gap:14px;min-width:250px;padding:15px 26px;border-radius:999px;background:#e3d8e7;color:#2f6a82!important;text-decoration:none;font-weight:800;box-shadow:0 12px 28px rgba(34,52,63,.14);transition:transform .25s ease,box-shadow .25s ease,background .25s ease}

.event-cta-btn:hover{transform:translateX(-50%) translateY(-3px);box-shadow:0 16px 34px rgba(34,52,63,.22);background:#fff}

.event-cta-btn i{transition:transform .25s ease}

.event-cta-btn:hover i{transform:translateX(5px)}

/* Lena eyebrow belongs to brand teal, not brown */

.elena-role{color:#2f7893!important}

/* Shared modern motion */

.reveal-on-scroll{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}

.reveal-on-scroll.is-visible{opacity:1;transform:none}

.reveal-delay-1{transition-delay:.08s}

.reveal-delay-2{transition-delay:.16s}

.reveal-delay-3{transition-delay:.24s}

.service-card,.related-service-card,.gallery-thumb,.process-step-item,.home-source-benefits>div{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}

.service-card:hover,.related-service-card:hover{transform:translateY(-6px)}

.process-step-item:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(34,52,63,.08)}

.home-source-benefits>div:hover{transform:translateX(4px)}

.home-source-benefits i,.tab-stylish-list li i{transition:transform .25s ease,background .25s ease}

.home-source-benefits>div:hover i,.tab-stylish-list li:hover i{transform:scale(1.08);background:#e3d8e7}

.gallery-thumb:hover{transform:translateY(-4px)}

.btn-header-call,.btn-gallery-book,.btn-gallery-call,.hero-call-outline{transition:transform .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease}

.btn-header-call:hover,.btn-gallery-book:hover,.btn-gallery-call:hover,.hero-call-outline:hover{transform:translateY(-2px)}

/* Exact source-style event composition, including the curved dividers */

#event_details_section.event-details-section{position:relative!important;isolation:isolate;overflow:hidden!important;min-height:650px!important;padding:150px 0 145px!important;background-image:url('/assets/NDG_professional-tailor-montreal-robe-soiree-ajustement.jpg')!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important}

#event_details_section.event-details-section::before,#event_details_section.event-details-section::after{content:'';position:absolute;left:-7%;width:114%;height:155px;background:#fff;z-index:4;pointer-events:none}

#event_details_section.event-details-section::before{top:-94px;border-radius:0 0 50% 50%/0 0 100% 100%}

#event_details_section.event-details-section::after{bottom:-94px;border-radius:50% 50% 0 0/100% 100% 0 0}

#event_details_section .event-details-overlay{position:absolute!important;inset:0!important;z-index:0!important;background:linear-gradient(90deg,rgba(244,234,223,.98) 0%,rgba(244,234,223,.96) 43%,rgba(244,234,223,.82) 52%,rgba(244,234,223,.22) 68%,rgba(244,234,223,0) 78%)!important}

#event_details_section .container-custom{position:relative;z-index:2}

#event_details_section .event-details-content{max-width:610px!important;margin-left:28px}

#event_details_section .event-subtitle{display:block!important;color:#5d5d5d!important;font-size:15px!important;font-weight:700!important;letter-spacing:0!important;text-transform:none!important;margin-bottom:22px!important}

#event_details_section .event-heading{position:relative;font-size:48px!important;line-height:1.02!important;color:#2f6a82!important;margin-bottom:34px!important;max-width:650px!important}

#event_details_section .event-heading::after{content:'';position:absolute;left:-10px;right:36px;bottom:3px;height:16px;background:rgba(227,216,231,.72);border-radius:20px;z-index:-1}

#event_details_section .event-text{font-size:18px!important;line-height:1.55!important;color:#626262!important;max-width:590px!important;margin-bottom:28px!important}

#event_details_section .event-bullets{display:flex!important;flex-direction:column!important;gap:16px!important;margin-top:18px!important}

#event_details_section .event-bullet-item{display:flex!important;align-items:center!important;gap:10px!important}

#event_details_section .event-bullet-icon{width:26px!important;height:26px!important;flex:0 0 26px!important}

#event_details_section .event-bullet-icon img{width:24px!important;height:24px!important;object-fit:contain!important;filter:none!important}

#event_details_section .event-bullet-text{font-size:17px!important;font-style:italic!important;font-weight:400!important;color:#5f5f5f!important}

#event_details_section + .event-cta-section{margin-top:-64px!important}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal-on-scroll{opacity:1!important;transform:none!important}}

@media(max-width:900px){#event_details_section.event-details-section{min-height:560px!important;padding:125px 0 118px!important;background-position:64% center!important}#event_details_section .event-details-overlay{background:linear-gradient(90deg,rgba(244,234,223,.98) 0%,rgba(244,234,223,.94) 62%,rgba(244,234,223,.55) 100%)!important}#event_details_section .event-details-content{max-width:72%!important;margin-left:0}#event_details_section .event-heading{font-size:39px!important}.event-cta-section{margin-top:-48px;padding-bottom:78px}.event-cta-card{padding:46px 28px 52px}.event-cta-card h2{font-size:38px}}

@media(max-width:620px){body:has(#hero_section) .site-header .nav-link{color:#22343f!important}#event_details_section.event-details-section{min-height:auto!important;padding:110px 0 105px!important;background-position:68% center!important}#event_details_section.event-details-section::before,#event_details_section.event-details-section::after{height:110px}#event_details_section.event-details-section::before{top:-72px}#event_details_section.event-details-section::after{bottom:-72px}#event_details_section .event-details-overlay{background:rgba(244,234,223,.9)!important}#event_details_section .event-details-content{max-width:100%!important}#event_details_section .event-heading{font-size:34px!important}#event_details_section .event-heading::after{right:8px}.event-cta-card h2{font-size:32px!important}.event-cta-card p{font-size:16px!important}.event-cta-btn{min-width:220px}}


/* ===== from css/source-tabs.css ===== */

/* Homepage service tabs: source-design match. Footer untouched. */

.tabs-section{
  background:#fff!important;
  padding:72px 0 88px!important;
}

/* The source homepage uses a wider 1600px content rail. Keep tab nav and panel on that exact rail. */

#tabs_section>.container-custom{
  width:100%!important;
  max-width:1600px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:32px!important;
  padding-right:32px!important;
}

#tabs_section .tabs-nav-wrap,
#tabs_section .tabs-panels-container,
#tabs_section .tab-panel,
#tabs_section .tab-content-grid{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}

.tabs-nav-wrap{
  display:grid!important;
  grid-template-columns:repeat(5,1fr)!important;
  gap:0!important;
  margin-top:0!important;
  margin-bottom:46px!important;
  background:#e3d8e7!important;
  border:0!important;
  border-radius:22px!important;
  padding:0!important;
  overflow:hidden!important;
  box-shadow:none!important;
}

.tab-btn{
  min-height:58px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#666!important;
  font-size:15px!important;
  font-weight:700!important;
  padding:14px 18px!important;
  transition:background .25s ease,color .25s ease,box-shadow .25s ease!important;
}

.tab-btn:hover{color:#2F6A82!important;background:rgba(255,255,255,.28)!important}

.tab-btn.active{
  background:#2F6A82!important;
  color:#fff!important;
  border-radius:18px!important;
  box-shadow:0 8px 24px rgba(47,106,130,.18)!important;
}

/* One clean content surface only. No panel-inside-panel borders/shadows. */

.tabs-panels-container{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:visible!important;
  padding:0!important;
}

.tab-panel{
  display:none!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding:0!important;
}

.tab-panel.active{display:block!important;padding:0 0 36px!important}

.tab-content-grid{
  display:grid!important;
  grid-template-columns:minmax(380px,.9fr) minmax(0,1.1fr)!important;
  gap:74px!important;
  align-items:center!important;
  background:#fff!important;
  border:0!important;
  border-radius:18px!important;
  box-shadow:0 10px 28px rgba(6,45,61,.06)!important;
  padding:48px!important;
}

.tab-img-side{grid-column:1!important;grid-row:1!important;align-self:stretch!important}

.tab-text-side{grid-column:2!important;grid-row:1!important;padding:22px 8px 22px 0!important}

.tab-img-side img{
  width:100%!important;
  height:560px!important;
  object-fit:cover!important;
  border-radius:18px!important;
  box-shadow:none!important;
  display:block!important;
}

.tab-text-side h3{
  font-family:'Abril Fatface',Georgia,serif!important;
  font-size:40px!important;
  line-height:1.12!important;
  color:#2F6A82!important;
  margin:0 0 28px!important;
}

.tab-text-side>p{font-size:17px!important;line-height:1.72!important;color:#666!important;margin:0 0 10px!important;max-width:680px!important}

.tab-stylish-list{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:32px 38px!important;
  list-style:none!important;
  padding:0!important;
  margin:46px 0 0!important;
}

.tab-stylish-list li{display:flex!important;align-items:center!important;gap:16px!important;min-width:0!important;color:#5e6266!important;font-size:16px!important;line-height:1.45!important;font-weight:400!important}

.tab-stylish-list li i{width:58px!important;height:58px!important;flex:0 0 58px!important;border-radius:50%!important;background:#2F6A82!important;color:#fff!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:21px!important;box-shadow:none!important}

.tab-stylish-list li span{display:block!important}

#tab_custom .tab-text-side>p:first-of-type{font-weight:400!important;color:#666!important;margin-bottom:10px!important}

#tab_custom .process-steps-grid,#tab_custom .process-steps-grid+div{display:none!important}

.btn-tab-service{display:none!important}

@media(max-width:1200px){
  #tabs_section>.container-custom{padding-left:28px!important;padding-right:28px!important}
}

@media(max-width:980px){
  #tabs_section>.container-custom{padding-left:22px!important;padding-right:22px!important}
  .tabs-nav-wrap{grid-template-columns:1fr!important;border-radius:18px!important;overflow:hidden!important}
  .tab-btn,.tab-btn.active{border-radius:0!important}
  .tab-content-grid{grid-template-columns:1fr!important;gap:34px!important;padding:34px!important}
  .tab-img-side,.tab-text-side{grid-column:1!important}
  .tab-img-side{grid-row:1!important}
  .tab-text-side{grid-row:2!important;padding:0!important}
  .tab-img-side img{height:470px!important}
}

@media(max-width:620px){
  #tabs_section>.container-custom{padding-left:18px!important;padding-right:18px!important}
  .tabs-section{padding:54px 0 64px!important}
  .tabs-nav-wrap{margin-bottom:30px!important}
  .tab-content-grid{padding:22px!important;border-radius:16px!important}
  .tab-text-side h3{font-size:32px!important}
  .tab-stylish-list{grid-template-columns:1fr!important;gap:18px!important;margin-top:30px!important}
  .tab-img-side img{height:420px!important}
}


/* ===== from css/source-match-v2.css ===== */

/* Source-match v2: typography, event curves, CTA, and editorial image treatment */

:root{
  --ndg-teal:#2f6a82;
  --ndg-teal-bright:#2f7893;
  --ndg-dark:#22343f;
  --ndg-lavender:#e3d8e7;
  --ndg-cream:#f4eadf;
  --ndg-body:#555555;
  --ndg-muted:#707070;
}

/* Site-wide source typography rhythm */

body{font-family:'Roboto',sans-serif;color:var(--ndg-body);font-size:16px;line-height:1.65}

h1,h2,h3{font-family:'Abril Fatface',Georgia,serif;font-weight:400;color:var(--ndg-dark)}

p{color:var(--ndg-body)}

.service-card-desc,.event-text,.elena-text,.tab-text-side p,.faq-desc-text,.service-local-intro p{color:var(--ndg-body)!important}

/* Event / formalwear section: exact source composition */

.event-details-section{
  position:relative!important;
  isolation:isolate;
  min-height:610px!important;
  margin:0!important;
  padding:132px 0 142px!important;
  overflow:hidden!important;
  background-image:url('/assets/NDG_professional-tailor-montreal-robe-soiree-ajustement.jpg')!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}

/* Full, smooth top scoop, not a shallow strip */

.event-details-section::before{
  content:'';
  position:absolute;
  z-index:6;
  pointer-events:none;
  top:-104px;
  left:-5%;
  width:110%;
  height:178px;
  background:#fff;
  border-radius:0 0 50% 50% / 0 0 100% 100%;
}

/* Full lower scoop so the following CTA can overlap it */

.event-details-section::after{
  content:'';
  position:absolute;
  z-index:6;
  pointer-events:none;
  bottom:-112px;
  left:-5%;
  width:110%;
  height:180px;
  background:#fff;
  border-radius:50% 50% 0 0 / 100% 100% 0 0;
}

/* Keep the dress crisp: opaque cream only where text sits, then fade quickly */

.event-details-overlay{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  background:linear-gradient(90deg,
    rgba(244,234,223,.99) 0%,
    rgba(244,234,223,.99) 34%,
    rgba(244,234,223,.93) 43%,
    rgba(244,234,223,.44) 52%,
    rgba(244,234,223,.08) 59%,
    rgba(244,234,223,0) 64%)!important;
}

.event-details-section .container-custom{position:relative;z-index:4}

.event-details-content{max-width:600px!important;margin-left:54px!important}

.event-subtitle{
  display:block!important;
  font-family:'Roboto',sans-serif!important;
  font-size:15px!important;
  font-weight:700!important;
  line-height:1.4!important;
  letter-spacing:0!important;
  text-transform:none!important;
  color:#595959!important;
  margin:0 0 22px!important;
}

.event-heading{
  position:relative!important;
  display:inline!important;
  font-size:44px!important;
  line-height:1.08!important;
  color:var(--ndg-teal)!important;
  letter-spacing:-.02em!important;
  margin:0!important;
  background:linear-gradient(transparent 78%,rgba(227,216,231,.92) 78%,rgba(227,216,231,.92) 96%,transparent 96%)!important;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}

.event-text{
  max-width:575px!important;
  margin:34px 0 0!important;
  font-size:17px!important;
  line-height:1.68!important;
  color:#5f5f5f!important;
}

.event-bullets{display:flex!important;flex-direction:column!important;gap:17px!important;margin-top:30px!important}

.event-bullet-item{display:flex!important;align-items:center!important;gap:12px!important}

.event-bullet-icon{width:25px!important;height:25px!important;flex:0 0 25px!important}

.event-bullet-icon img{width:23px!important;height:23px!important;object-fit:contain!important;opacity:.78}

.event-bullet-text{font-size:16px!important;line-height:1.4!important;font-style:italic!important;font-weight:400!important;color:#626262!important}

/* CTA after event section: purposeful conversion block, source proportions */

.event-cta-section{position:relative!important;z-index:9!important;margin-top:-58px!important;padding:0 0 104px!important;pointer-events:none!important}

.event-cta-section .container-custom{padding-left:64px!important;padding-right:64px!important}

.event-cta-card{
  pointer-events:auto!important;
  max-width:1180px!important;
  min-height:286px!important;
  margin:0 auto!important;
  padding:54px 70px 62px!important;
  background:var(--ndg-teal-bright)!important;
  color:#fff!important;
  border-radius:24px!important;
  text-align:center!important;
  box-shadow:0 22px 50px rgba(34,52,63,.16)!important;
  position:relative!important;
  overflow:visible!important;
}

.event-cta-card h2{font-size:44px!important;line-height:1.08!important;letter-spacing:-.015em!important;color:#fff!important;margin:0 auto 18px!important;max-width:840px!important}

.event-cta-card p{font-size:17px!important;line-height:1.55!important;color:rgba(255,255,255,.9)!important;margin:0 auto!important;max-width:720px!important}

.event-cta-btn{bottom:-25px!important;min-width:245px!important;padding:14px 26px!important;font-size:15px!important}

/* Lena portrait: use the same editorial image language as the black-dress block */

.elena-section{padding:92px 0 104px!important;background:#fff!important}

.elena-grid{display:grid!important;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;gap:92px!important;align-items:center!important}

.elena-img-wrap{
  position:relative!important;
  padding:0 0 44px 42px!important;
  min-height:570px!important;
  overflow:visible!important;
}

.elena-img-wrap::before{
  content:'';
  position:absolute;
  left:0;
  bottom:0;
  width:88%;
  height:86%;
  background:var(--ndg-lavender);
  border-radius:24px;
  z-index:0;
}

.elena-img-wrap img{
  position:relative!important;
  z-index:2!important;
  display:block!important;
  width:100%!important;
  height:570px!important;
  object-fit:cover!important;
  object-position:center!important;
  border-radius:22px!important;
  box-shadow:0 22px 48px rgba(34,52,63,.15)!important;
}

.elena-img-wrap .elena-role{
  position:absolute!important;
  z-index:4!important;
  left:8px!important;
  bottom:18px!important;
  display:inline-flex!important;
  align-items:center!important;
  min-height:72px!important;
  max-width:310px!important;
  padding:18px 24px!important;
  margin:0!important;
  border-radius:17px!important;
  background:var(--ndg-teal-bright)!important;
  color:#fff!important;
  font-family:'Roboto',sans-serif!important;
  font-size:13px!important;
  font-weight:700!important;
  line-height:1.35!important;
  letter-spacing:.11em!important;
  text-transform:uppercase!important;
  box-shadow:0 14px 30px rgba(34,52,63,.18)!important;
}

.elena-text-wrap{padding:14px 0!important}

.elena-heading{font-size:43px!important;line-height:1.08!important;color:var(--ndg-dark)!important;margin:0 0 18px!important}

.elena-divider{width:44px!important;height:4px!important;background:var(--ndg-teal)!important;margin:0 0 28px!important}

.elena-text p{font-size:17px!important;line-height:1.78!important;color:#5d5d5d!important;margin-bottom:22px!important}

/* Editorial treatment should stay selective: identity/story imagery only */

.home-source-image-stage,.about-image-stage,.elena-img-wrap{--editorial-shape:var(--ndg-lavender)}

/* Mobile-first corrections */

@media(max-width:900px){
  .event-details-section{min-height:650px!important;padding:118px 0 126px!important;background-position:66% center!important}
  .event-details-section::before{top:-82px;height:138px}
  .event-details-section::after{bottom:-88px;height:142px}
  .event-details-overlay{background:linear-gradient(90deg,rgba(244,234,223,.98) 0%,rgba(244,234,223,.95) 52%,rgba(244,234,223,.72) 68%,rgba(244,234,223,.18) 100%)!important}
  .event-details-content{max-width:68%!important;margin-left:12px!important}
  .event-heading{font-size:38px!important}
  .event-text{font-size:16px!important}
  .event-cta-section{margin-top:-42px!important;padding-bottom:90px!important}
  .event-cta-section .container-custom{padding-left:30px!important;padding-right:30px!important}
  .event-cta-card{min-height:250px!important;padding:46px 32px 56px!important}
  .event-cta-card h2{font-size:37px!important}
  .elena-grid{grid-template-columns:1fr!important;gap:58px!important}
  .elena-img-wrap{max-width:650px!important;margin:0 auto!important;min-height:540px!important}
  .elena-img-wrap img{height:540px!important}
  .elena-text-wrap{max-width:720px!important;margin:0 auto!important}
}

@media(max-width:620px){
  body{font-size:15px}
  .container-custom{padding-left:20px!important;padding-right:20px!important}
  .event-details-section{
    min-height:auto!important;
    padding:104px 0 112px!important;
    background-position:68% center!important;
  }
  .event-details-section::before{top:-56px;left:-18%;width:136%;height:100px;border-radius:0 0 50% 50% / 0 0 100% 100%}
  .event-details-section::after{bottom:-62px;left:-18%;width:136%;height:104px;border-radius:50% 50% 0 0 / 100% 100% 0 0}
  .event-details-overlay{background:rgba(244,234,223,.90)!important}
  .event-details-content{max-width:100%!important;margin:0!important}
  .event-subtitle{font-size:13px!important;margin-bottom:16px!important}
  .event-heading{font-size:34px!important;line-height:1.05!important}
  .event-text{font-size:15.5px!important;line-height:1.65!important;margin-top:28px!important;max-width:100%!important}
  .event-bullets{margin-top:25px!important;gap:14px!important}
  .event-bullet-text{font-size:15px!important}
  .event-cta-section{margin-top:-26px!important;padding-bottom:82px!important}
  .event-cta-section .container-custom{padding-left:18px!important;padding-right:18px!important}
  .event-cta-card{min-height:230px!important;padding:38px 22px 52px!important;border-radius:20px!important}
  .event-cta-card h2{font-size:31px!important;line-height:1.08!important}
  .event-cta-card p{font-size:15.5px!important;line-height:1.55!important}
  .event-cta-btn{min-width:210px!important;font-size:14px!important}
  .elena-section{padding:72px 0 84px!important}
  .elena-grid{gap:46px!important}
  .elena-img-wrap{padding:0 0 34px 24px!important;min-height:430px!important}
  .elena-img-wrap::before{width:91%!important;height:84%!important;border-radius:18px!important}
  .elena-img-wrap img{height:430px!important;border-radius:18px!important}
  .elena-img-wrap .elena-role{left:0!important;bottom:8px!important;max-width:260px!important;min-height:62px!important;padding:15px 18px!important;font-size:11px!important;border-radius:14px!important}
  .elena-heading{font-size:34px!important}
  .elena-text p{font-size:15.5px!important;line-height:1.72!important}
}


/* ===== from css/source-match-v3.css ===== */

/* Source-match v3: event composition + homepage realizations */

/* EVENT SECTION: full-width curves, crisp dress, balanced two-line title */

#event_details_section.event-details-section{
  position:relative!important;
  overflow:hidden!important;
  min-height:650px!important;
  padding:150px 0 150px!important;
  background-image:url('/assets/NDG_professional-tailor-montreal-robe-soiree-ajustement.jpg')!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}

#event_details_section.event-details-section::before{
  content:''!important;
  position:absolute!important;
  z-index:7!important;
  top:-142px!important;
  left:-15%!important;
  width:130%!important;
  height:250px!important;
  background:#fff!important;
  border-radius:0 0 50% 50% / 0 0 100% 100%!important;
  pointer-events:none!important;
}

#event_details_section.event-details-section::after{
  content:''!important;
  position:absolute!important;
  z-index:7!important;
  bottom:-145px!important;
  left:-15%!important;
  width:130%!important;
  height:250px!important;
  background:#fff!important;
  border-radius:50% 50% 0 0 / 100% 100% 0 0!important;
  pointer-events:none!important;
}

/* Cream belongs only behind the text. Do not wash over the dress. */

#event_details_section .event-details-overlay{
  position:absolute!important;
  top:0!important;
  bottom:0!important;
  left:0!important;
  right:auto!important;
  width:58%!important;
  z-index:1!important;
  background:linear-gradient(90deg,
    rgba(244,234,223,.995) 0%,
    rgba(244,234,223,.995) 64%,
    rgba(244,234,223,.92) 76%,
    rgba(244,234,223,.45) 88%,
    rgba(244,234,223,0) 100%)!important;
}

#event_details_section .container-custom{position:relative!important;z-index:4!important}

#event_details_section .event-details-content{max-width:720px!important;margin-left:42px!important}

#event_details_section .event-subtitle{font-size:15px!important;font-weight:700!important;color:#575757!important;margin-bottom:23px!important}

#event_details_section .event-heading{
  display:block!important;
  max-width:700px!important;
  font-size:46px!important;
  line-height:1.08!important;
  letter-spacing:-.02em!important;
  color:#2f6a82!important;
  margin:0!important;
  background:none!important;
}

#event_details_section .event-heading::after{display:none!important}

#event_details_section .event-heading .source-title-line{display:inline!important;position:relative!important;background:none!important}

#event_details_section .event-heading .source-title-line::after{display:none!important;content:none!important}

#event_details_section .event-text{max-width:610px!important;margin:34px 0 0!important;font-size:17px!important;line-height:1.65!important}

#event_details_section .event-bullets{margin-top:28px!important;gap:16px!important}

#event_details_section .event-bullet-text{font-size:16px!important}

/* Lena section: avoid a one-word orphan on desktop without shrinking it too far */

#elena_section .elena-text-wrap{max-width:760px!important}

#elena_section .elena-heading{
  max-width:700px!important;
  font-size:41px!important;
  line-height:1.08!important;
  letter-spacing:-.018em!important;
  text-wrap:balance;
}

/* REALISATIONS: source-style sewing background above, white below, carousel on home. */

#gallery_section.gallery-section{
  position:relative!important;
  overflow:hidden!important;
  padding:86px 0 76px!important;
  background:#fff!important;
}

#gallery_section.gallery-section::before{
  content:''!important;
  position:absolute!important;
  z-index:0!important;
  top:0!important;
  left:0!important;
  right:0!important;
  height:58%!important;
  opacity:1!important;
  pointer-events:none!important;
  background-image:linear-gradient(rgba(47,106,130,.88),rgba(47,106,130,.88)),url('/assets/bg2.jpg')!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}

#gallery_section .container-custom{position:relative!important;z-index:2!important;max-width:1440px!important}

#gallery_section .gallery-heading{
  max-width:1000px!important;
  margin:0 auto 64px!important;
  padding:0 24px!important;
  text-align:center!important;
  color:#fff!important;
  font-size:42px!important;
  line-height:1.12!important;
}

#gallery_section .gallery-carousel-track{
  display:flex!important;
  gap:20px!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  scroll-snap-type:x mandatory!important;
  scroll-behavior:smooth!important;
  scrollbar-width:none!important;
  padding:0 26px 30px!important;
  margin:0!important;
}

#gallery_section .gallery-thumb{
  flex:0 0 calc((100% - 60px)/4)!important;
  min-width:0!important;
  height:330px!important;
  border-radius:18px!important;
  overflow:hidden!important;
  scroll-snap-align:start!important;
  box-shadow:0 16px 34px rgba(34,52,63,.14)!important;
  background:#fff!important;
}

#gallery_section .gallery-thumb img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important}

#gallery_section .gallery-action-bar{display:flex!important;justify-content:center!important;align-items:center!important;gap:18px!important;margin-top:28px!important}

#gallery_section .btn-gallery-call{background:#fff!important;border:2px solid #2f6a82!important;color:#2f6a82!important}

#gallery_section .btn-gallery-book{background:#e3d8e7!important;color:#2f6a82!important}

.home-gallery-arrow{
  position:absolute;
  z-index:6;
  top:58%;
  transform:translateY(-50%);
  width:54px;
  height:54px;
  border:0;
  border-radius:50%;
  background:#e3d8e7;
  color:#2f6a82;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(34,52,63,.12);
  transition:transform .25s ease,background .25s ease;
}

.home-gallery-arrow:hover{transform:translateY(-50%) scale(1.06);background:#fff}

.home-gallery-prev{left:18px}

.home-gallery-next{right:18px}

/* Footer: premium local-business hierarchy without keyword stuffing. */

.footer-v2{border-top:1px solid rgba(255,255,255,.16)!important}

.footer-v2 .footer-brand-block{max-width:760px!important}

.footer-v2 .footer-v2-logo{width:205px!important;margin-bottom:10px!important}

.footer-local-kicker{
  margin:0 0 8px!important;
  color:#eadfed!important;
  font-size:12px!important;
  line-height:1.3!important;
  font-weight:800!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
}

.footer-v2 .footer-brand-copy{max-width:670px!important;margin-bottom:18px!important;font-size:14px!important;line-height:1.55!important}

.footer-quick-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 auto 14px}

.footer-quick-actions a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:128px;padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.28);font-size:13px;font-weight:700;text-decoration:none!important;transition:transform .2s ease,background .2s ease}

.footer-quick-actions a:hover{background:#fff!important;color:#2f6a82!important;transform:translateY(-2px)}

.footer-v2 .footer-divider{margin:24px 0 28px!important}

.footer-v2 .footer-columns-grid{gap:52px!important}

.footer-v2 .footer-col-label{margin-bottom:13px!important}

.footer-v2 .footer-bottom-row{margin-top:24px!important}

@media(max-width:980px){
  #event_details_section .event-details-content{max-width:64%!important;margin-left:0!important}
  #event_details_section .event-heading{font-size:39px!important}
  #event_details_section .event-details-overlay{width:72%!important;background:linear-gradient(90deg,rgba(244,234,223,.98) 0%,rgba(244,234,223,.96) 66%,rgba(244,234,223,.45) 86%,rgba(244,234,223,0) 100%)!important}
  #elena_section .elena-heading{max-width:620px!important;font-size:38px!important}
  #gallery_section .gallery-thumb{flex-basis:calc((100% - 20px)/2)!important;height:360px!important}
  /* consolidated below (2026-09 mobile audit): #gallery_section .gallery-heading{font-size:38px!important} */
  .footer-v2 .footer-columns-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:34px 48px!important}
}

@media(max-width:620px){
  #event_details_section.event-details-section{padding:108px 0 112px!important;background-position:66% center!important}
  #event_details_section.event-details-section::before{top:-86px!important;left:-35%!important;width:170%!important;height:150px!important}
  #event_details_section.event-details-section::after{bottom:-88px!important;left:-35%!important;width:170%!important;height:154px!important}
  #event_details_section .event-details-overlay{width:100%!important;background:rgba(244,234,223,.88)!important}
  #event_details_section .event-details-content{max-width:100%!important;margin:0!important}
  #event_details_section .event-heading{font-size:33px!important;line-height:1.06!important}
  #event_details_section .event-text{font-size:15.5px!important;margin-top:28px!important}
  #elena_section .elena-heading{max-width:100%!important;font-size:33px!important;line-height:1.08!important;text-wrap:pretty}
  #gallery_section.gallery-section{padding:68px 0 58px!important}
  #gallery_section.gallery-section::before{height:50%!important;background-position:left center!important}
  /* consolidated below (2026-09 mobile audit): #gallery_section .gallery-heading{font-size:32px!important;margin-bottom:38px!important;padding:0 20px!important} */
  #gallery_section .gallery-carousel-track{gap:14px!important;padding:0 20px 24px!important}
  #gallery_section .gallery-thumb{flex:0 0 78vw!important;height:380px!important;border-radius:16px!important}
  .home-gallery-arrow{display:none!important}
  #gallery_section .gallery-action-bar{flex-direction:column!important;gap:12px!important;margin-top:18px!important}
  #gallery_section .gallery-action-bar a{width:min(100%,290px)!important;justify-content:center!important}
  .footer-v2 .footer-columns-grid{grid-template-columns:1fr!important;gap:26px!important}
  .footer-v2 .footer-v2-logo{width:180px!important}
  .footer-local-kicker{font-size:11px!important}
  .footer-quick-actions a{flex:1 1 135px;max-width:180px}
}


/* ===== from css/source-fidelity-fix.css ===== */

/* Final source-fidelity overrides. Keep this file last. */

/* Event section: use the original source CSS proportions, then add only the shallow source curves. */

#event_details_section.event-details-section{
  min-height:0!important;
  padding-top:80px!important;
  padding-bottom:80px!important;
  margin-top:40px!important;
  margin-bottom:60px!important;
  background-image:url('/assets/NDG_professional-tailor-montreal-robe-soiree-ajustement.jpg')!important;
  background-size:cover!important;
  background-position:center!important;
  position:relative!important;
  overflow:hidden!important;
}

#event_details_section .event-details-overlay{
  position:absolute!important;
  inset:0!important;
  width:auto!important;
  background-image:linear-gradient(90deg,#F0E7DC 32%,rgba(227,216,231,0.15) 75%)!important;
  background-color:transparent!important;
}

#event_details_section .event-details-content{
  position:relative!important;
  z-index:5!important;
  max-width:600px!important;
  margin-left:0!important;
}

#event_details_section .event-subtitle{
  color:#555!important;
  font-size:15px!important;
  font-weight:700!important;
  margin-bottom:20px!important;
}

#event_details_section .event-heading{
  max-width:650px!important;
  font-size:46px!important;
  line-height:1.08!important;
  letter-spacing:0!important;
  color:#2F6A82!important;
  margin:0 0 28px!important;
}

#event_details_section .event-heading::after,
#event_details_section .event-heading .source-title-line::after{display:none!important;content:none!important}

#event_details_section .event-text{
  max-width:600px!important;
  margin:0 0 26px!important;
  font-size:17px!important;
  line-height:1.65!important;
  color:#555!important;
}

#event_details_section .event-bullets{margin-top:0!important;gap:14px!important}

#event_details_section .event-bullet-text{font-size:16px!important;color:#555!important}

/* Shallower full-width curves, matching the source screenshot rather than the exaggerated v3 arcs. */

#event_details_section.event-details-section::before,
#event_details_section.event-details-section::after{
  content:''!important;
  position:absolute!important;
  left:-4%!important;
  width:108%!important;
  height:118px!important;
  background:#fff!important;
  z-index:7!important;
  pointer-events:none!important;
}

#event_details_section.event-details-section::before{
  top:-72px!important;
  border-radius:0 0 50% 50%/0 0 100% 100%!important;
}

#event_details_section.event-details-section::after{
  bottom:-72px!important;
  border-radius:50% 50% 0 0/100% 100% 0 0!important;
}

/* Realisations background: show the sewing-tools photo clearly, with only enough teal tint for white text contrast. */

#gallery_section.gallery-section::before{
  height:58%!important;
  opacity:1!important;
  background-image:linear-gradient(rgba(47,106,130,.56),rgba(47,106,130,.56)),url('/assets/bg2.jpg')!important;
  background-size:cover!important;
  background-position:left center!important;
  background-repeat:no-repeat!important;
}

/* Homepage map: full map only. Contact/business information is already reinforced in footer and Contact page. */

#map_section.map-section{position:relative!important;min-height:430px!important;margin:0!important;overflow:hidden!important;background:#f4f4f4!important}

#map_section.map-section iframe{display:block!important;width:100%!important;height:430px!important;min-height:430px!important;border:0!important}

#map_section .map-card-floating,#map_section .map-info-card{display:none!important}

/* Footer v3: premium bordered cards. Local entity facts stay visible without duplicating the map. */

.footer-v3{background:#173e49!important;color:#eef3f4!important;padding:0!important;border-top:0!important}

.footer-v3-inner{padding-top:64px!important;padding-bottom:24px!important}

.footer-v3-grid{display:grid!important;grid-template-columns:1.03fr .92fr 1.15fr!important;gap:34px!important;align-items:stretch!important}

.footer-v3-card{border:1px solid rgba(255,255,255,.16)!important;border-radius:34px!important;padding:38px 40px!important;min-height:355px!important;background:rgba(255,255,255,.015)!important}

.footer-v3-brand-card{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important}

.footer-v3-logo{width:190px!important;max-width:72%!important;height:auto!important;display:block!important;margin:0 0 28px!important;filter:brightness(0) invert(1)!important;opacity:.98!important}

.footer-v3-copy{font-size:16px!important;line-height:1.8!important;color:rgba(238,243,244,.78)!important;max-width:420px!important;margin:0 0 28px!important}

.footer-v3-socials{display:flex!important;gap:12px!important}

.footer-v3-socials a{width:48px!important;height:48px!important;border-radius:50%!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;background:#25576a!important;color:#fff!important;text-decoration:none!important;transition:transform .22s ease,background .22s ease!important}

.footer-v3-socials a:hover{transform:translateY(-3px)!important;background:#2f7893!important}

.footer-v3-title{font-family:'Roboto',sans-serif!important;font-size:24px!important;font-weight:400!important;color:#f2f5f6!important;margin:0 0 28px!important;padding-bottom:20px!important;border-bottom:1px solid rgba(255,255,255,.14)!important}

.footer-v3-list{list-style:none!important;margin:0!important;padding:0!important}

.footer-v3-list li{margin:0 0 14px!important}

.footer-v3-list a{position:relative!important;display:inline-flex!important;align-items:center!important;gap:11px!important;color:rgba(238,243,244,.78)!important;text-decoration:none!important;font-size:15px!important;line-height:1.45!important}

.footer-v3-list a::before{content:'›'!important;width:30px!important;height:30px!important;border-radius:50%!important;background:#25515f!important;color:#e7cfe6!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:22px!important;line-height:1!important;flex:0 0 30px!important}

.footer-v3-list a:hover{color:#fff!important;transform:translateX(2px)!important}

.footer-v3-contact-card{display:flex!important;flex-direction:column!important}

.footer-v3-contact-row{display:grid!important;grid-template-columns:38px 1fr!important;gap:14px!important;align-items:start!important;margin-bottom:18px!important;color:rgba(238,243,244,.78)!important;font-size:15px!important;line-height:1.6!important}

.footer-v3-contact-row>i{width:38px!important;height:38px!important;border-radius:50%!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;background:#25515f!important;color:#e7cfe6!important}

.footer-v3-contact-row strong{color:#fff!important;font-weight:700!important}

.footer-v3-contact-row a{color:#fff!important;text-decoration:none!important}

.footer-v3-directions{margin-top:auto!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;align-self:flex-start!important;padding:11px 18px!important;border-radius:999px!important;border:1px solid rgba(255,255,255,.24)!important;color:#fff!important;text-decoration:none!important;font-weight:700!important;font-size:13px!important}

.footer-v3-directions:hover{background:#fff!important;color:#173e49!important}

.footer-v3-bottom-nav{display:flex!important;justify-content:center!important;align-items:center!important;gap:26px!important;flex-wrap:wrap!important;margin:38px 0 0!important;padding:24px 0!important;border-top:1px solid rgba(255,255,255,.13)!important;border-bottom:1px solid rgba(255,255,255,.13)!important}

.footer-v3-bottom-nav a{color:rgba(238,243,244,.78)!important;text-decoration:none!important;font-size:13px!important}

.footer-v3-bottom-nav a:hover{color:#fff!important}

.footer-v3-bottom{padding-top:20px!important}

.footer-v3-bottom p{margin:0!important;text-align:center!important;color:rgba(238,243,244,.52)!important;font-size:12px!important}

@media(max-width:980px){
  #event_details_section.event-details-section{padding-top:76px!important;padding-bottom:76px!important;background-position:58% center!important}
  #event_details_section .event-details-content{max-width:56%!important}
  #event_details_section .event-heading{font-size:39px!important}
  #event_details_section .event-details-overlay{background-image:linear-gradient(90deg,#F0E7DC 40%,rgba(240,231,220,.82) 58%,rgba(227,216,231,.08) 78%)!important}
  .footer-v3-grid{grid-template-columns:1fr 1fr!important}.footer-v3-contact-card{grid-column:1/-1!important;min-height:auto!important}.footer-v3-card{min-height:320px!important}
}

@media(max-width:620px){
  #event_details_section.event-details-section{padding-top:74px!important;padding-bottom:78px!important;background-position:66% center!important;margin-top:24px!important;margin-bottom:44px!important}
  #event_details_section.event-details-section::before,
  #event_details_section.event-details-section::after{left:-18%!important;width:136%!important;height:82px!important}
  #event_details_section.event-details-section::before{top:-52px!important}
  #event_details_section.event-details-section::after{bottom:-52px!important}
  #event_details_section .event-details-overlay{background:rgba(240,231,220,.86)!important}
  #event_details_section .event-details-content{max-width:100%!important}
  #event_details_section .event-heading{font-size:33px!important;line-height:1.07!important}
  #event_details_section .event-text{font-size:15.5px!important}
  #gallery_section.gallery-section::before{height:52%!important;background-image:linear-gradient(rgba(47,106,130,.52),rgba(47,106,130,.52)),url('/assets/bg2.jpg')!important;background-position:left center!important}
  #map_section.map-section,#map_section.map-section iframe{height:330px!important;min-height:330px!important}
  .footer-v3-inner{padding-top:42px!important;padding-left:18px!important;padding-right:18px!important}.footer-v3-grid{grid-template-columns:1fr!important;gap:18px!important}.footer-v3-contact-card{grid-column:auto!important}.footer-v3-card{min-height:0!important;border-radius:26px!important;padding:30px 26px!important}.footer-v3-logo{width:160px!important;margin-bottom:22px!important}.footer-v3-copy{font-size:15px!important;line-height:1.7!important}.footer-v3-title{font-size:21px!important;margin-bottom:22px!important;padding-bottom:16px!important}.footer-v3-bottom-nav{gap:14px 20px!important;margin-top:28px!important;padding:20px 0!important}
}


/* ===== from css/source-final.css ===== */

/* Final design QA pass. This file loads last and controls the homepage presentation. */

:root{
  --ndg-teal:#2f6a82;
  --ndg-dark:#22343f;
  --ndg-lavender:#e6d9e9;
  --ndg-cream:#f2e9de;
  --ndg-text:#4f5356;
}

/* ---------- Global rhythm ---------- */

.container-custom{max-width:1220px!important;padding-left:28px!important;padding-right:28px!important}

section{scroll-margin-top:90px}

/* ---------- Hero ---------- */

#hero_section.hero-section{min-height:690px!important;background-position:right center!important}

#hero_section .hero-content-wrap{max-width:520px!important;padding-top:126px!important}

#hero_section .hero-title-main{font-size:76px!important;line-height:.92!important;letter-spacing:-.025em!important;margin:0 0 10px!important}

#hero_section .hero-title-sub{font-size:34px!important;line-height:1.08!important;margin:0 0 24px!important;color:#45484b!important}

#hero_section .hero-description{max-width:470px!important;font-size:18px!important;line-height:1.55!important;color:#444!important}

html[lang^="en"] #hero_section .hero-content-wrap{max-width:650px!important}

html[lang^="en"] #hero_section .hero-title-main{font-size:72px!important;line-height:.95!important;white-space:nowrap!important}

html[lang^="en"] #hero_section .hero-title-sub{font-size:36px!important}

/* service cards: overlap the hero cleanly, no giant gap below */

#service_cards_section.service-cards-section{margin-top:-78px!important;padding:0 0 92px!important;position:relative!important;z-index:12!important}

#service_cards_section .service-cards-grid{gap:22px!important}

#service_cards_section .service-card{min-height:300px!important;padding:34px 26px 28px!important;border-radius:16px!important;box-shadow:0 14px 34px rgba(34,52,63,.10)!important}

#service_cards_section .service-card-title{font-size:21px!important;line-height:1.18!important;margin:18px 0 12px!important}

#service_cards_section .service-card-desc{font-size:15px!important;line-height:1.55!important;min-height:70px!important}

#service_cards_section .service-card-btn{margin-top:16px!important}

/* ---------- Atelier / 35 years ---------- */

#experience_section.home-source-about{padding:82px 0 94px!important;margin:0!important}

#experience_section .home-source-about-grid{display:grid!important;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;align-items:center!important;gap:82px!important}

#experience_section .home-source-image-stage{max-width:500px!important;margin:0 auto!important}

#experience_section .home-source-copy{max-width:590px!important}

#experience_section .home-source-copy h2{font-size:42px!important;line-height:1.06!important;letter-spacing:-.02em!important;margin-bottom:24px!important;text-wrap:balance!important}

#experience_section .home-source-copy p{font-size:17px!important;line-height:1.65!important;color:var(--ndg-text)!important}

#experience_section .home-source-benefits{margin-top:30px!important;gap:18px 34px!important}

#experience_section .home-source-cta{margin-top:34px!important}

/* ---------- Event / problem block ---------- */

#event_details_section.event-details-section{
  position:relative!important;
  min-height:500px!important;
  padding:112px 0 116px!important;
  margin:18px 0 58px!important;
  background-image:url('/assets/NDG_professional-tailor-montreal-robe-soiree-ajustement.jpg')!important;
  background-size:cover!important;
  background-position:72% center!important;
  background-repeat:no-repeat!important;
  overflow:hidden!important;
}

#event_details_section .event-details-overlay{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  background:linear-gradient(90deg,
    rgba(242,233,222,.995) 0%,
    rgba(242,233,222,.99) 34%,
    rgba(242,233,222,.92) 43%,
    rgba(242,233,222,.58) 51%,
    rgba(242,233,222,.12) 59%,
    rgba(242,233,222,0) 65%)!important;
}

#event_details_section .container-custom{position:relative!important;z-index:3!important}

#event_details_section .event-details-content{max-width:620px!important;margin:0!important}

#event_details_section .event-subtitle{display:block!important;margin:0 0 22px!important;font-size:15px!important;line-height:1.35!important;font-weight:600!important;color:#555!important;letter-spacing:0!important;text-transform:none!important}

#event_details_section .event-heading{max-width:620px!important;margin:0 0 30px!important;font-size:46px!important;line-height:1.04!important;letter-spacing:-.025em!important;color:var(--ndg-teal)!important;text-wrap:balance!important}

#event_details_section .event-text{max-width:600px!important;margin:0 0 28px!important;font-size:17px!important;line-height:1.65!important;color:#555!important}

#event_details_section .event-bullets{gap:13px!important}

#event_details_section .event-bullet-text{font-size:16px!important;color:#555!important;font-style:italic!important}

/* shallow source-like curves */

#event_details_section.event-details-section::before,
#event_details_section.event-details-section::after{
  content:''!important;
  position:absolute!important;
  left:-4%!important;
  width:108%!important;
  height:58px!important;
  background:#fff!important;
  z-index:6!important;
  pointer-events:none!important;
}

#event_details_section.event-details-section::before{top:-43px!important;border-radius:0 0 50% 50% / 0 0 100% 100%!important}

#event_details_section.event-details-section::after{bottom:-43px!important;border-radius:50% 50% 0 0 / 100% 100% 0 0!important}

/* event CTA: supportive, not a second hero */

.event-cta-section{padding:0 0 92px!important;margin-top:-28px!important;position:relative!important;z-index:9!important}

.event-cta-card{max-width:1040px!important;margin:0 auto!important;padding:54px 60px 62px!important;border-radius:20px!important;background:var(--ndg-teal)!important;box-shadow:0 18px 36px rgba(34,52,63,.16)!important}

.event-cta-card h2{max-width:760px!important;margin:0 auto 18px!important;font-size:42px!important;line-height:1.08!important;text-wrap:balance!important}

.event-cta-card p{font-size:17px!important;line-height:1.55!important}

.event-cta-btn{min-width:250px!important}

/* ---------- Lena ---------- */

#elena_section.elena-section{padding:94px 0 100px!important;margin:0!important}

#elena_section .elena-grid{display:grid!important;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)!important;gap:88px!important;align-items:center!important}

#elena_section .elena-img-wrap{max-width:480px!important;margin:0 auto!important}

#elena_section .elena-text-wrap{max-width:640px!important}

#elena_section .elena-heading{font-size:42px!important;line-height:1.06!important;letter-spacing:-.02em!important;margin:0 0 24px!important;max-width:590px!important;text-wrap:balance!important}

#elena_section .elena-text{font-size:17px!important;line-height:1.7!important;color:var(--ndg-text)!important}

#elena_section .elena-text p+p{margin-top:20px!important}

#elena_section .elena-role{font-size:12px!important;line-height:1.25!important;letter-spacing:.08em!important}

/* ---------- Service tabs ---------- */

#tabs_section.tabs-section{padding:66px 0 92px!important;background:#fbfaf9!important}

#tabs_section .tabs-nav-wrap{margin:0 auto 34px!important;max-width:1160px!important}

#tabs_section .tab-btn{min-height:52px!important;padding:12px 28px!important;font-size:15px!important}

#tabs_section .tabs-panels-container{max-width:1160px!important;margin:0 auto!important}

#tabs_section .tab-panel{border-radius:18px!important;box-shadow:0 12px 30px rgba(34,52,63,.07)!important}

#tabs_section .tab-content-grid{display:grid!important;grid-template-columns:minmax(0,.46fr) minmax(0,.54fr)!important;gap:56px!important;align-items:center!important;padding:46px!important}

#tabs_section .tab-img-side img{width:100%!important;min-height:430px!important;max-height:500px!important;object-fit:cover!important;border-radius:16px!important}

#tabs_section .tab-text-side h3{font-size:36px!important;line-height:1.08!important;margin-bottom:20px!important;color:var(--ndg-teal)!important;text-wrap:balance!important}

#tabs_section .tab-text-side p{font-size:16px!important;line-height:1.65!important;color:var(--ndg-text)!important}

#tabs_section .tab-stylish-list{margin-top:26px!important;gap:18px 28px!important}

/* ---------- Realisations ---------- */

#gallery_section.gallery-section{position:relative!important;padding:80px 0 84px!important;overflow:hidden!important;background:#fff!important}

#gallery_section.gallery-section::before{
  content:''!important;
  position:absolute!important;
  inset:0 0 auto!important;
  height:58%!important;
  opacity:1!important;
  /* bg3 is preferred. bg2 remains a safe fallback until bg3 is in GitHub. */
  background-image:linear-gradient(rgba(47,106,130,.30),rgba(47,106,130,.30)),url('/assets/bg3.jpg'),url('/assets/bg2.jpg')!important;
  background-size:cover,cover,cover!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  z-index:0!important;
}

#gallery_section .gallery-heading{max-width:900px!important;margin:0 auto 48px!important;font-size:38px!important;line-height:1.12!important;text-align:center!important;color:#fff!important;text-wrap:balance!important}

#gallery_section .gallery-carousel-track{display:grid!important;grid-auto-flow:column!important;grid-auto-columns:calc((100% - 66px)/4)!important;gap:22px!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;scrollbar-width:none!important;padding:0 0 20px!important}

#gallery_section .gallery-thumb{scroll-snap-align:start!important;border-radius:16px!important;overflow:hidden!important;box-shadow:0 14px 30px rgba(34,52,63,.12)!important;background:#fff!important}

#gallery_section .gallery-thumb img{width:100%!important;height:360px!important;object-fit:cover!important;transition:transform .4s ease!important}

#gallery_section .gallery-thumb:hover img{transform:scale(1.025)!important}

#gallery_section .home-gallery-arrow{width:48px!important;height:48px!important;border-radius:50%!important;background:var(--ndg-lavender)!important;color:var(--ndg-teal)!important;box-shadow:0 8px 18px rgba(34,52,63,.10)!important}

#gallery_section .gallery-actions{margin-top:26px!important}

/* ---------- Map ---------- */

#map_section.map-section{height:420px!important;margin:0!important}

#map_section iframe{width:100%!important;height:100%!important;display:block!important}

#map_section .map-info-card{display:none!important}

/* ---------- Footer ---------- */

.footer-v3{background:var(--ndg-dark)!important;padding:72px 0 26px!important}

.footer-v3-inner{max-width:1220px!important}

.footer-v3-grid{display:grid!important;grid-template-columns:1.05fr .82fr 1.13fr!important;gap:28px!important}

.footer-v3-card{min-height:100%!important;padding:36px!important;border:1px solid rgba(255,255,255,.14)!important;border-radius:24px!important;background:rgba(255,255,255,.018)!important}

.footer-v3-logo{max-width:230px!important;filter:brightness(0) invert(1)!important;opacity:.96!important}

.footer-v3-copy{max-width:360px!important;font-size:15px!important;line-height:1.65!important;color:rgba(255,255,255,.76)!important}

.footer-v3-title{font-size:18px!important;line-height:1.2!important;margin-bottom:24px!important;color:#fff!important}

.footer-v3-list a,.footer-v3-contact-row,.footer-v3-contact-row a,.footer-v3-directions{font-size:15px!important;line-height:1.55!important;color:rgba(255,255,255,.82)!important}

.footer-v3-bottom-row{display:grid!important;grid-template-columns:minmax(240px,1fr) auto minmax(190px,1fr)!important;align-items:center!important;gap:24px!important;padding:24px 0 0!important;margin-top:30px!important;border-top:1px solid rgba(255,255,255,.12)!important}

.footer-v3-copyright{margin:0!important;justify-self:start!important;color:rgba(255,255,255,.62)!important;font-size:12px!important}

.footer-v3-bottom-nav{margin:0!important;padding:0!important;border:0!important;justify-self:center!important;display:flex!important;align-items:center!important;justify-content:center!important;flex-wrap:wrap!important;gap:16px!important}

.footer-v3-bottom-nav a{font-size:12px!important;color:rgba(255,255,255,.70)!important;white-space:nowrap!important}

.footer-v3-credit{margin:0!important;justify-self:end!important;text-align:right!important;color:rgba(255,255,255,.62)!important;font-size:12px!important}

.footer-v3-credit a{color:var(--ndg-lavender)!important;text-decoration:none!important;font-weight:600!important}

.footer-v3-credit a:hover{color:#fff!important;text-decoration:underline!important}

.footer-v3-bottom{display:none!important}

/* ---------- Tablet ---------- */

@media(max-width:1100px){
  .container-custom{padding-left:24px!important;padding-right:24px!important}
  #hero_section.hero-section{min-height:620px!important}
  #hero_section .hero-title-main{font-size:64px!important}
  html[lang^="en"] #hero_section .hero-title-main{font-size:58px!important}
  #service_cards_section .service-cards-grid{grid-template-columns:repeat(2,1fr)!important}
  #service_cards_section .service-card{min-height:270px!important}
  #experience_section .home-source-about-grid,#elena_section .elena-grid{gap:52px!important}
  #experience_section .home-source-copy h2,#elena_section .elena-heading{font-size:36px!important}
  #event_details_section .event-details-content{max-width:56%!important}
  #event_details_section .event-heading{font-size:38px!important}
  #event_details_section .event-details-overlay{background:linear-gradient(90deg,rgba(242,233,222,.995) 0%,rgba(242,233,222,.96) 45%,rgba(242,233,222,.35) 63%,rgba(242,233,222,0) 76%)!important}
  #tabs_section .tab-content-grid{gap:36px!important;padding:36px!important}
  #gallery_section .gallery-carousel-track{grid-auto-columns:calc((100% - 22px)/2)!important}
  .footer-v3-grid{grid-template-columns:1fr 1fr!important}
  .footer-v3-brand-card{grid-column:1 / -1!important}
  .footer-v3-bottom-row{grid-template-columns:1fr!important;text-align:center!important;gap:12px!important}
  .footer-v3-copyright,.footer-v3-bottom-nav,.footer-v3-credit{justify-self:center!important;text-align:center!important}
}

/* ---------- Mobile-first corrections ---------- */

@media(max-width:700px){
  .container-custom{padding-left:18px!important;padding-right:18px!important}
  #hero_section.hero-section{min-height:620px!important;background-position:66% center!important}
  #hero_section .hero-content-wrap{padding-top:108px!important;max-width:72%!important}
  #hero_section .hero-title-main,html[lang^="en"] #hero_section .hero-title-main{font-size:47px!important;line-height:.96!important;white-space:normal!important}
  #hero_section .hero-title-sub,html[lang^="en"] #hero_section .hero-title-sub{font-size:25px!important;line-height:1.08!important}
  #hero_section .hero-description{font-size:15.5px!important;line-height:1.48!important}

  #service_cards_section.service-cards-section{margin-top:-54px!important;padding-bottom:62px!important}
  #service_cards_section .service-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
  #service_cards_section .service-card{min-height:240px!important;padding:24px 14px 20px!important;border-radius:14px!important}
  #service_cards_section .service-card-title{font-size:16px!important}
  #service_cards_section .service-card-desc{font-size:13px!important;min-height:66px!important}

  #experience_section.home-source-about,#elena_section.elena-section{padding:64px 0 72px!important}
  #experience_section .home-source-about-grid,#elena_section .elena-grid{grid-template-columns:1fr!important;gap:44px!important}
  #experience_section .home-source-image-stage,#elena_section .elena-img-wrap{max-width:390px!important;width:90%!important}
  #experience_section .home-source-copy,#elena_section .elena-text-wrap{max-width:100%!important}
  #experience_section .home-source-copy h2,#elena_section .elena-heading{font-size:31px!important;line-height:1.08!important}
  #experience_section .home-source-copy p,#elena_section .elena-text{font-size:15.5px!important;line-height:1.65!important}
  #experience_section .home-source-benefits{grid-template-columns:1fr 1fr!important;gap:14px!important}

  #event_details_section.event-details-section{
    min-height:0!important;
    padding:300px 0 74px!important;
    margin:12px 0 44px!important;
    background-size:auto 360px!important;
    background-position:72% top!important;
    background-color:var(--ndg-cream)!important;
  }
  #event_details_section .event-details-overlay{background:linear-gradient(180deg,rgba(242,233,222,0) 0%,rgba(242,233,222,.18) 34%,rgba(242,233,222,.96) 50%,rgba(242,233,222,1) 68%,rgba(242,233,222,1) 100%)!important}
  #event_details_section .event-details-content{max-width:100%!important}
  #event_details_section .event-heading{font-size:32px!important;line-height:1.06!important;margin-bottom:22px!important}
  #event_details_section .event-text{font-size:15.5px!important;line-height:1.6!important}
  #event_details_section .event-bullet-text{font-size:14.5px!important}
  #event_details_section.event-details-section::before,#event_details_section.event-details-section::after{left:-10%!important;width:120%!important;height:42px!important}
  #event_details_section.event-details-section::before{top:-31px!important}
  #event_details_section.event-details-section::after{bottom:-31px!important}

  .event-cta-section{padding-bottom:64px!important;margin-top:-18px!important}
  .event-cta-card{width:calc(100% - 36px)!important;padding:40px 22px 48px!important;border-radius:16px!important}
  .event-cta-card h2{font-size:30px!important}
  .event-cta-card p{font-size:15px!important}

  #tabs_section.tabs-section{padding:54px 0 68px!important}
  #tabs_section .tabs-nav-wrap{overflow-x:auto!important;justify-content:flex-start!important;gap:0!important;padding-bottom:8px!important;scrollbar-width:none!important}
  #tabs_section .tab-btn{flex:0 0 auto!important;min-height:46px!important;padding:10px 20px!important;font-size:14px!important}
  #tabs_section .tab-content-grid{grid-template-columns:1fr!important;gap:28px!important;padding:22px!important}
  #tabs_section .tab-img-side{order:-1!important}
  #tabs_section .tab-img-side img{min-height:330px!important;max-height:390px!important}
  #tabs_section .tab-text-side h3{font-size:29px!important}

  #gallery_section.gallery-section{padding:62px 0 68px!important}
  #gallery_section.gallery-section::before{height:56%!important;background-image:linear-gradient(rgba(47,106,130,.28),rgba(47,106,130,.28)),url('/assets/bg3.jpg'),url('/assets/bg2.jpg')!important;background-size:cover,cover,cover!important}
  /* consolidated below (2026-09 mobile audit): #gallery_section .gallery-heading{font-size:29px!important;line-height:1.12!important;margin-bottom:34px!important} */
  #gallery_section .gallery-carousel-track{grid-auto-columns:82%!important;gap:14px!important;padding-right:18%!important}
  #gallery_section .gallery-thumb img{height:330px!important}
  #gallery_section .home-gallery-arrow{display:none!important}

  #map_section.map-section{height:330px!important}

  .footer-v3{padding:54px 0 22px!important}
  .footer-v3-grid{grid-template-columns:1fr!important;gap:16px!important}
  .footer-v3-brand-card{grid-column:auto!important}
  .footer-v3-card{padding:28px 24px!important;border-radius:18px!important}
  .footer-v3-logo{max-width:190px!important}
  .footer-v3-bottom-row{grid-template-columns:1fr!important;text-align:center!important;gap:14px!important;margin-top:22px!important}
  .footer-v3-copyright,.footer-v3-bottom-nav,.footer-v3-credit{justify-self:center!important;text-align:center!important}
  .footer-v3-bottom-nav{gap:10px 14px!important}
}

@media(max-width:430px){
  #hero_section .hero-content-wrap{max-width:78%!important}
  #service_cards_section .service-cards-grid{grid-template-columns:1fr!important}
  #service_cards_section .service-card{min-height:220px!important}
  #experience_section .home-source-benefits{grid-template-columns:1fr!important}
}


/* ===== from css/brand-source-lock.css ===== */

/* Final brand + source-layout lock. Keep this file LAST. */

:root{
  --primary-teal:#2F6A82!important;
  --primary-teal-dark:#235366!important;
  --primary-dark:#062D3D!important;
  --ndg-teal:#2F6A82!important;
  --ndg-dark:#062D3D!important;
}

.container-custom{
  width:100%!important;
  max-width:1360px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:24px!important;
  padding-right:24px!important;
}

.hero-title-main,
.page-title-heading,
.page-banner-title,
.experience-heading,
.home-source-copy h2,
.elena-heading,
.tab-text-side h3,
.event-heading,
.service-card-btn,
.hero-call-outline,
.hero-call-outline i,
.nav-link:hover,
.nav-link.active,
.page-breadcrumbs span,
.page-breadcrumbs a:hover,
.tabs-nav-wrap .tab-btn.active{
  color:#2F6A82!important;
}

.btn-offcanvas-toggle,
.service-card:hover,
.tab-btn.active,
.tabs-nav-wrap .tab-btn.active,
.event-cta-card,
.home-gallery-arrow:hover,
.footer-v3-socials a,
.footer-v3-contact-row>i,
.footer-v3-service-list li::before{
  background-color:#2F6A82!important;
}

.hero-call-outline{border-color:#2F6A82!important}

.hero-call-outline:hover{background:#2F6A82!important;border-color:#2F6A82!important;color:#fff!important}

.service-card:hover{border-color:#2F6A82!important;box-shadow:0 20px 50px rgba(47,106,130,.28)!important}

.btn-header-call:hover{background:#2F6A82!important;box-shadow:0 6px 20px rgba(47,106,130,.26)!important}

.btn-offcanvas-toggle:hover{box-shadow:0 6px 18px rgba(47,106,130,.32)!important}

.tab-stylish-list i,.home-source-benefit i{color:#2F6A82!important}

/* Event/problem section: image is on the section, overlay only protects text. */

#event_details_section.event-details-section{
  background-image:url('/assets/NDG_professional-tailor-montreal-robe-soiree-ajustement.jpg')!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
  background-position:72% center!important;
  overflow:hidden!important;
}

#event_details_section .event-details-overlay{
  background:linear-gradient(90deg,
    rgba(242,233,222,.98) 0%,
    rgba(242,233,222,.97) 33%,
    rgba(242,233,222,.82) 43%,
    rgba(242,233,222,.36) 52%,
    rgba(242,233,222,.08) 58%,
    rgba(242,233,222,0) 63%)!important;
}

#event_details_section.event-details-section::before,
#event_details_section.event-details-section::after{
  content:''!important;
  position:absolute!important;
  left:-2%!important;
  width:104%!important;
  transform:none!important;
  margin:0!important;
  height:38px!important;
  background:#fff!important;
  z-index:7!important;
  pointer-events:none!important;
}

#event_details_section.event-details-section::before{
  top:-27px!important;
  border-radius:0 0 50% 50% / 0 0 100% 100%!important;
}

#event_details_section.event-details-section::after{
  bottom:-27px!important;
  border-radius:50% 50% 0 0 / 100% 100% 0 0!important;
}

/* Realisations: restore source height — image/teal only in the upper part, white below. */

#gallery_section.gallery-section{
  background-color:#fff!important;
  background-image:
    linear-gradient(rgba(47,106,130,.20),rgba(47,106,130,.20)),
    url('/assets/bg2.jpg')!important;
  background-size:100% 58%,100% 58%!important;
  background-repeat:no-repeat,no-repeat!important;
  background-position:top center,top center!important;
  background-attachment:scroll!important;
}

#gallery_section.gallery-section::before{
  content:none!important;
  display:none!important;
  background:none!important;
}

#gallery_section .gallery-heading{color:#fff!important}

#gallery_section .home-gallery-arrow{color:#2F6A82!important}

.footer-v3{background:#062D3D!important}

.footer-v3-card{background:rgba(255,255,255,.018)!important;border-color:rgba(255,255,255,.16)!important}

.footer-v3-title{color:#fff!important}

.footer-v3-directions{border-color:rgba(255,255,255,.25)!important}

.footer-v3-directions:hover{background:#2F6A82!important;color:#fff!important;border-color:#2F6A82!important}

.footer-v3-credit a{color:#e3d8e7!important}

@media(max-width:1024px){
  .container-custom{padding-left:22px!important;padding-right:22px!important}
}

@media(max-width:700px){
  .container-custom{padding-left:18px!important;padding-right:18px!important}
  #event_details_section.event-details-section{background-position:64% center!important}
  #event_details_section .event-details-overlay{
    background:rgba(242,233,222,.80)!important;
  }
  #event_details_section.event-details-section::before,
  #event_details_section.event-details-section::after{
    left:-4%!important;
    width:108%!important;
    height:28px!important;
  }
  #event_details_section.event-details-section::before{top:-20px!important}
  #event_details_section.event-details-section::after{bottom:-20px!important}
  #gallery_section.gallery-section{
    background-image:
      linear-gradient(rgba(47,106,130,.18),rgba(47,106,130,.18)),
      url('/assets/bg2.jpg')!important;
    background-size:100% 52%,100% 52%!important;
    background-position:top center,top center!important;
  }
}


/* ===== from css/homepage-source-exact.css ===== */

/* Homepage source-match lock. Loaded last. Footer intentionally untouched. */

/* ===== Event / problem section ===== */

#event_details_section.event-details-section{
  position:relative!important;
  margin:0!important;
  padding:108px 0 112px!important;
  min-height:560px!important;
  overflow:hidden!important;
  background-color:#f3e8dc!important;
  background-image:
    linear-gradient(90deg,
      rgba(243,232,220,.995) 0%,
      rgba(243,232,220,.99) 36%,
      rgba(243,232,220,.90) 44%,
      rgba(243,232,220,.55) 52%,
      rgba(243,232,220,.14) 60%,
      rgba(243,232,220,0) 68%),
    url('/asset.php?file=NDG_professional-tailor-montreal-robe-soiree-ajustement.jpg')!important;
  background-size:cover,cover!important;
  background-repeat:no-repeat,no-repeat!important;
  background-position:center,right center!important;
}

#event_details_section .event-details-overlay,
#event_details_section .event-visual{display:none!important}

#event_details_section .event-details-grid{display:block!important;min-height:0!important}

#event_details_section .event-details-content{
  width:55%!important;
  max-width:720px!important;
  margin:0!important;
  padding:0!important;
  position:relative!important;
  z-index:3!important;
}

#event_details_section .event-subtitle{
  display:block!important;
  margin:0 0 24px!important;
  font-family:'Roboto',sans-serif!important;
  font-size:15px!important;
  line-height:1.35!important;
  font-weight:600!important;
  color:#555!important;
  letter-spacing:0!important;
  text-transform:none!important;
}

#event_details_section .event-heading{
  margin:0 0 30px!important;
  max-width:720px!important;
  font-size:42px!important;
  line-height:1.06!important;
  letter-spacing:-.022em!important;
  color:#2F6A82!important;
  background:none!important;
  text-wrap:balance!important;
}

#event_details_section .event-heading .source-title-line{white-space:nowrap!important}

#event_details_section .event-text{
  max-width:610px!important;
  margin:0 0 28px!important;
  font-size:17px!important;
  line-height:1.65!important;
  color:#565656!important;
}

#event_details_section .event-bullets{gap:14px!important;margin-top:0!important}

#event_details_section .event-bullet-item{gap:11px!important}

#event_details_section .event-bullet-text{font-size:16px!important;line-height:1.4!important;color:#5f5f5f!important;font-style:italic!important}

#event_details_section.event-details-section::before,
#event_details_section.event-details-section::after{
  content:''!important;
  position:absolute!important;
  left:-3%!important;
  width:106%!important;
  height:42px!important;
  background:#fff!important;
  z-index:6!important;
  pointer-events:none!important;
}

#event_details_section.event-details-section::before{top:-31px!important;border-radius:0 0 50% 50% / 0 0 100% 100%!important}

#event_details_section.event-details-section::after{bottom:-31px!important;border-radius:50% 50% 0 0 / 100% 100% 0 0!important}

/* CTA immediately after event section */

.event-cta-section{margin-top:-26px!important;padding:0 0 86px!important;position:relative!important;z-index:9!important}

.event-cta-card{max-width:1040px!important;min-height:220px!important;padding:46px 58px 54px!important;border-radius:20px!important;background:#2F6A82!important}

.event-cta-card h2{font-size:40px!important;line-height:1.08!important;margin:0 auto 16px!important;max-width:760px!important;color:#fff!important;text-wrap:balance!important}

.event-cta-card p{font-size:16px!important;line-height:1.55!important;color:rgba(255,255,255,.9)!important}

/* ===== Tabs: one clean card only, source colors ===== */

#tabs_section .tabs-nav-wrap{box-shadow:none!important;border:0!important;background:#e3d8e7!important}

#tabs_section .tab-btn{color:#606060!important}

#tabs_section .tab-btn.active{background:#2F6A82!important;color:#fff!important;box-shadow:0 7px 18px rgba(47,106,130,.18)!important}

#tabs_section .tabs-panels-container{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}

#tabs_section .tab-panel,
#tabs_section .tab-panel.active{background:transparent!important;border:0!important;box-shadow:none!important}

#tabs_section .tab-panel.active{padding:0!important}

#tabs_section .tab-content-grid{
  background:#fff!important;
  border:0!important;
  border-radius:18px!important;
  box-shadow:0 10px 28px rgba(6,45,61,.07)!important;
  padding:48px!important;
}

#tabs_section .tab-img-side img{box-shadow:none!important;border-radius:16px!important}

#tabs_section .tab-text-side h3{color:#2F6A82!important}

#tabs_section .tab-stylish-list li i{background:#2F6A82!important;color:#fff!important;box-shadow:none!important}

/* ===== Home Realisations / gallery ===== */

#gallery_section.gallery-section{
  position:relative!important;
  overflow:hidden!important;
  padding:64px 0 48px!important;
  background-color:#fff!important;
  background-image:
    linear-gradient(rgba(47,106,130,.58),rgba(47,106,130,.58)),
    url('/asset.php?file=bg3.jpg')!important;
  background-size:100% 390px,auto 390px!important;
  background-repeat:no-repeat,repeat-x!important;
  background-position:top center,top center!important;
  background-attachment:scroll!important;
}

#gallery_section .container-custom{position:relative!important;z-index:2!important}

#gallery_section .gallery-heading{
  max-width:820px!important;
  margin:0 auto 36px!important;
  font-size:34px!important;
  line-height:1.12!important;
  text-align:center!important;
  color:#fff!important;
  text-wrap:balance!important;
}

#gallery_section .gallery-carousel-track{
  display:grid!important;
  grid-auto-flow:column!important;
  grid-auto-columns:calc((100% - 75px)/6)!important;
  gap:15px!important;
  overflow-x:auto!important;
  scroll-snap-type:x mandatory!important;
  scrollbar-width:none!important;
  padding:0 0 14px!important;
}

#gallery_section .gallery-thumb{
  scroll-snap-align:start!important;
  border-radius:13px!important;
  overflow:hidden!important;
  background:#fff!important;
  box-shadow:0 9px 22px rgba(6,45,61,.10)!important;
}

#gallery_section .gallery-thumb img{
  display:block!important;
  width:100%!important;
  height:245px!important;
  object-fit:cover!important;
  object-position:center!important;
}

#gallery_section .home-gallery-arrow{
  position:absolute!important;
  top:250px!important;
  width:44px!important;
  height:44px!important;
  border:0!important;
  border-radius:50%!important;
  background:#e3d8e7!important;
  color:#2F6A82!important;
  box-shadow:0 7px 18px rgba(6,45,61,.10)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  z-index:5!important;
}

#gallery_section .home-gallery-prev{left:8px!important}

#gallery_section .home-gallery-next{right:8px!important}

#gallery_section .gallery-action-bar,
#gallery_section .gallery-actions{
  margin-top:22px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:16px!important;
}

#gallery_section .gallery-action-bar .btn-gallery-call,
#gallery_section .gallery-action-bar .btn-gallery-book,
#gallery_section .gallery-actions .btn-gallery-call,
#gallery_section .gallery-actions .btn-gallery-book{min-width:150px!important}

/* ===== Google reviews section ===== */

.home-google-reviews{padding:76px 0 82px!important;background:#fff!important}

.home-google-reviews-head{text-align:center!important;max-width:760px!important;margin:0 auto 34px!important}

.home-google-reviews-kicker{display:inline-flex!important;align-items:center!important;gap:8px!important;margin-bottom:10px!important;font:600 14px/1.2 'Roboto',sans-serif!important;color:#2F6A82!important;text-transform:uppercase!important;letter-spacing:.08em!important}

.home-google-reviews h2{margin:0 0 12px!important;font-family:'Abril Fatface',Georgia,serif!important;font-size:38px!important;line-height:1.12!important;color:#062D3D!important}

.home-google-reviews-summary{font-size:16px!important;line-height:1.55!important;color:#666!important}

.home-google-reviews-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:20px!important}

.home-google-review-card{padding:28px!important;border:1px solid rgba(6,45,61,.11)!important;border-radius:18px!important;background:#fff!important;box-shadow:0 8px 22px rgba(6,45,61,.06)!important}

.home-google-review-stars{color:#f5b301!important;letter-spacing:2px!important;margin-bottom:14px!important;font-size:17px!important}

.home-google-review-card p{margin:0!important;color:#555!important;font-size:16px!important;line-height:1.65!important}

.home-google-reviews-actions{display:flex!important;justify-content:center!important;margin-top:26px!important}

.home-google-reviews-actions a{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:46px!important;padding:0 24px!important;border-radius:999px!important;background:#2F6A82!important;color:#fff!important;font-weight:700!important;text-decoration:none!important}

@media(max-width:1180px){
  #gallery_section .gallery-carousel-track{grid-auto-columns:calc((100% - 45px)/4)!important}
}

@media(max-width:980px){
  #event_details_section .event-details-content{width:62%!important}
  #event_details_section .event-heading{font-size:38px!important}
  #tabs_section .tab-content-grid{padding:34px!important}
  #gallery_section.gallery-section{background-size:100% 370px,auto 370px!important}
  #gallery_section .gallery-carousel-track{grid-auto-columns:calc((100% - 30px)/3)!important}
  .home-google-reviews-grid{grid-template-columns:1fr!important}
}

@media(max-width:700px){
  #event_details_section.event-details-section{
    padding:76px 0 88px!important;
    min-height:600px!important;
    background-image:
      linear-gradient(180deg,rgba(243,232,220,.98) 0%,rgba(243,232,220,.96) 50%,rgba(243,232,220,.36) 67%,rgba(243,232,220,.04) 100%),
      url('/asset.php?file=NDG_professional-tailor-montreal-robe-soiree-ajustement.jpg')!important;
    background-position:center,70% bottom!important;
  }
  #event_details_section .event-details-content{width:100%!important;max-width:none!important}
  #event_details_section .event-heading{font-size:33px!important;line-height:1.06!important}
  #event_details_section .event-heading .source-title-line{white-space:normal!important}
  #event_details_section .event-text{font-size:15.5px!important}
  #event_details_section.event-details-section::before,
  #event_details_section.event-details-section::after{left:-8%!important;width:116%!important;height:30px!important}
  #event_details_section.event-details-section::before{top:-22px!important}
  #event_details_section.event-details-section::after{bottom:-22px!important}
  .event-cta-section{margin-top:-16px!important;padding-bottom:70px!important}
  .event-cta-card{min-height:205px!important;padding:36px 22px 46px!important;border-radius:18px!important}
  .event-cta-card h2{font-size:29px!important}

  #tabs_section .tab-content-grid{padding:22px!important;border-radius:16px!important}
  #gallery_section.gallery-section{padding:54px 0 42px!important;background-size:100% 330px,auto 330px!important}
  /* consolidated below (2026-09 mobile audit): #gallery_section .gallery-heading{font-size:29px!important;margin-bottom:28px!important} */
  #gallery_section .gallery-carousel-track{grid-auto-columns:58%!important;gap:14px!important;padding-bottom:12px!important}
  #gallery_section .gallery-thumb img{height:230px!important}
  #gallery_section .home-gallery-arrow{display:none!important}
  #gallery_section .gallery-action-bar,#gallery_section .gallery-actions{margin-top:18px!important;gap:10px!important}
  .home-google-reviews{padding:58px 0 64px!important}
  .home-google-reviews h2{font-size:31px!important}
}


/* ===== from css/homepage-carousel-final.css ===== */

/* Homepage Realisations source-match lock. Footer untouched. */

#gallery_section.gallery-section{
  position:relative!important;
  overflow:hidden!important;
  padding:64px 0 48px!important;
  background-color:#fff!important;
  background-image:
    linear-gradient(to bottom, rgba(47,106,130,.84) 0 390px, #fff 390px 100%),
    url('/assets/bg3.jpg')!important;
  /* Keep bg3 proportional and anchor the artwork to the BOTTOM, as in the source design. */
  background-size:100% 100%, cover!important;
  background-repeat:no-repeat,no-repeat!important;
  background-position:center top, center bottom!important;
}

#gallery_section.gallery-section::before{content:none!important;display:none!important}

#gallery_section .container-custom{
  position:relative!important;
  z-index:2!important;
  width:min(92vw,1360px)!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
}

#gallery_section .gallery-heading{
  max-width:860px!important;
  margin:0 auto 36px!important;
  font-size:34px!important;
  line-height:1.12!important;
  text-align:center!important;
  color:#fff!important;
  text-wrap:balance!important;
}

/* Source: four visible cards, eight total items in the scrolling carousel. */

#gallery_section .gallery-carousel-track{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  gap:22px!important;
  width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory!important;
  scroll-behavior:smooth!important;
  scrollbar-width:none!important;
  padding:0!important;
  margin:0!important;
}

#gallery_section .gallery-carousel-track::-webkit-scrollbar{display:none!important}

#gallery_section .gallery-thumb{
  position:relative!important;
  display:block!important;
  flex:0 0 calc((100% - 66px)/4)!important;
  width:calc((100% - 66px)/4)!important;
  min-width:0!important;
  height:300px!important;
  min-height:300px!important;
  max-height:300px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:14px!important;
  overflow:hidden!important;
  background:#fff!important;
  box-shadow:0 10px 24px rgba(6,45,61,.10)!important;
  scroll-snap-align:start!important;
  transform:none!important;
}

#gallery_section .gallery-thumb img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  object-fit:cover!important;
  object-position:center!important;
  transform:none!important;
}

#gallery_section .gallery-thumb-overlay{position:absolute!important;inset:0!important;margin:0!important}

#gallery_section .home-gallery-arrow{
  position:absolute!important;
  top:258px!important;
  width:44px!important;
  height:44px!important;
  border:0!important;
  border-radius:50%!important;
  background:#e3d8e7!important;
  color:#2F6A82!important;
  box-shadow:0 7px 18px rgba(6,45,61,.10)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  z-index:5!important;
}

#gallery_section .home-gallery-prev{left:-22px!important}

#gallery_section .home-gallery-next{right:-22px!important}

/* CTA row uses the same sizing/radius/type treatment as the hero CTA. Icons are real markup, not fragile pseudo-elements. */

#gallery_section .gallery-action-bar,
#gallery_section .gallery-actions{
  margin-top:28px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:18px!important;
}

#gallery_section .btn-gallery-call,
#gallery_section .btn-gallery-book{
  min-height:56px!important;
  padding:13px 36px!important;
  border-radius:9999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:12px!important;
  font-family:'Roboto',sans-serif!important;
  font-size:19px!important;
  line-height:1!important;
  font-weight:500!important;
  text-decoration:none!important;
  transition:all .35s cubic-bezier(.16,1,.3,1)!important;
}

#gallery_section .btn-gallery-call::before,
#gallery_section .btn-gallery-book::after{content:none!important;display:none!important}

#gallery_section .btn-gallery-call{
  color:#2F6A82!important;
  background:transparent!important;
  border:2px solid #2F6A82!important;
  min-width:190px!important;
}

#gallery_section .btn-gallery-book{
  color:#2F6A82!important;
  background:#e3d8e7!important;
  border:2px solid #e3d8e7!important;
  min-width:270px!important;
}

#gallery_section .btn-gallery-call i,
#gallery_section .btn-gallery-book i{
  font-size:20px!important;
  color:#2F6A82!important;
  line-height:1!important;
}

#gallery_section .btn-gallery-book i{font-size:18px!important;transition:transform .25s ease!important}

#gallery_section .btn-gallery-call:hover{
  background:#2F6A82!important;
  color:#fff!important;
  box-shadow:0 8px 25px rgba(47,106,130,.28)!important;
  transform:translateY(-2px)!important;
}

#gallery_section .btn-gallery-call:hover i{color:#fff!important}

#gallery_section .btn-gallery-book:hover{
  background:#d2c4d8!important;
  border-color:#d2c4d8!important;
  transform:translateY(-2px)!important;
}

#gallery_section .btn-gallery-book:hover i{transform:translateX(4px)!important}

@media(max-width:1200px){
  #gallery_section .container-custom{width:calc(100% - 56px)!important}
  #gallery_section .home-gallery-prev{left:-18px!important}
  #gallery_section .home-gallery-next{right:-18px!important}
}

@media(max-width:1180px){
  #gallery_section .gallery-thumb{flex-basis:calc((100% - 44px)/3)!important;width:calc((100% - 44px)/3)!important}
}

@media(max-width:900px){
  #gallery_section .gallery-thumb{flex-basis:calc((100% - 22px)/2)!important;width:calc((100% - 22px)/2)!important}
}

@media(max-width:700px){
  #gallery_section.gallery-section{
    padding:54px 0 42px!important;
    background-image:
      linear-gradient(to bottom, rgba(47,106,130,.82) 0 330px, #fff 330px 100%),
      url('/assets/bg3.jpg')!important;
    background-size:100% 100%, cover!important;
    background-position:center top, center bottom!important;
  }
  #gallery_section .container-custom{width:calc(100% - 36px)!important}
  /* consolidated below (2026-09 mobile audit): #gallery_section .gallery-heading{font-size:29px!important;margin-bottom:28px!important} */
  #gallery_section .gallery-carousel-track{gap:16px!important}
  #gallery_section .gallery-thumb{flex-basis:82%!important;width:82%!important;height:270px!important;min-height:270px!important;max-height:270px!important}
  #gallery_section .home-gallery-arrow{display:none!important}
  #gallery_section .gallery-action-bar,#gallery_section .gallery-actions{gap:10px!important;flex-wrap:wrap!important}
  #gallery_section .btn-gallery-call,#gallery_section .btn-gallery-book{font-size:16px!important;padding:12px 24px!important;min-height:50px!important}
  #gallery_section .btn-gallery-call{min-width:150px!important}
  #gallery_section .btn-gallery-book{min-width:220px!important}
}


/* ===== from css/global-ui.css ===== */

/* Global UI lock: buttons + reusable internal page hero. Footer intentionally untouched. */

:root{
  --ndg-teal:#2F6A82;
  --ndg-dark:#062D3D;
  --ndg-lilac:#E3D8E7;
  --ndg-pink:#D8B9D0;
  --ndg-text:#4E4E4E;
}

/* ===== Global button system ===== */

.btn-header-call,
.hero-call-outline,
.btn-gallery-book,
.btn-gallery-call,
.event-cta-btn,
.btn-tab-service,
.home-google-reviews-actions a,
a.ndg-btn,
button.ndg-btn{
  min-height:52px!important;
  padding:0 28px!important;
  border-radius:999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  font-family:'Roboto',Arial,sans-serif!important;
  font-size:15px!important;
  line-height:1!important;
  font-weight:700!important;
  text-decoration:none!important;
  white-space:nowrap!important;
  cursor:pointer!important;
  transform:translateY(0)!important;
  transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease,background-color .28s ease,color .28s ease,border-color .28s ease!important;
}

.btn-header-call{
  background:var(--ndg-dark)!important;
  color:#fff!important;
  border:2px solid var(--ndg-dark)!important;
  box-shadow:none!important;
}

.btn-header-call:hover{
  background:var(--ndg-teal)!important;
  border-color:var(--ndg-teal)!important;
  color:#fff!important;
}

.hero-call-outline,
.btn-gallery-call,
a.ndg-btn--outline,
button.ndg-btn--outline{
  background:#fff!important;
  color:var(--ndg-teal)!important;
  border:2px solid var(--ndg-teal)!important;
  box-shadow:none!important;
}

.hero-call-outline:hover,
.btn-gallery-call:hover,
a.ndg-btn--outline:hover,
button.ndg-btn--outline:hover{
  background:var(--ndg-teal)!important;
  color:#fff!important;
  border-color:var(--ndg-teal)!important;
}

.btn-gallery-book,
.event-cta-btn,
a.ndg-btn--soft,
button.ndg-btn--soft{
  background:var(--ndg-lilac)!important;
  color:var(--ndg-teal)!important;
  border:2px solid var(--ndg-lilac)!important;
  box-shadow:none!important;
}

.btn-gallery-book:hover,
.event-cta-btn:hover,
a.ndg-btn--soft:hover,
button.ndg-btn--soft:hover{
  background:var(--ndg-teal)!important;
  color:#fff!important;
  border-color:var(--ndg-teal)!important;
}

.btn-tab-service{
  min-height:40px!important;
  padding:0 20px!important;
  background:var(--ndg-lilac)!important;
  color:var(--ndg-teal)!important;
  border:1px solid var(--ndg-lilac)!important;
  box-shadow:none!important;
  font-size:13px!important;
}

.btn-tab-service:hover{
  background:var(--ndg-teal)!important;
  border-color:var(--ndg-teal)!important;
  color:#fff!important;
}

.home-google-reviews-actions a,
a.ndg-btn--solid,
button.ndg-btn--solid{
  background:var(--ndg-teal)!important;
  color:#fff!important;
  border:2px solid var(--ndg-teal)!important;
  box-shadow:0 8px 20px rgba(47,106,130,.14)!important;
}

.home-google-reviews-actions a:hover,
a.ndg-btn--solid:hover,
button.ndg-btn--solid:hover{
  background:var(--ndg-dark)!important;
  border-color:var(--ndg-dark)!important;
  color:#fff!important;
}

.btn-header-call:hover,
.hero-call-outline:hover,
.btn-gallery-book:hover,
.btn-gallery-call:hover,
.event-cta-btn:hover,
.btn-tab-service:hover,
.home-google-reviews-actions a:hover,
a.ndg-btn:hover,
button.ndg-btn:hover{
  transform:translateY(-2px)!important;
  box-shadow:0 10px 24px rgba(6,45,61,.15)!important;
}

.hero-call-outline i,
.btn-gallery-book i,
.btn-gallery-call i,
.event-cta-btn i,
.btn-tab-service i,
.home-google-reviews-actions a i,
a.ndg-btn i,
button.ndg-btn i{
  color:currentColor!important;
  opacity:1!important;
  visibility:visible!important;
  transform:translateX(0) rotate(0) scale(1)!important;
  transition:transform .28s cubic-bezier(.2,.7,.2,1)!important;
}

.hero-call-outline:hover i.fa-phone-volume,
.btn-gallery-call:hover i.fa-phone-volume{
  transform:translateX(2px) rotate(-7deg) scale(1.04)!important;
}

.btn-gallery-book:hover i,
.event-cta-btn:hover i,
.btn-tab-service:hover i,
.home-google-reviews-actions a:hover i,
a.ndg-btn:hover i,
button.ndg-btn:hover i{
  transform:translateX(4px) rotate(0) scale(1)!important;
}

.btn-offcanvas-toggle{transform:none!important}

/* ===== Reusable internal page hero: clean, no duplicate logo artwork ===== */

.page-title-bar{display:none!important}

.internal-page-hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 18%,rgba(227,216,231,.54) 0,rgba(227,216,231,0) 28%),
    linear-gradient(118deg,#fbf8fb 0%,#f7f1f6 54%,#edf4f6 100%);
  border-top:1px solid rgba(6,45,61,.05);
  border-bottom:1px solid rgba(6,45,61,.06);
}

.internal-page-hero::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(47,106,130,.20),transparent);
}

.internal-page-hero__rail{
  width:min(94vw,1640px)!important;
  max-width:none!important;
  min-height:310px;
  margin-inline:auto!important;
  padding:54px 0 58px!important;
  display:block!important;
}

.internal-page-hero__rail--single{display:block!important}

.internal-page-hero__copy{position:relative;z-index:2;max-width:860px}

.internal-page-hero__eyebrow{
  margin:0 0 15px;
  color:var(--ndg-teal);
  font-family:'Roboto',Arial,sans-serif;
  font-size:12px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.internal-page-hero h1{
  margin:0 0 18px;
  max-width:760px;
  color:var(--ndg-dark);
  font-family:'Abril Fatface',Georgia,serif;
  font-size:clamp(50px,4.2vw,70px);
  line-height:1;
  letter-spacing:-.025em;
  text-wrap:balance;
}

.internal-page-hero__copy>p{
  max-width:720px;
  margin:0 0 24px;
  color:#575757;
  font-family:'Roboto',Arial,sans-serif;
  font-size:17px;
  line-height:1.62;
}

.internal-page-hero__breadcrumbs{
  display:flex;
  align-items:center;
  gap:9px;
  color:#7a7a7a;
  font-family:'Roboto',Arial,sans-serif;
  font-size:13px;
  line-height:1.3;
}

.internal-page-hero__breadcrumbs a{color:var(--ndg-teal);text-decoration:none;font-weight:700}

.internal-page-hero__breadcrumbs a:hover{text-decoration:underline}

/* Legacy decorative header artwork is forcibly disabled. */

.internal-page-hero__brand-art,
.internal-page-hero__monogram,
.internal-page-hero__thread,
.internal-page-hero__needle,
.internal-page-hero__brand-label{display:none!important}

/* ===== Homepage alignment + breathing room ===== */

/* Tabs must follow the same 1360px source container as the rest of the homepage. */

#tabs_section>.container-custom{
  width:100%!important;
  max-width:1360px!important;
  margin-inline:auto!important;
  padding-left:24px!important;
  padding-right:24px!important;
}

#tabs_section .tabs-nav-wrap,
#tabs_section .tabs-panels-container,
#tabs_section .tab-panel,
#tabs_section .tab-content-grid{width:100%!important;max-width:none!important}

/* Keep the approved white space ABOVE the tabs. Add room only between following sections. */

.event-cta-section + #elena_section{padding-top:112px!important}

#elena_section{padding-bottom:112px!important}

#tabs_section{padding-bottom:116px!important}

#gallery_section{margin-bottom:92px!important}

.home-google-reviews{padding-top:96px!important;padding-bottom:110px!important}

.home-google-reviews + .home-map-section{margin-top:28px!important}

@media(max-width:820px){
  .internal-page-hero__rail{
    width:min(92vw,720px)!important;
    min-height:auto;
    padding:46px 0 48px!important;
  }
  .internal-page-hero h1{font-size:clamp(44px,11vw,60px)}
  .internal-page-hero__copy>p{font-size:16px}
  .event-cta-section + #elena_section{padding-top:82px!important}
  #elena_section{padding-bottom:88px!important}
  #tabs_section{padding-bottom:88px!important}
  #gallery_section{margin-bottom:72px!important}
  .home-google-reviews{padding-top:78px!important;padding-bottom:88px!important}
}

@media(max-width:560px){
  .internal-page-hero__rail{width:calc(100% - 36px)!important;padding:36px 0 40px!important}
  .internal-page-hero__eyebrow{margin-bottom:12px;font-size:11px}
  .internal-page-hero h1{font-size:43px;margin-bottom:15px}
  .internal-page-hero__copy>p{font-size:15.5px;line-height:1.55;margin-bottom:19px}
  .internal-page-hero__breadcrumbs{font-size:12px}
  .btn-header-call,.hero-call-outline,.btn-gallery-book,.btn-gallery-call,.event-cta-btn,.home-google-reviews-actions a,a.ndg-btn,button.ndg-btn{min-height:48px!important;padding:0 22px!important;font-size:14px!important}
  #tabs_section>.container-custom{width:100%!important;max-width:none!important;padding-left:18px!important;padding-right:18px!important}
  #tabs_section{padding-bottom:72px!important}
  #gallery_section{margin-bottom:58px!important}
  .home-google-reviews{padding-top:66px!important;padding-bottom:74px!important}
  .home-google-reviews + .home-map-section{margin-top:18px!important}
}

@media(prefers-reduced-motion:reduce){
  .btn-header-call,.hero-call-outline,.btn-gallery-book,.btn-gallery-call,.event-cta-btn,.btn-tab-service,.home-google-reviews-actions a,a.ndg-btn,button.ndg-btn,
  .hero-call-outline i,.btn-gallery-book i,.btn-gallery-call i,.event-cta-btn i,.btn-tab-service i{transition:none!important}
}


/* ===== from css/homepage-trust-map.css ===== */

/* Homepage real-review section + full-bleed map. Footer intentionally untouched. */

.home-google-reviews{
  background:#fff!important;
  padding:112px 0 78px!important;
}

.home-google-reviews>.container-custom{
  width:min(86vw,1180px)!important;
  max-width:none!important;
  margin-inline:auto!important;
  padding:0!important;
}

.home-google-reviews-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:42px!important;
  align-items:end!important;
  margin:0 0 42px!important;
  text-align:left!important;
}

.home-google-reviews-kicker{
  grid-column:1/-1;
  display:inline-flex;
  align-items:center;
  width:max-content;
  gap:8px;
  margin-bottom:-14px;
  color:var(--ndg-teal);
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.home-google-reviews-head h2{
  margin:0;
  max-width:720px;
  color:var(--ndg-dark);
  font-family:'Abril Fatface',Georgia,serif;
  font-size:clamp(34px,3vw,48px);
  line-height:1.06;
  text-wrap:balance;
}

.home-google-summary{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  flex-wrap:wrap;
  color:#666;
  font-size:14px;
}

.home-google-summary strong{
  color:var(--ndg-dark);
  font-family:'Abril Fatface',Georgia,serif;
  font-size:27px;
  line-height:1;
}

.home-google-summary a{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--ndg-teal)!important;
  font-weight:700;
  text-decoration:none!important;
}

.home-google-summary a:hover{text-decoration:underline!important}

.home-review-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}

.home-review-card{
  position:relative;
  min-height:200px;
  padding:30px 30px 26px;
  border:1px solid rgba(47,106,130,.15);
  border-radius:22px;
  background:linear-gradient(180deg,#fff 0%,#fbfafc 100%);
  box-shadow:0 12px 32px rgba(6,45,61,.055);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.home-review-card::before{
  content:'“';
  position:absolute;
  right:22px;
  top:10px;
  color:rgba(216,185,208,.38);
  font-family:Georgia,serif;
  font-size:72px;
  line-height:1;
  pointer-events:none;
}

.home-review-stars{color:#f4b400;font-size:15px;letter-spacing:2px;margin-bottom:20px;}

.home-review-card blockquote{position:relative;z-index:1;margin:0;color:#343434;font-size:17px;line-height:1.58;font-style:normal;}

.home-review-card p{margin:22px 0 0;color:#888;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;}

.home-review-source{margin:16px 2px 0;color:#909090;font-size:11px;line-height:1.45;}

/* Full-bleed map: no gray band, no side padding, no card treatment. */

.home-map-section{
  display:block!important;
  position:relative!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  background:#fff!important;
  overflow:visible!important;
}

.home-map-frame{
  width:100%!important;
  max-width:none!important;
  height:410px!important;
  min-height:0!important;
  margin:0!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:0!important;
  background:#eef3f4!important;
  box-shadow:none!important;
}

.home-map-frame iframe{display:block!important;width:100%!important;height:100%!important;min-height:0!important;border:0!important;}

.home-map-info{display:none!important;}

@media(max-width:980px){
  .home-google-reviews{padding:88px 0 60px!important}
  .home-google-reviews>.container-custom{width:calc(100% - 64px)!important}
  .home-google-reviews-head{grid-template-columns:1fr!important;gap:20px!important;margin-bottom:34px!important}
  .home-google-reviews-kicker{margin-bottom:0}
  .home-google-summary{justify-content:flex-start!important}
  .home-review-cards{grid-template-columns:1fr 1fr;gap:18px}
  .home-review-card:last-child{grid-column:1/-1}
  .home-map-frame{height:350px!important}
}

@media(max-width:620px){
  .home-google-reviews{padding:72px 0 48px!important}
  .home-google-reviews>.container-custom{width:calc(100% - 36px)!important}
  .home-google-reviews-head{margin-bottom:28px!important}
  .home-google-reviews-head h2{font-size:34px!important}
  .home-google-summary{gap:10px 14px!important}
  .home-google-summary strong{font-size:24px!important}
  .home-review-cards{grid-template-columns:1fr!important;gap:16px!important}
  .home-review-card,.home-review-card:last-child{grid-column:auto!important;min-height:0!important;padding:24px 22px!important;border-radius:18px!important}
  .home-review-card blockquote{font-size:16px!important}
  .home-map-frame{height:300px!important}
}


/* ===== from css/tab-icon-fix.css ===== */

/* Final couture-tab icon QA. Loaded last so earlier source-match layers cannot erase icons. */

#tab_custom .tab-stylish-list{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  column-gap:44px!important;
  row-gap:18px!important;
  margin-top:24px!important;
  padding:0!important;
  list-style:none!important;
}

#tab_custom .tab-stylish-list li{
  display:flex!important;
  align-items:center!important;
  gap:16px!important;
  min-width:0!important;
  min-height:58px!important;
  margin:0!important;
  color:#555!important;
  font-size:16px!important;
  line-height:1.42!important;
}

#tab_custom .tab-stylish-list li > i{
  width:56px!important;
  height:56px!important;
  min-width:56px!important;
  flex:0 0 56px!important;
  margin:0!important;
  border-radius:50%!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#2F6A82!important;
  color:#fff!important;
  font-family:"Font Awesome 6 Free"!important;
  font-style:normal!important;
  font-weight:900!important;
  font-size:20px!important;
  line-height:1!important;
  opacity:1!important;
  visibility:visible!important;
  box-shadow:none!important;
}

/* Explicit known-free Font Awesome glyphs prevent the fourth circle from rendering empty. */

#tab_custom .tab-stylish-list li:nth-child(1) > i::before{content:"\f553"!important;}

/* shirt */

#tab_custom .tab-stylish-list li:nth-child(2) > i::before{content:"\f0c4"!important;}

/* scissors */

#tab_custom .tab-stylish-list li:nth-child(3) > i::before{content:"\f546"!important;}

/* ruler-combined */

#tab_custom .tab-stylish-list li:nth-child(4) > i::before{content:"\f058"!important;}

/* circle-check */

#tab_custom .tab-stylish-list li > span{
  display:block!important;
  min-width:0!important;
  margin:0!important;
}

@media(max-width:820px){
  #tab_custom .tab-stylish-list{
    grid-template-columns:1fr!important;
    row-gap:14px!important;
    column-gap:0!important;
  }
  #tab_custom .tab-stylish-list li > i{
    width:50px!important;
    height:50px!important;
    min-width:50px!important;
    flex-basis:50px!important;
    font-size:18px!important;
  }
}


/* ===== from css/2026-editorial-ui.css ===== */

/* 2026 editorial refinement. Loaded late. Footer intentionally untouched. */

/* ===== Event CTA ===== */

.event-cta-card{
  position:relative!important;
  overflow:visible!important;
  padding-bottom:58px!important;
}

.event-cta-card .event-cta-btn{
  position:absolute!important;
  left:50%!important;
  bottom:-27px!important;
  transform:translateX(-50%)!important;
  min-width:250px!important;
  min-height:54px!important;
  padding:0 30px!important;
  border-radius:999px!important;
  transition:box-shadow .28s ease,transform .28s cubic-bezier(.2,.7,.2,1),border-color .28s ease!important;
}

.event-cta-card .event-cta-btn:hover{transform:translateX(-50%) translateY(-2px)!important;}

.event-cta-card .event-cta-btn i{color:currentColor!important;transition:transform .28s cubic-bezier(.2,.7,.2,1)!important;}

.event-cta-card .event-cta-btn:hover i{transform:translateY(-2px)!important;}

/* Legacy duplicate bar is not part of the new system. */

.page-title-bar{display:none!important;}

/* ===== Clean internal-page header ===== */

.internal-page-hero{
  position:relative!important;
  overflow:hidden!important;
  background:linear-gradient(110deg,#fbf9fb 0%,#f8f4f8 48%,#f2f7f7 100%)!important;
  border-top:1px solid rgba(6,45,61,.035)!important;
  border-bottom:1px solid rgba(6,45,61,.07)!important;
}

.internal-page-hero::before{
  content:''!important;
  position:absolute!important;
  inset:auto -10% -80% 48%!important;
  height:190%!important;
  background:radial-gradient(circle at center,rgba(47,106,130,.055),transparent 62%)!important;
  pointer-events:none!important;
}

.internal-page-hero__rail{
  position:relative!important;
  z-index:1!important;
  width:100%!important;
  max-width:1360px!important;
  margin-inline:auto!important;
  padding:46px 24px 48px!important;
  display:grid!important;
  grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr)!important;
  align-items:end!important;
  gap:90px!important;
}

.internal-page-hero__title-block,
.internal-page-hero__context{min-width:0!important;}

.internal-page-hero__eyebrow{
  margin:0 0 10px!important;
  color:#2F6A82!important;
  font:700 11px/1.2 'Roboto',Arial,sans-serif!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
}

.internal-page-hero h1{
  margin:0!important;
  color:#062D3D!important;
  font-family:'Abril Fatface',Georgia,serif!important;
  font-size:clamp(52px,4.5vw,72px)!important;
  font-weight:400!important;
  line-height:.94!important;
  letter-spacing:-.028em!important;
  text-wrap:balance!important;
}

.internal-page-hero__context{
  max-width:620px!important;
  justify-self:end!important;
  padding-bottom:4px!important;
}

.internal-page-hero__context>p{
  margin:0 0 18px!important;
  max-width:600px!important;
  color:#50585b!important;
  font:400 17px/1.55 'Roboto',Arial,sans-serif!important;
}

.internal-page-hero__breadcrumbs{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  margin:0!important;
  color:#8a8f91!important;
  font:500 12px/1.3 'Roboto',Arial,sans-serif!important;
}

.internal-page-hero__breadcrumbs a{
  color:#2F6A82!important;
  font-weight:700!important;
  text-decoration:none!important;
}

.internal-page-hero__breadcrumbs a:hover{text-decoration:underline!important;}

.internal-page-hero__title-block,
.internal-page-hero__context{
  animation:internalHeroIn .55s cubic-bezier(.2,.7,.2,1) both!important;
}

.internal-page-hero__context{animation-delay:.07s!important;}

@keyframes internalHeroIn{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}

@media(max-width:980px){
  .internal-page-hero__rail{padding:40px 22px 42px!important;gap:48px!important;grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr)!important;}
  .internal-page-hero h1{font-size:clamp(48px,6.4vw,62px)!important;}
  .internal-page-hero__context>p{font-size:16px!important;}
}

@media(max-width:760px){
  .internal-page-hero__rail{display:block!important;padding:32px 20px 34px!important;}
  .internal-page-hero h1{font-size:48px!important;}
  .internal-page-hero__context{max-width:none!important;margin-top:20px!important;padding:0!important;justify-self:auto!important;}
  .internal-page-hero__context>p{margin-bottom:14px!important;font-size:15.5px!important;line-height:1.55!important;}
}

@media(max-width:520px){
  .event-cta-card .event-cta-btn{min-width:220px!important;min-height:50px!important;bottom:-25px!important;padding:0 22px!important;font-size:14px!important;}
  .internal-page-hero__rail{padding:28px 18px 30px!important;}
  .internal-page-hero h1{font-size:42px!important;}
  .internal-page-hero__eyebrow{font-size:10px!important;}
}

@media(prefers-reduced-motion:reduce){
  .internal-page-hero__title-block,.internal-page-hero__context{animation:none!important;}
}


/* ===== from css/home-hero-position-fix.css ===== */

/* Homepage hero composition: keep the model clear of the header and move copy higher. */

body.home .hero-section,
#hero_section.hero-section{
  background-position:right 38%!important;
}

#hero_section .hero-content-wrap{
  transform:translateY(-42px)!important;
  max-width:700px!important;
}

#hero_section .hero-title-main{
  font-size:clamp(86px,7vw,122px)!important;
  line-height:.86!important;
  letter-spacing:-1.8px!important;
  margin-bottom:14px!important;
}

#hero_section .hero-title-sub{
  font-size:clamp(35px,2.8vw,50px)!important;
  line-height:1.06!important;
  margin-bottom:24px!important;
}

#hero_section .hero-description{max-width:570px!important;}

/* Clear conversion hierarchy: Call is primary, Find us is secondary. */

#hero_section .hero-actions{
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  flex-wrap:wrap!important;
  width:auto!important;
}

#hero_section .hero-actions .hero-call-outline,
#hero_section .hero-secondary-cta{
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate!important;
  width:auto!important;
  flex:0 0 auto!important;
  border-radius:999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:11px!important;
  font-family:'Roboto',sans-serif!important;
  line-height:1!important;
  font-weight:700!important;
  text-decoration:none!important;
  color:#2F6A82!important;
  background:transparent!important;
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease,background-color .28s ease,color .28s ease!important;
}

#hero_section .hero-actions .hero-call-outline{
  min-width:214px!important;
  min-height:60px!important;
  padding:14px 32px!important;
  border:2px solid #2F6A82!important;
  font-size:19px!important;
  box-shadow:0 6px 18px rgba(6,45,61,.07)!important;
}

#hero_section .hero-secondary-cta{
  min-width:174px!important;
  min-height:54px!important;
  padding:12px 24px!important;
  border:1.5px solid rgba(47,106,130,.40)!important;
  font-size:16px!important;
  font-weight:650!important;
  opacity:.92!important;
}

/* Visible shine layer: above button background, below label/icon. */

#hero_section .hero-actions .hero-call-outline::after,
#hero_section .hero-secondary-cta::after{
  content:''!important;
  position:absolute!important;
  z-index:1!important;
  pointer-events:none!important;
  top:-45%!important;
  left:-55%!important;
  width:46%!important;
  height:190%!important;
  transform:skewX(-22deg)!important;
  background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.96) 42%,rgba(47,106,130,.16) 58%,transparent 100%)!important;
  filter:blur(.2px)!important;
  opacity:0!important;
}

#hero_section .hero-actions .hero-call-outline > span,
#hero_section .hero-actions .hero-call-outline > i,
#hero_section .hero-secondary-cta > span,
#hero_section .hero-secondary-cta > i{
  position:relative!important;
  z-index:2!important;
}

#hero_section .hero-actions .hero-call-outline:hover{
  color:#2F6A82!important;
  background:rgba(255,255,255,.16)!important;
  border-color:#2F6A82!important;
  transform:translateY(-3px)!important;
  box-shadow:0 0 0 4px rgba(47,106,130,.09),0 14px 30px rgba(6,45,61,.18)!important;
}

#hero_section .hero-secondary-cta:hover{
  color:#2F6A82!important;
  background:rgba(255,255,255,.11)!important;
  border-color:#2F6A82!important;
  opacity:1!important;
  transform:translateY(-2px)!important;
  box-shadow:0 8px 20px rgba(6,45,61,.11)!important;
}

#hero_section .hero-actions .hero-call-outline:hover::after,
#hero_section .hero-secondary-cta:hover::after{
  opacity:1!important;
  animation:heroShine .82s cubic-bezier(.22,.61,.36,1) forwards!important;
}

#hero_section .hero-actions .hero-call-outline i,
#hero_section .hero-secondary-cta i{color:currentColor!important;transform-origin:center!important;}

#hero_section .hero-actions .hero-call-outline:hover i{animation:phoneShake .62s ease-in-out!important;}

#hero_section .hero-secondary-cta:hover i{animation:pinBounce .5s ease!important;}

@keyframes heroShine{from{left:-55%}to{left:120%}}

@keyframes phoneShake{0%,100%{transform:rotate(0)}20%{transform:rotate(-13deg)}40%{transform:rotate(13deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(8deg)}}

@keyframes pinBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

/* Date + live hours as a clean information rail. */

#hero_section .hero-walkin-status{
  margin-top:16px!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:10px!important;
  max-width:100%!important;
  padding:10px 14px!important;
  border:1px solid rgba(47,106,130,.16)!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.50)!important;
  box-shadow:0 8px 26px rgba(6,45,61,.055)!important;
  color:#4d585d!important;
  font:600 13px/1.3 'Roboto',sans-serif!important;
  backdrop-filter:blur(10px)!important;
}

#hero_section .hero-walkin-date{color:#062D3D!important;font-weight:700!important;}

#hero_section .hero-walkin-state{color:#2F6A82!important;font-weight:800!important;}

#hero_section .hero-walkin-note{white-space:nowrap!important;}

#hero_section .hero-walkin-divider{width:1px!important;height:16px!important;background:rgba(47,106,130,.20)!important;flex:0 0 1px!important;}

#hero_section .hero-walkin-status.is-open .hero-walkin-state::before{
  content:'';
  display:inline-block;
  width:7px;
  height:7px;
  margin-right:7px;
  border-radius:50%;
  background:#2F6A82;
  box-shadow:0 0 0 5px rgba(47,106,130,.08);
  vertical-align:1px;
}

/* Secondary location actions elsewhere: no filled lavender blobs. */

#gallery_section .btn-gallery-book,
.event-cta-card .event-cta-btn{
  background:transparent!important;
  color:#2F6A82!important;
  border:2px solid rgba(47,106,130,.42)!important;
  box-shadow:none!important;
}

#gallery_section .btn-gallery-book:hover,
.event-cta-card .event-cta-btn:hover{
  background:rgba(255,255,255,.12)!important;
  border-color:#2F6A82!important;
  box-shadow:0 0 0 4px rgba(47,106,130,.07),0 10px 24px rgba(6,45,61,.13)!important;
}

/* Directions control on the map. */

.home-map-frame{position:relative!important;}

.home-map-directions{
  position:absolute!important;
  right:24px!important;
  bottom:24px!important;
  z-index:4!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:9px!important;
  min-height:48px!important;
  padding:0 20px!important;
  border:1px solid rgba(47,106,130,.24)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.90)!important;
  color:#2F6A82!important;
  box-shadow:0 10px 26px rgba(6,45,61,.14)!important;
  backdrop-filter:blur(10px)!important;
  font:700 15px/1 'Roboto',sans-serif!important;
  text-decoration:none!important;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease!important;
}

.home-map-directions:hover{
  border-color:#2F6A82!important;
  transform:translateY(-2px)!important;
  box-shadow:0 0 0 4px rgba(47,106,130,.08),0 12px 30px rgba(6,45,61,.18)!important;
}

/* Contact page walk-in-first panel. */

.walkin-contact-panel{display:flex!important;flex-direction:column!important;justify-content:center!important;gap:18px!important;}

.walkin-contact-kicker{display:inline-flex!important;width:max-content!important;padding:7px 12px!important;border-radius:999px!important;background:#e3d8e7!important;color:#2F6A82!important;font:700 12px/1 'Roboto',sans-serif!important;letter-spacing:.07em!important;text-transform:uppercase!important;}

.walkin-contact-panel .contact-business-name{margin:0!important;color:#062D3D!important;font-size:clamp(32px,3vw,44px)!important;line-height:1.05!important;text-wrap:balance!important;}

.walkin-contact-copy{margin:0!important;color:#555!important;font-size:17px!important;line-height:1.65!important;}

.walkin-contact-hours{display:flex!important;align-items:flex-start!important;gap:12px!important;padding:16px 18px!important;border-radius:16px!important;background:#f7f3f8!important;color:#4c5559!important;font-size:15px!important;line-height:1.55!important;}

.walkin-contact-hours i{margin-top:3px!important;color:#2F6A82!important;}

.walkin-contact-actions{display:flex!important;flex-wrap:wrap!important;gap:12px!important;}

.walkin-call,.walkin-directions{min-height:52px!important;padding:0 24px!important;border-radius:999px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;font:700 16px/1 'Roboto',sans-serif!important;text-decoration:none!important;transition:all .25s ease!important;}

.walkin-call{border:2px solid #2F6A82!important;background:transparent!important;color:#2F6A82!important;}

.walkin-call:hover{background:rgba(47,106,130,.06)!important;color:#2F6A82!important;transform:translateY(-2px)!important;box-shadow:0 0 0 4px rgba(47,106,130,.08),0 10px 24px rgba(6,45,61,.12)!important;}

.walkin-directions{border:2px solid rgba(47,106,130,.38)!important;background:transparent!important;color:#2F6A82!important;}

.walkin-directions:hover{border-color:#2F6A82!important;background:rgba(47,106,130,.05)!important;transform:translateY(-2px)!important;box-shadow:0 0 0 4px rgba(47,106,130,.07),0 10px 24px rgba(6,45,61,.11)!important;}

.walkin-contact-address{margin:0!important;color:#777!important;font-size:13px!important;line-height:1.45!important;}

@media(max-width:1024px){
  #hero_section.hero-section{background-position:76% 40%!important;}
  #hero_section .hero-content-wrap{transform:translateY(-24px)!important;max-width:620px!important;}
  #hero_section .hero-title-main{font-size:clamp(74px,8.6vw,96px)!important;}
}

@media(max-width:700px){
  #hero_section.hero-section{background-position:74% 34%!important;}
  #hero_section .hero-content-wrap{transform:none!important;max-width:100%!important;}
  #hero_section .hero-title-main{font-size:clamp(60px,17.5vw,78px)!important;line-height:.9!important;}
  #hero_section .hero-title-sub{font-size:clamp(27px,7.4vw,36px)!important;}
  #hero_section .hero-actions{gap:10px!important;align-items:center!important;width:100%!important;}
  #hero_section .hero-actions .hero-call-outline{min-width:190px!important;min-height:54px!important;padding:12px 24px!important;font-size:17px!important;}
  #hero_section .hero-secondary-cta{min-width:150px!important;min-height:50px!important;padding:11px 18px!important;font-size:15px!important;}
  #hero_section .hero-walkin-status{width:100%!important;display:grid!important;grid-template-columns:1fr auto 1fr!important;gap:8px!important;padding:10px 12px!important;font-size:12px!important;}
  #hero_section .hero-walkin-date{grid-column:1/-1!important;}
  #hero_section .hero-walkin-divider:first-of-type{display:none!important;}
  #hero_section .hero-walkin-note{text-align:right!important;}
  .home-map-directions{right:16px!important;bottom:16px!important;min-height:44px!important;padding:0 16px!important;font-size:14px!important;}
  .walkin-contact-actions{display:grid!important;grid-template-columns:1fr!important;}
  .walkin-call,.walkin-directions{width:100%!important;}
}

@media(max-width:460px){
  #hero_section .hero-actions{flex-direction:column!important;align-items:stretch!important;}
  #hero_section .hero-actions .hero-call-outline,
  #hero_section .hero-secondary-cta{width:100%!important;min-width:0!important;}
  #hero_section .hero-actions .hero-call-outline{min-height:54px!important;font-size:17px!important;}
  #hero_section .hero-secondary-cta{min-height:48px!important;font-size:15px!important;}
}

@media(prefers-reduced-motion:reduce){
  #hero_section .hero-actions .hero-call-outline:hover::after,
  #hero_section .hero-secondary-cta:hover::after,
  #hero_section .hero-actions .hero-call-outline:hover i,
  #hero_section .hero-secondary-cta:hover i{animation:none!important;}
}


/* ===== from css/modern-content-pages.css ===== */

/* Modern FAQ + editorial article system. Loaded last. Footer intentionally untouched. */

/* ---------- Compact internal page header ---------- */

.internal-page-hero{
  height:auto!important;
  min-height:0!important;
  background:linear-gradient(110deg,#fbf9fb 0%,#f8f4f8 54%,#f2f7f7 100%)!important;
}

.internal-page-hero::before{opacity:.55!important;}

.internal-page-hero__rail{
  min-height:0!important;
  padding:30px 24px 32px!important;
  grid-template-columns:minmax(280px,.92fr) minmax(0,1.08fr)!important;
  gap:72px!important;
  align-items:center!important;
}

.internal-page-hero__eyebrow{margin-bottom:8px!important;}

.internal-page-hero h1{
  font-size:clamp(46px,4vw,64px)!important;
  line-height:.96!important;
}

.internal-page-hero__context{
  max-width:560px!important;
  justify-self:end!important;
  padding:0!important;
}

.internal-page-hero__context>p{
  margin:0 0 12px!important;
  font-size:16px!important;
  line-height:1.5!important;
}

.internal-page-hero__breadcrumbs{font-size:11.5px!important;}

/* ---------- FAQ ---------- */

.faq-page-section{padding:82px 0 104px!important;background:#fff!important;}

.faq-page-section .container-custom{max-width:1360px!important;}

.faq-main-grid{display:grid!important;grid-template-columns:minmax(0,1fr) 360px!important;gap:72px!important;align-items:start!important;}

.faq-left-col{min-width:0!important;}

.faq-intro{margin-bottom:46px!important;max-width:800px!important;}

.faq-intro__kicker{display:inline-flex!important;align-items:center!important;gap:8px!important;margin-bottom:14px!important;color:#2F6A82!important;font:700 12px/1.2 'Roboto',sans-serif!important;letter-spacing:.14em!important;text-transform:uppercase!important;}

.faq-intro__kicker::before{content:'';width:24px;height:1px;background:#2F6A82;}

.faq-intro h2{margin:0 0 24px!important;font-family:'Abril Fatface',Georgia,serif!important;font-size:clamp(38px,3.3vw,56px)!important;line-height:1.02!important;color:#062D3D!important;text-wrap:balance!important;}

.faq-intro p{margin:0!important;max-width:760px!important;color:#61676a!important;font-size:17px!important;line-height:1.75!important;}

.cz-faq-accordion{display:flex!important;flex-direction:column!important;gap:14px!important;}

.cz-faq-item{overflow:hidden!important;border:1px solid rgba(47,106,130,.14)!important;border-radius:18px!important;background:#fff!important;box-shadow:0 8px 26px rgba(6,45,61,.035)!important;transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease,background .3s ease!important;}

.cz-faq-item:hover{border-color:rgba(47,106,130,.34)!important;box-shadow:0 12px 30px rgba(6,45,61,.07)!important;transform:translateY(-1px)!important;}

.cz-faq-item.open{border-color:rgba(47,106,130,.30)!important;background:linear-gradient(180deg,#fff 0%,#fbf8fc 100%)!important;box-shadow:0 16px 38px rgba(6,45,61,.07)!important;}

.cz-faq-toggle{width:100%!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:20px!important;padding:24px 26px!important;border:0!important;background:transparent!important;color:#062D3D!important;text-align:left!important;font:700 16px/1.35 'Roboto',sans-serif!important;cursor:pointer!important;}

.cz-faq-toggle i{width:34px!important;height:34px!important;flex:0 0 34px!important;border-radius:50%!important;display:grid!important;place-items:center!important;background:#f3edf5!important;color:#2F6A82!important;font-size:12px!important;transition:transform .32s cubic-bezier(.2,.7,.2,1),background .25s ease!important;}

.cz-faq-item.open .cz-faq-toggle i{transform:rotate(180deg)!important;background:#e3d8e7!important;}

.cz-faq-content{background:transparent!important;}

.cz-faq-content p{margin:0!important;padding:0 26px 26px!important;color:#51595d!important;font-size:16px!important;line-height:1.72!important;max-width:760px!important;}

.faq-right-col{position:sticky!important;top:118px!important;display:flex!important;flex-direction:column!important;gap:22px!important;}

.faq-sidebar-img{width:100%!important;height:250px!important;object-fit:cover!important;border-radius:22px!important;box-shadow:0 18px 42px rgba(6,45,61,.08)!important;}

.faq-contact-card{position:relative!important;overflow:hidden!important;padding:32px!important;border-radius:24px!important;background:#2F6A82!important;color:#fff!important;box-shadow:0 20px 46px rgba(47,106,130,.22)!important;}

.faq-contact-card::after{content:'';position:absolute;right:-52px;top:-62px;width:170px;height:170px;border-radius:50%;background:rgba(255,255,255,.09);}

.faq-card-kicker{position:relative;z-index:1;display:inline-flex!important;margin-bottom:12px!important;color:#e9ddea!important;font:700 11px/1.2 'Roboto',sans-serif!important;letter-spacing:.13em!important;text-transform:uppercase!important;}

.faq-contact-card h2{position:relative;z-index:1;margin:0 0 14px!important;font-size:31px!important;line-height:1.08!important;color:#fff!important;text-wrap:balance!important;}

.faq-contact-card p{position:relative;z-index:1;margin:0 0 24px!important;color:rgba(255,255,255,.88)!important;font-size:15.5px!important;line-height:1.64!important;}

.faq-card-actions{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:10px;}

.faq-contact-card .contact-card-btn,.faq-directions-btn{min-height:48px!important;padding:0 18px!important;border-radius:999px!important;display:inline-flex!important;align-items:center!important;gap:9px!important;font:700 14px/1 'Roboto',sans-serif!important;text-decoration:none!important;transition:transform .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease!important;}

.faq-contact-card .contact-card-btn{background:#fff!important;color:#2F6A82!important;border:1px solid rgba(255,255,255,.7)!important;}

.faq-directions-btn{background:transparent!important;color:#fff!important;border:1px solid rgba(255,255,255,.45)!important;}

.faq-contact-card .contact-card-btn:hover,.faq-directions-btn:hover{transform:translateY(-2px)!important;box-shadow:0 10px 20px rgba(0,0,0,.16)!important;}

.faq-directions-btn:hover{background:rgba(255,255,255,.12)!important;}

/* ---------- Editorial article ---------- */

.article-page{background:#fff!important;}

.article-hero{padding:58px 0 34px!important;background:linear-gradient(115deg,#fbf8fb 0%,#f7f3f8 58%,#eef5f6 100%)!important;border-bottom:1px solid rgba(47,106,130,.08)!important;}

.article-hero__inner{max-width:1120px!important;}

.article-breadcrumbs{display:flex!important;align-items:center!important;gap:8px!important;margin-bottom:24px!important;color:#7b8184!important;font-size:12px!important;}

.article-breadcrumbs a{color:#2F6A82!important;text-decoration:none!important;font-weight:700!important;}

.article-breadcrumbs a:hover{text-decoration:underline!important;}

.article-kicker{display:inline-flex!important;align-items:center!important;gap:8px!important;margin-bottom:14px!important;color:#2F6A82!important;font:700 12px/1.2 'Roboto',sans-serif!important;letter-spacing:.14em!important;text-transform:uppercase!important;}

.article-kicker::before{content:'';width:28px;height:1px;background:#2F6A82;}

.article-hero h1{margin:0!important;max-width:960px!important;font-family:'Abril Fatface',Georgia,serif!important;font-size:clamp(48px,5.2vw,78px)!important;line-height:.98!important;letter-spacing:-.025em!important;color:#062D3D!important;text-wrap:balance!important;}

.article-dek{margin:22px 0 0!important;max-width:760px!important;color:#5c6468!important;font-size:19px!important;line-height:1.6!important;}

.article-meta{display:flex!important;align-items:center!important;gap:14px!important;flex-wrap:wrap!important;margin-top:22px!important;color:#6f777b!important;font-size:13px!important;}

.article-meta__chip{display:inline-flex!important;align-items:center!important;gap:7px!important;padding:8px 12px!important;border-radius:999px!important;background:rgba(255,255,255,.72)!important;border:1px solid rgba(47,106,130,.12)!important;}

.article-media{max-width:1240px!important;margin:38px auto 0!important;padding:0 24px!important;}

.article-media img{display:block!important;width:100%!important;height:min(48vw,560px)!important;object-fit:cover!important;border-radius:28px!important;box-shadow:0 20px 55px rgba(6,45,61,.10)!important;}

.article-body-wrap{max-width:1180px!important;margin:0 auto!important;padding:58px 24px 96px!important;display:grid!important;grid-template-columns:minmax(0,760px) 300px!important;gap:82px!important;align-items:start!important;}

.article-content{min-width:0!important;color:#444d51!important;font-size:18px!important;line-height:1.85!important;}

.article-content>p:first-child{font-size:20px!important;line-height:1.75!important;color:#354247!important;}

.article-content h2{margin:46px 0 12px!important;font-family:'Abril Fatface',Georgia,serif!important;font-size:34px!important;line-height:1.12!important;color:#062D3D!important;}

.article-content p{margin:0 0 22px!important;}

.article-content a{color:#2F6A82!important;text-decoration-thickness:1px!important;text-underline-offset:3px!important;}

.article-aside{position:sticky!important;top:118px!important;padding:30px 24px 28px!important;border:1px solid rgba(47,106,130,.14)!important;border-radius:22px!important;background:linear-gradient(180deg,#fff 0%,#faf7fb 100%)!important;box-shadow:0 16px 40px rgba(6,45,61,.06)!important;}

.article-aside__eyebrow{margin-bottom:20px!important;color:#2F6A82!important;font:700 11px/1.2 'Roboto',sans-serif!important;letter-spacing:.12em!important;text-transform:uppercase!important;}

.article-aside h2{margin:0 0 22px!important;font-size:26px!important;line-height:1.1!important;color:#062D3D!important;text-wrap:balance!important;}

.article-aside p{margin:0 0 24px!important;color:#626a6e!important;font-size:14.5px!important;line-height:1.6!important;}

.article-aside__actions{display:flex!important;flex-direction:column!important;gap:9px!important;}

.article-aside__actions a{min-height:46px!important;border-radius:999px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;font:700 14px/1 'Roboto',sans-serif!important;text-decoration:none!important;transition:transform .25s ease,box-shadow .25s ease,background .25s ease!important;}

.article-call{background:#062D3D!important;color:#fff!important;}

.article-directions{background:#e3d8e7!important;color:#2F6A82!important;}

.article-aside__actions a:hover{transform:translateY(-2px)!important;box-shadow:0 9px 20px rgba(6,45,61,.12)!important;}

.article-local-proof{margin-top:44px!important;padding:22px 24px!important;border-radius:18px!important;background:#f3e8dc!important;color:#4f595d!important;font-size:15px!important;line-height:1.6!important;}

.article-local-proof strong{color:#062D3D!important;}

@media(max-width:980px){
  .internal-page-hero__rail{padding:28px 22px 30px!important;gap:40px!important;}
  .faq-main-grid{grid-template-columns:1fr!important;gap:46px!important;}
  .faq-right-col{position:static!important;display:grid!important;grid-template-columns:1fr 1fr!important;}
  .faq-sidebar-img{height:100%!important;min-height:280px!important;}
  .article-body-wrap{grid-template-columns:1fr!important;gap:44px!important;}
  .article-aside{position:static!important;}
}

@media(max-width:760px){
  .internal-page-hero__rail{display:block!important;padding:26px 20px 28px!important;}
  .internal-page-hero h1{font-size:46px!important;}
  .internal-page-hero__context{margin-top:14px!important;}
  .internal-page-hero__context>p{margin-bottom:10px!important;font-size:15.5px!important;}
}

@media(max-width:700px){
  .faq-page-section{padding:54px 0 72px!important;}
  .faq-intro{margin-bottom:36px!important;}
  .faq-intro h2{font-size:38px!important;margin-bottom:18px!important;}
  .faq-intro p{font-size:16px!important;}
  .cz-faq-toggle{padding:20px 18px!important;font-size:15px!important;}
  .cz-faq-content p{padding:0 18px 22px!important;font-size:15px!important;}
  .faq-right-col{display:flex!important;}
  .faq-sidebar-img{height:220px!important;min-height:0!important;}
  .faq-contact-card{padding:26px!important;}
  .article-hero{padding:40px 0 26px!important;}
  .article-hero h1{font-size:clamp(42px,12vw,58px)!important;}
  .article-dek{font-size:17px!important;}
  .article-media{margin-top:26px!important;padding:0 18px!important;}
  .article-media img{height:58vw!important;min-height:260px!important;border-radius:20px!important;}
  .article-body-wrap{padding:40px 18px 68px!important;}
  .article-content{font-size:16.5px!important;line-height:1.78!important;}
  .article-content>p:first-child{font-size:18px!important;}
  .article-content h2{font-size:30px!important;margin-top:38px!important;}
  .article-aside{padding:26px 22px!important;}
  .article-aside__eyebrow{margin-bottom:16px!important;}
  .article-aside h2{margin-bottom:18px!important;}
}

@media(prefers-reduced-motion:reduce){
  .cz-faq-item,.cz-faq-toggle i,.faq-contact-card a,.article-aside__actions a{transition:none!important;}
}


/* ===== from css/header-article-tune.css ===== */

/* Final header + article tuning. Footer intentionally untouched. */

/* Header actions: one opposite-language switch, Call first, Find us second. */

.header-actions{gap:10px!important;}

.lang-switch-single{
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  background:#e3d8e7!important;
  color:#062D3D!important;
  font:700 14px/1 'Roboto',sans-serif!important;
  text-decoration:none!important;
  transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease!important;
}

.lang-switch-single:hover{
  background:#d7c9dd!important;
  transform:translateY(-2px)!important;
  box-shadow:0 8px 20px rgba(6,45,61,.12)!important;
}

.btn-header-call i{font-size:14px!important;color:currentColor!important;}

.header-find-link{
  min-height:48px!important;
  padding:0 18px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  border:1px solid rgba(47,106,130,.28)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:#2F6A82!important;
  font:700 14px/1 'Roboto',sans-serif!important;
  text-decoration:none!important;
  white-space:nowrap!important;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,background-color .25s ease!important;
}

.header-find-link:hover{
  transform:translateY(-2px)!important;
  border-color:#2F6A82!important;
  background:rgba(47,106,130,.045)!important;
  box-shadow:0 8px 20px rgba(6,45,61,.09)!important;
}

.header-find-link i{transition:transform .25s ease!important;}

.header-find-link:hover i{transform:translateY(-2px) scale(1.08)!important;}

@media(min-width:1181px){
  #site_header .btn-offcanvas-toggle{display:none!important;}
}

@media(max-width:1180px){
  .header-find-link{display:none!important;}
  #site_header .btn-offcanvas-toggle{display:inline-flex!important;}
}

@media(max-width:700px){
  .lang-switch-single{width:38px!important;height:38px!important;min-width:38px!important;font-size:13px!important;}
}

/* Article titles: editorial, not billboard-sized. */

.article-hero__inner{max-width:1080px!important;}

.article-hero h1{
  max-width:900px!important;
  font-size:clamp(46px,4.15vw,64px)!important;
  line-height:1!important;
  letter-spacing:-.02em!important;
}

.article-dek{margin-top:18px!important;}

.article-meta{margin-top:18px!important;}

@media(max-width:700px){
  .article-hero h1{font-size:clamp(39px,10.5vw,52px)!important;line-height:1.02!important;}
}

@media(prefers-reduced-motion:reduce){
  .lang-switch-single,.header-find-link,.header-find-link i{transition:none!important;}
}


/* ===== from css/conversion-final.css ===== */

/* Final conversion + contact access layer. Footer intentionally untouched. */

/* Header: use the primary brand teal for the main Call CTA. Footer dark stays structural. */

#site_header .btn-header-call{
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate!important;
  background:#2F6A82!important;
  border-color:#2F6A82!important;
  color:#fff!important;
  box-shadow:0 7px 18px rgba(47,106,130,.18)!important;
}

#site_header .btn-header-call:hover{
  background:#24586d!important;
  border-color:#24586d!important;
  color:#fff!important;
}

/* Hero: Call is unmistakably primary; Find us is secondary. Keep FR and EN typographic scale identical. */

#hero_section .hero-title-main{
  font-size:clamp(86px,7vw,122px)!important;
  line-height:.86!important;
  letter-spacing:-1.8px!important;
}

#hero_section .hero-title-sub{
  font-size:clamp(35px,2.8vw,50px)!important;
  line-height:1.06!important;
}

#hero_section .hero-description{
  max-width:570px!important;
  font-size:17px!important;
  line-height:1.55!important;
}

#hero_section .hero-actions .hero-call-outline{
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate!important;
  background:#2F6A82!important;
  border:2px solid #2F6A82!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(47,106,130,.24)!important;
}

#hero_section .hero-actions .hero-call-outline:hover{
  background:#2F6A82!important;
  border-color:#2F6A82!important;
  color:#fff!important;
  transform:translateY(-3px)!important;
  box-shadow:0 0 0 4px rgba(47,106,130,.12),0 16px 34px rgba(6,45,61,.20)!important;
}

#hero_section .hero-secondary-cta{
  background:rgba(255,255,255,.08)!important;
  color:#2F6A82!important;
  border:1.5px solid rgba(47,106,130,.42)!important;
  box-shadow:none!important;
}

/* Explicit gloss element so no older pseudo-element rule can hide the animation. */

#hero_section .hero-call-outline .hero-gloss{
  position:absolute!important;
  z-index:1!important;
  top:-55%!important;
  left:-78%!important;
  width:48%!important;
  height:215%!important;
  pointer-events:none!important;
  transform:skewX(-24deg)!important;
  background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.18) 18%,rgba(255,255,255,.96) 50%,rgba(255,255,255,.20) 80%,transparent 100%)!important;
  opacity:0!important;
  filter:blur(.2px)!important;
}

#hero_section .hero-call-outline:hover .hero-gloss{
  opacity:1!important;
  animation:ndgHeroGlossReal .72s cubic-bezier(.2,.7,.2,1) forwards!important;
}

#hero_section .hero-call-outline>span:not(.hero-gloss),
#hero_section .hero-call-outline>i{position:relative!important;z-index:2!important;}

@keyframes ndgHeroGlossReal{0%{left:-78%}100%{left:138%}}

/* CTA directly below the blue-dress section: restore the generous source proportion. */

.event-cta-section{
  margin-top:-20px!important;
  padding:0 0 96px!important;
}

.event-cta-card{
  max-width:1180px!important;
  min-height:278px!important;
  padding:58px 64px 66px!important;
  border-radius:28px!important;
  background:#2F6A82!important;
  box-shadow:0 22px 48px rgba(47,106,130,.18)!important;
}

.event-cta-card h2{
  max-width:820px!important;
  margin:0 auto 22px!important;
  font-size:clamp(42px,4vw,58px)!important;
  line-height:1.04!important;
  color:#fff!important;
}

.event-cta-card p{
  max-width:760px!important;
  margin:0 auto!important;
  font-size:18px!important;
  line-height:1.55!important;
  color:rgba(255,255,255,.9)!important;
}

.event-cta-card .event-cta-btn{
  position:absolute!important;
  left:50%!important;
  bottom:-29px!important;
  transform:translateX(-50%)!important;
  min-width:270px!important;
  min-height:62px!important;
  padding:0 34px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:11px!important;
  overflow:hidden!important;
  isolation:isolate!important;
  background:#fff!important;
  border:2px solid #fff!important;
  border-radius:999px!important;
  color:#2F6A82!important;
  font:700 18px/1 'Roboto',sans-serif!important;
  box-shadow:0 12px 28px rgba(6,45,61,.20)!important;
}

.event-cta-card .event-cta-btn:hover{
  background:#f3edf5!important;
  border-color:#f3edf5!important;
  color:#24586d!important;
  transform:translateX(-50%) translateY(-2px)!important;
  box-shadow:0 15px 32px rgba(6,45,61,.24)!important;
}

/* FAQ: visible room between the question row and the answer. */

.cz-faq-item.open .cz-faq-toggle{padding-bottom:30px!important;}

.cz-faq-content p{padding:18px 26px 30px!important;}

/* Home service tab titles: slightly taller and easier to scan. */

#tabs_section .tabs-nav-wrap{min-height:70px!important;}

#tabs_section .tab-btn{
  min-height:70px!important;
  padding:18px 20px!important;
  line-height:1.25!important;
}

/* Contact page: concise conversion area + practical arrival guidance. */

.contact-page-section{padding:72px 0 98px!important;background:#fff!important;}

.contact-page-section>.container-custom{max-width:1360px!important;}

.contact-top-boxes,.contact-inline-socials,.walkin-contact-address{display:none!important;}

.contact-main-grid{display:grid!important;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr)!important;gap:34px!important;align-items:stretch!important;}

.contact-map-wrap{min-height:500px!important;border-radius:26px!important;overflow:hidden!important;box-shadow:0 18px 48px rgba(6,45,61,.08)!important;}

.contact-map-wrap iframe{width:100%!important;height:100%!important;min-height:500px!important;border:0!important;display:block!important;}

.walkin-contact-panel{
  padding:42px!important;
  border-radius:26px!important;
  border:0!important;
  background:#2F6A82!important;
  box-shadow:0 20px 48px rgba(47,106,130,.22)!important;
}

.walkin-contact-kicker{background:#e3d8e7!important;color:#2F6A82!important;}

.walkin-contact-panel .contact-business-name{color:#fff!important;}

.walkin-contact-copy{color:rgba(255,255,255,.88)!important;}

.walkin-contact-hours{background:rgba(255,255,255,.12)!important;color:#fff!important;border:1px solid rgba(255,255,255,.14)!important;}

.walkin-contact-hours i{color:#fff!important;}

.walkin-contact-actions{margin-top:2px!important;}

.walkin-call{background:#fff!important;border-color:#fff!important;color:#2F6A82!important;box-shadow:0 8px 20px rgba(6,45,61,.14)!important;}

.walkin-call:hover{background:#f8fbfc!important;border-color:#fff!important;color:#2F6A82!important;}

.walkin-directions{border-color:rgba(255,255,255,.55)!important;color:#fff!important;background:transparent!important;}

.walkin-directions:hover{border-color:#fff!important;background:rgba(255,255,255,.10)!important;color:#fff!important;}

/* Arrival section: editorial cards with stronger hierarchy and subtle visual flow. */

.contact-access{
  position:relative!important;
  margin-top:64px!important;
  padding:42px!important;
  border-radius:30px!important;
  background:linear-gradient(135deg,#f8f4f8 0%,#f3f8f9 100%)!important;
  overflow:hidden!important;
}

.contact-access::after{
  content:''!important;
  position:absolute!important;
  width:230px!important;
  height:230px!important;
  right:-90px!important;
  top:-100px!important;
  border-radius:50%!important;
  background:rgba(227,216,231,.48)!important;
  pointer-events:none!important;
}

.contact-access__head{position:relative!important;z-index:1!important;max-width:780px!important;margin-bottom:30px!important;}

.contact-access__eyebrow{display:block!important;margin-bottom:12px!important;color:#2F6A82!important;font:700 11px/1.2 'Roboto',sans-serif!important;letter-spacing:.14em!important;text-transform:uppercase!important;}

.contact-access__head h2{margin:0 0 14px!important;color:#062D3D!important;font-family:'Abril Fatface',Georgia,serif!important;font-size:clamp(36px,3.2vw,50px)!important;line-height:1.04!important;text-wrap:balance!important;}

.contact-access__head p{margin:0!important;color:#626a6e!important;font-size:16.5px!important;line-height:1.68!important;}

.contact-access__grid{position:relative!important;z-index:1!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:20px!important;}

.contact-access__card{
  position:relative!important;
  padding:28px 26px 30px!important;
  border:1px solid rgba(47,106,130,.12)!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.92)!important;
  box-shadow:0 12px 30px rgba(6,45,61,.05)!important;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease!important;
}

.contact-access__card:hover{transform:translateY(-3px)!important;border-color:rgba(47,106,130,.28)!important;box-shadow:0 18px 36px rgba(6,45,61,.08)!important;}

.contact-access__icon{width:48px!important;height:48px!important;margin-bottom:20px!important;border-radius:16px!important;display:grid!important;place-items:center!important;background:#e3d8e7!important;color:#2F6A82!important;font-size:19px!important;}

.contact-access__card h3{margin:0 0 11px!important;color:#062D3D!important;font-size:20px!important;line-height:1.25!important;}

.contact-access__card p{margin:0!important;color:#5d6569!important;font-size:14.7px!important;line-height:1.68!important;}

.contact-access__card a{display:inline!important;color:#2F6A82!important;font-weight:700!important;text-underline-offset:3px!important;}

.contact-access__note{position:relative!important;z-index:1!important;margin:18px 0 0!important;color:#7a8083!important;font-size:12.5px!important;line-height:1.5!important;}

@media(max-width:980px){
  .contact-main-grid{grid-template-columns:1fr!important;}
  .contact-map-wrap,.contact-map-wrap iframe{min-height:380px!important;}
  .contact-access__grid{grid-template-columns:1fr!important;}
  .event-cta-card{max-width:88vw!important;}
}

@media(max-width:700px){
  #hero_section .hero-title-main{font-size:clamp(60px,17.5vw,78px)!important;}
  #hero_section .hero-title-sub{font-size:clamp(27px,7.4vw,36px)!important;}
  #hero_section .hero-description{font-size:15.5px!important;}
  .contact-page-section{padding:50px 0 72px!important;}
  .walkin-contact-panel{padding:30px 24px!important;}
  .contact-map-wrap,.contact-map-wrap iframe{min-height:320px!important;}
  .contact-access{margin-top:40px!important;padding:28px 22px!important;border-radius:24px!important;}
  .contact-access__head h2{font-size:36px!important;}
  .cz-faq-item.open .cz-faq-toggle{padding-bottom:24px!important;}
  .cz-faq-content p{padding:16px 18px 24px!important;}
  #tabs_section .tabs-nav-wrap{min-height:0!important;}
  #tabs_section .tab-btn{min-height:62px!important;padding:16px 18px!important;}
  .event-cta-section{padding-bottom:82px!important;}
  .event-cta-card{max-width:92vw!important;min-height:250px!important;padding:44px 24px 58px!important;}
  .event-cta-card h2{font-size:34px!important;}
  .event-cta-card p{font-size:16px!important;}
  .event-cta-card .event-cta-btn{min-width:230px!important;min-height:56px!important;bottom:-27px!important;font-size:16px!important;}
}

@media(prefers-reduced-motion:reduce){
  #hero_section .hero-call-outline:hover .hero-gloss{animation:none!important;opacity:.35!important;left:32%!important;}
  .contact-access__card{transition:none!important;}
}


/* ===== from css/ux-polish-20260826.css ===== */

/* Final UX polish: mobile-first hero, status chips, heading wrapping. Footer untouched. */

/* Prevent awkward one-word final lines across editorial/service headings. */

:is(h1,h2,h3,.experience-heading,.event-heading,.elena-heading,.gallery-heading,.article-hero h1,.service-local-intro h2,.faq-intro h2,.contact-access__head h2,.service-process h2){
  text-wrap:balance!important;
}

.service-local-intro .experience-heading{
  max-width:1050px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  font-size:clamp(40px,3.75vw,58px)!important;
  line-height:1.06!important;
}

/* Hero conversion hierarchy: compact Call, lighter location action. */

#hero_section .hero-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex-wrap:wrap!important;
  width:auto!important;
  gap:12px!important;
}

#hero_section .hero-actions .hero-call-outline{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:142px!important;
  min-height:56px!important;
  padding:0 22px!important;
  background:#2F6A82!important;
  color:#fff!important;
  border:2px solid #2F6A82!important;
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate!important;
}

html[lang^="fr"] #hero_section .hero-actions .hero-call-outline{min-width:154px!important;}

#hero_section .hero-secondary-cta{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:168px!important;
  min-height:50px!important;
  padding:0 20px!important;
}

/* Real gloss layer. JS retriggers it on every hover/focus. */

#hero_section .hero-call-outline .hero-gloss{
  display:block!important;
  position:absolute!important;
  z-index:1!important;
  inset:-55% auto -55% -48%!important;
  width:34%!important;
  pointer-events:none!important;
  opacity:0!important;
  transform:skewX(-22deg) translateX(-260%)!important;
  background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.30) 24%,rgba(255,255,255,.98) 50%,rgba(255,255,255,.28) 76%,transparent 100%)!important;
  filter:blur(.2px)!important;
}

#hero_section .hero-call-outline.is-shining .hero-gloss{
  opacity:1!important;
  animation:ndgRealButtonShine .72s cubic-bezier(.2,.72,.2,1) forwards!important;
}

#hero_section .hero-call-outline>i,
#hero_section .hero-call-outline>span:not(.hero-gloss){position:relative!important;z-index:2!important;}

@keyframes ndgRealButtonShine{
  0%{transform:skewX(-22deg) translateX(-260%)}
  100%{transform:skewX(-22deg) translateX(790%)}
}

/* Visit status: date is quiet context; status + walk-in are the scannable signals. */

#hero_section .hero-walkin-status{
  width:auto!important;
  margin-top:17px!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  font-size:12.5px!important;
}

#hero_section .hero-walkin-divider{display:none!important;}

#hero_section .hero-walkin-date{
  min-height:32px!important;
  padding:0 4px 0 0!important;
  display:inline-flex!important;
  align-items:center!important;
  color:#394a51!important;
  font-weight:700!important;
  white-space:nowrap!important;
}

#hero_section .hero-walkin-state,
#hero_section .hero-walkin-note{
  min-height:34px!important;
  padding:0 12px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid rgba(47,106,130,.15)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.82)!important;
  box-shadow:0 6px 18px rgba(6,45,61,.045)!important;
  white-space:nowrap!important;
}

#hero_section .hero-walkin-state{color:#5c6468!important;font-weight:800!important;}

#hero_section .hero-walkin-state::before{
  content:'';
  width:7px;
  height:7px;
  margin-right:7px;
  border-radius:50%;
  background:#8e969a;
  box-shadow:0 0 0 4px rgba(142,150,154,.10);
}

#hero_section .hero-walkin-status.is-open .hero-walkin-state{
  color:#2F6A82!important;
  border-color:rgba(47,106,130,.24)!important;
  background:rgba(241,248,249,.92)!important;
}

#hero_section .hero-walkin-status.is-open .hero-walkin-state::before{
  background:#2F6A82!important;
  box-shadow:0 0 0 4px rgba(47,106,130,.10)!important;
}

#hero_section .hero-walkin-note{
  color:#2F6A82!important;
  font-weight:750!important;
  background:rgba(244,238,246,.9)!important;
}

#hero_section .hero-walkin-note::before{content:'✓';margin-right:7px;font-weight:900;}

/* Homepage map: branded facade keeps the page fast and never shows a blank embed. */

#map_section>.map-card-floating{display:none!important;}

.home-map-frame{position:relative!important;width:100%!important;min-height:410px!important;background:#f4f7f8!important;overflow:hidden!important;}

.home-map-loading{
  position:absolute!important;
  inset:0!important;
  z-index:2!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  padding:28px!important;
  text-align:center!important;
  background:linear-gradient(135deg,#f7f3f8 0%,#eef5f6 100%)!important;
  color:#526067!important;
  transition:opacity .25s ease,visibility .25s ease!important;
}

.home-map-loading i{font-size:25px!important;color:#2F6A82!important;margin-bottom:4px!important;}

.home-map-loading strong{font:700 18px/1.25 'Roboto',sans-serif!important;color:#062D3D!important;}

.home-map-loading span{font:400 14px/1.45 'Roboto',sans-serif!important;}

.home-map-load-button{
  margin-top:10px!important;
  min-height:44px!important;
  padding:0 18px!important;
  border:1px solid #2F6A82!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#2F6A82!important;
  font:700 14px/1 'Roboto',sans-serif!important;
  cursor:pointer!important;
}

.home-map-frame.is-map-ready .home-map-loading{opacity:0!important;visibility:hidden!important;}

.home-map-frame iframe{position:relative!important;z-index:1!important;width:100%!important;min-height:410px!important;border:0!important;display:block!important;}

.home-map-directions{z-index:4!important;}

@media(max-width:700px){
  .service-local-intro .experience-heading{font-size:clamp(36px,9.2vw,46px)!important;max-width:94%!important;}

  /* Keep the hero actions compact on phones instead of stretching into oversized pills. */
  #hero_section .hero-actions{
    width:auto!important;
    max-width:100%!important;
    gap:9px!important;
    flex-wrap:nowrap!important;
  }
  #hero_section .hero-actions .hero-call-outline{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:126px!important;
    min-height:50px!important;
    padding:0 17px!important;
    font-size:14px!important;
  }
  html[lang^="fr"] #hero_section .hero-actions .hero-call-outline{min-width:138px!important;}
  #hero_section .hero-secondary-cta{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:148px!important;
    min-height:48px!important;
    padding:0 15px!important;
    font-size:14px!important;
  }

  /* Clear mobile status hierarchy: date, then availability, then walk-in note. */
  #hero_section .hero-walkin-status{
    width:100%!important;
    margin-top:18px!important;
    display:flex!important;
    align-items:center!important;
    flex-wrap:wrap!important;
    gap:8px!important;
  }
  #hero_section .hero-walkin-date{
    flex:0 0 100%!important;
    width:100%!important;
    min-height:auto!important;
    padding:0 0 3px!important;
    justify-content:flex-start!important;
    font-size:12px!important;
  }
  #hero_section .hero-walkin-state{
    flex:1 1 210px!important;
    width:auto!important;
    min-width:0!important;
    min-height:38px!important;
    padding:0 12px!important;
    font-size:11.5px!important;
  }
  #hero_section .hero-walkin-note{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:132px!important;
    min-height:38px!important;
    padding:0 12px!important;
    font-size:11.5px!important;
  }

  /* The service cards should not crash into the live-status row. */
  #service_cards_section.service-cards-section{
    margin-top:0!important;
    padding-top:34px!important;
  }

  .home-map-frame,.home-map-frame iframe{min-height:320px!important;}
}

@media(max-width:520px){
  #hero_section .hero-walkin-state{flex:1 1 100%!important;}
  #hero_section .hero-walkin-note{flex:0 0 auto!important;}
}

@media(max-width:360px){
  #hero_section .hero-actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important;}
  #hero_section .hero-actions .hero-call-outline,
  #hero_section .hero-secondary-cta{width:100%!important;min-width:0!important;}
}

@media(prefers-reduced-motion:reduce){
  #hero_section .hero-call-outline.is-shining .hero-gloss{animation:none!important;opacity:.28!important;transform:skewX(-22deg) translateX(330%)!important;}
  .home-map-loading{transition:none!important;}
}


/* ===== from css/mobile-qa-20260826.css ===== */

/* Mobile QA pass. Loaded last. Footer intentionally untouched. */

/* English hero needs the same visual authority as French. */

html[lang^="en"] #hero_section .hero-title-main{
  font-size:clamp(96px,7.6vw,132px)!important;
  line-height:.86!important;
}

/* Carousel: more room both before and after the heading. */

#gallery_section.gallery-section{padding-top:102px!important;}

#gallery_section .gallery-heading{margin:0 0 50px!important;}

/* About values: real editorial cards rather than blank placeholders. */

.about-values-section{padding:84px 0 96px!important;background:linear-gradient(180deg,#fbfbfb 0%,#f6f8f8 100%)!important;}

.about-values-head{max-width:760px!important;margin:0 auto 54px!important;text-align:center!important;}

.about-values-head h2{margin:0 0 14px!important;font-family:'Abril Fatface',Georgia,serif!important;font-size:clamp(40px,3.4vw,56px)!important;line-height:1.04!important;color:#062D3D!important;text-wrap:balance!important;}

.about-values-head p{margin:0!important;color:#666!important;font-size:17px!important;line-height:1.65!important;}

.about-values-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:26px!important;}

.about-value-card{position:relative!important;overflow:hidden!important;min-height:300px!important;padding:34px 32px!important;border:1px solid rgba(47,106,130,.10)!important;border-radius:24px!important;background:#fff!important;box-shadow:0 18px 44px rgba(6,45,61,.06)!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;}

.about-value-card::after{content:'';position:absolute;right:-48px;bottom:-62px;width:160px;height:160px;border-radius:50%;background:rgba(227,216,231,.34)!important;}

.about-value-icon{position:relative!important;z-index:1!important;width:58px!important;height:58px!important;margin-bottom:28px!important;border-radius:18px!important;display:grid!important;place-items:center!important;background:#f3edf5!important;color:#2F6A82!important;font-size:23px!important;}

.about-value-card h3{position:relative!important;z-index:1!important;margin:0 0 16px!important;font-family:'Abril Fatface',Georgia,serif!important;font-size:28px!important;line-height:1.08!important;color:#062D3D!important;text-wrap:balance!important;}

.about-value-card p{position:relative!important;z-index:1!important;margin:0!important;color:#626a6e!important;font-size:16px!important;line-height:1.7!important;}

/* Services hub: make the final feature band feel finished. */

.service-feature-band{margin-top:72px!important;display:grid!important;grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr)!important;min-height:520px!important;overflow:hidden!important;border:1px solid rgba(47,106,130,.10)!important;border-radius:30px!important;background:linear-gradient(135deg,#f4edf5 0%,#f8f4f8 100%)!important;box-shadow:0 22px 58px rgba(6,45,61,.08)!important;}

.service-feature-copy{padding:58px 54px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;}

.service-feature-copy::before{content:'CUSTOM WORK';margin-bottom:18px!important;color:#2F6A82!important;font:700 11px/1.2 'Roboto',sans-serif!important;letter-spacing:.15em!important;}

html[lang^="fr"] .service-feature-copy::before{content:'CRÉATION PERSONNALISÉE';}

.service-feature-copy h2{margin:0 0 22px!important;font-family:'Abril Fatface',Georgia,serif!important;font-size:clamp(38px,3.2vw,54px)!important;line-height:1.02!important;color:#062D3D!important;text-wrap:balance!important;}

.service-feature-copy p{margin:0 0 30px!important;max-width:620px!important;color:#5c6468!important;font-size:17px!important;line-height:1.72!important;}

.service-feature-copy .btn-gallery-book{min-height:52px!important;padding:0 24px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:999px!important;}

.service-feature-band>img{width:100%!important;height:100%!important;min-height:520px!important;object-fit:cover!important;display:block!important;}

/* Shared mobile safety. */

html,body{max-width:100%;overflow-x:hidden;}

img,iframe{max-width:100%;}

.internal-page-hero__rail,.service-local-intro,.tab-content-grid,.service-process,.related-services,.article-body-wrap,.faq-main-grid,.contact-main-grid,.contact-access{min-width:0!important;}

.event-mobile-media{display:none!important;}

@media(max-width:700px){
  /* Hero typography.
     Real bug found in the 2026-09 mobile audit: this selector (with the
     html[lang^=...] attribute) has higher specificity than every other
     #hero_section .hero-title-main rule in the file, including the
     max-width:52%/54% rules a few thousand lines up -- so THIS rule's
     font-size always won at every phone width, but it never set its own
     max-width, leaving that 52-54% column in place underneath a
     70-86px viewport-scaled font. Result: "Couture" alone didn't fit a
     ~180px column, so "sur mesure" wrapped into 3 ragged lines (FR), and
     on EN "Custom"/"tailoring" just overflowed straight past the column
     edge instead of wrapping (word-break stayed "normal", so neither
     word could break internally to fit). Fixed with a real (not vw-
     scaled) size + a matching width, checked down to a 320px viewport
     for both languages -- clean 2 lines, no overflow, no cramped 3rd/4th
     line, still with clear room for the portrait photo on the right. */
  html[lang^="en"] #hero_section .hero-title-main,
  html[lang^="fr"] #hero_section .hero-title-main{
    font-size:40px!important;
    max-width:72%!important;
    line-height:.95!important;
    letter-spacing:-.025em!important;
  }
  #hero_section .hero-content-wrap{max-width:100%!important;}
  #hero_section .hero-title-sub{max-width:94%!important;line-height:1.08!important;font-size:clamp(34px,8vw,44px)!important;}
  #hero_section .hero-description{max-width:96%!important;line-height:1.52!important;font-size:16px!important;}

  /* Primary Call stays shorter and stronger than the secondary location CTA. */
  #hero_section .hero-actions{width:100%!important;display:flex!important;align-items:center!important;gap:10px!important;margin-top:26px!important;}
  #hero_section .hero-actions .hero-call-outline{width:auto!important;min-width:138px!important;min-height:52px!important;padding:0 20px!important;font-size:16px!important;}
  html[lang^="fr"] #hero_section .hero-actions .hero-call-outline{min-width:146px!important;}
  #hero_section .hero-secondary-cta{width:auto!important;min-width:184px!important;min-height:50px!important;padding:0 18px!important;font-size:15px!important;}

  /* One intentional visit-status card instead of abandoned pills. */
  #hero_section .hero-walkin-status{
    width:100%!important;
    margin-top:22px!important;
    padding:8px 16px!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    border:1px solid rgba(47,106,130,.14)!important;
    border-radius:20px!important;
    background:rgba(255,255,255,.86)!important;
    box-shadow:0 12px 30px rgba(6,45,61,.08)!important;
    backdrop-filter:blur(10px)!important;
  }
  #hero_section .hero-walkin-divider{display:none!important;}
  #hero_section .hero-walkin-date,
  #hero_section .hero-walkin-state,
  #hero_section .hero-walkin-note{
    position:relative!important;
    width:100%!important;
    min-height:52px!important;
    padding:8px 0 8px 92px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#3e4a4f!important;
    white-space:normal!important;
    font-size:13.5px!important;
    font-weight:700!important;
    line-height:1.35!important;
  }
  #hero_section .hero-walkin-date,
  #hero_section .hero-walkin-state{border-bottom:1px solid rgba(47,106,130,.10)!important;}
  #hero_section .hero-walkin-date::before,
  #hero_section .hero-walkin-state::before,
  #hero_section .hero-walkin-note::before{
    position:absolute!important;left:0!important;top:50%!important;transform:translateY(-50%)!important;width:72px!important;margin:0!important;color:#2F6A82!important;background:none!important;box-shadow:none!important;border-radius:0!important;font-size:11px!important;font-weight:800!important;letter-spacing:.08em!important;text-transform:uppercase!important;
  }
  html[lang^="en"] #hero_section .hero-walkin-date::before{content:'Today'!important;}
  html[lang^="en"] #hero_section .hero-walkin-state::before{content:'Hours'!important;}
  html[lang^="en"] #hero_section .hero-walkin-note::before{content:'Visit'!important;}
  html[lang^="fr"] #hero_section .hero-walkin-date::before{content:'Aujourd’hui'!important;}
  html[lang^="fr"] #hero_section .hero-walkin-state::before{content:'Heures'!important;}
  html[lang^="fr"] #hero_section .hero-walkin-note::before{content:'Visite'!important;}
  #hero_section .hero-walkin-status.is-open .hero-walkin-state{color:#2F6A82!important;}
  #hero_section .hero-walkin-note{color:#2F6A82!important;}

  /* Blue dress: real mobile media element, no giant empty cream area. */
  #event_details_section.event-details-section{
    min-height:0!important;
    padding:62px 0 0!important;
    margin:0!important;
    background:#f3e8dc!important;
    background-image:none!important;
    overflow:hidden!important;
  }
  #event_details_section .event-details-content{width:100%!important;max-width:none!important;padding-bottom:46px!important;}
  #event_details_section .event-subtitle{margin-bottom:18px!important;font-size:14px!important;line-height:1.35!important;}
  #event_details_section .event-heading{max-width:100%!important;margin-bottom:22px!important;font-size:clamp(36px,10vw,46px)!important;line-height:1.01!important;text-wrap:balance!important;}
  #event_details_section .event-text{max-width:100%!important;margin-bottom:26px!important;font-size:16px!important;line-height:1.62!important;}
  #event_details_section .event-bullets{gap:14px!important;margin-bottom:0!important;}
  #event_details_section .event-bullet-text{font-size:15.5px!important;line-height:1.42!important;}
  #event_details_section.event-details-section::before,#event_details_section.event-details-section::after{height:20px!important;}
  .event-mobile-media{display:block!important;width:100%!important;height:360px!important;margin-top:0!important;overflow:hidden!important;}
  .event-mobile-media img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 44%!important;}

  /* CTA after blue dress. */
  .event-cta-section{margin-top:0!important;padding:42px 0 86px!important;}
  .event-cta-card{width:calc(100% - 36px)!important;max-width:none!important;min-height:0!important;margin:0 auto!important;padding:44px 22px 56px!important;border-radius:24px!important;}
  .event-cta-card h2{max-width:100%!important;font-size:clamp(36px,9.8vw,44px)!important;line-height:1.03!important;text-wrap:balance!important;}
  .event-cta-card p{max-width:100%!important;font-size:16px!important;line-height:1.55!important;}
  .event-cta-card .event-cta-btn{min-width:200px!important;min-height:54px!important;bottom:-26px!important;font-size:16px!important;}

  /* Carousel: requested extra space under the heading. */
  #gallery_section.gallery-section{padding-top:78px!important;}
  #gallery_section .gallery-heading{margin-bottom:48px!important;}

  /* Home tabs. */
  #tabs_section .tab-content-grid{grid-template-columns:1fr!important;gap:28px!important;padding:22px!important;}
  #tabs_section .tab-img-side{display:block!important;width:100%!important;}
  #tabs_section .tab-img-side img{display:block!important;width:100%!important;height:340px!important;min-height:0!important;object-fit:cover!important;border-radius:16px!important;}
  #tabs_section .tab-text-side h3{font-size:clamp(31px,8.7vw,38px)!important;text-wrap:balance!important;}

  /* About values. */
  .about-values-section{padding:64px 0 76px!important;}
  .about-values-head{width:calc(100% - 36px)!important;margin-bottom:34px!important;}
  .about-values-head h2{font-size:clamp(38px,10.4vw,46px)!important;}
  .about-values-head p{font-size:16px!important;}
  .about-values-grid{grid-template-columns:1fr!important;gap:16px!important;width:calc(100% - 36px)!important;margin:0 auto!important;}
  .about-value-card{min-height:0!important;padding:26px 24px 28px!important;border-radius:20px!important;}
  .about-value-icon{width:52px!important;height:52px!important;margin-bottom:20px!important;font-size:20px!important;}
  .about-value-card h3{font-size:27px!important;margin-bottom:12px!important;}
  .about-value-card p{font-size:15.5px!important;line-height:1.65!important;}

  /* Services hub final feature. */
  .service-feature-band{margin-top:52px!important;grid-template-columns:1fr!important;min-height:0!important;border-radius:24px!important;}
  .service-feature-copy{padding:38px 24px 34px!important;}
  .service-feature-copy h2{font-size:clamp(36px,10vw,44px)!important;}
  .service-feature-copy p{font-size:16px!important;line-height:1.65!important;}
  .service-feature-band>img{order:-1!important;height:300px!important;min-height:300px!important;object-position:center 34%!important;}
  .service-feature-copy .btn-gallery-book{width:100%!important;min-height:52px!important;text-align:center!important;}

  /* Shared internal/service pages. */
  .internal-page-hero__rail{width:calc(100% - 36px)!important;padding:34px 0 38px!important;}
  .internal-page-hero h1{font-size:clamp(40px,11vw,52px)!important;text-wrap:balance!important;}
  .service-local-intro{margin-bottom:34px!important;}
  .service-local-intro .experience-heading{font-size:clamp(36px,9.4vw,46px)!important;line-height:1.06!important;text-wrap:balance!important;}
  .service-process{margin-top:58px!important;}
  .service-process>h2,.related-services>h2{font-size:clamp(34px,9.4vw,44px)!important;line-height:1.04!important;text-wrap:balance!important;margin-bottom:28px!important;}
  .service-process-grid,.related-services-grid{grid-template-columns:1fr!important;gap:16px!important;}
  .service-process-card,.related-service-card{min-width:0!important;padding:24px!important;border-radius:20px!important;}
  .related-services{margin-top:62px!important;padding-top:46px!important;border-top:1px solid rgba(47,106,130,.10)!important;}
  .related-service-card{position:relative!important;padding-right:52px!important;}
  .related-service-card::after{content:'→';position:absolute;right:22px;top:22px;color:#2F6A82;font-size:20px;font-weight:700;}
  .faq-main-grid{grid-template-columns:1fr!important;}
  .article-body-wrap{grid-template-columns:1fr!important;gap:38px!important;}
  .article-media img{height:62vw!important;min-height:240px!important;}

  /* Major section spacing. */
  #service_cards_section.service-cards-section{padding-top:56px!important;padding-bottom:82px!important;}
  #experience_section.home-source-about{padding-top:82px!important;padding-bottom:88px!important;}
  #elena_section.elena-section{padding-top:82px!important;padding-bottom:88px!important;}
}

@media(max-width:430px){
  #hero_section .hero-actions{gap:8px!important;}
  #hero_section .hero-actions .hero-call-outline{min-width:126px!important;padding:0 16px!important;}
  html[lang^="fr"] #hero_section .hero-actions .hero-call-outline{min-width:136px!important;}
  #hero_section .hero-secondary-cta{min-width:0!important;flex:1 1 auto!important;padding:0 14px!important;}
  .event-mobile-media{height:320px!important;}
  #tabs_section .tab-img-side img{height:310px!important;}
  .event-cta-card{width:calc(100% - 28px)!important;padding-left:20px!important;padding-right:20px!important;}
}

@media(max-width:360px){
  #hero_section .hero-actions{display:grid!important;grid-template-columns:1fr!important;}
  #hero_section .hero-actions .hero-call-outline,#hero_section .hero-secondary-cta{width:100%!important;min-width:0!important;}
}


/* ===== from css/qa-final-20260827.css ===== */

/* Final QA overrides after visual review. Footer intentionally untouched. */

/* FAQ: clear breathing room between the question row and the answer. */

.cz-faq-item.open .cz-faq-toggle{padding-bottom:28px!important;}

.cz-faq-content p{padding:18px 26px 28px!important;}

/* Carousel: centered, intentionally narrow enough to return to the original two-line heading. */

#gallery_section .gallery-heading{
  width:100%!important;
  max-width:660px!important;
  margin:0 auto 54px!important;
  text-align:center!important;
  justify-content:center!important;
  text-wrap:balance!important;
}

#gallery_section .gallery-heading *{text-align:center!important;}

/* Do not add a new section heading above the four source service cards. */

.hero-features-heading{display:none!important;}

#service_cards_section.service-cards-section{padding-top:62px!important;}

#service_cards_section .service-card-title{
  font-size:clamp(27px,1.75vw,32px)!important;
  line-height:1.08!important;
  text-wrap:balance!important;
}

/* Homepage service cards: subtle lift only. Keep text and icons readable on hover. */

#service_cards_section .service-card{
  transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease,border-color .28s ease,background .28s ease!important;
}

#service_cards_section .service-card:hover{
  transform:translateY(-5px)!important;
  background:linear-gradient(180deg,#fff 0%,#fbf8fc 100%)!important;
  border-color:rgba(47,106,130,.20)!important;
  box-shadow:0 20px 42px rgba(6,45,61,.09)!important;
}

#service_cards_section .service-card:hover .service-card-title{color:#062D3D!important;}

#service_cards_section .service-card:hover .service-card-desc{color:#666!important;}

#service_cards_section .service-card:hover .service-card-btn{color:#2F6A82!important;background:#e3d8e7!important;}

#service_cards_section .service-card:hover .service-icon-main{opacity:1!important;visibility:visible!important;transform:none!important;}

/* Primary hero CTA: natural, compact width. */

#hero_section .hero-actions .hero-call-outline,
#hero_section #btn_hero_call{
  flex:0 0 auto!important;
  width:max-content!important;
  min-width:0!important;
  max-width:none!important;
  min-height:54px!important;
  padding:0 20px!important;
}

html[lang^="fr"] #hero_section .hero-actions .hero-call-outline,
html[lang^="fr"] #hero_section #btn_hero_call{padding-left:21px!important;padding-right:21px!important;}

/* Desktop hero status: one translucent information bar. */

#hero_section .hero-walkin-status{
  width:max-content!important;
  max-width:100%!important;
  margin-top:20px!important;
  padding:7px 10px!important;
  display:flex!important;
  align-items:center!important;
  gap:0!important;
  border:1px solid rgba(47,106,130,.13)!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.66)!important;
  box-shadow:0 10px 26px rgba(6,45,61,.055)!important;
  -webkit-backdrop-filter:blur(13px)!important;
  backdrop-filter:blur(13px)!important;
}

#hero_section .hero-walkin-date,
#hero_section .hero-walkin-state,
#hero_section .hero-walkin-note{
  min-height:38px!important;
  padding:0 15px!important;
  display:inline-flex!important;
  align-items:center!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  color:#3e4a4f!important;
  font-size:13px!important;
  font-weight:700!important;
  white-space:nowrap!important;
}

#hero_section .hero-walkin-state{color:#5b6569!important;}

#hero_section .hero-walkin-note{color:#2F6A82!important;}

#hero_section .hero-walkin-divider{
  display:block!important;
  width:1px!important;
  height:22px!important;
  margin:0!important;
  background:rgba(47,106,130,.16)!important;
}

#hero_section .hero-walkin-status.is-open .hero-walkin-state{color:#2F6A82!important;}

/* About image must always render; use a guaranteed local fallback background if its photo cannot load. */

.about-image-stage{
  display:block!important;
  min-height:520px!important;
  overflow:hidden!important;
  border-radius:24px!important;
  background:url('/assets/NDG_professional-tailor-montreal2.jpg') center 22%/cover no-repeat!important;
}

.about-image-stage>img{display:block!important;width:100%!important;height:100%!important;min-height:520px!important;object-fit:cover!important;}

/* About value cards: modern motion without gimmicks. */

.about-value-card{
  transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease,border-color .3s ease,background .3s ease!important;
}

.about-value-icon{transition:transform .3s cubic-bezier(.2,.7,.2,1),background .3s ease,color .3s ease!important;}

.about-value-card:hover{
  transform:translateY(-7px)!important;
  border-color:rgba(47,106,130,.24)!important;
  background:linear-gradient(180deg,#fff 0%,#fbf7fc 100%)!important;
  box-shadow:0 26px 54px rgba(6,45,61,.11)!important;
}

.about-value-card:hover .about-value-icon{
  transform:translateY(-2px) rotate(-3deg) scale(1.06)!important;
  background:#e8deeb!important;
  color:#245d73!important;
}

/* Services hub/detail images: force media to remain visible. */

.service-hub-grid .service-card img,
.tab-content-grid .tab-img-side img,
.service-feature-band>img{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
}

.service-hub-grid .service-card{overflow:hidden!important;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease,background .28s ease!important;}

.service-hub-grid .service-card:hover{
  transform:translateY(-4px)!important;
  background:linear-gradient(180deg,#fff 0%,#fbf8fc 100%)!important;
  border-color:rgba(47,106,130,.20)!important;
  box-shadow:0 18px 38px rgba(6,45,61,.08)!important;
}

.service-hub-grid .service-card:hover .service-card-title{color:#062D3D!important;}

.service-hub-grid .service-card:hover .service-card-desc{color:#646c70!important;}

.service-hub-grid .service-card:hover .service-card-btn{color:#2F6A82!important;background:#e3d8e7!important;}

.service-hub-grid .service-card img{transition:transform .45s cubic-bezier(.2,.7,.2,1)!important;}

.service-hub-grid .service-card:hover img{transform:scale(1.02)!important;}

/* Service detail closing sections. */

.service-process{margin-top:76px!important;padding:54px 0 0!important;border-top:1px solid rgba(47,106,130,.10)!important;}

.service-process>h2,.related-services>h2{margin:0 0 34px!important;font-family:'Abril Fatface',Georgia,serif!important;font-size:clamp(36px,3.1vw,50px)!important;line-height:1.05!important;color:#062D3D!important;text-wrap:balance!important;}

.service-process-grid{gap:22px!important;}

.service-process-card{padding:30px!important;border:1px solid rgba(47,106,130,.10)!important;border-radius:22px!important;background:linear-gradient(180deg,#fff 0%,#faf8fb 100%)!important;box-shadow:0 14px 34px rgba(6,45,61,.05)!important;}

.service-process-card>strong{display:inline-flex!important;margin-bottom:18px!important;padding:7px 10px!important;border-radius:999px!important;background:#f2ebf4!important;color:#2F6A82!important;font-size:11px!important;letter-spacing:.08em!important;text-transform:uppercase!important;}

.service-process-card h3{margin:0 0 12px!important;color:#062D3D!important;text-wrap:balance!important;}

.related-services{margin-top:78px!important;padding-top:54px!important;border-top:1px solid rgba(47,106,130,.10)!important;}

.related-services-grid{gap:18px!important;}

.related-service-card{position:relative!important;min-height:170px!important;padding:28px 52px 28px 28px!important;border:1px solid rgba(47,106,130,.10)!important;border-radius:20px!important;background:#fff!important;box-shadow:0 12px 30px rgba(6,45,61,.04)!important;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease!important;}

.related-service-card::after{content:'→';position:absolute;right:24px;top:26px;color:#2F6A82;font-size:20px;font-weight:700;}

.related-service-card:hover{transform:translateY(-3px)!important;border-color:rgba(47,106,130,.26)!important;box-shadow:0 16px 34px rgba(6,45,61,.08)!important;}

.related-service-card h3{margin:0 0 10px!important;color:#062D3D!important;text-wrap:balance!important;}

.related-service-card p{margin:0!important;color:#646c70!important;line-height:1.6!important;}

@media(max-width:700px){
  .cz-faq-item.open .cz-faq-toggle{padding-bottom:24px!important;}
  .cz-faq-content p{padding:16px 18px 24px!important;}
  .service-process{margin-top:58px!important;padding-top:42px!important;}
  .related-services{margin-top:62px!important;padding-top:44px!important;}

  /* Hero title stays clear of the model's face. */
  #hero_section .hero-title-main{
    max-width:72vw!important;
    font-size:clamp(54px,14vw,64px)!important;
    line-height:.88!important;
    letter-spacing:-.025em!important;
  }
  #hero_section .hero-title-sub{
    max-width:74vw!important;
    font-size:clamp(29px,7.4vw,34px)!important;
    line-height:1.08!important;
  }
  #hero_section .hero-description{max-width:92%!important;font-size:15.5px!important;line-height:1.5!important;}

  /* Compact CTA hierarchy. */
  #hero_section .hero-actions{gap:9px!important;margin-top:24px!important;flex-wrap:nowrap!important;}
  #hero_section .hero-actions #btn_hero_call{
    width:max-content!important;
    min-width:0!important;
    min-height:48px!important;
    padding:0 15px!important;
    font-size:14px!important;
  }
  #hero_section .hero-secondary-cta{min-width:0!important;width:max-content!important;min-height:48px!important;padding:0 16px!important;font-size:14px!important;}

  /* Mobile status: translucent three-row card. */
  #hero_section .hero-walkin-status{
    width:100%!important;
    margin-top:20px!important;
    padding:5px 15px!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    border-radius:18px!important;
    background:rgba(255,255,255,.68)!important;
    -webkit-backdrop-filter:blur(13px)!important;
    backdrop-filter:blur(13px)!important;
  }
  #hero_section .hero-walkin-divider{display:none!important;}
  #hero_section .hero-walkin-date,
  #hero_section .hero-walkin-state,
  #hero_section .hero-walkin-note{
    width:100%!important;
    min-height:46px!important;
    padding:0 0 0 86px!important;
    position:relative!important;
    white-space:normal!important;
    font-size:12.5px!important;
    line-height:1.3!important;
  }
  #hero_section .hero-walkin-date,
  #hero_section .hero-walkin-state{border-bottom:1px solid rgba(47,106,130,.10)!important;}
  #hero_section .hero-walkin-date::before,
  #hero_section .hero-walkin-state::before,
  #hero_section .hero-walkin-note::before{
    position:absolute!important;left:0!important;top:50%!important;transform:translateY(-50%)!important;width:70px!important;color:#2F6A82!important;font-size:10px!important;font-weight:800!important;letter-spacing:.07em!important;text-transform:uppercase!important;
  }
  html[lang^="en"] #hero_section .hero-walkin-date::before{content:'Today'!important;}
  html[lang^="en"] #hero_section .hero-walkin-state::before{content:'Hours'!important;}
  html[lang^="en"] #hero_section .hero-walkin-note::before{content:'Visit'!important;}
  html[lang^="fr"] #hero_section .hero-walkin-date::before{content:'Aujourd’hui'!important;}
  html[lang^="fr"] #hero_section .hero-walkin-state::before{content:'Heures'!important;}
  html[lang^="fr"] #hero_section .hero-walkin-note::before{content:'Visite'!important;}

  /* Original four cards remain directly under hero; only their headings are larger. */
  #service_cards_section.service-cards-section{padding-top:52px!important;}
  #service_cards_section .service-card-title{font-size:clamp(22px,6.2vw,27px)!important;}

  /* Homepage tab navigation. */
  #tabs_section .tabs-nav-wrap{width:100%!important;display:flex!important;flex-wrap:nowrap!important;gap:8px!important;margin:0 0 24px!important;padding:4px 18px 8px!important;overflow-x:auto!important;overflow-y:hidden!important;background:transparent!important;border:0!important;border-radius:0!important;scrollbar-width:none!important;-webkit-overflow-scrolling:touch!important;}
  #tabs_section .tabs-nav-wrap::-webkit-scrollbar{display:none!important;}
  #tabs_section .tab-btn{flex:0 0 auto!important;width:auto!important;min-width:0!important;min-height:48px!important;padding:0 17px!important;border:1px solid rgba(47,106,130,.13)!important;border-radius:999px!important;background:#f2ebf4!important;color:#4f5a5f!important;box-shadow:none!important;font-size:14px!important;font-weight:700!important;white-space:nowrap!important;}
  #tabs_section .tab-btn.active{background:#2F6A82!important;color:#fff!important;border-color:#2F6A82!important;box-shadow:0 8px 20px rgba(47,106,130,.16)!important;}
  #tabs_section .tabs-panels-container{margin-top:0!important;}

  /* Blue dress: CSS-rendered media fallback so it works even before JS. */
  #event_details_section.event-details-section{padding-bottom:0!important;background:#f3e8dc!important;background-image:none!important;}
  #event_details_section .event-mobile-media{display:none!important;}
  #event_details_section .container-custom::after{
    content:''!important;
    display:block!important;
    width:calc(100% + 36px)!important;
    height:360px!important;
    margin:28px -18px 0!important;
    background:url('/assets/dress_blue_gown_1787589351224.jpg') center 44%/cover no-repeat!important;
  }

  /* About mobile. */
  .elena-grid{grid-template-columns:1fr!important;gap:34px!important;}
  .about-image-stage{min-height:360px!important;order:-1!important;}
  .about-image-stage>img{min-height:360px!important;height:360px!important;object-position:center 20%!important;}

  /* Services imagery on mobile. */
  .service-hub-grid{grid-template-columns:1fr!important;gap:18px!important;}
  .service-hub-grid .service-card img{height:240px!important;object-fit:cover!important;}
  .tab-content-grid .tab-img-side{display:block!important;min-height:260px!important;}
  .tab-content-grid .tab-img-side img{width:100%!important;height:300px!important;min-height:300px!important;object-fit:cover!important;}

  /* consolidated below (2026-09 mobile audit): #gallery_section .gallery-heading{max-width:86%!important;margin-bottom:46px!important;font-size:28px!important;line-height:1.12!important;} */
}

@media(max-width:360px){
  #hero_section .hero-actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important;}
  #hero_section .hero-actions #btn_hero_call,#hero_section .hero-secondary-cta{width:100%!important;}
}

@media(prefers-reduced-motion:reduce){
  .about-value-card,.about-value-icon,#service_cards_section .service-card,.service-hub-grid .service-card,.service-hub-grid .service-card img{transition:none!important;}
}


/* ===== from css/user-fixes-20260827.css ===== */

/* User-requested final visual fixes. Loaded last. Footer intentionally untouched. */

/* Global image-delivery fallback for the homepage hero. */

#hero_section.hero-section{background-image:url('/asset.php?file=NDG_professional-tailor-montreal2.jpg')!important;}

/* CRITICAL HOMEPAGE VISIBILITY LOCK.
   All primary homepage media/content must remain visible even if reveal JS or IntersectionObserver fails. */

body .reveal-on-scroll,
body .reveal-on-scroll.is-visible,
#service_cards_section .service-card,
.home-source-image-stage,
.home-source-copy,
.event-details-content,
.event-cta-card,
.elena-img-wrap,
.elena-text-wrap,
#tabs_section .tabs-nav-wrap,
#tabs_section .tab-panel,
#gallery_section .gallery-heading,
#gallery_section .gallery-thumb{
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}

/* Images that are confirmed to exist on xCloud must never be hidden by legacy/source CSS. */

#service_cards_section .service-icon-wrapper,
#service_cards_section .service-icon-main,
.home-source-image-stage img,
.elena-img-wrap img,
#tabs_section .tab-img-side img,
#gallery_section .gallery-thumb img{
  opacity:1!important;
  visibility:visible!important;
}

#service_cards_section .service-icon-wrapper{display:flex!important;align-items:center!important;justify-content:center!important;}

#service_cards_section .service-icon-main{display:block!important;position:relative!important;z-index:2!important;transform:none!important;filter:none!important;}

#service_cards_section .service-icon-hover{opacity:0!important;visibility:hidden!important;}

.home-source-image-stage img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;}

.elena-img-wrap{min-height:430px!important;}

.elena-img-wrap img{display:block!important;width:100%!important;height:100%!important;min-height:430px!important;object-fit:cover!important;}

#tabs_section .tab-img-side img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;}

#gallery_section .gallery-thumb img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;}

/* Restore the original service intro block. Keep the existing heading; do not inject a new one. */

.hero-features-heading{
  display:block!important;
  margin:0 auto 34px!important;
  max-width:900px!important;
  text-align:center!important;
  font-family:'Abril Fatface',Georgia,serif!important;
  font-size:clamp(42px,3.5vw,58px)!important;
  line-height:1.03!important;
  color:#062D3D!important;
  text-wrap:balance!important;
}

#service_cards_section.service-cards-section{padding-top:56px!important;}

#service_cards_section .service-card-title{font-size:clamp(29px,2vw,34px)!important;line-height:1.06!important;text-wrap:balance!important;}

/* Service hover: no color inversion, no icon swap, no content jump. */

#service_cards_section .service-card,
.service-hub-grid .service-card{transition:box-shadow .24s ease,border-color .24s ease,background .24s ease!important;}

#service_cards_section .service-card:hover,
.service-hub-grid .service-card:hover{
  transform:none!important;
  background:#fff!important;
  color:inherit!important;
  border-color:rgba(47,106,130,.20)!important;
  box-shadow:0 16px 34px rgba(6,45,61,.08)!important;
}

#service_cards_section .service-card:hover .service-card-title,
.service-hub-grid .service-card:hover .service-card-title{color:#062D3D!important;}

#service_cards_section .service-card:hover .service-card-desc,
.service-hub-grid .service-card:hover .service-card-desc{color:#666!important;}

#service_cards_section .service-card:hover .service-card-btn,
.service-hub-grid .service-card:hover .service-card-btn{color:#2F6A82!important;background:#e3d8e7!important;border-color:#e3d8e7!important;}

#service_cards_section .service-card:hover .service-icon-main{opacity:1!important;visibility:visible!important;filter:none!important;transform:none!important;}

#service_cards_section .service-card:hover .service-icon-hover{opacity:0!important;visibility:hidden!important;transform:none!important;}

.service-hub-grid .service-card:hover img{transform:none!important;}

/* Carousel heading: restore the earlier two-line width. */

#gallery_section .gallery-heading{width:100%!important;max-width:660px!important;margin:0 auto 52px!important;text-align:center!important;text-wrap:balance!important;}

/* Hero CTA: compact, not stretched. */

#hero_section .hero-actions .hero-call-outline,
#hero_section .hero-actions #btn_hero_call{min-width:0!important;width:max-content!important;min-height:54px!important;padding:0 19px!important;}

#hero_section .hero-secondary-cta{min-width:0!important;width:max-content!important;padding:0 20px!important;}

/* Hero visit status: visibly translucent over the photograph. */

#hero_section .hero-walkin-status{background:rgba(255,255,255,.50)!important;border-color:rgba(255,255,255,.42)!important;box-shadow:0 8px 24px rgba(6,45,61,.055)!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;}

/* Lena portrait and service imagery must never collapse or fade. */

.about-image-stage,.elena-img-wrap{position:relative!important;display:block!important;overflow:hidden!important;}

.about-image-stage{min-height:520px!important;}

.about-image-stage>img{display:block!important;width:100%!important;height:520px!important;object-fit:cover!important;opacity:1!important;visibility:visible!important;}

.elena-img-wrap img{display:block!important;width:100%!important;height:100%!important;opacity:1!important;visibility:visible!important;}

.service-hub-grid .service-card img,.service-feature-band>img,.tab-content-grid .tab-img-side img{display:block!important;opacity:1!important;visibility:visible!important;}

/* Work / Réalisations gallery must render even when reveal observers or lazy loading fail. */

.work-gallery-section .gallery-thumb,
.work-gallery-section .gallery-thumb.reveal-on-scroll,
.work-gallery-section .gallery-thumb.is-visible{
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}

.work-gallery-section .gallery-thumb img{
  display:block!important;
  width:100%!important;
  height:300px!important;
  object-fit:cover!important;
  opacity:1!important;
  visibility:visible!important;
}

/* Blue dress on mobile: use the real local image element instead of relying on a background layer. */

@media(max-width:700px){
  #event_details_section.event-details-section{position:relative!important;min-height:0!important;padding:58px 0 0!important;background:#f3e8dc!important;background-image:none!important;overflow:hidden!important;}
  #event_details_section .event-details-content{padding-bottom:36px!important;}
  #event_details_section .event-mobile-media{display:block!important;position:relative!important;width:100%!important;height:360px!important;margin:0!important;overflow:hidden!important;}
  #event_details_section .event-mobile-media img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 38%!important;opacity:1!important;visibility:visible!important;}

  /* Keep the hero title left and move the portrait farther right. */
  #hero_section.hero-section{background-position:92% 30%!important;}
  #hero_section .hero-title-main{max-width:52%!important;font-size:clamp(50px,13.8vw,60px)!important;line-height:.9!important;letter-spacing:-.02em!important;}
  #hero_section .hero-title-sub{max-width:64%!important;font-size:clamp(27px,7vw,34px)!important;line-height:1.06!important;}
  #hero_section .hero-description{max-width:86%!important;}
  #hero_section .hero-actions .hero-call-outline,
  #hero_section .hero-actions #btn_hero_call{min-width:0!important;padding:0 14px!important;min-height:48px!important;font-size:14px!important;}
  #hero_section .hero-secondary-cta{min-width:0!important;padding:0 15px!important;min-height:48px!important;font-size:14px!important;}
  #hero_section .hero-walkin-status{background:rgba(255,255,255,.54)!important;border-color:rgba(255,255,255,.46)!important;}

  .hero-features-heading{font-size:clamp(34px,9.5vw,43px)!important;margin-bottom:28px!important;padding:0 18px!important;}
  #service_cards_section.service-cards-section{padding-top:50px!important;}
  #service_cards_section .service-card-title{font-size:clamp(23px,6.2vw,28px)!important;}
  /* consolidated below (2026-09 mobile audit): #gallery_section .gallery-heading{max-width:82vw!important;margin-bottom:48px!important;line-height:1.08!important;} */
  .about-image-stage{min-height:360px!important;}
  .about-image-stage>img{height:360px!important;min-height:360px!important;object-position:center 22%!important;}
  .elena-img-wrap{min-height:360px!important;}
  .elena-img-wrap img{min-height:360px!important;height:360px!important;object-position:center 20%!important;}
  .work-gallery-section .gallery-thumb img{height:320px!important;}
}

@media(max-width:430px){
  #hero_section .hero-title-main{max-width:54%!important;font-size:clamp(48px,13.2vw,57px)!important;}
  #hero_section .hero-title-sub{max-width:62%!important;}
  #hero_section .hero-actions{gap:7px!important;}
}


/* ===== from css/home-tabs-layout-20260829.css ===== */

/* Homepage tab layout requested 2026-08-29. Loaded last. */

#tabs_section.tabs-section{padding:72px 0 96px!important;background:#fff!important;overflow:hidden!important;}

#tabs_section .tabs-nav-wrap{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  width:100%!important;
  max-width:none!important;
  margin:0 auto!important;
  padding:0!important;
  border-radius:18px!important;
  overflow:hidden!important;
  background:#e6d9e9!important;
  box-shadow:none!important;
}

#tabs_section .tab-btn{
  min-height:58px!important;
  padding:12px 14px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#666!important;
  font-size:15px!important;
  line-height:1.15!important;
  font-weight:700!important;
  white-space:normal!important;
  transition:background .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease!important;
}

#tabs_section .tab-btn:hover{background:rgba(255,255,255,.26)!important;color:#2F6A82!important;}

#tabs_section .tab-btn.active{
  background:#2f748e!important;
  color:#fff!important;
  border-radius:8px!important;
  box-shadow:18px 0 30px rgba(35,82,101,.16)!important;
}

#tabs_section .tabs-panels-container{width:100%!important;max-width:none!important;margin:0 auto!important;}

#tabs_section .tab-panel{display:none!important;padding:0!important;margin:0!important;background:transparent!important;}

#tabs_section .tab-panel.active{display:block!important;}

#tabs_section .tab-content-grid{
  display:grid!important;
  grid-template-columns:minmax(0,54%) minmax(0,56%)!important;
  grid-template-rows:560px!important;
  align-items:stretch!important;
  gap:0!important;
  width:100%!important;
  margin:76px auto 0!important;
  padding:0!important;
  position:relative!important;
}

#tabs_section .tab-img-side{
  grid-column:1!important;
  grid-row:1!important;
  order:1!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border-radius:8px!important;
  overflow:hidden!important;
  position:relative!important;
  z-index:1!important;
  background:transparent!important;
  line-height:0!important;
}

#tabs_section .tab-img-side img{
  display:block!important;
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center!important;
  border-radius:8px!important;
  opacity:1!important;
  visibility:visible!important;
  margin:0!important;
  padding:0!important;
}

#tabs_section .tab-text-side{
  grid-column:2!important;
  grid-row:1!important;
  order:2!important;
  width:calc(100% + 86px)!important;
  margin-left:-86px!important;
  padding:48px 50px!important;
  border:1px solid rgba(6,45,61,.10)!important;
  border-radius:10px!important;
  background:#fff!important;
  box-shadow:0 18px 38px rgba(15,32,40,.13)!important;
  position:relative!important;
  z-index:2!important;
  align-self:center!important;
}

#tabs_section .tab-text-side h3{
  margin:0 0 18px!important;
  font-family:'Abril Fatface',Georgia,serif!important;
  font-size:clamp(38px,3.2vw,52px)!important;
  line-height:1.03!important;
  color:#2f748e!important;
  letter-spacing:-.01em!important;
}

#tabs_section .tab-text-side p{
  margin:0 0 20px!important;
  max-width:760px!important;
  color:#5f5f5f!important;
  font-size:17px!important;
  line-height:1.55!important;
}

#tabs_section .tab-stylish-list{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:22px 34px!important;
  margin:28px 0 0!important;
  padding:0!important;
  list-style:none!important;
}

#tabs_section .tab-stylish-list li{
  display:flex!important;
  align-items:flex-start!important;
  gap:13px!important;
  margin:0!important;
  color:#5a5a5a!important;
  font-size:16px!important;
  line-height:1.35!important;
}

#tabs_section .tab-stylish-list li i{
  flex:0 0 42px!important;
  width:42px!important;
  height:42px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  background:#e6d9e9!important;
  color:#32383d!important;
  font-size:17px!important;
  transition:transform .22s ease,background .22s ease!important;
}

#tabs_section .tab-stylish-list li:hover i{transform:scale(1.08)!important;background:#d8c7dd!important;}

#tabs_section .process-steps-grid{display:none!important;}

@media(max-width:900px){
  #tabs_section .tabs-nav-wrap{width:100%!important;overflow-x:auto!important;display:flex!important;border-radius:14px!important;scrollbar-width:none!important;}
  #tabs_section .tabs-nav-wrap::-webkit-scrollbar{display:none!important;}
  #tabs_section .tab-btn{flex:0 0 auto!important;min-width:150px!important;min-height:54px!important;padding:10px 16px!important;}
  #tabs_section .tabs-panels-container{width:100%!important;}
  #tabs_section .tab-content-grid{display:flex!important;flex-direction:column!important;margin-top:38px!important;padding:0!important;}
  #tabs_section .tab-img-side{order:1!important;width:100%!important;height:420px!important;min-height:420px!important;border-radius:12px 12px 0 0!important;}
  #tabs_section .tab-text-side{order:2!important;width:calc(100% - 20px)!important;margin:-44px auto 0!important;padding:34px 28px 36px!important;border-radius:12px!important;}
  #tabs_section .tab-text-side h3{font-size:clamp(34px,8vw,44px)!important;}
  #tabs_section .tab-stylish-list{gap:18px 24px!important;}
}

@media(max-width:600px){
  #tabs_section.tabs-section{padding:54px 0 70px!important;}
  #tabs_section .tab-btn{min-width:142px!important;font-size:14px!important;}
  #tabs_section .tab-img-side{height:340px!important;min-height:340px!important;}
  #tabs_section .tab-text-side{width:calc(100% - 14px)!important;margin-top:-28px!important;padding:28px 22px 30px!important;}
  #tabs_section .tab-text-side h3{font-size:34px!important;line-height:1.05!important;}
  #tabs_section .tab-text-side p{font-size:15.5px!important;line-height:1.5!important;}
  #tabs_section .tab-stylish-list{grid-template-columns:1fr!important;gap:15px!important;margin-top:22px!important;}
  #tabs_section .tab-stylish-list li{font-size:15px!important;}
  #tabs_section .tab-stylish-list li i{flex-basis:38px!important;width:38px!important;height:38px!important;}
}


/* ===== from css/home-final-corrections-20260829.css ===== */

/* Final homepage corrections requested 2026-08-29. Loaded last before motion system. */

/* Keep the tabs aligned to the full homepage content width. */

#tabs_section .container-custom{max-width:1360px!important;width:100%!important;}

#tabs_section .tabs-nav-wrap,
#tabs_section .tabs-panels-container{width:100%!important;max-width:none!important;}

#tabs_section .tab-content-grid{width:100%!important;max-width:none!important;}

/* The event/problem block must use the clean blue gown asset directly. */

#event_details_section.event-details-section{
  background-color:#f3e8dc!important;
  background-image:
    linear-gradient(90deg,
      rgba(243,232,220,.995) 0%,
      rgba(243,232,220,.99) 31%,
      rgba(243,232,220,.88) 40%,
      rgba(243,232,220,.48) 49%,
      rgba(243,232,220,.10) 58%,
      rgba(243,232,220,0) 66%),
    url('/assets/ndg-professional-tailor-montreal-robe-bleue-sur-mesure.jpg')!important;
  background-size:cover,cover!important;
  background-repeat:no-repeat,no-repeat!important;
  background-position:center,right center!important;
}

#event_details_section .event-mobile-media{display:none!important;}

/* Every tab image must completely fill its media block. */

#tabs_section .tab-img-side{
  align-self:stretch!important;
  padding:0!important;
  line-height:0!important;
  background:transparent!important;
}

#tabs_section .tab-img-side img{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
  margin:0!important;
  padding:0!important;
}

/* Tab content icons: lavender discs with clearly teal sewing icons. */

#tabs_section .tab-stylish-list li i{
  background:#e6d9e9!important;
  color:#2F748E!important;
  box-shadow:0 6px 16px rgba(47,116,142,.10)!important;
}

/* Restore the original teal service-card hover, but keep it stable and polished. */

#service_cards_section .service-card,
.service-hub-grid .service-card{
  transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,border-color .28s ease,background-color .28s ease!important;
}

#service_cards_section .service-card:hover,
.service-hub-grid .service-card:hover{
  transform:translateY(-8px)!important;
  background:#2F6A82!important;
  color:#fff!important;
  border-color:#2F6A82!important;
  box-shadow:0 22px 44px rgba(47,106,130,.28)!important;
}

#service_cards_section .service-card:hover .service-card-title,
.service-hub-grid .service-card:hover .service-card-title{color:#fff!important;}

#service_cards_section .service-card:hover .service-card-desc,
.service-hub-grid .service-card:hover .service-card-desc{color:rgba(255,255,255,.92)!important;}

#service_cards_section .service-card .service-icon-main,
.service-hub-grid .service-card img{
  transition:transform .28s cubic-bezier(.2,.8,.2,1),filter .28s ease,opacity .28s ease!important;
}

#service_cards_section .service-card:hover .service-icon-main,
.service-hub-grid .service-card:hover img{
  opacity:1!important;
  visibility:visible!important;
  transform:scale(1.08) rotate(-2deg)!important;
  filter:brightness(0) invert(1)!important;
}

#service_cards_section .service-card:hover .service-icon-hover{opacity:0!important;visibility:hidden!important;}

#service_cards_section .service-card-btn{
  transition:transform .24s ease,background-color .24s ease,color .24s ease,box-shadow .24s ease!important;
}

#service_cards_section .service-card:hover .service-card-btn{
  transform:translateY(-3px)!important;
  background:#fff!important;
  color:#2F6A82!important;
  box-shadow:0 8px 18px rgba(20,54,68,.18)!important;
}

/* Gallery cards retain an elegant hover lift and image zoom. */

#gallery_section .gallery-thumb,
.work-gallery-section .gallery-thumb{
  transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease!important;
}

#gallery_section .gallery-thumb img,
.work-gallery-section .gallery-thumb img{transition:transform .45s cubic-bezier(.2,.8,.2,1)!important;}

#gallery_section .gallery-thumb:hover,
.work-gallery-section .gallery-thumb:hover{
  transform:translateY(-6px)!important;
  box-shadow:0 18px 34px rgba(6,45,61,.18)!important;
}

#gallery_section .gallery-thumb:hover img,
.work-gallery-section .gallery-thumb:hover img{transform:scale(1.045)!important;}

@media(max-width:700px){
  #event_details_section.event-details-section{
    padding:58px 0 0!important;
    min-height:0!important;
    background:#f3e8dc!important;
    background-image:none!important;
  }
  #event_details_section .event-mobile-media{
    display:block!important;
    position:relative!important;
    width:100%!important;
    height:360px!important;
    margin:0!important;
    overflow:hidden!important;
  }
  #event_details_section .event-mobile-media img{
    display:block!important;
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center 42%!important;
    opacity:1!important;
    visibility:visible!important;
  }
  #tabs_section .tabs-nav-wrap,
  #tabs_section .tabs-panels-container{width:calc(100% - 24px)!important;}
}


/* ===== from css/motion-2026.css ===== */

/* NDG Professional Tailor — restrained 2026 motion system. Loaded last. */

:root{
  --motion-ease:cubic-bezier(.2,.8,.2,1);
  --motion-fast:180ms;
  --motion-base:320ms;
  --motion-slow:620ms;
}

/* Progressive enhancement: reveal states only exist when JS explicitly enables motion. */

html.motion-enabled .motion-reveal{
  opacity:0!important;
  transform:translate3d(0,24px,0)!important;
  filter:blur(2px);
  transition:opacity var(--motion-slow) var(--motion-ease),transform var(--motion-slow) var(--motion-ease),filter var(--motion-slow) var(--motion-ease)!important;
  transition-delay:var(--motion-delay,0ms)!important;
  will-change:opacity,transform;
}

html.motion-enabled .motion-reveal.motion-visible{
  opacity:1!important;
  transform:translate3d(0,0,0)!important;
  filter:none;
}

html.motion-enabled .motion-reveal.motion-from-left{transform:translate3d(-30px,0,0)!important;}

html.motion-enabled .motion-reveal.motion-from-right{transform:translate3d(30px,0,0)!important;}

html.motion-enabled .motion-reveal.motion-from-left.motion-visible,
html.motion-enabled .motion-reveal.motion-from-right.motion-visible{transform:translate3d(0,0,0)!important;}

/* Header and navigation. */

.site-header{transition:background-color .28s ease,box-shadow .28s ease,border-color .28s ease,transform .28s ease!important;}

.nav-link{position:relative;transition:color var(--motion-fast) ease,background-color var(--motion-fast) ease,transform var(--motion-fast) var(--motion-ease)!important;}

.nav-link:hover{transform:translateY(-1px)!important;}

.nav-link::after{
  content:'';position:absolute;left:20%;right:20%;bottom:3px;height:2px;border-radius:999px;background:#2F748E;
  transform:scaleX(0);transform-origin:center;transition:transform .24s var(--motion-ease);pointer-events:none;
}

.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1);}

/* Buttons: subtle lift + sheen. */

.btn-header-call,.hero-call-outline,.hero-secondary-cta,.btn-gallery-call,.btn-gallery-book,.event-cta-btn,.btn-tab-service,
.home-google-reviews-actions a,.service-card-btn{
  position:relative;overflow:hidden;isolation:isolate;
  transition:transform .22s var(--motion-ease),box-shadow .22s ease,background-color .22s ease,color .22s ease,border-color .22s ease!important;
}

.btn-header-call::after,.hero-call-outline::after,.hero-secondary-cta::after,.btn-gallery-call::after,.btn-gallery-book::after,.event-cta-btn::after,.btn-tab-service::after,
.home-google-reviews-actions a::after{
  content:'';position:absolute;inset:-30% auto -30% -45%;width:32%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);
  transform:skewX(-18deg) translateX(-180%);transition:transform .58s var(--motion-ease);pointer-events:none;z-index:-1;
}

.btn-header-call:hover,.hero-call-outline:hover,.hero-secondary-cta:hover,.btn-gallery-call:hover,.btn-gallery-book:hover,.event-cta-btn:hover,.btn-tab-service:hover,
.home-google-reviews-actions a:hover{transform:translateY(-2px)!important;}

.btn-header-call:hover::after,.hero-call-outline:hover::after,.hero-secondary-cta:hover::after,.btn-gallery-call:hover::after,.btn-gallery-book:hover::after,.event-cta-btn:hover::after,.btn-tab-service:hover::after,
.home-google-reviews-actions a:hover::after{transform:skewX(-18deg) translateX(520%);}

/* Cards and bordered UI. */

.home-google-review-card,.map-card-floating,.contact-card-box,.service-process-card,.related-service-card,.cz-faq-item,.tab-text-side{
  transition:transform .28s var(--motion-ease),box-shadow .28s ease,border-color .28s ease!important;
}

.home-google-review-card:hover,.contact-card-box:hover,.service-process-card:hover,.related-service-card:hover{
  transform:translateY(-5px)!important;border-color:rgba(47,116,142,.28)!important;box-shadow:0 18px 38px rgba(6,45,61,.10)!important;
}

.cz-faq-item:hover{border-color:rgba(47,116,142,.30)!important;}

/* Tab interaction. */

#tabs_section .tab-btn{transition:background-color .25s ease,color .25s ease,transform .25s var(--motion-ease),box-shadow .25s ease!important;}

#tabs_section .tab-btn:hover{transform:translateY(-2px)!important;color:#2F748E!important;}

#tabs_section .tab-btn.active:hover{color:#fff!important;}

#tabs_section .tab-img-side{transition:box-shadow .35s ease,transform .35s var(--motion-ease)!important;}

#tabs_section .tab-content-grid:hover .tab-img-side{transform:translateX(-3px)!important;box-shadow:0 18px 40px rgba(6,45,61,.10)!important;}

#tabs_section .tab-stylish-list li i{transition:transform .24s var(--motion-ease),background-color .24s ease,color .24s ease!important;}

#tabs_section .tab-stylish-list li:hover i{transform:scale(1.08) rotate(-4deg)!important;background:#2F748E!important;color:#fff!important;}

/* Images get a calm editorial zoom where appropriate. */

.elena-img-wrap img,.home-source-image-stage img,.service-feature-band>img,.about-image-stage>img{
  transition:transform .65s var(--motion-ease)!important;
}

.elena-img-wrap:hover img,.home-source-image-stage:hover img,.service-feature-band:hover>img,.about-image-stage:hover>img{transform:scale(1.025)!important;}

/* Decorative active state pulse without endless movement. */

@keyframes ndgSoftPulse{0%,100%{box-shadow:0 0 0 0 rgba(47,116,142,0)}50%{box-shadow:0 0 0 8px rgba(47,116,142,.08)}}

#tabs_section .tab-btn.active{animation:ndgSoftPulse .72s ease 1;}

/* Scroll progress accent. */

#ndg-scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;background:#2F748E;z-index:2000;pointer-events:none;transform-origin:left center;box-shadow:0 1px 8px rgba(47,116,142,.25);}

@media (hover:none){
  .nav-link:hover,.btn-header-call:hover,.hero-call-outline:hover,.hero-secondary-cta:hover,.btn-gallery-call:hover,.btn-gallery-book:hover,.event-cta-btn:hover,.btn-tab-service:hover,
  .home-google-review-card:hover,.contact-card-box:hover,.service-process-card:hover,.related-service-card:hover,#tabs_section .tab-btn:hover{transform:none!important;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
  html.motion-enabled .motion-reveal,html.motion-enabled .motion-reveal.motion-from-left,html.motion-enabled .motion-reveal.motion-from-right{opacity:1!important;transform:none!important;filter:none!important;}
  #ndg-scroll-progress{display:none!important;}
}


/* ===== from css/global-width-curves-20260829.css ===== */

/* Global page-grid + exact Elementor-style curve geometry. Loaded last. */

:root{
  --ndg-page-max:1360px;
  --ndg-page-gutter:24px;
}

/* One consistent content grid across homepage and internal pages.
   Section backgrounds can remain full bleed; readable content aligns here. */

.container-custom,
.page-title-container{
  width:100%!important;
  max-width:var(--ndg-page-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:var(--ndg-page-gutter)!important;
  padding-right:var(--ndg-page-gutter)!important;
}

/* Components that previously introduced their own 1180px caps should follow the page grid. */

#tabs_section .tabs-nav-wrap,
#tabs_section .tabs-panels-container,
#tabs_section .tab-content-grid,
#gallery_section .gallery-carousel-track,
#gallery_section .gallery-action-bar,
.service-cards-grid,
.home-source-about-grid,
.elena-grid,
.event-details-grid,
.contact-main-grid,
.service-hub-grid,
.work-gallery-section .gallery-carousel-track{
  max-width:none!important;
}

#tabs_section .tabs-nav-wrap,
#tabs_section .tabs-panels-container{
  width:100%!important;
}

/* Exact smooth SVG curve from the original Elementor/Codevz separator.
   Same Bézier path on both edges; top is only vertically mirrored. */

#event_details_section.event-details-section{
  position:relative!important;
  overflow:hidden!important;
}

#event_details_section.event-details-section::before,
#event_details_section.event-details-section::after{
  content:''!important;
  display:block!important;
  position:absolute!important;
  left:0!important;
  width:100%!important;
  height:92px!important;
  z-index:7!important;
  pointer-events:none!important;
  border-radius:0!important;
  background-color:transparent!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:100% 100%!important;
  background-image:url("data:image/svg+xml,%3Csvg preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg' width='100%25' viewBox='0 0 1600 172'%3E%3Cpath fill='transparent' d='M-3,108.5S398.468,0.5,799.951.5C1201.47,0.5,1603,108.5,1603,108.5v203H-3v-203Z'/%3E%3Cpath fill='transparent' d='M-3,137.5s401.468-108,802.951-108c401.519,0,803.049,108,803.049,108v203H-3v-203Z'/%3E%3Cpath fill='%23ffffff' d='M-3,164.5s401.468-108,802.951-108c401.519,0,803.049,108,803.049,108v203H-3v-203Z'/%3E%3C/svg%3E")!important;
}

/* White area above the upper curve. */

#event_details_section.event-details-section::before{
  top:-1px!important;
  bottom:auto!important;
  transform:scaleY(-1)!important;
  transform-origin:center center!important;
}

/* White area below the lower curve, same geometry. */

#event_details_section.event-details-section::after{
  bottom:-1px!important;
  top:auto!important;
  transform:none!important;
}

/* Keep content clear of the curve itself. */

#event_details_section.event-details-section{
  padding-top:126px!important;
  padding-bottom:132px!important;
}

/* CTA alignment follows the same page grid instead of an unrelated narrow max-width. */

.event-cta-section>.container-custom{max-width:var(--ndg-page-max)!important;}

.event-cta-card{
  width:100%!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Internal pages: use the same outer grid while preserving readable text-column widths. */

.faq-page-section>.container-custom,
.work-gallery-section>.container-custom,
.service-page-section>.container-custom,
.contact-section>.container-custom,
.related-services-section>.container-custom,
.service-process-section>.container-custom,
.home-google-reviews>.container-custom,
.map-section>.container-custom{
  width:100%!important;
  max-width:var(--ndg-page-max)!important;
}

@media(max-width:900px){
  :root{--ndg-page-gutter:18px;}
  #event_details_section.event-details-section::before,
  #event_details_section.event-details-section::after{height:68px!important;}
  #event_details_section.event-details-section{padding-top:96px!important;padding-bottom:104px!important;}
}

@media(max-width:700px){
  :root{--ndg-page-gutter:16px;}
  #event_details_section.event-details-section::before,
  #event_details_section.event-details-section::after{height:52px!important;}
  #event_details_section.event-details-section{padding-top:74px!important;padding-bottom:78px!important;}
  #tabs_section .tabs-nav-wrap,
  #tabs_section .tabs-panels-container{width:100%!important;}
}


/* ===== from css/ux-conversion-20260829.css ===== */

/* NDG UX/conversion refinements. Loaded last. Preserve existing visual system. */

/* Services landing: elegant teal hover without distorted media. */

.service-hub-section{padding:86px 0 94px;background:#fff}

.service-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:42px}

.service-hub-card{padding:22px!important;text-align:left!important;align-items:stretch!important;border-radius:24px!important;overflow:hidden!important;background:#fff!important;border:1px solid rgba(47,106,130,.10)!important;box-shadow:0 14px 38px rgba(6,45,61,.06)!important;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease,border-color .3s ease,background .3s ease!important}

.service-hub-media{height:290px;border-radius:16px;overflow:hidden;background:#f4f1ee;position:relative}

.service-hub-media img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;border-radius:0!important;margin:0!important;transform:none!important;filter:none!important;transition:transform .45s cubic-bezier(.2,.7,.2,1),filter .3s ease!important}

.service-hub-copy{padding:26px 14px 12px;display:flex;flex-direction:column;min-height:250px}

.service-hub-card .service-card-title{margin:0 0 14px!important;color:#062D3D!important;font-size:clamp(28px,2vw,36px)!important;transition:color .25s ease!important}

.service-hub-card .service-card-desc{margin:0 0 24px!important;padding:0!important;color:#61676a!important;font-size:16px!important;line-height:1.65!important;text-align:left!important;transition:color .25s ease!important}

.service-hub-card .service-card-btn{align-self:flex-start;margin-top:auto!important;display:inline-flex!important;align-items:center!important;gap:9px!important;padding:11px 18px!important;background:#e3d8e7!important;color:#2F6A82!important;border-radius:999px!important;transition:transform .25s ease,background .25s ease,color .25s ease!important}

.service-hub-card:hover{transform:translateY(-6px)!important;background:#2F6A82!important;border-color:#2F6A82!important;box-shadow:0 24px 54px rgba(47,106,130,.22)!important;color:#fff!important}

.service-hub-card:hover .service-hub-media img{transform:scale(1.035)!important;filter:none!important}

.service-hub-card:hover .service-card-title{color:#fff!important}

.service-hub-card:hover .service-card-desc{color:rgba(255,255,255,.88)!important}

.service-hub-card:hover .service-card-btn{background:#fff!important;color:#2F6A82!important;transform:translateX(3px)!important}

.service-hub-card:hover .service-card-btn i{transform:translateX(2px)}

/* Blog index: editorial cards, local imagery, no generic service-card hover. */

.blog-index-section{padding:82px 0 100px;background:#fff}

.blog-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:42px}

.blog-card{border:1px solid rgba(47,106,130,.10);border-radius:22px;background:#fff;overflow:hidden;box-shadow:0 14px 36px rgba(6,45,61,.055);transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease,border-color .3s ease}

.blog-card>a{display:block;height:100%;color:inherit;text-decoration:none}

.blog-card-media{height:260px;overflow:hidden;background:#f3efeb}

.blog-card-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}

.blog-card-copy{padding:26px 26px 30px}

.blog-card-kicker{display:inline-block;margin-bottom:12px;color:#2F6A82;font:700 11px/1.2 'Roboto',sans-serif;letter-spacing:.11em;text-transform:uppercase}

.blog-card h2{margin:0 0 15px;color:#062D3D;font-size:30px;line-height:1.12}

.blog-card p{margin:0 0 24px;color:#646b6e;font-size:16px;line-height:1.65}

.blog-card-link{display:inline-flex;align-items:center;gap:9px;color:#2F6A82;font-weight:700}

.blog-card:hover{transform:translateY(-6px);border-color:rgba(47,106,130,.28);box-shadow:0 24px 54px rgba(6,45,61,.11)}

.blog-card:hover .blog-card-media img{transform:scale(1.045)}

.blog-card:hover .blog-card-link i{transform:translateX(3px)}

/* Sticky right rails: keep within viewport and avoid accidental parent clipping. */

.faq-page-section,.faq-page-section .container-custom,.faq-main-grid,.article-page main,.article-body-wrap{overflow:visible!important}

.faq-main-grid,.article-body-wrap{align-items:start!important}

.faq-right-col,.article-aside-sticky{position:sticky!important;top:104px!important;align-self:start!important;height:max-content!important;max-height:calc(100vh - 124px);overflow:auto;scrollbar-width:thin}

/* Article sidebar: useful conversion/local blocks. */

.article-aside{padding:28px 24px!important}

.article-aside-block{margin-top:24px;padding-top:22px;border-top:1px solid rgba(47,106,130,.12)}

.article-aside-block h3{margin:0 0 13px;color:#062D3D;font:700 15px/1.25 'Roboto',sans-serif}

.article-aside-block ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}

.article-aside-block li{display:grid;grid-template-columns:20px 1fr;gap:8px;color:#596267;font-size:13.5px;line-height:1.45}

.article-aside-block li i{color:#2F6A82;margin-top:3px}

.article-aside-links{display:grid;gap:3px}

.article-aside-links h3{margin-bottom:8px}

.article-aside-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;color:#2F6A82;text-decoration:none;font-size:13.5px;font-weight:700;border-bottom:1px solid rgba(47,106,130,.08)}

.article-aside-links a:last-child{border-bottom:0}

.article-aside-links a:hover i{transform:translateX(3px)}

.article-aside-local{margin-top:22px;padding:16px;border-radius:16px;background:#f3e8dc;display:flex;gap:12px;color:#4f595d}

.article-aside-local>i{color:#2F6A82;margin-top:3px}

.article-aside-local div{display:grid;gap:3px}

.article-aside-local strong{color:#062D3D;font-size:13.5px}

.article-aside-local span{font-size:12.5px;line-height:1.4}

.article-media img{object-position:center 35%}

/* FAQ sidebar image: use a calm crop and keep card readable. */

.faq-sidebar-img{object-position:center 40%!important}

/* Global back-to-top button. */

.ndg-back-to-top{position:fixed;right:22px;bottom:22px;width:48px;height:48px;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(47,106,130,.94);color:#fff;display:grid;place-items:center;z-index:950;box-shadow:0 12px 30px rgba(6,45,61,.18);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s ease,visibility .25s ease,transform .25s ease,background .25s ease;backdrop-filter:blur(10px)}

.ndg-back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}

.ndg-back-to-top:hover{background:#062D3D;transform:translateY(-3px)}

.ndg-back-to-top:focus-visible{outline:3px solid rgba(227,216,231,.9);outline-offset:3px}

/* Small global conversion affordances. */

a[href^="tel:"]:focus-visible,.btn-gallery-book:focus-visible,.btn-gallery-call:focus-visible,.service-card:focus-visible,.blog-card a:focus-visible{outline:3px solid rgba(47,106,130,.32);outline-offset:4px}

@media(max-width:980px){.service-hub-grid{grid-template-columns:1fr}.blog-card-grid{grid-template-columns:1fr 1fr}.faq-right-col,.article-aside-sticky{position:static!important;max-height:none!important;overflow:visible!important}}

@media(max-width:700px){.service-hub-section{padding:58px 0 72px}.service-hub-grid{gap:18px}.service-hub-card{padding:16px!important;border-radius:19px!important}.service-hub-media{height:245px}.service-hub-copy{padding:22px 8px 10px;min-height:0}.blog-index-section{padding:58px 0 72px}.blog-card-grid{grid-template-columns:1fr;gap:20px}.blog-card-media{height:235px}.blog-card h2{font-size:28px}.ndg-back-to-top{right:14px;bottom:14px;width:44px;height:44px}}

@media(prefers-reduced-motion:reduce){.service-hub-card,.service-hub-media img,.blog-card,.blog-card-media img,.ndg-back-to-top{transition:none!important}}


/* ===== from css/typography-sticky-fix-20260829.css ===== */

/* Final typography + sticky rail correction. Loaded LAST. Keep existing design, spacing and colors. */

/* True 19px body copy across the website. Headings, nav labels and small utility text keep their own scale. */

html{font-size:19px!important}

body{font-size:19px!important;line-height:1.68!important}

body .service-card-desc,
body .service-hub-card .service-card-desc,
body .service-local-intro p,
body .tab-text-side p,
body .tab-stylish-list li,
body .local-proof,
body .service-process-card p,
body .related-service-card p,
body .faq-intro p,
body .cz-faq-content p,
body .article-dek,
body .article-content,
body .article-content p,
body .article-local-proof,
body .home-google-review-card p,
body .home-google-reviews-summary,
body .event-details-content .event-text,
body .event-details-content .event-bullet-text,
body .faq-contact-card p {
  font-size:19px!important;
  line-height:1.68!important;
}

/* Major page/section headings */

.page-title-heading{font-size:clamp(46px,4.2vw,70px)!important;line-height:.98!important;letter-spacing:-.025em!important}

.experience-heading,.service-local-intro .experience-heading,.faq-intro h2,.gallery-page-heading,.gallery-heading-main,.related-services>h2,.service-process>h2{font-size:clamp(40px,3.6vw,58px)!important;line-height:1.02!important;letter-spacing:-.02em!important}

/* Service + blog cards */

.service-hub-card .service-card-title,.service-card-title,.related-service-card h3{font-size:clamp(30px,2.25vw,40px)!important;line-height:1.06!important}

.blog-card h2{font-size:clamp(32px,2.45vw,42px)!important;line-height:1.06!important;letter-spacing:-.018em!important}

.blog-card-kicker{font-size:13px!important;letter-spacing:.13em!important}

.blog-card h2,.blog-card p{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}

.blog-card h2{-webkit-line-clamp:3}

.blog-card p{-webkit-line-clamp:3}

/* Homepage tabs */

#tabs_section .tab-btn{font-size:17px!important}

#tabs_section .tab-text-side h3{font-size:clamp(38px,3vw,52px)!important;line-height:1.02!important;letter-spacing:-.02em!important}

/* Homepage event block: three intentional lines, never overlap the dress. */

#event_details_section .event-details-content{width:48%!important;max-width:690px!important}

#event_details_section .event-subtitle{font-size:19px!important;line-height:1.35!important;margin-bottom:26px!important}

#event_details_section .event-heading{font-size:clamp(48px,3.55vw,60px)!important;line-height:.98!important;letter-spacing:-.025em!important;max-width:690px!important;margin:0 0 34px!important;text-wrap:initial!important}

#event_details_section .event-heading .source-title-line{display:inline!important;white-space:normal!important}

#event_details_section .event-text{max-width:630px!important}

.event-cta-card h2{font-size:clamp(42px,3.4vw,56px)!important;line-height:1.02!important}

/* Reviews / homepage secondary headings */

/* Real bug found in the 2026-09 mobile audit: this rule had no media
   guard, so at phone widths 3vw bottoms out at its own 38px floor --
   38px in the 82vw-wide mobile column set a few thousand lines up wraps
   this long sentence into 5-6 giant lines. Scoped to >=701px, where it
   was actually meant to apply (mobile already has its own 28px rule). */
@media(min-width:701px){
  #gallery_section .gallery-heading{font-size:clamp(38px,3vw,50px)!important;line-height:1.06!important}
}

.home-google-reviews h2{font-size:clamp(40px,3.2vw,54px)!important;line-height:1.04!important}

/* Article typography */

.article-hero h1{font-size:clamp(54px,5vw,78px)!important;line-height:.96!important}

.article-content>p:first-child{font-size:21px!important;line-height:1.75!important}

.article-content h2{font-size:clamp(34px,2.6vw,44px)!important;line-height:1.08!important}

.article-aside h2{font-size:30px!important;line-height:1.08!important}

.article-aside-block h3{font-size:16px!important}

/* Real sticky rails: page scrolls; rail never becomes its own scroller. */

html,body,.article-page,.article-page main,.article-body-wrap,.faq-page-section,.faq-page-section>.container-custom,.faq-main-grid{overflow:visible!important}

.article-body-wrap,.faq-main-grid{align-items:start!important;transform:none!important;filter:none!important;perspective:none!important;contain:none!important}

.article-aside,.article-aside-sticky,.faq-right-col{position:-webkit-sticky!important;position:sticky!important;top:108px!important;align-self:start!important;height:auto!important;max-height:none!important;overflow:visible!important;transform:none!important;contain:none!important}

/* FAQ readability */

.cz-faq-toggle{font-size:19px!important;line-height:1.4!important}

.faq-contact-card h2{font-size:34px!important;line-height:1.06!important}

@media(max-width:980px){
  .article-aside,.article-aside-sticky,.faq-right-col{position:static!important;top:auto!important}
  #event_details_section .event-details-content{width:58%!important;max-width:620px!important}
  #event_details_section .event-heading{font-size:44px!important;max-width:590px!important}
}

@media(max-width:700px){
  html,body{font-size:19px!important}
  .page-title-heading{font-size:42px!important}
  .experience-heading,.service-local-intro .experience-heading,.faq-intro h2,.gallery-page-heading,.gallery-heading-main{font-size:36px!important}
  #event_details_section .event-details-content{width:100%!important;max-width:none!important}
  #event_details_section .event-subtitle{font-size:19px!important}
  #event_details_section .event-heading{font-size:38px!important;line-height:1.02!important;max-width:12ch!important}
  #event_details_section .event-text{font-size:19px!important}
  #tabs_section .tab-btn{font-size:14px!important}
  #tabs_section .tab-text-side h3{font-size:34px!important}
  .article-hero h1{font-size:44px!important}
  .article-content>p:first-child{font-size:20px!important}
  .article-content h2{font-size:31px!important}
  .blog-card h2{font-size:30px!important}
}


/* ===== from css/site-type-final-20260829.css ===== */

/* Final site typography. Component-specific typography lives with each component. */

html{font-size:16px}

body{font-size:19px;line-height:1.68}

/* Normal readable copy that intentionally stays at the 19px site scale. */

.service-card-desc,
.service-hub-card .service-card-desc,
.service-local-intro p,
.local-proof,
.service-process-card p,
.related-service-card p,
.faq-intro p,
.cz-faq-content p,
.article-content,
.article-content p,
.faq-contact-card p,
.event-details-content .event-text,
.event-details-content .event-bullet-text,
.home-google-review-card p,
.home-google-reviews-summary,
.home-source-copy p,
.home-source-benefits span,
#experience_section p,
#experience_section .home-source-copy p,
#elena_section p,
#elena_section .elena-text p,
.elena-section p,
.elena-text p,
.elena-text-wrap p,
.about-content p,
.about-text p,
#tabs_section .tab-text-side p,
#tabs_section .tab-stylish-list li,
#tabs_section .tab-stylish-list span,
#tabs_section .tab-panel p,
#tabs_section .tab-panel li,
#tabs_section .tab-panel li span,
.tabs-section .tab-text-side p,
.tabs-section .tab-stylish-list li,
.tabs-section .tab-stylish-list span{
  font-size:19px!important;
  line-height:1.68!important;
}

/* Controls are intentionally smaller than body copy. */

button,
input,
textarea,
select,
.btn-gallery-book,
.btn-gallery-call,
.event-cta-btn,
.contact-card-btn,
.faq-directions-btn{
  font-size:17px!important;
}

/* Homepage event/problem section. */

#event_details_section .event-details-content{
  width:52%!important;
  max-width:700px!important;
}

#event_details_section .event-heading{
  width:100%!important;
  max-width:640px!important;
  margin:0 0 30px!important;
  font-size:clamp(42px,3.2vw,54px)!important;
  line-height:1.01!important;
  letter-spacing:-.024em!important;
  text-wrap:balance!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}

#event_details_section .event-heading .source-title-line{white-space:normal!important}

#event_details_section .event-text{max-width:620px!important;line-height:1.68!important;font-size:19px!important}

#event_details_section .event-subtitle{font-size:19px!important}

#event_details_section .event-bullet-text{font-size:19px!important}

/* Blog typography. */

.blog-card h2{
  font-size:clamp(26px,1.9vw,32px)!important;
  line-height:1.1!important;
  letter-spacing:-.012em!important;
}

.blog-card p{font-size:19px!important;line-height:1.62!important}

.blog-card-kicker{font-size:13px!important}

.blog-card-link{font-size:17px!important}

.blog-index-section .blog-card .blog-card-copy h2{
  font-size:22px!important;
  line-height:1.18!important;
  letter-spacing:-.006em!important;
}

.blog-index-section .blog-card .blog-card-copy>p{
  font-size:17px!important;
  line-height:1.5!important;
}

/* Article image and article+rail share exactly the same outer width. */

.article-media,
.article-body-wrap{
  width:min(1360px,calc(100% - 48px))!important;
  max-width:1360px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

.article-body-wrap{
  grid-template-columns:minmax(0,1fr) 340px!important;
  gap:48px!important;
}

.article-content{min-width:0!important}

/* Article/FAQ sticky rail uses page scrolling, never its own scrollbar. */

.article-aside,
.article-aside-sticky,
.faq-right-col{
  max-height:none!important;
  overflow:visible!important;
}

@media(max-width:1180px){
  #event_details_section .event-details-content{width:56%!important}
  #event_details_section .event-heading{font-size:clamp(40px,3.8vw,50px)!important;max-width:560px!important}
  .article-body-wrap{grid-template-columns:minmax(0,1fr) 310px!important;gap:32px!important}
}

@media(max-width:980px){
  #event_details_section .event-details-content{width:62%!important}
  #event_details_section .event-heading{font-size:44px!important;max-width:520px!important}
  .article-media,.article-body-wrap{width:min(100% - 36px,1360px)!important}
  .article-body-wrap{display:block!important}
}

@media(max-width:700px){
  #event_details_section .event-details-content{width:100%!important;max-width:none!important}
  #event_details_section .event-heading{font-size:37px!important;line-height:1.03!important;max-width:14ch!important}
  #event_details_section .event-subtitle{font-size:18px!important}
  .blog-card h2{font-size:28px!important}
  .blog-index-section .blog-card .blog-card-copy h2{font-size:21px!important;line-height:1.2!important}
  .blog-index-section .blog-card .blog-card-copy>p{font-size:17px!important;line-height:1.5!important}
  .article-media,.article-body-wrap{width:calc(100% - 32px)!important}
}


/* ===== from css/content-2026-final.css ===== */

/* 2026 content UX polish. */

/* Blog cards: consistent media, full-card click target, restrained hover. */

.blog-card{position:relative;transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease!important}

.blog-card>a{display:flex!important;flex-direction:column!important;height:100%!important}

.blog-card-media{aspect-ratio:16/10!important;height:auto!important;overflow:hidden!important}

.blog-card-copy{display:flex!important;flex:1!important;flex-direction:column!important}

.blog-card-link{margin-top:auto!important}

.blog-card:hover{transform:translateY(-3px)!important;border-color:rgba(47,106,130,.25)!important;box-shadow:0 18px 38px rgba(6,45,61,.09)!important}

.blog-card:hover .blog-card-media img{transform:scale(1.025)!important}

/* Article AEO blocks. */

.article-quick-answer{margin:0 0 30px;padding:24px 26px;border:1px solid rgba(47,106,130,.14);border-left:5px solid #2F6A82;border-radius:16px;background:#f7fbfc}

.article-quick-answer>span,.article-section-kicker{display:block;margin-bottom:8px;color:#2F6A82;font:700 13px/1.2 'Roboto',sans-serif;letter-spacing:.11em;text-transform:uppercase}

.article-quick-answer p{margin:0!important;font-size:19px!important;line-height:1.65!important;color:#33464e}

.article-reviewed{display:flex;align-items:center;gap:9px;margin:-12px 0 32px;color:#59676d;font-size:15px}

.article-reviewed i{color:#2F6A82}

.article-faqs{margin-top:54px;padding-top:42px;border-top:1px solid rgba(47,106,130,.12)}

.article-faqs h2{margin:0 0 22px!important}

.article-faqs details{border-top:1px solid rgba(47,106,130,.12)}

.article-faqs details:last-child{border-bottom:1px solid rgba(47,106,130,.12)}

.article-faqs summary{cursor:pointer;list-style:none;padding:18px 38px 18px 0;position:relative;color:#062D3D;font-weight:700;font-size:19px;line-height:1.35}

.article-faqs summary::-webkit-details-marker{display:none}

.article-faqs summary::after{content:'+';position:absolute;right:4px;top:14px;color:#2F6A82;font-size:26px;font-weight:400}

.article-faqs details[open] summary::after{content:'–'}

.article-faqs details p{margin:0 0 20px!important;color:#5c666a}

.article-related-inline{margin-top:36px;padding:20px;border-radius:16px;background:#f3e8dc}

.article-related-inline>strong{display:block;margin-bottom:10px;color:#062D3D;font-size:14px}

.article-related-inline>div{display:flex;flex-wrap:wrap;gap:7px}

.article-related-inline a{display:inline-flex;padding:6px 10px;border:1px solid rgba(47,106,130,.16);border-radius:999px;background:#fff;color:#2F6A82;text-decoration:none;font-size:12px;line-height:1.2;font-weight:700}

.article-related-inline a:hover{border-color:#2F6A82}

/* Article sidebar: one source of truth for rail typography. */

.article-aside>p{
  font-size:15px;
  line-height:1.55;
  margin-bottom:18px!important;
}

.article-aside-trust{display:flex;align-items:center;gap:10px;margin:20px 0 4px;padding:13px 14px;border-radius:14px;background:#f3e8dc;color:#062D3D}

.article-aside-trust i{color:#2F6A82}

.article-aside-trust strong{font-size:15px;line-height:1.4}

.article-aside-block h3{font-size:14px;line-height:1.3}

.article-aside-block li,
.article-aside-block li span,
.article-aside-links a,
.article-aside-local span{
  font-size:15px;
  line-height:1.5;
}

.article-aside__actions{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;margin-top:14px!important}

.article-aside__actions .article-call,
.article-aside__actions .article-directions{
  margin:0!important;
  width:100%!important;
  min-height:42px!important;
  padding:0 16px!important;
  border-radius:999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:13px!important;
  line-height:1!important;
}

.article-aside__actions .article-call{background:#2F6A82!important;border:1px solid #2F6A82!important;color:#fff!important}

.article-aside__actions .article-call:hover{background:#2F6A82!important;border-color:#2F6A82!important;color:#fff!important;filter:brightness(.94)}

/* Work gallery: normal visible images, no JS-dependent loading state. */

.work-gallery-grid .gallery-thumb{position:relative;min-height:260px;background:#f1ece7;overflow:hidden}

.work-gallery-grid .gallery-thumb img{position:relative;z-index:1;opacity:1!important;transition:transform .35s ease}

/* Real bug found in the 2026-09 mobile audit: /realisations/ and /en/work/
   set grid-template-columns:repeat(4,1fr) as an INLINE style in
   gallery-page.php, and no rule anywhere overrode it at any width --
   every other grid on the site has a mobile column count, this one never
   did. That alone wasn't the full story: the grid tracks WERE actually
   resolving to ~68px at a phone width (confirmed via
   getComputedStyle().gridTemplateColumns), but each .gallery-thumb still
   rendered at a fixed 260x260 (from aspect-ratio:1/1 + this file's own
   min-height:260px, and separately .work-gallery-section .gallery-thumb
   img{height:300px!important} a few hundred lines up) -- a grid item's
   default min-width is "auto" (its content size), so without min-width:0
   it refuses to shrink below that 260px and overflows sideways into the
   next column instead of scaling down. That overflow, not the column
   count, is what produced the overlapping-slivers look in the mobile
   screenshots. !important on grid-template-columns is required to beat
   the inline style (a plain rule cannot). */
@media(max-width:900px){
  .work-gallery-grid{grid-template-columns:repeat(2,1fr)!important;gap:16px!important;}
  .work-gallery-grid .gallery-thumb{min-width:0!important;min-height:0!important;}
  .work-gallery-grid .gallery-thumb img{height:100%!important;}
}
@media(max-width:480px){
  .work-gallery-grid{grid-template-columns:1fr!important;}
}

@media(max-width:700px){
  .article-quick-answer{padding:20px}
  .article-related-inline>div{display:grid}
  .article-related-inline a{justify-content:center;padding:7px 10px}
}


/* ===== from css/teal-blog-title-fix-20260829.css ===== */

/* Final teal UI, button effects and asset locks. Typography lives in dedicated files. */

:root{
  --primary-teal:#2F6A82;
}

.site-header .btn-header-call{
  background:#2F6A82!important;
  border-color:#2F6A82!important;
  color:#fff!important;
}

.site-header .btn-header-call:hover{
  background:#2F6A82!important;
  border-color:#2F6A82!important;
  color:#fff!important;
}

.page-title-heading,
.page-breadcrumbs a:hover,
.header-find-link,
.header-find-link:hover,
.tab-text-side h3,
.tab-stylish-list i,
.article-kicker,
.article-section-kicker,
.article-quick-answer>span,
.blog-card-kicker,
.blog-card-link,
.article-directions{
  color:#2F6A82!important;
}

/* FAQ card sits on teal: outlined directions button stays readable. */

.faq-contact-card .faq-directions-btn,
.faq-contact-card .faq-directions-btn:visited,
.faq-contact-card .faq-directions-btn:hover,
.faq-contact-card .faq-directions-btn:focus{
  color:#fff!important;
}

.faq-contact-card .faq-directions-btn i{
  color:#fff!important;
}

.tabs-nav-wrap .tab-btn.active,
.tabs-nav-wrap .tab-btn:hover,
.ndg-back-to-top,
.event-cta-card,
.service-hub-card:hover{
  background-color:#2F6A82!important;
}

.site-header .btn-header-call,
.hero-secondary-cta,
.btn-gallery-call,
.event-cta-btn,
.btn-tab-service,
.home-google-reviews-actions a,
.service-card-btn,
.article-call{
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate!important;
}

.site-header .btn-header-call::after,
.hero-secondary-cta::after,
.btn-gallery-call::after,
.event-cta-btn::after,
.btn-tab-service::after,
.home-google-reviews-actions a::after,
.service-card-btn::after,
.article-call::after{
  content:''!important;
  position:absolute!important;
  top:-35%!important;
  bottom:-35%!important;
  left:-48%!important;
  width:34%!important;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.46),transparent)!important;
  transform:skewX(-18deg) translateX(-180%)!important;
  transition:transform .58s cubic-bezier(.2,.8,.2,1)!important;
  pointer-events:none!important;
  z-index:2!important;
}

.site-header .btn-header-call:hover::after,
.hero-secondary-cta:hover::after,
.btn-gallery-call:hover::after,
.event-cta-btn:hover::after,
.btn-tab-service:hover::after,
.home-google-reviews-actions a:hover::after,
.service-card-btn:hover::after,
.article-call:hover::after{
  transform:skewX(-18deg) translateX(540%)!important;
}

html body > .ndg-back-to-top{
  position:fixed!important;
  top:auto!important;
  right:22px!important;
  bottom:22px!important;
  left:auto!important;
  margin:0!important;
  transform:none!important;
  z-index:99999!important;
  width:48px!important;
  height:48px!important;
  overflow:hidden!important;
}

html body > .ndg-back-to-top:not(.is-visible){transform:translateY(12px)!important}

html body > .ndg-back-to-top.is-visible{transform:translateY(0)!important}

html body > .ndg-back-to-top.is-visible:hover{transform:translateY(-3px)!important}

/* Homepage backgrounds use direct repository assets only. */

html body #hero_section.hero-section{
  background-image:url('/assets/NDG_professional-tailor-montreal2.jpg')!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  background-position:right 38%!important;
}

html body #event_details_section.event-details-section{
  background-image:
    linear-gradient(90deg,rgba(243,232,220,.995) 0%,rgba(243,232,220,.99) 31%,rgba(243,232,220,.88) 40%,rgba(243,232,220,.48) 49%,rgba(243,232,220,.10) 58%,rgba(243,232,220,0) 66%),
    url('/assets/ndg-professional-tailor-montreal-robe-evenement-terracotta.jpg')!important;
}

html body #gallery_section.gallery-section{
  background-image:
    linear-gradient(rgba(47,106,130,.58),rgba(47,106,130,.58)),
    url('/assets/bg3.jpg')!important;
}

@media(max-width:700px){
  html body > .ndg-back-to-top{right:14px!important;bottom:14px!important;left:auto!important;width:44px!important;height:44px!important}
  html body #hero_section.hero-section{background-position:74% 34%!important}
  html body #event_details_section.event-details-section{background-image:none!important}
}


/* Gallery carousel arrows: anchored to a dedicated wrapper around just the
   image row (see js/source-match-v2.js), so they stay centered on the
   photos regardless of how many lines the heading above wraps to. This is
   the single rule that should govern position/vertical-centering going
   forward -- it is last in the cascade on purpose. */
.gallery-track-wrap{
  position:relative!important;
}
#gallery_section .home-gallery-arrow{
  position:absolute!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  left:auto;
  right:auto;
}
#gallery_section .home-gallery-arrow:hover{
  transform:translateY(-50%) scale(1.06)!important;
}
#gallery_section .home-gallery-prev{left:-22px!important}
#gallery_section .home-gallery-next{right:-22px!important}
@media(max-width:900px){
  #gallery_section .home-gallery-prev{left:8px!important}
  #gallery_section .home-gallery-next{right:8px!important}
}
@media(max-width:700px){
  #gallery_section .home-gallery-arrow{display:none!important}
}


/* ---- Final overrides for event/gallery section backgrounds (last wins on
   purpose -- this file has many older duplicate/conflicting rules for the
   same two selectors from prior edits; rather than hunt every one down,
   these authoritative rules are appended last so they always govern). ---- */

/* "Une robe a ajuster ou reparer" section: real blue-gown photo instead of
   the (still corrupted, never actually usable) placeholder file. */
html body #event_details_section.event-details-section{
  background-image:
    linear-gradient(90deg,rgba(243,232,220,.995) 0%,rgba(243,232,220,.99) 31%,rgba(243,232,220,.88) 40%,rgba(243,232,220,.48) 49%,rgba(243,232,220,.10) 58%,rgba(243,232,220,0) 66%),
    url('/assets/ndg-professional-tailor-montreal-robe-bleue-sur-mesure.jpg')!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  background-position:center top!important;
}

/* Gallery/carousel section: teal band covers only the top half (heading +
   photos) and hands off to solid white for the bottom half (action
   buttons), matching the original source-match design. A flat full-height
   tint (my earlier edit) had replaced that hard stop -- restoring it here,
   as a percentage stop so it holds regardless of heading line count. */
html body #gallery_section.gallery-section{
  background-color:#fff!important;
  background-image:
    linear-gradient(to bottom, rgba(47,106,130,.86) 0%, rgba(47,106,130,.86) 55%, #fff 55%, #fff 100%),
    url('/assets/bg3.jpg')!important;
  background-repeat:no-repeat,no-repeat!important;
  background-size:100% 100%,cover!important;
  background-position:center top,center top!important;
}


/* Only real, text-quote reviews shown now (rating-only placeholder card
   removed) -- four genuine reviews, four columns on desktop so the row
   fills evenly instead of leaving an odd gap. */
html body .home-review-cards{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  max-width:1400px!important;
  margin:0 auto!important;
}
@media(max-width:1100px){
  html body .home-review-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:820px!important}
}
@media(max-width:700px){
  html body .home-review-cards{grid-template-columns:1fr!important;max-width:480px!important}
}

/* Gallery heading: match original 900px measure so the French heading wraps
   to 2 lines on desktop instead of 4 (a later 660px override had shrunk it). */
@media(min-width:901px){
  #gallery_section .gallery-heading{max-width:900px!important;}
}

/* Gallery heading: fixed font-size (not viewport-scaled) so line count and
   section height stay constant across window widths -- matches the
   original design, which used a flat 36px rather than a vw-based clamp. */
@media(min-width:901px){
  #gallery_section .gallery-heading{
    font-size:38px!important;
    line-height:1.15!important;
    max-width:920px!important;
  }
}

/* ===== tab_custom icon fix, take 2 =====
   Root cause (unchanged from the first pass): #tab_custom .tab-stylish-list
   li > i (line ~4796) and #tabs_section .tab-stylish-list li i (line
   ~7097) have IDENTICAL CSS specificity, so for every property BOTH
   rules set, the later one (7097, plus its color/shadow retouch further
   down) wins -- that's the real, currently-live design: 42px lavender
   discs with teal icons (38px on small mobile). min-width is the ONE
   property only the earlier #tab_custom rule sets, so it was never
   overridden and kept forcing the box to 56px (or 50px under 820px)
   wide while height stayed 42px/38px -- a stretched oval.
   Fix: neutralize ONLY min-width, nothing else. This does not touch
   width, height, background, color, font-size, border-radius -- those
   keep resolving exactly as they already do today. */
#tabs_section #tab_custom .tab-stylish-list li > i{
  min-width:0!important;
}

/* ===== Reviews section: close the oversized gap under the carousel, wrap
   the heading to 2 lines =====
   #gallery_section{margin-bottom:92px!important} (an id-only rule, set
   separately from the .gallery-section padding rules) stacked on top of
   .home-google-reviews{padding:112px 0 78px!important} (from
   homepage-trust-map.css, loaded after the earlier 96px attempt so it's
   the one that wins) -- 92px + 112px = 204px of plain white before the
   review cards even start. Trimming both, at every breakpoint that sets
   them, to a normal section gap. */
#gallery_section{margin-bottom:24px!important;}
.home-google-reviews{padding-top:56px!important;}
@media(max-width:820px){
  #gallery_section{margin-bottom:20px!important;}
  .home-google-reviews{padding-top:46px!important;}
}
@media(max-width:560px){
  #gallery_section{margin-bottom:16px!important;}
  .home-google-reviews{padding-top:38px!important;}
}

/* Reviews heading: fixed font-size + a measure narrow enough to force 2
   lines (matches the fixed-38px pattern used for the gallery heading --
   the previous clamp(34px,3vw,48px) let it sit on one line at most
   desktop widths). Verified 2 lines for both the FR and EN titles. */
#google-reviews-title{
  font-size:38px!important;
  line-height:1.12!important;
  max-width:520px!important;
}

/* ===== Gallery heading: consolidated mobile rule (2026-09 audit) =====
   This selector had 7 separate mobile-width declarations scattered across
   the file (now commented out in place, near lines 3013-6949, rather than
   deleted, so the history stays visible), each setting a different
   font-size/max-width/margin combo -- last-in-file-wins made the actual
   result impossible to predict without tracing all of them. On top of
   that, an unrelated unconditional rule further down (~line 7791, fixed
   separately) had no media guard and was overriding all of them anyway,
   which was the proximate cause of the 8-line, 322px-tall heading found
   in the mobile audit screenshots.
   Replaced with one rule: 26px + max-width:92vw gives a clean 4-line
   wrap at 178px shorter than before, tested at 375-390px viewports for
   both the FR and EN sentences. The >=901px desktop rule (bottom of
   file, from the earlier gallery-heading fix) is untouched and still
   governs desktop/tablet on its own. */
@media(max-width:700px){
  #gallery_section .gallery-heading{
    font-size:26px!important;
    line-height:1.08!important;
    max-width:92vw!important;
    margin-bottom:48px!important;
  }
}


/* ===== Self-audit fixes (2026-09-03) ===== */

/* 1) Service page checklist icons were huge/solid-teal (58px circles) --
   service-page.php renders the exact same `.tab-stylish-list` markup as
   the homepage tabs, but OUTSIDE any #tabs_section/#tab_custom wrapper,
   so none of the ID-scoped homepage icon rules ever reached it. It fell
   back to the old base `.tab-stylish-list li i` rule (~line 2457): a
   solid 58px teal circle, white icon. Matching the real homepage look
   here (42px lavender disc / teal icon, 38px at small mobile).
   Unscoped on purpose: same specificity as that old base rule, appended
   later so it wins on service pages, while every ID-scoped homepage
   rule (#tabs_section / #tab_custom, higher specificity) is untouched. */
.tab-stylish-list li i{
  width:42px!important;
  height:42px!important;
  flex:0 0 42px!important;
  min-width:0!important;
  border-radius:50%!important;
  background:#e6d9e9!important;
  color:#2F748E!important;
  font-size:17px!important;
  box-shadow:none!important;
}
@media(max-width:600px){
  .tab-stylish-list li i{
    width:38px!important;
    height:38px!important;
    flex-basis:38px!important;
    font-size:15px!important;
  }
}

/* 2) Reviews heading had no left-side breathing room on mobile: it sets
   max-width:520px but no margin, so as a block element it hugs the LEFT
   edge of its (text-align:center) parent instead of centering as a box
   -- the text centers inside a box that itself was never centered. */
#google-reviews-title{
  margin-left:auto!important;
  margin-right:auto!important;
}

/* 3) Mobile tabs nav (5 pills, wider than the viewport) scrolls
   horizontally by design -- there just wasn't any visual hint that it
   scrolls. Adding an edge fade so the cut-off pill reads as "more to the
   right" instead of looking like a layout bug. */
@media(max-width:900px){
  #tabs_section .tabs-nav-wrap{
    -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent 100%)!important;
    mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent 100%)!important;
  }
}


/* ===== Self-audit fix: duplicate "blue dress" mobile image (2026-09-03) =====
   Root cause found by inspecting the LIVE rendered DOM (this element does
   not exist in index.php's source -- it's injected by conversion-final.js
   on every load): two separate, unrelated mechanisms were both active at
   <=700px for showing a mobile-only photo under the event/CTA text --

   1) An older CSS-only fallback (labelled "works even before JS"):
      #event_details_section .container-custom::after{...background:
      url('/assets/dress_blue_gown_1787589351224.jpg')...} (~line 6751).
   2) A newer real <img> element, .event-mobile-media, holding
      /assets/ndg-professional-tailor-montreal-robe-bleue-sur-mesure.jpg,
      injected by JS and set to display:block!important further down in
      the same stylesheet (~line 6933) -- WITHOUT ever disabling #1.

   Both are unconditional !important rules inside the same max-width:700px
   context, so both rendered at once: two near-identical blue gown photos
   stacked in the same block. Keeping the real <img> version (JS-injected,
   has proper structure for future alt text) and killing the older ::after
   background fallback for good. */
@media(max-width:700px){
  #event_details_section .container-custom::after{
    content:none!important;
    display:none!important;
    background-image:none!important;
    height:0!important;
    margin:0!important;
  }
}
