:root {
  --bg: #f7f4ee;
  --paper: #ededed;
  --ink: #171411;
  --soft-ink: #3d3933;
  --muted: #777066;
  --line: rgba(23, 20, 17, .14);
  --dark: #171411;
  --dark-2: #231f1a;
  --warm: #b9aa95;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans: Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
}
button, a { color: inherit; font: inherit; }
button { border: 0; background: none; cursor: pointer; }
a { text-decoration: none; }
img { display:block;
    max-width:100%;
    height:auto;}

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 30;
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 0 clamp(22px, 5vw, 58px);
  color: #f8f5ef;
  background: linear-gradient(180deg, rgba(17, 15, 13, .68), rgba(17, 15, 13, 0));
}
.brand {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  white-space: nowrap;
}
.brand strong {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .22em;
}
.main-nav {
  display: flex;
  align-items: center;
  gap: clamp(22px, 4vw, 52px);
}
.main-nav a,
.main-nav button {
  position: relative;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  color: rgba(248, 245, 239, .9);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.main-nav a::after,
.main-nav button::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .24s var(--ease);
}
.main-nav a:hover::after,
.main-nav button:hover::after,
.main-nav .is-current::after { transform: scaleX(1); }

.main-hero {
  position: relative;
  min-height: 100vh;
  display: grid;
  align-items: center;
  padding: 112px clamp(24px, 7vw, 88px) 86px;
  overflow: hidden;
  color: #f9f4eb;
  background: var(--dark);
}
.hero-bg{
 position:absolute;
    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;
    display:block;

    transform:scale(1.03);
}
.hero-shade {
  position: absolute;
  inset: 0;
}
.hero-bg {
  transform: scale(1.03);
}
.hero-shade {
  background:
    linear-gradient(90deg, rgba(12, 11, 10, .88) 0%, rgba(12, 11, 10, .58) 34%, rgba(12, 11, 10, .24) 62%, rgba(12, 11, 10, .6) 100%);
}
.hero-copy {
  position: relative;
  z-index: 1;
  width: min(760px, 100%);
  padding-top: clamp(40px, 6vw, 92px);
}
.eyebrow {
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .24em;
  line-height: 1.5;
  text-transform: uppercase;
}
.main-hero .eyebrow,
.photographer-band .eyebrow,
.project-cta .eyebrow { color: rgba(249, 244, 235, .68); }
.hero-copy h1 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(66px, 9vw, 142px);
  font-weight: 400;
  line-height: .82;
  letter-spacing: 0;
}
.hero-lead {
  max-width: 460px;
  margin: 30px 0 0;
  color: rgba(249, 244, 235, .76);
  font-size: 15px;
  line-height: 1.9;
}
.hero-note {
  position: absolute;
  right: clamp(24px, 5vw, 74px);
  bottom: 42px;
  z-index: 1;
  display: flex;
  gap: 18px;
  color: rgba(249, 244, 235, .56);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.text-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  margin-top: 34px;
  color: var(--ink);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.text-button::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 4px;
  height: 1px;
  background: currentColor;
  opacity: .45;
}
.text-button--light { color: #f9f4eb; }

.content-tabs {
  background: var(--paper);
  scroll-margin-top: 80px;
        padding-top:72px;

}
.tab-panel[hidden] {
  display: none;
}

.studio-intro {
  display: grid;
  grid-template-columns: minmax(280px, 43%) minmax(300px, 1fr);
  gap: clamp(42px, 8vw, 110px);
  align-items: center;
  padding: clamp(76px, 10vw, 130px) clamp(24px, 10vw, 142px);
  background: var(--paper);
  scroll-margin-top: 80px;
}
.intro-image {
  margin: 0;
  aspect-ratio: 1 / 1.13;
  overflow: hidden;
  background: #d8d0c4;
}
.intro-image img {
}
.intro-copy {
  max-width: 520px;
}
.intro-copy h2,
.section-heading h2,
.photographer-copy h2,
.project-cta h2,
.contact-panel h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(38px, 5vw, 66px);
  font-weight: 400;
  line-height: .98;
  overflow-wrap: break-word;
}
.korean {
  color: var(--soft-ink);
  line-height: 1.85;
  word-break: keep-all;
}
.intro-copy .korean {
  max-width: 420px;
  margin: 26px 0 0;
  font-size: 15px;
}
.intro-copy .korean + .korean { margin-top: 18px; }

