:root{
  --bg: #f5f0e8;
  --bg-alt: #efe7db;
  --surface: rgba(255,255,255,.76);
  --surface-solid: #fffaf3;
  --text: #1d241f;
  --muted: #677066;
  --line: rgba(39, 51, 43, .12);
  --line-strong: rgba(39, 51, 43, .18);
  --forest: #21372f;
  --forest-2: #2f4a40;
  --gold: #b99458;
  --gold-2: #d6b379;
  --shadow: 0 24px 80px rgba(22, 28, 24, .10);
  --shadow-soft: 0 10px 30px rgba(22, 28, 24, .08);
  --radius-xl: 30px;
  --radius-lg: 22px;
  --radius-md: 16px;
  --radius-sm: 12px;
  --container: 1480px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at top left, rgba(185,148,88,.10), transparent 32%),
    radial-gradient(circle at 80% 10%, rgba(33,55,47,.09), transparent 28%),
    linear-gradient(180deg, #fbf7f1 0%, var(--bg) 24%, #f7f2eb 100%);
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}

.site-shell{
  min-height:100vh;
  overflow:hidden;
}

.site-bg{
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.45;
  background-image:
    linear-gradient(rgba(33,55,47,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(33,55,47,.03) 1px, transparent 1px);
  background-size:56px 56px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,.6), transparent 92%);
}

.container{
  width:min(var(--container), calc(100vw - 28px));
  margin-inline:auto;
  position:relative;
  z-index:1;
}

.topbar{
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter: blur(18px);
  background: rgba(248, 243, 236, .74);
  border-bottom:1px solid rgba(39, 51, 43, .08);
}

.topbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 0;
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}

.brand-logo{
  width:174px;
  height:auto;
  display:block;
  flex:none;
}

.brand-text{
  display:none;
}

.nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}

.nav a{
  padding:10px 14px;
  border-radius:999px;
  color:var(--muted);
  transition: all .2s ease;
}

.nav a:hover,
.nav a.is-active{
  color:var(--text);
  background: rgba(255,255,255,.6);
  box-shadow: inset 0 0 0 1px rgba(39, 51, 43, .08);
}

.nav-actions{
  display:flex;
  gap:10px;
  align-items:center;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:0;
  border-radius:999px;
  padding:12px 18px;
  cursor:pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  text-decoration:none;
  white-space:nowrap;
}

.btn:hover{transform:translateY(-1px)}
.btn-primary{
  background: linear-gradient(135deg, var(--gold), var(--gold-2));
  color:#2a2114;
  box-shadow: 0 14px 30px rgba(185,148,88,.22);
}

.btn-primary-dark{
  background: linear-gradient(135deg, #20362f, #2c463d);
  color:#fff;
  box-shadow: 0 14px 30px rgba(33,55,47,.24);
}

.btn-secondary{
  background: rgba(255,255,255,.72);
  color:var(--text);
  box-shadow: inset 0 0 0 1px rgba(39, 51, 43, .12);
}

.btn-ghost{
  background: transparent;
  color:var(--text);
  box-shadow: inset 0 0 0 1px rgba(39, 51, 43, .12);
}

.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:999px;
  font-size:.78rem;
  letter-spacing:.02em;
  background: rgba(255,255,255,.72);
  box-shadow: inset 0 0 0 1px rgba(39, 51, 43, .10);
}

.badge.gold{background: rgba(185,148,88,.14); color:#7c5d2a}
.badge.green{background: rgba(33,55,47,.12); color:var(--forest)}
.badge.soft{background: rgba(255,255,255,.62)}

.eyebrow{
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.72rem;
  color:var(--gold);
  font-weight:700;
}

.page{
  padding:36px 0 72px;
}

.hero-grid{
  display:grid;
  grid-template-columns: 1.03fr .97fr;
  gap:28px;
  align-items:stretch;
  margin-top:12px;
}

.hero-copy,
.hero-visual,
.panel,
.card,
.quote-panel,
.filter-panel{
  border:1px solid var(--line);
  background: var(--surface);
  backdrop-filter: blur(18px);
  box-shadow: var(--shadow-soft);
}

.hero-copy{
  border-radius: var(--radius-xl);
  padding:36px;
  position:relative;
  overflow:hidden;
}

.hero-copy::after{
  content:"";
  position:absolute;
  inset:auto -8% -30% auto;
  width:320px;
  height:320px;
  border-radius:50%;
  background: radial-gradient(circle, rgba(185,148,88,.16), transparent 62%);
  pointer-events:none;
}

.hero-copy h1{
  margin:16px 0 14px;
  font-size:clamp(3rem, 5vw, 5.3rem);
  line-height:.95;
  letter-spacing:-.04em;
  font-family: Georgia, "Times New Roman", serif;
  font-weight:500;
  max-width:9ch;
}

.hero-copy h1 .accent{
  color:var(--gold);
}

.hero-copy p{
  margin:0;
  max-width:60ch;
  color:var(--muted);
  line-height:1.75;
  font-size:1.03rem;
}

.search-card{
  margin-top:26px;
  padding:20px;
  border-radius:30px;
  background: rgba(255,250,244,.88);
  color:var(--text);
  box-shadow: 0 24px 70px rgba(12, 15, 13, .10);
  border:1px solid rgba(39, 51, 43, .10);
}

.search-card .search-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  margin-bottom:14px;
}

