@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;600;700&family=Space+Grotesk:wght@500;700&display=swap');:root{--font-display:'Cormorant Garamond',Georgia,'Times New Roman',serif;--font-accent:'Space Grotesk','DM Sans',sans-serif;--gold:#C8A871;--gold-light:#D4B88A;--gold-dark:#B8964D;--gold-glow:rgba(200,168,113,0.15);--shadow-card:0 2px 8px rgba(0,0,0,0.06);--shadow-card-hover:0 12px 40px rgba(0,0,0,0.12);--shadow-gold:0 4px 20px rgba(200,168,113,0.25)}h1{font-family:var(--font-display);font-weight:700;letter-spacing:-0.03em;line-height:1.05}h2{font-family:var(--font-display);font-weight:600;letter-spacing:-0.02em;line-height:1.1}h3{font-family:var(--font-display);font-weight:600;letter-spacing:-0.01em}.label,.badge-text,.trust-item{font-family:var(--font-accent)}.hero{min-height:100vh}.hero h1{font-size:clamp(3rem,7vw,5rem);text-shadow:0 2px 30px rgba(0,0,0,0.3)}.hero-content p{font-size:1.1rem;line-height:1.7;max-width:600px}.hero-proof{border:1px solid rgba(200,168,113,0.2) !important;border-radius:12px !important}.trust-bar{background:var(--bg-secondary);padding:1.2rem var(--container-padding) !important;border-bottom:1px solid var(--border)}.trust-item{font-family:var(--font-accent);font-size:0.82rem;font-weight:500;letter-spacing:0.08em}.trust-check{color:var(--gold)}.section-header h2{font-size:clamp(2rem,4.5vw,3.2rem)}.section-header .label{font-family:var(--font-accent);font-weight:500;letter-spacing:0.15em;font-size:0.72rem}.division-card,.service-card,.vtesti-card,.gallery-card,.premium-card{border-radius:12px;transition:all 0.4s cubic-bezier(0.4,0.36,0,1)}.division-card:hover,.service-card:hover,.premium-card:hover{transform:translateY(-6px);box-shadow:0 12px 40px rgba(0,0,0,0.1)}.division-card h3,.service-card h3{font-family:var(--font-display);font-weight:600}.process-step h3{font-family:var(--font-display);font-weight:600;font-size:1.4rem}.process-step-number{font-family:var(--font-accent);font-weight:700}.vtesti-card blockquote{font-family:var(--font-display);font-size:1.05rem;font-style:italic;line-height:1.7;font-weight:400}.vtesti-author{font-family:var(--font-body);font-weight:600}.vtesti-loc{font-family:var(--font-accent);font-size:0.78rem;letter-spacing:0.08em;text-transform:uppercase}.vtesti-stars{color:var(--gold) !important}.btn-primary,.nav-cta{background:var(--gold) !important;font-family:var(--font-body);font-weight:600;border-radius:8px;box-shadow:var(--shadow-gold);transition:all 0.3s cubic-bezier(0.4,0.36,0,1)}.btn-primary:hover,.nav-cta:hover{background:var(--gold-dark) !important;transform:translateY(-2px);box-shadow:0 6px 25px rgba(200,168,113,0.4)}.btn-whatsapp{font-family:var(--font-body);font-weight:600;border-radius:8px}.btn-secondary{font-family:var(--font-body);font-weight:600;border-radius:8px}.faq-question{font-family:var(--font-body);font-weight:600}.footer h3{font-family:var(--font-accent);font-size:0.72rem;letter-spacing:0.15em;text-transform:uppercase}.footer-brand p{font-size:0.88rem;line-height:1.7}.seo-directory h3{font-family:var(--font-accent)}.ba-section{padding:var(--section-padding) var(--container-padding)}.ba-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px;max-width:var(--container-width);margin:0 auto}.ba-slider{position:relative;overflow:hidden;border-radius:12px;box-shadow:var(--shadow-card);cursor:ew-resize;user-select:none;-webkit-user-select:none}.ba-slider .ba-before{display:block;width:100%;height:auto;object-fit:cover}.ba-slider .ba-after{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:inset(0 0 0 50%);z-index:2}.ba-slider .ba-handle{position:absolute;top:0;left:50%;width:2px;height:100%;background:rgba(255,255,255,0.9);z-index:10;box-shadow:0 0 8px rgba(0,0,0,0.3);transform:translateX(-50%)}.ba-slider .ba-handle-circle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;background:white;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,0.2);color:var(--gold);font-size:14px;font-weight:700}.ba-label{position:absolute;bottom:12px;padding:5px 12px;font-family:var(--font-accent);font-size:10px;text-transform:uppercase;letter-spacing:0.12em;font-weight:500;border-radius:6px;z-index:5}.ba-label-before{left:12px;background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);color:white;z-index:20}.ba-label-after{right:12px;background:var(--gold);color:white;z-index:20}.ba-caption{text-align:center;font-size:0.85rem;color:var(--text-secondary);margin-top:12px}.v2-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:var(--container-width);margin:0 auto;padding:0 var(--container-padding)}.v2-stat{text-align:center;padding:32px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;transition:all 0.3s ease}.v2-stat:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}.v2-stat-icon{width:48px;height:48px;margin:0 auto 16px;background:var(--gold-glow);border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--gold)}.v2-stat-number{font-family:var(--font-display);font-size:2.5rem;font-weight:700;color:var(--text-primary);line-height:1}.v2-stat-label{font-family:var(--font-body);font-weight:600;font-size:0.88rem;color:var(--text-primary);margin-top:4px}.v2-stat-desc{font-size:0.78rem;color:var(--text-dim);margin-top:4px}@media (max-width:768px){.v2-stats{grid-template-columns:repeat(2,1fr);gap:12px}.ba-grid{grid-template-columns:1fr}.v2-stat{padding:24px 12px}.v2-stat-number{font-size:2rem}}.fade-up{opacity:0;transform:translateY(30px);transition:opacity 0.7s cubic-bezier(0.4,0.36,0,1),transform 0.7s cubic-bezier(0.4,0.36,0,1)}.fade-up.visible{opacity:1;transform:translateY(0)}.stagger>*:nth-child(1){transition-delay:0s}.stagger>*:nth-child(2){transition-delay:0.08s}.stagger>*:nth-child(3){transition-delay:0.1s}.stagger>*:nth-child(4){transition-delay:0.18s}.stagger>*:nth-child(5){transition-delay:0.24s}.stagger>*:nth-child(6){transition-delay:0.3s}.community-hero{position:relative;min-height:50vh;display:flex;align-items:flex-end;overflow:hidden;margin-bottom:0}.community-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.community-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.7) 0%,rgba(0,0,0,0.2) 60%,transparent 100%)}.community-hero-content{position:relative;z-index:10;padding:3rem var(--container-padding);max-width:var(--container-width);margin:0 auto;width:100%;color:white}.community-hero-content h1{color:white;font-size:clamp(2.2rem,5vw,3.5rem);margin-bottom:0.5rem}.community-hero-meta{font-family:var(--font-accent);font-size:0.82rem;letter-spacing:0.08em;color:rgba(255,255,255,0.7)}.service-hero{position:relative;min-height:45vh;display:flex;align-items:flex-end;overflow:hidden}.service-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.service-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to right,rgba(0,0,0,0.75) 0%,rgba(0,0,0,0.3) 60%,transparent 100%)}.service-hero-content{position:relative;z-index:10;padding:3rem var(--container-padding);max-width:var(--container-width);margin:0 auto;width:100%;color:white}.service-hero-content h1{color:white;font-size:clamp(2rem,4.5vw,3.2rem);margin-bottom:0.5rem}.service-hero-badge{display:inline-flex;gap:12px;font-family:var(--font-accent);font-size:0.78rem;letter-spacing:0.06em;color:rgba(255,255,255,0.8);background:rgba(200,168,113,0.2);padding:8px 16px;border-radius:6px;margin-bottom:16px}.gallery-card{border-radius:12px;overflow:hidden}.gallery-card img{transition:transform 0.6s cubic-bezier(0.4,0.36,0,1)}.gallery-card:hover img{transform:scale(1.05)}.gallery-card-overlay{border-radius:0 0 12px 12px}.gallery-card-overlay h3{font-family:var(--font-display);font-weight:600}.cta-block h2{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem)}.whatsapp-float{box-shadow:0 4px 15px rgba(37,211,102,0.4);animation:wa-pulse-v2 2s infinite;border-radius:50%}@keyframes wa-pulse-v2{0%,100%{box-shadow:0 4px 15px rgba(37,211,102,0.4)}50%{box-shadow:0 4px 30px rgba(37,211,102,0.6)}}.desktop-sticky-cta .desktop-sticky-text{font-family:var(--font-body)}.desktop-sticky-cta .desktop-sticky-text strong{color:var(--gold)}.nav-name{font-family:var(--font-display);font-weight:600}.nav-links>li>a{font-family:var(--font-body);font-weight:500}.nav-dropdown-menu a{font-family:var(--font-body)}@media print{.whatsapp-float,.sticky-cta,.desktop-sticky-cta,.exit-popup-overlay{display:none !important}}