.portfolio-section {
  padding: clamp(64px, 9vw, 120px) clamp(24px, 10vw, 128px);
  background: #ffffff;
  scroll-margin-top: 80px;
}
.section-heading {
  margin-bottom: clamp(30px, 5vw, 54px);
}

.photographer-band {
  display: grid;
  grid-template-columns: minmax(300px, .9fr) minmax(360px, 1.1fr);
  min-height: 360px;
  background: var(--dark);
  color: #f9f4eb;
}
.photographer-copy {
  display: grid;
  align-content: center;
  padding: clamp(46px, 8vw, 82px) clamp(24px, 9vw, 124px);
}
.photographer-copy h2 {
  font-size: clamp(36px, 4.2vw, 54px);
}
.photographer-copy .korean {
  max-width: 520px;
  margin: 26px 0 0;
  color: rgba(249, 244, 235, .84);
  font-size: 15px;
}
.photographer-image {
  margin: 0;
  min-height: 360px;
  overflow: hidden;
}
.photographer-image img {
  filter: grayscale(1) contrast(1.1) brightness(.72);
}

.services-section {
  padding: clamp(68px, 9vw, 118px) clamp(24px, 10vw, 128px);
  background: var(--paper);
  scroll-margin-top: 80px;
}
.strength-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.strength-grid article {
  min-height: 210px;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 18px;
  padding: 30px 22px;
  text-align: center;
}
.strength-grid article + article {
  border-left: 1px solid var(--line);
}
.strength-grid svg {
  width: 30px;
  height: 30px;
  stroke-width: 1.25;
  color: var(--soft-ink);
}
.strength-grid strong {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.strength-grid p {
  max-width: 170px;
  margin: 0;
  color: var(--soft-ink);
  font-size: 14px;
  line-height: 1.8;
  word-break: keep-all;
}

.project-cta {
  position: relative;
  min-height: 330px;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #f9f4eb;
  text-align: center;
  background: var(--dark-2);
}
.project-cta img,
.cta-shade {
  position: absolute;
  inset: 0;
}
.project-cta img {
  filter: grayscale(.75) saturate(.45) brightness(.55) contrast(1.04);
}
.cta-shade {
  background: linear-gradient(90deg, rgba(16,14,12,.7), rgba(16,14,12,.36), rgba(16,14,12,.7));
}
.cta-copy {
  position: relative;
  z-index: 1;
  padding: 48px 24px;
}
.outline-button {
  min-height: 44px;
  margin-top: 30px;
  padding: 0 48px;
  border: 1px solid rgba(249, 244, 235, .72);
  color: #f9f4eb;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  transition: background .24s var(--ease), color .24s var(--ease);
}
.outline-button:hover {
  background: #f9f4eb;
  color: var(--ink);
}

.contact-drawer {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  justify-items: end;
  background: rgba(18, 16, 14, .48);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s var(--ease);
}
.contact-drawer.is-open {
  opacity: 1;
  pointer-events: auto;
}
.contact-panel {
  width: min(620px, 100%);
  height: 100%;
  overflow-y: auto;
  padding: clamp(28px, 5vw, 64px);
  background: var(--paper);
  box-shadow: -28px 0 80px rgba(18, 16, 14, .24);
  transform: translateX(34px);
  transition: transform .28s var(--ease);
}
.contact-drawer.is-open .contact-panel { transform: translateX(0); }
.contact-close {
  float: right;
  min-height: 36px;
  padding: 0 13px;
  border: 1px solid var(--line);
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.contact-row {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 22px;
  align-items: baseline;
  padding: 24px 0;
  border-bottom: 1px solid var(--line);
}
.contact-row span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.contact-row strong {
  font-family: var(--serif);
  font-size: clamp(22px, 2vw, 32px);
  font-weight: 400;
  line-height: 1.2;
  text-align: right;
}

.site-footer {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 24px;
  align-items: center;
  padding: 32px clamp(24px, 10vw, 128px);
  background: var(--dark);
  color: rgba(249, 244, 235, .78);
  font-size: 11px;
}
.site-footer div {
  display: grid;
  gap: 6px;
}
.site-footer strong {
  color: #f9f4eb;
  font-size: 11px;
  letter-spacing: .12em;
}
.site-footer nav {
  display: flex;
  gap: clamp(18px, 3vw, 40px);
  justify-content: center;
  text-transform: uppercase;
  letter-spacing: .14em;
}
.site-footer p {
  margin: 0;
  text-align: right;
}

.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .65s var(--ease), transform .65s var(--ease);
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 980px) {
  .site-header {
      min-height: 72px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px;
    background: rgba(17, 15, 13, .72);
    backdrop-filter: blur(16px);
  }
  .main-nav {
    width: calc(100vw - 40px);
    gap: 20px;
    overflow-x: auto;
    padding-bottom: 2px;
    white-space: nowrap;
    scrollbar-width: none;
  }
  .main-nav::-webkit-scrollbar { display: none; }
  .studio-intro,
  .photographer-band {
    grid-template-columns: 1fr;
  }
  .portfolio-grid,
  .strength-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .strength-grid article:nth-child(3) {
    border-left: 0;
    border-top: 1px solid var(--line);
  }
  .strength-grid article:nth-child(4) {
    border-top: 1px solid var(--line);
  }
  .site-footer {
    grid-template-columns: 1fr;
  }
  .site-footer nav {
    justify-content: flex-start;
  }
  .site-footer p {
    text-align: left;
  }
}

@media (max-width: 620px) {
  .main-hero {
    min-height: 760px;
    padding: 154px 20px 62px;
  }
  .hero-shade {
    background:
      linear-gradient(90deg, rgba(12, 11, 10, .88), rgba(12, 11, 10, .48)),
      linear-gradient(180deg, rgba(12, 11, 10, .1), rgba(12, 11, 10, .82));
  }
  .hero-copy h1 {
    font-size: clamp(54px, 14vw, 64px);
  }
  .hero-lead {
    max-width: 320px;
    font-size: 14px;
  }
  .hero-note {
    left: 20px;
    right: auto;
    bottom: 26px;
    flex-direction: column;
    gap: 8px;
  }
  .studio-intro,
  .portfolio-section,
  .services-section {
    padding-left: 20px;
    padding-right: 20px;
  }
  .intro-copy {
    max-width: 100%;
    min-width: 0;
  }
  .intro-copy h2,
  .section-heading h2,
  .photographer-copy h2,
  .project-cta h2,
  .contact-panel h2 {
    font-size: clamp(34px, 10vw, 44px);
    line-height: 1.04;
  }
  .portfolio-grid,
  .strength-grid {
    grid-template-columns: 1fr;
  }
  .strength-grid article + article,
  .strength-grid article:nth-child(3),
  .strength-grid article:nth-child(4) {
    border-left: 0;
    border-top: 1px solid var(--line);
  }
  .photographer-copy {
    padding-left: 20px;
    padding-right: 20px;
  }
  .contact-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .contact-row strong {
    text-align: left;
  }
  .project-cta {
    min-height: 280px;
  }
  .outline-button {
    width: 100%;
    padding: 0 24px;
  }
}


/* WHAT WE DO */

.what-we-do{
    max-width:1000px;
margin: 0 auto 100px auto;
}

.section-heading{
    margin-bottom:0px;
}
.service-card:hover{

    background:#e0d2bb;
}
.section-heading h2{
    font-size:56px;
    font-weight:500;
    letter-spacing:-0.03em;
    margin-bottom:24px;
    line-height:1.1;
}

.section-heading p{
    font-size:15px;
    color:#888;
    line-height:1.8;
}

.service-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    column-gap:100px;
    row-gap:0px;
}

