/*
Theme Name: MTSW GeneratePress Child
Theme URI: https://movetosouthwestwashington.com/
Description: Lightweight GeneratePress child theme for MoveToSouthwestWashington.com.
Author: Joseph Nelson
Template: generatepress
Version: 0.4.0
Text Domain: mtsw
*/

:root {
  --mtsw-navy: #0b2f45;
  --mtsw-navy-2: #123f5c;
  --mtsw-gold: #c59a3d;
  --mtsw-gold-dark: #9d7627;
  --mtsw-evergreen: #3f6b4a;
  --mtsw-light: #f7f6f2;
  --mtsw-text: #26323a;
  --mtsw-muted: #64727c;
  --mtsw-white: #fff;
  --mtsw-border: rgba(11,47,69,.14);
  --mtsw-radius: 18px;
  --mtsw-shadow: 0 18px 45px rgba(11,47,69,.12);
  --mtsw-section-space: clamp(3.75rem, 7vw, 6.75rem);
}

html { scroll-behavior: smooth; }
body {
  color: var(--mtsw-text);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 18px;
  line-height: 1.7;
  background: var(--mtsw-white);
}

h1,h2,h3,h4,h5,h6 {
  color: var(--mtsw-navy);
  font-family: Merriweather, Georgia, serif;
  line-height: 1.16;
  letter-spacing: -.02em;
}
h1 { font-size: clamp(2.55rem, 5.8vw, 4.8rem); }
h2 { font-size: clamp(2rem, 4.2vw, 3.15rem); }
h3 { font-size: clamp(1.35rem, 2.5vw, 1.75rem); }
a { color: var(--mtsw-navy); }
a:hover { color: var(--mtsw-evergreen); }
:focus-visible { outline: 3px solid var(--mtsw-gold); outline-offset: 3px; }

/* GeneratePress header refinement */
.site-header { background: var(--mtsw-white); border-bottom: 1px solid var(--mtsw-border); }
.inside-header {
  max-width: 1240px;
  padding: 18px 24px;
  display: flex;
  align-items: center;
  gap: 28px;
}
.site-branding-container { flex: 0 1 auto; }
.site-logo img { max-height: 72px; width: auto; }
.site-branding .main-title { font-size: clamp(1.35rem, 2vw, 1.8rem); margin: 0; }
.site-branding .site-description { display: none; }
.main-navigation {
  margin-left: auto;
  background: var(--mtsw-navy);
  border-radius: 12px;
  box-shadow: 0 10px 24px rgba(11,47,69,.16);
}
.main-navigation .main-nav ul li a {
  color: var(--mtsw-white);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.25;
  padding: 14px 15px;
}
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li:focus > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
  background: rgba(197,154,61,.16);
  color: #f2c96f;
}

/* Layout primitives */
.mtsw-section { padding-block: var(--mtsw-section-space); }
.mtsw-section--light { background: var(--mtsw-light); }
.mtsw-section--navy { background: var(--mtsw-navy); color: var(--mtsw-white); }
.mtsw-section--navy h2,.mtsw-section--navy h3 { color: var(--mtsw-white); }
.mtsw-wrap { width: min(1180px, calc(100% - 2rem)); margin-inline: auto; }
.mtsw-grid { display: grid; gap: 1.5rem; }
.mtsw-grid--2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.mtsw-grid--3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.mtsw-grid--6 { grid-template-columns: repeat(3,minmax(0,1fr)); }

