/* WPForms fixes */
/* Initial field looks */
.wpforms-container input[type=date],
.wpforms-container input[type=datetime],
.wpforms-container input[type=datetime-local],
.wpforms-container input[type=email],
.wpforms-container input[type=month],
.wpforms-container input[type=number],
.wpforms-container input[type=password],
.wpforms-container input[type=range],
.wpforms-container input[type=search],
.wpforms-container input[type=tel],
.wpforms-container input[type=text],
.wpforms-container input[type=time],
.wpforms-container input[type=url],
.wpforms-container input[type=week],
.wpforms-container select,
.wpforms-container textarea {
    background: #fff;
    border-width: 0 0 1px 0;
    color: var(--ast-global-color-2);
    opacity: 0.5;
}
/* On focus */
.wpforms-container input:focus,
.wpforms-container select:focus,
.wpforms-container textarea:focus {
    outline: none;
    opacity: 1;
    border-color: var(--ast-global-color-0);
}
/* Don't allow resizing the Message box */
.wpforms-container textarea {
    resize: none;
}
/* Message box fixed height */
.wpforms-container .wpforms-field-textarea textarea.wpforms-field-medium {
    height: 136px;
}
/* Button size & font size */
.wpforms-container button {
    padding: 15px 34px;
    font-size: 15px;
}
/* WPForms done */
/* Footer 2 big columns on sides and 1 small one in the middle */
.ast-builder-grid-row-3-equal .ast-builder-grid-row {
    grid-template-columns: 3fr 1fr 3fr;
}
/* ================================================
   ARCH BAY LLC — Global CSS
   Paste into: WordPress > Appearance > Additional CSS
   ================================================ */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800;900&family=Inter:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap');

/* ── Scroll reveal ── */
.abr { opacity:0; transform:translateY(28px); transition:opacity .65s ease, transform .65s ease; }
.abr.abv { opacity:1 !important; transform:none !important; }
.abd1 { transition-delay:.1s !important; }
.abd2 { transition-delay:.2s !important; }
.abd3 { transition-delay:.3s !important; }
.abd4 { transition-delay:.4s !important; }

/* ── Pulse dot ── */
@keyframes abpulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.35;transform:scale(.7)} }
.ab-pulse { animation:abpulse 2.2s ease-in-out infinite; }

/* ── Hero overlay ── */
.ab-hero.elementor-section { position:relative; }
.ab-hero.elementor-section::before {
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(155deg, rgba(13,14,16,.97) 0%, rgba(13,14,16,.8) 50%, rgba(27,58,92,.44) 100%);
}
.ab-hero.elementor-section > .elementor-container { position:relative; z-index:2; }

/* ── Stat glass tiles ── */
.ab-stat {
  background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.09);
  border-radius:12px; padding:18px 16px; text-align:center;
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  transition:background .22s;
}
.ab-stat:hover { background:rgba(255,255,255,.09); }