.service-card{
    border-top:1px solid rgba(0,0,0,.12);
    padding-top:0px;
}

.service-card span{
    display:block;
    font-size:11px;
    color:#999;
    letter-spacing:.3em;
    margin:14px auto;
}

.service-card h3{
    font-size:30px;
    font-weight:500;
    line-height:1.2;
    letter-spacing:-0.02em;
margin:0 12px 12px 12px;
}

.service-card p{
    max-width:350px;
    color:#777;
    font-size:15px;
    line-height:1.9;
margin:12px;
}
.projects{
    max-width:1200px;
    margin:auto;
    padding:150px 40px;
}

.projects h2{
font-size:56px;
    font-weight:500;
    letter-spacing:-0.03em;
    margin-bottom:24px;
    line-height:1.1;
}
.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(2px, 0.1vw, 8px);
}
.portfolio-card {
 position:relative;
    display:block;
    overflow:hidden;
  margin: 0;
}

.portfolio-card figure {
 position:relative;
  margin: 0;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #ddd5c9;
}

.portfolio-card img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:.8s ease;
    cursor:pointer;
}
.portfolio-card:hover img {
  transform: scale(1.07);
}
.portfolio-card:hover .overlay{
    opacity:1;
}

.portfolio-card:hover .project-info{
    opacity:1;
    transform:translateY(0);
}
.portfolio-card p {
  margin: 18px 0 0;
  color: var(--soft-ink);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .16em;
  text-align: center;
  text-transform: uppercase;
}
.portfolio-action {
  display: flex;
  justify-content: center;
  margin-top: 42px;
}