.search-card h2{
  margin:0;
  font-size:1.08rem;
}

.search-form{
  display:grid;
  grid-template-columns: 1.25fr 1fr .75fr .8fr auto;
  gap:12px;
  align-items:end;
}

.field{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.field label{
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}

.control{
  width:100%;
  height:48px;
  border-radius:14px;
  border:1px solid rgba(39, 51, 43, .10);
  background: rgba(255,255,255,.82);
  color:var(--text);
  padding:0 14px;
  outline:none;
  transition: border .18s ease, box-shadow .18s ease;
}

.control::placeholder{color:#8d958c}
.control:focus{border-color: rgba(185,148,88,.55); box-shadow: 0 0 0 4px rgba(185,148,88,.12)}

.control.dark{
  border:1px solid rgba(39, 51, 43, .13);
  background: rgba(255,255,255,.75);
  color:var(--text);
}

.control.dark::placeholder{color:#8d958c}

.search-actions{
  display:flex;
  gap:10px;
  align-items:center;
}

.search-pills{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:15px;
}

.pill{
  border:1px solid rgba(39, 51, 43, .10);
  background: rgba(255,255,255,.74);
  color:var(--text);
  padding:10px 13px;
  border-radius:999px;
  font-size:.9rem;
  cursor:pointer;
  transition: all .2s ease;
}

.pill:hover,
.pill.is-active{
  background: rgba(33,55,47,.08);
  border-color: rgba(33,55,47,.18);
}

.hero-visual{
  border-radius: var(--radius-xl);
  position:relative;
  overflow:hidden;
  min-height:680px;
  isolation:isolate;
}

.hero-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.95) contrast(1.02);
}

.hero-visual .overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(17, 21, 19, .04) 0%, rgba(17, 21, 19, .20) 100%),
    radial-gradient(circle at 70% 20%, rgba(214,179,121,.16), transparent 32%);
}

.floating-card{
  position:absolute;
  left:22px;
  right:22px;
  bottom:22px;
  display:grid;
  grid-template-columns: 1fr auto;
  gap:14px;
  align-items:end;
  background: rgba(255,250,243,.82);
  border:1px solid rgba(255,255,255,.42);
  border-radius:26px;
  padding:20px;
  box-shadow: 0 18px 48px rgba(11,13,12,.16);
  backdrop-filter: blur(16px);
}

.floating-card h3,
.section-head h2,
.card h3,
.quote-panel h3,
.panel h3{
  margin:0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight:500;
  letter-spacing:-.02em;
}

.floating-card p{
  margin:6px 0 0;
  color:var(--muted);
  line-height:1.55;
}

.floating-stats{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:10px;
  margin-top:12px;
}

.mini-stat{
  border-radius:16px;
  padding:12px;
  background: rgba(255,255,255,.62);
  border:1px solid rgba(39, 51, 43, .08);
}

.mini-stat strong{
  display:block;
  font-size:1.05rem;
  margin-bottom:4px;
}

.mini-stat span{
  color:var(--muted);
  font-size:.82rem;
}

.section{
  margin-top:34px;
}

.section-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:end;
  margin-bottom:16px;
}

.section-head p{
  margin:0;
  max-width:62ch;
  color:var(--muted);
  line-height:1.65;
}

.info-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:18px;
}

.info-card{
  border-radius:26px;
  background: rgba(255,255,255,.72);
  border:1px solid var(--line);
  padding:24px;
  box-shadow: var(--shadow-soft);
}

.info-card .icon{
  width:46px;
  height:46px;
  border-radius:15px;
  background: rgba(185,148,88,.12);
  display:grid;
  place-items:center;
  color:var(--gold);
  margin-bottom:14px;
}

.info-card h3{
  margin:0 0 8px;
  font-size:1.05rem;
}

.info-card p{
  margin:0;
  color:var(--muted);
  line-height:1.7;
}

.card-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:18px;
}

.card{
  border-radius:26px;
  overflow:hidden;
  background: rgba(255,255,255,.72);
}

.card-media{
  position:relative;
  aspect-ratio: 1.18 / 1;
  overflow:hidden;
}

.card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition: transform .35s ease;
}

.card:hover .card-media img{transform: scale(1.04)}

