/* ============================================================
   GREEN LABEL SERVICES — CONTACT PAGE
   contact.css
   ============================================================ */


/* ─── SHARED ANIMATIONS ─────────────────────────────────────── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0);    }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes gridScroll {
  from { background-position: 0 0; }
  to   { background-position: 80px 80px; }
}

@keyframes pulse-ring {
  0%   { transform: scale(1);    opacity: 0.6; }
  100% { transform: scale(2.2);  opacity: 0;   }
}

@keyframes shimmer {
  0%   { background-position: -400px 0; }
  100% { background-position: 400px 0; }
}

/* Scroll reveal */
.reveal {
  opacity:    0;
  transform:  translateY(32px);
  transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}
.reveal.visible      { opacity: 1; transform: translateY(0); }
.reveal-d1 { transition-delay: 0.10s; }
.reveal-d2 { transition-delay: 0.20s; }
.reveal-d3 { transition-delay: 0.30s; }
.reveal-d4 { transition-delay: 0.40s; }
.reveal-d5 { transition-delay: 0.55s; }


/* ─── HERO ──────────────────────────────────────────────────── */
.contact-hero {
  position:   relative;
  background: var(--color-dark);
  overflow:   hidden;
  padding:    clamp(4rem, 10vw, 7rem) 0 clamp(3.5rem, 8vw, 6rem);
}

/* Radial glow overlays */
.contact-hero::before {
  content:    '';
  position:   absolute;
  inset:      0;
  background:
    radial-gradient(ellipse 55% 90% at 0%   50%, rgba(23,199,20,.12) 0%, transparent 65%),
    radial-gradient(ellipse 35% 55% at 100% 10%, rgba(23,199,20,.07) 0%, transparent 55%),
    radial-gradient(ellipse 60% 30% at 50% 120%, rgba(255,107,0,.06) 0%, transparent 60%);
  pointer-events: none;
}