/* 카드 */

.project-card{
    position:relative;
    display:block;
    overflow:hidden;
}

/* 사진 */

.project-card img{
    width:100%;
    display:block;
    transition:.8s ease;
    cursor: pointer;

}

/* 검은 그라데이션 */

.overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(
        to top,
        rgba(0,0,0,.85),
        rgba(0,0,0,.3),
        transparent
    );

    opacity:0;
    transition:.5s ease;
}

/* 텍스트 */

.project-info{
    position:absolute;
    left:50px;
    right:50px;
    bottom:45px;

    color:white;

    transform:translateY(40px);
    opacity:0;

    transition:.5s ease;
}

.number{
    display:block;
    font-size:20px;
    margin-bottom:20px;
    opacity:.7;
}

.project-info h3{
    font-size:58px;
    font-weight:400;
    margin-bottom:18px;
}

.project-info p{
    font-size:20px;
    color:#d8d8d8;
    line-height:1.8;
}

.bottom-row{
    margin-top:40px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.view-project{
    font-size:18px;
    opacity:.8;
}

/* 호버 */

.project-card:hover img{
    transform:scale(1.04);
}

.project-card:hover .overlay{
    opacity:1;
}

.project-card:hover .project-info{
    opacity:1;
    transform:translateY(0);
}
/* 배경 어둡게 */

.backdrop{
    position:fixed;
    inset:0;

    background:rgba(0,0,0,.5);

    opacity:.5;
    visibility:hidden;

    transition:.5s;

    z-index:999;
}

.backdrop.active{
    opacity:1;
    visibility:visible;
}




/* 내용 */

.sheet-content{

    max-width:1000px;

    margin:auto;

    padding:0px 40px 120px;
}


.sheet-content h2{

    font-size:70px;
color:#f7f4ee;
}


.sheet-subtitle{

    color:#aaa;
    font-size:20px;
}


.sheet-description{

    line-height:1.8;
color:#aaa
}


.sheet-content img{

    width:100%;

    border-radius:20px;

    margin-bottom:30px;

    display:block;
}


/* 닫기 버튼 */

.close-sheet{

    position:absolute;

    top:30px;
    right:40px;

    width:50px;
    height:50px;

    border:none;

    background:#222;

    color:white;

    border-radius:50%;

    cursor:pointer;

    font-size:20px;
}
.gallery-two{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
}

.gallery-two img{
    width:100%;
}
/* =========================
FEATURED PROJECTS
========================= */

.featured-projects{

   max-width:1200px;
    margin:120px auto;
    padding:0 40px;
}

.featured-item{

    display:grid;
    grid-template-columns:1.4fr .8fr;

    gap:60px;

    align-items:center;
margin-left:auto;
margin-right:auto;
}

.featured-item.reverse{

    grid-template-columns:.8fr 1.4fr;
}

.featured-item.reverse .featured-image{

    order:2;
}

.featured-item.reverse .featured-content{

    order:1;
}

.featured-image{

    overflow:hidden;
}

.featured-image img{
    width:100%;
    aspect-ratio:5/4;
    object-fit:cover;
    object-position:center;
}

.featured-item:hover img{

    transform:scale(1.05);
}

.featured-content span{

    display:block;

    margin-bottom:18px;

    font-size:12px;

    letter-spacing:.35em;

    color:#888;
}

.featured-content h3{

    font-family:var(--serif);

    font-size:28px;

    font-weight:400;

    line-height:1.4;

    margin-bottom:35px;
}

.featured-content p{

    max-width:420px;

    color:#666;

    line-height:2;

    margin-bottom:50px;
}

.featured-content a{

    display:inline-flex;

    position:relative;

    font-size:13px;

    letter-spacing:.2em;

    text-transform:uppercase;
}

.featured-content a::after{

    content:"";

    position:absolute;

    left:0;
    bottom:-8px;

    width:100%;
    height:1px;

    background:#111;

    transform:scaleX(0);

    transform-origin:left;

    transition:.35s;
}

.featured-content:hover a::after{

    transform:scaleX(1);
}
@media (max-width:900px){

    .featured-item{

        grid-template-columns:1fr;

        gap:40px;
    }

    .featured-content{

        text-align:center;
    }

    .featured-content p{

        max-width:none;
    }

}
/*=============================
PROCESS
=============================*/

.process-section{

    max-width:1000px;

    margin:100px auto;

}

.process-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    border-top:1px solid rgba(0,0,0,.1);

    border-bottom:1px solid rgba(0,0,0,.1);
}