.card-body{
  padding:18px;
}

.card-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
}

.card h3{
  font-size:1.25rem;
  margin-bottom:8px;
}

.meta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:.92rem;
}

.service-list,
.chip-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}

.chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 11px;
  border-radius:999px;
  background: rgba(255,255,255,.72);
  border:1px solid rgba(39, 51, 43, .10);
  color:var(--text);
  font-size:.84rem;
}

.chip.soft{
  background: rgba(33,55,47,.08);
  border-color: rgba(33,55,47,.08);
}

.card-actions{
  display:flex;
  gap:10px;
  margin-top:16px;
}

.rating{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-weight:700;
}

.stars{
  color:#d1a54f;
  letter-spacing:1px;
  font-size:.95rem;
}

.list-layout{
  display:grid;
  grid-template-columns: 290px 1fr 280px;
  gap:18px;
  align-items:start;
  margin-top:18px;
}

.filter-panel,
.quote-panel,
.panel{
  border-radius:24px;
  padding:20px;
  position:sticky;
  top:96px;
}

.home-slab{
  margin-top:34px;
  border-radius:30px;
  overflow:hidden;
  min-height:260px;
  position:relative;
  background:
    linear-gradient(90deg, rgba(27,44,37,.92) 0%, rgba(27,44,37,.90) 58%, rgba(27,44,37,.82) 100%),
    url("images/flowers.jpg") center/cover no-repeat;
  box-shadow: var(--shadow);
  color:#f8f2e7;
}

.home-slab::after{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(circle at 80% 50%, rgba(185,148,88,.18), transparent 28%);
}

.home-slab-inner{
  position:relative;
  z-index:1;
  padding:34px;
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:end;
  min-height:260px;
}

.home-slab h2{
  margin:10px 0 8px;
  font-family: Georgia, "Times New Roman", serif;
  font-size:clamp(2rem, 2.8vw, 3.2rem);
  font-weight:500;
  letter-spacing:-.03em;
}

.home-slab p{
  margin:0;
  color:rgba(248,242,231,.84);
  max-width:64ch;
  line-height:1.7;
}

.home-slab .btn{
  flex:none;
  align-self:center;
}

.filter-group + .filter-group{
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid var(--line);
}

.filter-group h4{
  margin:0 0 12px;
  font-size:.84rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--gold);
}

.checklist{
  display:grid;
  gap:10px;
}

.check{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-radius:14px;
  background: rgba(255,255,255,.60);
  border:1px solid rgba(39, 51, 43, .08);
  cursor:pointer;
}

.check input{accent-color: var(--forest)}
.count{
  color:var(--muted);
  font-size:.82rem;
}

.map-card{
  border-radius:20px;
  overflow:hidden;
  background:
    radial-gradient(circle at 20% 30%, rgba(185,148,88,.22), transparent 9%),
    radial-gradient(circle at 70% 45%, rgba(33,55,47,.18), transparent 10%),
    radial-gradient(circle at 45% 80%, rgba(185,148,88,.18), transparent 10%),
    linear-gradient(135deg, #e8e0d5, #f8f3eb);
  border:1px solid rgba(39, 51, 43, .12);
  min-height:260px;
  position:relative;
}

.map-card::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.35) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.35) 1px, transparent 1px);
  background-size: 40px 40px;
  mix-blend-mode:screen;
}

.pin{
  position:absolute;
  width:16px;
  height:16px;
  border-radius:50% 50% 50% 0;
  transform: rotate(-45deg);
  background: var(--forest);
  box-shadow: 0 0 0 6px rgba(33,55,47,.10);
}

.pin.gold{background: var(--gold); box-shadow: 0 0 0 6px rgba(185,148,88,.12)}

.map-card .pin:nth-child(1){left:34%; top:34%}
.map-card .pin:nth-child(2){left:55%; top:56%}
.map-card .pin:nth-child(3){left:68%; top:26%}

.map-label{
  position:absolute;
  left:14px;
  right:14px;
  bottom:14px;
  background: rgba(255,250,243,.82);
  border:1px solid rgba(255,255,255,.4);
  backdrop-filter: blur(10px);
  padding:14px;
  border-radius:16px;
}

.results-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:16px;
}

.results-toolbar strong{
  font-size:1.05rem;
}

.results-grid{
  display:grid;
  gap:16px;
}

.result-card{
  display:grid;
  grid-template-columns: 220px 1fr;
  gap:18px;
  border-radius:24px;
  overflow:hidden;
  background: rgba(255,255,255,.70);
  border:1px solid var(--line);
}

.result-card .card-media{
  aspect-ratio:auto;
  min-height:220px;
}

.result-body{
  padding:18px 18px 18px 0;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:220px;
}

