
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
  :root{
    --sand:#F0EBE1;--dune:#D9D0C0;--slate:#2C3A3A;--ocean:#1A2E35;
    --copper:#B87333;--white:#FDFCFA;--mid:#6B7B78;
    --display:'Cormorant Garamond',serif;--body:'Inter',sans-serif;
  }
  html{scroll-behavior:smooth;}
  body{font-family:var(--body);background:var(--white);color:var(--slate);font-size:16px;line-height:1.6;overflow-x:hidden;}

  /* NAV */
  nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0px 48px;background:rgba(253,252,250,0.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--dune);}
  .nav-logo{height:160px;width:auto;}
  .nav-links{display:flex;gap:36px;list-style:none;align-items:center;}
  .nav-links a{font-size:13px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--slate);text-decoration:none;transition:color 0.2s;}
  .nav-links a:hover{color:var(--copper);}
  .nav-cta{background:var(--ocean);color:var(--white)!important;padding:10px 24px;border-radius:2px;}
  .nav-cta:hover{background:var(--copper)!important;}
  .nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;z-index:101;}
  .nav-toggle span{display:block;width:24px;height:2px;background:var(--slate);}

  /* HERO */
  .hero{position:relative;height:100vh;min-height:640px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;}
  .hero-bg{position:absolute;inset:0;background:url('assets/hero-bg.jpg') center/cover no-repeat;transition:transform 10s ease;}
  .hero:hover .hero-bg{transform:scale(1.03);}
  .hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(26,46,53,0.55) 0%,rgba(26,46,53,0.05) 45%,rgba(26,46,53,0.82) 100%);}
  .hero-logo-top{position:relative;z-index:2;display:flex;justify-content:center;padding-top:100px;}
  .hero-logo-top img{height:clamp(160px,20vw,260px);width:auto;}
  .hero-content{position:relative;z-index:2;padding:0 64px 72px;max-width:800px;}
  .hero-eyebrow{font-size:11px;font-weight:500;letter-spacing:0.22em;text-transform:uppercase;color:var(--dune);margin-bottom:20px;display:flex;align-items:center;gap:16px;}
  .hero-eyebrow::before{content:'';display:block;width:40px;height:1px;background:var(--copper);}
  .hero h1{font-family:var(--display);font-size:clamp(52px,7vw,100px);font-weight:300;line-height:1.05;color:var(--white);margin-bottom:24px;letter-spacing:-0.01em;}
  .hero h1 em{font-style:italic;color:var(--dune);}
  .hero-sub{font-size:15px;font-weight:300;color:rgba(253,252,250,0.82);max-width:480px;margin-bottom:40px;line-height:1.7;}
  .hero-actions{display:flex;gap:16px;flex-wrap:wrap;}
  .btn-primary{display:inline-block;background:var(--copper);color:var(--white);padding:14px 32px;font-size:13px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;text-decoration:none;border-radius:2px;transition:background 0.2s;}
  .btn-primary:hover{background:#9d6328;}
  .btn-outline{display:inline-block;border:1px solid rgba(253,252,250,0.5);color:var(--white);padding:14px 32px;font-size:13px;font-weight:400;letter-spacing:0.1em;text-transform:uppercase;text-decoration:none;border-radius:2px;transition:all 0.2s;}
  .btn-outline:hover{border-color:var(--white);background:rgba(253,252,250,0.1);}

  /* TRUST */
  .trust{background:var(--ocean);padding:20px 64px;display:flex;align-items:center;justify-content:center;gap:48px;flex-wrap:wrap;}
  .trust-item{display:flex;align-items:center;gap:10px;color:var(--dune);font-size:12px;font-weight:400;letter-spacing:0.12em;text-transform:uppercase;}
  .trust-dot{width:4px;height:4px;border-radius:50%;background:var(--copper);flex-shrink:0;}

  /* INTRO — sand bg → BLACK stamp */
  .intro{display:grid;grid-template-columns:1fr 1fr;min-height:560px;}
  .intro-text{background:var(--sand);padding:96px 72px 56px;display:flex;flex-direction:column;justify-content:center;}
  .section-label{font-size:11px;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;color:var(--copper);margin-bottom:20px;}
  .intro-text h2{font-family:var(--display);font-size:clamp(36px,3.5vw,54px);font-weight:300;line-height:1.15;color:var(--ocean);margin-bottom:28px;}
  .intro-text p{font-size:15px;font-weight:300;color:var(--mid);line-height:1.8;max-width:420px;margin-bottom:16px;}
  .rec-badge{display:inline-flex;align-items:center;margin-top:24px;padding:10px 18px;border:1px solid var(--dune);border-radius:2px;font-size:12px;letter-spacing:0.08em;color:var(--mid);text-transform:uppercase;}
  .intro-image{background:url('assets/about.jpg') center/cover no-repeat;min-height:400px;}

  /* SERVICES — white bg → BLACK stamp */
  .services{padding:100px 64px 72px;background:var(--white);}
  .services-header{text-align:center;margin-bottom:64px;}
  .services-header h2{font-family:var(--display);font-size:clamp(36px,4vw,60px);font-weight:300;color:var(--ocean);margin-bottom:16px;}
  .services-header p{font-size:15px;color:var(--mid);font-weight:300;max-width:480px;margin:0 auto;}
  .services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--dune);border:2px solid var(--dune);}
  .service-card{background:var(--white);overflow:hidden;}
  .service-img{height:260px;background-size:cover;background-position:center;transition:transform 0.5s ease;}
  .service-card:hover .service-img{transform:scale(1.04);}
  .service-body{padding:28px 32px 36px;}
  .service-num{font-size:11px;letter-spacing:0.15em;color:var(--copper);font-weight:500;margin-bottom:10px;}
  .service-body h3{font-family:var(--display);font-size:26px;font-weight:400;color:var(--ocean);margin-bottom:10px;line-height:1.2;}
  .service-body p{font-size:14px;font-weight:300;color:var(--mid);line-height:1.7;}

  /* SOLAR — ocean bg → WHITE stamp */
  .solar-check{display:grid;grid-template-columns:1fr 1fr;min-height:580px;}
  .solar-img{background:url('assets/solar.jpg') center/cover no-repeat;min-height:400px;}
  .solar-text{background:var(--ocean);padding:96px 72px 60px;display:flex;flex-direction:column;justify-content:center;}
  .solar-text .section-label{color:var(--copper);}
  .solar-text h1,.solar-text h2{font-family:var(--display);font-size:clamp(34px,3.5vw,52px);font-weight:300;color:var(--white);margin-bottom:24px;line-height:1.15;}
  .solar-text p{font-size:15px;font-weight:300;color:var(--dune);line-height:1.8;margin-bottom:14px;max-width:420px;}
  .solar-includes{margin-top:28px;display:flex;flex-direction:column;gap:10px;}
  .solar-item{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:300;color:var(--dune);}
  .solar-item::before{content:'';width:20px;height:1px;background:var(--copper);flex-shrink:0;}
  .price-tag{display:inline-block;margin-top:36px;padding:14px 28px;border:1px solid rgba(217,208,192,0.3);color:var(--white);font-size:13px;letter-spacing:0.08em;}
  .price-tag strong{font-family:var(--display);font-size:28px;font-weight:300;margin-right:8px;}

  /* PORTFOLIO — sand bg → BLACK stamp */
  .portfolio{padding:100px 64px 72px;background:var(--sand);}
  .portfolio-header{margin-bottom:48px;}
  .portfolio-header h2{font-family:var(--display);font-size:clamp(36px,4vw,56px);font-weight:300;color:var(--ocean);}
  .portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
  .port-item{overflow:hidden;border-radius:2px;}
  .port-item.wide{grid-column:span 2;}
  .port-img{width:100%;height:300px;object-fit:cover;display:block;transition:transform 0.5s ease;}
  .port-item.wide .port-img{height:380px;}
  .port-item:hover .port-img{transform:scale(1.03);}

  /* TESTIMONIALS — sand bg → BLACK stamp */
  .testimonials{padding:100px 64px 72px;background:var(--sand);}
  .testimonials-header{text-align:center;margin-bottom:56px;}
  .testimonials-header h2{font-family:var(--display);font-size:clamp(36px,4vw,60px);font-weight:300;color:var(--ocean);margin-bottom:12px;}
  .testimonials-header p{font-size:15px;color:var(--mid);font-weight:300;}
  .testimonials-header a{color:var(--copper);text-decoration:underline;}
  .testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .testimonial-card{background:var(--white);padding:32px 28px;border-radius:2px;}
  .testimonial-stars{color:var(--copper);font-size:13px;letter-spacing:2px;margin-bottom:16px;}
  .testimonial-quote{font-size:14px;font-weight:300;color:var(--slate);line-height:1.75;margin-bottom:20px;}
  .testimonial-author{font-size:12px;font-weight:500;letter-spacing:0.08em;color:var(--ocean);text-transform:uppercase;}

  /* CTA — dark photo → WHITE stamp */
  .cta-banner{position:relative;overflow:hidden;padding:120px 64px 72px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:0;}
  .cta-bg{position:absolute;inset:0;background:url('assets/new-build-exterior.jpg') center/cover no-repeat;filter:brightness(0.3);}
  .cta-content{position:relative;z-index:2;max-width:600px;}
  .cta-content h2{font-family:var(--display);font-size:clamp(40px,5vw,72px);font-weight:300;color:var(--white);line-height:1.1;margin-bottom:20px;}
  .cta-content p{font-size:15px;font-weight:300;color:var(--dune);margin-bottom:40px;line-height:1.7;}
  .cta-stamp{position:relative;z-index:2;margin-top:48px;}

  /* CONTACT — white bg & sand bg → BLACK stamp (one per section, in contact-text only) */
  .contact{display:grid;grid-template-columns:1fr 1fr;}
  .contact-text{background:var(--white);padding:96px 72px 60px;display:flex;flex-direction:column;justify-content:center;}
  .contact-text h2{font-family:var(--display);font-size:clamp(34px,3.5vw,52px);font-weight:300;color:var(--ocean);margin-bottom:32px;}
  .contact-detail{display:flex;flex-direction:column;gap:20px;margin-bottom:36px;}
  .contact-row{display:flex;flex-direction:column;gap:4px;}
  .contact-label{font-size:11px;letter-spacing:0.15em;text-transform:uppercase;color:var(--copper);font-weight:500;}
  .contact-value{font-size:18px;font-weight:300;color:var(--ocean);text-decoration:none;}
  .contact-value:hover{color:var(--copper);}
  .service-area-tag{font-size:13px;color:var(--mid);font-weight:300;padding-top:20px;border-top:1px solid var(--dune);}
  .contact-form{background:var(--sand);padding:96px 72px 60px;display:flex;flex-direction:column;justify-content:center;}
  .contact-form h3{font-family:var(--display);font-size:28px;font-weight:400;color:var(--ocean);margin-bottom:28px;}
  .form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;}
  .form-group label{font-size:11px;letter-spacing:0.15em;text-transform:uppercase;color:var(--mid);font-weight:500;}
  .form-group input,.form-group textarea,.form-group select{background:var(--white);border:1px solid var(--dune);border-radius:2px;padding:12px 16px;font-size:14px;font-family:var(--body);color:var(--ocean);font-weight:300;outline:none;transition:border-color 0.2s;-webkit-appearance:none;}
  .form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--copper);}
  .form-group textarea{height:100px;resize:none;}
  .form-submit{background:var(--ocean);color:var(--white);border:none;padding:14px 32px;font-size:13px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;cursor:pointer;border-radius:2px;margin-top:8px;transition:background 0.2s;font-family:var(--body);}
  .form-submit:hover{background:var(--copper);}

  /* FOOTER — ocean bg → WHITE stamp */
  footer{background:var(--ocean);padding:0px 64px 0px;display:flex;flex-direction:column;align-items:center;gap:24px;}
  .footer-top{width:100%;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;}
  .footer-logo{height:160px;width:auto;}
  .footer-info{font-size:12px;color:rgba(217,208,192,0.6);font-weight:300;line-height:1.8;text-align:center;}
  .footer-contact{font-size:13px;color:var(--dune);font-weight:300;text-align:right;line-height:1.8;}
  .footer-contact a{color:var(--dune);text-decoration:none;}
  .footer-contact a:hover{color:var(--copper);}
  .footer-logo-centre{display:flex;justify-content:center;padding-top:24px;border-top:1px solid rgba(217,208,192,0.15);width:100%;}
  .footer-logo-centre img{height:32px;opacity:0.4;}

  @media(max-width:900px){
    nav{padding:14px 24px;}.nav-logo{height:48px;}
    .nav-toggle{display:flex;}
    .nav-links{display:none;position:fixed;top:77px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--white);border-bottom:1px solid var(--dune);padding:8px 24px 20px;max-height:calc(100vh - 77px);overflow-y:auto;}
    .nav-links.open{display:flex;}
    .nav-links li{width:100%;}
    .nav-links a{display:block;padding:14px 0;border-bottom:1px solid var(--dune);}
    .nav-cta{display:block;text-align:center;margin-top:14px;padding:14px 24px;}
    .hero-logo-top{padding-top:80px;} .hero-content{padding:0 32px 56px;}
    .trust{padding:16px 24px;gap:24px;}
    .intro,.solar-check,.contact{grid-template-columns:1fr;}
    .intro-image,.solar-img{height:320px;}
    .intro-text,.solar-text,.contact-text,.contact-form{padding:64px 32px 48px;}
    .services{padding:72px 24px 56px;}.services-grid{grid-template-columns:1fr;}
    .portfolio{padding:72px 24px 56px;}.portfolio-grid{grid-template-columns:1fr;}
    .port-item.wide{grid-column:span 1;}
    .testimonials{padding:72px 24px 56px;}.testimonial-grid{grid-template-columns:1fr;}
    .cta-banner{padding:80px 32px 64px;}
    footer{padding:40px 24px 28px;}.footer-top{flex-direction:column;align-items:flex-start;}.footer-contact{text-align:left;}
  }


