/* Flat editorial contact section — no gradients or decorative cards. */
.contact {
  position:relative;
  display:flex;
  min-height:min(650px,calc(100svh - 82px));
  align-items:center;
  padding:64px 0 70px;
  border-top:1px solid rgba(255,255,255,.14);
  border-bottom:1px solid rgba(255,255,255,.14);
  background:#11110f;
}

.contact::before {
  position:absolute;
  top:0;
  left:max(24px,calc((100vw - 1180px) / 2));
  width:72px;
  height:4px;
  background:#FFC107;
  content:"";
}

.contact-panel {
  grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);
  align-items:center;
  gap:clamp(56px,7vw,112px);
}

.contact-main {
  padding-right:24px;
}

.contact-main h2 {
  max-width:780px;
  font-size:clamp(42px,4.25vw,64px);
  line-height:.92;
  letter-spacing:-.045em;
}

.contact-title-line { display:block; white-space:nowrap; }

.contact-main .contact-hours {
  max-width:360px;
  margin:42px 0 0;
  padding:4px 0 4px 18px;
  border-left:2px solid #FFC107;
  color:rgba(255,255,255,.62);
  font-size:11px;
  line-height:1.75;
}

.contact-main .contact-hours > span {
  display:block;
  margin-bottom:8px;
  color:#FFFFFF;
}

.contact-estimate-cta {
  position:relative;
  display:grid;
  width:min(100%,430px);
  min-height:84px;
  margin-top:34px;
  padding:16px 76px 16px 24px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  background:#151513;
  color:#FFFFFF;
  text-align:left;
  cursor:pointer;
  transition:transform 150ms cubic-bezier(.23,1,.32,1),background-color 180ms ease,color 180ms ease;
}

.contact-estimate-cta > span {
  font:700 10px/1.2 'Montserrat',sans-serif;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.contact-estimate-cta > strong {
  margin-top:7px;
  font:700 clamp(16px,1.3vw,20px)/1.15 'Montserrat',sans-serif;
  letter-spacing:-.025em;
}

.contact-estimate-cta > i {
  position:absolute;
  top:50%;
  right:8px;
  display:grid;
  width:42px;
  height:42px;
  place-items:center;
  border:1px solid rgba(255,255,255,.42);
  border-radius:50%;
  background:#FFC107;
  color:#090909;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55);
  font-size:18px;
  font-weight:500;
  line-height:1;
  font-style:normal;
  transform:translateY(-50%);
  transition:transform 180ms cubic-bezier(.23,1,.32,1);
}

.contact-estimate-cta > i::before { position:absolute; width:2px; height:17px; background:currentColor; content:""; transform:rotate(45deg); }
.contact-estimate-cta > i::after { position:absolute; width:8px; height:8px; border-top:2px solid currentColor; border-right:2px solid currentColor; content:""; transform:translate(4px,-4px); }

.contact-estimate-cta:active { transform:scale(.98); }

.contact-options {
  border-top:0;
}

.contact-option {
  min-height:92px;
  padding:17px 58px 17px 0;
  border-top:1px solid rgba(255,255,255,.22);
  transition:transform 150ms cubic-bezier(.23,1,.32,1),color 180ms ease;
}

.contact-option:first-child {
  border-top:0;
}

.contact-option:active {
  transform:scale(.99);
}

.contact-option strong {
  font-size:clamp(17px,1.35vw,22px);
}

.contact-option:last-child {
  border-bottom:1px solid rgba(255,255,255,.22);
}

.contact-option i {
  right:2px;
  width:42px;
  height:42px;
  border-radius:50%;
  background:#FFC107;
  color:#11110F;
  border:1px solid rgba(255,255,255,.42);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55);
  font-size:18px;
  font-weight:500;
  line-height:1;
  transition:transform 180ms cubic-bezier(.23,1,.32,1),background-color 180ms ease;
}

.contact-option i::before { position:absolute; width:2px; height:17px; background:currentColor; content:""; transform:rotate(45deg); }
.contact-option i::after { position:absolute; width:8px; height:8px; border-top:2px solid currentColor; border-right:2px solid currentColor; content:""; transform:translate(4px,-4px); }

.contact.is-reveal-ready .contact-main,
.contact.is-reveal-ready .contact-options {
  opacity:0;
  transform:translateY(18px);
  transition:opacity 600ms cubic-bezier(.23,1,.32,1),transform 600ms cubic-bezier(.23,1,.32,1);
}

.contact.is-reveal-ready .contact-options {
  transition-delay:60ms;
}

.contact.is-reveal-ready.is-visible .contact-main,
.contact.is-reveal-ready.is-visible .contact-options {
  opacity:1;
  transform:translateY(0);
}

@media (hover:hover) and (pointer:fine) {
  .contact-estimate-cta:hover {
    border-color:rgba(255,193,7,.56);
    background:#151513;
    color:#FFFFFF;
  }

  .contact-estimate-cta:hover > i { background:#FFD23F; transform:translateY(-54%); }

  .contact-option:hover {
    padding-left:0;
    color:#FFC107;
  }

  .contact-option:hover i {
    background:#FFD23F;
    transform:translateY(-54%);
  }
}

@media (max-width:820px) {
  .contact { min-height:0; padding:72px 0 78px; }
  .contact::before { left:24px; }
  .contact-panel { grid-template-columns:1fr; align-items:start; gap:48px; }
  .contact-main { padding-right:0; }
  .contact-title-line { white-space:normal; }
}

@media (max-width:540px) {
  .contact { padding:62px 0 66px; }
  .contact::before { left:15px; width:54px; }
  .contact-main h2 { font-size:clamp(38px,11vw,48px); }
  .contact-main .contact-hours { margin-top:32px; }
  .contact-estimate-cta { width:100%; margin-top:26px; }
  .contact-option { min-height:82px; }
}

@media (prefers-reduced-motion:reduce) {
  .contact-estimate-cta,
  .contact-estimate-cta > i { transition-duration:0ms; }
  .contact.is-reveal-ready .contact-main,
  .contact.is-reveal-ready .contact-options {
    transform:none;
    transition:opacity 200ms ease;
  }
}