.result-body p{
  margin:10px 0 0;
  color:var(--muted);
  line-height:1.68;
}

.result-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:16px;
}

.detail-hero{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:18px;
  align-items:stretch;
  margin-top:18px;
}

.hero-image{
  border-radius:28px;
  overflow:hidden;
  min-height:440px;
  position:relative;
  box-shadow: var(--shadow);
}

.hero-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.hero-image::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(16,20,18,.06) 0, rgba(16,20,18,.42) 100%);
}

.agency-card{
  margin-top:-86px;
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns: 120px 1fr;
  gap:18px;
  align-items:center;
  border-radius:28px;
  padding:18px;
  background: rgba(255,250,243,.92);
  border:1px solid rgba(39, 51, 43, .10);
  box-shadow: var(--shadow);
}

.agency-logo{
  width:120px;
  height:120px;
  border-radius:24px;
  background: linear-gradient(145deg, #fff, #f4ecdf);
  border:1px solid rgba(39, 51, 43, .08);
  display:grid;
  place-items:center;
  overflow:hidden;
}

.agency-logo strong{
  font-family: Georgia, "Times New Roman", serif;
  color:var(--gold);
  font-size:1.7rem;
  letter-spacing:.08em;
}

.tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:20px 0 18px;
}

.tab{
  border:1px solid rgba(39, 51, 43, .10);
  background: rgba(255,255,255,.7);
  color:var(--muted);
  border-radius:999px;
  padding:10px 14px;
  cursor:pointer;
}

.tab.is-active{
  background: rgba(33,55,47,.10);
  color:var(--forest);
  border-color: rgba(33,55,47,.14);
}

.detail-grid{
  display:grid;
  grid-template-columns: 1.25fr .75fr;
  gap:18px;
  margin-top:20px;
}

.content-stack{
  display:grid;
  gap:18px;
}

.detail-section{
  border-radius:24px;
  background: rgba(255,255,255,.68);
  border:1px solid var(--line);
  padding:20px;
}

.detail-section h3{
  margin-bottom:10px;
}

.gallery-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:12px;
}

.gallery-grid img{
  border-radius:18px;
  aspect-ratio: 1.12 / 1;
  object-fit:cover;
}

.review{
  padding:16px 0;
  border-top:1px solid var(--line);
}

.review:first-of-type{border-top:0;padding-top:0}
.review p{margin:8px 0 0;color:var(--muted);line-height:1.65}
.review strong{display:block}

.side-stack{
  display:grid;
  gap:16px;
}

.contact-box{
  border-radius:24px;
  background: rgba(255,255,255,.76);
  border:1px solid var(--line);
  padding:20px;
}

.contact-list{
  display:grid;
  gap:10px;
  margin:16px 0 18px;
}

.contact-row{
  display:flex;
  gap:12px;
  align-items:flex-start;
  color:var(--muted);
}

.contact-row strong{
  display:block;
  color:var(--text);
  margin-bottom:2px;
}

.quote-form{
  display:grid;
  gap:12px;
}

textarea.control{
  min-height:120px;
  padding:14px;
  resize:vertical;
}

.footer{
  margin-top:32px;
  padding:30px 0 36px;
  background: linear-gradient(180deg, rgba(27,44,37,.98), rgba(20,31,26,.98));
  color:rgba(248,242,231,.76);
}

.footer-grid{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:center;
  flex-wrap:wrap;
}

.footer-links{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
}

.footer strong,
.footer a{
  color:#f4ecdf;
}

.footer a{opacity:.84}
.footer a:hover{opacity:1}

.muted{
  color:var(--muted);
}

.hide{
  display:none !important;
}

.success{
  border-radius:24px;
  padding:20px;
  background: rgba(33,55,47,.09);
  border:1px solid rgba(33,55,47,.12);
  color:var(--forest);
}

.toast{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:70;
  background: rgba(33,55,47,.96);
  color:#fff;
  padding:14px 16px;
  border-radius:16px;
  box-shadow: var(--shadow);
  transform: translateY(20px);
  opacity:0;
  pointer-events:none;
  transition: all .26s ease;
}

.toast.is-visible{
  transform: translateY(0);
  opacity:1;
}

.stack{
  display:grid;
  gap:18px;
}

.lead{
  font-size:1.03rem;
  line-height:1.78;
  color:var(--muted);
}

.section-slab{
  border-radius:28px;
  background: linear-gradient(135deg, rgba(33,55,47,.95), rgba(39,63,54,.94));
  color:#f8f3ea;
  padding:28px;
  box-shadow: var(--shadow);
}

.section-slab p{color:rgba(248,243,234,.82)}

@media (max-width: 1140px){
  .hero-grid,
  .detail-hero,
  .detail-grid,
  .list-layout{
    grid-template-columns:1fr;
  }
  .filter-panel,
  .quote-panel,
  .panel{
    position:static;
  }
}

