/* ===================== Base ===================== */
:root{
  --black:#121212;
  --dark:#242424;
  --gray-900:#2b2b2b;
  --gray-600:#6b6b6b;
  --gray-400:#a3a3a0;
  --gray-200:#e8e6e2;
  --gray-100:#f6f5f2;
  --white:#fff;
  --accent:#e2231a; /* 브랜드 아이덴티티 레드 (인스타 로고 컬러 기반) */
  --accent-dark:#b81810;
  --max-w:1200px;
  --radius:3px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
section[id], .lookbook-sub{scroll-margin-top:90px;}
body{
  font-family:'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif;
  color:var(--gray-900);
  background:var(--white);
  line-height:1.68;
  font-weight:400;
  letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img{display:block;width:100%;height:100%;object-fit:cover;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
.container{max-width:var(--max-w);margin:0 auto;padding:0 24px;}
.center{text-align:center;}

section{padding:140px 0;}
@media(max-width:768px){section{padding:80px 0;}}

.section-tag{
  font-size:12px;
  letter-spacing:.28em;
  color:var(--accent);
  font-weight:700;
  margin-bottom:16px;
  display:flex;
  align-items:center;
  gap:10px;
}
.section-tag::before{content:"";display:inline-block;width:24px;height:1px;background:var(--accent);}
.section-tag.center::before{display:none;}
.section-tag.center{justify-content:center;}
.section-tag.light{color:#ff6b61;}
.section-title{
  font-size:36px;
  font-weight:700;
  margin-bottom:64px;
  letter-spacing:-.03em;
  line-height:1.3;
}
.section-title.light{color:var(--white);}
@media(max-width:768px){
  .section-title{font-size:26px;margin-bottom:40px;}
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:17px 36px;
  font-size:13.5px;
  font-weight:500;
  letter-spacing:.04em;
  border-radius:var(--radius);
  transition:all .35s var(--ease);
  border:1px solid transparent;
  cursor:pointer;
}
.btn-primary{background:var(--black);color:var(--white);}
.btn-primary:hover{background:var(--accent);letter-spacing:.06em;}
.btn-outline{border-color:rgba(0,0,0,.22);color:var(--gray-900);}
.btn-outline:hover{border-color:var(--black);background:var(--black);color:var(--white);}
.btn-small{padding:11px 22px;font-size:12.5px;background:var(--black);color:var(--white);}
.btn-small:hover{background:var(--accent);}
.btn-full{width:100%;}

/* ===================== Scroll reveal ===================== */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.in{opacity:1;transform:translateY(0);}

/* ===================== Header ===================== */
.header{
  position:fixed;top:0;left:0;width:100%;z-index:100;
  transition:background .35s var(--ease), box-shadow .35s var(--ease);
  background:transparent;
}
.header.scrolled{background:rgba(255,255,255,.94);backdrop-filter:blur(6px);box-shadow:0 1px 0 rgba(0,0,0,.06);}
.header-inner{
  max-width:var(--max-w);margin:0 auto;padding:0 24px;
  height:76px;display:flex;align-items:center;justify-content:space-between;
}
.logo{font-size:18px;font-weight:900;letter-spacing:.02em;display:flex;align-items:center;gap:2px;}
.logo-mark{width:32px;height:32px;border-radius:0;object-fit:cover;flex:none;display:block;margin-right:8px;}
/* PEOPLE = 항상 레드. STUDIO는 헤더 상태에 따라 색이 바뀝니다:
   투명 헤더(히어로 위, 스크롤 전) = 화이트 / 흰 배경 헤더(스크롤 후) = 블랙.
   풋터의 STUDIO는 항상 화이트로 고정. */
.logo-people{color:var(--accent);}
.logo-studio{color:var(--black);}
.header:not(.scrolled) .logo-people{text-shadow:0 1px 10px rgba(0,0,0,.55);}
.header:not(.scrolled) .logo-studio{color:var(--white);text-shadow:0 1px 10px rgba(0,0,0,.55);}
.header.scrolled .logo-studio{color:var(--black);}
.footer-logo .logo-studio{color:var(--white);}

.nav{display:flex;align-items:center;gap:44px;}
.nav > a{
  font-size:13.5px;font-weight:500;letter-spacing:.02em;color:var(--white);
  transition:color .25s;position:relative;padding:4px 0;
}
.nav > a::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1px;
  background:var(--accent);transition:width .3s var(--ease);
}
.header.scrolled .nav > a{color:var(--gray-900);}
.nav > a:hover{color:var(--accent);}
.nav > a:hover::after{width:100%;}

/* dropdown nav items */
.nav-item{position:relative;}
/* invisible bridge so the cursor stays "inside" the nav-item while moving
   down through the gap toward the dropdown — keeps :hover alive so the
   submenu doesn't close before the pointer reaches it */
.nav-item::after{
  content:"";position:absolute;left:50%;top:100%;
  width:190px;height:22px;transform:translateX(-50%);
}
.nav-link{
  cursor:pointer;
  font-family:inherit;font-size:13.5px;font-weight:500;letter-spacing:.02em;
  color:var(--white);padding:4px 0;display:flex;align-items:center;gap:6px;
  transition:color .25s;
}
.header.scrolled .nav-link{color:var(--gray-900);}
.nav-link::after{
  content:"";width:6px;height:6px;border-right:1.4px solid currentColor;border-bottom:1.4px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .3s var(--ease);
}
.nav-item:hover .nav-link::after,.nav-item.open .nav-link::after{transform:rotate(225deg) translateY(1px);}
.nav-item:hover .nav-link,.nav-item.open .nav-link{color:var(--accent);}

.dropdown{
  position:absolute;top:calc(100% + 18px);left:50%;transform:translateX(-50%) translateY(-8px);
  min-width:190px;background:var(--white);border-radius:var(--radius);
  box-shadow:0 20px 48px rgba(0,0,0,.14);
  padding:10px 0;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;
  z-index:50;
}
.nav-item:hover .dropdown{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
}
.dropdown a{
  display:flex;align-items:center;gap:8px;
  padding:11px 22px;font-size:13.5px;color:var(--gray-900);white-space:nowrap;
  transition:background .2s, color .2s, padding-left .2s;
}
.dropdown a:hover{background:var(--gray-100);color:var(--accent);padding-left:26px;}

@media(min-width:900px){
  .nav-item{display:flex;}
}

.header-actions{display:flex;align-items:center;gap:18px;}
.icon-link{color:var(--white);transition:color .25s;}
.header.scrolled .icon-link{color:var(--gray-900);}
.icon-link:hover{color:var(--accent);}
.header-actions .btn-small{display:none;}
@media(min-width:900px){.header-actions .btn-small{display:inline-flex;}}

.menu-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;}
.menu-toggle span{width:22px;height:2px;background:var(--white);transition:.3s;}
.header.scrolled .menu-toggle span{background:var(--black);}
@media(max-width:900px){
  .nav{
    position:fixed;top:76px;left:0;width:100%;
    background:var(--white);
    flex-direction:column;gap:0;
    max-height:0;overflow:hidden;
    transition:max-height .35s var(--ease);
    box-shadow:0 8px 20px rgba(0,0,0,.06);
  }
  .nav.open{max-height:720px;overflow-y:auto;}
  .nav{align-items:stretch;}
  .nav > a{color:var(--gray-900);padding:16px 24px;border-bottom:1px solid var(--gray-100);}
  .menu-toggle{display:flex;}

  /* mobile dropdown: inline accordion instead of floating panel */
  .nav-item{border-bottom:1px solid var(--gray-100);}
  .nav-link{
    width:100%;color:var(--gray-900);padding:16px 24px;justify-content:space-between;
  }
  /* 모바일에서는 상위 메뉴를 탭하면(js가 .nav-item에 .open 부여) 서브메뉴가
     아코디언 형태로 펼쳐집니다. 바깥을 탭하면 js가 .open을 제거해 다시 닫힙니다. */
  .dropdown{display:none;}
  .nav-item.open .dropdown{
    display:block;position:static;
    opacity:1;visibility:visible;pointer-events:auto;
    transform:none;box-shadow:none;border-radius:0;
    background:var(--gray-100);padding:4px 0;
  }
  .nav-item.open .dropdown a{padding-left:40px;}
  .nav-item::after{display:none;}
}

/* ===================== Hero ===================== */
.hero{
  position:relative;height:100vh;min-height:600px;
  display:flex;align-items:center;
  overflow:hidden;
  color:var(--white);
}
.hero-media{position:absolute;inset:0;}
.hero-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);animation:heroZoom 14s var(--ease) forwards;}
@keyframes heroZoom{to{transform:scale(1);}}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(10,10,10,.35) 0%, rgba(10,10,10,.55) 100%);
}
.hero-content{position:relative;z-index:2;max-width:var(--max-w);margin:0 auto;padding:0 24px;width:100%;}
.eyebrow{font-size:12.5px;letter-spacing:.34em;color:var(--accent);font-weight:700;margin-bottom:22px;padding-left:2px;}
.hero h1{font-size:56px;font-weight:700;line-height:1.32;letter-spacing:-.03em;margin-bottom:28px;}
.accent-text{color:var(--accent);}
.hero-desc{font-size:16px;font-weight:300;color:rgba(255,255,255,.82);margin-bottom:44px;line-height:1.8;}
.hero-buttons{display:flex;gap:14px;flex-wrap:wrap;}
.hero .btn-outline{border-color:rgba(255,255,255,.45);color:var(--white);}
.hero .btn-outline:hover{background:var(--white);color:var(--black);border-color:var(--white);}
@media(max-width:768px){
  .hero h1{font-size:32px;}
  .hero-desc{font-size:14px;}
}

