  :root{
    --black:#161412;
    --charcoal:#2a2724;
    --red:#c8202c;
    --red-dark:#9c1620;
    --steel:#52514d;
    --cream:#f4efe7;
    --paper:#fffdf9;
    --caution:#e8a93b;
    --line: rgba(22,20,18,0.12);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  body{
    font-family:'Inter',sans-serif;
    color:var(--black);
    background:var(--cream);
    line-height:1.5;
  }
  h1,h2,h3{font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:0.02em;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}

  /* ===== Top utility bar ===== */
  .topbar{
    background:var(--black);
    color:var(--cream);
    font-size:0.8rem;
    letter-spacing:0.04em;
    padding:6px 24px;
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:6px;
  }
  .topbar a{color:var(--caution);}
  .topbar .phone{font-weight:600;}

  /* ===== Header / nav ===== */
  header{
    background:var(--charcoal);
    border-bottom:4px solid var(--red);
    position:sticky; top:0; z-index:50;
  }
  .nav-wrap{
    max-width:1200px;margin:0 auto;
    display:flex;align-items:center;justify-content:space-between;
    padding:8px 24px;
  }
  .logo{display:flex;align-items:center; background:var(--cream); padding:9px 16px; border-radius:6px;}
  .logo img{height:68px;width:auto;display:block;}
  nav ul{list-style:none;display:flex;gap:30px;}
  nav a{
    color:var(--cream);font-family:'Oswald',sans-serif;
    font-size:0.92rem; letter-spacing:0.05em;
    padding:6px 2px; border-bottom:2px solid transparent;
    transition:border-color .2s, color .2s;
  }
  nav a:hover, nav a:focus-visible{border-color:var(--red); color:var(--caution);}
  .menu-toggle{display:none;background:none;border:none;color:var(--cream);font-size:1.6rem;cursor:pointer;}

  /* ===== Hero ===== */
  .hero{
    position:relative;
    min-height:520px;
    background:
      linear-gradient(100deg, rgba(22,20,18,0.92) 0%, rgba(22,20,18,0.55) 48%, rgba(22,20,18,0.15) 78%),
      repeating-linear-gradient(135deg, #2c2a27 0 28px, #232120 28px 56px);
    display:flex;align-items:center;
    overflow:hidden;
  }
  .hero::after{
    content:"";
    position:absolute; right:-60px; bottom:-40px;
    width:480px;height:480px;
    background:
      radial-gradient(circle at 30% 30%, rgba(200,32,44,0.18), transparent 60%);
    pointer-events:none;
  }
  .hero-inner{
    max-width:1200px;margin:0 auto;width:100%;
    padding:60px 24px;
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:30px; align-items:center;
  }
  .hero h1{
    color:var(--paper); font-size:clamp(2rem, 4vw, 3.2rem);
    line-height:1.08; margin-bottom:18px;
  }
  .hero h1 span{color:var(--caution);}
  .hero p{
    color:#d8d3c8; font-size:1.05rem; max-width:500px; margin-bottom:30px;
  }
  .btn-row{display:flex;gap:16px;flex-wrap:wrap;}
  .btn{
    font-family:'Oswald',sans-serif; letter-spacing:0.04em; font-size:0.95rem;
    padding:14px 28px; border-radius:3px; display:inline-block; cursor:pointer; border:2px solid transparent;
    transition:transform .15s ease, background .2s ease;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-primary{background:var(--red); color:var(--paper);}
  .btn-primary:hover{background:var(--red-dark);}
  .btn-outline{border-color:var(--cream); color:var(--cream);}
  .btn-outline:hover{background:var(--cream); color:var(--black);}
  .btn-outline-red{border-color:var(--red); color:var(--red);}
  .btn-outline-red:hover{background:var(--red); color:var(--paper);}

  .hero-art{
    display:flex; flex-direction:column; gap:14px;
  }
  .hero-photo{
    aspect-ratio:4/3; border-radius:6px;
    background:linear-gradient(160deg, #3a3733, #1d1b19);
    border:1px solid rgba(255,255,255,0.08);
    position:relative; overflow:hidden;
    display:flex;align-items:flex-end;justify-content:center;
  }
  .hero-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .hero-photo .badge{
    position:absolute; top:12px; left:12px;
    background:var(--red); color:var(--paper);
    font-family:'Oswald',sans-serif; font-size:0.68rem; letter-spacing:0.08em;
    padding:5px 10px; border-radius:2px; z-index:2;
  }

  /* ===== Price strip ===== */
  .price-strip{
    background:var(--red); color:var(--paper);
    text-align:center; padding:16px 20px;
    font-family:'Oswald',sans-serif; font-size:1.05rem; letter-spacing:0.02em;
    display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px 24px;
  }
  .price-strip b{font-family:'Archivo Black',sans-serif; font-size:1.2rem;}
  .price-strip .sep{opacity:0.6;}

  /* ===== Feature icons row ===== */
  .features{
    background:var(--paper);
    border-bottom:1px solid var(--line);
    padding:26px 24px;
  }
  .features-inner{
    max-width:1150px;margin:0 auto;
    display:grid; grid-template-columns:repeat(5,1fr); gap:20px; text-align:center;
  }
  .feature-item{display:flex;flex-direction:column;align-items:center;gap:8px;}
  .feature-icon{
    width:42px;height:42px;border-radius:50%;
    background:var(--cream); border:2px solid var(--red);
    display:flex;align-items:center;justify-content:center;
    color:var(--red); font-size:1.2rem;
  }
  .feature-item span{font-size:0.85rem; font-weight:600; color:var(--steel);}

  /* ===== Section shell ===== */
  section{padding:70px 24px;}
  .section-inner{max-width:1150px;margin:0 auto;}
  .section-head{
    text-align:center; margin-bottom:44px;
    display:flex; align-items:center; gap:18px; justify-content:center;
  }
  .section-head .line{height:1px;background:var(--line); flex:1; max-width:120px;}
  .section-head h2{font-size:1.6rem; color:var(--black);}
  .section-eyebrow{
    display:block;text-align:center;color:var(--red);
    font-family:'Oswald',sans-serif;font-size:0.78rem;letter-spacing:0.18em;
    margin-bottom:8px;
  }

  /* ===== Services ===== */
  .services-bg{background:var(--paper);}
  .subsection{margin-bottom:56px;}
  .subsection:last-child{margin-bottom:0;}
  .subsection-title{
    font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:0.04em;
    font-size:1.05rem; color:var(--red); margin-bottom:18px;
    display:flex; align-items:center; gap:12px;
  }
  .subsection-title::after{content:"";flex:1;height:1px;background:var(--line);}
  .service-top{
    display:grid; grid-template-columns:1.1fr 0.8fr 0.8fr; gap:24px; margin-bottom:24px;
  }
  .photo-block{
    border-radius:6px; overflow:hidden; min-height:260px;
    background:linear-gradient(150deg,#3a3733,#1d1b19);
    position:relative;
  }
  .photo-block img, .use-photo img, .promo-photo img, .owner-trailer img, .hero-photo img{
    width:100%; height:100%; object-fit:cover; display:block;
  }
  .spec-card, .great-card{
    background:var(--cream); border-radius:6px; padding:24px;
    border:1px solid var(--line);
  }
  .spec-card h3, .great-card h3{
    font-size:1.05rem; margin-bottom:14px; color:var(--black);
  }
  .spec-card ul, .great-card ul{list-style:none;}
  .spec-card li, .great-card li{
    position:relative; padding-left:18px; margin-bottom:10px; font-size:0.95rem; color:var(--steel);
  }
  .spec-card li::before, .great-card li::before{
    content:""; position:absolute; left:0; top:8px; width:7px;height:7px;border-radius:50%;
    background:var(--red);
  }
  .tag-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:18px;}
  .tag-chip{
    background:var(--charcoal); color:var(--cream); font-size:0.78rem; font-weight:600;
    padding:7px 13px; border-radius:20px; letter-spacing:0.02em;
  }
  .use-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:36px;
  }
  .use-card{border-radius:6px; overflow:hidden; border:1px solid var(--line); background:var(--paper);}
  .use-photo{
    height:150px;
    background:linear-gradient(150deg,#3a3733,#1d1b19);
  }
  .use-label{
    padding:12px; text-align:center; font-family:'Oswald',sans-serif;
    font-weight:600; letter-spacing:0.04em; background:var(--cream);
  }
  .center-btn{text-align:center;}
  .how-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin:28px 0 10px;
  }
  .how-card{
    background:var(--paper); border:1px solid var(--line); border-radius:8px;
    padding:28px 22px; text-align:center;
  }
  .how-num{
    width:38px; height:38px; border-radius:50%; background:var(--red); color:var(--paper);
    display:flex; align-items:center; justify-content:center;
    font-family:'Archivo Black',sans-serif; font-size:1.05rem; margin:0 auto 14px;
  }
  .how-card h3{font-family:'Oswald',sans-serif; letter-spacing:0.02em; font-size:1.05rem; margin-bottom:8px;}
  .how-card p{color:var(--steel); font-size:0.92rem;}

  .equip-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
  .equip-card{
    background:var(--paper); border:1px solid var(--line); border-radius:8px;
    overflow:hidden; display:flex; flex-direction:column;
  }
  .equip-photo{
    position:relative; width:100%; padding-top:75%; /* 4:3 box, flexbox-proof */
    background:var(--paper); border-bottom:1px solid var(--line); flex-shrink:0;
  }
  .equip-photo-inner{
    position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center; padding:26px;
  }
  .equip-photo img{max-width:100%; max-height:100%; object-fit:contain; display:block;}
  .equip-body{padding:24px; display:flex; flex-direction:column; flex:1;}
  .equip-name{font-family:'Oswald',sans-serif; letter-spacing:0.02em; font-size:1.2rem; text-transform:uppercase;}
  .equip-cat{color:var(--steel); font-size:0.85rem; margin-bottom:14px;}
  .equip-specs{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px;}
  .equip-price{
    font-family:'Archivo Black',sans-serif; color:var(--red); font-size:1.5rem;
    margin-top:auto; margin-bottom:16px;
  }
  .equip-price small{font-family:'Inter',sans-serif; font-size:0.85rem; color:var(--steel); font-weight:600;}
  .equip-body .btn{text-align:center;}

  /* ===== Pricing & booking ===== */
  .pb-grid{display:grid; grid-template-columns:1.5fr 1fr; gap:30px;}
  .pb-card{background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:34px;}
  .pricing-inner{display:grid; grid-template-columns:1fr 1fr; gap:30px;}
  .pricing-inner.single{grid-template-columns:1fr;}
  .price-box{
    background:var(--cream); border-radius:6px; padding:22px; text-align:center;
  }
  .price-box .label{font-size:0.85rem; color:var(--steel); margin-bottom:6px;}
  .price-box .amt{font-family:'Archivo Black',sans-serif; color:var(--red); font-size:1.9rem;}
  .price-box .amt small{font-family:'Inter',sans-serif; font-size:0.9rem; color:var(--steel); font-weight:600;}
  .price-box .note{font-size:0.8rem; color:var(--steel); margin-top:6px;}
  .addons{list-style:none; margin-top:18px;}
  .addons li{
    position:relative; padding-left:18px; margin-bottom:10px; font-size:0.93rem; color:var(--steel);
  }
  .addons li::before{
    content:""; position:absolute; left:0; top:8px; width:7px;height:7px;border-radius:50%;
    background:var(--red);
  }
  .deposit-bar{
    margin-top:24px; background:var(--black); color:var(--cream);
    text-align:center; padding:14px; border-radius:4px;
    font-family:'Oswald',sans-serif; letter-spacing:0.03em;
  }
  .deposit-bar b{color:var(--caution);}
  .pb-divider{border-top:1px solid var(--line); margin:26px 0;}
  .pb-sub{font-size:0.95rem; margin-bottom:14px; color:var(--black); letter-spacing:0.03em;}

  .promo-card{
    border-radius:8px; overflow:hidden; border:1px solid var(--line);
    display:flex; flex-direction:column;
  }
  .promo-photo{
    flex:1; min-height:180px;
    background:linear-gradient(150deg,#3a3733,#1d1b19);
    display:flex; align-items:center; justify-content:center;
  }
  .promo-photo img{width:100%; height:100%; object-fit:contain;}
  .promo-text{
    background:var(--red); color:var(--paper); text-align:center; padding:18px;
    font-family:'Oswald',sans-serif;
  }
  .promo-text .phone{font-size:1.3rem; font-weight:600; letter-spacing:0.03em;}

  /* ===== Book / about / contact ===== */
  .about-bg{background:var(--paper);}
  .book-grid{display:grid; grid-template-columns:1.4fr 1fr; gap:30px;}
  .book-card{
    background:var(--charcoal); color:var(--cream); border-radius:8px; overflow:hidden;
  }
  .book-card-head{
    background:var(--black); padding:16px 26px;
    display:flex; align-items:center; gap:12px;
    border-bottom:3px solid var(--red);
  }
  .book-card-head .main{font-family:'Archivo Black',sans-serif;font-size:1rem;}
  .book-card-body{padding:28px 26px;}
  .book-card-body h3{color:var(--paper); font-size:1.3rem; margin-bottom:14px;}
  .book-card-body p{color:#cfcac0; font-size:0.95rem; max-width:480px; margin-bottom:20px;}
  .trust-row{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:22px;}
  .trust-item{
    display:flex; align-items:center; gap:10px;
    background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12);
    border-radius:6px; padding:10px 14px; font-size:0.85rem; font-weight:600; color:var(--cream);
  }
  .trust-item .dot{width:8px;height:8px;border-radius:50%;background:var(--red);flex-shrink:0;}
  .map-link{
    margin-top:6px; border-radius:6px; overflow:hidden; min-height:120px;
    background:repeating-linear-gradient(45deg, #35322e 0 10px, #2c2a27 10px 20px);
    display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px;
    padding:20px; text-align:center; border:1px dashed rgba(255,255,255,0.18);
  }
  .map-link span{color:#cfcac0; font-size:0.85rem;}
  .map-link .btn{padding:10px 20px; font-size:0.85rem;}
  .serving-line{
    display:flex; align-items:center; gap:10px; margin-top:14px;
    font-family:'Oswald',sans-serif; font-size:0.95rem;
  }

  .contact-card{background:var(--cream); border:1px solid var(--line); border-radius:8px; padding:28px;}
  .contact-item{display:flex; gap:14px; align-items:flex-start; padding:14px 0; border-bottom:1px solid var(--line);}
  .contact-item:last-of-type{border-bottom:none;}
  .contact-icon{
    width:38px;height:38px;border-radius:50%; flex-shrink:0;
    background:var(--paper); border:2px solid var(--red); color:var(--red);
    display:flex; align-items:center; justify-content:center; font-size:1rem;
  }
  .contact-item h4{font-size:0.95rem; margin-bottom:3px;}
  .contact-item p{font-size:0.9rem; color:var(--steel);}
  .mini-form{margin-top:18px; display:flex; flex-direction:column; gap:10px;}
  .mini-form input, .mini-form textarea{
    border:2px solid var(--black); border-radius:3px; padding:11px 12px;
    font-family:'Inter',sans-serif; font-size:0.9rem; background:var(--paper);
  }
  .mini-form button{
    background:var(--black); color:var(--cream); border:none; padding:12px;
    font-family:'Oswald',sans-serif; letter-spacing:0.05em; border-radius:3px; cursor:pointer;
  }
  .mini-form button:hover{background:var(--red);}
  .form-note{font-size:0.78rem; color:var(--steel); margin-top:6px;}

  /* ===== Footer ===== */
  footer{
    background:var(--black); color:#a9a59c; text-align:center; padding:26px 20px; font-size:0.85rem;
  }
  footer b{color:var(--cream);}

  /* ===== Responsive ===== */
  @media (max-width: 920px){
    .hero-inner{grid-template-columns:1fr;}
    .hero-art{order:-1; flex-direction:row; max-height:200px;}
    .hero-photo{aspect-ratio:1/1;}
    .how-grid{grid-template-columns:1fr;}
    .features-inner{grid-template-columns:repeat(2,1fr);}
    .service-top{grid-template-columns:1fr;}
    .use-grid{grid-template-columns:1fr;}
    .equip-grid{grid-template-columns:1fr;}
    .pb-grid{grid-template-columns:1fr;}
    .pricing-inner{grid-template-columns:1fr;}
    .book-grid{grid-template-columns:1fr;}
    nav ul{
      position:absolute; top:100%; left:0; right:0;
      background:var(--charcoal); flex-direction:column; gap:0;
      display:none; border-top:1px solid rgba(255,255,255,0.1);
    }
    nav ul.open{display:flex;}
    nav li{border-bottom:1px solid rgba(255,255,255,0.08);}
    nav a{display:block; padding:14px 24px;}
    .menu-toggle{display:block;}
  }
  @media (max-width:560px){
    .topbar{font-size:0.72rem;}
  }
  .sticky-call{display:none;}
  @media (max-width:680px){
    .sticky-call{
      display:block; position:fixed; left:0; right:0; bottom:0; z-index:70;
      background:var(--red); box-shadow:0 -2px 10px rgba(0,0,0,0.25);
    }
    .sticky-call a{
      display:flex; align-items:center; justify-content:center; gap:8px;
      color:var(--paper); font-family:'Oswald',sans-serif; letter-spacing:0.04em;
      font-weight:600; font-size:1rem; padding:14px; text-decoration:none;
    }
    body{padding-bottom:52px;}
    .cookie-banner{bottom:52px;}
  }
  @media (prefers-reduced-motion: reduce){
    .btn{transition:none;}
  }

/* ===== Accessibility: skip link ===== */
.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--red); color:var(--paper); padding:10px 18px;
  z-index:200; font-family:'Oswald',sans-serif; letter-spacing:0.04em;
}
.skip-link:focus{left:12px; top:12px;}

/* ===== Interior page hero ===== */
.page-hero{
  background:linear-gradient(100deg, rgba(22,20,18,0.94), rgba(22,20,18,0.75)), repeating-linear-gradient(135deg, #2c2a27 0 28px, #232120 28px 56px);
  padding:54px 24px;
  text-align:center;
}
.page-hero h1{color:var(--paper); font-size:clamp(1.8rem,3.4vw,2.6rem); margin-bottom:10px;}
.page-hero p{color:#d8d3c8; max-width:640px; margin:0 auto; font-size:1rem;}
.breadcrumb{color:var(--caution); font-family:'Oswald',sans-serif; font-size:0.78rem; letter-spacing:0.1em; margin-bottom:14px;}
.breadcrumb a{color:var(--caution); border-bottom:1px solid rgba(232,169,59,0.4);}

/* ===== Prose (legal / long-form pages) ===== */
.prose{max-width:840px; margin:0 auto; background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:40px;}
.prose h2{font-size:1.2rem; margin:28px 0 12px; color:var(--black);}
.prose h2:first-child{margin-top:0;}
.prose h3{font-size:1rem; margin:20px 0 8px; color:var(--black);}
.prose p{margin-bottom:14px; color:var(--steel); font-size:0.95rem;}
.prose ul{margin:0 0 14px 20px; color:var(--steel); font-size:0.95rem;}
.prose li{margin-bottom:6px;}
.prose .updated{font-size:0.82rem; color:var(--steel); margin-bottom:26px; font-style:italic;}
.prose a{color:var(--red); text-decoration:underline;}

/* ===== Pricing table ===== */
.price-table{width:100%; border-collapse:collapse; background:var(--paper); border:1px solid var(--line); border-radius:8px; overflow:hidden;}
.price-table th, .price-table td{padding:14px 18px; text-align:left; border-bottom:1px solid var(--line); font-size:0.95rem;}
.price-table th{background:var(--charcoal); color:var(--cream); font-family:'Oswald',sans-serif; letter-spacing:0.04em; font-size:0.82rem;}
.price-table td.amt{font-family:'Archivo Black',sans-serif; color:var(--red);}
.price-table tr:last-child td{border-bottom:none;}
.price-table-wrap{overflow-x:auto; margin-bottom:20px;}
.price-note{background:var(--cream); border:1px solid var(--line); border-radius:6px; padding:16px 20px; font-size:0.9rem; color:var(--steel); margin-bottom:28px;}

/* ===== FAQ accordion (native details/summary) ===== */
.faq-list{max-width:820px; margin:0 auto;}
.faq-item{background:var(--paper); border:1px solid var(--line); border-radius:6px; margin-bottom:12px; overflow:hidden;}
.faq-item summary{
  padding:18px 22px; cursor:pointer; font-family:'Oswald',sans-serif; font-weight:600;
  letter-spacing:0.02em; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:12px;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+"; font-size:1.3rem; color:var(--red); flex-shrink:0;}
.faq-item[open] summary::after{content:"\2212";}
.faq-item p{padding:0 22px 20px; color:var(--steel); font-size:0.93rem;}

/* ===== Service area list ===== */
.area-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:36px;}
.area-chip{
  background:var(--paper); border:1px solid var(--line); border-radius:6px;
  padding:14px 16px; font-family:'Oswald',sans-serif; letter-spacing:0.02em; font-size:0.92rem;
  display:flex; align-items:center; gap:10px;
}
.area-chip .dot{width:8px;height:8px;border-radius:50%;background:var(--red); flex-shrink:0;}

/* ===== Reviews ===== */
.review-card{background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:26px; margin-bottom:16px;}
.review-stars{color:var(--caution); font-size:1.1rem; margin-bottom:8px;}
.review-placeholder{
  background:var(--cream); border:1px dashed var(--steel); border-radius:8px; padding:34px; text-align:center; color:var(--steel);
}
.review-placeholder .btn{margin-top:16px;}

/* ===== 404 ===== */
.error-wrap{min-height:50vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:80px 24px;}
.error-wrap .code{font-family:'Archivo Black',sans-serif; font-size:5rem; color:var(--red); line-height:1;}
.error-wrap h1{margin:10px 0 14px;}
.error-wrap p{color:var(--steel); max-width:420px; margin-bottom:26px;}

/* ===== Cookie consent banner ===== */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:150;
  background:var(--black); color:var(--cream); padding:16px 24px;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:16px;
  font-size:0.85rem; border-top:3px solid var(--red);
}
.cookie-banner a{color:var(--caution); text-decoration:underline;}
.cookie-banner .btn{padding:9px 18px; font-size:0.82rem;}
.cookie-banner[hidden]{display:none;}

/* ===== Simple content section header (reused across interior pages) ===== */
.intro-copy{max-width:760px; margin:0 auto 40px; text-align:center; color:var(--steel);}

@media (max-width:920px){
  .area-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
  .area-grid{grid-template-columns:1fr;}
  .prose{padding:26px 20px;}
}