@media (max-width: 960px){
  .topbar-inner{
    flex-direction:column;
    align-items:flex-start;
  }
  .nav{
    width:100%;
  }
  .nav a{padding-inline:12px}
  .search-form{
    grid-template-columns:1fr 1fr;
  }
  .search-actions{
    grid-column:1 / -1;
  }
  .card-grid,
  .info-grid,
  .gallery-grid{
    grid-template-columns:1fr;
  }
  .result-card{
    grid-template-columns:1fr;
  }
  .result-body{
    padding:0 18px 18px;
  }
}

@media (max-width: 720px){
  .container{width:min(calc(100vw - 24px), var(--container))}
  .page{padding-top:24px}
  .hero-copy,
  .hero-visual,
  .panel,
  .filter-panel,
  .quote-panel,
  .contact-box,
  .detail-section,
  .info-card{
    border-radius:20px;
  }
  .hero-copy{
    padding:22px;
  }
  .hero-copy h1{
    font-size:2.5rem;
  }
  .search-form{
    grid-template-columns:1fr;
  }
  .floating-card{
    grid-template-columns:1fr;
  }
  .floating-stats{
    grid-template-columns:1fr;
  }
  .agency-card{
    grid-template-columns:1fr;
    margin-top:-54px;
  }
  .agency-logo{
    width:90px;
    height:90px;
  }
  .footer-grid{
    align-items:flex-start;
    flex-direction:column;
  }
}
.card-badges {
  position: absolute;
  z-index: 1;
  top: 12px;
  left: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.api-state {
  min-height: 180px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  text-align: center;
}

.api-state p {
  margin: 0;
  color: var(--muted);
}

.api-spinner {
  width: 28px;
  height: 28px;
  border: 2px solid rgba(31,49,42,.12);
  border-top-color: var(--gold);
  border-radius: 50%;
  animation: apiSpin .75s linear infinite;
}

@keyframes apiSpin {
  to { transform: rotate(360deg); }
}

.api-error {
  border-color: rgba(160,55,55,.18);
  background: #fff8f6;
}

.public-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 7px;
  margin-top: 22px;
}

.public-pagination button,
.public-pagination span {
  min-width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255,255,255,.82);
  color: var(--ink);
}

.public-pagination button {
  cursor: pointer;
}

.public-pagination button.is-active {
  border-color: var(--gold);
  background: var(--gold);
  color: #fff;
}

.agency-title-small {
  margin-top: 12px;
}

.agency-main-title {
  margin: 12px 0 8px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.1rem, 4vw, 3.4rem);
  font-weight: 500;
  letter-spacing: -.03em;
}

.honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
}

.form-message {
  padding: 12px 14px;
  border-radius: 12px;
  font-size: .88rem;
}

.form-message.success {
  background: #eaf5ec;
  color: #245b36;
}

.form-message.error {
  background: #faeaea;
  color: #922f2f;
}

.btn:disabled {
  cursor: wait;
  opacity: .6;
}

.registration-layout {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(460px, 1.15fr);
  gap: clamp(28px, 6vw, 84px);
  align-items: start;
}

.registration-copy {
  position: sticky;
  top: 120px;
  padding-top: 28px;
}

.registration-copy h1 {
  margin: 12px 0 18px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.5rem, 5vw, 4.8rem);
  font-weight: 500;
  line-height: .98;
  letter-spacing: -.045em;
}

.registration-copy > p {
  color: var(--muted);
  font-size: 1.08rem;
  line-height: 1.7;
}

.registration-copy .info-card {
  margin-top: 28px;
}

.registration-form-card {
  padding: clamp(24px, 4vw, 42px);
}

