/* Accessibility and shared interaction fixes. */
:root { color-scheme: dark; }
html { scroll-padding-top: 110px; }
:focus-visible { outline: 3px solid #ffc400; outline-offset: 4px; }
#contact-form { scroll-margin-top: 110px; }
.nav-more:hover .more-menu { display: none; }
.nav-more.open .more-menu { display: grid; }
.more-toggle { min-height:44px; }
.more-menu { top:100%; z-index:30; }
.desktop-nav .more-menu a:focus-visible { outline-offset:-2px; }
.contact-form { position:relative; min-width:0; }
.contact-form input,.contact-form textarea { max-width:100%; min-width:0; }
.contact-form label { min-width:0; }
.contact-form [type=file] { white-space:normal; }
.contact-form .form-status { grid-column:1/-1; margin:0; font-size:15px; color:#f2e9d7; }
.contact-form .form-status:empty { display:none; }
.contact-form .form-status.is-error { padding:14px; border:1px solid #e8aa80; border-radius:8px; background:#2c1711; }
.contact-form [aria-invalid=true] { border-color:#eea17e; }
.contact-form button:disabled { cursor:wait; opacity:.65; }
.contact-form .form-note { overflow-wrap:anywhere; }
.hp { width:1px!important; height:1px!important; opacity:0!important; pointer-events:none!important; }
.site-footer a { text-decoration:underline; text-underline-offset:3px; }
.site-footer a:hover { color:var(--yellow,#ffc400); }
a.service-card { display:block; }
a.service-card:focus-visible { outline-offset:5px; }
/* Unframed photos share a single rounded mask; labels and icons stay crisp. */
.service-grid { align-content:start; }
.service-card {
  aspect-ratio:16 / 9;
  min-height:0;
  border:0;
  isolation:isolate;
}
.service-card::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,transparent 30%,rgba(5,8,12,.1) 48%,rgba(5,8,12,.9) 100%);
  pointer-events:none;
}
.service-card::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  border:1px solid var(--line);
  border-radius:inherit;
  pointer-events:none;
}
.service-card:hover::after { border-color:rgba(255,196,0,.42); }
.service-card img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.service-caption {
  position:absolute;
  inset:auto 0 0;
  z-index:2;
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  align-items:center;
  gap:12px;
  padding:18px;
  color:#fff;
  font-size:clamp(15px,1.3vw,19px);
  font-weight:750;
  line-height:1.2;
  text-shadow:0 1px 8px rgba(0,0,0,.45);
}
.service-icon {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  color:var(--yellow,#ffc400);
  border:1px solid rgba(255,196,0,.45);
  border-radius:10px;
  background:rgba(10,14,19,.72);
}
.service-icon svg { display:block; width:26px; height:26px; }
.service-label { min-width:0; overflow-wrap:break-word; }
.service-arrow { color:var(--yellow,#ffc400); font-size:15px; text-align:right; }
@media(max-width:1100px) and (min-width:981px) {
  .service-caption { gap:9px; padding:14px; grid-template-columns:34px minmax(0,1fr); }
  .service-icon { width:34px; height:34px; }
}
@media(max-width:640px) {
  .service-caption { font-size:18px; }
}
.benefit .ico { display:grid; place-items:center; width:44px; height:44px; line-height:1; }
.contact-copy { min-width:0; }
.contact-methods a { grid-template-columns:46px minmax(0,1fr); }
.contact-methods strong { min-width:0; overflow-wrap:anywhere; }
.skip { z-index:1000; }
@media(min-width:981px){ .mobile-nav.open { display:none; } }
@media(max-width:640px){ .contact-shell { padding:18px!important; } .contact-form { grid-template-columns:1fr; } .contact-form .full { grid-column:auto; } .sticky-mobile-cta { padding-bottom:max(10px,env(safe-area-inset-bottom)); } }
@media(prefers-reduced-motion:reduce){ html{scroll-behavior:auto!important} *,*::before,*::after{animation:none!important;transition:none!important} }
/* Keep the desktop service-area label above the overlapping benefits row. */
@media(min-width:981px){ .hero-copy { padding-bottom:82px; } }

/* Keep the price overview inside narrower desktop viewports. */
@media (min-width:981px) and (max-width:1100px) {
  .price-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .price-intro { grid-column:1/-1; }
}
