/* SMG V31.3 FULL 179 HTML LAYOUT REWRITE LOCK
   Purpose: stable production grid for every page, every block, every device.
   This file must be loaded LAST. */

:root{
  --smg-page-max: 1240px;
  --smg-page-pad: clamp(18px, 3.2vw, 48px);
  --smg-section-y: clamp(38px, 5.4vw, 76px);
  --smg-card-pad: clamp(20px, 2.2vw, 30px);
  --smg-gap: clamp(18px, 2.4vw, 30px);
  --smg-gold-a:#f7df9a;
  --smg-gold-b:#d7a84f;
  --smg-gold-c:#9f7530;
  --smg-white:#f7f4ec;
  --smg-muted:rgba(247,244,236,.74);
  --smg-line:rgba(214,168,79,.34);
  --smg-card:rgba(10,10,10,.82);
}

*,*::before,*::after{box-sizing:border-box!important;}
html{width:100%; max-width:100%; overflow-x:hidden!important; -webkit-text-size-adjust:100%; scroll-behavior:smooth;}
body{width:100%; max-width:100%; min-height:100vh; margin:0; overflow-x:hidden!important; display:flex; flex-direction:column; background:#050505; color:var(--smg-white);}
body > main, main, .main, .page, .site, .site-main, .page-main, .content, .page-content{width:100%!important; max-width:100%!important; min-height:auto!important; height:auto!important; flex:1 0 auto; overflow:visible!important; position:relative!important; transform:none!important;}

img, picture, video, canvas, svg{max-width:100%!important; height:auto!important;}
img{display:block; object-fit:cover; position:relative; z-index:1;}
a,button,[role="button"],.btn,.button{touch-action:manipulation;}

/* GOLD TYPOGRAPHY — all headings and subtitles are stable, never broken inside words */
h1,h2,h3,h4,
.section-title,.page-title,.hero-title,.smg-title,.smg-heading,.module-title,.card-title,
.kicker,.eyebrow,.subtitle,.sub-title,.section-subtitle,.hero-subtitle,
.footer h2,.footer h3,.footer h4,
.site-footer h2,.site-footer h3,.site-footer h4{
  color:var(--smg-gold-a)!important;
  background:linear-gradient(135deg,var(--smg-gold-a),var(--smg-gold-b) 52%,var(--smg-gold-c))!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
  text-wrap:balance;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
  max-width:100%;
}
h1,.hero-title,.page-title{font-size:clamp(38px,6vw,78px)!important; line-height:.96!important; letter-spacing:-.045em!important; margin:0 0 clamp(18px,2.8vw,32px)!important;}
h2,.section-title{font-size:clamp(28px,3.8vw,52px)!important; line-height:1.05!important; letter-spacing:-.03em!important; margin:0 0 clamp(16px,2.2vw,26px)!important;}
h3,.module-title,.card-title{font-size:clamp(20px,2.1vw,30px)!important; line-height:1.14!important; margin:0 0 12px!important;}
p,li,span,small,div{word-break:normal!important; overflow-wrap:anywhere; hyphens:none!important;}
p,.lead,.section-lead,.hero-lead,.body-text,.card p{color:var(--smg-muted); line-height:1.65;}

/* GLOBAL CONTAINERS */
.container,.wrapper,.inner,.section-inner,.hero-inner,.page-inner,.content-inner,
.smg-container,.enterprise-container,.layout-container,.footer-inner,.site-footer-inner{
  width:min(100% - (var(--smg-page-pad) * 2), var(--smg-page-max))!important;
  max-width:var(--smg-page-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
  position:relative!important;
  z-index:2;
}

/* HEADER / NAV — no overlap, no Media-on-Immigration */
header,.header,.site-header,.smg-header,.topbar,.navbar{
  width:100%!important;
  position:relative!important;
  left:auto!important; right:auto!important; top:auto!important; bottom:auto!important;
  transform:none!important;
  z-index:50!important;
  overflow:visible!important;
}
.header-inner,.nav-inner,.navbar-inner,.site-header .container,.smg-header .container{
  width:min(100% - (var(--smg-page-pad) * 2), var(--smg-page-max))!important;
  margin:0 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:clamp(16px,2vw,28px)!important;
  min-height:72px!important;
  flex-wrap:wrap!important;
}
nav,.nav,.navbar,.nav-links,.menu,.site-nav,.header-nav,
nav ul,.nav ul,.menu ul{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:clamp(10px,1.35vw,22px)!important;
  row-gap:10px!important;
  width:auto!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:visible!important;
  white-space:normal!important;
}
nav a,.nav a,.navbar a,.nav-links a,.menu a,.site-nav a,.header-nav a{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:38px!important;
  padding:8px 10px!important;
  white-space:nowrap!important;
  font-size:clamp(12px,1.05vw,14px)!important;
  line-height:1!important;
  letter-spacing:.02em!important;
}
.logo,.brand,.site-logo{flex:0 0 auto!important; max-width:280px!important; min-width:0!important; white-space:normal!important;}

/* SECTIONS — normal document flow, no huge black holes */
section,.section,.page-section,.smg-section,.enterprise-section,.content-section,.module-section,
.hero,.page-hero,.smg-hero,.enterprise-hero,.hero-section{
  position:relative!important;
  left:auto!important; right:auto!important; top:auto!important; bottom:auto!important;
  transform:none!important;
  width:100%!important;
  max-width:100%!important;
  min-height:auto!important;
  height:auto!important;
  overflow:visible!important;
  clear:both!important;
  margin-top:0!important;
  margin-bottom:0!important;
  padding-top:var(--smg-section-y)!important;
  padding-bottom:var(--smg-section-y)!important;
}
section + section,.section + .section,.page-section + .page-section,.smg-section + .smg-section{margin-top:0!important;}

/* HERO layout */
.hero-grid,.hero-layout,.hero-content,.hero-inner,.page-hero .container,.smg-hero .container,
.enterprise-hero .container,.split,.split-grid,.two-column,.two-col,.intro-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr)!important;
  gap:clamp(28px,4vw,64px)!important;
  align-items:center!important;
  overflow:visible!important;
}
.hero-copy,.hero-text,.intro-copy,.section-copy{min-width:0!important; max-width:100%!important; position:relative!important; z-index:3!important;}
.hero-media,.hero-card,.image-card,.visual-card,.founder-card,.profile-card,.photo-card{
  min-width:0!important;
  max-width:100%!important;
  position:relative!important;
  z-index:1!important;
  overflow:hidden!important;
}
.hero-media img,.hero-card img,.image-card img,.visual-card img,.founder-card img,.profile-card img,.photo-card img{
  width:100%!important;
  height:auto!important;
  max-height:min(62vh,620px)!important;
  object-fit:cover!important;
  border-radius:inherit;
}