.registration-form-card h2 {
  margin: 0 0 22px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2rem;
  font-weight: 500;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

@media (max-width: 900px) {
  .registration-layout,
  .form-row {
    grid-template-columns: 1fr;
  }

  .registration-copy {
    position: static;
  }
}

/* Quote matching wizard */
.wizard-page{background:#faf7f1}.wizard-topbar{position:relative;background:linear-gradient(90deg,#0d2c27,#102f2a);border:0}.wizard-topbar .topbar-inner{padding:13px 0}.wizard-topbar .brand-logo{width:210px}.wizard-topbar .nav a{position:relative;border-radius:0;color:#f7f2e9}.wizard-topbar .nav a:hover,.wizard-topbar .nav a.is-active{background:transparent;box-shadow:none;color:#d9ad61}.wizard-topbar .nav a.is-active:after{content:"";position:absolute;right:12px;bottom:-14px;left:12px;height:3px;background:#c99b4d}.wizard-login{display:flex;gap:8px;align-items:center;color:#fff}
.wizard-main{min-height:calc(100vh - 80px);padding:44px 20px 70px;background:radial-gradient(circle at 83% 48%,rgba(182,145,80,.06),transparent 23%),#fbf8f3}.wizard-container{width:min(1030px,100%);margin:0 auto}.wizard-card{padding:32px 28px 28px;border:1px solid #dcd7ce;border-radius:12px;background:rgba(255,255,255,.86);box-shadow:0 8px 24px rgba(30,38,34,.08)}.wizard-heading{text-align:center}.wizard-heading h1,.wizard-search-heading h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:36px;font-weight:400;letter-spacing:-.03em}.wizard-heading p,.wizard-search-heading p{margin:8px 0 0;color:#747b77;font-size:16px}
.wizard-progress{display:grid;grid-template-columns:90px 1fr;gap:24px;align-items:start;margin:34px 42px 36px}.wizard-progress>strong{padding-top:8px;color:#a47735;font-family:Georgia,serif;font-size:16px;font-weight:400}.wizard-track{display:grid;grid-template-columns:repeat(4,1fr);counter-reset:steps}.wizard-track div{position:relative;display:grid;justify-items:center;gap:8px;color:#727975;font-size:12px}.wizard-track div:before{content:"";position:absolute;z-index:0;top:15px;right:50%;left:-50%;height:1px;background:#d8d4cd}.wizard-track div:first-child:before{display:none}.wizard-track div span{position:relative;z-index:1;display:grid;place-items:center;width:31px;height:31px;border:1px solid #cbc7bf;border-radius:50%;background:#fff;color:#707672}.wizard-track div.is-active,.wizard-track div.is-done{color:#a17434}.wizard-track div.is-active span,.wizard-track div.is-done span{border-color:#af803a;background:linear-gradient(135deg,#b88b45,#9e7234);color:#fff}.wizard-track div.is-done:before,.wizard-track div.is-active:before{background:#b88943}
.wizard-step{display:none;min-height:215px;padding:28px 26px;border:1px solid #dfdbd4;border-radius:9px;background:#fff}.wizard-step.is-active{display:block;animation:wizardReveal .35s ease}.wizard-step h2{margin:0 0 22px;font-family:Georgia,serif;font-size:20px;font-weight:400}.wizard-step h3{margin:22px 0 12px;font-family:Georgia,serif;font-size:16px;font-weight:400}.wizard-location-grid{display:grid;grid-template-columns:1.2fr 1fr 165px;gap:24px;align-items:end}.wizard-step label{position:relative;display:grid;gap:8px;color:#303934;font-size:13px}.wizard-step input,.wizard-step select,.wizard-step textarea{width:100%;padding:14px 15px;border:1px solid #d4d0c9;border-radius:7px;outline:0;background:#fff;color:#28312d}.wizard-step input:focus,.wizard-step select:focus,.wizard-step textarea:focus{border-color:#ac7e3b;box-shadow:0 0 0 3px rgba(172,126,59,.1)}.field-icon{position:absolute;right:14px;bottom:14px;color:#a77a38;font-size:18px}.wizard-map-preview{position:relative;height:103px;overflow:hidden;border-radius:7px;background:linear-gradient(34deg,#e4e8e1 25%,#f4f0e8 25% 50%,#e2e8e2 50% 75%,#f4f0e8 75%)}.wizard-map-preview:after{content:"";position:absolute;inset:-35%;border:3px double rgba(255,255,255,.75);border-radius:45%;transform:rotate(28deg)}.wizard-map-preview span{position:absolute;z-index:2;top:36%;left:47%;width:22px;height:22px;border-radius:50% 50% 50% 0;background:#a77934;transform:rotate(-45deg);box-shadow:0 0 0 6px rgba(170,121,52,.12)}
.wizard-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.wizard-choice-grid label,.wizard-services label{display:block;cursor:pointer}.wizard-choice-grid input,.wizard-services input{position:absolute;opacity:0;pointer-events:none}.wizard-choice-grid label>span,.wizard-services label>span{display:grid;gap:5px;min-height:78px;padding:15px;border:1px solid #dedad3;border-radius:8px;background:#fff;color:#27312c}.wizard-choice-grid label>span small{color:#747b77;line-height:1.4}.wizard-choice-grid input:checked+span,.wizard-services input:checked+span{border-color:#ad7f3d;background:#fbf5e9;box-shadow:inset 0 0 0 1px #ad7f3d}.wizard-choice-grid.compact label>span{min-height:auto}.wizard-services{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.wizard-services label>span{min-height:auto}.wizard-two-fields,.wizard-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.wizard-message{margin-top:17px}.wizard-step-intro{margin:-12px 0 20px;color:#747b77}.wizard-contact-grid .wide{grid-column:1/-1}.wizard-consent{display:flex!important;grid-column:1/-1;grid-template-columns:auto 1fr!important;gap:10px!important;align-items:flex-start;margin-top:18px}.wizard-consent input{width:auto;margin-top:2px;accent-color:#9e7335}
.wizard-error{min-height:18px;margin:8px 0 0;color:#a13b32;font-size:12px}.wizard-actions{display:flex;justify-content:space-between;margin-top:25px}.wizard-actions button{min-width:138px;padding:13px 20px;border-radius:7px;cursor:pointer}.wizard-back{border:1px solid #dedad3;background:#fff;color:#56605a}.wizard-back:disabled{opacity:.35;cursor:not-allowed}.wizard-next{min-width:220px!important;border:0;background:linear-gradient(135deg,#b98d47,#a67935);color:#fff;box-shadow:0 8px 18px rgba(153,108,48,.18)}.wizard-trust{display:flex;gap:22px;align-items:center;margin-top:28px;padding:20px 42px;border:1px solid #d9d5cd;border-radius:10px;background:rgba(255,255,255,.5)}.wizard-trust>span{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#edf0e8;color:#245b46;font-size:28px}.wizard-trust strong{font-family:Georgia,serif;font-size:17px;font-weight:400}.wizard-trust p{margin:5px 0 0;color:#5f6863;font-size:13px}
.wizard-search-screen{animation:wizardReveal .5s ease}.wizard-search-heading{text-align:center}.wizard-search-heading h1{font-size:39px}.wizard-search-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:55px;align-items:center;margin-top:28px}.wizard-radar{display:grid;place-items:center;min-height:430px}.radar-rings{position:relative;width:410px;height:410px;border:1px solid rgba(184,139,65,.3);border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 49px,rgba(181,137,64,.22) 50px 51px),linear-gradient(35deg,rgba(224,232,224,.72),rgba(248,245,237,.86));box-shadow:inset 0 0 40px rgba(255,255,255,.9)}.radar-rings:before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 74%,rgba(198,151,73,.2) 88%,transparent 100%);animation:radarSweep 2.2s linear infinite}.radar-center{position:absolute;z-index:3;top:50%;left:50%;display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:#123a31;color:#fff;font-family:Georgia,serif;transform:translate(-50%,-50%);box-shadow:0 0 0 10px rgba(255,255,255,.75)}.radar-rings i{position:absolute;z-index:2;width:34px;height:34px;border:1px solid #e2d9c8;border-radius:50%;background:#fff;box-shadow:0 5px 14px rgba(33,42,37,.12)}.radar-rings i:after{content:"⌂";display:grid;place-items:center;height:100%;color:#966f35}.radar-rings i:nth-of-type(1){top:16%;left:23%}.radar-rings i:nth-of-type(2){top:29%;right:16%}.radar-rings i:nth-of-type(3){bottom:23%;right:13%}.radar-rings i:nth-of-type(4){bottom:12%;left:48%}.radar-rings i:nth-of-type(5){top:47%;left:11%}
.wizard-analysis{display:grid}.wizard-analysis>div{display:grid;grid-template-columns:50px 1fr 30px;gap:14px;align-items:center;min-height:87px;border-bottom:1px solid #e5e0d8;opacity:.35;transform:translateY(6px);transition:.45s}.wizard-analysis>div.is-complete{opacity:1;transform:none}.wizard-analysis>div>span{display:grid;place-items:center;width:47px;height:47px;border:1px solid #d7c29d;border-radius:50%;color:#8e6930;font-size:20px}.wizard-analysis strong,.wizard-analysis small{display:block}.wizard-analysis strong{font-family:Georgia,serif;font-size:16px;font-weight:400}.wizard-analysis small{margin-top:5px;color:#747b77;font-size:12px}.wizard-analysis b{display:grid;place-items:center;width:25px;height:25px;border:1px solid #a47937;border-radius:50%;color:#1b6248;font-weight:400}
.wizard-result{display:grid;grid-template-columns:.7fr 1.3fr;gap:20px;align-items:center;margin:10px auto 0;padding:20px 28px;border:1px solid #d7c9af;border-radius:10px;background:#fff;box-shadow:0 7px 18px rgba(29,38,33,.08)}.result-number{display:flex;gap:18px;align-items:center;border-right:1px solid #e3ddd4}.result-number>strong{color:#0f493b;font-family:Georgia,serif;font-size:62px;font-weight:400;line-height:1}.result-number span{font-family:Georgia,serif;font-size:17px}.result-message{display:flex;gap:18px;align-items:center}.result-message>span{display:grid;place-items:center;width:38px;height:38px;border:2px solid #14513f;border-radius:50%;color:#14513f}.result-message p{display:grid;gap:5px;margin:0;font-family:Georgia,serif;font-size:15px}.wizard-result>a{grid-column:1/-1;justify-self:center;padding:11px 25px;border-radius:7px;background:linear-gradient(135deg,#b98c45,#a57734);color:#fff}.wizard-result.is-visible{animation:resultPop .55s cubic-bezier(.2,.8,.2,1)}
.wizard-page.is-searching{padding:14px;background:#f8f4ed}.wizard-page.is-searching .wizard-topbar{border-radius:15px 15px 0 0;box-shadow:0 3px 14px rgba(22,35,30,.17)}.wizard-page.is-searching .wizard-topbar .nav a.is-active{padding:13px 24px;border-radius:9px;background:linear-gradient(135deg,#b78a44,#9b7138);color:#fff;box-shadow:0 8px 20px rgba(122,84,33,.22)}.wizard-page.is-searching .wizard-topbar .nav a.is-active:after{display:none}.wizard-page.is-searching .wizard-main{min-height:calc(100vh - 110px);margin:0;border:1px solid #cec8bd;border-top:0;border-radius:0 0 15px 15px;padding:34px 24px 32px;background:radial-gradient(circle at 27% 42%,rgba(204,165,95,.08),transparent 28%),#fffdf9;box-shadow:0 4px 20px rgba(34,42,38,.13)}.wizard-page.is-searching .wizard-container{width:min(1080px,100%)}.wizard-page.is-searching .wizard-search-heading h1{font-size:44px}.wizard-page.is-searching .wizard-search-heading p{font-size:17px}.wizard-page.is-searching .wizard-search-grid{grid-template-columns:1.22fr .78fr;gap:62px;margin-top:4px}.wizard-page.is-searching .wizard-radar{min-height:475px}.wizard-page.is-searching .radar-rings{width:470px;height:470px;background:linear-gradient(rgba(255,253,248,.27),rgba(255,253,248,.27)),url("images/map-radar.svg") center/cover,repeating-radial-gradient(circle,transparent 0 58px,rgba(181,137,64,.22) 59px 60px)}.wizard-page.is-searching .radar-rings:after{content:"";position:absolute;inset:12%;border:1px solid rgba(193,145,66,.55);border-radius:50%;box-shadow:0 0 22px rgba(205,159,83,.28)}.wizard-page.is-searching .radar-center{width:94px;height:94px}.wizard-page.is-searching .wizard-analysis{position:relative}.wizard-page.is-searching .wizard-analysis:before{content:"";position:absolute;top:62px;bottom:62px;left:23px;width:1px;background:#dfcda9}.wizard-page.is-searching .wizard-analysis>div{position:relative;z-index:1;min-height:104px}.wizard-page.is-searching .wizard-result{width:900px;max-width:100%;grid-template-columns:.72fr 1.28fr;margin-top:-6px;padding:25px 38px}.wizard-page.is-searching .result-number:before,.wizard-page.is-searching .result-number:after{color:#d8c49a;font-size:36px;line-height:1}.wizard-page.is-searching .result-number:before{content:"❧"}.wizard-page.is-searching .result-number:after{content:"❧";transform:scaleX(-1)}
@keyframes wizardReveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes radarSweep{to{transform:rotate(360deg)}}@keyframes resultPop{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@media(max-width:850px){.wizard-topbar .nav{display:none}.wizard-main{padding:25px 12px}.wizard-card{padding:24px 14px}.wizard-progress{grid-template-columns:1fr;margin:25px 0}.wizard-progress>strong{text-align:center}.wizard-location-grid,.wizard-choice-grid,.wizard-services,.wizard-two-fields,.wizard-contact-grid,.wizard-search-grid,.wizard-result{grid-template-columns:1fr}.wizard-map-preview{display:none}.wizard-step{padding:20px 15px}.wizard-search-heading h1,.wizard-heading h1{font-size:30px}.wizard-radar{min-height:330px}.radar-rings{width:310px;height:310px}.result-number{border-right:0;border-bottom:1px solid #e3ddd4;padding-bottom:15px}.wizard-trust{padding:18px}.wizard-actions button{min-width:110px}.wizard-next{min-width:150px!important}}
@media(max-width:850px){.wizard-page.is-searching{padding:0}.wizard-page.is-searching .wizard-topbar,.wizard-page.is-searching .wizard-main{border-radius:0}.wizard-page.is-searching .wizard-main{padding:26px 12px}.wizard-page.is-searching .wizard-search-heading h1{font-size:30px}.wizard-page.is-searching .wizard-search-grid{grid-template-columns:1fr;gap:18px}.wizard-page.is-searching .wizard-radar{min-height:330px}.wizard-page.is-searching .radar-rings{width:310px;height:310px}.wizard-page.is-searching .wizard-result{width:100%;grid-template-columns:1fr;padding:20px}.wizard-page.is-searching .result-number:before,.wizard-page.is-searching .result-number:after{display:none}}
