/*
Theme Name: AHT Homes
Theme URI: https://ahthomes.com.au
Author: AHT Homes
Description: Custom one-page theme for AHT Homes, a Sydney custom home builder.
Version: 1.0
Requires PHP: 7.4
Text Domain: ahthomes
*/

:root{
  --navy:#152238;
  --navy-deep:#0D1626;
  --line:#7FA3CB;
  --line-soft:#3F5C7D;
  --paper:#EDE8DB;
  --paper-2:#F6F3EA;
  --ink:#211D16;
  --ink-soft:#5A5548;
  --orange:#D9531C;
  --orange-dark:#A8400F;
  --grey:#B7B0A0;
  --radius:2px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Work Sans', sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.6;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Big Shoulders Display', sans-serif;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:0.01em;
  line-height:1;
}
.mono{font-family:'Space Mono', monospace;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px;}
section{position:relative;}

/* ---------- NAV ---------- */
header.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(21,34,56,0.96);
  border-bottom:1px solid var(--line-soft);
}
.navbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 24px;max-width:1140px;margin:0 auto;
}
.brand{
  color:var(--paper-2);
  font-family:'Big Shoulders Display', sans-serif;
  font-weight:800;font-size:22px;letter-spacing:0.02em;
  display:flex;align-items:baseline;gap:8px;
}
.brand .dot{color:var(--orange);}
nav ul{list-style:none;display:flex;gap:36px;}
nav a{
  color:var(--paper-2);font-size:13px;letter-spacing:0.08em;text-transform:uppercase;
  font-weight:500;padding:4px 0;border-bottom:1px solid transparent;
  transition:border-color .2s ease, color .2s ease;
}
nav a:hover{border-color:var(--orange);color:#fff;}
.nav-cta{
  background:var(--orange);color:#fff;padding:10px 20px;font-size:13px;
  text-transform:uppercase;letter-spacing:0.08em;font-weight:600;border-radius:var(--radius);
  transition:background .2s ease;
}
.nav-cta:hover{background:var(--orange-dark);}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:8px;}
.burger span{width:24px;height:2px;background:var(--paper-2);display:block;}