/* ── Trust ticker ── */
@keyframes abtick { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.ab-ticker-inner { display:flex; white-space:nowrap; animation:abtick 30s linear infinite; overflow:hidden; }
.ab-ticker-item { display:inline-flex; align-items:center; gap:7px; padding:0 26px;
  font-family:'Outfit',sans-serif; font-size:13px; font-weight:700; color:#fff; letter-spacing:.04em; }

/* ── Service cards — TWI style ── */
.ab-srv.elementor-column > .elementor-widget-wrap {
  background:#FFFFFF; border:1px solid #E4E7EC; overflow:hidden;
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s;
  box-shadow:0 2px 10px rgba(0,0,0,.06);
}
.ab-srv.elementor-column:hover > .elementor-widget-wrap {
  transform:translateY(-7px); box-shadow:0 22px 56px rgba(0,0,0,.13);
  border-color:rgba(224,123,32,.28);
}
.ab-srv .elementor-widget-image img {
  width:100%; height:220px; object-fit:cover; display:block;
  transition:transform .55s ease;
}
.ab-srv.elementor-column:hover .elementor-widget-image img { transform:scale(1.06); }

/* ── Why strip cards ── */
.ab-why.elementor-column > .elementor-widget-wrap {
  border-right:1px solid #262C35; transition:background .22s;
}
.ab-why.elementor-column > .elementor-widget-wrap:hover { background:#1C2128 !important; }
.ab-why.elementor-column:last-child > .elementor-widget-wrap { border-right:none; }
@media(max-width:767px) {
  .ab-why.elementor-column > .elementor-widget-wrap {
    border-right:none !important; border-bottom:1px solid #262C35;
  }
}

/* ── Project tiles ── */
.ab-proj .elementor-widget-image { overflow:hidden; border-radius:12px; }
.ab-proj .elementor-widget-image img {
  width:100%; height:260px; object-fit:cover;
  transition:transform .55s ease;
}
.ab-proj:hover .elementor-widget-image img { transform:scale(1.06); }

/* ── Testimonial cards ── */
.ab-tst.elementor-column > .elementor-widget-wrap {
  border-radius:14px; border:1px solid #E4E7EC; background:#FFFFFF;
  box-shadow:0 2px 10px rgba(0,0,0,.06);
  transition:transform .25s, box-shadow .25s, border-color .25s;
}
.ab-tst.elementor-column:hover > .elementor-widget-wrap {
  transform:translateY(-5px); box-shadow:0 18px 52px rgba(0,0,0,.1);
  border-color:rgba(224,123,32,.2);
}

/* ── Val cards (about page) ── */
.ab-val.elementor-column > .elementor-widget-wrap {
  background:#FFFFFF; border-radius:14px; border:1px solid #E4E7EC;
  box-shadow:0 2px 10px rgba(0,0,0,.06);
  transition:transform .25s, box-shadow .25s, border-color .25s;
}
.ab-val.elementor-column:hover > .elementor-widget-wrap {
  transform:translateY(-5px); box-shadow:0 18px 52px rgba(0,0,0,.09);
  border-color:rgba(224,123,32,.25);
}

/* ── Team / project detail cards ── */
.ab-card.elementor-column > .elementor-widget-wrap {
  border-radius:14px; border:1px solid #E4E7EC; background:#FFFFFF;
  overflow:hidden; box-shadow:0 2px 10px rgba(0,0,0,.06);
  transition:transform .28s, box-shadow .28s, border-color .28s;
}
.ab-card.elementor-column:hover > .elementor-widget-wrap {
  transform:translateY(-6px); box-shadow:0 20px 52px rgba(0,0,0,.1);
  border-color:rgba(224,123,32,.2);
}

/* ── CTA glow ── */
.ab-cta.elementor-section { position:relative; }
.ab-cta.elementor-section::before {
  content:''; position:absolute; inset:0; pointer-events:none; z-index:0;
  background:radial-gradient(ellipse 65% 90% at 68% 50%, rgba(224,123,32,.2), transparent);
}
.ab-cta.elementor-section > .elementor-container { position:relative; z-index:1; }

/* ── Button hover ── */
.elementor-button { transition:transform .2s ease, box-shadow .2s ease !important; }
.elementor-button:hover { transform:translateY(-2px) !important; }

/* ── About image zoom ── */
.ab-zoom .elementor-widget-image img {
  transition:transform .5s ease; border-radius:14px;
}
.ab-zoom:hover .elementor-widget-image img { transform:scale(1.04); }

/* ── Footer links ── */
.ab-ftl a { transition:color .18s !important; display:block; margin-bottom:9px; }
.ab-ftl a:hover { color:#E07B20 !important; }

/* ── Form styling ── */
.ab-form input, .ab-form select, .ab-form textarea {
  width:100%; padding:12px 15px;
  border:1.5px solid #E4E7EC; border-radius:9px;
  font-family:'Inter',sans-serif; font-size:15px;
  background:#F8F8F6; color:#0D0E10; outline:none;
  transition:border-color .2s, box-shadow .2s;
  margin-bottom:14px; display:block;
}
.ab-form input:focus, .ab-form select:focus, .ab-form textarea:focus {
  border-color:#E07B20; background:#FFFFFF;
  box-shadow:0 0 0 3px rgba(224,123,32,.1);
}
.ab-form textarea { height:118px; resize:vertical; line-height:1.6; }
.ab-form label {
  display:block; font-size:11px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:#0D0E10; margin-bottom:5px;
}
.ab-form button {
  width:100%; padding:15px; font-family:'Outfit',sans-serif;
  font-size:15px; font-weight:700; background:#E07B20; color:#FFFFFF;
  border:none; border-radius:9px; cursor:pointer; transition:all .22s; margin-top:4px;
}
.ab-form button:hover {
  background:#C06618; transform:translateY(-2px);
  box-shadow:0 8px 28px rgba(224,123,32,.4);
}

/* ── Mobile ── */
@media(max-width:767px) {
  .ab-hero.elementor-section .elementor-col-100 { padding-top:100px !important; }
}