/* Rounded actions and restrained feedback, loaded after the component styles. */
body .button,
body .sticky-call,
body .lsp-hero .lsp-btn-submit,
body .lsp-contact .lsp-cf-submit,
body .luxe-navigation #primary-nav > .button {
  border-radius: 999px !important;
  box-shadow: 0 5px 16px #3d2e191a;
  animation: none !important;
  transition: transform .24s cubic-bezier(.2, .65, .3, 1), box-shadow .24s ease, background-color .24s ease, color .24s ease !important;
}

body .lsp-hero .lsp-btn-submit,
body .lsp-contact .lsp-cf-submit {
  min-height: 51px;
  padding-left: 24px;
  padding-right: 24px;
  box-shadow: 0 6px 18px #94683224;
}

body .sticky-call {
  box-shadow: 0 8px 25px #1e1a162e;
}

@media (hover: hover) {
  body .button:hover,
  body .sticky-call:hover,
  body .lsp-hero .lsp-btn-submit:hover:not(:disabled),
  body .lsp-contact .lsp-cf-submit:hover:not(:disabled),
  body .luxe-navigation #primary-nav > .button:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px #3d2e1930;
  }

  body .lsp-hero .lsp-btn-submit:hover:not(:disabled),
  body .lsp-contact .lsp-cf-submit:hover:not(:disabled) {
    background: #d6b483 !important;
    color: #211b14 !important;
  }
}

body .button:focus-visible,
body .sticky-call:focus-visible,
body .lsp-hero .lsp-btn-submit:focus-visible,
body .lsp-contact .lsp-cf-submit:focus-visible,
body .luxe-navigation #primary-nav > .button:focus-visible {
  outline: 3px solid #866335 !important;
  outline-offset: 5px;
  box-shadow: 0 9px 24px #3d2e192b;
}

body .button:active,
body .sticky-call:active,
body .lsp-hero .lsp-btn-submit:active:not(:disabled),
body .lsp-contact .lsp-cf-submit:active:not(:disabled),
body .luxe-navigation #primary-nav > .button:active {
  transform: translateY(0) scale(.98);
  box-shadow: 0 3px 9px #3d2e1926;
  transition-duration: .12s !important;
}

body .lsp-hero .lsp-btn-submit:disabled,
body .lsp-contact .lsp-cf-submit:disabled {
  transform: none !important;
  box-shadow: 0 3px 9px #3d2e191a;
}

.lsp-contact .lsp-contact-google-card {
  min-height: 77px;
  gap: 15px;
  padding: 14px 18px;
  border: 1px solid #ffffff24;
  border-radius: 24px;
  background: #ffffff0d;
  transition: transform .24s cubic-bezier(.2, .65, .3, 1), box-shadow .24s ease, background-color .24s ease, border-color .24s ease !important;
}

.lsp-contact .lsp-contact-google-card .lsp-google-icon,
.lsp-contact .lsp-contact-google-card:hover .lsp-google-icon {
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 4px 13px #0000001f;
}

.lsp-contact .lsp-contact-google-card .lsp-google-mark {
  display: block;
  width: 26px;
  height: 26px;
  fill: none;
  stroke: none;
  stroke-width: 0;
}

.lsp-contact .lsp-contact-google-card .lsp-google-mark path { stroke: none; }

@media (hover: hover) {
  .lsp-contact a.lsp-contact-google-card:hover {
    transform: translateY(-3px);
    border-color: #ffffff45;
    background: #ffffff12;
    box-shadow: 0 10px 24px #00000026;
  }
}

.lsp-contact .lsp-contact-google-card:focus-visible {
  outline: 2px solid #e0bc7a;
  outline-offset: 5px;
  box-shadow: 0 9px 23px #00000026;
}
.lsp-contact .lsp-contact-google-card:active {
  transform: translateY(0) scale(.99);
}

