/* SEO pages + service links (classes not present in compiled tailwind.css) */
.ot-links{display:grid;gap:1.5rem;margin-top:2.5rem}
@media (min-width:768px){.ot-links{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ot-link{display:flex;flex-direction:column;gap:.5rem;border:2px solid #000;background:#fff;padding:1.75rem;text-align:left;transition:background-color .2s,color .2s}
.ot-link:hover{background:#000;color:#fff}
.ot-link:hover p{color:rgba(255,255,255,.7)}
.ot-link h3{font-family:Fraunces,ui-serif,Georgia,serif;font-size:1.5rem;line-height:1.2;font-weight:600}
.ot-link p{font-size:.9rem;color:rgba(59,41,37,.7)}
.ot-link span{margin-top:auto;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#DEB53F}
.ot-cities{max-width:42rem;margin:0 auto;color:rgba(59,41,37,.8);line-height:1.7}
.ot-hero{position:relative;background:#000;color:#fff;padding:9rem 0 5rem;overflow:hidden}
.ot-hero h1{font-family:Fraunces,ui-serif,Georgia,serif;font-weight:600;font-size:2.5rem;line-height:1.05;letter-spacing:-.025em;margin-bottom:1.25rem}
@media (min-width:640px){.ot-hero h1{font-size:3.75rem}}
.ot-crumbs{font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.55);margin-bottom:1.5rem}
.ot-crumbs a{color:#E8CC72}
.ot-prose{max-width:46rem;margin:0 auto;color:rgba(59,41,37,.85);line-height:1.75;font-size:1.05rem}
.ot-prose h2{font-family:Fraunces,ui-serif,Georgia,serif;font-weight:600;font-size:1.9rem;line-height:1.15;color:#000;margin:2.75rem 0 1rem}
.ot-prose p{margin-bottom:1.1rem}
.ot-prose ul{margin:0 0 1.25rem;padding:0;list-style:none}
.ot-prose li{position:relative;padding-left:1.6rem;margin-bottom:.45rem}
.ot-prose li::before{content:"";position:absolute;left:0;top:.7em;width:.6rem;height:2px;background:#DEB53F}
.ot-prose a{text-decoration:underline;text-underline-offset:3px}
.ot-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem;max-width:64rem;margin:0 auto}
@media (min-width:768px){.ot-photos{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ot-photos img{width:100%;height:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.ot-faq details{border-bottom:2px solid rgba(0,0,0,.1);padding:1.1rem 0}
.ot-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.ot-faq summary::-webkit-details-marker{display:none}
.ot-faq summary h3{font-family:Fraunces,ui-serif,Georgia,serif;font-weight:600;font-size:1.125rem;color:#000;margin:0}
.ot-faq summary::after{content:"+";color:#DEB53F;font-size:1.5rem;line-height:1}
.ot-faq details[open] summary::after{content:"–"}
.ot-faq details p{padding-top:.75rem;color:rgba(59,41,37,.75);line-height:1.7}
.ot-contact-line{margin-top:.5rem}
.ot-contact-line a{text-decoration:underline;text-underline-offset:3px}
.ot-cards>*+*{margin-top:1.5rem}
.ot-hero h1{color:#fff}
.ot-link:hover h3{color:#fff}
/* Mobile performance: show hero immediately, smaller hero image (desktop unchanged) */
@media (max-width:767px){
  .hero-bg{background-image:url('/img/herobg-900.webp')!important}
  header .reveal{opacity:1!important;transform:none!important}
  .hero-underline{transform:scaleX(1)}
}
.ot-badge{display:inline-block;margin-top:1.25rem}
.ot-badge img{height:3.25rem;width:auto;display:block}
/* Custom package fields in the quote form */
.ot-custom{display:grid;gap:1.25rem 1rem;margin-top:.5rem}
@media (min-width:640px){.ot-custom{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ot-custom .ot-full{grid-column:1/-1}
.ot-custom fieldset{border:0;padding:0;margin:0}
.ot-custom legend{padding:0;margin-bottom:.5rem}
.ot-checks{display:grid;gap:.5rem}
@media (min-width:640px){.ot-checks{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Quote section (desktop): keep the left text in view while the form grows taller than the screen */
@media (min-width:1024px){
  #quote-form-section{overflow:visible;overflow:clip}
  #quote-form-section .ot-quote-left{align-self:stretch;display:flex;flex-direction:column}
  #quote-form-section .ot-quote-sticky{position:sticky;top:6rem;margin:auto 0}
}