/* Scrolling grid */
.contact-hero::after {
  content:    '';
  position:   absolute;
  inset:      0;
  background-image:
    linear-gradient(rgba(23,199,20,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(23,199,20,.05) 1px, transparent 1px);
  background-size: 80px 80px;
  pointer-events:  none;
  animation:       gridScroll 28s linear infinite;
}

.contact-hero__inner {
  position:   relative;
  z-index:    2;
  max-width:  var(--container-max);
  margin:     0 auto;
  padding:    0 var(--container-pad);
  display:    grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap:        2rem 4rem;
}

.contact-hero__left { grid-column: 1; }
.contact-hero__right {
  grid-column:    2;
  display:        flex;
  flex-direction: column;
  gap:            1.25rem;
  align-self:     center;
}

/* Eyebrow */
.contact-hero__eyebrow {
  display:        inline-flex;
  align-items:    center;
  gap:            0.625rem;
  font-size:      0.72rem;
  font-weight:    700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color:          var(--color-primary);
  margin-bottom:  1.5rem;
  opacity:        0;
  animation:      fadeUp 0.55s ease 0.1s forwards;
}
.contact-hero__eyebrow::before {
  content:       '';
  display:       block;
  width:         32px;
  height:        2px;
  background:    var(--color-primary);
  border-radius: 1px;
  flex-shrink:   0;
}

/* Title */
.contact-hero__title {
  font-size:      clamp(2.75rem, 6.5vw, 5rem);
  font-weight:    800;
  line-height:    1.05;
  color:          var(--color-white);
  letter-spacing: -0.02em;
  opacity:        0;
  animation:      fadeUp 0.6s ease 0.2s forwards;
}
.contact-hero__title em {
  font-style:      normal;
  color:           var(--color-primary);
  position:        relative;
  display:         inline-block;
}
/* Animated underline on em */
.contact-hero__title em::after {
  content:       '';
  position:      absolute;
  left:          0;
  bottom:        -4px;
  width:         100%;
  height:        3px;
  background:    var(--color-primary);
  border-radius: 2px;
  transform:     scaleX(0);
  transform-origin: left;
  animation:     scaleIn 0.5s cubic-bezier(0.4,0,0.2,1) 0.85s forwards;
}
@keyframes scaleIn { to { transform: scaleX(1); } }

/* Subtitle */
.contact-hero__subtitle {
  margin-top:  1.75rem;
  font-size:   1.0625rem;
  font-weight: 400;
  line-height: 1.75;
  color:       rgba(255,255,255,.50);
  max-width:   44ch;
  opacity:     0;
  animation:   fadeUp 0.6s ease 0.35s forwards;
}

/* Breadcrumb */
.contact-hero__breadcrumb {
  display:     flex;
  align-items: center;
  gap:         0.5rem;
  margin-top:  2.5rem;
  font-size:   0.78rem;
  font-weight: 500;
  color:       rgba(255,255,255,.30);
  opacity:     0;
  animation:   fadeUp 0.55s ease 0.5s forwards;
}
.contact-hero__breadcrumb a {
  color:      rgba(255,255,255,.40);
  transition: color var(--ease-fast);
}
.contact-hero__breadcrumb a:hover { color: var(--color-primary); }
.contact-hero__breadcrumb i { font-size: 0.55rem; color: rgba(255,255,255,.18); }
.contact-hero__breadcrumb span { color: var(--color-primary); }

/* Right side: stat cards */
.hero-stat {
  background:    rgba(255,255,255,.04);
  border:        1px solid rgba(255,255,255,.08);
  border-radius: var(--radius-md);
  padding:       1.25rem 1.5rem;
  display:       flex;
  align-items:   center;
  gap:           1rem;
  width:         220px;
  backdrop-filter: blur(6px);
  opacity:       0;
  animation:     fadeIn 0.6s ease 0.6s forwards;
  transition:    border-color var(--ease), background var(--ease);
}
.hero-stat:hover {
  border-color: rgba(23,199,20,.3);
  background:   rgba(23,199,20,.05);
}
.hero-stat__icon {
  width:           44px;
  height:          44px;
  background:      rgba(23,199,20,.12);
  border-radius:   var(--radius-md);
  display:         flex;
  align-items:     center;
  justify-content: center;
  color:           var(--color-primary);
  font-size:       1rem;
  flex-shrink:     0;
}
.hero-stat__text { display: flex; flex-direction: column; gap: 0.15rem; }
.hero-stat__value {
  font-size:   1.125rem;
  font-weight: 800;
  color:       var(--color-white);
  line-height: 1.1;
}
.hero-stat__label {
  font-size:      0.68rem;
  font-weight:    600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color:          rgba(255,255,255,.35);
}


/* ─── INFO STRIP ────────────────────────────────────────────── */
.contact-info-strip {
  background:    var(--color-white);
  border-bottom: 1px solid var(--color-border);
}

.contact-info-strip__grid {
  display:               grid;
  grid-template-columns: repeat(4, 1fr);
  max-width:             var(--container-max);
  margin:                0 auto;
}

.info-card {
  padding:        2rem clamp(1rem, 3vw, 2rem);
  border-right:   1px solid var(--color-border);
  display:        flex;
  align-items:    flex-start;
  gap:            1rem;
  position:       relative;
  overflow:       hidden;
  transition:     background var(--ease);
}
.info-card:last-child { border-right: none; }

/* Green left accent bar */
.info-card::before {
  content:    '';
  position:   absolute;
  top:        0;
  left:       0;
  width:      3px;
  height:     100%;
  background: var(--color-primary);
  transform:  scaleY(0);
  transform-origin: bottom;
  transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
}
.info-card:hover::before { transform: scaleY(1); }
.info-card:hover { background: rgba(23,199,20,.02); }

.info-card__icon {
  width:           46px;
  height:          46px;
  border-radius:   var(--radius-md);
  background:      var(--color-primary-light);
  display:         flex;
  align-items:     center;
  justify-content: center;
  color:           var(--color-primary);
  font-size:       1rem;
  flex-shrink:     0;
  transition:      background var(--ease), color var(--ease);
}
.info-card:hover .info-card__icon {
  background: var(--color-primary);
  color:      var(--color-white);
}

.info-card__body { display: flex; flex-direction: column; gap: 0.25rem; min-width: 0; }

.info-card__label {
  font-size:      0.68rem;
  font-weight:    700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:          var(--color-primary);
  margin-bottom:  0.25rem;
}

.info-card__main {
  font-size:    0.9rem;
  font-weight:  600;
  color:        var(--color-text);
  line-height:  1.45;
}
.info-card__main a {
  color:      var(--color-text);
  transition: color var(--ease-fast);
}
.info-card__main a:hover { color: var(--color-primary); }

.info-card__sub {
  font-size:   0.8rem;
  font-weight: 400;
  color:       var(--color-text-muted);
  line-height: 1.55;
}
.info-card__sub a {
  color:      var(--color-text-muted);
  transition: color var(--ease-fast);
}
.info-card__sub a:hover { color: var(--color-primary); }


/* ─── MAP + FORM CENTERPIECE ────────────────────────────────── */
.contact-centerpiece {
  position:   relative;
  height:     88vh;
  min-height: 620px;
  max-height: 900px;
  overflow:   hidden;
}

/* Full-bleed map */
.contact-centerpiece__map {
  position: absolute;
  inset:    0;
}
.contact-centerpiece__map iframe {
  width:   100%;
  height:  100%;
  border:  none;
  display: block;
  filter:  saturate(0.8) contrast(1.05);
  transition: filter 0.4s ease;
}
.contact-centerpiece:hover .contact-centerpiece__map iframe {
  filter: saturate(1) contrast(1);
}

/* AGA House image card — bottom-left */
.aga-house-card {
  position:      absolute;
  bottom:        2rem;
  left:          2rem;
  width:         260px;
  border-radius: var(--radius-lg);
  overflow:      hidden;
  box-shadow:    0 16px 48px rgba(0,0,0,.40);
  opacity:       0;
  transform:     translateY(16px);
  transition:    opacity 0.6s ease 0.4s, transform 0.6s ease 0.4s,
                 box-shadow var(--ease);
  z-index:       5;
}
.aga-house-card.visible {
  opacity:   1;
  transform: translateY(0);
}
.aga-house-card:hover {
  box-shadow: 0 24px 64px rgba(0,0,0,.50);
  transform:  translateY(-4px);
}

/* Actual image — add when ready */
.aga-house-card img {
  width:      100%;
  height:     160px;
  object-fit: cover;
  display:    block;
}

/* Placeholder when no image */
.aga-house-card__placeholder {
  height:          160px;
  background:      linear-gradient(135deg, #1a2e1a 0%, #0e1e0e 100%);
  display:         flex;
  flex-direction:  column;
  align-items:     center;
  justify-content: center;
  gap:             0.625rem;
  color:           rgba(255,255,255,.35);
  font-size:       0.78rem;
  font-weight:     500;
  border-bottom:   1px solid rgba(23,199,20,.15);
}
.aga-house-card__placeholder i {
  font-size: 2rem;
  color:     rgba(23,199,20,.5);
}

.aga-house-card__caption {
  background: rgba(11,22,11,.92);
  backdrop-filter: blur(8px);
  padding:    0.875rem 1rem;
  display:    flex;
  align-items: flex-start;
  gap:        0.625rem;
}
.aga-house-card__caption i {
  color:      var(--color-primary);
  font-size:  0.8rem;
  margin-top: 0.15rem;
  flex-shrink: 0;
}
.aga-house-card__caption-text {
  display:     flex;
  flex-direction: column;
  gap:         0.1rem;
}
.aga-house-card__caption-name {
  font-size:   0.8rem;
  font-weight: 700;
  color:       var(--color-white);
  line-height: 1.2;
}
.aga-house-card__caption-address {
  font-size:   0.68rem;
  font-weight: 400;
  color:       rgba(255,255,255,.45);
  line-height: 1.4;
}

/* Live indicator dot */
.aga-house-card__live {
  display:     flex;
  align-items: center;
  gap:         0.375rem;
  font-size:   0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color:       var(--color-primary);
  margin-top:  0.375rem;
}
.aga-house-card__live-dot {
  width:         8px;
  height:        8px;
  border-radius: 50%;
  background:    var(--color-primary);
  position:      relative;
}
.aga-house-card__live-dot::after {
  content:       '';
  position:      absolute;
  inset:         0;
  border-radius: 50%;
  background:    var(--color-primary);
  animation:     pulse-ring 1.8s ease-out infinite;
}

/* Form panel — right side overlay */
.contact-panel {
  position:       absolute;
  top:            0;
  right:          0;
  bottom:         0;
  width:          min(520px, 46%);
  background:     var(--color-white);
  box-shadow:     -12px 0 60px rgba(0,0,0,.18);
  overflow-y:     auto;
  padding:        3rem clamp(1.5rem, 4vw, 3rem);
  display:        flex;
  flex-direction: column;
  scrollbar-width: thin;
  scrollbar-color: var(--color-border) transparent;
}
.contact-panel::-webkit-scrollbar { width: 4px; }
.contact-panel::-webkit-scrollbar-track { background: transparent; }
.contact-panel::-webkit-scrollbar-thumb {
  background:    var(--color-border);
  border-radius: 2px;
}

.contact-panel__heading {
  margin-bottom: 0.5rem;
}
.contact-panel__heading h2 {
  font-size:   clamp(1.375rem, 2.5vw, 1.875rem);
  font-weight: 800;
  color:       var(--color-text);
  line-height: 1.2;
}
.contact-panel__heading h2 span { color: var(--color-primary); }

.contact-panel__desc {
  font-size:     0.875rem;
  color:         var(--color-text-muted);
  line-height:   1.7;
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--color-border);
}

/* Response time bar */
.response-badge {
  display:       inline-flex;
  align-items:   center;
  gap:           0.5rem;
  background:    var(--color-primary-light);
  color:         var(--color-primary-dark);
  font-size:     0.72rem;
  font-weight:   700;
  letter-spacing: 0.06em;
  padding:       0.35rem 0.75rem;
  border-radius: var(--radius-pill);
  margin-bottom: 1.25rem;
}
.response-badge i { font-size: 0.75rem; }


/* ─── FLOATING LABEL FORM ───────────────────────────────────── */
.contact-form { display: flex; flex-direction: column; gap: 1rem; }

.form-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

/* Float group */
.float-group {
  position: relative;
}

.float-group label {
  position:        absolute;
  top:             1rem;
  left:            1rem;
  font-size:       0.875rem;
  font-weight:     500;
  color:           var(--color-text-muted);
  pointer-events:  none;
  transition:      top 0.2s ease, font-size 0.2s ease,
                   color 0.2s ease, letter-spacing 0.2s ease;
  background:      transparent;
  padding:         0 0.2rem;
  line-height:     1;
  white-space:     nowrap;
}

.float-group input,
.float-group textarea,
.float-group select {
  width:         100%;
  padding:       1.5rem 1rem 0.6rem;
  font-family:   var(--font);
  font-size:     0.9rem;
  font-weight:   500;
  color:         var(--color-text);
  background:    #fafafa;
  border:        1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  outline:       none;
  appearance:    none;
  -webkit-appearance: none;
  transition:    border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
  min-height:    56px;
}

.float-group input::placeholder,
.float-group textarea::placeholder { color: transparent; }

/* Float label up: focus or has content */
.float-group:focus-within label,
.float-group.has-value label {
  top:            0.4rem;
  font-size:      0.62rem;
  font-weight:    700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color:          var(--color-primary);
}

.float-group input:focus,
.float-group textarea:focus,
.float-group select:focus {
  border-color: var(--color-primary);
  box-shadow:   0 0 0 3px rgba(23,199,20,.10);
  background:   var(--color-white);
}

.float-group input:hover:not(:focus),
.float-group textarea:hover:not(:focus),
.float-group select:hover:not(:focus) {
  border-color: #b8cfb8;
}

.float-group textarea {
  resize:      vertical;
  min-height:  120px;
  line-height: 1.6;
  padding-top: 1.75rem;
}

/* Select: no native arrow — custom */
.float-group--select::after {
  content:      '\f078';
  font-family:  'Font Awesome 6 Free';
  font-weight:  900;
  position:     absolute;
  right:        1rem;
  top:          50%;
  transform:    translateY(-50%);
  font-size:    0.6rem;
  color:        var(--color-text-muted);
  pointer-events: none;
}
.float-group--select select { padding-right: 2.5rem; cursor: pointer; }

/* Required star */
.req {
  color:       var(--color-accent);
  margin-left: 0.1rem;
  font-weight: 700;
}

/* Char counter */
.char-count {
  float:       right;
  font-weight: 400;
  font-size:   0.68rem;
  color:       var(--color-text-light);
  letter-spacing: 0;
  text-transform: none;
}

/* Consent */
.consent-group {
  display:     flex;
  align-items: flex-start;
  gap:         0.75rem;
}
.consent-group input[type="checkbox"] {
  width:         20px;
  height:        20px;
  min-width:     20px;
  flex-shrink:   0;
  margin-top:    0.15rem;
  accent-color:  var(--color-primary);
  cursor:        pointer;
  border-radius: var(--radius-sm);
}
.consent-group label {
  font-size:   0.8rem;
  font-weight: 400;
  color:       var(--color-text-muted);
  line-height: 1.6;
  cursor:      pointer;
}
.consent-group label a {
  color:       var(--color-primary);
  font-weight: 600;
}

/* Submit row */
.form-submit-row {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  gap:             1rem;
  flex-wrap:       wrap;
  margin-top:      0.5rem;
}

.btn-send {
  display:         inline-flex;
  align-items:     center;
  gap:             0.625rem;
  padding:         0.9rem 2rem;
  font-family:     var(--font);
  font-weight:     700;
  font-size:       0.82rem;
  letter-spacing:  0.07em;
  text-transform:  uppercase;
  color:           var(--color-white);
  background:      var(--color-primary);
  border:          none;
  border-radius:   var(--radius-md);
  cursor:          pointer;
  position:        relative;
  overflow:        hidden;
  min-height:      52px;
  transition:      background var(--ease), transform var(--ease), box-shadow var(--ease);
}
/* Shimmer shine effect */
.btn-send::before {
  content:    '';
  position:   absolute;
  top:        0;
  left:       -100%;
  width:      60%;
  height:     100%;
  background: linear-gradient(
    120deg,
    transparent 0%,
    rgba(255,255,255,.25) 50%,
    transparent 100%
  );
  transition: left 0.5s ease;
}
.btn-send:hover::before { left: 150%; }
.btn-send:hover {
  background:  var(--color-primary-dark);
  transform:   translateY(-2px);
  box-shadow:  0 10px 28px rgba(23,199,20,.35);
}
.btn-send:active { transform: translateY(0); }
.btn-send i { transition: transform 0.25s ease; }
.btn-send:hover i { transform: translateX(5px); }

.form-secure-note {
  font-size:   0.72rem;
  color:       var(--color-text-light);
  font-weight: 400;
  line-height: 1.55;
}
.form-secure-note i {
  color:       var(--color-primary);
  margin-right: 0.25rem;
}


/* ─── BUSINESS HOURS ────────────────────────────────────────── */
.contact-hours {
  background:  var(--color-dark-2);
  border-top:  1px solid rgba(255,255,255,.06);
  padding:     2.75rem 0;
  position:    relative;
  overflow:    hidden;
}
.contact-hours::before {
  content:  '';
  position: absolute;
  inset:    0;
  background: radial-gradient(ellipse 60% 120% at 50% 50%, rgba(23,199,20,.06) 0%, transparent 70%);
  pointer-events: none;
}

.contact-hours__inner {
  display:         flex;
  align-items:     center;
  justify-content: center;
  flex-wrap:       wrap;
  max-width:       var(--container-max);
  margin:          0 auto;
  padding:         0 var(--container-pad);
  position:        relative;
  gap:             0;
}

.hours-item {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  gap:            0.3rem;
  padding:        0 clamp(1.25rem, 3vw, 3rem);
  border-right:   1px solid rgba(255,255,255,.07);
  text-align:     center;
}
.hours-item:last-child { border-right: none; }

.hours-item__day {
  font-size:      0.65rem;
  font-weight:    700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:          rgba(255,255,255,.35);
}
.hours-item__time {
  font-size:   1.0625rem;
  font-weight: 700;
  color:       var(--color-white);
}
.hours-item--primary .hours-item__day { color: var(--color-primary); }
.hours-item--primary .hours-item__time { color: var(--color-primary); }

.hours-badge {
  font-size:      0.6rem;
  font-weight:    700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding:        0.2rem 0.6rem;
  border-radius:  var(--radius-pill);
  background:     var(--color-primary);
  color:          var(--color-white);
  margin-top:     0.15rem;
}
.hours-badge--accent { background: var(--color-accent); }


/* ─── IMAGE SHOWCASE ────────────────────────────────────────── */
.contact-showcase {
  padding:    5.5rem 0 6rem;
  background: #f8faf8;
}

.showcase-header {
  text-align:    center;
  margin-bottom: 3.5rem;
  max-width:     var(--container-max);
  margin-left:   auto;
  margin-right:  auto;
  padding:       0 var(--container-pad);
}

.section-eyebrow {
  display:        inline-flex;
  align-items:    center;
  gap:            0.625rem;
  font-size:      0.68rem;
  font-weight:    700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color:          var(--color-primary);
  margin-bottom:  0.875rem;
}
.section-eyebrow::before,
.section-eyebrow::after {
  content:       '';
  display:       block;
  width:         28px;
  height:        1.5px;
  background:    var(--color-primary);
  border-radius: 1px;
}

.showcase-header h2 {
  font-size:   clamp(1.625rem, 3.5vw, 2.375rem);
  font-weight: 800;
  color:       var(--color-text);
  line-height: 1.2;
}
.showcase-header p {
  margin-top:  0.875rem;
  font-size:   0.9rem;
  color:       var(--color-text-muted);
  max-width:   48ch;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.7;
}

/* 5-slot asymmetric grid */
.showcase-grid {
  display:               grid;
  grid-template-columns: 2.2fr 1fr 1fr;
  grid-template-rows:    260px 260px;
  gap:                   0.875rem;
  max-width:             var(--container-max);
  margin:                0 auto;
  padding:               0 var(--container-pad);
}

.showcase-item {
  position:      relative;
  overflow:      hidden;
  border-radius: var(--radius-lg);
  background:    var(--color-dark-3);
}
.showcase-item:first-child { grid-row: 1 / 3; }

.showcase-item img {
  width:      100%;
  height:     100%;
  object-fit: cover;
  display:    block;
  transition: transform 0.65s cubic-bezier(0.4,0,0.2,1);
}
.showcase-item:hover img { transform: scale(1.07); }

/* Placeholder */
.showcase-placeholder {
  width:           100%;
  height:          100%;
  display:         flex;
  flex-direction:  column;
  align-items:     center;
  justify-content: center;
  gap:             0.75rem;
  background:      linear-gradient(145deg, var(--color-dark-3) 0%, #111f11 100%);
  border:          1px dashed rgba(23,199,20,.18);
  color:           rgba(255,255,255,.25);
  font-size:       0.75rem;
  font-weight:     600;
  letter-spacing:  0.04em;
  text-align:      center;
  padding:         1.5rem;
  transition:      border-color var(--ease), color var(--ease);
}
.showcase-placeholder:hover {
  border-color: rgba(23,199,20,.4);
  color:        rgba(255,255,255,.45);
}
.showcase-placeholder i {
  font-size: 2rem;
  color:     rgba(23,199,20,.3);
  transition: color var(--ease);
}
.showcase-placeholder:hover i { color: rgba(23,199,20,.6); }

/* Caption overlay */
.showcase-caption {
  position:    absolute;
  inset:       0;
  background:  linear-gradient(to top, rgba(11,22,11,.80) 0%, rgba(11,22,11,.0) 50%);
  display:     flex;
  align-items: flex-end;
  padding:     1.25rem;
  opacity:     0;
  transition:  opacity var(--ease);
}
.showcase-item:hover .showcase-caption { opacity: 1; }

.showcase-caption__text {
  color:       var(--color-white);
  font-size:   0.8rem;
  font-weight: 700;
  display:     flex;
  align-items: center;
  gap:         0.5rem;
}
.showcase-caption__text i { color: var(--color-primary); font-size: 0.7rem; }


/* ─── RESPONSIVE ────────────────────────────────────────────── */

@media (max-width: 1100px) {
  .contact-hero__inner {
    grid-template-columns: 1fr;
  }
  .contact-hero__right {
    flex-direction: row;
    flex-wrap:      wrap;
    gap:            0.75rem;
  }
  .hero-stat { width: auto; flex: 1 1 180px; }

  .contact-panel { width: min(480px, 48%); }
}

@media (max-width: 900px) {
  .contact-info-strip__grid {
    grid-template-columns: 1fr 1fr;
  }
  .info-card:nth-child(2) { border-right: none; }
  .info-card:nth-child(1),
  .info-card:nth-child(2) { border-bottom: 1px solid var(--color-border); }

  /* Stack map + panel */
  .contact-centerpiece {
    height:     auto;
    max-height: none;
    display:    flex;
    flex-direction: column;
  }
  .contact-centerpiece__map {
    position: relative;
    height:   400px;
    flex-shrink: 0;
  }
  .contact-panel {
    position: relative;
    width:    100%;
    box-shadow: 0 -4px 24px rgba(0,0,0,.08);
    max-height: none;
    padding:    2.5rem var(--container-pad);
  }
  .aga-house-card { bottom: 1rem; left: 1rem; width: 220px; }

  .showcase-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows:    260px 180px 180px;
  }
  .showcase-item:first-child {
    grid-row:    1 / 2;
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  .contact-hero__right { display: none; }

  .contact-info-strip__grid { grid-template-columns: 1fr; }
  .info-card { border-right: none; border-bottom: 1px solid var(--color-border); }
  .info-card:nth-child(2) { border-right: none; border-bottom: 1px solid var(--color-border); }
  .info-card:last-child { border-bottom: none; }

  .contact-centerpiece__map { height: 300px; }
  .aga-house-card { width: 190px; }

  .form-row-2 { grid-template-columns: 1fr; }

  .showcase-grid {
    grid-template-columns: 1fr;
    grid-template-rows:    240px 180px 180px 180px 180px;
  }
  .showcase-item:first-child { grid-row: 1; grid-column: 1; }

  .contact-hours__inner {
    flex-direction: column;
    gap:            1.25rem;
  }
  .hours-item {
    border-right:  none;
    border-bottom: 1px solid rgba(255,255,255,.07);
    padding:       1.25rem 0;
    width:         100%;
  }
  .hours-item:last-child { border-bottom: none; }
}

@media (max-width: 380px) {
  .contact-hero__title { font-size: 2.25rem; }
  .aga-house-card { display: none; }
}


/* ── Field errors ────────────────────────────────────────── */
.field-error {
  display:    block;
  font-size:  0.78rem;
  color:      var(--color-accent);
  margin-top: 0.25rem;
  min-height: 1rem;
}

.float-group.has-error input,
.float-group.has-error select,
.float-group.has-error textarea {
  border-color: var(--color-accent) !important;
  box-shadow:   0 0 0 3px rgba(255, 107, 0, 0.1);
}

/* ── Contact success panel ───────────────────────────────── */
.contact-success {
  text-align: center;
  padding:    2.5rem 1.5rem;
}

.contact-success[hidden] { display: none; }

.contact-success__icon {
  width:           72px;
  height:          72px;
  background:      rgba(23, 199, 20, 0.1);
  border-radius:   50%;
  display:         flex;
  align-items:     center;
  justify-content: center;
  font-size:       2rem;
  color:           var(--color-primary);
  margin:          0 auto 1.25rem;
}

.contact-success h3 {
  font-size:   1.5rem;
  font-weight: 700;
  color:       #0f172a;
  margin:      0 0 0.5rem;
}

.contact-success p {
  color:       #64748b;
  font-size:   0.95rem;
  line-height: 1.6;
  margin:      0 0 1.75rem;
}
