/*
 * Nest Phoenix Technologies — structural redesign
 * Reference: section order, content grouping and page rhythm inspired by Webscribz.
 * Brand palette intentionally remains Nest Phoenix navy + gold.
 */
:root {
  --np-brand-navy:#071426;
  --np-brand-navy-2:#0c2039;
  --np-brand-gold:#e0b45a;
  --np-brand-gold-deep:#bd8d32;
  --np-brand-paper:#f7f8fa;
  --np-brand-ink:#101b2b;
  --np-brand-muted:#5e6877;
  --np-brand-line:#dce2e9;
  --np-brand-card:#ffffff;
  --np-brand-radius:18px;
  --np-brand-shadow:0 18px 48px rgba(7,20,38,.09);
}
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body.ws-home, body.ws-inner { color:var(--np-brand-ink); background:#fff; }
body.ws-home .site-noise, body.ws-inner .site-noise { opacity:.035; }
.ws-wrap { width:min(1200px,calc(100% - 48px)); margin-inline:auto; }

/* Navigation: clear primary links and a single obvious conversion action. */
.ws-header { background:rgba(7,20,38,.96)!important; border-bottom:1px solid rgba(255,255,255,.12)!important; box-shadow:0 6px 24px rgba(7,20,38,.08); }
body.ws-inner .ws-header { background:rgba(7,20,38,.97)!important; }
.ws-nav-inner { width:min(1280px,calc(100% - 44px)); }
.ws-brand, .ws-link, .ws-signin-d { color:#f7f9fc!important; }
.ws-brand strong { color:#fff!important; letter-spacing:.1em; }
.ws-brand small { color:var(--np-brand-gold)!important; }
.ws-link { font-weight:650; }
.ws-link.is-active, .ws-link:hover { color:var(--np-brand-gold)!important; }
.ws-btn--sm, .ws-quote .ws-btn { background:var(--np-brand-gold)!important; color:var(--np-brand-navy)!important; border-color:var(--np-brand-gold)!important; font-weight:800; }
.ws-theme, .ws-toggle { color:#fff!important; border-color:rgba(255,255,255,.35)!important; }
.ws-theme svg { stroke:currentColor; }
.ws-cart { color:#fff!important; }
.ws-quote-menu { background:#fff!important; color:var(--np-brand-ink)!important; border:1px solid var(--np-brand-line)!important; box-shadow:var(--np-brand-shadow)!important; }
.ws-quote-menu a, .ws-quote-menu b { color:var(--np-brand-ink)!important; }

/* Home hero follows the reference's simple proposition -> explanation -> action hierarchy. */
.ws-hero { min-height:0!important; padding:calc(var(--ws-nav-h,84px) + 74px) 0 78px!important; background:linear-gradient(120deg,var(--np-brand-navy),var(--np-brand-navy-2))!important; color:#fff!important; }
.ws-hero::before, .ws-hero::after { opacity:.25!important; }
.ws-hero-grid { width:min(1200px,calc(100% - 48px)); grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr)!important; gap:clamp(32px,5vw,72px)!important; }
.ws-hero-copy { max-width:680px; }
.ws-pill { background:rgba(224,180,90,.12)!important; border:1px solid rgba(224,180,90,.36)!important; color:#f3d48f!important; }
.ws-hero h1 { max-width:760px; font-size:clamp(42px,5.3vw,72px)!important; line-height:1.04!important; letter-spacing:-.045em!important; color:#fff!important; }
.ws-hero h1 em { color:var(--np-brand-gold)!important; }
.ws-hero-lead { max-width:650px; color:#d7e0eb!important; font-size:clamp(16px,1.4vw,19px)!important; line-height:1.75!important; }
.ws-cta-row { margin-top:28px!important; gap:13px!important; }
.ws-btn { border-radius:8px!important; background:var(--np-brand-gold)!important; color:var(--np-brand-navy)!important; border:1px solid var(--np-brand-gold)!important; box-shadow:none!important; }
.ws-btn:hover { transform:translateY(-2px); filter:brightness(1.04); }
.ws-btn--ghost { background:transparent!important; color:#fff!important; border-color:rgba(255,255,255,.38)!important; }
.ws-facts { border-top:1px solid rgba(255,255,255,.17)!important; margin-top:36px!important; padding-top:22px!important; }
.ws-facts b { color:#fff!important; }
.ws-facts span { color:#c5d0de!important; }
.ws-stage { width:min(490px,100%)!important; }
.ws-stage .ws-disc { background:radial-gradient(circle at 35% 28%,#1b3a60,var(--np-brand-navy) 70%)!important; box-shadow:0 28px 90px rgba(0,0,0,.28)!important; }
.ws-stage .ws-ring { opacity:.8; }
.ws-chip { background:#fff!important; color:var(--np-brand-ink)!important; border:1px solid #e1e7ef!important; box-shadow:0 15px 38px rgba(0,0,0,.2)!important; }
.ws-chip small { color:var(--np-brand-muted)!important; }
.ws-chip svg { color:var(--np-brand-gold-deep)!important; }
.ws-hero-video { opacity:.12!important; }

/* A trust/capability strip in place of invented client logos. */
.ws-marquee { background:#fff!important; color:var(--np-brand-ink)!important; border-block:1px solid var(--np-brand-line)!important; padding:18px 0!important; }
.ws-marquee-track { animation-duration:48s!important; }
.ws-marquee-track span { color:var(--np-brand-ink)!important; font-weight:750!important; letter-spacing:.04em!important; }
.ws-marquee-track span::before { color:var(--np-brand-gold-deep)!important; }

/* Reusable reference rhythm: centered section heading, concise lead, tidy grids. */
.ws-sec { padding:clamp(64px,7.5vw,104px) 0!important; background:#fff!important; }
.ws-sec--alt { background:var(--np-brand-paper)!important; }
.ws-head { max-width:780px; margin-bottom:36px!important; }
.ws-head--center { margin-inline:auto!important; text-align:center!important; }
.ws-kicker { color:var(--np-brand-gold-deep)!important; letter-spacing:.15em!important; font-size:11px!important; }
.ws-kicker::before { background:var(--np-brand-gold)!important; }
.ws-h2 { color:var(--np-brand-ink)!important; font-size:clamp(30px,4vw,48px)!important; line-height:1.12!important; letter-spacing:-.035em!important; }
.ws-h2 em { color:var(--np-brand-gold-deep)!important; }
.ws-lead { color:var(--np-brand-muted)!important; font-size:16px!important; line-height:1.8!important; }
.ws-growth { grid-template-columns:repeat(6,minmax(0,1fr))!important; gap:18px!important; }
.ws-card { grid-column:span 2!important; padding:28px!important; border:1px solid var(--np-brand-line)!important; border-radius:var(--np-brand-radius)!important; background:#fff!important; box-shadow:none!important; }
.ws-card:nth-child(n+4) { grid-column:span 2!important; }
.ws-card::before { background:var(--np-brand-gold)!important; }
.ws-card h3, .ws-svc h3, .ws-proj h3, .ws-step h3 { color:var(--np-brand-ink)!important; }
.ws-card p, .ws-svc p, .ws-proj p, .ws-step p { color:var(--np-brand-muted)!important; }
.ws-card-ico { background:#fff6e2!important; color:var(--np-brand-navy)!important; border-radius:12px!important; }
.ws-services { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr))!important; gap:22px!important; }
.ws-svc { border:1px solid var(--np-brand-line)!important; border-radius:var(--np-brand-radius)!important; background:#fff!important; box-shadow:none!important; }
.ws-svc:hover { border-color:var(--np-brand-gold)!important; box-shadow:var(--np-brand-shadow)!important; }
.ws-svc-media { background:#edf2f7!important; }
.ws-svc-media img { transition:transform .4s ease; }
.ws-svc:hover .ws-svc-media img { transform:scale(1.04); }
.ws-svc-body, .ws-svc-copy { padding:24px!important; }
.ws-band { border-radius:var(--np-brand-radius)!important; padding:clamp(28px,4vw,48px)!important; background:var(--np-brand-navy)!important; color:#fff!important; }
.ws-band h2 { color:#fff!important; }
.ws-band p { color:#d4deea!important; }
.ws-btn--dark { background:var(--np-brand-gold)!important; color:var(--np-brand-navy)!important; }
.ws-about { gap:clamp(30px,6vw,80px)!important; align-items:center!important; }
.ws-plate { border-radius:var(--np-brand-radius)!important; background:var(--np-brand-navy)!important; }
.ws-plate img { max-width:80%; }
.ws-about-intro { color:var(--np-brand-ink)!important; }
.ws-about-body { color:var(--np-brand-muted)!important; }
.ws-work-top { align-items:end!important; gap:24px!important; }
.ws-work-grid { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:22px!important; }
.ws-proj { border:1px solid var(--np-brand-line)!important; border-radius:var(--np-brand-radius)!important; overflow:hidden!important; background:#fff!important; }
.ws-proj-img { background:#eaf0f6!important; }
.ws-proj-copy { padding:24px!important; }
.ws-proj:hover { box-shadow:var(--np-brand-shadow)!important; border-color:var(--np-brand-gold)!important; }
.ws-steps { grid-template-columns:repeat(3,minmax(0,1fr))!important; gap:18px!important; }
.ws-step { padding:28px!important; border:1px solid var(--np-brand-line)!important; border-radius:var(--np-brand-radius)!important; background:#fff!important; }
.ws-step-n { color:var(--np-brand-gold-deep)!important; background:none!important; -webkit-text-fill-color:var(--np-brand-gold-deep)!important; }
.ws-quote-sec { background:#f5f7fa!important; }
.ws-quote-grid { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)!important; gap:clamp(30px,5vw,64px)!important; }
.ws-contact-list li { color:var(--np-brand-ink)!important; }
.ws-contact-list small { color:var(--np-brand-muted)!important; }
.ws-form { background:#fff!important; border:1px solid var(--np-brand-line)!important; border-radius:var(--np-brand-radius)!important; box-shadow:var(--np-brand-shadow)!important; padding:clamp(22px,3vw,36px)!important; }
.ws-form h3 { color:var(--np-brand-ink)!important; }
.ws-form label { color:var(--np-brand-ink)!important; }
.ws-form input, .ws-form textarea, .ws-form select { border:1px solid #cfd7e1!important; border-radius:8px!important; background:#fff!important; color:var(--np-brand-ink)!important; }
.ws-form input:focus, .ws-form textarea:focus, .ws-form select:focus { outline:2px solid rgba(224,180,90,.35)!important; border-color:var(--np-brand-gold-deep)!important; }

/* Inner pages: a shared page-intro + content layout across service, work, shop and resources. */
body.ws-inner main { width:100%; max-width:none; margin:0; padding-top:0; }
body.ws-inner main > .container,
body.ws-inner main > section > .container,
body.ws-inner main > section > .ws-wrap { width:min(1200px,calc(100% - 48px)); margin-inline:auto; }
body.ws-inner .page-hero,
body.ws-inner .quote-maker-intro,
body.ws-inner .shop-hero,
body.ws-inner .request-quote-intro,
body.ws-inner .np-contact-hero,
body.ws-inner .case-hero { position:relative; overflow:hidden; padding:clamp(64px,8vw,108px) 0!important; background:linear-gradient(125deg,var(--np-brand-navy),var(--np-brand-navy-2))!important; color:#fff!important; }
body.ws-inner .page-hero::before,
body.ws-inner .quote-maker-intro::before,
body.ws-inner .shop-hero::before,
body.ws-inner .request-quote-intro::before,
body.ws-inner .np-contact-hero::before { content:""; position:absolute; width:460px; height:460px; right:-120px; top:-190px; border:1px solid rgba(224,180,90,.22); border-radius:50%; pointer-events:none; }
body.ws-inner .page-hero h1,
body.ws-inner .quote-maker-intro h1,
body.ws-inner .shop-hero h1,
body.ws-inner .request-quote-intro h1,
body.ws-inner .np-contact-hero h1,
body.ws-inner .case-hero h1 { color:#fff!important; font-size:clamp(36px,5vw,60px)!important; line-height:1.08!important; letter-spacing:-.035em!important; max-width:850px; }
body.ws-inner .page-hero p,
body.ws-inner .quote-maker-intro p,
body.ws-inner .shop-hero p,
body.ws-inner .request-quote-intro p,
body.ws-inner .np-contact-hero p,
body.ws-inner .case-hero p { color:#d5deea!important; max-width:760px; }
body.ws-inner .eyebrow, body.ws-inner .section-label { color:var(--np-brand-gold-deep)!important; }
body.ws-inner .page-hero .eyebrow, body.ws-inner .quote-maker-intro .eyebrow,
body.ws-inner .shop-hero .eyebrow, body.ws-inner .request-quote-intro .eyebrow,
body.ws-inner .np-contact-hero .eyebrow, body.ws-inner .case-hero .eyebrow { color:#f1d18b!important; }
body.ws-inner main > section:not(.page-hero):not(.quote-maker-intro):not(.shop-hero):not(.request-quote-intro):not(.np-contact-hero):not(.case-hero) { padding-block:clamp(42px,6vw,76px); }
body.ws-inner .content-grid,
body.ws-inner .project-grid,
body.ws-inner .project-grid-large,
body.ws-inner .product-grid,
body.ws-inner .tutorial-grid,
body.ws-inner .blog-grid { gap:22px!important; }
body.ws-inner .project-grid, body.ws-inner .project-grid-large { grid-template-columns:repeat(3,minmax(0,1fr)); }
body.ws-inner .product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
body.ws-inner .project-card, body.ws-inner .project-grid > article,
body.ws-inner .project-grid-large > article, body.ws-inner .content-grid > article,
body.ws-inner .product-card, body.ws-inner .shop-panel,
body.ws-inner .builder-panel, body.ws-inner .request-success-card,
body.ws-inner .quote-tools-bar, body.ws-inner .quote-result,
body.ws-inner .page-replica-grid > article { border-radius:var(--np-brand-radius)!important; border-color:var(--np-brand-line)!important; box-shadow:0 8px 28px rgba(7,20,38,.045); }
body.ws-inner .quote-tools, body.ws-inner .quote-builder-section,
body.ws-inner .shop-section, body.ws-inner .section { background:#fff; }
body.ws-inner .filter-row, body.ws-inner .catalog-filters { gap:10px; }
body.ws-inner .filter-row input, body.ws-inner .filter-row select,
body.ws-inner .catalog-search input, body.ws-inner .catalog-filters select,
body.ws-inner input, body.ws-inner textarea, body.ws-inner select { border-radius:8px; }
body.ws-inner .btn-primary, body.ws-inner button.btn-primary,
body.ws-inner .np-gold-btn, body.ws-inner .request-quote-page-marker ~ * .btn-primary { background:var(--np-brand-gold)!important; color:var(--np-brand-navy)!important; border-color:var(--np-brand-gold)!important; font-weight:800; }
body.ws-inner .btn-ghost, body.ws-inner .btn-outline { border-color:#cfd7e1!important; }
body.ws-inner .case-layout { gap:clamp(28px,5vw,64px); }
body.ws-inner .case-gallery-slide img, body.ws-inner .project-image img { border-radius:14px; }
body.ws-inner .product-detail-grid { align-items:start; gap:clamp(28px,5vw,70px); }
body.ws-inner .product-detail-image { border-radius:var(--np-brand-radius); overflow:hidden; background:var(--np-brand-paper); }
body.ws-inner .product-detail-copy { position:sticky; top:110px; }
body.ws-inner .cart-layout, body.ws-inner .request-quote-layout { gap:24px; }
body.ws-inner .shop-panel, body.ws-inner .builder-panel { background:#fff!important; padding:clamp(20px,3vw,32px)!important; }
body.ws-inner .np-contact-channel-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
body.ws-inner .np-contact-form-grid { gap:clamp(28px,5vw,64px); }

/* Footer remains brand-led and consistent on every public page. */
.ws-footer, footer.ws-footer, .site-footer { background:var(--np-brand-navy)!important; color:#f2f5f9!important; border-top:3px solid var(--np-brand-gold)!important; }
.ws-footer h2, .ws-footer h3, .ws-footer strong, .site-footer h2, .site-footer h3 { color:#fff!important; }
.ws-footer p, .ws-footer li, .ws-footer small, .site-footer p, .site-footer li { color:#c7d1df!important; }
.ws-footer a:hover, .site-footer a:hover { color:var(--np-brand-gold)!important; }

@media (max-width:1000px) {
  .ws-hero-grid { grid-template-columns:1fr!important; }
  .ws-hero-copy { max-width:800px; }
  .ws-stage { width:min(390px,82vw)!important; margin:22px auto 0!important; }
  .ws-growth { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .ws-card, .ws-card:nth-child(n+4) { grid-column:span 1!important; }
  .ws-services { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .ws-steps { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  body.ws-inner .project-grid, body.ws-inner .project-grid-large { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.ws-inner .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .ws-wrap, .ws-hero-grid, .ws-nav-inner { width:calc(100% - 32px)!important; }
  .ws-hero { padding:calc(var(--ws-nav-h,76px) + 46px) 0 52px!important; }
  .ws-hero h1 { font-size:clamp(38px,11vw,54px)!important; }
  .ws-facts { display:grid!important; grid-template-columns:1fr 1fr!important; gap:18px!important; }
  .ws-sec { padding:64px 0!important; }
  .ws-growth, .ws-services, .ws-work-grid, .ws-steps, .ws-quote-grid,
  .ws-about, body.ws-inner .content-grid, body.ws-inner .project-grid,
  body.ws-inner .project-grid-large, body.ws-inner .product-grid,
  body.ws-inner .np-contact-channel-grid { grid-template-columns:1fr!important; }
  .ws-card, .ws-card:nth-child(n+4) { grid-column:auto!important; }
  .ws-work-top { display:block!important; }
  .ws-work-top > a { margin-top:18px; }
  .ws-stage { width:min(320px,85vw)!important; }
  .ws-chip { max-width:190px; font-size:12px; }
  .ws-chip.c1 { left:-2%!important; }
  .ws-chip.c2 { right:-2%!important; }
  .ws-chip.c3 { bottom:3%!important; }
  .ws-form { padding:22px!important; }
  body.ws-inner main > .container,
  body.ws-inner main > section > .container,
  body.ws-inner main > section > .ws-wrap { width:calc(100% - 32px)!important; }
  body.ws-inner .page-hero, body.ws-inner .quote-maker-intro,
  body.ws-inner .shop-hero, body.ws-inner .request-quote-intro,
  body.ws-inner .np-contact-hero, body.ws-inner .case-hero { padding:58px 0!important; }
  body.ws-inner .product-detail-copy { position:static; }
  body.ws-inner .cart-layout, body.ws-inner .request-quote-layout { grid-template-columns:1fr!important; }
}

/* Compact capability band replaces the decorative ticker with a useful trust signal. */
.np-capability-strip{position:relative;background:#fff;border-bottom:1px solid var(--np-brand-line);padding:23px 0 25px}
.np-capability-inner{display:flex;align-items:center;justify-content:space-between;gap:28px}
.np-capability-inner>p{margin:0;color:var(--np-brand-muted);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.np-capability-items{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:9px}
.np-capability-items span{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid #e3e8ef;border-radius:999px;color:var(--np-brand-ink);font-size:12px;font-weight:700;background:#f8fafc}
.np-capability-items span:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--np-brand-gold-deep)}
@media(max-width:850px){.np-capability-inner{align-items:flex-start;flex-direction:column;gap:13px}.np-capability-items{justify-content:flex-start}}
@media (max-width:920px) {
  .ws-menu { background:var(--np-brand-navy)!important; border-color:rgba(255,255,255,.16)!important; box-shadow:0 24px 60px rgba(0,0,0,.28)!important; }
  .ws-menu .ws-link, .ws-menu .ws-signin { color:#fff!important; }
  .ws-menu .ws-link:hover, .ws-menu .ws-link.is-active { background:rgba(224,180,90,.14)!important; color:var(--np-brand-gold)!important; }
  .ws-menu-actions { border-top-color:rgba(255,255,255,.16)!important; }
  .ws-menu-actions .ws-signin { border-color:rgba(255,255,255,.25)!important; }
}
