:root{--green:#07130f;--green-2:#10241d;--gold:#c89b45;--gold-light:#e3c679;--ivory:#f7f3eb;--ink:#1d2924;--muted:#667069;--line:rgba(255,255,255,.17);--hairline:#d7d0c4}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:Manrope,Arial,sans-serif}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;font-weight:500;letter-spacing:-.035em}
em{color:var(--gold-light);font-weight:500;font-style:italic}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.section{padding:145px 8.5vw 155px}

/* ---------- header ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:60;height:100px;padding:0 5vw;display:flex;align-items:center;color:#fff;border-bottom:1px solid rgba(255,255,255,.14);background:rgba(6,17,13,.74);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}
section[id]{scroll-margin-top:100px}
.brand{display:flex;align-items:center;gap:16px}
.brand img{width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 5px 12px rgba(0,0,0,.42))}
.brand-word{font-family:"Cinzel",Georgia,serif;font-size:13px;line-height:1.3;letter-spacing:.16em;text-transform:uppercase;color:#fff}
.brand-font{font-family:"Cinzel",Georgia,serif;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.brand-word em{display:block;font-style:normal;font-weight:500;font-size:11px;letter-spacing:.24em;color:var(--gold-light);margin-top:2px}
.site-header nav{display:flex;gap:34px;margin-left:auto;margin-right:36px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.94)}
.site-header nav a{padding:12px 0;position:relative}
.site-header nav a:after{content:"";position:absolute;left:0;right:100%;bottom:5px;height:1px;background:var(--gold);transition:.25s}
.site-header nav a:hover:after{right:0}
.header-cta{display:flex;align-items:center;gap:9px;padding:11px 24px;border:1px solid var(--gold);color:var(--gold-light);text-transform:uppercase;font-size:10px;font-weight:600;letter-spacing:.17em;transition:.25s}
.header-cta:hover{background:var(--gold);color:#09100d}
.menu-toggle{display:none;background:none;border:1px solid rgba(255,255,255,.35);color:#fff;padding:9px 12px;text-transform:uppercase;letter-spacing:.13em;font:10px Manrope}

/* ---------- shared type / buttons ---------- */
.kicker{text-transform:uppercase;font-size:10px;font-weight:600;letter-spacing:.27em;color:var(--gold-light);margin-bottom:24px}
.kicker.dark{color:#9b6f29}
.lead{margin:26px 0 34px;max-width:600px;color:rgba(255,255,255,.82);font-size:15px;line-height:1.8}
.button{display:inline-flex;justify-content:space-between;align-items:center;gap:44px;min-width:260px;padding:19px 22px;text-transform:uppercase;font-size:10px;font-weight:600;letter-spacing:.15em;transition:.25s;border:1px solid transparent;background:none}
.button-gold{background:var(--gold);color:#09100d}
.button-gold:hover{background:#fff;color:#09100d;transform:translateY(-2px)}
.button-outline{border-color:var(--gold-light);color:#fff}
.button-outline:hover{background:var(--gold);border-color:var(--gold);color:#09100d;transform:translateY(-2px)}
.text-link{align-self:flex-start;text-transform:uppercase;letter-spacing:.16em;font-size:10px;padding-bottom:8px;border-bottom:1px solid var(--gold);display:inline-flex;gap:30px}
.section-index{text-transform:uppercase;font-size:9px;font-weight:600;letter-spacing:.2em;color:#4e4b44;margin-bottom:60px}
.section-index span{color:#a77a2e;margin-right:14px}
.section-index.light{color:rgba(255,255,255,.7)}

/* ---------- pinned hero ---------- */
.hero-pin-wrap{position:relative;height:300vh}
.hero-visual{position:sticky;top:0;height:100svh;color:#fff;overflow:hidden}
.hero-visual:after{content:"";position:absolute;inset:0;transition:opacity .7s ease;background:linear-gradient(90deg,rgba(5,22,16,.92) 0%,rgba(5,22,16,.72) 33%,rgba(5,22,16,.2) 64%,rgba(5,22,16,.05)),linear-gradient(0deg,rgba(4,16,12,.78),transparent 48%)}
.hero-visual.is-clear:after{opacity:.32}
.hero-media{position:absolute;inset:0;background:url('assets/hero.png?v=20260818b') center/cover no-repeat}
.hero-moment{position:absolute;z-index:2;left:8.5vw;right:8.5vw;top:clamp(170px,26vh,280px);max-width:850px;opacity:0;pointer-events:none;transform:translateY(14px);transition:opacity .35s ease,transform .35s ease}
.hero-moment.is-active{opacity:1;pointer-events:auto;transform:translateY(0);transition:opacity .5s ease .3s,transform .5s ease .3s}
.hero-moment h1{font-size:clamp(44px,5.6vw,90px);line-height:1.02;text-shadow:0 3px 28px rgba(0,0,0,.35)}
.hero-moment-ctas{display:flex;gap:22px;flex-wrap:wrap;margin-top:6px}

/* ---------- vision / statement ---------- */
.statement{display:grid;grid-template-columns:.55fr 1.25fr .8fr;gap:5vw;padding:145px 8.5vw 155px}
.statement h2{font-size:clamp(43px,4.6vw,68px);line-height:1.08}
.statement-copy{padding-top:35px;color:var(--muted);font-size:14px;line-height:1.9}
.statement-copy p+p{margin-top:24px}

/* ---------- project (Urban Ranches intro) ---------- */
.project{position:relative;min-height:850px;background:var(--green-2);overflow:hidden}
.project-image{position:absolute;inset:0 35% 0 0;background:url('assets/forty-four-project.png?v=20260818') center/cover no-repeat}
.project-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 50%,var(--green-2)),linear-gradient(0deg,rgba(0,0,0,.2),transparent)}
.project-card{position:absolute;right:0;inset-block:0;width:43%;padding:9vw 7vw 8vw;color:#fff;display:flex;flex-direction:column;justify-content:center}
.project-card h2{font-size:clamp(62px,7vw,105px);line-height:.78;margin-bottom:40px}
.project-card>p:not(.kicker){font-size:14px;line-height:1.9;color:rgba(255,255,255,.65);max-width:470px}
.project-meta{display:flex;flex-wrap:wrap;gap:14px 25px;margin:38px 0;border-block:1px solid var(--line);padding:20px 0;text-transform:uppercase;letter-spacing:.13em;font-size:8px;color:var(--gold-light)}
.project-card-ctas{display:flex;flex-wrap:wrap;gap:16px 34px}

/* ---------- details (buyer information) ---------- */
.details{background:var(--ivory)}
.details-head{max-width:640px;margin-bottom:64px}
.details-head h2{font-size:clamp(36px,3.6vw,54px);line-height:1.16;margin-top:16px}
.details-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hairline);border-left:1px solid var(--hairline)}
.details-card{border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);padding:34px 26px;min-height:250px;display:flex;flex-direction:column;gap:14px}
.details-card-tag{text-transform:uppercase;font-size:9px;font-weight:600;letter-spacing:.18em;color:#a77a2e}
.details-card h3{font-size:20px;line-height:1.25}
.details-card p{font-size:13px;line-height:1.75;color:var(--muted);flex:1}
.details-card-action{background:var(--green-2);color:#fff}
.details-card-action .details-card-tag{color:var(--gold-light)}
.details-card-action p{color:rgba(255,255,255,.65)}
.details-card-action .text-link{margin-top:auto}

/* ---------- about ---------- */
.about{background:var(--ivory)}
.about-grid{display:grid;grid-template-columns:.6fr 1fr;gap:6vw}
.about-grid h2{font-size:clamp(36px,3.6vw,54px);line-height:1.16;margin-top:16px}
.about-copy{padding-top:6px;color:var(--muted);font-size:14px;line-height:1.9}
.about-copy p+p{margin-top:22px}

/* ---------- principles ---------- */
.principles{background:var(--green);color:#fff;padding:135px 8.5vw}
.principles-head{display:grid;grid-template-columns:.55fr 2fr;padding-bottom:75px}
.principles-head h2{font-size:clamp(48px,5vw,76px)}
.principle-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.principle-grid article{padding:38px 30px 20px 0;border-right:1px solid var(--line);min-height:270px}
.principle-grid article+article{padding-left:30px}
.principle-grid article:last-child{border-right:0}
.principle-grid article>span{color:var(--gold);font-size:10px}
.principle-grid h3{font-size:26px;margin:55px 0 16px}
.principle-grid p{font-size:12px;line-height:1.8;color:rgba(255,255,255,.55)}

/* ---------- disciplines ---------- */
.disciplines{display:grid;grid-template-columns:43% 57%;min-height:880px}
.discipline-mark{background:linear-gradient(145deg,#0c2119,#06140f);display:flex;align-items:center;justify-content:center;padding:7vw;position:relative;overflow:hidden}
.discipline-mark:before,.discipline-mark:after{content:"";position:absolute;border:1px solid rgba(200,155,69,.24)}
.discipline-mark:before{inset:7%}
.discipline-mark:after{inset:13%}
.discipline-mark img{width:100%;height:auto;position:relative;z-index:1;filter:drop-shadow(0 16px 18px rgba(0,0,0,.42)) saturate(1.08)}
.discipline-copy{padding:120px 8vw}
.discipline-copy h2{font-size:clamp(44px,4.5vw,68px);line-height:1.05;margin-bottom:55px}
.discipline-copy>.section-index{margin-bottom:65px}
.discipline-list{border-top:1px solid var(--hairline)}
.discipline-list div{display:grid;grid-template-columns:60px 1fr;padding:21px 0;border-bottom:1px solid #d7d0c4}
.discipline-list span{font-size:9px;color:#a77a2e}
.discipline-list p{font:22px "Playfair Display",Georgia,serif;color:#37332c}

/* ---------- contact / enquiry ---------- */
.contact{background:#203a2f;color:#fff;padding:150px 8.5vw;display:grid;grid-template-columns:1fr .85fr;gap:6vw;align-items:start}
.contact-intro h2{font-size:clamp(46px,5vw,74px);line-height:1.02;margin:18px 0 26px}
.contact-intro>p{max-width:480px;color:rgba(255,255,255,.68);font-size:14px;line-height:1.85;margin-bottom:32px}
.contact-links{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.contact-links .text-link{color:#fff}

.enquiry-form{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.16);padding:44px 38px;display:flex;flex-direction:column;gap:18px}
.enquiry-form h3{font-size:21px;color:#fff;margin-bottom:2px}
.enquiry-form label{display:flex;flex-direction:column;gap:8px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.6)}
.enquiry-form .optional{text-transform:none;letter-spacing:0;color:rgba(255,255,255,.4)}
.enquiry-form input,.enquiry-form select{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.24);color:#fff;padding:13px 14px;font:14px Manrope,Arial,sans-serif;border-radius:1px}
.enquiry-form select option{color:#1d2924}
.enquiry-form input:focus,.enquiry-form select:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
.enquiry-form fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.enquiry-form legend{padding:0;margin-bottom:2px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.6)}
.radio-row{display:flex;gap:22px;flex-wrap:wrap}
.radio{flex-direction:row!important;align-items:center;gap:8px!important;text-transform:none!important;letter-spacing:0!important;font-size:13px!important;color:#fff!important}
.radio input{width:auto;accent-color:var(--gold)}
.enquiry-form .button{min-width:0;width:100%;justify-content:center;gap:16px;margin-top:4px}
.enquiry-status{margin-top:14px;padding:14px 16px;font-size:13px;line-height:1.6;border-radius:1px;border:1px solid rgba(255,255,255,.2)}
.enquiry-status.is-success{background:rgba(200,155,69,.12);border-color:rgba(200,155,69,.5);color:#fff}
.enquiry-status.is-error{background:rgba(200,80,69,.12);border-color:rgba(200,80,69,.5);color:#fff}
.enquiry-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- footer ---------- */
footer{background:var(--green);color:#fff;padding:34px 5vw;display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:45px}
footer>img{max-width:138px;max-height:94px;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.4))}
.footer-line{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 40px;color:rgba(255,255,255,.48);font-size:8px;text-transform:uppercase;letter-spacing:.13em}
footer>a{color:var(--gold-light);text-transform:uppercase;font-size:8px;letter-spacing:.14em}

/* ---------- reveal-on-scroll ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .75s ease,transform .75s ease}
.reveal.visible{opacity:1;transform:none}

/* ---------- sticky-unsupported fallback ---------- */
@supports not (position:sticky){
  .hero-pin-wrap{height:auto}
  .hero-visual{position:relative;height:100svh}
  .hero-moment{display:none}
  .hero-moment.is-active{display:block;opacity:1;pointer-events:auto;transform:translateY(-50%)}
}

/* ---------- tablet / mobile ---------- */
@media(max-width:900px){
  .site-header{height:84px;padding:0 22px}
  .brand img{width:40px;height:40px}
  .brand-word{font-size:9px;letter-spacing:.1em}
  .brand-word em{font-size:8px;letter-spacing:.16em}
  .menu-toggle{display:block;margin-left:auto}
  .header-cta{display:none}
  .site-header nav{display:none;position:absolute;top:84px;left:0;right:0;margin:0;padding:18px 22px 24px;background:rgba(5,20,15,.97);flex-direction:column;gap:4px;font-size:13px}
  .site-header nav a{padding:14px 4px}
  .site-header nav.open{display:flex}

  section[id]{scroll-margin-top:84px}
  .hero-pin-wrap{height:250vh}
  .hero-media{background-image:url('assets/hero.png?v=20260818b');background-repeat:no-repeat;background-position:center 42%;background-size:auto 54%;background-color:#07130f}
  .hero-visual:after{background:linear-gradient(0deg,rgba(6,15,11,.88) 0%,rgba(6,15,11,.32) 30%,rgba(6,15,11,.32) 70%,rgba(6,15,11,.88) 100%)}
  .hero-moment{left:25px;right:25px;top:clamp(130px,24vh,210px)}
  .hero-moment h1{font-size:40px}
  .hero-moment .lead{font-size:13px}
  .hero-moment-ctas{flex-direction:column;gap:14px}
  .hero-moment-ctas .button{width:100%;min-width:0;justify-content:center}

  .section,.statement,.details,.about{padding:90px 25px}
  .statement{grid-template-columns:1fr;gap:30px}
  .statement h2{font-size:43px}
  .statement-copy{padding-top:0}

  .project{min-height:auto}
  .project-image{position:relative;inset:auto;height:52vh;background-position:50% 42%}
  .project-image:after{background:linear-gradient(0deg,var(--green-2) 0%,rgba(16,36,29,.15) 100%)}
  .project-card{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:auto;padding:55px 25px}
  .project-card h2{font-size:65px}

  .details-head{margin-bottom:44px}
  .details-grid{grid-template-columns:1fr 1fr}

  .about-grid{grid-template-columns:1fr;gap:24px}

  .principles{padding:90px 25px}
  .principles-head{grid-template-columns:1fr;gap:35px}
  .principle-grid{grid-template-columns:1fr 1fr}
  .principle-grid article{border-bottom:1px solid var(--line);min-height:250px}

  .disciplines{grid-template-columns:1fr}
  .discipline-mark{min-height:500px;padding:18vw}
  .discipline-copy{padding:90px 25px}
  .discipline-copy>.section-index{margin-bottom:50px}

  .contact{padding:100px 25px;grid-template-columns:1fr;gap:50px}
  .contact h2{font-size:50px}
  .enquiry-form{padding:32px 26px}

  footer{grid-template-columns:1fr;text-align:center;justify-items:center;padding:34px 25px}
  .footer-line{flex-direction:column;gap:12px}
  footer>a{margin-top:10px}
}

@media(max-width:560px){
  .hero-moment h1{font-size:36px}
  .button{min-width:0}
  .details-grid{grid-template-columns:1fr}
  .principle-grid{grid-template-columns:1fr}
  .principle-grid article,.principle-grid article+article{padding:30px 0;min-height:auto;border-right:0}
  .principle-grid h3{margin:35px 0 12px}
  .project-meta{flex-direction:column;gap:12px}
  .discipline-copy h2{font-size:42px}
  .discipline-list p{font-size:18px}
  .radio-row{gap:14px 22px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .button,.site-header nav a:after,.reveal,.hero-moment,.hero-visual:after{transition:none}
  .reveal{opacity:1;transform:none}
}