.process-card{


display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;

}

.process-card:not(:last-child){

    border-right:1px solid rgba(0,0,0,.08);
}

.process-card:hover{

    background:#e0d2bb;
}

.process-card span{

    display:block;

    margin-bottom:20px;
    font-size:12px;

    letter-spacing:.35em;

    color:#9b9b9b;
}

.process-card h3{

    font-family:var(--serif);

    font-size:16px;

    font-weight:400;

    margin-bottom:25px;
}

.process-card p{

    color:#6d6d6d;

    line-height:2;
margin:0;
    max-width:260px;
}

/*==============================
FULL IMAGE BANNER
===============================*/

.full-banner{

    display:grid;
    grid-template-columns:2fr 1fr;

    width:100%;
    height:auto;
}

.banner-left{

    background:#292721;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:0 8%;
}

.banner-right{

    overflow:hidden;
}

.banner-right img{

    width:100%;
    height:100%;
    filter:grayscale(50%) saturate(85%) contrast(105%);

    object-fit:cover;
}

.banner-content{

    color:white;

    max-width:650px;
}

.banner-content p{

    font-size:12px;

    letter-spacing:.35em;

    margin-bottom:45px;
}

.banner-content h2{

    font-family:var(--serif);

    font-size:68px;

    line-height:1.05;

    font-weight:400;

    margin-bottom:35px;
}

.banner-content span{

    color:rgba(255,255,255,.75);

    line-height:2;
}
/*==============================
CTA
===============================*/

.cta-banner{

    position:relative;

    width:100%;

    height:50vh;

    overflow:hidden;
}