/* ===================== USP strip ===================== */
.usp{padding:0;transform:translateY(-40px);position:relative;z-index:5;}
.usp-grid{
  background:var(--white);
  display:grid;grid-template-columns:repeat(3,1fr);
  box-shadow:0 24px 60px rgba(20,16,8,.09);
  border-radius:var(--radius);
  overflow:hidden;
}
.usp-item{padding:44px 40px;border-right:1px solid var(--gray-200);}
.usp-item:last-child{border-right:none;}
.usp-num{display:block;font-size:12px;font-weight:700;color:var(--accent);letter-spacing:.12em;margin-bottom:16px;}
.usp-item h3{font-size:18px;font-weight:700;margin-bottom:10px;letter-spacing:-.01em;}
.usp-item p{font-size:13.5px;color:var(--gray-600);}
@media(max-width:900px){
  .usp{transform:none;}
  .usp-grid{grid-template-columns:1fr;box-shadow:none;}
  .usp-item{border-right:none;border-bottom:1px solid var(--gray-200);padding:32px 28px;}
}
.scroll-indicator{
  position:absolute;left:50%;bottom:36px;transform:translateX(-50%);
  width:1px;height:56px;background:rgba(255,255,255,.35);
  overflow:hidden;
}
.scroll-indicator span{
  display:block;width:100%;height:30%;background:var(--white);
  animation:scrollDown 1.8s ease-in-out infinite;
}
@keyframes scrollDown{
  0%{transform:translateY(-100%);}
  100%{transform:translateY(330%);}
}

