/* Adytum Designs — Shared site chrome, reset, and design system */

:root{
    --green:#95B562;
    --green-dark:#7C9C4E;
    --charcoal:#4E4E4D;
    --charcoal-deep:#2A2A29;
    --warm-white:#F7F7F2;
    --off-white:#FBFBF8;
    --soft-grey:#E4E4DE;
    --line:rgba(78,78,77,0.16);
    --line-light:rgba(247,247,242,0.18);
    --ease:cubic-bezier(.16,.84,.44,1);
  }

*{margin:0;padding:0;box-sizing:border-box;}

html{scroll-behavior:smooth;}

h1,h2,h3,h4,h5,h6{font-family:'Tenor Sans',sans-serif;font-weight:400;letter-spacing:.2px;}

body{
    font-family:'Inter',sans-serif;
    background:var(--off-white);
    color:var(--charcoal);
    overflow-x:hidden;
    font-weight:300;
  }

img{display:block;max-width:100%;}

a{text-decoration:none;color:inherit;}

ul{list-style:none;}

button{font-family:inherit;cursor:pointer;border:none;background:none;}

.eyebrow{
    display:flex;align-items:center;gap:14px;
    font-size:12px;letter-spacing:3px;font-weight:600;
    color:var(--green-dark);text-transform:uppercase;
    margin-bottom:28px;
  }

.eyebrow .num{color:var(--charcoal);opacity:.45;}

.eyebrow .bar{width:36px;height:1px;background:var(--green);}

.btn-square{
    display:inline-flex;align-items:center;gap:12px;
    padding:18px 30px;font-size:13px;font-weight:600;letter-spacing:1.5px;
    text-transform:uppercase;border:1px solid currentColor;
    transition:all .35s var(--ease);
  }

.btn-square.solid{background:var(--green);color:var(--charcoal-deep);border-color:var(--green);}

.btn-square.solid:hover{background:var(--charcoal-deep);color:var(--warm-white);border-color:var(--charcoal-deep);}

.btn-square.outline-light{color:var(--warm-white);}

.btn-square.outline-light:hover{background:var(--warm-white);color:var(--charcoal-deep);}

.btn-square.outline-dark{color:var(--charcoal-deep);}

.btn-square.outline-dark:hover{background:var(--charcoal-deep);color:var(--warm-white);}

.arrow{transition:transform .35s var(--ease);}

.btn-square:hover .arrow{transform:translateX(6px);}

.reveal{opacity:0;transform:translateY(36px);transition:opacity .9s var(--ease),transform .9s var(--ease);}

.reveal.in{opacity:1;transform:translateY(0);}

section{position:relative;}

.green-hl{color:var(--green-dark);font-weight:500;}

header{
    position:fixed;top:0;left:0;width:100%;z-index:1000;
    padding:28px 0;transition:all .4s var(--ease);
    border-bottom:1px solid transparent;
  }

header .wrap{display:flex;align-items:center;justify-content:space-between;}

header.scrolled{
    background:var(--warm-white);border-bottom:1px solid var(--line);
    padding:18px 0;
  }

header.scrolled nav.main-nav a{color:var(--charcoal-deep);}

header.scrolled nav.main-nav a.active{color:var(--green-dark);}

header.scrolled .hamburger span{background:var(--charcoal-deep);}

.logo{display:flex;align-items:center;height:39px;transition:all .4s var(--ease);}
.logo img{height:100%;width:auto;display:block;}
.logo img.logo-dark{display:none;}
header.scrolled .logo img.logo-light{display:none;}
header.scrolled .logo img.logo-dark{display:block;}
.mobile-drawer .logo{height:30px;margin-bottom:10px;}
.mobile-drawer .logo img{filter:brightness(0) invert(1);}

/* ---------- centered header (site-wide) ---------- */
.header-3col{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;}
.header-3col nav.main-nav{justify-self:start;}
.header-3col nav.main-nav ul{gap:30px;}
.logo.logo-center{justify-self:center;height:75px;}
header.scrolled .logo.logo-center{height:62px;}
.header-3col .header-right{justify-self:end;display:flex;align-items:center;gap:22px;}
.header-contact{display:flex;flex-direction:column;align-items:flex-end;gap:2px;line-height:1.3;}
.header-contact a{font-size:12px;letter-spacing:.4px;color:var(--warm-white);opacity:.85;transition:opacity .3s,color .4s var(--ease);}
.header-contact a:hover{opacity:1;}
header.scrolled .header-contact a{color:var(--charcoal-deep);}
@media(max-width:1100px){.header-contact{display:none;}}
@media(max-width:900px){
  .header-3col{grid-template-columns:1fr auto 1fr;}
  .header-3col nav.main-nav{display:none;}
  .header-3col .header-right .header-enquiry{display:none;}
  .logo.logo-center{height:42px;grid-column:2;}
}