/* Service card background image modifiers (multi-page) */
.bg-solar{background-image:url('assets/solar.jpg');}
.bg-newbuild{background-image:url('assets/about.jpg');}
.bg-ev{background-image:url('assets/ev-charging.jpg');}

/* Page header band (for dedicated service pages) */
.page-header{position:relative;padding:180px 64px 72px;background:var(--ocean);overflow:hidden;}
.page-header-content{position:relative;z-index:2;max-width:720px;}
.page-header .section-label{color:var(--copper);}
.page-header h1{font-family:var(--display);font-size:clamp(40px,5vw,68px);font-weight:300;color:var(--white);margin-bottom:20px;line-height:1.1;}
.page-header p{font-size:15px;font-weight:300;color:var(--dune);max-width:520px;line-height:1.8;}
.page-header .trust{background:transparent;padding:32px 0 0;justify-content:flex-start;gap:32px;}

/* Body copy sections on dedicated pages */
.page-section{padding:80px 64px;max-width:920px;margin:0 auto;}
.page-section h2{font-family:var(--display);font-size:clamp(30px,3.5vw,44px);font-weight:300;color:var(--ocean);margin-bottom:24px;}
.page-section p{font-size:15px;font-weight:300;color:var(--mid);line-height:1.85;margin-bottom:18px;max-width:760px;}
.page-section ul{margin:0 0 20px 0;padding:0;list-style:none;}
.page-section ul li{display:flex;align-items:flex-start;gap:12px;font-size:15px;font-weight:300;color:var(--mid);line-height:1.7;margin-bottom:10px;}
.page-section ul li::before{content:'';width:20px;height:1px;background:var(--copper);flex-shrink:0;margin-top:11px;}
.page-section-inner{max-width:920px;margin:0 auto;padding:0 64px;}
.page-section.alt-wrap{background:var(--sand);padding:80px 0;}
.page-cta{background:var(--ocean);padding:72px 64px;text-align:center;}
.page-cta h2{font-family:var(--display);font-size:clamp(30px,3.5vw,44px);font-weight:300;color:var(--white);margin-bottom:20px;}
.page-cta p{color:var(--dune);font-size:15px;font-weight:300;margin-bottom:32px;}

@media(max-width:900px){
  .page-header{padding:140px 24px 56px;}
  .page-section{padding:56px 24px;}
  .page-section.alt-wrap{padding:56px 0;}
  .page-section-inner{padding:0 24px;}
  .page-cta{padding:56px 24px;}
}