/* ===================== About ===================== */
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:center;}
.about-media{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;}
.about-text h2{font-size:30px;font-weight:700;line-height:1.45;letter-spacing:-.02em;margin:14px 0 22px;}
.about-desc{color:var(--gray-600);font-size:15px;margin-bottom:36px;}
.about-list{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px;border-top:1px solid var(--gray-200);padding-top:28px;}
.about-list li{display:flex;flex-direction:column;gap:4px;}
.about-list strong{font-size:15px;color:var(--black);}
.about-list span{font-size:13px;color:var(--gray-400);}
@media(max-width:900px){
  .about-grid{grid-template-columns:1fr;gap:40px;}
  .about-media{max-width:360px;margin:0 auto;}
}

/* ===================== Service ===================== */
.service{background:var(--gray-100);}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.service-card{background:var(--white);padding:0 0 32px;border-radius:var(--radius);overflow:hidden;transition:transform .4s var(--ease), box-shadow .4s var(--ease);}
.service-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px rgba(0,0,0,.08);}
.service-thumb{aspect-ratio:4/3;overflow:hidden;}
.service-thumb img{transition:transform .6s var(--ease);}
.service-card:hover .service-thumb img{transform:scale(1.08);}
.service-card h3{font-size:18px;font-weight:700;margin:24px 24px 10px;}
.service-card p{font-size:13.5px;color:var(--gray-600);margin:0 24px;}
@media(max-width:900px){.service-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.service-grid{grid-template-columns:1fr;}}

