:root{
  --ink:#11120D; --olive:#565449; --beige:#D8CFBC; --paper:#FFFBF4;
  --radius:20px; --shadow:0 20px 45px rgba(17,18,13,.12);
  --max:1120px; --gap:24px;
  --sans:'Inter', ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  --serif:'Playfair Display', Georgia, serif;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0; background:var(--paper); color:var(--ink); font:18px/1.55 var(--sans)}
.container{max-width:var(--max); margin-inline:auto; padding:0 20px}
a{color:var(--ink); text-decoration:none}

/* Header */
.site-header{position:sticky; top:0; z-index:10; background:#fffdf7c9; backdrop-filter:blur(8px); border-bottom:1px solid rgba(86,84,73,.25)}
.topbar{display:flex; align-items:center; justify-content:space-between; height:72px}
.brand-logo{height:auto; width:160px; object-fit:contain}
.nav{display:flex; gap:22px; align-items:center; font-size:1rem}
.btn.small{padding:8px 14px; border-radius:999px; border:1.5px solid var(--ink); font-weight:800}
/* Black CTA */
.btn.cta{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.btn.cta:hover{background:transparent; color:var(--ink)}

/* Ghost button */
.btn{display:inline-flex; align-items:center; gap:8px; cursor:pointer; transition:all .25s ease}
.btn.ghost{padding:10px 18px; border:1.5px solid var(--ink); border-radius:999px; background:transparent; font-weight:800}
.btn.ghost:hover .arrow{transform:translateX(4px)}
.arrow{transition:transform .25s ease}

/* Intro */
.intro{padding:60px 0 18px; text-align:center}
.super{font-family:var(--serif); font-style:italic; color:var(--olive); font-size:1.15rem}
.display{font-weight:900; letter-spacing:-.02em; font-size:clamp(48px,7.8vw,96px); line-height:1.06; margin:.3rem 0 .75rem}
.display .serif{font-family:var(--serif); font-weight:900}
.lead.center{max-width:70ch; margin-inline:auto; color:var(--olive); font-size:1.12rem}

/* Feature image */
.feature-image{margin:18px 0 44px}
.feature-image img{width:min(1100px, 88vw); display:block; margin:0 auto; height:auto; filter:drop-shadow(0 24px 38px rgba(0,0,0,.12))}

/* Projects section */
.projects{padding:18px 0 40px}
.proj-grid{display:grid; grid-template-columns: 1.1fr .9fr; gap:30px; align-items:start}
.jumbo{font-size:clamp(34px,5.6vw,64px); line-height:1.06; margin:.2rem 0 .4rem; font-weight:900}
.serif-italic{font-family:var(--serif); font-style:italic; font-weight:600}
.impact-copy{color:var(--ink); font-size:1.05rem; margin:.2rem 0 .1rem}
.impact-sub{color:var(--olive); font-size:1.02rem; margin-top:.1rem}
.divider{padding:18px 0; text-align:center; color:var(--olive); opacity:.7}
.headline{font-weight:900; font-size:clamp(28px,3.8vw,40px); letter-spacing:-.02em}
.copy.wide p{color:var(--olive); font-size:1.06rem}

/* Thin separator full width */
.separator{margin:10px 0 34px}
.separator img{display:block; width:100%; height:56px; object-fit:cover}

/* Icons grid */
.icons-grid{padding:8px 0 52px; border-top:1px dashed rgba(86,84,73,.35)}
.icons-5{display:grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap:20px; align-items:start}
.icon-card{display:grid; gap:8px; justify-items:start}
.icon-card svg{width:28px; height:28px; color:var(--ink); opacity:.85}
.icon-card h4{font-weight:800; margin:.1rem 0}
.icon-card p{color:var(--olive); font-size:.98rem}

/* Contact */
.contact{padding:64px 0 80px}
.contact-form{background:#fffdf7; border:1px solid rgba(86,84,73,.25); border-radius:16px; padding:20px; box-shadow:var(--shadow)}
.grid.form-grid{display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:16px}
.grid.form-grid .full{grid-column:1/-1}
label{display:grid; gap:6px; font-weight:800; font-size:1rem}
input, textarea, input[type=file]{width:100%; padding:12px 14px; border-radius:12px; border:1px solid rgba(86,84,73,.35); background:#fff; color:var(--ink); font:inherit}
.muted{color:var(--olive); font-size:.95rem}
/* Align contact subtitle with heading */
.contact .lead.center{ text-align:left; margin-inline:0; }
/* Submit button spacing */
.contact .btn.primary{background:var(--ink); color:var(--paper); border:1px solid var(--ink); border-radius:999px; padding:12px 18px; margin-top:16px; margin-bottom:20px}

/* Footer */
.footer{border-top:1px solid rgba(86,84,73,.25); background:linear-gradient(180deg, rgba(255,251,244,0), #FFF9F0 80%); padding:18px 0}
.end{display:flex; align-items:center; justify-content:space-between}
.seal{display:flex; gap:12px; align-items:center}
.seal-logo{height:28px; width:auto}

/* Responsive */
@media (max-width: 1100px){ .icons-5{grid-template-columns:1fr 1fr 1fr} }
@media (max-width: 880px){ .proj-grid{grid-template-columns:1fr} .icons-5{grid-template-columns:1fr 1fr} }
@media (max-width: 640px){
  .nav{display:none}
  .icons-5{grid-template-columns:1fr}
}


/* === Responsive Enhancements (non-intrusive) === */

/* Fluid media */
img, video {max-width: 100%; height: auto}

/* Improve touch targets */
button, .btn, a.button {min-height: 44px}

/* Tablet adjustments */
@media (max-width: 1024px){
  .container{padding:0 16px}
  .topbar{gap:14px}
  .brand-logo{width:auto; height:40px}
  .proj-grid{grid-template-columns:1fr}
  .end{flex-wrap:wrap; gap:12px}
}

/* Large phones / small tablets */
@media (max-width: 768px){
  body{font-size:16px}
  .site-header{backdrop-filter:none}
  .topbar{flex-direction:row; justify-content:space-between}
  .nav{display:none} /* keep clean header on mobile */
  .hero{padding:28px 0 20px; text-align:center}
  .jumbo{font-size:clamp(28px,8vw,44px)}
  .impact-copy{font-size:1rem}
  .icons-5{grid-template-columns:1fr 1fr}
  .cta-row{flex-direction:column; gap:12px}
  .feature{grid-template-columns:1fr; gap:16px}
  .feature .visual{order:-1}
  .footer .container{padding-bottom:20px}
}

/* Phones */
@media (max-width: 480px){
  .container{padding:0 14px}
  .brand-logo{height:34px}
  .headline{font-size:clamp(22px,6.5vw,32px)}
  .copy.wide p{font-size:1rem}
  .icons-5{grid-template-columns:1fr}
  .separator img{height:40px}
}


/* === Responsive V4 Enhancements === */
img, video{max-width:100%; height:auto;}

/* Layout helpers */
.container{max-width:var(--max); margin-inline:auto; padding:0 20px}
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:28px}
.grid-3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:28px}

/* Make forms and CTAs comfortable on small screens */
input[type="text"], input[type="email"], textarea, select{width:100%}
.button, button, .btn{min-height:44px}

/* Hamburger button (hidden on desktop) */
.hamburger{position:absolute; right:16px; top:10px; width:36px; height:32px; display:none; border:0; background:transparent; padding:0; z-index:20}
.hamburger span{display:block; height:3px; margin:6px 0; background:var(--ink); border-radius:2px; transition:.25s ease}

/* Mobile drawer */
.mobile-drawer{position:fixed; inset:0 auto 0 0; width:78%; max-width:340px; background:#fff; box-shadow:var(--shadow); padding:80px 20px 24px; transform:translateX(-100%); transition:transform .28s ease; z-index:19; overflow:auto; border-right:1px solid rgba(86,84,73,.12)}
.mobile-drawer .mitem{display:block; padding:14px 4px; font-weight:700; color:var(--ink); border-bottom:1px solid rgba(86,84,73,.12)}
.mobile-drawer[data-open]{transform:translateX(0)}
.drawer-backdrop{position:fixed; inset:0; background:rgba(0,0,0,.25); z-index:18}

/* Keep desktop navigation visible only on large screens */
@media (min-width: 1025px){
  .hamburger{display:none}
  .mobile-drawer{display:none}
  .drawer-backdrop{display:none}
}

/* Tablet and below: show hamburger, hide .nav if exists */
@media (max-width: 1024px){
  .hamburger{display:block}
  .nav{display:none}
  .topbar{min-height:56px}
}

/* Tablet grid stack */
@media (max-width: 1024px){
  .grid-3{grid-template-columns:1fr 1fr}
  .proj-grid, .feature{display:grid; grid-template-columns:1fr; gap:18px}
  .end{flex-wrap:wrap; gap:12px}
}

/* Phone optimizations */
@media (max-width: 768px){
  body{font-size:16px}
  .container{padding:0 16px}
  .jumbo{font-size:clamp(28px,7.5vw,44px)}
  .headline{font-size:clamp(22px,6vw,32px)}
  .icons-5{display:grid; grid-template-columns:1fr 1fr; gap:14px}
  .cta-row{display:flex; flex-direction:column; gap:12px}
}

/* Small phones */
@media (max-width: 480px){
  .container{padding:0 14px}
  .icons-5{grid-template-columns:1fr}
  .separator img{height:40px}
}