/* GRID / CARDS — same line, no tilted broken squares */
.grid,.cards,.card-grid,.module-grid,.service-grid,.services-grid,.feature-grid,.features-grid,
.stats-grid,.steps-grid,.route-grid,.media-grid,.jobs-grid,.properties-grid,.property-grid,
.admin-grid,.dashboard-grid,.footer-grid,.footer-columns,.legal-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))!important;
  gap:var(--smg-gap)!important;
  align-items:stretch!important;
  justify-items:stretch!important;
  width:100%!important;
  max-width:100%!important;
  overflow:visible!important;
}
.card,.module-card,.service-card,.feature-card,.stat-card,.step-card,.route-card,.media-card,
.job-card,.property-card,.admin-card,.dashboard-card,.panel,.tile,.box,.contact-card,.footer-card{
  position:relative!important;
  inset:auto!important;
  transform:none!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:auto!important;
  overflow:visible!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:12px!important;
  padding:var(--smg-card-pad)!important;
  border:1px solid var(--smg-line)!important;
  border-radius:24px!important;
  background:linear-gradient(145deg,rgba(17,17,17,.90),rgba(5,5,5,.78))!important;
  box-shadow:0 18px 48px rgba(0,0,0,.30)!important;
}
.card > *,.module-card > *,.service-card > *,.feature-card > *,.media-card > *,.property-card > *{max-width:100%!important; min-width:0!important;}
.badge,.tag,.pill,.status,.label{display:inline-flex!important; width:auto!important; max-width:100%!important; white-space:nowrap!important; align-self:flex-start!important;}

/* BUTTON AREAS */
.actions,.button-row,.btn-row,.cta-row,.hero-actions,.form-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:12px!important;
  width:100%!important;
  max-width:100%!important;
  margin-top:clamp(18px,2.2vw,28px)!important;
}
.btn,.button,button,input[type="submit"],.cta,.primary-btn,.secondary-btn{
  max-width:100%!important;
  white-space:nowrap!important;
  position:relative!important;
  z-index:3!important;
}