/* ===================== Process ===================== */
.process{position:relative;padding:140px 0;color:var(--white);overflow:hidden;}
.process-bg{position:absolute;inset:0;z-index:0;}
.process-bg img{width:100%;height:100%;object-fit:cover;}
.process-bg::after{content:"";position:absolute;inset:0;background:rgba(10,10,10,.72);}
.process .container{position:relative;z-index:1;}
.process-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;}
.process-step{border-left:1px solid rgba(255,255,255,.25);padding-left:24px;}
.step-num{display:block;font-size:34px;font-weight:900;color:var(--accent);margin-bottom:14px;font-family:sans-serif;}
.process-step h3{font-size:17px;margin-bottom:10px;}
.process-step p{font-size:13.5px;color:rgba(255,255,255,.7);}
@media(max-width:900px){.process-steps{grid-template-columns:1fr 1fr;row-gap:36px;}}
@media(max-width:560px){.process-steps{grid-template-columns:1fr;}}

/* ===================== Portfolio ===================== */
.filter-tabs{display:flex;justify-content:center;gap:10px;margin-bottom:44px;flex-wrap:wrap;}
.filter-btn{
  padding:10px 22px;font-size:13px;font-weight:500;
  border:1px solid var(--gray-200);border-radius:30px;background:var(--white);
  cursor:pointer;transition:all .25s;color:var(--gray-600);
}
.filter-btn:hover{border-color:var(--black);color:var(--black);}
.filter-btn.active{background:var(--black);border-color:var(--black);color:var(--white);}

.portfolio-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.portfolio-item{
  position:relative;overflow:hidden;border-radius:var(--radius);
  aspect-ratio:1/1;
  transition:opacity .4s var(--ease), transform .4s var(--ease);
  background:var(--gray-100);
}
.portfolio-item img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);}
.portfolio-empty{text-align:center;color:var(--gray-400);font-size:13.5px;padding:40px 0;}
.portfolio-item:hover img{transform:scale(1.07);}
.portfolio-item::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.45) 100%);
  opacity:0;transition:opacity .35s var(--ease);
}
.portfolio-item:hover::before{opacity:1;}
.portfolio-item .tag{
  position:absolute;left:16px;bottom:16px;
  color:var(--white);
  font-size:12px;letter-spacing:.05em;font-weight:500;
  opacity:0;transform:translateY(8px);transition:.35s var(--ease);
}
.portfolio-item:hover .tag{opacity:1;transform:translateY(0);}
.portfolio-item.hide{display:none;}
@media(max-width:900px){
  .portfolio-grid{grid-template-columns:repeat(2,1fr);}
}

/* 모델촬영 / AI 룩북 관련 포트폴리오 그리드: 2:3 비율, 가로 5개 */
.portfolio-grid.model-grid{grid-template-columns:repeat(5,1fr);}
.portfolio-grid.model-grid .portfolio-item{aspect-ratio:2/3;}
@media(max-width:900px){
  .portfolio-grid.model-grid{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:560px){
  .portfolio-grid.model-grid{grid-template-columns:repeat(2,1fr);}
}

/* ===================== Price ===================== */
.price-note{color:var(--gray-400);font-size:13.5px;margin-top:-40px;margin-bottom:56px;}

.price-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--gray-200);border:1px solid var(--gray-200);margin-bottom:20px;}
.price-card{background:var(--white);padding:32px 32px 24px;}
.price-card-head{display:flex;align-items:baseline;gap:10px;margin-bottom:20px;}
.price-card-head h3{font-size:17px;font-weight:700;display:flex;align-items:baseline;gap:10px;}
.price-card-head h3 span{font-size:12px;font-weight:400;color:var(--gray-400);}
.price-mini{width:100%;border-collapse:collapse;font-size:13.5px;table-layout:fixed;}
.price-mini th{
  padding:0 10px 10px 0;text-align:right;font-weight:500;
  font-size:11.5px;color:var(--gray-400);letter-spacing:.01em;
}
.price-mini th span{display:block;font-size:10px;color:var(--gray-400);font-weight:400;margin-top:2px;}
.price-mini td{padding:11px 10px 11px 0;border-top:1px solid var(--gray-100);color:var(--gray-600);word-break:keep-all;}
.price-mini td:first-child, .price-mini th:first-child{text-align:left;}
.price-mini td:first-child{color:var(--gray-900);font-weight:500;width:34%;}
.price-mini td:not(:first-child){text-align:right;}
.price-mini th:last-child, .price-mini td:last-child{padding-right:0;}