/* ---------- HERO ---------- */
.hero{
  background:var(--navy);
  color:var(--paper-2);
  padding:150px 0 90px;
  position:relative;
  overflow:hidden;
}
.hero::before{
  content:'';position:absolute;inset:0;
  background-image:
    linear-gradient(var(--line-soft) 1px, transparent 1px),
    linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
  background-size:44px 44px;
  opacity:0.18;
  pointer-events:none;
}
.hero-grid{
  display:grid;grid-template-columns:1.1fr 0.9fr;gap:48px;align-items:center;
  position:relative;z-index:2;
}
.eyebrow{
  font-family:'Space Mono', monospace;color:var(--orange);
  font-size:13px;letter-spacing:0.12em;text-transform:uppercase;
  display:flex;align-items:center;gap:10px;margin-bottom:22px;
}
.eyebrow::before{content:'';width:28px;height:1px;background:var(--orange);}
.hero h1{
  font-size:clamp(42px, 6vw, 68px);
  margin-bottom:22px;
}
.hero h1 span{color:var(--orange);}
.hero p.lead{
  font-size:18px;color:#C9D2DF;max-width:460px;margin-bottom:34px;
}
.btn-row{display:flex;gap:16px;flex-wrap:wrap;}
.btn{
  display:inline-block;padding:14px 28px;font-size:14px;font-weight:600;
  text-transform:uppercase;letter-spacing:0.06em;border-radius:var(--radius);
  transition:all .2s ease;
}
.btn-primary{background:var(--orange);color:#fff;}
.btn-primary:hover{background:var(--orange-dark);}
.btn-ghost{border:1px solid var(--line);color:var(--paper-2);}
.btn-ghost:hover{background:rgba(255,255,255,0.06);}

/* blueprint plan drawing */
.plan{
  position:relative;aspect-ratio:1/1;
}
.plan svg{width:100%;height:100%;}
.plan-line{
  fill:none;stroke:var(--line);stroke-width:1.4;
  stroke-dasharray:1400;stroke-dashoffset:1400;
  animation:draw 2.6s ease forwards;
}
.plan-line.delay{animation-delay:.4s;}
.plan-fill{fill:none;stroke:var(--orange);stroke-width:1.6;stroke-dasharray:400;stroke-dashoffset:400;animation:draw 1.6s ease forwards;animation-delay:1.2s;}
@keyframes draw{to{stroke-dashoffset:0;}}
.plan text{
  font-family:'Space Mono', monospace;fill:#9FB4CC;font-size:9px;letter-spacing:0.04em;
}

/* ---------- MARQUEE STRIP ---------- */
.strip{
  background:var(--orange);color:#fff;padding:12px 0;overflow:hidden;white-space:nowrap;
  border-top:1px solid var(--orange-dark);border-bottom:1px solid var(--orange-dark);
}
.strip-inner{display:inline-block;padding-left:100%;animation:scroll 26s linear infinite;font-family:'Space Mono',monospace;font-size:13px;letter-spacing:0.08em;}
.strip-inner span{margin:0 26px;}
@keyframes scroll{to{transform:translateX(-100%);}}

/* ---------- SECTION HEADERS ---------- */
.section-head{max-width:620px;margin-bottom:56px;}
.section-head .eyebrow{color:var(--orange-dark);}
.section-head .eyebrow::before{background:var(--orange-dark);}
.section-head h2{font-size:clamp(32px,4vw,46px);color:var(--ink);}
.section-head p{color:var(--ink-soft);margin-top:16px;font-size:16px;max-width:520px;}
.light .section-head h2, .light .section-head p{color:var(--paper-2);}

/* ---------- ABOUT ---------- */
.about{padding:110px 0;}
.about-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;align-items:start;}
.about-figure{
  background:var(--navy);border-radius:var(--radius);padding:36px;color:var(--paper-2);
  position:sticky;top:110px;
}
.about-figure .num{font-family:'Big Shoulders Display';font-size:64px;color:var(--orange);line-height:1;}
.about-figure .label{font-family:'Space Mono';font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:#9FB4CC;margin-top:8px;}
.stat-list{margin-top:28px;border-top:1px solid var(--line-soft);}
.stat-list div{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line-soft);font-size:14px;}
.stat-list div b{font-family:'Big Shoulders Display';font-size:20px;color:#fff;}
.about-copy p{color:var(--ink-soft);margin-bottom:20px;font-size:16px;max-width:560px;}
.about-copy h3{font-size:22px;margin:32px 0 12px;color:var(--ink);}

/* ---------- SERVICES ---------- */
.services{background:var(--paper-2);padding:110px 0;}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--grey);border:1px solid var(--grey);}
.service-card{background:var(--paper-2);padding:34px 28px;transition:background .2s ease;}
.service-card:hover{background:var(--paper);}
.service-card .tag{font-family:'Space Mono';font-size:12px;color:var(--orange-dark);letter-spacing:0.06em;}
.service-card h3{font-size:24px;margin:14px 0 10px;color:var(--ink);}
.service-card p{color:var(--ink-soft);font-size:14.5px;}

/* ---------- PROCESS ---------- */
.process{padding:110px 0;}
.process-list{border-top:1px solid var(--grey);}
.process-row{
  display:grid;grid-template-columns:90px 1fr 1.4fr;gap:32px;padding:34px 0;
  border-bottom:1px solid var(--grey);align-items:start;
}
.process-row .step{font-family:'Big Shoulders Display';font-size:40px;color:var(--orange);}
.process-row h3{font-size:22px;color:var(--ink);align-self:center;}
.process-row p{color:var(--ink-soft);font-size:15px;align-self:center;}

