:root{
  --paper:#f5f3ee;
  --paper-alt:#ecebe6;
  --cream:#f1e7d6;
  --ink:#202c3a;
  --muted:#66707a;
  --line:rgba(32,44,58,.16);
  --deep:#202c3a;
  --deep-2:#172434;
  --max:1320px;
  --header-h:86px;
  --ease:cubic-bezier(.22,.7,.24,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Inter,sans-serif;
  font-weight:300;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:auto}
button{font:inherit}
.shell{width:min(calc(100% - 56px),var(--max));margin-inline:auto}
.serif{font-family:Fraunces,serif;font-weight:400}
.eyebrow{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600}

/* Header */
.header{
  position:fixed;
  inset:0 0 auto;
  z-index:100;
  background:rgba(245,243,238,.94);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(14px);
  transition:box-shadow .35s ease,background .35s ease;
}
.header.scrolled{box-shadow:0 12px 35px rgba(18,29,42,.08);background:rgba(245,243,238,.985)}
.nav{min-height:var(--header-h);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:38px}
.brand-logo{display:flex;align-items:center}
.brand-logo img{width:168px;max-height:62px;object-fit:contain}
.links{display:flex;justify-content:center;align-items:center;gap:30px;font-size:.72rem;font-weight:500;letter-spacing:.04em}
.links a{position:relative;white-space:nowrap;padding:8px 0}
.links a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.links a:hover::after,.links a.active::after{transform:scaleX(1)}
.cta{padding:12px 18px;border:1px solid var(--ink);font-size:.67rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;white-space:nowrap;transition:background .25s ease,color .25s ease,transform .25s ease}
.cta:hover{background:var(--ink);color:var(--paper);transform:translateY(-1px)}
.menu{display:none;background:none;border:0;color:inherit;width:42px;height:42px;cursor:pointer}
.menu span{display:block;width:23px;height:1px;background:currentColor;margin:6px auto;transition:transform .25s ease,opacity .25s ease}
.menu[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}
.menu[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}

/* Shared section transitions */
section{position:relative;isolation:isolate}
section:not(.hero)::before{
  content:"";
  position:absolute;
  left:50%;top:0;
  width:min(calc(100% - 56px),var(--max));
  height:1px;
  background:linear-gradient(90deg,transparent,var(--line),transparent);
  transform:translateX(-50%);
  opacity:.55;
  pointer-events:none;
}
.reveal{opacity:0;transform:translateY(42px);transition:opacity .95s var(--ease),transform .95s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal .eyebrow,.reveal h2,.reveal p,.reveal article,.reveal .service-list div{
  opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease),transform .8s var(--ease)
}
.reveal.in .eyebrow,.reveal.in h2,.reveal.in p,.reveal.in article,.reveal.in .service-list div{opacity:1;transform:none}
.reveal.in .eyebrow{transition-delay:.06s}
.reveal.in h2{transition-delay:.12s}
.reveal.in p{transition-delay:.18s}
.reveal.in article:nth-child(1),.reveal.in .service-list div:nth-child(1){transition-delay:.08s}
.reveal.in article:nth-child(2),.reveal.in .service-list div:nth-child(2){transition-delay:.14s}
.reveal.in article:nth-child(3),.reveal.in .service-list div:nth-child(3){transition-delay:.20s}
.reveal.in article:nth-child(4),.reveal.in .service-list div:nth-child(4){transition-delay:.26s}
.reveal.in article:nth-child(5),.reveal.in .service-list div:nth-child(5){transition-delay:.32s}
.reveal.in .service-list div:nth-child(6){transition-delay:.38s}

/* Hero */
.hero{min-height:100svh;color:#fff;display:flex;align-items:flex-end;padding-top:var(--header-h);overflow:hidden}
.hero-media{position:absolute;inset:var(--header-h) 0 0;overflow:hidden}
.hero-media img{height:100%;object-fit:cover;object-position:center;transform:scale(1.015);will-change:auto}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,18,25,.74),rgba(12,18,25,.17) 68%),linear-gradient(0deg,rgba(12,18,25,.48),transparent 55%)}
.hero-copy{position:relative;z-index:2;width:min(calc(100% - 56px),var(--max));max-width:var(--max);margin-inline:auto;padding:130px 0 78px;animation:heroEnter 1.1s var(--ease) both}
.hero h1{font-size:clamp(3.4rem,6.7vw,7rem);line-height:.94;letter-spacing:-.035em;margin:20px 0 25px}
.hero p{font-size:1.02rem;max-width:620px;color:rgba(255,255,255,.86);margin:0}
.actions{display:flex;gap:20px;align-items:center;margin-top:34px;flex-wrap:wrap}
.btn{display:inline-flex;min-height:52px;align-items:center;padding:0 23px;border:1px solid currentColor;font-size:.69rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;transition:transform .25s ease,background .25s ease,color .25s ease}
.btn:hover{transform:translateY(-2px)}
.btn.solid{background:#fff;color:var(--ink);border-color:#fff}
.btn.solid:hover{background:var(--cream)}
.text-link{font-size:.71rem;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:3px}
@keyframes heroEnter{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:none}}