.mtsw-card {
  background: var(--mtsw-white);
  border: 1px solid var(--mtsw-border);
  border-radius: var(--mtsw-radius);
  box-shadow: var(--mtsw-shadow);
  padding: clamp(1.5rem,3vw,2.25rem);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.mtsw-card:hover { transform: translateY(-4px); box-shadow: 0 22px 52px rgba(11,47,69,.16); border-color: rgba(197,154,61,.55); }
.mtsw-card h3 { margin-top: 0; }
.mtsw-card p:last-child { margin-bottom: 0; }

.mtsw-button,.wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  border-radius: 9px;
  font-weight: 750;
  padding: .8rem 1.25rem;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.mtsw-button:hover,.wp-block-button__link:hover { transform: translateY(-1px); }
.mtsw-button--primary,.mtsw-button-primary .wp-block-button__link { background: var(--mtsw-gold); color: #14202a; box-shadow: 0 8px 20px rgba(0,0,0,.18); }
.mtsw-button--primary:hover,.mtsw-button-primary .wp-block-button__link:hover { background: #d5ad56; color: #14202a; }
.mtsw-button--secondary,.mtsw-button-secondary .wp-block-button__link { background: transparent; border: 2px solid currentColor; color: inherit; }
.mtsw-button-row { display:flex; flex-wrap:wrap; gap:.85rem; margin-top:1.5rem; }

.mtsw-eyebrow { color: var(--mtsw-evergreen); font-size:.8rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.mtsw-section-heading { max-width: 760px; margin-bottom: 2.25rem; }
.mtsw-section-heading p { color: var(--mtsw-muted); font-size: 1.08rem; }

/* Homepage hero */
.mtsw-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: clamp(610px, 72vh, 780px);
  display: grid;
  align-items: center;
  color: var(--mtsw-white);
  background-color: var(--mtsw-navy);
  background-image: linear-gradient(90deg, rgba(6,30,47,.96) 0%, rgba(10,47,70,.84) 48%, rgba(10,47,70,.38) 100%);
}
.mtsw-hero::after { content:""; position:absolute; inset:auto 0 0; height:120px; background:linear-gradient(transparent,rgba(5,25,38,.28)); z-index:-1; }
.mtsw-hero .mtsw-wrap { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr); align-items:center; gap:clamp(2rem,5vw,5rem); padding-block:clamp(5rem,10vw,8rem); }
.mtsw-hero h1 { color:var(--mtsw-white); max-width:780px; margin:0 0 1rem; text-wrap:balance; }
.mtsw-hero p { max-width:720px; font-size:clamp(1.05rem,1.6vw,1.25rem); }
.mtsw-hero .mtsw-eyebrow { color:#8fbd91; }
.mtsw-hero-portrait { align-self:end; display:flex; justify-content:center; }
.mtsw-hero-portrait img { width:min(100%,390px); aspect-ratio:1/1; object-fit:cover; object-position:top center; border-radius:50%; border:6px solid rgba(255,255,255,.92); box-shadow:0 26px 60px rgba(0,0,0,.34); }

.mtsw-community-card { min-height: 210px; display:flex; flex-direction:column; justify-content:flex-end; position:relative; overflow:hidden; color:var(--mtsw-white); background:linear-gradient(145deg,var(--mtsw-navy-2),var(--mtsw-navy)); }
.mtsw-community-card h3,.mtsw-community-card a { color:var(--mtsw-white); }
.mtsw-community-card p { color:rgba(255,255,255,.82); }
.mtsw-community-card::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 90% 10%,rgba(197,154,61,.32),transparent 38%); pointer-events:none; }

.mtsw-search-card { display:flex; flex-direction:column; gap:.65rem; }
.mtsw-search-card .mtsw-button { margin-top:auto; }

.mtsw-meet { display:grid; grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr); gap:clamp(2rem,5vw,5rem); align-items:center; }
.mtsw-meet img { width:100%; max-width:430px; margin-inline:auto; border-radius:var(--mtsw-radius); box-shadow:var(--mtsw-shadow); }

.mtsw-cta { border-radius:24px; padding:clamp(2rem,5vw,4rem); background:linear-gradient(135deg,var(--mtsw-navy),var(--mtsw-navy-2)); color:var(--mtsw-white); box-shadow:var(--mtsw-shadow); }
.mtsw-cta h2 { color:var(--mtsw-white); margin-top:0; }
.mtsw-compliance { border-left:4px solid var(--mtsw-gold); background:var(--mtsw-light); padding:1rem 1.25rem; font-size:.92rem; }

.site-footer { background:var(--mtsw-navy); color:rgba(255,255,255,.84); }
.site-footer a { color:#f0c96f; }

@media (max-width: 1100px) {
  .inside-header { flex-wrap:wrap; }
  .main-navigation { width:100%; margin-left:0; }
  .main-navigation .inside-navigation { justify-content:center; }
}
@media (max-width: 900px) {
  .mtsw-grid--3,.mtsw-grid--6 { grid-template-columns:1fr 1fr; }
  .mtsw-hero .mtsw-wrap { grid-template-columns:1fr; text-align:left; }
  .mtsw-hero-portrait { justify-content:flex-start; }
  .mtsw-hero-portrait img { width:260px; }
  .mtsw-meet { grid-template-columns:1fr; }
}
@media (max-width: 768px) {
  .inside-header { padding:14px 18px; }
  .main-navigation { border-radius:0; width:calc(100% + 36px); margin-inline:-18px; }
  .menu-toggle { color:var(--mtsw-white); }
}
@media (max-width: 650px) {
  body { font-size:17px; }
  .mtsw-grid--2,.mtsw-grid--3,.mtsw-grid--6 { grid-template-columns:1fr; }
  .mtsw-hero { min-height:auto; }
  .mtsw-hero .mtsw-wrap { padding-block:4.5rem; }
  .mtsw-button-row { flex-direction:column; align-items:stretch; }
  .mtsw-button-row .mtsw-button,.mtsw-button-row .wp-block-button { width:100%; }
}
