@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700&display=swap');

:root{
  --gold:#c6a15b;--gold-bright:#dfbf78;--gold-deep:#94712f;
  --ink:#171918;--ink-soft:#222524;--paper:#f4f1e9;--paper-soft:#ece8dd;
  --white:#fff;--muted:#656966;--line:rgba(18,20,19,.13);--darkline:rgba(255,255,255,.12);
  --max:1240px;--header:84px;--section:96px;--radius:2px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.dark-mode{--paper:#161817;--paper-soft:#1c1f1e;--ink:#f1eee6;--muted:#a9aca8;--line:rgba(255,255,255,.105)}
img{max-width:100%;display:block}a{color:inherit}button,input,select,textarea{font:inherit}::selection{background:var(--gold);color:#111}
.shell{width:min(calc(100% - 64px),var(--max));margin-inline:auto}

/* Header */
.site-header{position:absolute;inset:0 0 auto;z-index:50;color:#fff;border-bottom:1px solid rgba(255,255,255,.1);transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}
.site-header.scrolled{position:fixed;background:rgba(13,15,14,.94);border-bottom-color:rgba(255,255,255,.08);box-shadow:0 12px 30px rgba(0,0,0,.15);backdrop-filter:blur(18px)}
.header-shell{width:min(calc(100% - 64px),var(--max));height:var(--header);margin:auto;display:grid;grid-template-columns:165px 1fr auto;align-items:center;gap:30px}
.brand{display:inline-flex;align-items:center;width:max-content}.brand img{width:108px;height:auto;transition:transform .2s ease}.brand:hover img{transform:translateY(-1px)}
.site-nav{display:flex;justify-content:center;gap:32px}.site-nav a{text-decoration:none;font-size:.84rem;font-weight:500;color:rgba(255,255,255,.72);position:relative;transition:color .18s ease}.site-nav a:hover,.site-nav a.active{color:#fff}.site-nav a.active:after{content:'';position:absolute;left:0;right:0;bottom:-11px;height:1px;background:var(--gold)}
.header-actions{display:flex;align-items:center;gap:12px}.theme-toggle{width:40px;height:40px;border:1px solid rgba(255,255,255,.14);border-radius:50%;background:rgba(0,0,0,.08);color:#fff;cursor:pointer;transition:border-color .2s,background .2s}.theme-toggle:hover{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.05)}
.menu-toggle{display:none;background:none;border:0;padding:10px}.menu-toggle span{display:block;width:24px;height:2px;background:#fff;margin:5px}

/* Typography + controls */
.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 23px;text-decoration:none;border:1px solid transparent;font-weight:700;font-size:.84rem;letter-spacing:.01em;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease}.button:hover{transform:translateY(-2px)}
.button-small{min-height:43px;padding:0 18px}.button-gold{background:var(--gold-deep);color:#fff}.button-gold:hover{background:#a68138}.button-outline{border-color:var(--line);margin-top:28px;background:transparent}.button-outline:hover{border-color:var(--gold);color:var(--gold-deep)}
.text-link{font-weight:700;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:4px}.text-link span{color:var(--gold)}
.light{color:#fff}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.69rem;font-weight:700;color:var(--gold-deep);margin:0 0 18px}.eyebrow.light{color:var(--gold-bright)}
h1,h2,h3,blockquote{font-family:'Manrope',Arial,sans-serif;margin-top:0}h1,h2{letter-spacing:-.045em;line-height:1.025}h1 span,h2 span,blockquote span{color:var(--gold)}
h2{font-size:clamp(2.45rem,4vw,4.15rem);font-weight:500;margin-bottom:24px}.section{padding:var(--section) 0}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.78fr);gap:7vw;align-items:start}.prose{font-size:1.02rem;color:var(--muted);padding-top:28px;max-width:620px}.prose p{margin:0 0 20px}.section-heading{max-width:720px;margin-bottom:46px}.section-heading>p:last-child{max-width:590px;color:var(--muted);font-size:1rem}.soft-section{background:var(--paper-soft)}.dark-section{background:#171918;color:#fff}.dark-section h2{color:#fff}.dark-mode .dark-section{background:#111312}

/* Hero */
.hero{min-height:760px;height:100svh;max-height:960px;position:relative;color:#fff;display:flex;align-items:center;overflow:hidden}.hero-media{position:absolute;inset:0;background:url('images/hero-new.jpg') center/cover no-repeat;transform:scale(1.015)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,8,7,.88) 0%,rgba(6,8,7,.58) 46%,rgba(6,8,7,.16) 100%),linear-gradient(0deg,rgba(6,8,7,.48),transparent 45%)}.hero-content{position:relative;z-index:2;padding-top:72px}.hero h1{font-size:clamp(4.1rem,7.1vw,7.25rem);max-width:980px;font-weight:500;margin-bottom:26px}.hero-lead{max-width:610px;font-size:1.04rem;color:rgba(255,255,255,.76)}.hero-actions{display:flex;align-items:center;gap:26px;margin-top:34px}.hero-index{position:absolute;z-index:2;bottom:24px;left:50%;transform:translateX(-50%);display:flex;justify-content:space-between;color:rgba(255,255,255,.52);font-size:.69rem;text-transform:uppercase;letter-spacing:.13em}
.inner-hero{min-height:560px;position:relative;color:#fff;display:flex;align-items:flex-end;padding:168px 0 72px;background-size:cover;background-position:center}.inner-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,9,9,.9),rgba(7,9,9,.25)),linear-gradient(0deg,rgba(7,9,9,.62),transparent 58%)}.inner-content{position:relative;z-index:2}.inner-content h1{font-size:clamp(3.55rem,5.7vw,5.85rem);font-weight:500;max-width:1010px;margin-bottom:24px}.inner-content>p:last-child{max-width:650px;color:rgba(255,255,255,.74);font-size:1.02rem}.about-hero{background-image:url('images/construction-2.jpg')}.capabilities-hero{background-image:url('images/hero-construction.jpg')}.services-hero{background-image:url('images/construction-3.jpg')}.projects-hero{background-image:url('images/project-2.jpg')}.contact-hero{background-image:url('images/hero-new.jpg')}

/* Grids */
.capability-grid,.values-grid,.service-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--darkline);border-left:1px solid var(--darkline)}
.cap-card,.dark-section .service-grid article{padding:34px;min-height:250px;border-right:1px solid var(--darkline);border-bottom:1px solid var(--darkline);transition:background .2s ease}.cap-card:hover,.dark-section .service-grid article:hover{background:rgba(255,255,255,.025)}
.cap-card>span,.values-grid article>span,.service-grid article>span,.timeline article>span{color:var(--gold);font-size:.69rem;font-weight:700}.cap-card h3,.service-grid h3,.values-grid h3{font-size:1.28rem;margin:48px 0 13px}.cap-card p{color:#aeb1af;font-size:.94rem}.cap-card a{display:inline-block;margin-top:14px;color:#fff;text-decoration:none;font-size:.9rem;font-weight:700}
.values-grid,.service-grid{border-color:var(--line)}.values-grid article,.service-grid article{padding:32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:230px}.values-grid article:hover,.service-grid article:hover{background:rgba(198,161,91,.035)}.values-grid p,.service-grid p{color:var(--muted);font-size:.95rem}

/* Projects */
.project-feature{background:#f0ece2}.dark-mode .project-feature{background:#1c1b14}.project-showcase{display:grid;grid-template-columns:1.32fr .68fr;gap:14px}.project-showcase figure,.project-gallery figure{margin:0;position:relative;overflow:hidden;background:#222}.project-showcase img,.project-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.75,.25,1)}.project-showcase figure:hover img,.project-gallery figure:hover img{transform:scale(1.025)}.project-large{min-height:560px}.project-stack{display:grid;gap:14px}.project-stack figure{min-height:273px}.project-showcase figcaption,.project-gallery figcaption{position:absolute;inset:auto 0 0;padding:24px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.82));display:flex;flex-direction:column}.project-showcase figcaption span,.project-gallery figcaption span{font-size:.67rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gold-bright)}.project-showcase figcaption strong,.project-gallery figcaption strong{font-size:1.08rem}.project-note{color:var(--muted);max-width:760px;font-size:.82rem;margin-top:18px}

/* Process / statements */
.process-section{padding-top:88px;padding-bottom:88px}.process-section .split{align-items:center}.process-list article{display:grid;grid-template-columns:48px 1fr;gap:18px;padding:21px 0;border-top:1px solid var(--line)}.process-list article:last-child{border-bottom:1px solid var(--line)}.process-list span{color:var(--gold-deep);font-size:.69rem}.process-list h3{margin:0 0 5px;font-size:1.05rem}.process-list p{margin:0;color:var(--muted);font-size:.94rem;max-width:500px}
.statement{background:#111 url('images/construction-2.jpg') center/cover fixed;position:relative;padding:118px 0;color:#fff;min-height:500px;display:flex;align-items:center}.statement:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,9,9,.84),rgba(7,9,9,.48))}.statement .shell{position:relative}.statement blockquote{font-size:clamp(2.9rem,5.1vw,5.25rem);line-height:1.045;max-width:1000px;margin:0}
.cta-section{background:linear-gradient(135deg,rgba(198,161,91,.08),transparent 60%)}.cta-grid{display:grid;grid-template-columns:1.15fr .6fr;gap:7vw;align-items:end}.cta-grid>div:last-child p{color:var(--muted);margin:0 0 24px}
.scope-list{border-top:1px solid var(--darkline)}.scope-list div{padding:14px 0;border-bottom:1px solid var(--darkline);color:#d1d3d0;font-size:.95rem}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.info-grid>div{min-height:132px;padding:25px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:16px}.info-grid span,.contact-details span{font-size:.67rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gold-deep)}.info-grid a{text-decoration:none;font-weight:700}

/* Capabilities */
.detail-list{border-top:1px solid var(--line)}.detail-list article{position:relative;display:grid;grid-template-columns:74px 1fr;gap:32px;padding:50px 0;border-bottom:1px solid var(--line)}.detail-list article:after{content:'';position:absolute;left:0;bottom:-1px;width:0;height:1px;background:var(--gold);transition:width .35s ease}.detail-list article:hover:after{width:100%}.detail-list article>span{color:var(--gold-deep);font-weight:700;font-size:.82rem;padding-top:10px}.detail-list h2{font-size:clamp(2rem,3vw,3.05rem);margin-bottom:15px}.detail-list p{color:var(--muted);max-width:760px;margin-bottom:14px}.detail-list ul{columns:2;column-gap:48px;padding-left:18px;color:var(--muted);font-size:.94rem;margin:0}

/* Services */
.timeline{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--darkline);border-left:1px solid var(--darkline)}.timeline article{padding:30px;min-height:230px;border-right:1px solid var(--darkline);border-bottom:1px solid var(--darkline)}.timeline h3{margin:42px 0 10px;font-size:1.15rem}.timeline p{color:#b4b7b5;font-size:.93rem}

/* Portfolio */
.project-gallery{display:grid;grid-template-columns:1fr 1fr;gap:14px}.project-gallery .wide{grid-column:1/-1;height:520px}.project-gallery figure:not(.wide){height:390px}

/* Contact */
.contact-intro{display:grid;grid-template-columns:1fr .78fr;gap:8vw}.contact-intro>div:first-child>p:last-child{color:var(--muted);max-width:590px}.contact-details{border-top:1px solid var(--line)}.contact-details>div{padding:17px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:112px 1fr}.contact-details a{text-decoration:none;font-weight:700}.contact-details p{margin:0}.form-layout{display:grid;grid-template-columns:.72fr 1.08fr;gap:7vw}.form-layout>div>p:not(.eyebrow){color:var(--muted)}.enquiry-form{background:var(--paper);padding:34px;border:1px solid var(--line)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.enquiry-form label{display:flex;flex-direction:column;gap:7px;font-size:.76rem;font-weight:700;margin-bottom:17px}.enquiry-form input,.enquiry-form select,.enquiry-form textarea{width:100%;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;padding:12px 13px;outline:none;transition:border-color .18s ease}.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus{border-color:var(--gold-deep)}.form-status{margin-top:22px;padding:0}.form-status.success,.form-status.error{padding:14px;border:1px solid var(--line)}.form-status.success{border-left:3px solid #5b8d62}.form-status.error{border-left:3px solid #a85a52}

/* Footer */
.site-footer{background:#101211;color:#fff;padding:62px 0 24px}.footer-grid{display:grid;grid-template-columns:1.45fr .58fr .85fr;gap:7vw}.footer-brand img{width:122px;margin-bottom:22px}.footer-brand p{max-width:410px;color:#969b98;font-size:.92rem}.footer-label{text-transform:uppercase;letter-spacing:.15em;font-size:.67rem;color:var(--gold);margin:0 0 18px}.footer-links,.footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:7px}.footer-links a,.footer-contact a{text-decoration:none;color:#bec2bf;font-size:.92rem;transition:color .18s}.footer-links a:hover,.footer-contact a:hover{color:#fff}.footer-contact p:not(.footer-label){margin:0;color:#bec2bf;font-size:.92rem}.footer-bottom{margin-top:48px;padding-top:20px;border-top:1px solid var(--darkline);display:flex;justify-content:space-between;color:#747a76;font-size:.72rem}
.whatsapp-button{position:fixed;right:22px;bottom:22px;z-index:40;display:inline-flex;align-items:center;gap:8px;background:#202420;color:#fff;padding:10px 13px;border:1px solid rgba(255,255,255,.12);border-radius:999px;text-decoration:none;font-weight:700;font-size:.75rem;box-shadow:0 10px 28px rgba(0,0,0,.24);transition:transform .18s ease,background .18s ease}.whatsapp-button:hover{transform:translateY(-2px);background:#292e29}.whatsapp-button svg{width:17px;height:17px;fill:#d9c07d}

@media(max-width:960px){
  :root{--header:74px;--section:82px}.shell,.header-shell{width:min(calc(100% - 40px),var(--max))}.header-shell{grid-template-columns:1fr auto auto}.brand img{width:98px}.menu-toggle{display:block;order:3}.site-nav{position:fixed;top:var(--header);left:0;right:0;background:#151716;padding:24px 20px 30px;display:none;flex-direction:column;gap:0;border-top:1px solid var(--darkline)}.site-nav.open{display:flex}.site-nav a{padding:13px 0;border-bottom:1px solid var(--darkline)}.site-nav a.active:after{display:none}.header-actions .button{display:none}.split,.cta-grid,.contact-intro,.form-layout{grid-template-columns:1fr;gap:42px}.prose{padding-top:0}.project-showcase{grid-template-columns:1fr}.project-stack{grid-template-columns:1fr 1fr}.timeline{grid-template-columns:repeat(2,1fr)}.info-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.statement{background-attachment:scroll}
}
@media(max-width:640px){
  :root{--section:68px}.shell,.header-shell{width:calc(100% - 32px)}.brand img{width:90px}.hero{min-height:690px;max-height:none}.hero h1{font-size:clamp(3.15rem,14.5vw,4.75rem)}.hero-index{display:none}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.inner-hero{min-height:500px;padding:145px 0 56px}.inner-content h1{font-size:clamp(3rem,12.4vw,4.35rem)}h2{font-size:clamp(2.35rem,11vw,3.45rem)}.capability-grid,.values-grid,.service-grid,.timeline,.info-grid{grid-template-columns:1fr}.cap-card,.values-grid article,.service-grid article{min-height:210px}.cap-card h3,.service-grid h3,.values-grid h3{margin-top:34px}.project-stack{grid-template-columns:1fr}.project-large,.project-stack figure{min-height:360px}.process-section{padding-top:68px;padding-bottom:68px}.detail-list article{grid-template-columns:1fr;gap:10px;padding:38px 0}.detail-list article>span{padding-top:0}.detail-list ul{columns:1}.project-gallery{grid-template-columns:1fr}.project-gallery .wide{grid-column:auto;height:390px}.project-gallery figure:not(.wide){height:340px}.contact-details>div{grid-template-columns:1fr;gap:6px}.form-row{grid-template-columns:1fr}.enquiry-form{padding:22px}.footer-grid{grid-template-columns:1fr}.footer-brand{grid-column:auto}.footer-bottom{flex-direction:column;gap:8px}.statement{min-height:400px;padding:88px 0}.statement blockquote{font-size:clamp(2.7rem,12vw,4rem)}.whatsapp-button{right:14px;bottom:14px}.whatsapp-button span{display:none}.whatsapp-button{width:44px;height:44px;justify-content:center;padding:0}.whatsapp-button svg{width:19px;height:19px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.project-showcase img,.project-gallery img{transform:none!important}}
/* Fix light-section contrast when dark mode is active */
body.dark-mode .intro,
body.dark-mode .process-section,
body.dark-mode .cta-section {
    background: #161817;
    color: #f1eee6;
}

body.dark-mode .intro .prose,
body.dark-mode .process-section .process-list p,
body.dark-mode .cta-section p {
    color: #a9aca8;
}

body.dark-mode .intro h2,
body.dark-mode .process-section h2,
body.dark-mode .cta-section h2,
body.dark-mode .process-section h3 {
    color: #f1eee6;
}
/* =========================================
   HOMEPAGE LIGHT MODE REFINEMENT
   ========================================= */

body:not(.dark-mode) .intro,
body:not(.dark-mode) .process-section,
body:not(.dark-mode) .cta-section {
    color: #171918;
}

body:not(.dark-mode) .intro h2,
body:not(.dark-mode) .process-section h2,
body:not(.dark-mode) .process-section h3,
body:not(.dark-mode) .cta-section h2 {
    color: #171918;
}

body:not(.dark-mode) .intro .prose,
body:not(.dark-mode) .process-section .process-list p,
body:not(.dark-mode) .cta-section p {
    color: #646863;
}

/* Tighter vertical rhythm */
.intro.section {
    padding-top: 92px;
    padding-bottom: 92px;
}

.process-section {
    padding-top: 82px;
    padding-bottom: 82px;
}

.cta-section {
    padding-top: 92px;
    padding-bottom: 92px;
}

/* Keep major headings strong without competing with hero */
.intro h2,
.process-section h2,
.cta-section h2 {
    font-size: clamp(2.6rem, 4vw, 4.25rem);
    line-height: 1.04;
}

/* Improve process list density */
.process-list article {
    padding-top: 18px;
    padding-bottom: 18px;
}
/* =========================================
   CAPABILITIES PAGE REFINEMENT
   ========================================= */

.capabilities-hero {
    min-height: 620px;
}

.capabilities-hero .inner-content h1 {
    max-width: 980px;
}

/* Tighten the intro directly after the hero */
body:not(.dark-mode) .capabilities-hero + .section,
body.dark-mode .capabilities-hero + .section {
    padding-top: 84px;
    padding-bottom: 84px;
}

/* Capability list container */
.detail-list {
    border-top: 1px solid var(--line);
}

/* Individual capability rows */
.detail-list article {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 34px;

    padding-top: 42px;
    padding-bottom: 42px;

    transition:
        background 180ms ease,
        padding-left 180ms ease;
}

.detail-list article:hover {
    background: rgba(198, 161, 91, 0.025);
    padding-left: 10px;
}

/* Capability numbers */
.detail-list article > span {
    padding-top: 7px;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
}

/* Capability titles */
.detail-list h2 {
    font-size: clamp(2rem, 2.8vw, 3rem);
    line-height: 1.08;
    margin-bottom: 14px;
    max-width: 900px;
}

/* Descriptions */
.detail-list p {
    max-width: 820px;
    line-height: 1.7;
    margin-bottom: 18px;
}

/* Bullet lists */
.detail-list ul {
    columns: 2;
    column-gap: 70px;
    max-width: 900px;
    line-height: 1.75;
}

.detail-list li {
    break-inside: avoid;
    margin-bottom: 2px;
}

/* Gold rule appears subtly when hovering */
.detail-list article::after {
    height: 1px;
    background: linear-gradient(
        90deg,
        var(--gold),
        rgba(198, 161, 91, 0)
    );
}

/* More controlled final CTA */
.capabilities-hero ~ .cta-section {
    padding-top: 86px;
    padding-bottom: 86px;
}

.capabilities-hero ~ .cta-section .cta-grid {
    align-items: center;
}

.capabilities-hero ~ .cta-section h2 {
    max-width: 690px;
    margin-bottom: 0;
}

.capabilities-hero ~ .cta-section .button {
    min-width: 190px;
}

/* Mobile */
@media (max-width: 760px) {
    .capabilities-hero {
        min-height: 560px;
    }

    .detail-list article {
        grid-template-columns: 1fr;
        gap: 12px;
        padding-top: 34px;
        padding-bottom: 34px;
    }

    .detail-list article:hover {
        padding-left: 0;
    }

    .detail-list article > span {
        padding-top: 0;
    }

    .detail-list ul {
        columns: 1;
    }

    .capabilities-hero ~ .cta-section .cta-grid {
        gap: 32px;
    }
}
/* =========================================
   SERVICES PAGE REFINEMENT
   ========================================= */

.services-hero {
    min-height: 600px;
}

.services-hero .inner-content h1 {
    max-width: 900px;
}

/* Tighten the first section after hero */
.services-hero + .section {
    padding-top: 84px;
    padding-bottom: 88px;
}

/* Services introduction */
.services-hero + .section .section-heading {
    margin-bottom: 42px;
    max-width: 760px;
}

/* Service grid */
.service-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
}

.service-grid article {
    min-height: 250px;
    padding: 32px;
    position: relative;

    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);

    display: flex;
    flex-direction: column;

    transition:
        background 180ms ease,
        transform 180ms ease;
}

.service-grid article:hover {
    background: rgba(198, 161, 91, 0.035);
}

.service-grid article > span {
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    margin-bottom: 42px;
}

.service-grid h3 {
    margin: 0 0 14px;
    font-size: 1.3rem;
    line-height: 1.25;
    max-width: 290px;
}

.service-grid p {
    margin: 0;
    line-height: 1.7;
    max-width: 330px;
}

/* Delivery process section */
.services-hero ~ .dark-section {
    padding-top: 96px;
    padding-bottom: 96px;
}

.services-hero ~ .dark-section .section-heading {
    margin-bottom: 44px;
}

/* Process timeline */
.timeline {
    grid-template-columns: repeat(3, 1fr);
}

.timeline article {
    min-height: 215px;
    padding: 28px;
    transition: background 180ms ease;
}

.timeline article:hover {
    background: rgba(255, 255, 255, 0.025);
}

.timeline h3 {
    margin-top: 34px;
    margin-bottom: 10px;
}

.timeline p {
    line-height: 1.65;
}

/* Final services CTA */
.services-hero ~ .cta-section {
    padding-top: 86px;
    padding-bottom: 86px;
}

.services-hero ~ .cta-section .cta-grid {
    align-items: center;
}

.services-hero ~ .cta-section h2 {
    margin-bottom: 0;
    max-width: 650px;
}

.services-hero ~ .cta-section .button {
    min-width: 190px;
}

/* Tablet */
@media (max-width: 1000px) {
    .service-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .timeline {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Mobile */
@media (max-width: 700px) {
    .services-hero {
        min-height: 540px;
    }

    .service-grid,
    .timeline {
        grid-template-columns: 1fr;
    }

    .service-grid article,
    .timeline article {
        min-height: auto;
    }

    .service-grid article > span {
        margin-bottom: 26px;
    }
}
/* =========================================
   PROJECTS PAGE REFINEMENT
   ========================================= */

.projects-hero {
    min-height: 620px;
}

.projects-hero .inner-content h1 {
    max-width: 900px;
}

/* Intro after hero */
.projects-hero + .section {
    padding-top: 84px;
    padding-bottom: 84px;
}

/* =========================================
   PROJECT IMAGE GALLERY
   ========================================= */

.projects-hero ~ .soft-section {
    padding-top: 74px;
    padding-bottom: 74px;
}

.project-gallery {
    display: grid;
    grid-template-columns: 1.35fr 0.65fr;
    grid-template-rows: repeat(2, 300px);
    gap: 14px;
}

.project-gallery figure {
    position: relative;
    margin: 0;
    overflow: hidden;
    background: #171918;
}

.project-gallery figure.wide {
    grid-row: 1 / 3;
}

.project-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;

    filter: saturate(0.88) contrast(1.04);

    transition:
        transform 600ms cubic-bezier(.2, .75, .25, 1),
        filter 400ms ease;
}

.project-gallery figure:hover img {
    transform: scale(1.035);
    filter: saturate(1) contrast(1.04);
}

/* Dark gradient over project imagery */
.project-gallery figure::after {
    content: "";
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            transparent 42%,
            rgba(8, 10, 9, 0.82) 100%
        );

    pointer-events: none;
}

/* Project labels */
.project-gallery figcaption {
    position: absolute;
    z-index: 2;

    left: 0;
    right: 0;
    bottom: 0;

    padding: 28px;

    display: flex;
    flex-direction: column;
    gap: 5px;

    background: none;
}

.project-gallery figcaption span {
    color: var(--gold-bright);
    font-size: 0.67rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.project-gallery figcaption strong {
    color: #fff;
    font-size: 1.12rem;
    font-weight: 600;
}

/* =========================================
   PROJECT CATEGORIES
   ========================================= */

.projects-hero ~ .section .service-grid {
    margin-top: 8px;
}

/*
   Projects only has four categories, so a
   two-column layout gives them more authority
   than squeezing them into small cards.
*/
.projects-hero ~ .section .service-grid {
    grid-template-columns: repeat(2, 1fr);
}

.projects-hero ~ .section .service-grid article {
    min-height: 225px;
    padding: 34px;
}

.projects-hero ~ .section .service-grid h3 {
    font-size: 1.35rem;
    max-width: 360px;
}

/* =========================================
   PROJECT CTA
   ========================================= */

.projects-hero ~ .cta-section {
    padding-top: 86px;
    padding-bottom: 86px;
}

.projects-hero ~ .cta-section .cta-grid {
    align-items: center;
}

.projects-hero ~ .cta-section h2 {
    margin-bottom: 0;
    max-width: 650px;
}

/* =========================================
   RESPONSIVE
   ========================================= */

@media (max-width: 900px) {
    .project-gallery {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 430px 270px;
    }

    .project-gallery figure.wide {
        grid-column: 1 / 3;
        grid-row: auto;
    }
}

@media (max-width: 700px) {
    .projects-hero {
        min-height: 540px;
    }

    .project-gallery {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: none;
    }

    .project-gallery figure,
    .project-gallery figure.wide {
        grid-column: auto;
        grid-row: auto;
        min-height: 300px;
    }

    .projects-hero ~ .section .service-grid {
        grid-template-columns: 1fr;
    }

    .projects-hero ~ .section .service-grid article {
        min-height: auto;
    }
}
/* =========================================
   CONTACT PAGE REFINEMENT
   ========================================= */

.contact-hero {
    min-height: 600px;
}

.contact-hero .inner-content h1 {
    max-width: 820px;
}

/* Intro section */
.contact-hero + .section {
    padding-top: 86px;
    padding-bottom: 86px;
}

.contact-intro {
    align-items: start;
}

.contact-intro h2 {
    max-width: 680px;
}

.contact-intro > div:first-child > p:last-child {
    max-width: 620px;
    line-height: 1.75;
}

/* Contact detail panel */
.contact-details {
    border-top: 1px solid var(--line);
}

.contact-details > div {
    padding: 20px 0;
    grid-template-columns: 120px 1fr;
}

.contact-details span {
    font-size: 0.68rem;
    letter-spacing: 0.13em;
}

.contact-details a,
.contact-details p {
    font-size: 1rem;
}

/* =========================================
   ENQUIRY SECTION
   ========================================= */

.contact-hero ~ .soft-section {
    padding-top: 90px;
    padding-bottom: 90px;
}

.form-layout {
    align-items: start;
}

.form-layout > div h2 {
    max-width: 520px;
}

.form-layout > div > p:not(.eyebrow) {
    max-width: 500px;
    line-height: 1.75;
}

/* Form container */
.enquiry-form {
    padding: 38px;
    border: 1px solid var(--line);
    background: var(--paper);

    box-shadow:
        0 18px 50px rgba(0, 0, 0, 0.035);
}

/* Field labels */
.enquiry-form label {
    margin-bottom: 18px;
    gap: 8px;

    font-size: 0.73rem;
    letter-spacing: 0.02em;
}

/* Inputs */
.enquiry-form input,
.enquiry-form select,
.enquiry-form textarea {
    min-height: 48px;
    padding: 12px 14px;

    border-radius: 0;

    transition:
        border-color 180ms ease,
        background 180ms ease;
}

.enquiry-form textarea {
    min-height: 170px;
    resize: vertical;
}

.enquiry-form input:hover,
.enquiry-form select:hover,
.enquiry-form textarea:hover {
    border-color: rgba(198, 161, 91, 0.5);
}

.enquiry-form input:focus,
.enquiry-form select:focus,
.enquiry-form textarea:focus {
    border-color: var(--gold-deep);
    background: rgba(198, 161, 91, 0.025);
}

/* Submit button */
.enquiry-form .button {
    min-width: 160px;
    margin-top: 4px;
}

/* Status messages */
.form-status.success,
.form-status.error {
    margin-top: 28px;
    padding: 16px 18px;
}

/* =========================================
   DARK MODE FORM
   ========================================= */

body.dark-mode .enquiry-form {
    background: #171918;
}

body.dark-mode .enquiry-form input,
body.dark-mode .enquiry-form select,
body.dark-mode .enquiry-form textarea {
    background: #171918;
    color: #f1eee6;
}

body.dark-mode .enquiry-form option {
    background: #171918;
    color: #f1eee6;
}

/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 900px) {
    .contact-intro,
    .form-layout {
        grid-template-columns: 1fr;
        gap: 54px;
    }

    .contact-details {
        max-width: 620px;
    }
}

@media (max-width: 650px) {
    .contact-hero {
        min-height: 540px;
    }

    .form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .enquiry-form {
        padding: 24px;
    }

    .contact-details > div {
        grid-template-columns: 1fr;
        gap: 5px;
    }
}