:root {
  --ink: #5e5d58;
  --paper: #fbfaf8;
  --soft: #efeeeb;
  --muted: #77756e;
  --line: #d8d6d0;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  font:
    16px/1.6 Archivo,
    Arial,
    sans-serif;
  color: var(--ink);
  background: #fff;
  letter-spacing: -0.015em;
}
.wrap {
  width: min(1120px, calc(100% - 48px));
  margin: auto;
}
a {
  color: inherit;
}
.top {
  margin: 20px;
  border-radius: 12px;
  background: var(--soft);
  padding: 22px 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.brand {
  text-decoration: none;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.05em;
}
.brand-name { display:block; }
.brand-meta { display:block; margin-top:2px; font-size:10px; line-height:1.25; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); }
.top nav {
  display: flex;
  gap: 22px;
}
.top nav a {
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
}
.top .contact-link { border-bottom:1px solid currentColor; }
.hero {
  margin: 0 20px;
  border-radius: 12px;
  background: #65645f;
  color: #fff;
  padding: 100px 0;
}
.eyebrow {
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.13em;
  opacity: 0.68;
}
.hero h1,
.section h2 {
  font-size: clamp(46px, 7vw, 82px);
  line-height: 0.93;
  letter-spacing: -0.07em;
  margin: 18px 0 22px;
}
.hero p {
  font-size: 19px;
  max-width: 720px;
  color: rgba(255, 255, 255, 0.78);
}
.actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 30px;
}
.btn {
  display: inline-flex;
  padding: 13px 20px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 800;
  background: #fff;
  color: var(--ink);
}
.btn.dark {
  background: #55544f;
  color: #fff;
}
.section {
  padding: 90px 0;
}
.intro {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 70px;
}
.intro h2 {
  font-size: clamp(42px, 5vw, 65px);
  margin-top: 0;
}
.intro p {
  color: var(--muted);
  font-size: 17px;
}
.grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-top: 40px;
}
.card {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 26px;
  background: var(--paper);
}
.card h3 {
  font-size: 22px;
  line-height: 1.1;
  margin: 10px 0;
}
.card p {
  font-size: 14px;
  color: var(--muted);
}
.card .card-meta { font-size:13px; font-weight:800; color:var(--ink); text-transform:uppercase; letter-spacing:.06em; }
.sold-grid { grid-template-columns:repeat(3,1fr); }
.sold-card { display:flex; flex-direction:column; justify-content:space-between; min-height:440px; overflow:hidden; }
.sold-card .sold-price { font-size:38px; line-height:1; font-weight:900; letter-spacing:-.055em; margin:22px 0 8px; }
.sold-card .sold-address { font-size:20px; line-height:1.2; font-weight:800; }
.sold-card .sold-details { margin-top:24px; padding-top:16px; border-top:1px solid var(--line); font-size:13px; color:var(--muted); }
.results-hero { background:linear-gradient(90deg,rgba(39,47,47,.93),rgba(39,47,47,.58)),url('/fairhope-sunset-hero.jpg') center 48%/cover no-repeat; }
.results-summary { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:end; }
.results-summary h2 { margin-bottom:0; }
.summary-copy p { font-size:17px; color:var(--muted); }
.summary-copy .source-note { font-size:13px; }
.result-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:46px; }
.result-stats div { padding:25px; border-radius:14px; background:#263f42; color:#fff; }
.result-stats strong,.result-stats span { display:block; }
.result-stats strong { font-size:24px; line-height:1.1; letter-spacing:-.04em; }
.result-stats span { margin-top:7px; font-size:12px; opacity:.68; text-transform:uppercase; letter-spacing:.07em; }
.sold-toolbar { display:flex; flex-wrap:wrap; gap:8px; margin-top:34px; }
.filter { border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:999px; padding:11px 15px; font:700 12px Archivo,Arial,sans-serif; cursor:pointer; }
.filter.active { background:#263f42; border-color:#263f42; color:#fff; }
.complete-grid { grid-template-columns:repeat(3,1fr); }
.complete-grid .sold-card { background:linear-gradient(145deg,#fff,#f3f0ea); transition:transform .2s ease,box-shadow .2s ease; }
.complete-grid .sold-card:hover { transform:translateY(-3px); box-shadow:0 16px 35px rgba(37,48,48,.1); }
.sold-photo { width:calc(100% + 52px); height:220px; object-fit:cover; object-position:center; margin:-26px -26px 24px; border-radius:14px 14px 0 0; background:#e9e5df; }
.portfolio-note { margin-top:24px; border:1px solid var(--line); border-radius:14px; padding:26px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.portfolio-note h3 { margin:4px 0 0; font-size:27px; letter-spacing:-.045em; }
.jubilee-section { background:#263f42; color:#fff; }
.jubilee-section .intro p { color:rgba(255,255,255,.72); }
.jubilee-note { margin-top:42px; padding:26px 28px; border:1px solid rgba(255,255,255,.2); border-radius:14px; display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:start; }
.jubilee-note p { margin:0; max-width:650px; color:rgba(255,255,255,.78); }
.jubilee-note a { display:block; width:fit-content; margin-top:14px; color:#fff; font-weight:800; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.55); }
.area-buyer-dialog { width:min(680px,calc(100% - 24px)); max-height:calc(100dvh - 24px); padding:0; border:0; border-radius:18px; color:var(--ink); box-shadow:0 30px 90px rgba(0,0,0,.28); }
.area-buyer-dialog::backdrop { background:rgba(28,28,26,.62); backdrop-filter:blur(3px); }
.area-buyer-head { display:flex; justify-content:space-between; gap:20px; padding:25px 27px 15px; border-bottom:1px solid var(--line); }
.area-buyer-head h2 { margin:5px 0 0; font-size:32px; line-height:1; letter-spacing:-.05em; }
.area-buyer-close { width:38px; height:38px; flex:0 0 auto; border:0; border-radius:50%; background:var(--soft); color:var(--ink); font-size:24px; cursor:pointer; }
.area-buyer-form { display:grid; gap:14px; padding:22px 27px 28px; }
.area-buyer-intro { margin:0 0 2px; color:var(--muted); font-size:14px; }
.area-buyer-two { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.area-buyer-form label { display:grid; gap:6px; font-size:13px; font-weight:800; }
.area-buyer-form input,.area-buyer-form select,.area-buyer-form textarea { width:100%; padding:13px; border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--ink); font:inherit; }
.area-buyer-form textarea { min-height:88px; resize:vertical; }
.area-buyer-consent { display:flex!important; grid-template-columns:none; gap:10px!important; align-items:flex-start; font-weight:600!important; line-height:1.45; color:var(--muted); }
.area-buyer-consent input { width:auto; margin-top:3px; flex:0 0 auto; }
.area-buyer-submit { border:0; cursor:pointer; }
.cta {
  margin: 0 20px 20px;
  border-radius: 12px;
  background: var(--soft);
  padding: 58px 0;
}
.cta-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
}
.cta h2 {
  font-size: 40px;
  line-height: 1;
  letter-spacing: -0.055em;
  margin: 0 0 8px;
}
.cta p {
  margin: 0;
  color: var(--muted);
}
footer {
  padding: 34px 0 50px;
  font-size: 13px;
  color: var(--muted);
}
.footer-inner {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
}
.footer-nav {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
}
.footer-nav a {
  font-weight: 700;
  text-decoration: none;
}
.calc {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.field label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 5px;
}
.field input {
  width: 100%;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font: inherit;
}
.result {
  background: #65645f;
  color: #fff;
  border-radius: 12px;
  padding: 30px;
}
.result strong {
  display: block;
  font-size: 44px;
  line-height: 1;
  margin: 10px 0;
}
.resource {
  padding: 28px 0;
  border-top: 1px solid var(--line);
}
.resource h3 {
  font-size: 28px;
  letter-spacing: -0.04em;
  margin: 0 0 8px;
}
.events-section { background:var(--soft); }
.event-grid { grid-template-columns:repeat(3,1fr); }
.event-date { font-size:12px; font-weight:900; letter-spacing:.12em; color:#77756e; }
.event-link { margin-top:22px; }
.fairhope-dining-note { margin-top:18px; padding:24px 26px; border-left:4px solid #263f42; background:#fff; }
.fairhope-dining-note p { max-width:850px; margin:8px 0 0; color:var(--muted); line-height:1.55; }
.events-hero { background:linear-gradient(90deg,rgba(39,47,47,.9),rgba(39,47,47,.38)),url('/fairhope-point-clear-sunset-hero.webp') center/cover no-repeat; }
.freshness { display:inline-flex; align-items:center; gap:9px; margin-top:24px; padding:9px 13px; border-radius:999px; background:rgba(255,255,255,.14); font-size:13px; font-weight:700; }
.freshness span { width:8px; height:8px; border-radius:50%; background:#9dd8a6; box-shadow:0 0 0 4px rgba(157,216,166,.16); }
.event-area-nav { display:flex; gap:8px; flex-wrap:wrap; padding:22px 0; }
.event-area-nav a { padding:11px 15px; border-radius:999px; background:var(--soft); text-decoration:none; font-size:13px; font-weight:800; }
.event-area { scroll-margin-top:20px; }
.event-area.soft { background:var(--soft); }
.event-area-head { display:flex; justify-content:space-between; align-items:end; gap:30px; }
.event-area-head h2 { margin:8px 0 0; font-size:clamp(38px,5vw,66px); line-height:.98; letter-spacing:-.065em; }
.event-area-head>a { font-weight:800; text-decoration:none; border-bottom:1px solid currentColor; }
.event-list { display:grid; gap:10px; margin-top:34px; }
.event-item { display:grid; grid-template-columns:90px 1fr; gap:24px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px; }
.event-date-block { min-height:72px; display:flex; flex-direction:column; justify-content:center; align-items:center; border-radius:10px; background:#263f42; color:#fff; }
.event-date-block strong { font-size:26px; line-height:1; letter-spacing:-.05em; }
.event-date-block span { margin-top:6px; font-size:11px; font-weight:900; letter-spacing:.12em; }
.event-item h3 { margin:0 0 5px; font-size:22px; letter-spacing:-.035em; }
.event-item p { margin:0; color:var(--muted); }
.section-note { max-width:420px; margin:0; color:var(--muted); font-size:16px; }
.event-spotlight { background:#263f42; color:#fff; scroll-margin-top:20px; }
.event-spotlight .eyebrow,.event-spotlight .section-note { color:rgba(255,255,255,.68); }
.event-feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:36px; }
.event-feature { min-height:255px; display:flex; flex-direction:column; padding:26px; border-radius:14px; background:#fff; color:var(--ink); }
.event-feature h3 { margin:12px 0 8px; font-size:24px; line-height:1.08; letter-spacing:-.045em; }
.event-feature p { margin:0 0 25px; color:var(--muted); font-size:14px; }
.event-feature>span { margin-top:auto; padding-top:14px; border-top:1px solid var(--line); font-size:11px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.annual-section { background:#f7f2e9; scroll-margin-top:20px; }
.season-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:36px; }
.season-card { min-height:220px; display:flex; flex-direction:column; padding:25px; border-radius:14px; background:#fff; border:1px solid #e6dfd3; }
.season-card>span { font-size:11px; font-weight:900; letter-spacing:.11em; color:#8b7252; }
.season-card h3 { margin:18px 0 8px; font-size:23px; line-height:1.08; letter-spacing:-.04em; }
.season-card p { margin:0; color:var(--muted); font-size:14px; }
.season-card a { align-self:flex-start; margin-top:auto; padding-top:20px; color:#263f42; font-size:12px; font-weight:900; text-decoration:none; }
.season-card a:hover,.season-card a:focus-visible { text-decoration:underline; text-underline-offset:4px; }

/* Coastal Alabama events hub */
.events-page { background:#f5f3ee; }
.events-page .events-hero {
  min-height:560px;
  display:flex;
  align-items:flex-end;
  padding:120px 0 78px;
  background:linear-gradient(90deg,rgba(22,32,33,.9),rgba(22,32,33,.24)),url('/fairhope-point-clear-sunset-hero.webp') center 52%/cover no-repeat;
}
.events-page .events-hero .wrap { width:min(100% - 48px,1180px); }
.events-page .events-hero h1 { max-width:900px; font-size:clamp(58px,9vw,118px); line-height:.82; letter-spacing:-.085em; }
.events-page .events-hero p { max-width:680px; font-size:18px; }
.event-intro { padding:92px 0 52px; background:#f5f3ee; }
.event-intro-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; align-items:start; }
.event-intro h2 { margin:9px 0 0; font-size:clamp(48px,6.5vw,82px); line-height:.9; letter-spacing:-.075em; }
.event-intro-grid>div:last-child>p:first-child { margin:2px 0 28px; max-width:650px; color:var(--muted); font-size:18px; line-height:1.55; }
.event-filters { display:flex; flex-wrap:wrap; gap:8px; }
.event-filters button {
  appearance:none;
  border:1px solid #d7d3cb;
  border-radius:999px;
  background:transparent;
  color:var(--ink);
  padding:11px 16px;
  font:800 13px/1 Archivo,sans-serif;
  cursor:pointer;
  transition:background .2s,color .2s,border-color .2s;
}
.event-filters button:hover,.event-filters button:focus-visible,.event-filters button.is-active { background:#263f42; border-color:#263f42; color:#fff; }
.event-filter-status { margin:14px 0 0 !important; color:#77756e !important; font-size:13px !important; font-weight:700; }
.event-month-nav { display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; padding-top:18px; border-top:1px solid #d7d3cb; }
.event-month-nav a { display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:9px 13px; border:1px solid #d7d3cb; border-radius:10px; color:var(--ink); font-size:12px; font-weight:900; text-decoration:none; }
.event-month-nav a span { color:#8a857d; font-size:10px; letter-spacing:.08em; }
.event-month-nav a:hover,.event-month-nav a:focus-visible { border-color:#263f42; background:#fff; }
.fairhope-local { padding:92px 0 88px; background:#fff; scroll-margin-top:20px; }
.fairhope-local-head { display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:end; margin-bottom:42px; }
.fairhope-local-head h2 { margin:9px 0 0; font-size:clamp(50px,7vw,88px); line-height:.86; letter-spacing:-.078em; }
.fairhope-local-head>p { max-width:540px; margin:0 0 5px; color:var(--muted); font-size:18px; line-height:1.55; }
.fairhope-local-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.local-program { min-height:480px; padding:34px; border:1px solid var(--line); border-radius:22px; background:#fff; }
.local-program--dark { background:#263f42; border-color:#263f42; color:#fff; }
.local-program--soft { background:#e8e2d8; }
.local-program-kicker { color:#817c73; font-size:10px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.local-program--dark .local-program-kicker,.local-program--dark p,.local-program--dark small { color:rgba(255,255,255,.65); }
.local-program h3 { margin:16px 0 10px; font-size:clamp(30px,3.4vw,48px); line-height:.96; letter-spacing:-.06em; }
.local-program>p { max-width:610px; margin:0 0 28px; color:var(--muted); line-height:1.55; }
.local-date-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.local-program--dark .local-date-list { border-color:rgba(255,255,255,.2); }
.local-date-list li { display:grid; grid-template-columns:75px 1fr; gap:15px; align-items:baseline; padding:12px 0; border-bottom:1px solid var(--line); }
.local-program--dark .local-date-list li { border-color:rgba(255,255,255,.2); }
.local-date-list time { color:#777269; font-size:11px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.local-program--dark .local-date-list time { color:rgba(255,255,255,.62); }
.local-date-list span { font-size:14px; font-weight:800; }
.local-date-list small { display:inline-block; margin-left:8px; color:#8a857d; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.local-program--dark .event-ticket { border-color:rgba(255,255,255,.48); color:#fff; }
.local-program--dark .event-ticket:hover,.local-program--dark .event-ticket:focus-visible { background:#fff; color:#263f42; }
.local-rhythm a { display:inline-block; margin-top:8px; color:#263f42; font-size:12px; font-weight:900; text-decoration:none; }
.local-rhythm a:hover,.local-rhythm a:focus-visible { text-decoration:underline; text-underline-offset:4px; }
.program-note { margin-top:18px; color:#777269; font-size:12px; font-weight:800; }
.local-rhythm { display:grid; gap:0; margin:30px 0 0; }
.local-rhythm div { padding:17px 0; border-top:1px solid rgba(38,63,66,.18); }
.local-rhythm dt { margin-bottom:6px; font-size:15px; font-weight:900; }
.local-rhythm dd { margin:0; color:#69665f; font-size:13px; line-height:1.5; }
.venue-name-cloud { display:flex; flex-wrap:wrap; gap:8px; margin:34px 0 0; }
.venue-name-cloud span { padding:10px 12px; border:1px solid rgba(255,255,255,.22); border-radius:999px; color:#fff; font-size:12px; font-weight:800; }
.local-watch { margin-top:12px; padding:36px; border:1px solid var(--line); border-radius:22px; background:#f5f3ee; }
.local-watch-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:55px; align-items:end; margin-bottom:28px; }
.local-watch-heading h3 { max-width:720px; margin:11px 0 0; font-size:clamp(34px,4.5vw,58px); line-height:.94; letter-spacing:-.06em; }
.local-watch-heading>p { margin:0; color:var(--muted); font-size:15px; line-height:1.55; }
.local-watch-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); }
.local-watch-grid article { min-height:190px; padding:24px 24px 0 0; border-right:1px solid var(--line); }
.local-watch-grid article:not(:first-child) { padding-left:24px; }
.local-watch-grid article:last-child { border-right:0; }
.local-watch-grid span { color:#817c73; font-size:9px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.local-watch-grid h4 { margin:24px 0 9px; font-size:21px; letter-spacing:-.04em; }
.local-watch-grid p { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.fairhope-traditions { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin-top:12px; border:1px solid var(--line); border-radius:20px; overflow:hidden; }
.fairhope-traditions>div { min-height:170px; display:flex; flex-direction:column; padding:24px 20px; border-right:1px solid var(--line); }
.fairhope-traditions>div:last-child { border-right:0; }
.fairhope-traditions span { color:#817c73; font-size:10px; font-weight:900; letter-spacing:.12em; }
.fairhope-traditions strong { margin:18px 0 8px; font-size:18px; letter-spacing:-.03em; }
.fairhope-traditions small { margin-top:auto; color:var(--muted); font-size:12px; line-height:1.45; }
.fairhope-traditions a { align-self:flex-start; margin-top:14px; color:#263f42; font-size:11px; font-weight:900; text-decoration:none; }
.fairhope-traditions a:hover,.fairhope-traditions a:focus-visible { text-decoration:underline; text-underline-offset:4px; }
.market-guide { padding:92px 0; background:#263f42; color:#fff; }
.market-guide-head { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(40px,8vw,120px); align-items:end; margin-bottom:38px; }
.market-guide-head h2 { margin:14px 0 0; font-size:clamp(42px,6.5vw,88px); line-height:.88; letter-spacing:-.07em; }
.market-guide-head>p { max-width:580px; margin:0; color:rgba(255,255,255,.68); font-size:17px; line-height:1.6; }
.market-guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.market-card { min-height:390px; display:flex; flex-direction:column; padding:30px; border:1px solid rgba(255,255,255,.22); border-radius:20px; background:rgba(255,255,255,.05); }
.market-card--active { background:#e8e2d8; border-color:#e8e2d8; color:#171916; }
.market-card-meta { color:rgba(255,255,255,.6); font-size:10px; font-weight:900; letter-spacing:.13em; }
.market-card--active .market-card-meta { color:#817c73; }
.market-card h3 { margin:24px 0 12px; font-size:clamp(27px,3vw,42px); line-height:.98; letter-spacing:-.055em; }
.market-card p { margin:0 0 24px; color:rgba(255,255,255,.66); font-size:15px; line-height:1.55; }
.market-card--active p { color:var(--muted); }
.market-card dl { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:auto 0 0; }
.market-card dl div { padding-top:12px; border-top:1px solid rgba(0,0,0,.15); }
.market-card dt { color:#817c73; font-size:10px; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }
.market-card dd { margin:5px 0 0; font-size:13px; font-weight:800; }
.market-card>.event-ticket { align-self:flex-start; margin-top:auto; border-color:rgba(255,255,255,.5); color:#fff; }
.market-card>.event-ticket:hover,.market-card>.event-ticket:focus-visible { background:#fff; color:#263f42; }
.market-card--active>.event-ticket { border-color:#263f42; color:#263f42; }
.market-card--active>.event-ticket:hover,.market-card--active>.event-ticket:focus-visible { background:#263f42; color:#fff; }
.card-action { display:inline-block; margin-top:14px; color:#263f42; font-size:12px; font-weight:900; text-decoration:none; }
.card-action:hover,.card-action:focus-visible { text-decoration:underline; text-underline-offset:4px; }
.event-calendar-section { padding:4px 0 100px; background:#f5f3ee; }
.event-month { padding-top:56px; scroll-margin-top:22px; }
.event-month[hidden],.event-editorial[hidden] { display:none; }
.event-month-heading { display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:16px; align-items:end; padding-bottom:18px; border-bottom:1px solid #cfcac0; }
.event-month-heading>span { font-size:12px; font-weight:900; letter-spacing:.14em; }
.event-month-heading h2 { margin:0; font-size:clamp(42px,5vw,64px); line-height:.86; letter-spacing:-.065em; }
.event-month-heading p { margin:0; color:var(--muted); font-size:14px; }
.event-editorial-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding-top:16px; }
.event-editorial {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:0;
  min-height:100%;
  padding:22px;
  border:1px solid #d8d4cb;
  border-radius:16px;
  background:#fff;
}
.event-editorial-date { align-self:start; display:flex; align-items:baseline; gap:8px; margin-bottom:16px; }
.event-editorial-date strong { font-size:31px; line-height:.9; letter-spacing:-.065em; }
.event-editorial-date span { color:#7b766e; font-size:11px; font-weight:900; letter-spacing:.17em; }
.event-editorial-copy { max-width:none; display:flex; flex:1; flex-direction:column; }
.event-tags { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:12px; }
.event-tags span { padding:6px 9px; border:1px solid #d5d0c7; border-radius:999px; color:#68655f; font-size:10px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.event-editorial h3 { margin:0; font-size:clamp(26px,2.5vw,36px); line-height:1; letter-spacing:-.055em; }
.event-editorial-copy>p { max-width:none; margin:12px 0 20px; color:var(--muted); font-size:14px; line-height:1.5; }
.event-editorial dl { display:grid; grid-template-columns:1fr; gap:8px; margin:auto 0 0; }
.event-editorial dl div { padding-top:12px; border-top:1px solid #d8d4cb; }
.event-editorial dt { margin-bottom:5px; color:#8a857d; font-size:10px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.event-editorial dd { margin:0; font-size:13px; font-weight:700; }
.event-ticket { align-self:flex-start; display:inline-flex; align-items:center; gap:9px; margin-top:18px; padding:10px 14px; border:1px solid #263f42; border-radius:999px; color:#263f42; font-size:12px; font-weight:900; text-decoration:none; transition:background .2s,color .2s,transform .2s; }
.event-ticket:hover,.event-ticket:focus-visible { background:#263f42; color:#fff; transform:translateY(-1px); }
.event-ticket span { font-size:15px; line-height:1; }
.event-editorial--feature { margin:0; padding:22px; border:1px solid #b8ada0; border-top:4px solid #263f42; border-radius:16px; background:#fff; color:var(--ink); }
.event-editorial--feature .event-editorial-date span,.event-editorial--feature .event-editorial-copy>p,.event-editorial--feature dt { color:#777269; }
.event-editorial--feature .event-tags span,.event-editorial--feature dl div { border-color:#d8d4cb; }
.event-editorial--feature .event-tags span { color:#68655f; }
.event-editorial--feature .event-ticket { border-color:#263f42; color:#263f42; }
.event-editorial--feature .event-ticket:hover,.event-editorial--feature .event-ticket:focus-visible { background:#263f42; color:#fff; }
.annual-action { display:flex; align-items:center; justify-content:space-between; gap:32px; margin-top:44px; padding:30px; border-radius:22px; background:#fff; border:1px solid #e6dfd3; }
.annual-action h3 { margin:8px 0 7px; font-size:30px; letter-spacing:-.05em; }
.annual-action p { margin:0; color:var(--muted); }
.mardi-hero { background:linear-gradient(125deg,#4a315b,#6d3d68 48%,#9d6d2e); }
.mardi-status { display:inline-flex; align-items:center; gap:9px; margin-top:24px; padding:10px 14px; border:1px solid rgba(255,255,255,.28); border-radius:999px; font-size:13px; font-weight:800; }
.mardi-status i { width:8px; height:8px; border-radius:50%; background:#f2c461; }
.mardi-meta { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.mardi-updated { margin-top:24px; font-size:13px; font-weight:700; color:rgba(255,255,255,.78); }
.mardi-nav { display:flex; gap:8px; overflow-x:auto; padding-top:18px; padding-bottom:18px; }
.mardi-nav a { flex:0 0 auto; padding:10px 15px; border-radius:999px; background:var(--soft); text-decoration:none; font-size:13px; font-weight:800; }
.mardi-city { scroll-margin-top:20px; }
.mardi-city:nth-of-type(even) { background:var(--paper); }
.mardi-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:38px; }
.mardi-panel { padding:26px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.mardi-panel h3 { margin:8px 0 14px; font-size:23px; line-height:1.1; letter-spacing:-.04em; }
.mardi-panel p,.mardi-panel li { color:var(--muted); font-size:15px; }
.mardi-panel ul { margin:0; padding-left:20px; }
.mardi-panel li+li { margin-top:7px; }
.confirmed-parade { border-color:#b8cfbc; box-shadow:inset 4px 0 0 #567d5c; }
.parade-details { display:grid; gap:0; margin:0 0 16px; }
.parade-details div { display:grid; grid-template-columns:minmax(145px,.8fr) 1.2fr; gap:16px; padding:9px 0; border-bottom:1px solid var(--line); }
.parade-details dt { font-size:12px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; color:var(--ink); }
.parade-details dd { margin:0; color:var(--muted); font-size:14px; }
.city-heading { display:flex; justify-content:space-between; align-items:end; gap:28px; }
.city-heading h2 { margin:8px 0 0; font-size:clamp(38px,5vw,66px); line-height:.98; letter-spacing:-.065em; }
.city-heading>a { font-size:14px; font-weight:800; text-decoration:none; border-bottom:1px solid currentColor; }
.status-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:34px; }
.status-card { padding:24px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.status-card>span { display:inline-block; padding:7px 10px; border-radius:999px; font-size:11px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.status-card.confirmed>span { background:#e1efe3; color:#2e5533; }
.status-card.pending>span { background:#f5e9c9; color:#6f5316; }
.status-card.pattern>span { background:#ebe7f0; color:#574365; }
.status-card h3 { margin:18px 0 8px; font-size:21px; line-height:1.1; letter-spacing:-.035em; }
.status-card p { margin:0; color:var(--muted); font-size:14px; }
.schedule-list { display:grid; gap:10px; margin-top:32px; }
.schedule-row { display:grid; grid-template-columns:155px 1fr; gap:22px; padding:22px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.schedule-row .event-date { align-self:start; }
.schedule-row h3 { margin:0 0 6px; font-size:22px; letter-spacing:-.035em; }
.schedule-row p { margin:0; color:var(--muted); }
.mardi-source { display:inline-block; margin-top:12px; font-size:13px; font-weight:800; }
.tip-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:38px; }
.tip-card { padding:24px; border-radius:14px; background:#fff; border:1px solid var(--line); }
.tip-card b { display:block; margin-bottom:10px; font-size:18px; }
.tip-card h3 { margin:0 0 10px; font-size:19px; line-height:1.12; letter-spacing:-.025em; }
.tip-card p { margin:0; color:var(--muted); font-size:14px; }
.planning-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:34px; }
.planning-grid article { padding:25px; border-radius:14px; background:var(--paper); border:1px solid var(--line); }
.planning-grid h3 { margin:0 0 10px; font-size:21px; letter-spacing:-.035em; }
.planning-grid p { margin:0; color:var(--muted); font-size:15px; }
.mardi-figure { margin-top:18px; margin-bottom:18px; }
.mardi-figure img { display:block; width:100%; height:auto; border-radius:18px; }
.mardi-figure figcaption { padding-top:10px; color:var(--muted); font-size:13px; }
.bring-panel { display:grid; grid-template-columns:.8fr 1.2fr; gap:42px; align-items:start; margin-top:34px; padding:30px; border-radius:14px; background:#fff; border:1px solid #e6dfd3; }
.bring-panel h2 { margin:8px 0 0; font-size:clamp(30px,4vw,48px); line-height:1; letter-spacing:-.055em; }
.bring-panel ul { display:grid; grid-template-columns:1fr 1fr; gap:10px 24px; margin:0; padding-left:20px; color:var(--muted); }
.history-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:48px; }
.history-grid h2,.faq-section h2 { margin:8px 0 0; font-size:clamp(38px,5vw,62px); line-height:.98; letter-spacing:-.06em; }
.history-grid p { color:var(--muted); font-size:17px; }
.faq-section { background:var(--paper); }
.faq-list { display:grid; gap:10px; margin-top:34px; }
.faq-list details { border:1px solid var(--line); border-radius:12px; background:#fff; padding:0 20px; }
.faq-list summary { cursor:pointer; list-style:none; padding:19px 30px 19px 0; font-weight:800; position:relative; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:'+'; position:absolute; right:0; top:15px; font-size:24px; font-weight:500; }
.faq-list details[open] summary::after { content:'–'; }
.faq-list p { margin:0 0 20px; max-width:850px; color:var(--muted); }
.guide-links a { font-weight:800; }
.cta-actions { display:flex; gap:10px; flex-wrap:wrap; }
.article-hero { background:#263f42; }
.article-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(250px,.55fr); gap:56px; align-items:start; }
.article-copy { max-width:760px; }
.article-copy h2 { font-size:clamp(34px,4vw,54px); margin:54px 0 16px; }
.article-copy h2:first-child { margin-top:0; }
.article-copy h3 { font-size:24px; line-height:1.15; margin:30px 0 10px; letter-spacing:-.035em; }
.article-copy p,.article-copy li { color:var(--muted); font-size:17px; }
.article-copy ul { padding-left:22px; }
.article-copy li+li { margin-top:8px; }
.article-aside { position:sticky; top:22px; border:1px solid var(--line); border-radius:14px; padding:26px; background:var(--paper); }
.article-aside h2 { font-size:28px; line-height:1.05; letter-spacing:-.045em; margin:8px 0 12px; }
.article-aside p { color:var(--muted); font-size:14px; }
.article-aside .btn { width:100%; justify-content:center; margin-top:12px; }
.article-links { display:grid; gap:10px; margin-top:22px; }
.article-links a { font-size:14px; font-weight:800; text-decoration:none; border-top:1px solid var(--line); padding-top:10px; }
.quick-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin:26px 0; }
.quick-grid div { padding:20px; border:1px solid var(--line); border-radius:12px; background:var(--paper); }
.quick-grid strong { display:block; font-size:17px; }
.quick-grid span { display:block; margin-top:6px; color:var(--muted); font-size:14px; }
@media (max-width: 760px) {
  .wrap {
    width: min(100% - 32px, 1120px);
  }
  .top {
    margin: 12px;
    padding: 18px;
    align-items: stretch;
    flex-direction: column;
    gap: 14px;
  }
  .top .brand {
    text-align: center;
  }
  .sold-grid,.complete-grid,.result-stats { grid-template-columns:1fr; }
  .top nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .top nav a {
    display: block !important;
    padding: 10px 8px;
    border-radius: 999px;
    background: #fff;
    text-align: center;
  }
  .hero {
    margin: 0 12px;
    padding: 72px 0;
  }
  .intro,
  .results-summary,
  .grid,
  .calc,
  .jubilee-note {
    grid-template-columns: 1fr;
  }
  .intro {
    gap: 20px;
  }
  .jubilee-note { gap:12px; }
  .area-buyer-two { grid-template-columns:1fr; }
  .area-buyer-head { padding:21px 20px 13px; }
  .area-buyer-form { padding:18px 20px 24px; }
  .results-summary { gap:20px; }
  .section {
    padding: 64px 0;
  }
  .cta {
    margin: 0 12px 12px;
  }
  .cta-inner,
  .portfolio-note,
  .footer-inner {
    align-items: flex-start;
    flex-direction: column;
  }
  .footer-nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    gap: 8px;
  }
  .footer-nav a {
    padding: 10px;
    border-radius: 999px;
    background: var(--soft);
    text-align: center;
  }
  .btn {
    width: 100%;
    justify-content: center;
  }
  .event-area-nav { padding-left:16px; padding-right:16px; }
  .event-area-head { align-items:flex-start; flex-direction:column; }
  .event-feature-grid,.season-grid { grid-template-columns:1fr; }
  .mardi-grid,.tip-grid,.status-grid,.planning-grid,.bring-panel,.history-grid { grid-template-columns:1fr; }
  .parade-details div { grid-template-columns:1fr; gap:3px; }
  .city-heading { align-items:flex-start; flex-direction:column; }
  .bring-panel ul { grid-template-columns:1fr; }
  .cta-actions { width:100%; }
  .mardi-meta { align-items:flex-start; flex-direction:column; gap:0; }
  .schedule-row { grid-template-columns:1fr; gap:10px; }
  .event-item { grid-template-columns:72px 1fr; gap:15px; padding:16px; }
  .event-date-block { min-height:64px; }
  .article-layout,.quick-grid { grid-template-columns:1fr; }
  .article-aside { position:static; }
  .article-copy p,.article-copy li { font-size:16px; }
  .events-page .events-hero { min-height:520px; padding:96px 0 58px; }
  .events-page .events-hero .wrap { width:min(100% - 32px,1180px); }
  .event-intro { padding:64px 0 30px; }
  .event-intro-grid { grid-template-columns:1fr; gap:28px; }
  .event-filters { flex-wrap:nowrap; overflow-x:auto; padding-bottom:6px; margin-right:-16px; }
  .event-filters button { flex:0 0 auto; }
  .event-month-nav { flex-wrap:nowrap; overflow-x:auto; padding-bottom:6px; margin-right:-16px; }
  .event-month-nav a { flex:0 0 auto; }
  .fairhope-local { padding:64px 0; }
  .fairhope-local-head { grid-template-columns:1fr; gap:24px; }
  .fairhope-local-grid { grid-template-columns:1fr; }
  .local-program { min-height:0; padding:26px 20px; }
  .local-watch { padding:28px 20px; }
  .local-watch-heading { grid-template-columns:1fr; gap:18px; }
  .local-watch-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .local-watch-grid article { min-height:170px; border-bottom:1px solid var(--line); }
  .local-watch-grid article:nth-child(2n) { border-right:0; }
  .local-watch-grid article:nth-last-child(-n+2) { border-bottom:0; }
  .fairhope-traditions { grid-template-columns:1fr; }
  .fairhope-traditions>div { min-height:0; border-right:0; border-bottom:1px solid var(--line); }
  .fairhope-traditions>div:last-child { border-bottom:0; }
  .fairhope-traditions small { margin-top:0; }
  .market-guide { padding:64px 0; }
  .market-guide-head { grid-template-columns:1fr; gap:22px; }
  .market-guide-grid { grid-template-columns:1fr; }
  .market-card { min-height:0; }
  .event-calendar-section { padding-bottom:64px; }
  .event-month { padding-top:50px; }
  .event-month-heading { grid-template-columns:44px 1fr; gap:10px; }
  .event-month-heading p { grid-column:2; }
  .event-editorial-list { grid-template-columns:1fr; gap:10px; }
  .event-editorial { min-height:0; padding:20px; }
  .event-editorial-date strong { font-size:26px; }
  .event-editorial h3 { font-size:29px; }
  .event-editorial dl { grid-template-columns:1fr; gap:9px; }
  .event-editorial dl div { padding-top:8px; }
  .event-editorial--feature { margin:0; padding:20px; border-radius:16px; }
  .annual-action { align-items:flex-start; flex-direction:column; padding:24px; }
}
