/* Home page (page-home.php). Builds on assets/model/model.css. */
.to-home .home-wide { max-width: 1440px; padding-left: max(24px, env(safe-area-inset-left, 0px)); padding-right: max(24px, env(safe-area-inset-right, 0px)); }
.to-home .home-anchor { display: block; position: relative; top: -60px; }
.to-home .section-title, .to-home .tl-title { text-align: center; }
.to-home .section-lead, .to-home .tl-lead { margin-left: auto; margin-right: auto; text-align: center; }

/* Hero */
.home-hero-band { background: radial-gradient(1200px 500px at 75% 40%, #1d2a3d 0%, rgba(29,42,61,0) 60%), linear-gradient(135deg, #0d0e10 0%, #181c24 55%, #0d1117 100%); }
.to-home .hero { max-width: 1440px; grid-template-columns: 1fr 1.2fr; padding-top: 56px; padding-bottom: 64px; padding-left: max(24px, env(safe-area-inset-left, 0px)); padding-right: max(24px, env(safe-area-inset-right, 0px)); }
.to-home .hero h1 { font-size: clamp(34px, 4.2vw, 52px); }
.to-home .hero-image img { filter: drop-shadow(0 24px 40px rgba(0,0,0,.45)); }
.home-points { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 22px 0 0; padding: 0; color: #c3cad6; font-size: 14px; }
.home-points li { position: relative; padding-left: 22px; }
.home-points li::before { content: ""; position: absolute; left: 0; top: .3em; width: 14px; height: 14px; border-radius: 50%; background: var(--blue2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/10px no-repeat; }

/* Tiles + promo */
.to-home .tiles-wrap { padding-bottom: 0; }
.home-promo-wrap { background: var(--soft); padding: 16px max(24px, env(safe-area-inset-left, 0px)) 0; }
/* Seasonal sale banner: its own loud colors (not the site palette), with a grain + stripe texture. */
.home-promo { --p1: #1f9d4c; --p2: #0b6b34; --pink: #ffd23f; --pink-ink: #1d2329; --pbtn: #fff; --pbtn-ink: #0b6b34;
  position: relative; overflow: hidden; isolation: isolate; max-width: 1440px; margin: 0 auto; display: flex; align-items: center; justify-content: center; gap: 14px 26px; flex-wrap: wrap;
  padding: 22px 28px; border-radius: 8px; text-decoration: none; color: #fff; font-family: var(--head);
  background: linear-gradient(115deg, var(--p1) 0%, var(--p2) 100%); box-shadow: 0 10px 30px rgba(0,0,0,.18), inset 0 0 0 1px rgba(255,255,255,.12); }
.home-promo::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5; mix-blend-mode: overlay;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.home-promo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-linear-gradient(-45deg, rgba(255,255,255,.07) 0 14px, rgba(255,255,255,0) 14px 28px); }
.home-promo:hover { color: #fff; text-decoration: none; }
.home-promo:hover .promo-btn { transform: translateX(3px); }
.promo-stamp { display: inline-block; transform: rotate(-3deg); background: var(--pink); color: var(--pink-ink); font-weight: 800; font-size: 20px; letter-spacing: .5px; text-transform: uppercase; padding: 6px 16px; border-radius: 4px; box-shadow: 3px 3px 0 rgba(0,0,0,.25); }
.promo-text { font-size: 18px; font-weight: 600; text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.promo-btn { display: inline-block; background: var(--pbtn); color: var(--pbtn-ink); font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: .3px; padding: 11px 22px; border-radius: 50rem; box-shadow: 0 3px 0 rgba(0,0,0,.2); transition: transform .15s; white-space: nowrap; }
.promo-summer { --p1: #ff8a00; --p2: #e94e1b; --pink: #fff35c; --pbtn-ink: #c2410c; }
.promo-fall { --p1: #b5531c; --p2: #6e2a12; --pink: #ffb347; --pbtn-ink: #6e2a12; }
.promo-winter { --p1: #1e6fd9; --p2: #0b2f6b; --pink: #e8f6ff; --pbtn-ink: #0b2f6b; }
.promo-holiday { --p1: #c8102e; --p2: #7a0019; --pink: #ffd23f; --pbtn-ink: #7a0019; }
.promo-blackfriday { --p1: #1a1a1a; --p2: #000; --pink: #ffd200; --pbtn: #ffd200; --pbtn-ink: #000; }
.promo-blackfriday::after { background: repeating-linear-gradient(-45deg, rgba(255,210,0,.14) 0 12px, rgba(0,0,0,0) 12px 24px); }
.to-home .tl { padding-top: 56px; }
.to-home .tl-title { font-size: clamp(26px, 3.4vw, 34px); }
.to-home .tl-title span { color: var(--blue); }

/* Shop by category */
.home-cats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.home-cat { display: flex; align-items: center; gap: 16px; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 14px 18px; text-decoration: none; color: var(--ink); height: 100%; transition: border-color .15s, box-shadow .15s; }
.home-cat:hover { border-color: var(--blue); box-shadow: 0 6px 20px rgba(20,30,40,.08); color: var(--ink); text-decoration: none; }
.home-cat img { width: 110px; height: 82px; object-fit: contain; flex: none; }
.home-cat b { display: block; font-family: var(--head); font-size: 17px; font-weight: 700; }
.home-cat small { display: block; color: var(--muted); font-size: 14px; line-height: 1.4; margin-top: 2px; }

/* Inline Quick Quote */
.home-quote-band { background: linear-gradient(135deg, #0d0e10 0%, #181c24 55%, #0d1117 100%); scroll-margin-top: 56px; }
.home-quote { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.to-home .home-quote .section-title, .to-home .home-quote .section-lead { text-align: left; margin-left: 0; }
.home-checks { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 10px; color: #dfe4ec; }
.home-checks li { position: relative; padding-left: 30px; }
.home-checks li::before { content: ""; position: absolute; left: 0; top: .15em; width: 20px; height: 20px; border-radius: 50%; background: var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/12px no-repeat; }
.home-quote-call { color: var(--band-muted); margin: 0; font-size: 15px; }
.home-quote-call a { color: #fff; font-weight: 700; }
.home-quote-form { background: #fff; color: var(--ink); border-radius: 10px; padding: 28px; box-shadow: 0 20px 50px rgba(0,0,0,.35); }

/* Why us */
.home-why { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.home-why-item { border: 1px solid var(--line); border-top: 3px solid var(--blue); border-radius: 6px; padding: 22px 22px 18px; background: #fff; }
.home-why-item h3 { font-size: 17px; font-weight: 700; margin: 0 0 6px; }
.home-why-item p { margin: 0; color: var(--muted); font-size: 15px; }

/* Industries + help */
.home-chips { justify-content: center; }
.home-chips li { padding: 0; }
.home-chips a { display: block; padding: 9px 18px; color: var(--ink); text-decoration: none; border-radius: 50rem; }
.home-chips a:hover { color: var(--blue); }
.home-help { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 10px; max-width: 1140px; }
.home-help a { display: block; background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 12px 16px; text-decoration: none; font-family: var(--head); font-weight: 500; font-size: 15px; color: var(--ink); }
.home-help a:hover { border-color: var(--blue); color: var(--blue); }
.home-help a::after { content: " →"; color: var(--blue); }

/* Wider shared sections on the home page */
.to-home #services, .to-home #faq, .to-home .to-reviews { max-width: 1440px; padding-left: max(24px, env(safe-area-inset-left, 0px)); padding-right: max(24px, env(safe-area-inset-right, 0px)); }
.to-home #faq details { max-width: 900px; margin-left: auto; margin-right: auto; }

@media (max-width: 991px) {
  .to-home .hero { grid-template-columns: minmax(0, 1fr); padding-top: 28px; padding-bottom: 44px; }
  .to-home .hero-image { order: -1; max-width: 520px; margin: 0 auto; }
  .home-cats, .home-why { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-quote { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .home-help { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .to-home .home-wide { padding-left: 16px; padding-right: 16px; }
  .home-cats, .home-why, .home-help { grid-template-columns: minmax(0, 1fr); }
  .home-cat img { width: 84px; height: 63px; }
  .home-quote-form { padding: 20px 16px; }
  .home-promo { padding: 18px 16px; gap: 10px; }
  .promo-stamp { font-size: 16px; }
  .promo-text { font-size: 16px; text-align: center; }
}

/* Services on the home page: compact horizontal cards so the 300px photos are never stretched. */
.to-home .mp-services { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.to-home .mp-svc { display: grid; grid-template-columns: 150px minmax(0, 1fr); align-items: center; }
.to-home .mp-svc img { width: 150px; height: 110px; object-fit: contain; padding: 8px; border-bottom: 0; border-right: 1px solid var(--line); }
@media (max-width: 991px) { .to-home .mp-services { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .to-home .mp-services { grid-template-columns: minmax(0, 1fr); } .to-home .mp-svc { grid-template-columns: 110px minmax(0, 1fr); } .to-home .mp-svc img { width: 110px; height: 84px; } }

/* Numbered process steps (refurbished page) */
.home-steps { list-style: none; counter-reset: step; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.home-steps li { counter-increment: step; position: relative; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 46px 18px 18px; }
.home-steps li::before { content: counter(step); position: absolute; top: 14px; left: 18px; width: 26px; height: 26px; border-radius: 50%; background: var(--blue); color: #fff; font-family: var(--head); font-weight: 700; font-size: 14px; line-height: 26px; text-align: center; }
.home-steps h3 { font-size: 16px; font-weight: 700; margin: 0 0 6px; }
.home-steps p { margin: 0; color: var(--muted); font-size: 14px; }
/* Breadcrumb on inner pages built on the home template */
.home-hero-band .crumbs { max-width: 1440px; margin: 0 auto; padding: 14px max(24px, env(safe-area-inset-left, 0px)) 0; }

/* ===== Industry pages (models/industry-*.php) ===== */
/* Hero with a full-bleed photo on the right, faded into the dark band behind the text. */
.home-hero-band.has-photo { position: relative; overflow: hidden; isolation: isolate; background: #0d0f13; }
.hero-photo { position: absolute; inset: 0 0 0 38%; z-index: -1; }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; display: block; }
.hero-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #0d0f13 0%, rgba(13,15,19,.82) 22%, rgba(13,15,19,.25) 60%, rgba(13,15,19,.1) 100%), linear-gradient(0deg, rgba(13,15,19,.55) 0%, rgba(13,15,19,0) 35%); }
.to-home .has-photo .hero { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); min-height: 520px; padding-top: 64px; padding-bottom: 72px; }
.to-home .has-photo .hero h1 { font-size: clamp(34px, 4.4vw, 56px); text-shadow: 0 2px 18px rgba(0,0,0,.45); }
.has-photo .hero-desc { color: #d5dbe4; }
.has-photo .crumbs ol, .has-photo .crumbs a { color: #c3cad6; }

/* What the job needs + common uses */
.ind-needs .home-why-item h3 { display: flex; align-items: center; gap: 10px; }
.ind-needs .home-why-item h3::before { content: ""; flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/12px no-repeat; }
.ind-uses { margin-top: 34px; text-align: center; }
.ind-uses-h { font-size: 16px; font-weight: 700; margin: 0 0 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .6px; }
.ind-uses .home-chips span { display: block; padding: 9px 18px; }

/* Top picks */
.ind-picks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; counter-reset: pick; }
.ind-pick { counter-increment: pick; position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; transition: box-shadow .15s, border-color .15s; }
.ind-pick:hover { border-color: var(--blue); box-shadow: 0 10px 28px rgba(20,30,40,.09); }
.ind-pick::before { content: counter(pick); position: absolute; top: 14px; left: 14px; width: 30px; height: 30px; border-radius: 50%; background: var(--ink); color: #fff; font-family: var(--head); font-weight: 700; font-size: 15px; line-height: 30px; text-align: center; z-index: 1; }
.ind-pick-img { display: block; background: linear-gradient(180deg, #f7f8fa 0%, #eceff3 100%); padding: 22px 30px 10px; text-align: center; }
.ind-pick-img img { width: 100%; max-width: 260px; height: auto; aspect-ratio: 4 / 3; object-fit: contain; display: inline-block; }
.ind-pick-body { display: flex; flex-direction: column; flex: 1; padding: 18px 22px 22px; }
.ind-pick-tag { margin: 0 0 6px; font-family: var(--head); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .6px; color: var(--orange); }
.ind-pick-name { font-size: 20px; font-weight: 700; margin: 0 0 8px; line-height: 1.25; }
.ind-pick-name a { color: var(--ink); text-decoration: none; }
.ind-pick-name a:hover { color: var(--blue); }
.ind-pick-text { margin: 0 0 14px; color: var(--muted); font-size: 15px; }
.ind-pick-facts { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ind-pick-facts li { font-size: 12.5px; font-family: var(--head); font-weight: 500; background: #eef5ff; color: var(--blue-text); border-radius: 4px; padding: 3px 9px; }
.ind-pick-foot { margin-top: auto; border-top: 1px solid var(--line); padding-top: 14px; }
.ind-pick-price { margin: 0 0 12px; color: var(--muted); font-size: 15px; }
.ind-pick-price b { font-family: var(--head); font-size: 20px; color: var(--ink); margin-left: 4px; }
.ind-pick-links { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.ind-pick-links .to-pill { padding: 11px 22px; }
.ind-pick-quote { font-family: var(--head); font-weight: 600; font-size: 14px; color: var(--blue-text); }

@media (max-width: 991px) {
  .hero-photo { position: relative; inset: auto; height: 300px; z-index: 0; }
  .hero-photo::after { background: linear-gradient(0deg, #0d0f13 0%, rgba(13,15,19,.35) 45%, rgba(13,15,19,.1) 100%); }
  .has-photo .crumbs { position: absolute; top: 0; left: 0; right: 0; z-index: 1; }
  .to-home .has-photo .hero { min-height: 0; grid-template-columns: minmax(0, 1fr); margin-top: -70px; position: relative; padding-top: 0; }
  .ind-picks { grid-template-columns: minmax(0, 1fr); max-width: 620px; margin: 0 auto; }
}
@media (max-width: 600px) {
  .hero-photo { height: 230px; }
  .to-home .has-photo .hero { margin-top: -50px; }
}

/* Lineup on industry pages: the recommended models come first, with a small tag */
.tl-rec { display: inline-block; margin: 0 0 6px; padding: 2px 9px; border-radius: 50rem; background: #fff3e2; color: #8a4b00; font-family: var(--head); font-size: 11.5px; font-weight: 600; letter-spacing: .3px; text-transform: uppercase; }

/* ===== Info pages (models/info-*.php): compact hero, content beside a request form ===== */
.home-hero-band.is-compact .hero { grid-template-columns: minmax(0, 1fr); padding-top: 40px; padding-bottom: 44px; }
.home-hero-band.is-compact .hero-content { max-width: 860px; }
.to-home .is-compact .hero h1 { font-size: clamp(30px, 3.8vw, 46px); }
.info-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 48px; align-items: start; }
.info-grid.no-form { grid-template-columns: minmax(0, 1fr); max-width: 900px; margin: 0 auto; }
.info-block + .info-block { margin-top: 26px; }
.info-h { font-size: 21px; font-weight: 700; margin: 0 0 8px; }
.info-copy p { color: #3d4450; margin: 0 0 12px; }
.info-copy ul { margin: 0 0 12px; padding-left: 20px; color: #3d4450; }
.info-logos { list-style: none; margin: 22px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 18px; }
.info-logos a { display: block; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 14px 20px; }
.info-logos img { display: block; height: 52px; width: auto; }
.info-img { display: block; max-width: 100%; height: auto; margin-top: 22px; border-radius: 8px; }
.info-form-wrap { position: sticky; top: 76px; scroll-margin-top: 70px; }
.info-form { border: 1px solid var(--line); box-shadow: 0 14px 40px rgba(20,30,40,.12); }
.info-form-h { font-size: 22px; font-weight: 700; margin: 0 0 4px; grid-column: 1 / -1; }
.info-form-lead { margin: 0 0 6px; color: var(--muted); font-size: 14px; grid-column: 1 / -1; }
.info-req { color: #c0392b; }
@media (max-width: 991px) {
  .info-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .info-form-wrap { position: static; }
}
/* Product photos in the home-style hero: never taller than the text beside them */
.to-home .hero-image img { max-height: 470px; width: auto; max-width: 100%; margin: 0 auto; }
/* Services page: service cards + dropdown */
.info-cards { list-style: none; margin: 4px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.info-card { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 14px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px; }
.info-card img { width: 96px; height: 72px; object-fit: contain; }
.info-card-h { font-size: 16px; font-weight: 700; margin: 0 0 2px; }
.info-card p { margin: 0; font-size: 14px; color: var(--muted); }
.info-form select { width: 100%; font: inherit; font-size: 15px; border: 1px solid var(--orange); border-radius: 4px; padding: 7px 12px; background: #fff; color: var(--ink); }
@media (max-width: 600px) { .info-cards { grid-template-columns: minmax(0, 1fr); } }

/* Sale pages (models/sale-*.php) */
.sale-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.sale-card { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 18px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 22px; }
.sale-card:hover { border-color: var(--blue); box-shadow: 0 10px 28px rgba(20,30,40,.09); }
.sale-img img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; display: block; }
.sale-name { font-size: 20px; font-weight: 700; margin: 0 0 8px; }
.sale-name a { color: var(--ink); text-decoration: none; }
.sale-specs { list-style: none; margin: 0 0 12px; padding: 0; font-size: 14px; color: var(--muted); }
.sale-specs li + li { margin-top: 2px; }
.sale-price { font-family: var(--head); font-size: 30px; font-weight: 800; color: #a60000; margin: 0 0 12px; line-height: 1; }
.sale-note { text-align: center; margin: 26px 0 0; font-size: 16px; }
@media (max-width: 991px) { .sale-cards { grid-template-columns: minmax(0, 1fr); max-width: 640px; margin: 0 auto; } }
@media (max-width: 520px) { .sale-card { grid-template-columns: minmax(0, 1fr); } }
/* Confirmation pages: the quiz pop-up */
.keanu-dialog { border: 0; border-radius: 10px; padding: 2.4em 2.6em; max-width: 560px; width: calc(100% - 32px); box-shadow: 0 20px 60px rgba(0,0,0,.35); }
.keanu-dialog::backdrop { background: rgba(10,12,16,.6); }
.keanu-close { position: absolute; top: 8px; right: 12px; border: 0; background: none; font-size: 28px; line-height: 1; cursor: pointer; color: var(--muted); }
.home-hero-band .hero-desc a { color: #7cc7ff; }
