/* Coordinated conversion-page layout system
   Applies to pricing, contact, reservation, and confirmation pages. */

:root{
  --conversion-max:1520px;
  --conversion-gutter:clamp(18px,3vw,56px);
  --conversion-section:clamp(44px,6vw,88px);
  --conversion-blue:#02344a;
  --conversion-red:#990000;
  --conversion-ink:#111827;
  --conversion-muted:#5f6b7a;
  --conversion-border:rgba(17,24,39,.13);
  --conversion-soft:#f5f7f9;
  --conversion-shadow:0 18px 48px rgba(2,52,74,.10);
}

/* Shared wide canvas */
.ci-reserve-page .ci-wrap,
.ci-contact-page .ci-wrap,
.pricing-hero .container,
.pricing-fast-path .container,
.pricing-section .container,
.conversion-confirmation-page .container{
  width:min(calc(100% - (var(--conversion-gutter) * 2)),var(--conversion-max))!important;
  max-width:var(--conversion-max)!important;
  margin-inline:auto!important;
}

/* Reservation page */
.ci-reserve-page .ci-wrap{
  padding:var(--conversion-section) 0!important;
}
.ci-reserve-page .ci-sub{
  max-width:105ch!important;
}
.ci-reserve-page .ci-grid{
  grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr)!important;
  gap:clamp(22px,3vw,42px)!important;
  margin-top:32px!important;
}
.ci-reserve-page .ci-card{
  border-radius:22px!important;
  padding:clamp(24px,2.6vw,40px)!important;
  box-shadow:var(--conversion-shadow)!important;
}
.ci-reserve-page .ci-alert{
  padding:clamp(22px,2.4vw,34px)!important;
}
.ci-reserve-page .ci-calendar{
  margin-top:clamp(28px,4vw,54px)!important;
}
.ci-reserve-page .ci-booking-box{
  padding:clamp(24px,3vw,42px)!important;
}

/* Contact page */
.ci-contact-page .ci-wrap{
  padding:var(--conversion-section) 0!important;
}
.ci-contact-page .ci-sub{
  max-width:110ch!important;
}
.ci-contact-page .ci-info{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
}
.ci-contact-page .ci-service-area-panel{
  grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr)!important;
  gap:clamp(22px,3vw,38px)!important;
}
.ci-contact-page .ci-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:clamp(22px,3vw,38px)!important;
}
.ci-contact-page .ci-card,
.ci-contact-page .ci-form-card{
  border-radius:22px!important;
  box-shadow:var(--conversion-shadow)!important;
}
.ci-contact-page .ci-form-section{
  max-width:none!important;
  margin-top:clamp(34px,5vw,68px)!important;
}
.ci-contact-page .ci-form-card{
  padding:clamp(24px,3.5vw,52px)!important;
}
.ci-contact-page .ci-form-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:20px!important;
}

/* Pricing page */
.pricing-hero,
.pricing-section{
  padding-block:var(--conversion-section)!important;
}
.pricing-hero .container.narrow{
  max-width:var(--conversion-max)!important;
}
.pricing-hero .container.narrow > p:not(.eyebrow){
  max-width:105ch;
}
.pricing-fast-path-inner{
  grid-template-columns:minmax(0,1.3fr) auto!important;
  gap:clamp(24px,4vw,64px)!important;
  align-items:center!important;
}
.pricing-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1.45fr) minmax(340px,.55fr)!important;
  gap:clamp(26px,4vw,56px)!important;
  align-items:start!important;
}
.pricing-grid .quote-form{
  min-width:0;
}
.pricing-grid fieldset{
  border-radius:20px!important;
  padding:clamp(20px,2.5vw,34px)!important;
}

/* Quote / request confirmation page */
.conversion-confirmation-page{
  padding:var(--conversion-section) 0;
}
.conversion-confirmation-page .conversion-confirmation-grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);
  gap:clamp(24px,4vw,56px);
  align-items:start;
  margin-top:32px;
}
.conversion-confirmation-page .quote-next-steps,
.conversion-confirmation-page .quote-adjustment-notice{
  margin:0!important;
  height:100%;
  border-radius:22px!important;
  box-shadow:var(--conversion-shadow);
}
.conversion-confirmation-page .conversion-confirmation-footer{
  margin-top:clamp(28px,4vw,52px);
  padding:clamp(22px,3vw,36px);
  border:1px solid var(--conversion-border);
  border-radius:22px;
  background:#fff;
}

/* Large tablets and compact laptops */
@media (max-width:1180px){
  .ci-reserve-page .ci-grid,
  .ci-contact-page .ci-service-area-panel,
  .pricing-grid,
  .conversion-confirmation-page .conversion-confirmation-grid{
    grid-template-columns:1fr!important;
  }
  .pricing-fast-path-inner{
    grid-template-columns:1fr!important;
  }
  .ci-contact-page .ci-form-section{
    max-width:100%!important;
  }
}

/* Tablets */
@media (max-width:820px){
  :root{
    --conversion-gutter:20px;
    --conversion-section:44px;
  }
  .ci-contact-page .ci-info,
  .ci-contact-page .ci-grid,
  .ci-contact-page .ci-form-grid{
    grid-template-columns:1fr!important;
  }
  .ci-reserve-page .ci-actions,
  .ci-contact-page .ci-actions,
  .pricing-hero .hero-actions,
  .pricing-fast-path .hero-actions{
    gap:10px!important;
  }
  .ci-reserve-page .ci-btn,
  .ci-contact-page .ci-button{
    min-height:48px;
  }
}

/* Phones */
@media (max-width:560px){
  :root{
    --conversion-gutter:14px;
    --conversion-section:34px;
  }
  .ci-reserve-page h1,
  .ci-contact-page .ci-h1,
  .pricing-hero h1{
    font-size:clamp(2rem,11vw,3rem)!important;
  }
  .ci-reserve-page .ci-card,
  .ci-contact-page .ci-card,
  .ci-contact-page .ci-form-card,
  .conversion-confirmation-page .quote-next-steps,
  .conversion-confirmation-page .quote-adjustment-notice,
  .conversion-confirmation-page .conversion-confirmation-footer{
    border-radius:16px!important;
    padding:20px!important;
  }
  .ci-reserve-page .ci-actions,
  .ci-contact-page .ci-actions,
  .pricing-hero .hero-actions,
  .pricing-fast-path .hero-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  .ci-reserve-page .ci-btn,
  .ci-contact-page .ci-button,
  .pricing-hero .button,
  .pricing-fast-path .button{
    width:100%!important;
    text-align:center;
  }
  .ci-reserve-page .ci-kv{
    grid-template-columns:1fr!important;
  }
  .ci-contact-page .ci-area-grid{
    grid-template-columns:1fr!important;
  }
  .ci-reserve-page .ci-booking-box code{
    max-width:100%;
    overflow-wrap:anywhere;
  }
}