.cta-banner img{

    width:100%;

    height:100%;

    object-fit:cover;

    filter:grayscale(30%) saturate(85%) contrast(105%);
}

.cta-overlay{

    position:absolute;

    inset:0;

    background:rgba(0,0,0,.38);
}

.cta-content{

    position:absolute;

    top:50%;
    left:50%;

    transform:translate(-50%,-50%);

    text-align:center;

    color:#fff;

    width:100%;
}

.cta-content p{

    letter-spacing:.35em;

    font-size:12px;

    margin-bottom:40px;
}

.cta-content h2{

    font-family:var(--serif);

    font-size:60px;

    font-weight:400;

    line-height:1.05;

    margin-bottom:40px;
}
.center{

    left:50%;

    top:50%;

    transform:translate(-50%,-50%);

    text-align:center;
}

.banner-btn{

    display:inline-block;

    margin-top:50px;

    padding:18px 60px;

    border:1px solid white;

    color:white;

    letter-spacing:.25em;

    transition:.35s;
}

.banner-btn:hover{

    background:white;

    color:#111;
}

/* ---------- Lightbox ---------- */

.lightbox{
    position:fixed;
    inset:0;

    display:flex;
    justify-content:center;
    align-items:center;

    background:rgba(0,0,0,.9);

    opacity:0;
    visibility:hidden;

    transition:.3s;

    z-index:9999;
}

.lightbox.active{
    opacity:1;
    visibility:visible;
}

.lightbox img{

    max-width:90vw;
    max-height:90vh;

    object-fit:contain;

    cursor:zoom-out;

    border-radius:4px;
}

.close{

    position:absolute;
    top:30px;
    right:40px;

    color:white;
    font-size:42px;
    font-weight:300;

    cursor:pointer;

    user-select:none;
}

.portfolio-grid img{

    cursor:zoom-in;
    transition:.3s;
}

.portfolio-grid img:hover{

    transform:scale(1.02);
}
/* ---------- Lightbox ---------- */

.lightbox{

    position:fixed;
    inset:0;

    background:rgba(0,0,0,.94);

    display:flex;

    justify-content:center;

    align-items:center;

    opacity:0;

    visibility:hidden;

    transition:.35s;

    z-index:99999;

}

.lightbox.active{

    opacity:1;
    visibility:visible;

}

.lightbox-inner{

    position:relative;

    max-width:90vw;

}

#lightbox-img{

    max-width:90vw;
    max-height:82vh;

    display:block;

    opacity:0;

    transition:opacity .35s;

}

#lightbox-img.show{

    opacity:1;

}

.lightbox-info{

    color:white;

    margin-top:18px;

    display:flex;

    justify-content:space-between;

    font-size:15px;

}

.nav{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    background:none;

    border:0;

    color:white;

    font-size:70px;

    cursor:pointer;

    padding:20px;

}

.prev{

    left:40px;

}

.next{

    right:40px;

}

.close{

    position:absolute;

    right:40px;

    top:30px;

    color:white;

    font-size:45px;

    background:none;

    border:0;

    cursor:pointer;

}

/* ===================================
   Mobile Responsive
=================================== */

