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

:root{
  --bg: #111113;
  --bg-raised: #18181b;
  --line: #2a2a2e;
  --ink: #f2f1ee;
  --ink-dim: #a9a8a4;
  --accent: #d9433c;
  --accent2: #3f7fe0;
  --max: 1200px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter',system-ui,sans-serif;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{
  font-family:'Oswald',sans-serif;
  font-weight:600;
  letter-spacing:.01em;
  margin:0 0 .4em;
}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px;}

/* header */
header.site{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 32px;
  background:linear-gradient(to bottom, rgba(10,10,11,.85), rgba(10,10,11,0));
  backdrop-filter:blur(2px);
}
.brand{font-family:'Oswald',sans-serif;font-size:1.15rem;letter-spacing:.03em;}
.brand em{font-style:normal;color:var(--accent);}
nav.main{display:flex;gap:26px;font-size:.92rem;}
nav.main a{color:var(--ink-dim);transition:color .15s;}
nav.main a:hover{color:var(--ink);}
.nav-toggle{display:none;background:none;border:0;color:var(--ink);font-size:1.6rem;cursor:pointer;}

@media (max-width:820px){
  nav.main{
    position:fixed;inset:0;top:64px;background:var(--bg);
    flex-direction:column;padding:32px;gap:22px;font-size:1.1rem;
    transform:translateX(100%);transition:transform .25s ease;
  }
  nav.main.open{transform:translateX(0);}
  .nav-toggle{display:block;}
}

/* hero */
.hero{
  position:relative;min-height:92vh;display:flex;align-items:flex-end;
  background-size:cover;background-position:center;
  background-image:url('images/portfolio/portfolio-19.jpg');
}
@media (max-width:820px){
  .hero{background-image:url('images/portfolio/portfolio-18.jpg');}
}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top, rgba(10,10,11,.95) 5%, rgba(10,10,11,.35) 55%, rgba(10,10,11,.15));
}
.hero-inner{position:relative;z-index:2;padding:0 32px 64px;width:100%;}
.hero-eyebrow{color:var(--accent2);font-size:.85rem;letter-spacing:.04em;margin-bottom:14px;}
.hero h1{font-size:clamp(2.6rem,7vw,5.2rem);line-height:.98;margin-bottom:.3em;}
.hero-tagline{color:var(--ink-dim);font-size:1.1rem;margin-bottom:28px;}
.btn-row{display:flex;gap:16px;flex-wrap:wrap;}
.btn{
  display:inline-block;padding:14px 26px;font-size:.92rem;
  border:1px solid var(--ink);border-radius:2px;transition:all .15s;
}
.btn.solid{background:var(--accent);border-color:var(--accent);color:#fff;}
.btn:hover{opacity:.85;}

/* sections */
section{padding:100px 0;}
.section-tag{color:var(--accent2);font-size:.85rem;letter-spacing:.04em;margin-bottom:10px;}
.section-head{max-width:640px;margin-bottom:52px;}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.6rem);}
.section-head p{color:var(--ink-dim);font-size:1.05rem;}

/* portfolio grid */
.grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
}
.grid a{display:block;overflow:hidden;background:var(--bg-raised);position:relative;border-radius:2px;}
.grid img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;transition:transform .4s ease;}
.grid a:hover img{transform:scale(1.045);}
.grid figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:10px 12px;font-size:.78rem;
  color:var(--ink-dim);background:linear-gradient(to top, rgba(0,0,0,.75), transparent);
}
@media (max-width:980px){.grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:640px){.grid{grid-template-columns:repeat(2,1fr);gap:8px;}}

/* masonry grid — preserves each photo's natural orientation */
.masonry{column-count:4;column-gap:14px;}
.masonry a{
  display:block;break-inside:avoid;margin-bottom:14px;overflow:hidden;
  background:var(--bg-raised);position:relative;border-radius:2px;
}
.masonry img{width:100%;height:auto;display:block;transition:transform .4s ease;}
.masonry a:hover img{transform:scale(1.03);}
.masonry figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:10px 12px;font-size:.78rem;
  color:var(--ink-dim);background:linear-gradient(to top, rgba(0,0,0,.8), transparent);
}
.masonry.compact{column-count:5;column-gap:10px;}
.masonry.compact a{margin-bottom:10px;}
@media (max-width:980px){.masonry{column-count:3;}.masonry.compact{column-count:4;}}
@media (max-width:640px){.masonry{column-count:2;column-gap:8px;}.masonry.compact{column-count:2;}}

/* mission */
.mission{background:var(--bg-raised);}
.mission blockquote{
  font-family:'Oswald',sans-serif;font-weight:500;font-size:clamp(1.5rem,3vw,2.2rem);
  line-height:1.3;margin:0 0 24px;max-width:820px;
}
.mission p{color:var(--ink-dim);max-width:680px;}