/* A quiet phone control on desktop, with a clear label on touch screens. */
body .sticky-call {
  position: fixed;
  right: 24px !important;
  bottom: 24px;
  left: auto !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  padding: 0;
  border-radius: 50% !important;
  background: #c79a54;
  color: #211b14;
  box-shadow: 0 7px 25px #1e1a1633;
}
body .sticky-call > svg { width: 26px; height: 26px; }
body .sticky-call > span {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
body .sticky-call::after {
  content: 'Call now';
  position: absolute;
  top: 50%;
  right: calc(100% + 12px);
  padding: 10px 15px;
  border-radius: 999px;
  background: #252b22;
  color: #fffaf0;
  font: 600 12px/1.3 var(--body, Inter, Arial, sans-serif);
  white-space: nowrap;
  box-shadow: 0 5px 18px #00000024;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(7px, -50%);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}
body .sticky-call:hover::after,
body .sticky-call:focus-visible::after {
  opacity: 1;
  visibility: visible;
  transform: translate(0, -50%);
}

@media (max-width: 740px) {
  body .sticky-call {
    right: 16px !important;
    bottom: max(16px, env(safe-area-inset-bottom));
    width: auto;
    height: 52px;
    min-height: 52px;
    gap: 9px;
    padding: 0 21px;
    border-radius: 999px !important;
  }
  body .sticky-call > svg { width: 21px; height: 21px; }
  body .sticky-call > span {
    position: static;
    width: auto;
    height: auto;
    padding: 0;
    margin: 0;
    overflow: visible;
    clip-path: none;
    font: 700 13px/1.2 var(--body, Inter, Arial, sans-serif);
  }
  body .sticky-call::after { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  body .button,
  body .sticky-call,
  body .lsp-hero .lsp-btn-submit,
  body .lsp-contact .lsp-cf-submit,
  body .luxe-navigation #primary-nav > .button,
  .lsp-contact .lsp-contact-google-card {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }
  body .sticky-call::after { transition: none !important; }
}

/* Evening architecture gives the estimate section depth without burying the photo. */
.lsp-contact .lsp-contact-bg img{object-position:35% center}
.lsp-contact .lsp-contact-bg::after{background:linear-gradient(90deg,rgba(18,21,17,.72),rgba(18,21,17,.48) 45%,rgba(18,21,17,.20))}
.lsp-contact .lsp-contact-card{background:rgba(22,25,20,.69);backdrop-filter:blur(5px)}
.lsp-contact .lsp-contact-desc{text-shadow:0 1px 7px #0008;color:#f1efe8}
@media(max-width:740px){.lsp-contact .lsp-contact-bg img{object-position:28% center}.lsp-contact .lsp-contact-bg::after{background:linear-gradient(180deg,#151b14ac,#151b147d 45%,#151b14b3)}}

/* Explicit button colors prevent iOS Safari's default blue menu label. */
.luxe-navigation .menu-toggle{-webkit-appearance:none;appearance:none;color:#30392d;-webkit-text-fill-color:#30392d}
.luxe-navigation .menu-toggle svg{color:#30392d;stroke:currentColor}
.mobile-estimate{display:none}
@media(max-width:740px){
 .lsp-hero .lsp-form-card{display:none!important}
 .lsp-hero .lsp-hero-inner{padding-bottom:52px}
 .lsp-hero .hero-photo{height:100%;object-position:56% center}
 .lsp-hero .hero-shade{background:linear-gradient(90deg,#151e14bc,#151e147d),linear-gradient(0deg,#151e1466,transparent)}
 .hero-actions .mobile-estimate{display:inline-flex}
 .hero-actions .desktop-services-action{display:none}
}

/* Real project photography: keep the mountains and facade visible across crops. */
.real-project-hero .hero-picture{position:absolute;inset:0;display:block;overflow:hidden}
.real-project-hero .hero-photo{height:100%;width:100%;object-fit:cover;object-position:50% 54%;transform:none}
.real-project-hero .hero-shade{background:linear-gradient(90deg,rgba(17,25,17,.88),rgba(17,25,17,.52) 43%,rgba(17,25,17,.12) 75%),linear-gradient(0deg,rgba(17,25,17,.28),transparent 55%)}
@media(max-width:740px){
 .real-project-hero .hero-photo{object-position:50% 45%}
 .real-project-hero .hero-shade{background:linear-gradient(90deg,rgba(17,25,17,.70),rgba(17,25,17,.30)),linear-gradient(0deg,rgba(17,25,17,.38),transparent 60%)}
}