@media (max-width:768px){

    /* Header */

   .site-header{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    padding:16px 20px;
    gap:14px;
}

.main-nav{
    width:100%;
    display:flex;
    flex-wrap:wrap;
    gap:12px 20px;
    overflow:visible;
    white-space:normal;
}

    .brand strong{
        font-size:11px;
        letter-spacing:.15em;
    }


    .main-nav a,
    .main-nav button{
        font-size:10px;
    }



    /* Featured */

    .featured-projects{
        margin:70px 20px;
    }

    .featured-item{
        grid-template-columns:1fr;
        gap:30px;
    }

    .featured-content{
        text-align:left;
    }

    .featured-content h3{
        font-size:34px;
    }

    .featured-content p{
        max-width:100%;
    }



    /* Photographer Banner */

    .full-banner{
        grid-template-columns:1fr;
        height:auto;
    }

    .banner-left{
        padding:70px 24px;
    }

    .banner-right{
        height:380px;
    }

    .banner-content h2{
        font-size:44px;
    }



    /* Process */

    .process-section{
        margin:80px 20px;
    }

    .process-grid{
        grid-template-columns:1fr;
    }

    .process-card{
        min-height:auto;
        padding:35px 28px;
        border-right:none !important;
        border-bottom:1px solid rgba(0,0,0,.08);
    }

    .process-card:last-child{
        border-bottom:none;
    }



    /* Portfolio */

    .portfolio-grid{
        grid-template-columns:1fr;
    }


    /* What We Do */

    .service-grid{
        grid-template-columns:1fr;
        gap:40px;
    }



    /* CTA */

    .cta-banner{
        height:380px;
    }

    .cta-content h2{
        font-size:42px;
    }



    /* Footer */

    .site-footer{
        padding:35px 20px;
    }



    /* Lightbox */

    .nav{
        font-size:42px;
        padding:10px;
    }

    .prev{
        left:8px;
    }

    .next{
        right:8px;
    }

    .close{
        top:10px;
        right:15px;
        font-size:34px;
    }

}



@media (max-width:480px){

    .hero-copy h1{
        font-size:48px;
    }

    .hero-lead{
        font-size:14px;
    }

    .featured-content h3{
        font-size:28px;
    }

    .banner-content h2{
        font-size:34px;
    }

    .cta-content h2{
        font-size:34px;
    }

    .process-card h3{
        font-size:28px;
    }

    .process-card p{
        max-width:100%;
    }

}
.gallery-modal{
    position:fixed;
    inset:0;
    background:#ffffff;
    z-index:9999;

    opacity:0;
    visibility:hidden;
    transition:.35s;

    overflow-y:auto;
}

.gallery-modal.active{
    opacity:1;
    visibility:visible;
}

.gallery-content{
    max-width:1400px;
    margin:80px auto;
    padding:0 30px;

    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:20px;
}

.gallery-content img{
    width:100%;
    aspect-ratio:4/5;
    object-fit:cover;
    display:block;
    border-radius:6px;
    cursor:pointer;
    transition:.3s;
}

.gallery-content img:hover{
    transform:scale(1.03);
}
.gallery-close{
    position:fixed;
    top:30px;
    right:40px;

    width:48px;
    height:48px;

    border:none;
    background:none;
    color:#000;

    font-size:42px;
    cursor:pointer;
    z-index:10000;
}

.image-viewer{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.92);

    display:flex;
    justify-content:center;
    align-items:center;

    opacity:0;
    visibility:hidden;
    transition:.3s;

    z-index:10000;
}

.image-viewer.active{
    opacity:1;
    visibility:visible;
}

.image-viewer img{
    max-width:92vw;
    max-height:90vh;
    object-fit:contain;
}

.viewer-close{
    position:absolute;
    top:25px;
    right:35px;

    background:none;
    border:none;

    color:#fff;
    font-size:42px;
    cursor:pointer;
}
.viewer-prev,
.viewer-next{

    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:56px;
    height:56px;
    border:none;
    background:rgba(0,0,0,.35);
    color:#fff;
    font-size:34px;
    cursor:pointer;
    z-index:1001;
    border-radius:50%;
    transition:.2s;

}

.viewer-prev:hover,
.viewer-next:hover{

    background:rgba(0,0,0,.6);

}

.viewer-prev{

    left:24px;

}

.viewer-next{

    right:24px;

}
@media (max-width:768px){

    .viewer-prev,
    .viewer-next{

        width:44px;
        height:44px;
        font-size:26px;

    }

    .viewer-prev{

        left:10px;

    }

    .viewer-next{

        right:10px;

    }

}
@media (max-width:768px){

    .portfolio-grid{
        grid-template-columns:repeat(4,1fr);
        gap:4px;
    }

    .portfolio-card img{
        aspect-ratio:1/1;
        object-fit:cover;
    }

}