/* ═══════════════════════════════════════════════════════════════════
   UNIVERSAL MOBILE OVERRIDE v3 — single column EVERYWHERE
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {

  /* ═══ AGGRESSIVE: ALL GRID-TEMPLATE-COLUMNS → 1FR ═══ */
  /* No exclusions. Forcing 1fr to 1fr is a no-op. Forcing anything else helps. */
  *[style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }

  /* ═══ ALL CSS COLUMN PROPERTIES → 1 ═══ */
  *[style*="columns:"],
  *[style*="column-count"],
  .community-grid, .gallery-scroll, .masonry-gallery, .service-gallery,
  .gallery-card, [class*="gallery"] {
    columns: 1 !important;
    column-count: 1 !important;
  }

  /* ═══ ALL KNOWN GRID/COLUMN CLASSES ═══ */
  .credentials-grid, .service-gallery, .v2-stats, .process-grid,
  .pricing-grid, .features-grid, .grid-2, .grid-3, .grid-4, .grid-5, .grid-6,
  .stats-bar, .stats-grid, .seo-grid, .divisions-grid,
  .testimonials-grid, .blog-grid, .portfolio-grid, .team-grid,
  .video-gallery, .video-testimonials, .vtesti-grid, .video-reel,
  .footer-top, .footer-communities-grid, .resources-grid, .related-grid,
  .guide-hub-grid, .lb-grid, .form-row, .qf-row,
  .two-col, .lp-pricing-grid, .lp-process-grid, .lp-features-grid,
  .row, .cols, .columns, [class*="-cols"], [class*="cols-"],
  [class*="-grid"]:not(.sticky-mobile-cta),
  [class*="grid-"]:not(.sticky-mobile-cta) {
    display: block !important;
  }
  .credentials-grid > *, .service-gallery > *, .v2-stats > *, .process-grid > *,
  .pricing-grid > *, .features-grid > *, .grid-2 > *, .grid-3 > *, .grid-4 > *,
  .stats-bar > *, .stats-grid > *, .seo-grid > *, .divisions-grid > *,
  .testimonials-grid > *, .blog-grid > *, .portfolio-grid > *, .team-grid > *,
  .video-gallery > *, .video-testimonials > *, .vtesti-grid > *, .video-reel > *,
  .footer-top > *, .footer-communities-grid > *, .resources-grid > *, .related-grid > *,
  .guide-hub-grid > *, .lb-grid > *, .form-row > *, .qf-row > *,
  .two-col > *, .lp-pricing-grid > *, .lp-process-grid > *, .lp-features-grid > * {
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 1rem;
  }

  /* ═══ ALL FLEX ROWS → STACK ═══ */
  /* Inline flex containers stack as column-direction (single col top-to-bottom) */
  /* Allow inline flex to wrap (don't force column - preserves arrow+text patterns) */
  *[style*="display:flex"]:not(.sticky-mobile-cta):not(.nav):not(.sticky-cta-inner),
  *[style*="display: flex"]:not(.sticky-mobile-cta):not(.nav):not(.sticky-cta-inner) {
    flex-wrap: wrap !important;
  }
  /* Inline flex children full width when stacked */
  *[style*="display:flex"]:not(.sticky-mobile-cta):not(.nav):not(.sticky-cta-inner) > div:not([style*="display:flex"]):not([style*="display: flex"]), *[style*="display:flex"]:not(.sticky-mobile-cta):not(.nav):not(.sticky-cta-inner) > section, *[style*="display:flex"]:not(.sticky-mobile-cta):not(.nav):not(.sticky-cta-inner) > article {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* ═══ INLINE FRACTIONAL WIDTHS → FULL ═══ */
  [style*="width:50%"], [style*="width: 50%"],
  [style*="width:33%"], [style*="width: 33%"],
  [style*="width:33.3"], [style*="width: 33.3"],
  [style*="width:25%"], [style*="width: 25%"],
  [style*="width:66%"], [style*="width: 66%"],
  [style*="width:75%"], [style*="width: 75%"],
  [style*="flex:1 1 50%"], [style*="flex: 1 1 50%"],
  [style*="flex-basis:50%"], [style*="flex-basis: 50%"],
  [style*="flex:1 1 33%"], [style*="flex: 1 1 33%"] {
    width: 100% !important;
    flex-basis: 100% !important;
  }

  /* ═══ TABLES — STACK EACH ROW AS A CARD ═══ */
  /* For tables marked with .stack-rows-mobile, fully reformat */
  table.stack-rows-mobile,
  table.stack-rows-mobile thead,
  table.stack-rows-mobile tbody,
  table.stack-rows-mobile tr,
  table.stack-rows-mobile th,
  table.stack-rows-mobile td {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  table.stack-rows-mobile thead { display: none !important; }
  table.stack-rows-mobile tr {
    margin-bottom: 1rem !important;
    border: 1px solid rgba(184,146,75,0.2) !important;
    border-radius: 8px !important;
    padding: 0.5rem !important;
    background: #FAFAF8 !important;
  }
  table.stack-rows-mobile td {
    padding: 0.5rem !important;
    border-bottom: 1px solid rgba(0,0,0,0.05) !important;
    text-align: left !important;
  }
  table.stack-rows-mobile td:before {
    content: attr(data-label) ": ";
    font-weight: 600;
    color: #B8924B;
    display: inline-block;
    width: 40%;
  }
  /* Default tables — horizontal scroll wrapper */
  table:not(.stack-rows-mobile):not(.no-mobile-scroll) {
    display: block !important;
    overflow-x: auto !important;
    max-width: 100% !important;
    -webkit-overflow-scrolling: touch !important;
  }

  /* ═══ TYPOGRAPHY BEAUTIFICATION ═══ */
  body { font-size: 15px !important; line-height: 1.7 !important; }
  h1 { font-size: clamp(1.7rem, 6.5vw, 2.4rem) !important; line-height: 1.18 !important; letter-spacing: -0.01em !important; }
  h2 { font-size: clamp(1.35rem, 5.2vw, 1.85rem) !important; line-height: 1.22 !important; }
  h3 { font-size: clamp(1.05rem, 4.2vw, 1.35rem) !important; line-height: 1.3 !important; }
  h4 { font-size: 0.95rem !important; line-height: 1.4 !important; }
  p { font-size: 0.95rem !important; line-height: 1.7 !important; max-width: 100% !important; }

  /* ═══ SPACING ═══ */
  [style*="padding:5rem"], [style*="padding: 5rem"],
  [style*="padding:6rem"], [style*="padding: 6rem"],
  [style*="padding:7rem"], [style*="padding: 7rem"],
  [style*="padding:8rem"], [style*="padding: 8rem"],
  [style*="padding: 4rem"], [style*="padding:4rem"] {
    padding: 2.5rem 1.2rem !important;
  }
  section, .section { padding-left: 1.2rem !important; padding-right: 1.2rem !important; }
  [style*="max-width:720px"], [style*="max-width: 720px"],
  [style*="max-width:800px"], [style*="max-width: 800px"],
  [style*="max-width:880px"], [style*="max-width: 880px"],
  [style*="max-width:1000px"], [style*="max-width: 1000px"],
  [style*="max-width:1200px"], [style*="max-width: 1200px"] {
    max-width: 100% !important;
  }

  /* ═══ TOUCH TARGETS ═══ */
  button, .btn, [class*="-btn"], [class*="btn-"], input[type="submit"], input[type="button"], a.cta, .cta {
    min-height: 48px !important;
  }

  /* ═══ FORM POLISH ═══ */
  input[type="text"], input[type="email"], input[type="tel"],
  input[type="number"], input[type="search"], textarea, select {
    font-size: 16px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    min-height: 48px !important;
  }

  /* ═══ IMAGES + MEDIA ═══ */
  img, video, iframe { max-width: 100% !important; height: auto !important; }

  /* ═══ EXEMPT KNOWN HORIZONTAL CONTAINERS ═══ */
  /* Sticky mobile CTAs MUST stay row to fit WhatsApp + Call buttons side-by-side */
  .sticky-mobile-cta { display: flex !important; flex-direction: row !important; }
  .sticky-mobile-cta > * { width: auto !important; flex: 1 !important; }
  .nav { display: flex !important; flex-direction: row !important; }
  .sticky-cta-inner { display: flex !important; }
  .nav-mobile-actions { display: flex !important; flex-direction: row !important; }
}

/* ═══ SUB-480PX REFINEMENTS ═══ */
@media (max-width: 480px) {
  .nav-name { font-size: 0.95rem !important; }
  .nav-logo { width: 36px !important; height: 36px !important; }
  h1 { font-size: 1.55rem !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   UNIVERSAL MOBILE OVERRIDE v3.1 — extra class collapse + table cards
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* Class-based grids missed by [class*='-grid'] selector */
  .budgetgrid, .case-stats, .chips, .cols-3, .edu-cards, .fd-row, .g-row, .g2,
  .gal-g, .grid, .howin, .lb-compare, .leadgrid, .lp-stats, .pr-inc, .prc-st,
  .process, .process-steps, .process-timeline, .process-timeline-6, .res-inc,
  .resource-cards, .roi-g, .row2, .services-list, .sm-list, .stats, .stats-row,
  .stickin, .tg, .tp, .trustin, .tst-g, .why-g, .wcu-grid, .pay-grid, .gallery-grid {
    display: block !important;
    grid-template-columns: 1fr !important;
    columns: 1 !important;
  }
  .budgetgrid > *, .case-stats > *, .chips > *, .cols-3 > *, .edu-cards > *,
  .fd-row > *, .g-row > *, .g2 > *, .gal-g > *, .grid > *, .howin > *,
  .lb-compare > *, .leadgrid > *, .lp-stats > *, .pr-inc > *, .prc-st > *,
  .process > *, .process-steps > *, .process-timeline > *, .process-timeline-6 > *,
  .res-inc > *, .resource-cards > *, .roi-g > *, .row2 > *, .services-list > *,
  .sm-list > *, .stats > *, .stats-row > *, .stickin > *, .tg > *, .tp > *,
  .trustin > *, .tst-g > *, .why-g > *, .wcu-grid > *, .pay-grid > *, .gallery-grid > * {
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 0.75rem;
  }

  /* Tables → card stack on mobile (each row a readable card) */
  table:not(.no-mobile-stack) {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
  }
  table:not(.no-mobile-stack) thead { display: none !important; }
  table:not(.no-mobile-stack) tbody,
  table:not(.no-mobile-stack) tr,
  table:not(.no-mobile-stack) td,
  table:not(.no-mobile-stack) th {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    text-align: left !important;
    white-space: normal !important;
  }
  table:not(.no-mobile-stack) tr {
    margin-bottom: 0.75rem !important;
    padding: 0.85rem 1rem !important;
    background: #FAFAF8 !important;
    border: 1px solid rgba(184,146,75,0.15) !important;
    border-radius: 8px !important;
  }
  table:not(.no-mobile-stack) td {
    padding: 0.4rem 0 !important;
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
  }
  table:not(.no-mobile-stack) td:last-child {
    border-bottom: none !important;
  }

  /* TABLE CONTENT WORD-WRAP — prevent cell text overflow */
  table:not(.no-mobile-stack) td,
  table:not(.no-mobile-stack) th {
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    word-break: normal !important;
    hyphens: auto !important;
  }
}