nav.main-nav ul{display:flex;gap:38px;align-items:center;}

nav.main-nav a{
    font-size:12.5px;font-weight:500;letter-spacing:1.2px;text-transform:uppercase;
    color:var(--warm-white);transition:color .4s var(--ease);position:relative;
  }

nav.main-nav a::after{
    content:'';position:absolute;bottom:-6px;left:0;width:0;height:1px;background:var(--green);
    transition:width .3s var(--ease);
  }

nav.main-nav a:hover::after{width:100%;}

nav.main-nav a.active{color:var(--green);}

nav.main-nav a.active::after{width:100%;}

.header-right{display:flex;align-items:center;gap:28px;}

.header-enquiry{
    padding:13px 22px;background:var(--green);color:var(--charcoal-deep);
    font-size:11.5px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  }

.header-enquiry:hover{background:var(--charcoal-deep);color:var(--warm-white);}

.hamburger{display:none;flex-direction:column;gap:5px;width:26px;}

.hamburger span{height:2px;width:100%;background:var(--warm-white);transition:all .4s var(--ease);}

.mobile-drawer{
    position:fixed;top:0;right:-100%;width:min(360px,86vw);height:100vh;
    background:var(--charcoal-deep);z-index:1100;transition:right .5s var(--ease);
    padding:32px;display:flex;flex-direction:column;
  }

.mobile-drawer.open{right:0;}

.mobile-drawer .close-drawer{align-self:flex-end;color:var(--warm-white);font-size:28px;margin-bottom:40px;}

.mobile-drawer ul{display:flex;flex-direction:column;gap:26px;}

.mobile-drawer a{color:var(--warm-white);font-size:16px;letter-spacing:1px;text-transform:uppercase;font-weight:500;}

.mobile-drawer a.active{color:var(--green);}

.drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1050;opacity:0;pointer-events:none;transition:opacity .4s;}

.drawer-overlay.open{opacity:1;pointer-events:auto;}

footer{background:var(--charcoal-deep);color:var(--warm-white);padding-top:110px;}

.footer-grid{
    display:grid;grid-template-columns:1.4fr .7fr 1.4fr;gap:60px;padding-bottom:80px;
    border-bottom:1px solid var(--line-light);
  }

.footer-brand h3{font-size:20px;font-weight:700;letter-spacing:1.5px;margin-bottom:22px;}

.footer-brand .tagline{font-size:12px;letter-spacing:1.5px;color:var(--green);text-transform:uppercase;margin-bottom:20px;}

.footer-brand p{font-size:14px;line-height:1.8;color:var(--soft-grey);font-weight:300;margin-bottom:20px;max-width:400px;}

.footer-brand .cities{font-size:13px;color:var(--green);letter-spacing:1px;}

.footer-social{display:flex;gap:14px;margin-top:26px;}

.footer-social a{
    width:38px;height:38px;border:1px solid var(--line-light);display:flex;align-items:center;justify-content:center;
    font-size:12px;transition:all .3s;
  }

.footer-social a:hover{background:var(--green);border-color:var(--green);color:var(--charcoal-deep);}

.footer-col h4{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--green);margin-bottom:26px;font-weight:600;}

.footer-col ul{display:flex;flex-direction:column;gap:16px;}

.footer-col a{font-size:14px;color:var(--soft-grey);font-weight:300;transition:color .3s;}

.footer-col a:hover{color:var(--green);}

.footer-contact .office{margin-bottom:26px;}

.footer-contact .office h5{font-size:13px;font-weight:600;margin-bottom:8px;color:var(--warm-white);}

.footer-contact .office p{font-size:13px;color:var(--soft-grey);line-height:1.7;font-weight:300;}

.footer-bottom{
    display:flex;justify-content:space-between;align-items:center;padding:32px 0;flex-wrap:wrap;gap:16px;
  }

.footer-bottom p{font-size:12.5px;color:var(--soft-grey);font-weight:300;}

.footer-bottom-links{display:flex;gap:28px;align-items:center;}

.footer-bottom-links a{font-size:12.5px;color:var(--soft-grey);font-weight:300;}

.back-top{
    width:40px;height:40px;border:1px solid var(--line-light);display:flex;align-items:center;justify-content:center;
    color:var(--warm-white);transition:all .3s;
  }

.back-top:hover{background:var(--green);border-color:var(--green);color:var(--charcoal-deep);}

:focus-visible{outline:2px solid var(--green);outline-offset:2px;}

 label.error{
    color:red !important;
    text-transform: unset !important;
}