/* 5개 컬럼처럼 항목명 외에 텍스트가 긴 표는 .price-wide 를 추가로 붙여 칸 너비와 정렬을 재조정합니다 */
.price-mini.price-wide{table-layout:auto;min-width:620px;}
.price-mini.price-wide th, .price-mini.price-wide td{text-align:left;white-space:normal;}
.price-mini.price-wide td:first-child{width:auto;white-space:nowrap;}
.price-mini.price-wide th:nth-child(4), .price-mini.price-wide td:nth-child(4){text-align:right;white-space:nowrap;}
.price-mini.price-wide th:last-child, .price-mini.price-wide td:last-child{color:var(--gray-400);font-size:12px;}
@media(max-width:768px){
  .price-cards{grid-template-columns:1fr;}
  .price-mini{font-size:12px;}
  .price-mini th span{display:none;}
}

.discount-box{background:var(--gray-100);padding:44px;border-radius:var(--radius);}
.discount-box h3{font-size:16px;font-weight:700;margin-bottom:26px;letter-spacing:-.01em;}
.discount-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--gray-200);border:1px solid var(--gray-200);}
.discount-grid div{background:var(--white);padding:22px 16px;text-align:center;}
.discount-grid strong{display:block;font-size:12.5px;color:var(--gray-600);margin-bottom:10px;font-weight:500;}
.discount-grid span{font-size:19px;font-weight:700;color:var(--accent);}
@media(max-width:900px){.discount-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:560px){.discount-grid{grid-template-columns:repeat(2,1fr);}}

/* ===================== Lookbook ===================== */
.lookbook{background:var(--gray-100);}
.lookbook-sub{margin-bottom:64px;}
.lookbook-sub:last-child{margin-bottom:0;}
.lookbook-sub-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:24px;
  border-bottom:1px solid var(--gray-200);padding-bottom:20px;margin-bottom:28px;
  flex-wrap:wrap;
  scroll-margin-top:96px;
}
.lookbook-sub-head h3{font-size:20px;font-weight:700;display:flex;align-items:center;gap:10px;}
.badge{
  font-size:10.5px;font-weight:700;letter-spacing:.05em;color:var(--white);
  background:var(--accent);padding:3px 9px;border-radius:20px;
}
.lookbook-sub-head p{font-size:13.5px;color:var(--gray-600);max-width:440px;}
.lookbook-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
.lookbook-item{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:var(--radius);background:var(--white);}
.lookbook-item img{transition:transform .6s var(--ease);}
.lookbook-item:hover img{transform:scale(1.06);}
@media(max-width:900px){.lookbook-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:560px){.lookbook-grid{grid-template-columns:repeat(2,1fr);}}

/* ===================== Instagram ===================== */
.instagram{background:var(--gray-100);}
.insta-carousel{overflow:hidden;margin-bottom:48px;}
.insta-track{display:flex;gap:4px;}
.insta-item{position:relative;flex:0 0 auto;aspect-ratio:1/1;overflow:hidden;display:block;}
.insta-item img{transition:transform .5s var(--ease);}
.insta-item:hover img{transform:scale(1.08);}

/* ===================== Contact ===================== */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;}
.contact-info h2{font-size:30px;font-weight:700;margin:14px 0 18px;}
.contact-desc{color:var(--gray-600);font-size:15px;margin-bottom:40px;}
.contact-list li{
  display:flex;gap:20px;padding:16px 0;border-top:1px solid var(--gray-200);
  font-size:14px;color:var(--gray-900);
}
.contact-list li:last-child{border-bottom:1px solid var(--gray-200);}
.contact-list span{flex:0 0 100px;font-size:11px;letter-spacing:.1em;color:var(--gray-400);font-weight:700;padding-top:2px;}
.contact-list a:hover{color:var(--accent);}

