:root{
  --nb-red:#D81F1F;
  --nb-red-dark:#B81616;
  --nb-amber:#F2A900;
  --nb-amber-dark:#9A6B00;
  --nb-ink:#14171A;
  --nb-ink-soft:#3A4047;
  --nb-body:#5A6169;
  --nb-muted:#6B7177;
  --nb-line:#E6E8EA;
  --nb-line-soft:#EEF0F1;
  --nb-bg-soft:#F6F7F8;
  --nb-bg-card:#F2F3F4;
  --nb-bg-red-soft:#FDECEC;
  --nb-bg-amber-soft:#FFF3E0;
  --nb-bg-green-soft:#EAF3EE;
  --nb-green:#1E7A46;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Archivo',system-ui,-apple-system,sans-serif;
  color:var(--nb-ink);
  background:#fff;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:var(--nb-red);text-decoration:none;}
a:hover{color:var(--nb-red-dark);}
::selection{background:var(--nb-amber);color:var(--nb-ink);}
.container{max-width:1240px;}

/* ===== Header ===== */
.site-header{background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--nb-line);z-index:1030;}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:78px;}
.navbar-brand{line-height:1;}
.wordmark-script{font-family:'Lobster',cursive;color:var(--nb-red);font-size:27px;letter-spacing:.5px;transform:rotate(-3deg);transform-origin:left;margin-bottom:-2px;display:block;}
.wordmark-block{font-weight:900;letter-spacing:3px;font-size:15px;color:var(--nb-ink);display:block;}
.wordmark-block sup{font-size:9px;color:#9AA0A6;margin-left:3px;}
.navbar-nav .nav-link{color:var(--nb-ink-soft);font-weight:600;font-size:15px;padding:.4rem 0;}
.navbar-nav .nav-link:hover{color:var(--nb-red);}
.header-actions{flex-wrap:nowrap;}
.phone-link{display:flex;align-items:center;gap:8px;color:var(--nb-ink);font-weight:700;font-size:15px;white-space:nowrap;}
.phone-link:hover{color:var(--nb-ink);opacity:.75;}
.phone-icon{width:34px;height:34px;border-radius:50%;background:#F4F5F6;display:inline-flex;align-items:center;justify-content:center;color:var(--nb-red);font-size:13px;flex:none;}
.btn-quote{background:var(--nb-red);color:#fff;font-weight:700;font-size:15px;padding:11px 20px;border-radius:6px;box-shadow:0 6px 16px rgba(216,31,31,.22);white-space:nowrap;}
.btn-quote:hover{background:var(--nb-red-dark);color:#fff;}

/* ===== Shared bits ===== */
.eyebrow-pill{display:inline-flex;align-items:center;gap:8px;background:var(--nb-bg-amber-soft);color:var(--nb-amber-dark);font-weight:800;font-size:12px;letter-spacing:1.5px;padding:7px 13px;border-radius:30px;text-transform:uppercase;}
.eyebrow-label{color:var(--nb-red);font-weight:800;letter-spacing:1.5px;font-size:13px;text-transform:uppercase;}
.eyebrow-label-amber{color:var(--nb-amber-dark);}
.section-title{font-size:40px;font-weight:900;letter-spacing:-1px;margin:8px 0 0;}
.section-copy{color:var(--nb-body);font-size:17px;margin:10px 0 0;max-width:560px;}
.section-head{margin-bottom:30px;}
.text-accent-red{color:var(--nb-red);}

.btn-primary-red{background:var(--nb-red);color:#fff;font-weight:800;font-size:16px;padding:15px 26px;border-radius:7px;border:none;box-shadow:0 10px 24px rgba(216,31,31,.24);}
.btn-primary-red:hover{background:var(--nb-red-dark);color:#fff;}
.btn-outline-dark-custom{background:#fff;color:var(--nb-ink);font-weight:800;font-size:16px;padding:15px 26px;border-radius:7px;border:1.5px solid #DADDE0;}
.btn-outline-dark-custom:hover{background:#F8F9FA;color:var(--nb-ink);}
.btn-amber{background:var(--nb-amber);color:var(--nb-ink);font-weight:800;font-size:16px;padding:15px 26px;border-radius:7px;border:none;white-space:nowrap;}
.btn-amber:hover{background:#DE9900;color:var(--nb-ink);}
.btn-dark-custom{background:var(--nb-ink);color:#fff;font-weight:800;font-size:16px;padding:14px 24px;border-radius:7px;border:none;white-space:nowrap;}
.btn-dark-custom:hover{background:#000;color:#fff;}
/* Outline button for the dark CTA bands (the sales + rentals "Request a quote"
   buttons). Defined here so it exists on every page, not only the ones that
   load the rentals stylesheet - and repeated at higher specificity for the two
   bands so the near-invisible translucent border in rentals.css can't win on
   stylesheet order. */
.btn-outline-light-custom,
.sales-brands-band .btn-outline-light-custom,
.rentals-cta-band .btn-outline-light-custom{background:transparent;color:#fff;font-weight:800;font-size:16px;padding:15px 26px;border-radius:7px;border:2px solid #fff;white-space:nowrap;}
.btn-outline-light-custom:hover,
.btn-outline-light-custom:focus,
.sales-brands-band .btn-outline-light-custom:hover,
.rentals-cta-band .btn-outline-light-custom:hover{background:#fff;color:var(--nb-ink);border-color:#fff;}

/* ===== Hero ===== */
.hero-section{background:linear-gradient(180deg,#FBFBFC 0%,#fff 100%);border-bottom:1px solid var(--nb-line-soft);padding:72px 0 80px;}
.hero-title{font-size:62px;line-height:1.02;font-weight:900;letter-spacing:-1.5px;margin:22px 0 0;}
.hero-copy{font-size:21px;line-height:1.5;color:var(--nb-body);margin:20px 0 0;max-width:480px;font-weight:500;}
.hero-ctas{margin-top:32px;}
.brand-strip{margin-top:40px;}
.brand-strip-label{font-size:12px;font-weight:800;letter-spacing:1px;color:#9AA0A6;text-transform:uppercase;}
.brand-name{font-weight:800;font-size:17px;color:var(--nb-ink-soft);}

.hero-photo-wrap{position:relative;}
.hero-photo-accent{position:absolute;inset:-14px -14px 22px 22px;background:var(--nb-amber);border-radius:16px;}
.hero-photo{position:relative;border-radius:16px;overflow:hidden;height:440px;box-shadow:0 24px 60px rgba(20,23,26,.18);background:var(--nb-bg-card);}
.hero-photo-img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-badge{position:absolute;left:-22px;bottom:-22px;background:var(--nb-ink);color:#fff;padding:18px 22px;border-radius:12px;box-shadow:0 16px 36px rgba(0,0,0,.25);}
.hero-badge-num{font-size:30px;font-weight:900;color:var(--nb-amber);line-height:1;}
.hero-badge-label{font-size:16px;font-weight:900;color:#fff;letter-spacing:.3px;line-height:1.15;text-transform:uppercase;}

/* ===== Quick actions ===== */
.quick-actions-section{margin-top:-34px;}
.quick-action-card{text-decoration:none;background:#fff;border:1px solid var(--nb-line);border-radius:13px;padding:22px 24px;display:flex;align-items:center;gap:16px;box-shadow:0 8px 24px rgba(20,23,26,.06);height:100%;}
.quick-action-card:hover{box-shadow:0 12px 30px rgba(20,23,26,.1);}
.qa-icon{width:46px;height:46px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex:none;}
.qa-icon-red{background:var(--nb-bg-red-soft);color:var(--nb-red);}
.qa-icon-amber{background:var(--nb-bg-amber-soft);color:var(--nb-amber-dark);}
.qa-icon-green{background:var(--nb-bg-green-soft);color:var(--nb-green);}
.qa-title{display:block;font-weight:800;font-size:17px;color:var(--nb-ink);}
.qa-sub{display:block;color:var(--nb-muted);font-size:14px;margin-top:2px;}

/* ===== Equipment cards ===== */
.equipment-section{padding:56px 0 20px;margin-top:56px;}
.view-all-link{color:var(--nb-ink);font-weight:800;font-size:15px;border-bottom:2px solid var(--nb-amber);padding-bottom:2px;}
.view-all-link:hover{color:var(--nb-ink);}
.equip-card{border:1px solid var(--nb-line);border-radius:14px;overflow:hidden;background:#fff;height:100%;}
.equip-card-img{height:190px;background:var(--nb-bg-card);overflow:hidden;display:flex;align-items:center;justify-content:center;}
.equip-card-img img{width:100%;height:100%;object-fit:cover;display:block;}
.placeholder-img{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#B5BAC0;font-size:26px;}
.placeholder-img span{font-size:13px;font-weight:600;color:#9AA0A6;}
.placeholder-img-red{background:var(--nb-bg-red-soft);color:#E9A9A9;}
.placeholder-img-red span{color:#C77;}
.equip-card-body{padding:18px 20px;}
.equip-card-title{font-weight:800;font-size:18px;}
.equip-card-sub{color:var(--nb-muted);font-size:14px;margin-top:4px;}

/* ===== Used equipment strip ===== */
.used-strip-section{padding:36px 0 8px;}
.used-strip-card{background:var(--nb-ink);border-radius:18px;padding:40px 44px;display:flex;flex-wrap:wrap;gap:30px;align-items:center;justify-content:space-between;color:#fff;}
.used-strip-title{font-size:30px;font-weight:900;margin:10px 0 8px;letter-spacing:-.5px;}
.used-strip-copy{color:#B7BCC1;font-size:16px;margin:0;max-width:560px;}

/* ===== Rentals ===== */
.rentals-section{background:var(--nb-bg-soft);border-top:1px solid var(--nb-line-soft);margin-top:46px;padding:64px 0;}
.rate-card{background:#fff;border:1px solid var(--nb-line);border-radius:12px;padding:22px;height:100%;}
.rate-title{font-weight:800;font-size:18px;}
.rate-sub{color:var(--nb-muted);font-size:13px;margin-top:3px;}
.rate-price{margin-top:16px;font-size:30px;font-weight:900;}
.rate-price span{font-size:30px;font-weight:900;}
.rate-price{color:var(--nb-muted);font-weight:700;font-size:16px;}
.rate-price span{color:var(--nb-ink);}
.rate-chip-row{margin-top:16px;}
.rate-chip{background:#fff;border:1px solid var(--nb-line);border-radius:30px;padding:8px 15px;font-weight:600;font-size:14px;color:var(--nb-ink-soft);}
.rate-chip-link{color:var(--nb-red);font-weight:700;}
.rate-chip-link:hover{background:var(--nb-bg-red-soft);border-color:var(--nb-red);color:var(--nb-red);}

/* ===== Service ===== */
.service-section{background:#101316;color:#fff;padding:74px 0;}
.service-title{font-size:50px;font-weight:900;letter-spacing:-1.5px;line-height:1.03;margin:12px 0 0;}
.service-tagline{font-size:22px;font-weight:800;color:var(--nb-amber);margin:14px 0 0;}
.service-copy{font-size:17px;line-height:1.6;color:#C9CDD1;margin:18px 0 0;max-width:480px;}
.service-stat-card{background:#1B1F23;border-radius:13px;padding:24px;height:100%;}
.service-stat-card-red{background:var(--nb-red);}
.service-stat-num{font-size:34px;font-weight:900;color:#fff;}
.service-stat-label{color:#9AA0A6;font-weight:600;margin-top:4px;}
.service-stat-card-red .service-stat-label{color:rgba(255,255,255,.85);}

/* ===== About / contact ===== */
.about-section{padding:74px 0;}
.about-details{margin-top:28px;}
.detail-label{font-weight:800;font-size:13px;letter-spacing:1px;color:#9AA0A6;text-transform:uppercase;}
.detail-value{font-weight:800;font-size:19px;margin-top:4px;}
.detail-value-sm{font-weight:700;font-size:16px;margin-top:4px;color:var(--nb-ink-soft);}
.about-video{max-width:90%;}

.quote-card{background:var(--nb-bg-soft);border:1px solid var(--nb-line);border-radius:16px;padding:32px;}
.quote-card-title{font-weight:900;font-size:22px;}
.quote-card-sub{color:var(--nb-muted);font-size:15px;margin-top:4px;}
.quote-form{display:grid;gap:12px;margin-top:22px;}
.quote-form .form-control{border:1px solid #DADDE0;border-radius:8px;padding:13px 15px;font-size:15px;font-family:inherit;background:#fff;box-shadow:none;}
.quote-form .form-control:focus{border-color:var(--nb-red);box-shadow:0 0 0 3px rgba(216,31,31,.12);}
/* Result message shown under the Send request button (js/script.js). */
.quote-form .form-status{display:none;font-weight:700;font-size:15px;line-height:1.45;border-radius:8px;padding:12px 14px;}
.quote-form .form-status-ok{background:var(--nb-bg-green-soft);color:var(--nb-green);border:1px solid #BFE0CD;}
.quote-form .form-status-error{background:var(--nb-bg-red-soft);color:var(--nb-red-dark);border:1px solid #F3C6C6;}

/* ===== Footer ===== */
.site-footer{background:#0C0F12;color:#fff;}
.footer-top{padding:54px 0 30px;}
/* NOTE: the .footer-grid column layout lives in a <style> block in theme.html,
   not here - see the comment there. */
.footer-logo-wrap{background:#fff;border-radius:12px;padding:14px;display:inline-block;}
.footer-logo-wrap img{height:88px;display:block;}
.footer-tagline{color:#9AA0A6;font-size:15px;line-height:1.6;margin:18px 0 0;max-width:300px;}
/* Address / phone / email / hours block under the footer logo. The footer is
   on every page, so this puts the shop's details at the bottom of the home
   page, the service page and everything else. */
.footer-contact{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-direction:column;gap:12px;max-width:320px;}
.footer-contact li{display:flex;align-items:flex-start;gap:11px;color:#9AA0A6;font-size:15px;line-height:1.5;}
.footer-contact i{color:var(--nb-amber);font-size:14px;width:16px;flex:none;margin-top:4px;text-align:center;}
.footer-contact a{color:#9AA0A6;}
.footer-contact a:hover{color:#fff;}
.footer-heading{font-weight:800;font-size:14px;letter-spacing:1px;text-transform:uppercase;color:#fff;margin-bottom:14px;}
.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px;}
.footer-links a{color:#9AA0A6;font-size:15px;}
.footer-links a:hover{color:#fff;}
.footer-links-static li{color:#9AA0A6;font-size:15px;}
.footer-bottom{border-top:1px solid #1B1F23;}
.footer-bottom .container{padding:18px 0;color:#6B7177;font-size:13px;}

@media (max-width: 991.98px){
  .hero-title{font-size:44px;}
  .service-title{font-size:38px;}
  .header-actions{margin-top:8px;}
}

/* =======================================================================
   e107 THEME INTEGRATION
   Styles for content produced by e107 shortcodes ({NAVIGATION}, {SIGNIN},
   tablerender cards, menus, breadcrumbs) so admin-managed content matches
   the Nussbaum brand. Loaded after the marketing component styles above.
   ======================================================================= */

/* Center the {NAVIGATION} menu and space the items (was mx-auto/gap utilities) */
.site-header .navbar-nav{margin:0 auto;gap:.5rem;}
@media (min-width: 992px){ .site-header .navbar-nav{gap:1.75rem;align-items:center;} }
@media (max-width: 991.98px){ .site-header .navbar-nav{padding:12px 0;gap:.25rem;} }

/* Active state for the current page in {NAVIGATION: type=main} */
.navbar-nav .nav-link.active,
.navbar-nav .active > .nav-link{color:var(--nb-red);font-weight:700;}

/* e107 sign-in / user dropdown in the header actions area */
.header-actions .dropdown-menu{border:1px solid var(--nb-line);border-radius:10px;box-shadow:0 12px 28px rgba(20,23,26,.12);}
.header-actions .nav-link{color:var(--nb-ink-soft);font-weight:600;}

/* Nav dropdowns (child links from the link manager) */
.navbar-nav .dropdown-menu{border:1px solid var(--nb-line);border-radius:10px;box-shadow:0 12px 28px rgba(20,23,26,.12);}
.navbar-nav .dropdown-item{font-weight:600;color:var(--nb-ink-soft);}
.navbar-nav .dropdown-item:hover,
.navbar-nav .dropdown-item:focus{background:var(--nb-bg-red-soft);color:var(--nb-red);}

/* Interior (full/content) layout page-heading band */
.page-head{background:var(--nb-bg-soft);border-bottom:1px solid var(--nb-line);padding:46px 0 34px;margin-bottom:34px;}
.page-head .breadcrumb{margin:0;font-size:14px;}
.page-head h1{font-weight:900;font-size:40px;letter-spacing:-.5px;margin:6px 0 0;}
.page-body{padding-bottom:60px;}

/* Hand-built pages (service.php, rentals.php, etc.) render top-level <section>
   blocks meant to span the full viewport width for their background, but
   full_layout.html nests {---} inside .page-body > .container (max-width:1240px).
   Break those sections out of that container instead of shrinking them. */
.page-body > .container > section{
  width:100vw;
  max-width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}

.page-head:has(+ .page-body > .container > section){
  display:none;
}
.page-body:has(> .container > section){
  padding-bottom:0;
}

/* tablerender card look (theme.php 'cardmenu'/'listgroup'/'menu' styles) */
.site-content .card{border:1px solid var(--nb-line);border-radius:14px;overflow:hidden;}
.site-content .card-header{background:#fff;border-bottom:1px solid var(--nb-line-soft);font-weight:800;}

/* Sidebar menus */
.sidebar .list-group-item{border-color:var(--nb-line);}
.sidebar .list-group-item.active{background:var(--nb-red);border-color:var(--nb-red);}

/* Footer columns fed by {MENUAREA} / {NAVIGATION: type=footer} */
.site-footer .nav .nav-link,
.site-footer .footer-nav a{color:#9AA0A6;padding:.15rem 0;font-size:15px;}
.site-footer .nav .nav-link:hover,
.site-footer .footer-nav a:hover{color:#fff;}
.site-footer .menu h5,
.site-footer .footer-heading{font-weight:800;font-size:14px;letter-spacing:1px;text-transform:uppercase;color:#fff;margin-bottom:14px;}

/* Splash / login card */
.card-signin{border:1px solid var(--nb-line);border-radius:14px;box-shadow:0 18px 40px rgba(20,23,26,.10);}

/* Bootstrap primary -> brand red for admin-managed buttons */
.site-content .btn-primary{background:var(--nb-red);border-color:var(--nb-red);}
.site-content .btn-primary:hover{background:var(--nb-red-dark);border-color:var(--nb-red-dark);}