/* services */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.service{border-top:1px solid var(--line);padding-top:20px;}
.service img{aspect-ratio:3/4;object-fit:cover;margin-bottom:18px;border-radius:2px;}
.service h3{font-size:1.25rem;}
.service p{color:var(--ink-dim);font-size:.95rem;}
@media (max-width:820px){.services-grid{grid-template-columns:1fr;}}

/* gallery cta band */
.cta-band{
  border:1px solid var(--line);padding:44px;display:flex;justify-content:space-between;
  align-items:center;gap:24px;flex-wrap:wrap;background:var(--bg-raised);
}
.cta-band h3{margin-bottom:6px;}
.cta-band p{color:var(--ink-dim);margin:0;}

/* about */
.about-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:60px;align-items:center;}
.about-grid img{border-radius:2px;}
.stats{display:flex;gap:40px;margin-top:36px;}
.stat b{font-family:'Oswald',sans-serif;font-size:2.2rem;display:block;color:var(--accent);}
.stat:nth-child(2) b{color:var(--accent2);}
.stat span{color:var(--ink-dim);font-size:.85rem;}
@media (max-width:900px){.about-grid{grid-template-columns:1fr;}}

/* contact */
.contact-wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;}
.contact-links a{display:block;color:var(--ink-dim);margin-bottom:14px;font-size:.98rem;}
.contact-links a:hover{color:var(--ink);}
form.book{display:grid;gap:16px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
form.book label{display:block;font-size:.8rem;color:var(--ink-dim);margin-bottom:6px;}
form.book input,form.book select,form.book textarea{
  width:100%;background:var(--bg-raised);border:1px solid var(--line);color:var(--ink);
  padding:12px 14px;font-family:inherit;font-size:.95rem;border-radius:2px;
}
form.book textarea{min-height:120px;resize:vertical;}
form.book button{
  justify-self:start;background:var(--accent);color:#fff;border:none;
  padding:14px 30px;font-size:.95rem;cursor:pointer;border-radius:2px;
}
.form-note{font-size:.8rem;color:var(--ink-dim);margin-top:-4px;}
@media (max-width:820px){.contact-wrap{grid-template-columns:1fr;}.form-row{grid-template-columns:1fr;}}

/* dropdown nav */
nav.main details{position:relative;}
nav.main details > summary{cursor:pointer;list-style:none;color:var(--ink-dim);transition:color .15s;}
nav.main details > summary::-webkit-details-marker{display:none;}
nav.main details > summary::after{content:" \25BE";font-size:.7em;}
nav.main details > summary:hover{color:var(--ink);}
nav.main details[open] > summary{color:var(--ink);}
.dropdown-menu{
  position:absolute;top:calc(100% + 12px);left:0;background:var(--bg-raised);
  border:1px solid var(--line);border-radius:2px;min-width:190px;padding:6px 0;z-index:60;
}
.dropdown-menu a{display:block;padding:10px 16px;color:var(--ink-dim);font-size:.88rem;}
.dropdown-menu a:hover{color:var(--ink);background:rgba(255,255,255,.04);}
@media (max-width:820px){
  .dropdown-menu{position:static;border:none;background:none;padding:10px 0 0 14px;}
  .dropdown-menu a{padding:10px 0;font-size:1rem;}
}

/* footer */
footer{border-top:1px solid var(--line);padding:56px 0 30px;color:var(--ink-dim);font-size:.9rem;}
.footer-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:40px;margin-bottom:34px;}
.footer-cols{display:flex;gap:60px;flex-wrap:wrap;}
footer h4{color:var(--ink);font-size:.85rem;letter-spacing:.03em;margin-bottom:14px;}
footer a{display:block;margin-bottom:8px;}
.footer-bottom{border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;}

/* gallery page header */
.page-hero{padding:150px 0 40px;border-bottom:1px solid var(--line);}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.4rem);}
.page-hero p{color:var(--ink-dim);max-width:600px;}
.back-link{color:var(--accent2);font-size:.9rem;display:inline-block;margin-bottom:20px;}

/* lightbox */
.lightbox{
  position:fixed;inset:0;background:rgba(8,8,9,.94);display:none;
  align-items:center;justify-content:center;z-index:100;padding:30px;
}
.lightbox.open{display:flex;}
.lightbox img{max-height:90vh;max-width:90vw;object-fit:contain;border-radius:2px;}
.lightbox-close{position:absolute;top:24px;right:32px;color:var(--ink);font-size:2rem;background:none;border:0;cursor:pointer;}