.contact-form{display:flex;flex-direction:column;gap:14px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.contact-form input,.contact-form textarea,.contact-form select{
  width:100%;border:1px solid var(--gray-200);border-radius:var(--radius);
  padding:15px 16px;font-size:14px;font-family:inherit;
  transition:border-color .25s;background:var(--white);color:var(--gray-900);
}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{outline:none;border-color:var(--black);}
.contact-form textarea{resize:vertical;}
.contact-form select{
  appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236b6b6b' stroke-width='1.5' fill='none' fill-rule='evenodd'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;padding-right:38px;
}
.contact-form select:invalid{color:var(--gray-400);}
.form-msg{font-size:13px;color:var(--gray-900);background:var(--gray-100);padding:12px 16px;border-radius:var(--radius);}
.form-msg.is-error{color:var(--accent);background:#fdeceb;}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:48px;}}
@media(max-width:560px){.form-row{grid-template-columns:1fr;}}

/* ===================== Footer ===================== */
.footer{background:var(--black);color:rgba(255,255,255,.6);padding:48px 0;}
.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
.footer-logo{color:var(--white);}
.footer-logo span{color:var(--accent);}
.footer p{font-size:12.5px;}

/* ===================== To top ===================== */
.to-top{
  position:fixed;right:24px;bottom:24px;
  width:44px;height:44px;border-radius:50%;
  background:var(--black);color:var(--white);
  display:flex;align-items:center;justify-content:center;
  font-size:16px;z-index:60;
  opacity:0;pointer-events:none;
  transition:opacity .3s, transform .3s;
}
.to-top.show{opacity:1;pointer-events:auto;}
.to-top:hover{background:var(--accent);transform:translateY(-3px);}

/* ===================== Sub-page header (Portfolio / Price·Contact) ===================== */
.page-hero{
  padding:170px 0 60px;background:var(--gray-100);text-align:center;
}
.page-hero h1{font-size:34px;font-weight:700;letter-spacing:-.02em;margin-bottom:14px;}
.page-hero p{color:var(--gray-600);font-size:14px;}
@media(max-width:768px){.page-hero{padding:130px 0 44px;}.page-hero h1{font-size:24px;}}

/* Portfolio pages: image-only grid, no tag overlay needed */
.portfolio-item{cursor:pointer;}
.portfolio-item.no-lightbox{cursor:default;}
.portfolio-item.no-lightbox:hover img{transform:none;}
.portfolio-item.image-only::before{display:none;}

/* ===================== Lightbox ===================== */
.lightbox{
  position:fixed;inset:0;z-index:300;background:rgba(10,10,10,.94);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:opacity .3s var(--ease), visibility .3s;
}
.lightbox.open{opacity:1;visibility:visible;}
.lightbox-inner{position:relative;max-width:min(90vw,1000px);max-height:88vh;width:100%;}
.lightbox-inner img{width:100%;height:100%;max-height:88vh;object-fit:contain;display:block;margin:0 auto;background:transparent;}
.lightbox-close{
  position:absolute;top:-44px;right:0;background:none;border:none;color:var(--white);
  font-size:30px;line-height:1;cursor:pointer;padding:6px;opacity:.8;transition:opacity .2s;
}
.lightbox-close:hover{opacity:1;}
.lightbox-nav{
  position:fixed;top:50%;transform:translateY(-50%);
  width:52px;height:52px;border-radius:50%;border:none;
  background:rgba(255,255,255,.12);color:var(--white);
  display:flex;align-items:center;justify-content:center;
  font-size:22px;cursor:pointer;transition:background .2s;
  z-index:301;
}
.lightbox-nav:hover{background:rgba(255,255,255,.28);}
.lightbox-prev{left:20px;}
.lightbox-next{right:20px;}
.lightbox-count{
  position:absolute;bottom:-38px;left:50%;transform:translateX(-50%);
  color:rgba(255,255,255,.7);font-size:12.5px;letter-spacing:.05em;
}
@media(max-width:768px){
  .lightbox-nav{width:42px;height:42px;font-size:18px;}
  .lightbox-prev{left:8px;}
  .lightbox-next{right:8px;}
  .lightbox-close{top:-38px;right:4px;font-size:26px;}
}

/* 제품 묶음 갤러리 전용: 하단 썸네일 목록 / 안내 문구 / 제품 이동 버튼 */
.lightbox.lightbox-grouped .lightbox-inner img{max-height:64vh;}
.lightbox.lightbox-grouped .lightbox-count{position:static;display:block;margin-top:12px;transform:none;left:auto;bottom:auto;text-align:center;}
.lightbox-thumbs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px;}
.lightbox-thumb{
  width:56px;height:56px;flex:none;border-radius:6px;overflow:hidden;
  border:2px solid transparent;opacity:.55;cursor:pointer;padding:0;background:none;
  transition:opacity .2s, border-color .2s;
}
.lightbox-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.lightbox-thumb:hover{opacity:.85;}
.lightbox-thumb.active{opacity:1;border-color:var(--accent);}
.lightbox-hint{margin-top:12px;text-align:center;color:rgba(255,255,255,.5);font-size:11.5px;letter-spacing:.02em;}
.lightbox-product-nav{
  position:fixed;top:24px;
  background:rgba(255,255,255,.12);color:var(--white);border:none;border-radius:999px;
  padding:9px 18px;font-size:12.5px;letter-spacing:.02em;cursor:pointer;
  transition:background .2s;z-index:301;
}
.lightbox-product-nav:hover{background:rgba(255,255,255,.28);}
.lightbox-product-prev{left:20px;}
.lightbox-product-next{right:20px;}
@media(max-width:768px){
  .lightbox-product-nav{padding:6px 12px;font-size:11px;top:10px;}
  .lightbox-thumb{width:44px;height:44px;}
}

/* ===================== 모델촬영 페이지 (스튜디오 / AI 섹션 공통) ===================== */
.model-section{padding:100px 0;}
.model-section:nth-child(even){background:var(--gray-100);}
.model-section-head{max-width:680px;margin:0 auto 44px;text-align:center;}
.model-section-head p{color:var(--gray-600);font-size:14.5px;line-height:1.9;}
.model-section-head ul{margin-top:18px;text-align:left;display:inline-block;}
.model-section-head ul li{position:relative;padding-left:16px;color:var(--gray-600);font-size:13.5px;line-height:1.9;}
.model-section-head ul li::before{content:"";position:absolute;left:0;top:11px;width:5px;height:5px;border-radius:50%;background:var(--accent);}
.model-price-wrap{max-width:760px;margin:56px auto 0;}
.model-price-wrap .price-card{border:1px solid var(--gray-200);}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.price-note-list{margin-top:18px;font-size:12.5px;color:var(--gray-400);line-height:1.9;}
.price-note-list li{position:relative;padding-left:14px;}
.price-note-list li::before{content:"–";position:absolute;left:0;}

/* ===================== 촬영 진행 프로세스 다이어그램 ===================== */
.model-process{max-width:1100px;margin:72px auto 0;}
.model-process-title{text-align:center;font-size:26px;font-weight:700;margin:6px 0 32px;}
.model-process-diagram{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.model-process-diagram svg{width:100%;min-width:640px;height:auto;display:block;}

/* ===================== AI 룩북 : Beyond AI + Human Touch ===================== */
.ai-touch{max-width:680px;margin:0 auto 48px;text-align:center;}
.ai-touch h3{font-size:24px;font-weight:700;margin-bottom:6px;}
.ai-touch-sub{color:var(--accent);font-weight:700;font-size:14px;margin-bottom:16px;}
.ai-touch p{color:var(--gray-600);font-size:14.5px;line-height:1.9;}
.ai-tags{margin-top:20px;display:flex;flex-direction:column;gap:8px;align-items:center;}
.ai-tags span{font-size:12.5px;color:var(--gray-600);background:var(--gray-100);padding:8px 16px;border-radius:20px;}

/* ===================== AI 룩북 : 핵심 혜택 카드 ===================== */
.benefit-grid{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.benefit-card{border:1px solid var(--gray-200);border-radius:var(--radius);padding:32px 26px;}
.benefit-card h4{font-size:16px;font-weight:700;line-height:1.4;margin-bottom:12px;}
.benefit-card p{font-size:13px;color:var(--gray-600);line-height:1.8;}
@media(max-width:760px){.benefit-grid{grid-template-columns:1fr;}}

/* ===================== AI 룩북 : 제작 프로세스(워크플로우) ===================== */
.workflow-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 24px;}
.workflow-step .step-num{display:block;font-size:26px;font-weight:900;color:var(--accent);margin-bottom:10px;}
.workflow-step h4{font-size:15.5px;font-weight:700;margin-bottom:8px;}
.workflow-step p{font-size:13px;color:var(--gray-600);line-height:1.8;}
@media(max-width:900px){.workflow-steps{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.workflow-steps{grid-template-columns:1fr;}}

/* ===================== 클라이언트 로고 ===================== */
.client-strip{max-width:1000px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:14px;}
.client-badge{
  flex:0 0 auto;width:200px;height:96px;padding:20px 28px;border:1px solid var(--gray-200);border-radius:var(--radius);
  display:flex;align-items:center;justify-content:center;
  transition:border-color .25s;
}
.client-badge:hover{border-color:var(--accent);}
.client-badge img{max-width:100%;max-height:100%;object-fit:contain;filter:grayscale(1);opacity:.75;transition:filter .25s,opacity .25s;}
.client-badge:hover img{filter:grayscale(0);opacity:1;}
.client-badge.is-dummy{color:var(--gray-400);border-style:dashed;font-weight:500;font-family:'Noto Sans KR',sans-serif;}

/* ===================== FAQ 아코디언 ===================== */
.faq-list{max-width:820px;margin:0 auto;}
.faq-item{border-bottom:1px solid var(--gray-200);}
.faq-question{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:26px 4px;background:none;border:none;cursor:pointer;text-align:left;
  font-family:inherit;font-size:15.5px;font-weight:500;color:var(--gray-900);
}
.faq-question .faq-q-mark{color:var(--accent);font-weight:700;margin-right:10px;}
.faq-question .faq-icon{
  flex:none;width:22px;height:22px;position:relative;
}
.faq-question .faq-icon::before,
.faq-question .faq-icon::after{
  content:"";position:absolute;top:50%;left:50%;background:var(--gray-900);
  transform:translate(-50%,-50%);transition:transform .3s var(--ease), opacity .3s;
}
.faq-question .faq-icon::before{width:14px;height:1.6px;}
.faq-question .faq-icon::after{width:1.6px;height:14px;}
.faq-item.open .faq-question .faq-icon::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0;}
.faq-item.open .faq-question{color:var(--accent);}
.faq-answer{
  max-height:0;overflow:hidden;transition:max-height .4s var(--ease);
}
.faq-answer-inner{padding:0 4px 26px;color:var(--gray-600);font-size:14px;line-height:1.85;}
.faq-item.open .faq-answer{max-height:400px;}

/* ===================== Price 페이지 내 하위 구분 (모델촬영 요금 / 후작업 옵션) ===================== */
/* 페이지 최상단 큰 타이틀(PRICE / 촬영 방식별 요금 안내)과 구분되도록,
   각 하위 항목 제목은 상단 구분선 + 빨간 번호 배지가 붙는 작은 타이틀 형태로 표시합니다. */
.price-subhead{
  display:flex;align-items:center;justify-content:center;gap:12px;
  font-size:19px;font-weight:700;letter-spacing:-.01em;color:var(--gray-900);
  margin:88px 0 26px;padding-top:38px;border-top:1px solid var(--gray-200);
}
.price-subhead .num{
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--white);
  font-size:12.5px;font-weight:700;
}
.price-subhead-note{text-align:center;color:var(--gray-600);font-size:13.5px;margin:-14px 0 28px;}
.price-subhead.first{border-top:none;padding-top:0;margin-top:40px;}
.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--gray-200);border:1px solid var(--gray-200);margin-bottom:20px;}
.option-grid .price-card{background:var(--white);}
@media(max-width:768px){.option-grid{grid-template-columns:1fr;}}
.price-inquiry-wrap{text-align:center;margin-top:26px;}
