/* ==========================================================================
   American Home Transformations — Global Stylesheet
   Single global CSS for all pages (GHL Custom CSS / linked stylesheet)
   ========================================================================== */

:root{
  --color-primary:#002349;
  --color-secondary:#BAA70F;
  --color-accent:#8C730C;
  --color-white:#FFFFFF;
  --color-background:#F6F6F3;
  --color-border:#E5E7EB;
  --color-text:#17202A;
  --color-footer:#00172F;
  --font-heading:'Domine',serif;
  --font-body:'Work Sans',sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
.no-js .reveal,.no-js .reveal-left,.no-js .reveal-right,.no-js .reveal-img{opacity:1 !important;visibility:visible !important;transform:none !important;}
body{margin:0;font-family:var(--font-body);color:var(--color-text);background:#fff;-webkit-font-smoothing:antialiased;}
img{max-width:100%;}
a{color:var(--color-primary);text-decoration:none;}
a:hover{color:var(--color-accent);}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;}
h1,h2,h3{font-family:var(--font-heading);margin:0;}
.container{max-width:1300px;margin:0 auto;}
.section{padding:clamp(56px,8vw,100px) 8vw;}
.section--tight-top{padding-top:clamp(80px,9vw,120px);}
.bg-light{background:var(--color-background);}
.bg-primary{background:var(--color-primary);}

/* -------------------- Desktop sidebar header -------------------- */
.site-header{position:fixed;top:0;left:0;width:220px;height:100vh;background:#fff;border-right:1px solid var(--color-border);display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:36px 0 28px;z-index:60;}
.site-header__logo{display:block;}
.site-header__logo img{width:170px;height:auto;display:block;}
.site-nav{display:flex;flex-direction:column;align-items:center;gap:22px;}
.site-nav__link{font-size:13px;letter-spacing:1px;text-transform:uppercase;padding:4px 2px;font-weight:500;color:var(--color-text);border-bottom:2px solid transparent;}
.site-nav__link:hover{color:var(--color-accent);}
.site-nav__link.is-active{font-weight:700;color:var(--color-primary);border-bottom-color:var(--color-secondary);}
.site-header__cta{font-size:12px;letter-spacing:1.2px;text-transform:uppercase;font-weight:600;color:var(--color-primary);}
.site-header__cta:hover{color:var(--color-accent);}

/* -------------------- Mobile header + nav -------------------- */
.mobile-header{display:none;position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--color-border);align-items:center;justify-content:space-between;padding:14px 20px;}
.mobile-header__logo img{width:120px;height:auto;display:block;}
.hamburger{display:none;background:none;border:1px solid var(--color-text);padding:9px 11px;cursor:pointer;flex-direction:column;gap:4px;}
.hamburger span{width:20px;height:2px;background:var(--color-text);display:block;}
.mobile-nav-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:59;}
.mobile-nav{display:none;position:fixed;top:0;left:0;right:0;z-index:61;background:#fff;border-bottom:1px solid var(--color-border);padding:10px 20px 22px;flex-direction:column;max-height:calc(100vh - 60px);overflow-y:auto;}
.mobile-nav__link{padding:13px 4px;font-size:15px;color:var(--color-text);border-bottom:1px solid var(--color-border);}
.mobile-nav__link.is-active{font-weight:700;color:var(--color-primary);}
.mobile-nav__cta{margin-top:14px;background:var(--color-secondary);color:var(--color-primary);text-align:center;padding:14px;font-weight:700;}
.mobile-nav__cta:hover{background:var(--color-accent);color:#fff;}
body.nav-open .mobile-nav-backdrop,body.nav-open .mobile-nav{display:flex;}
body.nav-open{overflow:hidden;}

@media (max-width:920px){
  .site-header{display:none;}
  .mobile-header{display:flex;}
  .hamburger{display:flex;}
  .main-content{margin-left:0 !important;}
  .split-grid{grid-template-columns:1fr !important;}
}

.main-content{margin-left:220px;font-family:var(--font-body);}

/* -------------------- Buttons -------------------- */
.btn{display:inline-block;padding:16px 30px;font-weight:700;font-size:15px;font-family:var(--font-body);border:1.5px solid transparent;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease;}
.btn-primary{background:var(--color-secondary);color:var(--color-primary);border-color:var(--color-secondary);}
.btn-primary:hover{background:var(--color-accent);color:#fff;border-color:var(--color-accent);}
.btn-outline{background:rgba(0,0,0,.3);border-color:var(--color-secondary);color:#fff;}
.btn-outline:hover{background:rgba(0,0,0,.5);}
.btn-outline:focus-visible{outline:2px solid #fff;}
.btn-secondary-dark{background:transparent;border:1.5px solid var(--color-primary);color:var(--color-primary);}
.btn-secondary-dark:hover{background:var(--color-primary);color:#fff;}

/* -------------------- Prev/next page nav -------------------- */
.page-nav{display:flex;justify-content:space-between;padding:28px 8vw;border-top:1px solid var(--color-border);}
.page-nav a{font-size:13px;letter-spacing:.6px;text-transform:uppercase;color:var(--color-primary);font-weight:600;}
.page-nav a:hover{color:var(--color-accent);}

/* -------------------- Footer -------------------- */
.site-footer{background:var(--color-footer);padding:60px 8vw 30px;}
.footer-cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;max-width:1300px;margin:0 auto;}
@media(max-width:920px){.footer-cols{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.footer-cols{grid-template-columns:1fr;}}
.footer-logo img{width:150px;height:auto;display:block;margin-bottom:18px;}
.footer-desc{font-size:14px;line-height:1.7;color:rgba(255,255,255,.75);max-width:34ch;margin:0 0 18px;}
.footer-social{display:flex;gap:10px;flex-wrap:wrap;}
.footer-social a{width:36px;height:36px;border-radius:50%;background:#fff;color:var(--color-footer);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;}
.footer-social a:hover{background:var(--color-accent);color:#fff;}
.footer-heading{font-size:16px;font-weight:700;color:#fff;margin:0 0 18px;}
.footer-link,.footer-item{display:flex;align-items:flex-start;gap:8px;font-size:14px;color:rgba(255,255,255,.75);padding-bottom:12px;}
.footer-link:hover{color:var(--color-secondary);}
.footer-arrow{color:var(--color-secondary);}
.footer-bottom{max-width:1300px;margin:34px auto 0;padding-top:22px;border-top:1px solid rgba(186,167,15,.35);}
.footer-copyright{font-size:13px;color:rgba(255,255,255,.45);margin:0;}

/* -------------------- Home hero -------------------- */
.hero-home{position:relative;height:100vh;min-height:560px;display:flex;align-items:center;overflow:hidden;background:var(--color-primary);}
.hero-home video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;}
.hero-home__content{position:relative;z-index:2;max-width:720px;padding:0 8vw;animation:fadeUp .8s ease both;}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
@media(prefers-reduced-motion:reduce){.hero-home__content{animation:none;}}
.hero-home h1{font-weight:700;font-size:clamp(34px,5.2vw,60px);line-height:1.12;color:#fff;margin:0 0 20px;text-shadow:0 2px 4px rgba(0,0,0,.9),0 4px 12px rgba(0,0,0,.75);}
.hero-home p{font-size:clamp(16px,1.6vw,19px);line-height:1.6;color:#fff;max-width:52ch;margin:0 0 34px;text-shadow:0 2px 4px rgba(0,0,0,.9),0 4px 12px rgba(0,0,0,.75);}
.hero-home__actions{display:flex;flex-wrap:wrap;gap:16px;}

/* -------------------- Photo hero (interior pages) -------------------- */
.hero-photo{position:relative;}
.hero-photo img{width:100%;object-fit:cover;display:block;}
.hero-photo--about img{height:clamp(420px,52vw,640px);filter:grayscale(1);}
.hero-photo--tall img{height:clamp(320px,38vw,460px);}
.hero-photo--short img{height:260px;}
.hero-photo__caption{position:absolute;background:rgba(255,255,255,.95);padding:clamp(22px,3vw,34px);}
.hero-photo__caption--center{top:50%;left:6%;right:6%;transform:translateY(-50%);background:rgba(255,255,255,.92);padding:clamp(28px,4vw,48px);max-width:640px;}
.hero-photo__caption--bottom{left:6%;bottom:-40px;max-width:520px;}
.hero-photo h1{font-weight:700;color:var(--color-primary);letter-spacing:.4px;font-size:clamp(28px,3.2vw,38px);}

/* -------------------- Split grids -------------------- */
.split-grid{display:grid;gap:56px;align-items:center;}
.split-grid.cols-1-1_3{grid-template-columns:1fr 1.3fr;}
.split-grid.cols-1-1_1{grid-template-columns:1fr 1.1fr;align-items:start;}
.split-grid.cols-1-1_2{grid-template-columns:1fr 1.2fr;align-items:start;}

/* -------------------- About -------------------- */
.about-checklist{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:12px;}
.about-checklist li{display:flex;align-items:flex-start;gap:10px;font-size:15.5px;color:rgba(23,32,42,.72);}
.about-checklist li::before{content:"✓";color:var(--color-secondary);font-weight:700;line-height:1.5;}
.about-quote{background:var(--color-background);padding:clamp(56px,8vw,100px) 8vw;text-align:center;}
.about-quote blockquote{font-family:var(--font-heading);font-style:italic;font-size:clamp(20px,2.4vw,28px);line-height:1.5;color:var(--color-primary);margin:0 0 20px;max-width:800px;margin-inline:auto;}
.about-quote cite{font-size:13px;letter-spacing:.4px;text-transform:uppercase;color:rgba(23,32,42,.45);font-style:normal;}
.about-video{text-align:center;}
.eyebrow{font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:var(--color-accent);font-weight:700;margin:0 0 14px;}
.rule{width:56px;height:2px;background:var(--color-secondary);margin:0 auto 22px;}
.lede{font-size:16px;line-height:1.7;color:rgba(23,32,42,.72);max-width:60ch;margin:0 auto 40px;}
.video-embed{max-width:1100px;margin:0 auto;aspect-ratio:16/9;background:var(--color-primary);}
.video-embed iframe{width:100%;height:100%;border:0;display:block;}
.watch-link{display:inline-block;margin-top:16px;font-size:13px;text-decoration:underline;color:var(--color-primary);}
.watch-link:hover{color:var(--color-accent);}

/* -------------------- Location -------------------- */
.info-list{margin:0;display:grid;gap:18px;}
.info-list dt{font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:var(--color-accent);margin-bottom:5px;}
.info-list dd{margin:0;font-size:16px;color:rgba(23,32,42,.72);}
.map-embed iframe{border:0;display:block;width:100%;height:clamp(300px,32vw,420px);}

/* -------------------- Services -------------------- */
.services-title{font-weight:700;font-size:clamp(30px,3.6vw,44px);color:var(--color-primary);letter-spacing:.5px;}
.services-stage{position:relative;margin:clamp(40px,6vw,64px) 8vw 0;}
.services-collage{position:absolute;inset:0;overflow:hidden;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);}
.services-collage img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(.3);}
.services-overlay{position:absolute;inset:0;background:rgba(0,35,73,.6);grid-column:1/-1;grid-row:1/-1;}
.services-grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;align-items:start;padding:clamp(40px,5vw,64px) clamp(24px,4vw,56px) clamp(56px,6vw,80px);}
.services-panel{background:rgba(255,255,255,.96);padding:clamp(24px,4vw,56px);}
.services-panel--offset{margin-top:72px;}
.services-panel h3{font-size:19px;color:var(--color-primary);margin:0 0 10px;}
.services-panel p{font-size:14px;line-height:1.65;color:rgba(23,32,42,.72);margin:0;max-width:44ch;}
.service-item{margin-bottom:32px;}
@media(max-width:760px){.services-grid{grid-template-columns:1fr;gap:28px;}.services-panel--offset{margin-top:0;}}

/* -------------------- Portfolio -------------------- */
.portfolio-filters{display:flex;flex-wrap:wrap;gap:14px 16px;list-style:none;margin:0 0 36px;padding:0;}
.portfolio-filters li{background:var(--color-background);border:1px solid var(--color-secondary);padding:9px 16px;font-size:13.5px;letter-spacing:.2px;color:var(--color-primary);}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media(max-width:1100px){.portfolio-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.portfolio-grid{grid-template-columns:1fr;}}
.portfolio-item{padding:0;border:none;cursor:zoom-in;background:var(--color-background);display:block;overflow:hidden;aspect-ratio:4/3;width:100%;}
.portfolio-item img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .25s ease;}
.portfolio-item:hover img{transform:scale(1.03);}
.portfolio-item:hover{box-shadow:inset 0 0 0 2px var(--color-secondary);}
.lightbox{display:none;position:fixed;inset:0;background:rgba(10,9,8,.94);z-index:100;align-items:center;justify-content:center;padding:24px;}
.lightbox.is-open{display:flex;}
.lightbox img{max-width:90vw;max-height:88vh;object-fit:contain;}
.lightbox button{position:absolute;background:none;border:none;color:#fff;cursor:pointer;}
.lightbox button:hover{color:var(--color-secondary);}
.lightbox button:focus-visible{outline:2px solid var(--color-secondary);outline-offset:3px;}
.lightbox__close{top:24px;right:28px;font-size:34px;line-height:1;}
.lightbox__prev{left:16px;font-size:42px;}
.lightbox__next{right:16px;font-size:42px;}

/* -------------------- Video page -------------------- */
.video-icon{width:52px;height:52px;border:2px solid var(--color-secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 28px;}
.video-icon-triangle{width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:13px solid var(--color-secondary);margin-left:3px;}

/* -------------------- Contact -------------------- */
.contact-section{background:var(--color-primary);padding:clamp(80px,9vw,120px) 8vw clamp(60px,8vw,100px);}
.contact-section h2{font-weight:700;font-size:clamp(24px,2.6vw,32px);color:#fff;margin:0 0 22px;}
.contact-section p{font-size:16px;line-height:1.7;color:rgba(255,255,255,.82);}
.contact-checklist{list-style:none;margin:0 0 28px;padding:0;display:grid;gap:10px;}
.contact-checklist li{display:flex;align-items:flex-start;gap:10px;font-size:15px;color:rgba(255,255,255,.82);}
.contact-checklist li::before{content:"✓";color:var(--color-secondary);font-weight:700;}
.contact-details{display:grid;gap:16px;margin-bottom:10px;}
.contact-details span.label{font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:rgba(255,255,255,.6);display:block;margin-bottom:4px;}
.contact-details a{color:#fff;font-weight:600;font-size:16px;}
.contact-details .value{color:rgba(255,255,255,.82);font-style:italic;}
.contact-social{display:flex;gap:14px;padding-top:6px;}
.contact-social a{width:34px;height:34px;border-radius:50%;background:#fff;color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;}
.contact-social a:hover{background:var(--color-accent);color:#fff;}
.contact-form-wrap{background:#fff;padding:16px;}
.contact-form-wrap iframe{width:100%;height:560px;border:none;border-radius:4px;display:block;}

/* -------------------- 404 -------------------- */
.error-page{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;background:var(--color-background);}
.error-page h1{font-size:clamp(32px,5vw,56px);color:var(--color-primary);margin-bottom:16px;}
.error-page p{font-size:16px;color:rgba(23,32,42,.72);}