/* FORMS */
form,.form,.contact-form,.intake-form{width:100%!important; max-width:100%!important; display:grid!important; gap:16px!important;}
input,select,textarea{max-width:100%!important; width:100%!important;}

/* FOOTER — always starts after content, never overlays / never cuts */
footer,.footer,.site-footer,.smg-footer{
  position:relative!important;
  left:auto!important; right:auto!important; top:auto!important; bottom:auto!important;
  transform:none!important;
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  min-height:auto!important;
  margin-top:clamp(42px,6vw,88px)!important;
  padding-top:clamp(42px,5vw,72px)!important;
  padding-bottom:clamp(26px,3vw,46px)!important;
  clear:both!important;
  overflow:visible!important;
  z-index:5!important;
  background:linear-gradient(180deg,rgba(4,4,4,.96),rgba(0,0,0,1))!important;
  border-top:1px solid var(--smg-line)!important;
}
footer .container,.footer .container,.site-footer .container,.footer-inner,.site-footer-inner{
  width:min(100% - (var(--smg-page-pad) * 2), var(--smg-page-max))!important;
  margin:0 auto!important;
  overflow:visible!important;
}
footer .footer-grid,.site-footer .footer-grid,.footer-columns{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))!important;
  align-items:start!important;
}
footer a,.footer a,.site-footer a{white-space:normal!important; overflow-wrap:anywhere!important;}
.legal-links,.footer-legal,.copyright,.footer-bottom{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px 18px!important;
  width:100%!important;
  margin-top:24px!important;
  padding-top:18px!important;
  border-top:1px solid rgba(214,168,79,.18)!important;
}

/* Never allow decorative layers to block or move content */
.watermark,.bg-watermark,.smg-watermark,.decor,.background-decor,.grid-lines,.gold-orb,
[class*="watermark"],[class*="decor"],[class*="orb"]{
  pointer-events:none!important;
  max-width:100%!important;
}

/* Specific cleanup for known problem zones */
.direct-contact,.contact-direct,.smg-contact,.direct-smg-contact,
.operating-route,.route-section,.module-framework,.framework-section{
  margin-top:0!important;
  padding-top:clamp(32px,4vw,58px)!important;
  padding-bottom:clamp(32px,4vw,58px)!important;
}

/* RESPONSIVE */
@media (max-width:1180px){
  .header-inner,.nav-inner,.navbar-inner,.site-header .container,.smg-header .container{justify-content:center!important;}
  nav,.nav,.navbar,.nav-links,.menu,.site-nav,.header-nav,nav ul,.nav ul,.menu ul{justify-content:center!important;}
}
@media (max-width:980px){
  :root{--smg-page-pad:clamp(16px,4vw,28px); --smg-section-y:clamp(32px,6vw,54px);}
  .hero-grid,.hero-layout,.hero-content,.hero-inner,.page-hero .container,.smg-hero .container,
  .enterprise-hero .container,.split,.split-grid,.two-column,.two-col,.intro-grid{
    grid-template-columns:1fr!important;
    gap:28px!important;
  }
  .hero-media,.hero-card,.image-card,.visual-card,.founder-card,.profile-card,.photo-card{max-width:720px!important; margin:0 auto!important;}
}
@media (max-width:720px){
  h1,.hero-title,.page-title{font-size:clamp(34px,11vw,52px)!important; line-height:1!important; letter-spacing:-.04em!important;}
  h2,.section-title{font-size:clamp(26px,8vw,38px)!important;}
  nav a,.nav a,.navbar a,.nav-links a,.menu a,.site-nav a,.header-nav a{font-size:12px!important; padding:8px 9px!important;}
  .grid,.cards,.card-grid,.module-grid,.service-grid,.services-grid,.feature-grid,.features-grid,
  .stats-grid,.steps-grid,.route-grid,.media-grid,.jobs-grid,.properties-grid,.property-grid,
  .admin-grid,.dashboard-grid,.footer-grid,.footer-columns,.legal-grid{grid-template-columns:1fr!important;}
  .actions,.button-row,.btn-row,.cta-row,.hero-actions,.form-actions{align-items:stretch!important;}
  .btn,.button,button,input[type="submit"],.cta,.primary-btn,.secondary-btn{width:100%!important; justify-content:center!important;}
}
