/*
Theme Name: MilanMichigan.com – GeneratePress Child
Theme URI: https://milanmichigan.com/
Description: A polished Milan, Michigan community guide child theme built for GeneratePress, Gutenberg, and GenerateBlocks.
Author: MilanMichigan.com
Version: 1.0.0
Template: generatepress
Text Domain: milanmichigan
*/

:root {
  --mm-red: #c41230;
  --mm-red-dark: #970c24;
  --mm-black: #0b0b0d;
  --mm-charcoal: #1a1a1e;
  --mm-ink: #232329;
  --mm-muted: #67676f;
  --mm-line: #e7e7ea;
  --mm-soft: #f6f6f7;
  --mm-white: #ffffff;
  --mm-radius: 18px;
  --mm-shadow: 0 16px 45px rgba(13,13,18,.09);
  --mm-shadow-sm: 0 8px 24px rgba(13,13,18,.08);
  --mm-wrap: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { color: var(--mm-ink); background: var(--mm-white); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.68; }
a { color: var(--mm-red-dark); text-underline-offset: .18em; }
a:hover { color: var(--mm-red); }
::selection { background: var(--mm-red); color: #fff; }

body.mm-site .site.grid-container,
body.mm-site .site-content.grid-container { max-width: 100%; padding: 0; }
body.mm-site .content-area { width: 100%; }
body.mm-site .site-main { margin: 0; }
body.mm-site .inside-article { padding: 0; }
body.mm-site.page .entry-header { display: none; }
body.mm-site.page .site-main > article { margin: 0; }

.mm-wrap { width: min(calc(100% - 40px), var(--mm-wrap)); margin-inline: auto; }
.mm-narrow { width: min(calc(100% - 40px), 820px); margin-inline: auto; }
.mm-section { padding: 88px 0; }
.mm-section--soft { background: var(--mm-soft); }
.mm-section--dark { color: #fff; background: var(--mm-black); }
.mm-section--red { color: #fff; background: linear-gradient(135deg,var(--mm-red-dark),var(--mm-red)); }
.mm-eyebrow { margin: 0 0 12px; color: var(--mm-red); font-size: .79rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.mm-section--dark .mm-eyebrow, .mm-section--red .mm-eyebrow { color: #fff; opacity: .78; }
.mm-display { max-width: 850px; margin: 0 0 20px; color: inherit; font-size: clamp(2.25rem,5vw,4.65rem); line-height: .98; letter-spacing: -.045em; font-weight: 850; }
.mm-title { max-width: 800px; margin: 0 0 18px; font-size: clamp(1.9rem,3.5vw,3rem); line-height: 1.08; letter-spacing: -.032em; font-weight: 820; }
.mm-lead { max-width: 760px; margin: 0; color: var(--mm-muted); font-size: clamp(1.03rem,1.5vw,1.2rem); }
.mm-section--dark .mm-lead, .mm-section--red .mm-lead { color: rgba(255,255,255,.78); }
.mm-kicker { font-size: 1.12rem; color: var(--mm-muted); }
.mm-center { text-align: center; }
.mm-center .mm-title, .mm-center .mm-lead { margin-inline: auto; }

.mm-topbar { background: var(--mm-red); color: #fff; font-size: .86rem; font-weight: 700; }
.mm-topbar .mm-wrap { display: flex; justify-content: space-between; gap: 18px; padding-block: 9px; }
.mm-topbar a { color: #fff; text-decoration: none; }
.mm-topbar a:hover { text-decoration: underline; }

.site-header { background: var(--mm-black); color: #fff; border-bottom: 1px solid rgba(255,255,255,.08); }
.site-header .inside-header { max-width: var(--mm-wrap); padding: 25px 20px; }
.site-branding { position: relative; padding-left: 54px; }
.site-branding::before { content: "M"; position: absolute; left: 0; top: 50%; display: grid; place-items: center; width: 42px; height: 42px; transform: translateY(-50%); color: #fff; background: var(--mm-red); border-radius: 12px 2px 12px 2px; font-weight: 900; font-size: 1.25rem; box-shadow: inset 0 0 0 2px rgba(255,255,255,.15); }
.main-title { font-size: 1.35rem; letter-spacing: -.025em; font-weight: 850; }
.main-title a { color: #fff; text-decoration: none; }
.site-description { margin-top: 2px; color: rgba(255,255,255,.6); font-size: .82rem; }

.main-navigation { position: sticky; top: 0; z-index: 50; background: #fff; box-shadow: 0 5px 24px rgba(0,0,0,.06); }
.main-navigation .inside-navigation { max-width: var(--mm-wrap); margin: auto; padding-inline: 10px; }
.main-navigation .main-nav ul li a, .menu-toggle { color: var(--mm-black); font-weight: 760; font-size: .92rem; }
.main-navigation .main-nav ul li a { line-height: 58px; }
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a { color: var(--mm-red); background: transparent; }
.main-navigation .main-nav ul li:last-child > a { margin: 10px 0 10px 10px; padding: 0 20px; line-height: 38px; color: #fff; background: var(--mm-red); border-radius: 999px; }
.main-navigation .main-nav ul li:last-child:hover > a { color: #fff; background: var(--mm-red-dark); }

.mm-hero { position: relative; overflow: hidden; color: #fff; background: var(--mm-black); }
.mm-hero::before { content:""; position:absolute; inset:-30% 35% -60% -15%; background: radial-gradient(circle at 42% 46%, rgba(196,18,48,.7), rgba(196,18,48,.08) 42%, transparent 68%); transform: rotate(-7deg); }
.mm-hero::after { content:""; position:absolute; right:-8%; top:-22%; width:52vw; height:52vw; max-width:760px; max-height:760px; border:1px solid rgba(255,255,255,.08); border-radius:50%; box-shadow: 0 0 0 55px rgba(255,255,255,.025),0 0 0 110px rgba(255,255,255,.02); }
.mm-hero .mm-wrap { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr); gap:70px; align-items:center; min-height:650px; padding-block:92px; }
.mm-hero .mm-eyebrow { color: #ff879b; }
.mm-hero .mm-lead { color: rgba(255,255,255,.76); max-width: 680px; }
.mm-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.mm-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:12px 21px; border:1px solid transparent; border-radius:999px; text-decoration:none !important; font-size:.92rem; font-weight:800; transition: transform .2s ease, background .2s ease, border-color .2s ease; }
.mm-btn:hover { transform: translateY(-2px); }
.mm-btn--red { color:#fff !important; background:var(--mm-red); }
.mm-btn--red:hover { background:#df183b; }
.mm-btn--ghost { color:#fff !important; border-color:rgba(255,255,255,.28); background:rgba(255,255,255,.06); }
.mm-btn--ghost:hover { border-color:rgba(255,255,255,.55); background:rgba(255,255,255,.1); }
.mm-btn--dark { color:#fff !important; background:var(--mm-black); }
.mm-btn--dark:hover { background:#252529; }

.mm-hero-card { position:relative; min-height:405px; padding:34px; border:1px solid rgba(255,255,255,.14); border-radius:30px 8px 30px 8px; background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(255,255,255,.045)); backdrop-filter: blur(12px); box-shadow:0 30px 80px rgba(0,0,0,.35); }
.mm-hero-card::before { content:"48160"; position:absolute; right:22px; top:8px; color:rgba(255,255,255,.05); font-size:5.4rem; font-weight:900; letter-spacing:-.08em; }
.mm-hero-card h2 { position:relative; margin:0 0 24px; font-size:1.1rem; color:#fff; }
.mm-quick-list { position:relative; list-style:none; padding:0; margin:0; }
.mm-quick-list li { display:flex; gap:14px; padding:16px 0; border-top:1px solid rgba(255,255,255,.1); }
.mm-quick-list strong { display:block; color:#fff; font-size:.96rem; }
.mm-quick-list span { color:rgba(255,255,255,.62); font-size:.84rem; }
.mm-dot { flex:0 0 auto; width:10px; height:10px; margin-top:7px; border-radius:50%; background:var(--mm-red); box-shadow:0 0 0 5px rgba(196,18,48,.18); }

.mm-grid { display:grid; gap:24px; margin-top:38px; }
.mm-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.mm-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.mm-grid--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.mm-card { position:relative; height:100%; padding:30px; background:#fff; border:1px solid var(--mm-line); border-radius:var(--mm-radius); box-shadow:0 1px 0 rgba(10,10,12,.02); transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.mm-card:hover { transform:translateY(-4px); border-color:#d9d9de; box-shadow:var(--mm-shadow); }
.mm-card h3 { margin:0 0 10px; color:var(--mm-black); font-size:1.14rem; line-height:1.25; }
.mm-card p { margin:0; color:var(--mm-muted); font-size:.95rem; }
.mm-card .mm-meta { display:block; margin-top:14px; color:var(--mm-red-dark); font-size:.78rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.mm-card--dark { color:#fff; background:var(--mm-charcoal); border-color:rgba(255,255,255,.08); }
.mm-card--dark h3 { color:#fff; }
.mm-card--dark p { color:rgba(255,255,255,.67); }
.mm-card-number { display:grid; place-items:center; width:38px; height:38px; margin-bottom:22px; border-radius:12px 3px 12px 3px; color:#fff; background:var(--mm-red); font-weight:900; }

.mm-category-card { min-height:270px; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; color:#fff; background:var(--mm-black); border:0; }
.mm-category-card::before { content:""; position:absolute; inset:0; background:linear-gradient(160deg,transparent 10%,rgba(0,0,0,.88) 82%), radial-gradient(circle at 100% 0%,rgba(196,18,48,.58),transparent 52%); }
.mm-category-card > * { position:relative; z-index:1; }
.mm-category-card h3 { color:#fff; font-size:1.35rem; }
.mm-category-card p { color:rgba(255,255,255,.7); }
.mm-category-card a { color:#fff; text-decoration:none; }

.mm-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:70px; align-items:center; }
.mm-stat-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.mm-stat { padding:24px; border-radius:16px; background:#fff; border:1px solid var(--mm-line); }
.mm-stat strong { display:block; color:var(--mm-black); font-size:1.55rem; line-height:1.1; }
.mm-stat span { display:block; margin-top:7px; color:var(--mm-muted); font-size:.84rem; }

.mm-band { padding:30px 0; background:var(--mm-red); color:#fff; }
.mm-band .mm-wrap { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:rgba(255,255,255,.18); }
.mm-band-item { background:var(--mm-red); padding:12px 24px; text-align:center; }
.mm-band-item strong { display:block; font-size:1rem; }
.mm-band-item span { color:rgba(255,255,255,.72); font-size:.76rem; }

.mm-list { margin:24px 0 0; padding:0; list-style:none; }
.mm-list li { position:relative; padding:10px 0 10px 30px; border-bottom:1px solid var(--mm-line); }
.mm-list li::before { content:""; position:absolute; left:2px; top:19px; width:9px; height:9px; background:var(--mm-red); border-radius:50%; }
.mm-list li:last-child { border-bottom:0; }
.mm-list strong { color:var(--mm-black); }
.mm-section--dark .mm-list li { border-color:rgba(255,255,255,.1); }
.mm-section--dark .mm-list strong { color:#fff; }

.mm-feature { padding:28px 0; border-top:1px solid var(--mm-line); }
.mm-feature:first-child { border-top:0; }
.mm-feature h3 { margin:0 0 7px; font-size:1.18rem; }
.mm-feature p { margin:0; color:var(--mm-muted); }

.mm-callout { padding:34px; border-radius:var(--mm-radius); background:linear-gradient(135deg,#17171a,#0a0a0c); color:#fff; box-shadow:var(--mm-shadow); }
.mm-callout h3 { margin-top:0; color:#fff; }
.mm-callout p { color:rgba(255,255,255,.7); }
.mm-callout a { color:#fff; }

.mm-faq details { margin:12px 0; border:1px solid var(--mm-line); border-radius:14px; background:#fff; }
.mm-faq summary { cursor:pointer; padding:19px 22px; color:var(--mm-black); font-weight:800; }
.mm-faq details p { margin:0; padding:0 22px 22px; color:var(--mm-muted); }

.mm-page-hero { padding:92px 0 70px; color:#fff; background:linear-gradient(135deg,#08080a 0%,#151519 64%,#630719 140%); }
.mm-page-hero .mm-lead { color:rgba(255,255,255,.7); }
.mm-breadcrumb { margin-bottom:20px; color:rgba(255,255,255,.58); font-size:.82rem; }
.mm-breadcrumb a { color:#fff; text-decoration:none; }

.mm-contact-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:34px; margin-top:40px; }
.mm-contact-form { padding:34px; background:#fff; border:1px solid var(--mm-line); border-radius:var(--mm-radius); box-shadow:var(--mm-shadow-sm); }
.mm-form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.mm-field { margin-bottom:17px; }
.mm-field label { display:block; margin-bottom:7px; color:var(--mm-black); font-size:.85rem; font-weight:800; }
.mm-field input,.mm-field textarea { width:100%; border:1px solid #d7d7dc; border-radius:12px; background:#fff; padding:13px 14px; font:inherit; color:var(--mm-ink); }
.mm-field input:focus,.mm-field textarea:focus { outline:3px solid rgba(196,18,48,.15); border-color:var(--mm-red); }
.mm-field textarea { min-height:160px; resize:vertical; }
.mm-form-note { color:var(--mm-muted); font-size:.82rem; }
.mm-alert { margin:0 0 20px; padding:14px 17px; border-radius:12px; font-weight:700; }
.mm-alert--success { color:#155724; background:#eaf7ee; }
.mm-alert--error { color:#842029; background:#fbecef; }
.mm-hp { position:absolute !important; left:-9999px !important; }

.mm-footer { margin-top:0; color:#fff; background:#070709; }
.mm-footer-main { padding:70px 0 50px; }
.mm-footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:46px; }
.mm-footer h2 { margin:0 0 14px; color:#fff; font-size:1.2rem; }
.mm-footer h3 { margin:0 0 16px; color:#fff; font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; }
.mm-footer p { color:rgba(255,255,255,.58); font-size:.89rem; }
.mm-footer ul { list-style:none; margin:0; padding:0; }
.mm-footer li { margin:8px 0; }
.mm-footer a { color:rgba(255,255,255,.75); text-decoration:none; font-size:.89rem; }
.mm-footer a:hover { color:#fff; }
.mm-footer-bottom { padding:18px 0; border-top:1px solid rgba(255,255,255,.08); }
.mm-footer-bottom .mm-wrap { display:flex; justify-content:space-between; gap:20px; color:rgba(255,255,255,.42); font-size:.76rem; }
.site-info { display:none; }

@media (max-width: 980px) {
  .mm-grid--4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mm-grid--3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mm-hero .mm-wrap, .mm-split, .mm-contact-grid { grid-template-columns:1fr; }
  .mm-hero .mm-wrap { min-height:auto; gap:40px; }
  .mm-hero-card { min-height:auto; }
  .mm-footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mm-band .mm-wrap { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 768px) {
  .mm-topbar .mm-wrap { display:block; text-align:center; }
  .mm-topbar .mm-wrap span:last-child { display:none; }
  .site-header .inside-header { padding-block:18px; }
  .main-navigation { position:relative; }
  .mm-section { padding:64px 0; }
  .mm-page-hero { padding:72px 0 54px; }
  .mm-grid--2,.mm-grid--3,.mm-grid--4,.mm-footer-grid,.mm-band .mm-wrap,.mm-stat-grid,.mm-form-row { grid-template-columns:1fr; }
  .mm-hero .mm-wrap { padding-block:70px; }
  .mm-hero-card { padding:26px; }
  .mm-card { padding:25px; }
  .mm-footer-bottom .mm-wrap { display:block; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none !important; }
}