/* Philosophy */
.philosophy{padding:150px 0}
.philosophy-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:95px;align-items:center}
.philosophy h2{font-size:clamp(3rem,5.3vw,5.6rem);line-height:.96;letter-spacing:-.035em;margin:18px 0 30px}
.philosophy p{color:var(--muted);font-size:1rem;max-width:520px}
.signature{font-family:Fraunces,serif;color:var(--ink)!important;margin-top:28px}
.feature-photo{display:flex;align-items:center;justify-content:center;min-height:560px;margin:0;padding:18px;background:#fff;border:1px solid var(--line);overflow:hidden}
.feature-photo img{width:100%;max-width:1100px;max-height:620px;object-fit:contain;transition:transform .8s var(--ease)}
.feature-photo:hover img{transform:scale(1.025)}

/* Services */
.services{background:var(--paper-alt);padding:140px 0}
.services-head{display:grid;grid-template-columns:1fr .65fr;gap:70px;align-items:end;margin-bottom:68px}
.services h2{font-size:clamp(2.8rem,5vw,5rem);line-height:.98;letter-spacing:-.035em;margin:15px 0 0}
.services-head p{margin:0;color:var(--muted)}
.service-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:90px}
.service-list div{padding:23px 20px;border-right:1px solid var(--line);font-size:.85rem;font-weight:500}
.service-list div:nth-child(3n){border-right:0}
.service-list div:nth-child(-n+3){border-bottom:1px solid var(--line)}
.work-grid{display:grid;grid-template-columns:1.18fr .82fr;gap:28px}
.work-large{position:relative;min-height:760px;overflow:hidden}
.work-large img{height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.work-large:hover img{transform:scale(1.035)}
.work-small-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.work-card{background:var(--paper);border:1px solid var(--line);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s ease}
.work-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(25,36,49,.10)}
.work-card img{aspect-ratio:4/3;object-fit:cover;transition:transform .7s var(--ease)}
.work-card:hover img{transform:scale(1.04)}
.work-card .copy{padding:18px 19px 21px}
.work-card h3,.work-large h3{font-family:Fraunces,serif;font-weight:400;margin:0;font-size:1.25rem;line-height:1.2}
.work-card .num{display:block;font-size:.61rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.work-large .overlay{position:absolute;inset:auto 0 0;padding:100px 28px 27px;color:#fff;background:linear-gradient(transparent,rgba(10,15,20,.76))}
.work-large h3{font-size:2rem}

/* Why Iron */
.quote.why-iron-section{min-height:72vh;display:flex;align-items:center;justify-content:center;padding:110px 0;color:var(--cream);overflow:hidden;background:radial-gradient(circle at 18% 20%,rgba(160,178,194,.13) 0 2px,transparent 3px),radial-gradient(circle at 82% 72%,rgba(160,178,194,.10) 0 2px,transparent 3px),linear-gradient(135deg,var(--deep-2) 0%,#223247 55%,#182535 100%)}
.quote.why-iron-section::after{content:"";position:absolute;inset:-15%;background:repeating-linear-gradient(60deg,transparent 0 76px,rgba(255,255,255,.03) 77px 78px),repeating-linear-gradient(-60deg,transparent 0 76px,rgba(255,255,255,.022) 77px 78px);transform:rotate(-3deg);pointer-events:none}
.why-iron-shell{display:flex;align-items:center;justify-content:center;width:100%}
.why-iron-content{position:relative;z-index:2;width:min(920px,100%);margin:auto;padding:0 30px;text-align:center}
.why-iron-eyebrow{display:block;margin:0 0 26px;color:var(--cream);font-size:.8rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.why-iron-name{margin:0 0 34px;font-family:Fraunces,serif;font-size:clamp(4rem,8vw,7rem);font-weight:400;line-height:.94;letter-spacing:-.05em;color:var(--cream)}
.why-iron-name span,.why-iron-name strong{color:var(--cream);font-weight:inherit}
.why-iron-content p{max-width:790px;margin:0 auto 18px;color:var(--cream);font-size:clamp(1.12rem,1.6vw,1.35rem);line-height:1.75}
.why-iron-content p strong{color:var(--cream);font-weight:600}

/* Estates */
.estates{padding:145px 0}
.section-head{max-width:760px;margin-bottom:58px}
.section-head h2{font-size:clamp(2.8rem,5vw,5rem);line-height:1;margin:15px 0 0}
.estate-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.estate-card{border:1px solid var(--line);background:#fff;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s ease}
.estate-card:hover{transform:translateY(-6px);box-shadow:0 18px 45px rgba(25,36,49,.10)}
.estate-card img{aspect-ratio:16/10;object-fit:cover;transition:transform .8s var(--ease)}
.estate-card:hover img{transform:scale(1.035)}
.estate-copy{padding:20px 22px}
.estate-copy h3{font-family:Fraunces,serif;font-weight:400;font-size:1.4rem;margin:0}
.estate-copy span{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* Areas */
.areas{background:var(--deep);color:#fff;padding:115px 0;text-align:center}
.areas h2{font-family:Fraunces,serif;font-size:clamp(2.1rem,4vw,4rem);font-weight:400;margin:16px auto 45px}
.area-list{display:flex;justify-content:center;gap:15px 34px;flex-wrap:wrap;font-size:clamp(1.15rem,2.2vw,2rem);font-family:Fraunces,serif}
.area-list span{transition:opacity .25s ease,transform .25s ease}
.area-list span:hover{opacity:.7;transform:translateY(-2px)}
.area-list span:not(:last-child)::after{content:"·";margin-left:34px;opacity:.4}

/* Contact */
.contact{padding:135px 0 110px}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:100px;align-items:start}
.contact h2{font-family:Fraunces,serif;font-weight:400;font-size:clamp(3rem,5.2vw,5.5rem);line-height:.98;letter-spacing:-.03em;margin:18px 0 25px}
.contact p{color:var(--muted);max-width:550px}
.contact-box{border-top:1px solid var(--line);padding-top:24px;display:grid;gap:18px}
.contact-box a{position:relative;font-family:Fraunces,serif;font-size:1.45rem;border-bottom:1px solid var(--line);padding:0 30px 16px 0;transition:padding-left .3s var(--ease),color .25s ease}
.contact-box a::after{content:"→";position:absolute;right:0;top:0;opacity:0;transform:translateX(-8px);transition:opacity .25s ease,transform .25s ease}
.contact-box a:hover{padding-left:8px;color:#40536a}
.contact-box a:hover::after{opacity:1;transform:none}

/* Footer */
footer{border-top:1px solid var(--line);padding:34px 0}
.footer-inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;font-size:.75rem;color:var(--muted)}
.footer-logo img{width:142px;max-height:56px;object-fit:contain}

/* Responsive */
@media(max-width:1100px){.brand-logo img{width:145px}}
@media(max-width:980px){
  .links,.nav>.cta{display:none}
  .nav{grid-template-columns:1fr auto}
  .menu{display:block}
  .links.open{position:fixed;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;inset:var(--header-h) 0 auto;background:var(--paper);padding:28px;gap:18px;border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(18,29,42,.08);font-size:.85rem}
  .philosophy-grid,.services-head,.contact-grid{grid-template-columns:1fr;gap:45px}
  .work-grid{grid-template-columns:1fr}
  .work-large{min-height:600px}
}
@media(max-width:760px){
  :root{--header-h:76px}
  .shell{width:min(calc(100% - 34px),var(--max))}
  .brand-logo img{width:122px;max-height:52px}
  .hero-copy{padding-bottom:54px}
  .hero h1{font-size:3.5rem}
  .philosophy,.services,.estates,.contact{padding:95px 0}
  .feature-photo{min-height:360px;padding:12px}
  .service-list{grid-template-columns:1fr}
  .service-list div{border-right:0!important;border-bottom:1px solid var(--line)!important}
  .work-small-grid,.estate-grid{grid-template-columns:1fr}
  .work-large{min-height:480px}
  .quote.why-iron-section{min-height:auto;padding:85px 0}
  .why-iron-content{padding:0 18px}
  .why-iron-name{font-size:clamp(3.1rem,17vw,5rem)}
  .why-iron-content p{font-size:1rem;line-height:1.65}
  .area-list{display:grid;gap:13px}
  .area-list span::after{display:none}
  .footer-inner{grid-template-columns:1fr;text-align:center;justify-items:center}
  .footer-logo img{width:132px}
  section:not(.hero)::before{width:calc(100% - 34px)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal,.reveal *{opacity:1!important;transform:none!important}
}

/* Production loader and accessibility */
html.is-loading{overflow:hidden}
.site-loader{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--paper);
  opacity:1;
  visibility:visible;
  transition:opacity .55s ease,visibility .55s ease;
}
.site-loader.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.site-loader__logo{
  display:block;
  width:clamp(230px,30vw,420px);
  max-width:72vw;
  height:auto;
  object-fit:contain;
  animation:loaderPulse 1.6s ease-in-out infinite;
}
@keyframes loaderPulse{
  0%,100%{transform:scale(1);opacity:.88}
  50%{transform:scale(1.025);opacity:1}
}
.skip-link{
  position:fixed;
  left:16px;
  top:12px;
  z-index:10000;
  transform:translateY(-160%);
  padding:10px 14px;
  background:#fff;
  color:var(--ink);
  border:1px solid currentColor;
}
.skip-link:focus{transform:translateY(0)}

/* Keep hero content aligned to the same shell as the header */
.hero-copy > .eyebrow,
.hero-copy > h1,
.hero-copy > p,
.hero-copy > .actions{
  max-width:760px;
}
.hero-copy{
  text-align:left;
  transform:none!important;
}

/* Production contact form */
.contact-form{
  margin-top:64px;
  padding-top:52px;
  border-top:1px solid var(--line);
}
.contact-form__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px 42px;
}
.contact-form label{display:grid;gap:11px}
.contact-form label span{
  font-size:.66rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--muted);
}
.contact-form input,
.contact-form textarea{
  width:100%;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  color:var(--ink);
  font:inherit;
  padding:7px 0 13px;
  border-radius:0;
  outline:none;
}
.contact-form input:focus,
.contact-form textarea:focus{border-bottom-color:var(--ink)}
.contact-form textarea{min-height:145px;resize:vertical}
.contact-form__full{grid-column:1/-1}
.contact-form__actions{
  margin-top:34px;
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}
.contact-form__status{font-size:.82rem;color:var(--muted)}
.hp-field{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}

@media(max-width:700px){
  .hero-copy{
    width:min(calc(100% - 34px),var(--max));
    padding-bottom:54px;
  }
  .contact-form__grid{grid-template-columns:1fr}
  .contact-form__full{grid-column:auto}
  .site-loader__logo{width:min(72vw,330px)}
}
@media(prefers-reduced-motion:reduce){
  .site-loader__logo{animation:none}
}


.contact-form__status[data-state="success"]{color:#2f6b4f}
.contact-form__status[data-state="error"],
.contact-form__status[data-state="invalid"],
.contact-form__status[data-state="rate_limited"]{color:#8a3d35}
.contact-form input:invalid:not(:placeholder-shown),
.contact-form textarea:invalid:not(:placeholder-shown){border-bottom-color:#8a3d35}


/* Meet the Principal */
.principal{
  padding:145px 0 120px;
  background:var(--paper);
}
.principal-grid{
  display:grid;
  grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);
  gap:clamp(55px,7vw,105px);
  align-items:center;
}
.principal-photo{
  position:relative;
  overflow:hidden;
  background:var(--paper2);
  min-height:620px;
}
.principal-photo img{
  width:100%;
  height:100%;
  min-height:620px;
  object-fit:cover;
  object-position:center top;
  transition:transform 1s cubic-bezier(.22,.61,.36,1);
}
.principal-photo:hover img{transform:scale(1.025)}
.principal-copy h2{
  font-size:clamp(3rem,5vw,5.2rem);
  line-height:.98;
  letter-spacing:-.035em;
  margin:18px 0 30px;
}
.principal-copy p{
  color:var(--muted);
  max-width:690px;
}
.principal-copy strong{color:var(--ink)}
.principal-lede{
  color:var(--ink)!important;
  font-size:1.12rem;
  line-height:1.7;
}
.principal-quote{
  margin-top:30px;
  padding-left:22px;
  border-left:1px solid var(--ink);
  font-family:Fraunces,serif;
  font-size:1.3rem;
  line-height:1.55;
  color:var(--ink)!important;
}
.principal-signature{
  display:flex;
  flex-direction:column;
  margin-top:28px;
  color:var(--ink)!important;
}
.principal-signature strong{
  font-family:Fraunces,serif;
  font-size:1.2rem;
  font-weight:500;
}
.principal-signature span{
  margin-top:3px;
  font-size:.7rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}
.credentials{
  margin-top:90px;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.credentials div{
  min-width:0;
  padding:24px 20px;
  border-right:1px solid var(--line);
}
.credentials div:last-child{border-right:0}
.credentials strong,
.credentials span{display:block}
.credentials strong{
  font-family:Fraunces,serif;
  font-weight:500;
  font-size:1.05rem;
  color:var(--ink);
}
.credentials span{
  margin-top:5px;
  font-size:.68rem;
  letter-spacing:.05em;
  color:var(--muted);
}

/* Client experience */
.experience{
  padding:130px 0;
  background:var(--paper2);
}
.experience-head{
  max-width:760px;
  margin-bottom:62px;
}
.experience-head h2{
  font-size:clamp(2.8rem,5vw,5rem);
  line-height:1;
  letter-spacing:-.035em;
  margin:15px 0 22px;
}
.experience-head p{
  max-width:610px;
  color:var(--muted);
}
.experience-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.experience-grid article{
  padding:34px 30px 38px;
  border-right:1px solid var(--line);
}
.experience-grid article:last-child{border-right:0}
.experience-grid article > span{
  display:block;
  margin-bottom:28px;
  font-family:Fraunces,serif;
  font-size:1.3rem;
  color:var(--muted);
}
.experience-grid h3{
  margin:0 0 14px;
  font-size:1.55rem;
  font-weight:400;
}
.experience-grid p{
  margin:0;
  color:var(--muted);
}
.footer-statement{
  width:100%;
  margin:0 0 18px;
  text-align:center;
  font-family:Fraunces,serif;
  font-size:1rem;
  color:var(--ink);
}

@media(max-width:980px){
  .principal-grid{grid-template-columns:1fr}
  .principal-photo{max-width:620px}
  .credentials{grid-template-columns:repeat(2,1fr)}
  .credentials div:nth-child(2n){border-right:0}
  .experience-grid{grid-template-columns:1fr}
  .experience-grid article{
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .experience-grid article:last-child{border-bottom:0}
}
@media(max-width:700px){
  .principal,.experience{padding:95px 0}
  .principal-photo,.principal-photo img{min-height:520px}
  .credentials{
    margin-top:65px;
    grid-template-columns:1fr;
  }
  .credentials div{border-right:0;border-bottom:1px solid var(--line)}
  .credentials div:last-child{border-bottom:0}
}
