@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 500; font-display: swap; src: url(../fonts/cormorant-garamond-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 500; font-display: swap; src: url(../fonts/cormorant-garamond-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../fonts/dm-sans-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../fonts/dm-sans-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* The site design. Loaded after style.css on every page, every rule is scoped to .mg.
   Language: Miami photos toned into one family, text animated over them, rounded sheets
   sliding over each photo, bold sans with an italic serif accent, gold from Eric's logo. */
.mg {
  --night: #070d18;
  --night-2: #0d1626;
  --paper: #ffffff;
  --mist-bg: #f3f4f6;
  --ink: #0a1120;
  --ink-2: #4a5566;
  --line: #dfe2e7;
  --gold: #c9a048;
  --gold-soft: #e2c98f;
  --gold-text: #8f6c22;
  --sans: "DM Sans", "Segoe UI", system-ui, sans-serif;
  --serif: "Cormorant Garamond", Georgia, serif;
  --ease: cubic-bezier(.16, 1, .3, 1);
  --sheet-r: 44px;
  --gut: 32px;
  background: var(--night); color: #fff;
  font-family: var(--sans); font-size: 18px; font-weight: 400; line-height: 1.55; letter-spacing: -.005em;
}
.mg ::selection { background: var(--gold); color: var(--ink); }
.mg main { overflow: hidden; overflow: clip; }
.mg h1, .mg h2, .mg h3 {
  font-family: var(--sans); font-weight: 700; letter-spacing: -.03em; line-height: 1.04; color: inherit; background: none; text-wrap: balance;
}
.mg h2 { font-size: clamp(2.35rem, 5vw, 4.5rem); margin: 0 0 .5em; }
.mg h3 { font-size: 1.35rem; line-height: 1.2; letter-spacing: -.018em; font-weight: 600; margin: 0 0 .4em; }
.mg h1 .w, .mg h2 .w { background: none; -webkit-background-clip: border-box; background-clip: border-box; color: inherit; }
.mg h1, .mg h2 { -webkit-background-clip: border-box; background-clip: border-box; word-spacing: .05em; }
.mg h2 em, .mg h1 em, .mg h1 em .w { font-family: var(--serif); font-style: italic; font-weight: 400; letter-spacing: -.012em; color: var(--gold-soft); background: none; -webkit-background-clip: border-box; background-clip: border-box; }
.mg p { text-wrap: pretty; }
.mg .hm-kicker { font-size: .74rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-soft); margin: 0 0 1.5rem; text-wrap: balance; }

/* buttons: pills with a travelling sheen and an arrow that moves */
.mg .btn { min-height: 56px; padding: 0 30px; border-radius: 999px; gap: 14px; font: 700 .76rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; box-shadow: none; border: 1px solid transparent; }
.mg .btn-gold { background: var(--gold); color: var(--ink); }
.mg .btn-gold:hover { background: var(--gold-soft); }
.mg .btn-gold::after { content: "\2192"; position: static; inset: auto; z-index: auto; background: none; font-size: 1.05rem; letter-spacing: 0; transform: none; transition: transform .45s var(--ease); }
.mg .btn-gold:hover::after { transform: translateX(5px); }
.mg .btn-gold::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 40%; background: linear-gradient(100deg, rgba(255,255,255,0), rgba(255,255,255,.6), rgba(255,255,255,0)); transform: translateX(-160%) skewX(-20deg); animation: hm-sheen 6s ease-in-out 1.8s infinite; pointer-events: none; }
@keyframes hm-sheen { 0% { transform: translateX(-160%) skewX(-20deg); } 24%, 100% { transform: translateX(360%) skewX(-20deg); } }
.mg .btn-line { border-color: rgba(255,255,255,.34); color: #fff; background: transparent; }
.mg .btn-line:hover { border-color: var(--gold-soft); color: var(--gold-soft); }
.mg .btn-line.on-light { border-color: rgba(10,17,32,.3); color: var(--ink); }
.mg .btn-line.on-light:hover { border-color: var(--ink); background: var(--ink); color: #fff; }
.mg .hm-more { display: inline-flex; align-items: center; gap: 12px; font-size: .76rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; color: inherit; }
.mg .hm-more::after { content: "\2192"; font-size: 1.05rem; letter-spacing: 0; color: var(--gold-text); transition: transform .45s var(--ease); }
.mg .hm-more:hover::after { transform: translateX(6px); }

/* the separate floating nav: neutral glass that turns light or dark with the section behind it */
.mg .site-header { --nav-ink: #fff; --nav-soft: rgba(255,255,255,.82); --nav-hover: rgba(255,255,255,.12); --glass: rgba(255,255,255,.1); --glass-line: rgba(255,255,255,.22); --glass-shine: rgba(255,255,255,.32); --glass-shadow: rgba(0,0,0,.34); --panel: rgba(22,23,27,.62); }
.mg .site-header.on-light { --nav-ink: #0a1120; --nav-soft: rgba(10,17,32,.74); --nav-hover: rgba(10,17,32,.06); --glass: rgba(255,255,255,.58); --glass-line: rgba(10,17,32,.1); --glass-shine: rgba(255,255,255,.9); --glass-shadow: rgba(10,17,32,.14); --panel: rgba(255,255,255,.78); }
.mg .brand, .mg .brand-word { color: var(--nav-ink); font-family: var(--sans); transition: color .3s ease; }
.mg .nav-left::before, .mg .nav-right::before { border-radius: 20px; background: var(--glass); -webkit-backdrop-filter: blur(22px) saturate(150%); backdrop-filter: blur(22px) saturate(150%); border: 1px solid var(--glass-line); box-shadow: inset 0 1px 0 var(--glass-shine), 0 14px 34px -16px var(--glass-shadow); transition: opacity .45s var(--ease), transform .55s var(--ease), background .3s ease, border-color .3s ease; }
.mg .site-header:not(.scrolled) .nav-left::before, .mg .site-header:not(.scrolled) .nav-right::before { -webkit-backdrop-filter: none; backdrop-filter: none; }
.mg .nav-links > li > a, .mg .nav-text { font-family: var(--sans); font-weight: 500; color: var(--nav-soft); transition: color .3s ease, background .2s ease; }
.mg .nav-links > li > a:hover, .mg .has-menu.open > a, .mg .nav-text:hover { color: var(--nav-ink); background: var(--nav-hover); }
.mg .nav-links > li > a[aria-current="page"] { color: var(--nav-ink); }
.mg .nav-right .btn { min-height: 38px; padding: 0 16px; font: 600 .88rem/1 var(--sans); letter-spacing: -.005em; text-transform: none; border-radius: 12px; background: #fff; color: #0a1120; transition: background .3s ease, color .3s ease; }
.mg .nav-right .btn:hover { background: var(--gold-soft); color: #0a1120; }
.mg .on-light .nav-right .btn { background: #0a1120; color: #fff; }
.mg .on-light .nav-right .btn:hover { background: var(--gold); color: #0a1120; }
.mg .nav-left, .mg .nav-right, .mg .menu-toggle { animation: hm-nav-drop .9s var(--ease) .1s both; }
.mg .nav-right { animation-delay: .22s; }
@keyframes hm-nav-drop { from { opacity: 0; transform: translateY(-28px) scale(.96); } to { opacity: 1; transform: none; } }
@media (min-width: 961px) {
  .mg .nav-links > li { animation: hm-link-in .6s var(--ease) both; }
  .mg .nav-links > li:nth-child(1) { animation-delay: .35s; } .mg .nav-links > li:nth-child(2) { animation-delay: .41s; }
  .mg .nav-links > li:nth-child(3) { animation-delay: .47s; } .mg .nav-links > li:nth-child(4) { animation-delay: .53s; }
  .mg .nav-links > li:nth-child(5) { animation-delay: .59s; }
}
@keyframes hm-link-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
/* services dropdown: glass sheet, a plain list of names, no icon tiles */
.mg .menu-panel { width: 600px; padding: 10px; border-radius: 22px; background: var(--panel); -webkit-backdrop-filter: blur(30px) saturate(150%); backdrop-filter: blur(30px) saturate(150%); border: 1px solid var(--glass-line); box-shadow: inset 0 1px 0 var(--glass-shine), 0 28px 60px -24px rgba(0,0,0,.5); }
.mg .menu-grid { gap: 0 10px; }
.mg .menu-item { display: block; padding: 14px 14px 15px; border-radius: 14px; transition: background .25s ease, opacity .3s var(--ease), transform .4s var(--ease); }
.mg .menu-item:hover, .mg .menu-item:focus-visible { background: var(--nav-hover); }
.mg .menu-item b { font-family: var(--sans); font-weight: 600; font-size: .95rem; letter-spacing: -.012em; color: var(--nav-ink); }
.mg .menu-item small { font-size: .82rem; color: var(--nav-soft); }
.mg .menu-toggle { background: var(--glass); -webkit-backdrop-filter: blur(22px) saturate(150%); backdrop-filter: blur(22px) saturate(150%); border-color: var(--glass-line); color: var(--nav-ink); }
@media (max-width: 960px) {
  .mg.menu-open .announce { display: none; }
  .mg.menu-open .site-header { background: rgba(10,11,14,.95); }
  .mg.menu-open .nav { position: relative; }
  .mg.menu-open .nav-left { width: 100%; }
  .mg.menu-open .menu-toggle { position: absolute; top: 16px; right: 16px; }
  .mg.menu-open .nav-links > li > a { color: #fff; background: none; }
  .mg.menu-open .nav-right .btn { min-height: 52px; font-size: 1rem; }
}

/* stacked sheets: every section rises over the one before it with rounded shoulders */
.mg .hm-sheet { position: relative; isolation: isolate; margin-top: calc(var(--sheet-r) * -1); border-radius: var(--sheet-r) var(--sheet-r) 0 0; overflow: hidden; overflow: clip; padding: calc(clamp(88px, 10vw, 150px) + 4px) 0 calc(clamp(88px, 10vw, 150px) + var(--sheet-r)); }
.mg .hm-light { background: var(--paper); color: var(--ink); }
.mg .hm-light .hm-kicker, .mg .hm-gold .hm-kicker { color: var(--gold-text); }
.mg .hm-light h2 em { color: var(--gold-text); }
.mg .hm-dark { color: #fff; background: var(--night); }

/* photo layers: one tone across every image, a slow drift, text on top */
.mg .hm-bg { position: absolute; inset: -14% 0; z-index: 0; }
.mg .hm-bg img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.62) contrast(1.06) brightness(.92); }
.mg .hm-scrim { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.mg .hm-in { position: relative; z-index: 2; }

/* hero */
.mg .hm-hero { position: relative; isolation: isolate; min-height: calc(100dvh + var(--sheet-r)); display: flex; align-items: flex-end; padding: calc(var(--announce-h) + 120px) 0 calc(var(--sheet-r) + 48px); overflow: hidden; }
.mg .hm-hero .hm-bg { inset: 0 0 -14% 0; }
.mg .hm-hero .hm-bg img { animation: hm-drift 26s ease-in-out infinite alternate; object-position: 62% 50%; filter: saturate(.8) contrast(1.04); }
@keyframes hm-drift { from { transform: scale(1.02); } to { transform: scale(1.12) translate3d(-1.5%, -1%, 0); } }
.mg .hm-globe { position: absolute; z-index: 1; color: var(--gold); pointer-events: none; fill: none; stroke: currentColor; }
.mg h1 { font-size: clamp(2.9rem, 7vw, 6.4rem); line-height: .98; letter-spacing: -.04em; max-width: 12.5em; margin: 0 0 .36em; }
.mg h1 em { display: block; font-size: 1.08em; line-height: 1.02; letter-spacing: -.02em; padding-bottom: .05em; }
.mg .lead { color: rgba(255,255,255,.82); font-size: clamp(1.08rem, 1.5vw, 1.28rem); font-weight: 400; max-width: 33em; line-height: 1.5; margin: 0 0 2em; }
.mg .hm-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.mg .hm-creds { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 24px; list-style: none; margin: clamp(36px, 5vw, 60px) 0 0; padding: 0; }
.mg .hm-creds li { padding: 14px 0; border-top: 1px solid rgba(255,255,255,.28); font-size: .92rem; font-weight: 500; line-height: 1.3; color: rgba(255,255,255,.88); }

/* Eric: portrait in a double shell beside the story, words light up with the scroll */
.mg .hm-story-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(40px, 7vw, 104px); align-items: start; }
.mg .hm-shell { padding: 8px; border: 1px solid var(--line); border-radius: 32px; background: var(--mist-bg); }
.mg .hm-portrait { position: sticky; top: 104px; margin: 0; }
.mg .hm-portrait img { width: 100%; border-radius: 24px; }
.mg .hm-story { font-size: clamp(1.55rem, 2.75vw, 2.55rem); font-weight: 500; line-height: 1.24; letter-spacing: -.024em; margin: 0 0 1.1em; }
.js-fx .mg .hm-story .w { color: #c3c8d0; transition: color .35s linear; }
.js-fx .mg .hm-story .w.lit { color: var(--ink); }
.mg .hm-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; list-style: none; margin: clamp(48px, 6vw, 80px) 0 0; padding: 0; }
.mg .hm-stats li { padding: 26px 24px 28px; border: 1px solid var(--line); border-radius: 24px; background: var(--mist-bg); transition: transform .6s var(--ease), border-color .4s ease; }
.mg .hm-stats li:hover { transform: translateY(-5px); border-color: var(--gold); }
.mg .hm-stats b { display: block; font-size: clamp(3rem, 6vw, 5.2rem); font-weight: 700; line-height: 1; letter-spacing: -.05em; margin-bottom: .22em; font-variant-numeric: tabular-nums; }
.mg .hm-stats span { display: block; color: var(--ink-2); font-size: 1rem; line-height: 1.35; }

/* services over the aerial photo: rows draw in, a gold wash follows the pointer row */
.mg .hm-services-sec .hm-bg { inset: -6% 0; }
.mg .hm-services-sec .hm-bg img { filter: none; object-position: 50% 60%; }
.mg .hm-services-sec .hm-scrim { background: linear-gradient(90deg, rgba(7,13,24,.84) 0%, rgba(7,13,24,.68) 55%, rgba(7,13,24,.46) 100%), linear-gradient(180deg, rgba(7,13,24,.3), rgba(7,13,24,0) 30%, rgba(7,13,24,0) 70%, rgba(7,13,24,.5)); }
.mg .hm-services-sec h2 { max-width: 15em; margin-bottom: 1em; }
.mg .hm-rows { border-bottom: 1px solid rgba(255,255,255,.2); }
.mg .hm-row { position: relative; display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr) 40px; gap: 32px; align-items: center; padding: 26px 18px; border-top: 1px solid rgba(255,255,255,.2); text-decoration: none; color: #fff; isolation: isolate; transition: padding .6s var(--ease), color .35s ease; }
.mg .hm-row::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--ease); }
.mg .hm-row h3 { margin: 0; font-size: clamp(1.25rem, 2.2vw, 1.85rem); }
.mg .hm-row p { margin: 0; color: rgba(255,255,255,.76); font-size: 1rem; line-height: 1.4; transition: color .35s ease; }
.mg .hm-row i { font-style: normal; font-size: 1.4rem; justify-self: end; color: var(--gold-soft); transition: transform .5s var(--ease), color .35s ease; }
@media (hover: hover) {
  .mg .hm-row:hover { color: var(--ink); padding-left: 30px; }
  .mg .hm-row:hover::before { transform: scaleX(1); }
  .mg .hm-row:hover p, .mg .hm-row:hover i { color: var(--ink); }
  .mg .hm-row:hover i { transform: translateX(-6px); }
}

/* who Eric helps: four tall Miami cards, the picture wipes open */
.mg .hm-who-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; }
.mg .hm-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 12px; }
.mg .hm-card { position: relative; min-height: 500px; border-radius: 26px; overflow: hidden; display: flex; align-items: flex-end; color: #fff; background: var(--night-2); isolation: isolate; }
.mg .hm-card img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) contrast(1.04); transform: scale(1.08); transition: transform 1.6s var(--ease); }
.mg .hm-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(7,13,24,.08) 22%, rgba(7,13,24,.56) 56%, rgba(7,13,24,.95) 100%); }
.mg .hm-card:hover img { transform: scale(1); }
.mg .hm-card div { padding: 26px 24px; }
.mg .hm-card h3 { font-size: 1.42rem; }
.mg .hm-card p { margin: 0; font-size: .98rem; line-height: 1.42; color: rgba(255,255,255,.84); }

/* sound familiar: each line lights as it reaches the middle of the screen */
.mg .hm-familiar .hm-bg { inset: -6% 0; }
.mg .hm-familiar .hm-bg img { filter: saturate(.9); object-position: 50% 62%; }
.mg .hm-familiar .hm-scrim { background: linear-gradient(180deg, rgba(7,13,24,.78), rgba(7,13,24,.68) 46%, rgba(7,13,24,.86)); }
.mg .hm-lines { list-style: none; margin: 0; padding: 0; }
.mg .hm-lines li { font-size: clamp(1.5rem, 3.25vw, 3rem); font-weight: 600; line-height: 1.14; letter-spacing: -.028em; padding: .62em 0; border-top: 1px solid rgba(255,255,255,.17); text-wrap: pretty; }
.js-fx .mg .hm-lines li { color: rgba(255,255,255,.3); transition: color .7s ease; }
.js-fx .mg .hm-lines li.lit { color: #fff; }
.mg .hm-closing { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px; margin-top: 44px; padding-top: 36px; border-top: 1px solid rgba(255,255,255,.17); }
.mg .hm-closing p { margin: 0; font-family: var(--serif); font-style: italic; font-size: clamp(1.5rem, 2.5vw, 2.2rem); line-height: 1.15; color: var(--gold-soft); max-width: 21em; }

/* why: the gold sheet with a slow light crossing it */
.mg .hm-gold { color: var(--ink); background: var(--gold); }
.mg .hm-gold .hm-globe { width: min(60vw, 720px); right: -12vw; top: 8%; color: var(--ink); opacity: .1; stroke-width: 2.2; }
.mg .hm-gold h2 em { color: var(--ink); }
.mg .hm-why { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.mg .hm-why > div { padding: 7px; border-radius: 30px; background: rgba(255,255,255,.2); border: 1px solid rgba(10,17,32,.14); transition: transform .6s var(--ease); }
.mg .hm-why > div:hover { transform: translateY(-6px); }
.mg .hm-why article { height: 100%; padding: 34px 30px 38px; border-radius: 23px; background: var(--night); color: #fff; }
.mg .hm-why h3 { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 2rem; letter-spacing: -.01em; line-height: 1.08; color: var(--gold-soft); margin-bottom: .55em; }
.mg .hm-why p { margin: 0; color: rgba(255,255,255,.8); font-size: 1rem; }

/* how it works: the track fills, then each step lands on it */
.mg .hm-steps { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; list-style: none; margin: clamp(40px, 5vw, 72px) 0 0; padding: 0; counter-reset: step; }
.mg .hm-steps::before, .mg .hm-steps::after { content: ""; position: absolute; top: 21px; left: 0; right: 0; height: 1px; background: var(--line); }
.mg .hm-steps::after { background: var(--gold); transform: scaleX(1); transform-origin: left; }
.mg .hm-steps li { position: relative; counter-increment: step; }
.mg .hm-steps li::before { content: counter(step); position: relative; z-index: 1; display: grid; place-items: center; width: 43px; height: 43px; margin-bottom: 26px; border-radius: 50%; background: var(--ink); color: var(--gold-soft); font-weight: 700; font-size: .95rem; }
.mg .hm-steps h3 { font-size: 1.32rem; }
.mg .hm-steps p { margin: 0; color: var(--ink-2); font-size: 1rem; }

/* location: Paula's Brickell photo in its true colour, text across it */
.mg .hm-location { min-height: 92vh; display: flex; align-items: center; }
.mg .hm-location .hm-bg { inset: -5% 0; }
.mg .hm-location .hm-bg img { filter: none; object-position: 50% 38%; }
.mg .hm-location .hm-scrim { background: linear-gradient(90deg, rgba(7,13,24,.88) 0%, rgba(7,13,24,.66) 46%, rgba(7,13,24,.08) 80%); }
.mg .hm-location .hm-in > div { max-width: 40rem; }
.mg .hm-location h2 { font-size: clamp(2.2rem, 4.6vw, 4.1rem); }
.mg .hm-address { color: rgba(255,255,255,.76); margin: 0 0 1.8em; }
.mg .hm-location .hm-more::after { color: var(--gold-soft); }

/* resources: an outlined brand line runs with the scroll above the articles */
.mg .hm-resources { padding-top: clamp(64px, 7vw, 100px); }
.mg .hm-outline { white-space: nowrap; font-size: clamp(4.5rem, 13vw, 12rem); line-height: 1; font-weight: 700; letter-spacing: -.03em; color: transparent; -webkit-text-stroke: 1.2px var(--gold-text); margin: 0 0 clamp(48px, 6vw, 88px); will-change: transform; transition: transform .35s ease-out; user-select: none; }
.mg .hm-res-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; margin-bottom: 32px; }
.mg .hm-res-head h2 { margin: 0; }
.mg .hm-articles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.mg a.article-card { display: flex; flex-direction: column; padding: 30px 28px; background: var(--mist-bg); border: 1px solid var(--line); border-radius: 26px; box-shadow: none; color: var(--ink); transition: transform .6s var(--ease), background .4s ease, border-color .4s ease, color .4s ease; }
.mg a.article-card::before { content: none; }
.mg a.article-card:hover { transform: translateY(-6px); background: var(--night); border-color: var(--night); color: #fff; }
.mg a.article-card .cat { display: block; padding: 0; margin: 0 0 22px; border: 0; background: none; height: auto; color: var(--gold-text); font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.mg a.article-card:hover .cat { color: var(--gold-soft); }
.mg a.article-card h3 { font-size: 1.42rem; color: inherit; margin-bottom: .6em; }
.mg a.article-card p { color: var(--ink-2); font-size: .98rem; line-height: 1.45; margin: 0 0 22px; transition: color .4s ease; }
.mg a.article-card:hover p { color: rgba(255,255,255,.76); }
.mg a.article-card .meta { margin-top: auto; padding: 0; border: 0; color: var(--ink-2); font-size: .84rem; transition: color .4s ease; }
.mg a.article-card:hover .meta { color: rgba(255,255,255,.66); }

/* closing photo */
.mg .hm-final { text-align: center; padding-top: clamp(120px, 15vw, 210px); padding-bottom: clamp(120px, 15vw, 210px); margin-bottom: 0; }
.mg .hm-final .hm-bg img { object-position: 50% 62%; }
.mg .hm-final .hm-scrim { background: linear-gradient(180deg, rgba(7,13,24,.76) 0%, rgba(7,13,24,.56) 42%, rgba(7,13,24,.7) 66%, rgba(7,13,24,.94) 88%, #070d18 100%); }
.mg .hm-final h2 { max-width: 13em; margin-left: auto; margin-right: auto; font-size: clamp(2.5rem, 6vw, 5.4rem); }
.mg .hm-final .lead { margin-left: auto; margin-right: auto; }

/* footer */
.mg .site-footer { background: var(--night); color: #aeb7c4; border-top: 0; }
.mg .footer-grid h4 { font-family: var(--sans); font-weight: 700; font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-soft); }
.mg .footer-grid a { color: #aeb7c4; }
.mg .footer-grid a:hover { color: #fff; }
.mg .footer-grid li { overflow-wrap: normal; }
.mg .footer-legal { color: #aeb7c4; border-top: 0; }
.mg .footer-legal::before { content: ""; position: absolute; top: 0; left: 32px; right: 32px; height: 1px; background: rgba(255,255,255,.1); }
.mg .social a { border-radius: 50%; border-color: rgba(255,255,255,.2); }
@media (min-width: 901px) { .mg .footer-grid { grid-template-columns: 1.25fr 1fr 1.5fr .75fr; } }

/* entrance motion, only armed when the script is running */
.js-fx .mg .fx-rise { opacity: 0; transform: translateY(26px); transition: opacity 1s var(--ease), transform 1s var(--ease); transition-delay: calc(var(--d, 0) * 80ms + var(--base, 0ms)); }
.js-fx .mg .fx-rise.in { opacity: 1; transform: none; }
/* the entrance rule above would otherwise cancel the lift on hover */
.js-fx .mg .hm-why > .fx-rise.in:hover { transform: translateY(-8px); border-color: var(--gold); transition-delay: 0s; }
.js-fx .mg .hm-stats li.fx-rise.in:hover, .js-fx .mg .card.fx-rise.in:hover { transform: translateY(-5px); transition-delay: 0s; }
.js-fx .mg a.article-card.fx-rise.in:hover { transform: translateY(-6px); transition-delay: 0s; }
.js-fx .mg .hm-why > .fx-rise, .js-fx .mg .hm-stats li.fx-rise { transition: opacity 1s var(--ease), transform .6s var(--ease), border-color .4s ease; }
.js-fx .mg a.article-card.fx-rise { transition: opacity 1s var(--ease), transform .6s var(--ease), background .4s ease, border-color .4s ease, color .4s ease; }
.js-fx .mg .fx-words .w { display: inline-block; opacity: 0; transform: translateY(.42em); transition: opacity .9s var(--ease), transform .9s var(--ease); transition-delay: calc(var(--i, 0) * 42ms + var(--base, 0ms)); }
.js-fx .mg .fx-words.in .w { opacity: 1; transform: none; }
.js-fx .mg .fx-wipe { clip-path: inset(100% 0 0 0 round 26px); transition: clip-path 1.3s var(--ease); transition-delay: calc(var(--d, 0) * 110ms); }
.js-fx .mg .fx-wipe.in { clip-path: inset(0 0 0 0 round 26px); }
.js-fx .mg .hm-row.fx-rise { transition: opacity 1s var(--ease), transform 1s var(--ease), padding .6s var(--ease), color .35s ease; }

/* how it works: when the section arrives a gold ring walks 1, 2, 3, 4 on its own, lighting each point */
.mg .hm-steps::before, .mg .hm-steps::after { left: 21px; right: var(--track-end, 0px); }
.mg .hm-walker { display: none; }
.js-fx .mg .hm-steps::after { transform: scaleX(var(--p, 0)); }
.js-fx .mg .hm-walker { display: block; position: absolute; left: 0; top: 0; z-index: 2; width: 43px; height: 43px; pointer-events: none; transform: translate3d(var(--x, 0px), var(--y, 0px), 0); }
.mg .hm-walker::before { content: ""; position: absolute; inset: -8px; border-radius: 50%; border: 2px solid var(--gold); box-shadow: 0 0 0 6px rgba(201,160,72,.16), 0 8px 24px rgba(143,108,34,.3); animation: hm-walk-pulse 2.2s ease-in-out infinite; }
@keyframes hm-walk-pulse { 50% { box-shadow: 0 0 0 11px rgba(201,160,72,.07), 0 8px 24px rgba(143,108,34,.3); } }
.js-fx .mg .hm-steps li::before { background: #e8eaee; color: var(--ink-2); transition: background .45s ease, color .45s ease, transform .6s var(--ease); }
.js-fx .mg .hm-steps li.on::before { background: var(--gold); color: var(--ink); transform: scale(1.06); }
.js-fx .mg .hm-steps li h3, .js-fx .mg .hm-steps li p { opacity: .36; transform: translateY(6px); transition: opacity .6s ease, transform .7s var(--ease); }
.js-fx .mg .hm-steps li.on h3, .js-fx .mg .hm-steps li.on p { opacity: 1; transform: none; }
@media (max-width: 1040px) {
  .mg .hm-steps { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .mg .hm-steps li { padding-left: 66px; min-height: 48px; }
  .mg .hm-steps li::before { position: absolute; left: 0; top: 0; margin: 0; }
  .mg .hm-steps::before, .mg .hm-steps::after { display: block; left: 21px; right: auto; top: 21px; bottom: var(--track-end, 0px); width: 1px; height: auto; }
  .mg .hm-steps::after { transform-origin: top; }
  .js-fx .mg .hm-steps::after { transform: scaleY(var(--p, 0)); }
}

/* touch: no double-tap delay, no grey flash, the open menu keeps its scroll to itself */
.mg a, .mg button, .mg summary, .mg .chip { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.mg.menu-open .site-header { overscroll-behavior: contain; }

/* phones and tablets: every tap target reaches 44px without changing how it looks */
@media (pointer: coarse) {
  .mg .hm-more { min-height: 44px; }
  .mg .chip { min-height: 44px; }
  .mg .social a { width: 44px; height: 44px; }
  .mg .announce-x::after { content: ""; position: absolute; inset: -8px; }
}

/* language: a small glass pill in the corner, the menu opens above it */
.mg .lang-switch { position: fixed; right: 16px; bottom: calc(16px + var(--badge-lift, 0px)); z-index: 45; font-family: var(--sans); }
.mg .lang-switch summary { display: flex; align-items: center; gap: 7px; height: 40px; padding: 0 14px 0 11px; list-style: none; cursor: pointer; border-radius: 999px; color: #fff; font-size: .78rem; font-weight: 600; letter-spacing: .04em; background: rgba(14,16,20,.82); border: 1px solid rgba(255,255,255,.2); box-shadow: 0 8px 24px -10px rgba(0,0,0,.5); transition: background .25s ease; }
.mg .lang-switch summary::-webkit-details-marker { display: none; }
.mg .lang-switch summary:hover { background: rgba(14,16,20,.82); }
.mg .lang-switch svg { width: 16px; height: 16px; fill: none; stroke: var(--gold-soft); stroke-width: 1.4; }
.mg .lang-menu { position: absolute; right: 0; bottom: calc(100% + 8px); min-width: 138px; padding: 6px; border-radius: 16px; background: rgba(14,16,20,.95); border: 1px solid rgba(255,255,255,.18); box-shadow: 0 16px 36px -14px rgba(0,0,0,.6); }
.mg .lang-switch[open] .lang-menu { animation: hm-lang-in .3s var(--ease) both; }
@keyframes hm-lang-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.mg .lang-menu a { display: block; padding: 9px 12px; border-radius: 10px; color: rgba(255,255,255,.82); font-size: .88rem; font-weight: 500; text-decoration: none; transition: background .2s ease, color .2s ease; }
.mg .lang-menu a:hover { background: rgba(255,255,255,.1); color: #fff; }
.mg .lang-menu a[aria-current] { color: var(--gold-soft); }
.mg.menu-open .lang-switch { display: none; }
@media (pointer: coarse) { .mg .lang-switch summary { height: 44px; } .mg .lang-menu a { padding: 12px; } }

/* cookie notice: same quiet glass, opposite corner from the language pill */
.mg .cookie { position: fixed; left: 16px; bottom: 16px; z-index: 44; width: min(380px, calc(100vw - 32px)); padding: 16px 18px; border-radius: 18px; color: #fff; font-size: .88rem; line-height: 1.4; background: rgba(14,16,20,.96); border: 1px solid rgba(255,255,255,.18); box-shadow: 0 16px 36px -14px rgba(0,0,0,.6); }
.mg .cookie p { margin: 0 0 12px; color: rgba(255,255,255,.86); }
.mg .cookie a { color: var(--gold-soft); }
.mg .cookie div { display: flex; flex-wrap: wrap; gap: 8px; }
.mg .cookie button { min-height: 38px; padding: 0 14px; border-radius: 999px; font: 600 .82rem/1 var(--sans); cursor: pointer; border: 1px solid rgba(255,255,255,.28); background: transparent; color: #fff; transition: background .2s ease, color .2s ease; }
.mg .cookie button:hover { background: rgba(255,255,255,.12); }
.mg .cookie .cookie-yes { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.mg .cookie .cookie-yes:hover { background: var(--gold-soft); }
.mg .cookie-open { padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; text-align: left; }
.mg .cookie-open:hover { color: #fff; }
.mg .cal-fallback { margin-top: 18px; }
html.third .mg .cal-fallback { display: none; }
html:not(.third) .mg .calendly-inline-widget, html:not(.third) .mg .map { display: none; }
.mg .legal-date { color: var(--ink-2); font-size: .92rem; }
.mg .prose > h2:first-of-type { margin-top: 1.4em; }
@media (max-width: 760px) { .mg .cookie { bottom: calc(70px + var(--badge-lift, 0px)); } .mg .hm-details { grid-template-columns: minmax(0, 1fr); } }
@media (pointer: coarse) { .mg .cookie button { min-height: 44px; } }

/* tablet */
@media (max-width: 1040px) {
  .mg .hm-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mg .hm-card { min-height: 420px; }
  .mg .hm-why { grid-template-columns: 1fr; }
  .mg .hm-articles { grid-template-columns: 1fr; }
  .mg .hm-creds { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* phone: 16px gutters, one column, faces never cropped */
@media (max-width: 760px) {
  .mg { font-size: 17px; --sheet-r: 30px; }
  .mg .hm-hero { padding-top: calc(var(--announce-h) + 104px); }
  .mg h1 { font-size: clamp(2.8rem, 13.4vw, 4rem); }
  .mg .hm-actions .btn { width: 100%; }
  .mg .hm-creds { gap: 0 16px; } .mg .hm-creds li { font-size: .84rem; }
  .mg .hm-story-grid { grid-template-columns: 1fr; }
  .mg .hm-portrait { position: static; max-width: 340px; }
  .mg .hm-stats { grid-template-columns: 1fr; }
  .mg .hm-stats li { display: grid; grid-template-columns: 112px 1fr; align-items: center; gap: 8px; padding: 18px 20px; }
  .mg .hm-stats b { margin: 0; font-size: 3.1rem; }
  .mg .hm-row { grid-template-columns: minmax(0, 1fr) 28px; gap: 8px 14px; padding: 22px 2px; }
  .mg .hm-row p { grid-row: 2; grid-column: 1; }
  .mg .hm-row i { grid-row: 1 / span 2; grid-column: 2; }
  .mg .hm-cards { grid-template-columns: 1fr; }
  .mg .hm-card { min-height: 340px; }
  .mg .hm-closing .btn, .mg .hm-final .btn { width: 100%; }
  .mg .hm-steps { grid-template-columns: 1fr; gap: 28px; }
  .mg .hm-steps li { padding-left: 62px; min-height: 48px; }
  .mg .hm-steps li::before { position: absolute; left: 0; top: 0; margin: 0; }
  .mg .hm-location { min-height: 720px; align-items: flex-end; }
  .mg .hm-location .hm-scrim { background: linear-gradient(180deg, rgba(7,13,24,.12) 0%, rgba(7,13,24,.42) 38%, rgba(7,13,24,.94) 74%); }
  .mg .hm-outline { -webkit-text-stroke-width: 1px; }
  .mg .footer-legal::before { left: 16px; right: 16px; }
}

/* ------ hero versions: the logo's globe draws itself, then keeps turning, and drifts with the scroll */
.mg [hidden] { display: none !important; }
.js-fx .mg .hm-hero .hm-globe > * { stroke-dasharray: 1; stroke-dashoffset: 1; }
/* the drawing waits for the page to settle (fx-go), line by line: 6 seconds from the outer circle to the last meridian */
.js-fx.fx-go .mg .hm-hero .hm-globe > * { animation: hm-draw 3.2s cubic-bezier(.45,.05,.25,1) var(--draw, 0s) forwards; }
.mg .hm-hero .hm-globe > :nth-child(2) { --draw: .5s; }
.mg .hm-hero .hm-globe > :nth-child(3) { --draw: .9s; }
.mg .hm-hero .hm-globe > :nth-child(4) { --draw: 1.3s; }
.mg .hm-hero .hm-globe > :nth-child(5) { --draw: 1.8s; }
.mg .hm-hero .hm-globe > :nth-child(6) { --draw: 2.3s; }
.mg .hm-hero .hm-globe > :nth-child(7) { --draw: 2.8s; }
@keyframes hm-draw { to { stroke-dashoffset: 0; } }
/* home: brighter while it draws so people can see it, then back to the quiet level behind the title */
.js-fx.fx-go .mg .hv-top .hm-globe { animation: hm-globe-settle 8s ease-in-out both; }
@keyframes hm-globe-settle { 0%, 72% { opacity: .42; } 100% { opacity: .22; } }
/* whatever is off screen stops working */
.mg .fx-off .hm-bg img, .mg .fx-off .hm-walker::before, .mg .btn-gold.fx-off::before { animation-play-state: paused; }




/* the skyline hero: everything centred, the globe turning right behind the words */
.mg .hv-sky { display: block; padding: 0; background: linear-gradient(180deg, #070d18 0%, #17151f 40%, #2a2430 66%); }
.mg .hv-sky .hm-bg { inset: auto 0 0 0; height: 76%; overflow: hidden; }
.mg .hv-sky .hm-bg::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, #11121c 0, rgba(17,18,28,0) 26%); }
.mg .hv-sky .hm-bg { animation: hm-hero-in 1.8s ease-out both; }
@keyframes hm-hero-in { from { opacity: 0; } to { opacity: 1; } }
.mg .hv-sky .hm-bg img { object-position: 50% 100%; filter: none; transform-origin: 50% 100%; }
.mg .hv-sky .hm-scrim { background: radial-gradient(64% 58% at 50% 46%, rgba(7,13,24,.82) 0%, rgba(7,13,24,.6) 58%, rgba(7,13,24,.14) 100%), linear-gradient(180deg, rgba(7,13,24,.55) 0%, rgba(7,13,24,.2) 34%, rgba(7,13,24,.22) 62%, rgba(7,13,24,.8) 88%, rgba(7,13,24,.96) 100%); }
.mg .hv-sky .hm-in { min-height: calc(100dvh + var(--sheet-r)); display: flex; flex-direction: column; padding-top: calc(var(--announce-h) + 92px); padding-bottom: calc(var(--sheet-r) + 24px); }
.mg .hv-top { position: relative; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.mg .hv-top .hm-globe { width: min(61vw, 880px); left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: -1; opacity: .22; stroke-width: .55; }
.mg .hv-top h1 { font-size: clamp(2.8rem, 6vw, 5.5rem); max-width: 15em; margin: 0 auto .3em; }
.mg .hv-top .lead { margin: 0 auto 1.7em; max-width: 34em; color: rgba(255,255,255,.9); }
.mg .hv-top .hm-actions { justify-content: center; }
.mg .hv-sky .hm-creds { flex: none; margin-top: 36px; }

/* ------ inner pages: the same photo header, sheets and motion */
.mg .hm-sub .hm-bg img { object-position: 50% 58%; filter: saturate(.82) contrast(1.04); }
.mg .hm-sub .hm-scrim { background: linear-gradient(90deg, rgba(7,13,24,.86) 0%, rgba(7,13,24,.58) 48%, rgba(7,13,24,.12) 84%), linear-gradient(180deg, rgba(7,13,24,.46) 0%, rgba(7,13,24,0) 28%, rgba(7,13,24,.76) 100%); }
.mg .hm-sub .hm-globe { width: min(46vw, 620px); right: -9vw; top: 50%; margin-top: calc(min(46vw, 620px) / -2); opacity: .32; stroke-width: 1; }
.mg .hm-sub h1 { font-size: clamp(2.5rem, 5.4vw, 4.9rem); line-height: 1.02; max-width: 15em; }
.mg .hm-sub h1 em { display: inline; font-size: 1.04em; }
.mg .hm-sub .lead { margin-bottom: 1.6em; }
.mg .hm-sub-only { padding-bottom: 72px; }
.mg .hm-sub-natural .hm-bg img { filter: none; object-position: 50% 38%; }
.mg .hm-sub .hm-bg img[src*="brickell-key-night"] { filter: none; object-position: 50% 62%; }
.mg .hm-article h1 { font-size: clamp(2.3rem, 4.6vw, 4.2rem); max-width: 18em; }
.mg .hm-kicker a { color: inherit; }
.mg .scrim-std { background: linear-gradient(180deg, rgba(7,13,24,.86), rgba(7,13,24,.72) 45%, rgba(7,13,24,.9)); }
.mg .hm-split2 { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(24px, 6vw, 96px); align-items: start; }
.mg .hm-split2 h2 { margin: 0; }
.mg .hm-split2 .hm-portrait { max-width: 320px; margin-top: 36px; }

.mg .hm-services-hero .hm-globe { right: -1vw; }

/* about */
.mg .hm-about .hm-bg img { object-position: 50% 82%; }
.mg .hm-about .hm-globe { width: auto; height: 84%; aspect-ratio: 1; right: 5vw; top: 50%; margin-top: 0; transform: translateY(-50%); }
.mg .story p { color: var(--ink); font-size: clamp(1.14rem, 1.7vw, 1.42rem); line-height: 1.5; letter-spacing: -.012em; margin: 0 0 1.2em; }
.mg .quote { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: clamp(2rem, 4.4vw, 3.9rem); line-height: 1.1; letter-spacing: -.012em; max-width: 20em; }
.mg .quote::before { content: none; }
.mg .quote-cite { margin: 32px 0 0; color: var(--gold-soft); font-size: .76rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.mg .cred-list { display: block; }
.mg .cred-list li { padding: 20px 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: none; box-shadow: none; color: var(--ink); font-size: clamp(1.05rem, 1.6vw, 1.3rem); font-weight: 500; line-height: 1.3; }
.mg .cred-list li:last-child { border-bottom: 1px solid var(--line); }
.mg .cred-list li::before { content: none; }
.mg .hm-mission h2.hm-kicker { color: var(--ink); font-family: var(--sans); font-size: .74rem; font-weight: 600; letter-spacing: .2em; line-height: 1.5; margin-bottom: 1.5rem; }
.mg .mission { margin: 0; max-width: 20em; font-size: clamp(2rem, 4.4vw, 3.9rem); font-weight: 700; line-height: 1.06; letter-spacing: -.03em; }
.mg .statement-text { max-width: 24em; margin: 0; font-size: clamp(1.7rem, 3.4vw, 3rem); font-weight: 500; line-height: 1.18; letter-spacing: -.026em; color: #fff; }
.mg .card { padding: 30px 26px 32px; background: var(--mist-bg); border: 1px solid var(--line); border-radius: 26px; box-shadow: none; color: var(--ink); transition: transform .6s var(--ease), border-color .4s ease; }
.mg .card:hover { transform: translateY(-5px); border-color: var(--gold); }
.mg .card p { color: var(--ink-2); font-size: 1rem; }
.mg .card .idx { color: var(--gold-text); font-family: var(--serif); font-style: italic; font-size: 1.7rem; font-weight: 400; line-height: 1; }

/* services */
.mg .service { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); padding: 0 32px; border: 0; gap: clamp(32px, 7vw, 104px); }
.mg .hm-sheet[id] { scroll-margin-top: 60px; }
.mg .service .idx { font-family: var(--serif); font-style: italic; font-size: clamp(2.4rem, 4vw, 3.4rem); font-weight: 400; line-height: 1; color: var(--gold-text); margin-bottom: 22px; }
.mg .hm-dark .service .idx { color: var(--gold-soft); }
.mg .service h2 { font-size: clamp(2.1rem, 4.2vw, 3.7rem); }
.mg .label { font-size: .68rem; font-weight: 700; letter-spacing: .16em; color: var(--gold-text); margin: 0 0 12px; }
.mg .hm-dark .label { color: var(--gold-soft); }
.mg .service .for { color: inherit; font-size: clamp(1.1rem, 1.6vw, 1.32rem); line-height: 1.4; opacity: .84; max-width: 26em; }
.mg .included { padding: 0; margin: 0 0 32px; border: 0; border-radius: 0; background: none; box-shadow: none; }
.mg .included li { padding: 17px 0; color: inherit; font-size: clamp(1.05rem, 1.5vw, 1.24rem); font-weight: 500; line-height: 1.3; border-top: 1px solid var(--line); }
.mg .included li + li { border-top: 1px solid var(--line); }
.mg .included li:last-child { border-bottom: 1px solid var(--line); }
.mg .included li::before { content: none; }
.mg .hm-dark .included li, .mg .hm-dark .included li + li { border-color: rgba(255,255,255,.22); }
.mg .callout { border-radius: 22px; background: rgba(201,160,72,.14); border: 1px solid rgba(226,201,143,.5); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.mg .callout p { color: rgba(255,255,255,.9); }
.mg .callout strong { color: var(--gold-soft); font-weight: 700; }
.mg .hm-dark .hm-more::after { color: var(--gold-soft); }

/* portal */
.mg .portal-actions .tile { background: var(--night); border: 1px solid var(--night); border-radius: 26px; box-shadow: none; color: #fff; min-height: 220px; }
.mg .portal-actions .tile svg { stroke: var(--gold-soft); }
.mg .portal-actions .tile b { margin-top: auto; }
.mg .soon { border-radius: 999px; color: rgba(255,255,255,.72); border-color: rgba(255,255,255,.24); }
.mg .grid-2 { gap: 12px; }

/* resources */
.mg .featured { margin-bottom: 40px; background: var(--mist-bg); border: 1px solid var(--line); border-radius: 30px; box-shadow: none; color: var(--ink); }
.mg .featured:hover { border-color: var(--gold); }
.mg .featured .cat { padding: 0; border: 0; border-radius: 0; background: none; color: var(--gold-text); font-size: .68rem; font-weight: 700; letter-spacing: .16em; }
.mg .featured h2 { font-size: clamp(1.9rem, 3.4vw, 3rem); }
.mg .featured p { color: var(--ink-2); font-size: 1.04rem; }
.mg .featured .side { min-height: 340px; background-image: url("../img/photos/brickell-dusk.webp"); background-position: 70% 100%; filter: saturate(.85); }
.mg .featured .hm-more { margin-top: auto; }
.mg .chip { transition: background .25s ease, border-color .25s ease, color .25s ease; padding: 10px 18px; border-radius: 999px; border-color: var(--line); background: #fff; color: var(--ink-2); font: 500 .9rem var(--sans); }
.mg .chip:hover { border-color: var(--ink); color: var(--ink); }
.mg .chip[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }

/* articles */
.mg .prose { margin: 0 auto; color: var(--ink-2); font-size: 1.14rem; line-height: 1.68; }
.mg .prose h2 { color: var(--ink); font-size: clamp(1.7rem, 2.9vw, 2.3rem); margin: 1.7em 0 .55em; }
.mg .prose h3 { color: var(--ink); font-size: 1.36rem; margin: 1.5em 0 .5em; }
.mg .prose strong { color: var(--ink); font-weight: 600; }
.mg .prose li::marker { color: var(--gold-text); }
.mg .prose a { color: var(--gold-text); text-decoration-color: rgba(143,108,34,.5); }
.mg .author { border-color: var(--line); }
.mg .author img { box-shadow: 0 0 0 1px var(--gold), 0 0 0 4px #fff; }
.mg .author strong { color: var(--ink); font-weight: 600; }
.mg .author span { color: var(--ink-2); }
.mg .disclaimer-box { background: var(--mist-bg); border: 1px solid var(--line); border-radius: 22px; box-shadow: none; color: var(--ink-2); }

/* faq */
.mg .faq-search { color: var(--ink); font: 400 1rem var(--sans); border: 1px solid var(--line); border-radius: 999px; background-color: var(--mist-bg); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238f6c22' stroke-width='1.6'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E"); box-shadow: none; }
.mg .faq-search::placeholder { color: var(--ink-2); }
.mg .faq-search:focus { border-color: var(--gold-text); }
.mg .faq-group h2 { font-size: clamp(1.6rem, 2.8vw, 2.3rem); margin-bottom: 20px; }
.mg .faq-group details, .mg .faq-group details:last-child { border-color: var(--line); }
.mg .faq-group summary { font-size: clamp(1.08rem, 1.5vw, 1.24rem); font-weight: 500; line-height: 1.3; letter-spacing: -.012em; }
.mg .faq-group summary:hover { color: var(--gold-text); }
.mg .faq-group summary::after { border-radius: 50%; border-color: var(--line); background: linear-gradient(var(--gold-text), var(--gold-text)) center / 12px 1.5px no-repeat, linear-gradient(var(--gold-text), var(--gold-text)) center / 1.5px 12px no-repeat; }
.mg .faq-group details[open] summary::after { border-color: var(--gold-text); }
.mg .faq-group details p { color: var(--ink-2); }
.mg .faq-empty { color: var(--ink-2); }

/* contact */
.mg .contact-grid { gap: 12px; }
.mg .panel { background: var(--mist-bg); border: 1px solid var(--line); border-radius: 30px; box-shadow: none; color: var(--ink); }
.mg .panel h2 { font-size: clamp(1.7rem, 2.6vw, 2.2rem); }
.mg .panel-night { background: var(--night); border-color: var(--night); color: #fff; }
.mg .panel-night p { color: rgba(255,255,255,.76); }
.mg .field label { color: var(--ink); font-size: .86rem; font-weight: 600; }
.mg .field input, .mg .field select, .mg .field textarea { color: var(--ink); font: 400 1rem var(--sans); background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: none; }
.mg .field select option { background: #fff; }
.mg .field input:focus, .mg .field select:focus, .mg .field textarea:focus { border-color: var(--gold-text); box-shadow: 0 0 0 4px rgba(201,160,72,.18); }
.mg .form-note { color: var(--ink-2); border-color: var(--gold); }
.mg .hm-details { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: stretch; }
.mg .details-list li { border-color: rgba(255,255,255,.17); }
.mg .details-list li span:first-child { color: var(--gold-soft); font-weight: 700; font-size: .68rem; letter-spacing: .16em; }
.mg .details-list a { border-color: rgba(226,201,143,.5); }
.mg .map { min-height: 460px; border-radius: 26px; }

/* cards on any sheet */
.mg .grid-2 > a.article-card { min-height: 100%; }
.js-fx .mg .card.fx-rise { transition: opacity 1s var(--ease), transform 1s var(--ease), border-color .4s ease; }

@media (max-width: 1040px) {
  .mg .hv-top h1 { font-size: clamp(2.8rem, 8.2vw, 5rem); }
  .mg .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mg .portal-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mg .contact-grid, .mg .hm-details { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .mg .hv-sky .hm-bg { height: 66%; }
  .mg .hv-sky .hm-bg::after { background: linear-gradient(180deg, #15141e 0, rgba(21,20,30,0) 26%); }
  .mg .hv-sky .hm-bg img { object-position: 42% 100%; }
  .mg .hv-sky .hm-scrim { background: radial-gradient(100% 50% at 50% 42%, rgba(7,13,24,.8) 0%, rgba(7,13,24,.5) 64%, rgba(7,13,24,.1) 100%), linear-gradient(180deg, rgba(7,13,24,.5) 0%, rgba(7,13,24,.2) 40%, rgba(7,13,24,.6) 72%, rgba(7,13,24,.97) 92%); }
  .mg .hv-sky .hm-in { padding-top: calc(var(--announce-h) + 84px); }
  .mg .hv-top .hm-globe { width: 120vw; opacity: .22; stroke-width: .6; }
  .mg .hv-top h1 { font-size: clamp(2.6rem, 12.4vw, 3.6rem); }
  .mg .hv-top .hm-actions { width: 100%; }
  .mg .hm-creds { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mg .hm-sub .hm-scrim { background: linear-gradient(180deg, rgba(7,13,24,.62) 0%, rgba(7,13,24,.5) 42%, rgba(7,13,24,.92) 100%); }
  .mg .hm-sub .hm-globe { width: 104vw; right: -38vw; margin-top: -52vw; opacity: .26; }
  .mg .hm-about .hm-globe { width: 86vw; height: auto; right: 7vw; top: 28%; margin-top: 0; }
  .mg .hm-split2 { grid-template-columns: minmax(0, 1fr); }
  .mg .service { grid-template-columns: minmax(0, 1fr); padding: 0 16px; }
  .mg .grid-4 { grid-template-columns: minmax(0, 1fr); }
  .mg .grid-2 { grid-template-columns: minmax(0, 1fr); }
  .mg .portal-actions { grid-template-columns: minmax(0, 1fr); }
  .mg .portal-actions .tile { min-height: 150px; }
  .mg .featured { grid-template-columns: minmax(0, 1fr); }
  .mg .panel { border-radius: 24px; }
  .mg .calendly-inline-widget { margin: 0 -8px; }
  .mg .form-grid { grid-template-columns: minmax(0, 1fr); }
  .mg .map { min-height: 340px; }
  .mg .details-list li { grid-template-columns: 72px minmax(0, 1fr); }
}

/* short screens: the home hero shrinks its type and gaps so everything still fits in one screen */
@media (max-height: 800px) {
  .mg .hv-sky .hm-in { padding-top: calc(var(--announce-h) + 76px); padding-bottom: calc(var(--sheet-r) + 12px); }
  .mg .hv-top h1 { font-size: min(clamp(2.6rem, 6vw, 5.5rem), 10.4dvh); margin-bottom: .22em; }
  .mg .hv-top .hm-kicker { margin-bottom: .8rem; }
  .mg .hv-top .lead { margin-bottom: 1.1em; font-size: min(1.15rem, 2.7dvh); }
  .mg .hv-sky .hm-creds { margin-top: 14px; }
  .mg .hv-sky .hm-creds li { padding: 9px 0; font-size: .86rem; }
}
@media (max-height: 700px) and (max-width: 760px) {
  .mg .hv-sky .hm-in { padding-top: calc(var(--announce-h) + 62px); }
  .mg .hv-top h1 { font-size: 8.4dvh; }
  .mg .hv-top .hm-kicker { font-size: .6rem; margin-bottom: .5rem; }
  .mg .hv-top .lead { font-size: .88rem; line-height: 1.32; margin-bottom: .8em; }
  .mg .hv-top .hm-actions { gap: 8px; }
  .mg .hv-top .hm-actions .btn { min-height: 44px; }
  .mg .hv-sky .hm-creds { margin-top: 8px; }
  .mg .hv-sky .hm-creds li { padding: 5px 0; font-size: .74rem; }
}