/* ---------- PROJECTS ---------- */
.projects{background:var(--navy);padding:110px 0;color:var(--paper-2);}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.project-grid .project-card:nth-child(4), .project-grid .project-card:nth-child(5){grid-column:span 1;}
@media (min-width:901px){
  .project-grid{grid-template-columns:repeat(6,1fr);}
  .project-grid .project-card{grid-column:span 2;}
  .project-grid .project-card:nth-child(4){grid-column:2 / span 2;}
  .project-grid .project-card:nth-child(5){grid-column:4 / span 2;}
}
.project-card{
  border:1px solid var(--line-soft);border-radius:var(--radius);overflow:hidden;
}
.project-thumb{
  aspect-ratio:4/3;position:relative;overflow:hidden;
  background:var(--navy-deep);
  border-bottom:1px solid var(--line-soft);
}
.project-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.project-info{padding:20px;}
.project-info .tag{font-family:'Space Mono';font-size:11px;color:var(--orange);letter-spacing:0.06em;}
.project-info h3{font-size:19px;margin-top:8px;}
.project-info p{font-size:13.5px;color:#AAB8C9;margin-top:6px;}

/* ---------- TESTIMONIALS ---------- */
.testimonials{padding:110px 0;background:var(--paper-2);}
.quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.quote-card{border-left:2px solid var(--orange);padding-left:22px;}
.quote-card p{font-size:16px;color:var(--ink);margin-bottom:16px;}
.quote-card .who{font-family:'Space Mono';font-size:12px;color:var(--ink-soft);}

/* ---------- CONTACT ---------- */
.contact{padding:110px 0;}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;}
.contact-info h2{font-size:clamp(30px,4vw,42px);margin-bottom:20px;}
.contact-info p{color:var(--ink-soft);margin-bottom:28px;max-width:420px;}
.contact-detail{display:flex;gap:14px;padding:16px 0;border-top:1px solid var(--grey);}
.contact-detail:last-child{border-bottom:1px solid var(--grey);}
.contact-detail .k{font-family:'Space Mono';font-size:12px;color:var(--orange-dark);width:90px;flex-shrink:0;text-transform:uppercase;letter-spacing:0.05em;}
.contact-detail .v{font-size:15px;color:var(--ink);}
form{display:flex;flex-direction:column;gap:16px;}
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-family:'Space Mono';font-size:11px;text-transform:uppercase;letter-spacing:0.06em;color:var(--ink-soft);}
.field input, .field textarea, .field select{
  border:1px solid var(--grey);background:var(--paper-2);padding:13px 14px;font-size:15px;
  font-family:'Work Sans';border-radius:var(--radius);color:var(--ink);
}
.field textarea{resize:vertical;min-height:110px;}
.field input:focus, .field textarea:focus, .field select:focus{outline:2px solid var(--orange);outline-offset:1px;}
.submit-btn{
  background:var(--navy);color:#fff;padding:15px 28px;font-size:14px;font-weight:600;
  text-transform:uppercase;letter-spacing:0.06em;border:none;border-radius:var(--radius);cursor:pointer;
  transition:background .2s ease;align-self:flex-start;
}
.submit-btn:hover{background:var(--navy-deep);}

/* ---------- FOOTER ---------- */
footer.site-footer{background:var(--navy-deep);color:#8B99AC;padding:50px 0 28px;}
.footer-grid{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:24px;padding-bottom:30px;border-bottom:1px solid var(--line-soft);}
.footer-brand{color:var(--paper-2);font-family:'Big Shoulders Display';font-size:22px;}
.footer-links{display:flex;gap:40px;flex-wrap:wrap;}
.footer-links div h4{font-size:12px;color:#8B99AC;text-transform:uppercase;letter-spacing:0.08em;margin-bottom:12px;font-family:'Space Mono';font-weight:400;}
.footer-links a{display:block;font-size:14px;color:#C9D2DF;margin-bottom:8px;}
.footer-links a:hover{color:var(--orange);}
.footer-bottom{display:flex;justify-content:space-between;padding-top:22px;font-size:12.5px;flex-wrap:wrap;gap:10px;}

/* ---------- REVEAL ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1100px) and (min-width:901px){
  .service-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:900px){
  nav ul, .nav-cta{display:none;}
  .burger{display:flex;}
  .hero-grid, .about-grid, .contact-grid{grid-template-columns:1fr;}
  .about-figure{position:static;}
  .service-grid, .quote-grid{grid-template-columns:1fr;}
  .project-grid{grid-template-columns:1fr !important;}
  .project-grid .project-card{grid-column:auto !important;}
  .process-row{grid-template-columns:60px 1fr;}
  .process-row p{grid-column:2/3;}
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
  .plan-line, .plan-fill{stroke-dashoffset:0;}
}
