/* Reference-inspired homepage: Montserrat, generous type, and a compact estimate card. */
.home-refresh { --navy: #0b2532; --sky: #83d0e5; --orange: #ff9f1c; --gold: #ef8235; }
.home-refresh .hero-home { min-height: 775px; background: #18343f; }
.home-refresh .hero-home .hero-media { background-image: url('/assets/coastal-porch-hero.webp'); background-size: cover; background-position: center 52%; opacity: 1; }
.home-refresh .hero-home .hero-overlay { background: linear-gradient(90deg, rgba(20,26,29,.68), rgba(20,26,29,.58)); }
.home-refresh .hero-home .hero-content { display: grid; grid-template-columns: minmax(0, 1fr) 460px; gap: 64px; align-items: center; width: min(1200px, calc(100% - 48px)); min-height: 775px; padding: 70px 0 80px; margin: auto; }
.home-refresh .hero-home .hero-copy { max-width: none; padding: 0; text-align: left; }
.home-refresh .hero-location-pill { display: inline-flex; margin: 0 0 16px; padding: 7px 17px; font-size: 15px; line-height: 20px; font-weight: 700; letter-spacing: 0; color: #8ee0f7; background: rgba(112,206,231,.15); border: 1px solid rgba(130,220,240,.45); box-shadow: none; }
.home-refresh .hero-home h1 { margin: 0 0 24px; max-width: none; color: #83d0e5; font-size: 65px; font-weight: 800; line-height: 1.2; letter-spacing: -1.3px; text-shadow: none; }
.home-refresh .hero-home h1 em { color: #ff9f1c; font-style: italic; }
.home-refresh .hero-home h1::after { display: none; }
.home-refresh .hero-home .hero-lede { max-width: 620px; margin: 0; color: #fff; font-family: Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 1.5; text-shadow: none; }
.hero-benefits { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin: 26px 0 0; padding: 0; list-style: none; }
.hero-benefits li { display: inline-flex; align-items: center; gap: 14px; padding: 11px 15px; border: 1px solid rgba(255,255,255,.27); border-radius: 15px; background: rgba(255,255,255,.12); color: white; font-size: 17px; font-weight: 700; }
.hero-benefits li span { color: #ff923f; font-size: 23px; line-height: 1; width: 20px; text-align: center; }
.hero-estimate-card { position: relative; width: 100%; padding: 32px; background: white; color: #12334a; border-radius: 20px; box-shadow: 0 10px 26px rgba(0,0,0,.25); }
.hero-estimate-card h2 { margin: 0; color: #303030; font-size: 25px; font-weight: 800; letter-spacing: -.35px; line-height: 1.3; text-align: center; }
.form-rating { display: flex; justify-content: center; align-items: center; gap: 12px; margin: 18px 0 26px; font-size: 14px; }
.hero-estimate-form { display: grid; gap: 17px; }
.form-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.hero-estimate-form label { display: block; min-width: 0; color: #14628a; font-size: 16px; line-height: 1.3; font-weight: 700; text-transform: uppercase; }
.hero-estimate-form label > span { color: #d31818; margin-left: 3px; }
.hero-estimate-form input, .hero-estimate-form textarea { display: block; width: 100%; min-width: 0; margin-top: 8px; padding: 11px 15px; color: #243845; background: #fcfcfc; border: 1px solid #e0e0e0; border-radius: 16px; font-size: 16px; font-weight: 400; line-height: 1.4; text-transform: none; box-shadow: none; }
.hero-estimate-form input { height: 47px; }
.hero-estimate-form textarea { height: 65px; min-height: 65px; resize: vertical; }
.hero-estimate-form input::placeholder, .hero-estimate-form textarea::placeholder { color: #858585; opacity: 1; }
.home-refresh :is(a, button, input, textarea):focus-visible { outline: 3px solid #39b5df; outline-offset: 4px; }
.estimate-submit { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; min-height: 47px; padding: 11px 16px; color: #102232; background: #ff9f1c; border: 0; border-radius: 8px; font-size: 16px; font-weight: 800; cursor: pointer; }
.estimate-submit:hover { background: #e99a08; color: #102232; }
.estimate-submit:disabled { opacity: .65; cursor: wait; }
.home-refresh .hero-estimate-form .estimate-form-note { margin: -7px 0 0; color: #66737c; font-size: 12px; line-height: 1.5; text-align: center; }
.estimate-form-note a { color: #14628a; font-weight: 700; text-decoration: underline; }
.home-refresh .hero-estimate-form .estimate-form-status { margin: 0; color: #243845; font-size: 14px; line-height: 1.5; }
.home-refresh .crew-feature { padding: 65px 0; background: #f5fafc; }
.home-refresh .crew-feature-copy h2 { font-size: 38px; line-height: 1.2; letter-spacing: -.8px; }
.home-refresh .button.primary { background: #ff9f1c; color: #102232; border-radius: 8px; box-shadow: none; }
.home-refresh .button.primary:hover { background: #e99a08; color: #102232; }
@media (max-width: 1200px) {
  .home-refresh .hero-home .hero-content { gap: 32px; grid-template-columns: minmax(0,1fr) 420px; }
  .home-refresh .hero-home h1 { font-size: 54px; }
  .hero-estimate-card { padding: 27px; }
  .hero-estimate-card h2 { font-size: 23px; }
}
@media (max-width: 960px) {
  .home-refresh .hero-home .hero-content { grid-template-columns: minmax(0,1fr) 360px; gap: 26px; padding: 48px 0; min-height: auto; }
  .home-refresh .hero-home { min-height: auto; }
  .home-refresh .hero-home h1 { font-size: 43px; letter-spacing: -.8px; }
  .home-refresh .hero-location-pill { font-size: 12px; padding: 7px 10px; }
  .hero-benefits li { font-size: 14px; gap: 10px; }
  .hero-estimate-card { padding: 24px; }
  .hero-estimate-card h2 { font-size: 22px; }
  .hero-estimate-form label { font-size: 14px; }
  .hero-estimate-form input, .hero-estimate-form textarea { padding-inline: 11px; }
  .rating-strip { font-size: 13px; gap: 7px; }
}
@media (max-width: 760px) {
  .home-refresh .hero-home .hero-content { grid-template-columns: 1fr; width: min(540px, calc(100% - 36px)); gap: 34px; padding: 42px 0; }
  .home-refresh .hero-home .hero-media { background-position: 57% top; }
  .home-refresh .hero-home .hero-overlay { background: linear-gradient(180deg, rgba(20,26,29,.68), rgba(20,26,29,.58)); }
  .home-refresh .hero-home h1 { font-size: clamp(36px, 8.4vw, 54px); letter-spacing: -.7px; }
  .home-refresh .hero-location-pill { font-size: 12px; }
  .home-refresh .hero-home .hero-lede { font-size: 17px; }
  .hero-benefits { margin-top: 22px; }
  .hero-benefits li { font-size: 15px; padding: 10px 13px; }
  .hero-estimate-card { padding: 26px 22px; border-radius: 18px; }
  .hero-estimate-card h2 { font-size: 23px; }
  .rating-strip { gap: 3px 8px; padding: 8px 12px; font-size: 12px; }
  .rating-strip > span:first-child { width: 100%; text-align: center; }
  .rating-stars { font-size: 18px; }
  .home-refresh .crew-feature { padding: 30px 0; }
  .home-refresh .crew-feature-copy { display: block; margin-top: 24px; }
  .home-refresh .crew-feature-copy h2 { font-size: 30px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-refresh { scroll-behavior: auto; }
}
