/*site wide css*/

html {
  scroll-behavior: smooth;
  margin: 0;
}

body {
background-color: #FBFAF9;
  margin: 0;
}

h2 {
color: #666;                      
font-family: 'Inter', sans-serif;
font-size: 14px;
letter-spacing: 1px;
font-optical-sizing: auto;
font-style: normal;
text-decoration: none;
font-weight: 400;
}

.logo {
color: black;
}

nav ul {
display: flex;
list-style: none;
list-style: none;
display: flex;
gap: 40px;                       
margin: 0;
padding: 0;
}

nav {
display: flex;
justify-content: space-between;  
align-items: center;
padding: 25px 60px;             
border-bottom: 1px solid #e0e0e0; 
background-color: #FBFAF9;
position: sticky; 
top: 0;
z-index: 1000;

}

nav a {
text-decoration: none;
color: #666;                      
font-family: 'Inter', sans-serif;
font-size: 14px;
letter-spacing: 1px;
text-transform: uppercase;
transition: color 0.3s ease;
font-optical-sizing: auto;
font-style: normal;
}

nav a:hover {
color: black;
}

h1 {
font-family: "Inter", sans-serif;
font-weight: 450;
font-style: normal;
font-size: 100px;
line-height: 0.95;
margin: 0;
}

/*index css*/

.hero-line {
width: 70px;                    
height: 1px;
background: black;
margin: 36px 0 36px 0;         
}

#hero p {
color: #666; 
font-family: "Inter", sans-serif;
margin: 0;
font-weight: 400;
font-style: normal;
}

#hero {
display: block;
padding: 160px 60px;
}

.hero-button {
list-style: none;
display: flex;
gap: 20px;
margin: 50px 0 0 0;
padding: 0;
}

.portfolio-button {
padding: 12px 18px;
border-radius: 999px;
border-color: black;
background-color: black;
color: white;
text-decoration: none;
font-family: "Inter", sans-serif;
font-size: 15px;
line-height: 1;
border: 1px solid #e5e7eb;         
transition: transform .08s ease, color .2s ease, background .2s ease, border-color .2s ease;
}

.portfolio-button .arrow {
margin-left: 6px;
}

.contact-button {
padding: 12px 18px;
border-radius: 999px;
border-color: #111;
background-color: #FBFAF9;
color: black;
text-decoration: none;
font-family: "Inter", sans-serif;
font-size: 15px;
line-height: 1;
border: 1px solid #e5e7eb;         
transition: transform .08s ease, color .2s ease, background .2s ease, border-color .2s ease;
}

.portfolio-button:hover {
background-color: #333;
}

.contact-button:hover {
background-color: #e6e6e6;
}



.selected-work h2 {
margin-bottom: 80px;
}

.selected-work {
display: block;
padding: 100px 60px;
}

.selected-work-items {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 40px;
}

.selected-item {
display: flex;
flex: 0 1 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols));
text-align: flex-start;
flex-direction: column;
overflow: hidden;
}

.item-description {
display: flex;
justify-content: space-between; 
align-items: baseline;         
gap: 10px;
}

.selected-item h3 {
font-family: "Inter", sans-serif;
font-weight: 400;
font-size: 16px;
color: black;
letter-spacing: 1px;
font-optical-sizing: auto;
font-style: normal;
text-decoration: none;
margin-bottom: -4px;
}

.selected-item:hover h3 {
color: #666;
}

.selected-item p {
font-family: "Inter", sans-serif;
font-weight: 400;
font-size: 14px;
color: #666;
margin-bottom: 5px;
line-height: 1.7;
}

.selected-item a img {
width: 100%;
height: 100%;
object-fit: cover;        
display: block;
transition: transform 0.4s ease;
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08); 
}

.selected-item a {
display: block;           
width: 100%;
aspect-ratio: 5 / 8;         
         
transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.selected-item:hover a img {
transform: scale(1.03);
}

.selected-item a:hover {
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
transform: translateY(-2px);
}


#about {
display: block;
padding: 100px 60px;
justify-content: center;
}

#about h2 {
flex: 0 0 320px; 
margin: 0;
line-height: 1.7;
}

.about-wrap {
display: flex;
align-items: flex-start;
gap: 80px;
max-width: 1400px;
box-sizing: border-box;
width: 100%;
margin: 0 auto;
}

.about-info {
flex: 1;
max-width: none;
}

.about-info p {
font-style: normal;
text-decoration: none;
font-weight: 400;
font-family: "Inter", sans-serif;
color: #666;
margin: 0 0 20px 0;
line-height: 1.7;
font-size: 16px;
}

.label {
font-style: normal;
text-decoration: none;
font-weight: 400;
font-size: 13px;
font-family: "Inter", sans-serif;
color: #666;   
white-space: nowrap;                   
}

.num {
font-style: normal;
text-decoration: none;
font-weight: 400;
font-size: 32px;
font-family: "Inter", sans-serif;
color: black;
}

.stats li {
display: inline-flex;
flex-direction: column;
align-items: flex-start;
flex: 0 0 auto;             
width: max-content;       
margin: 0;
padding: 0;
}

.stats {
display: flex;
list-style: none;
flex-wrap: wrap;
justify-content: flex-start;
align-items: flex-start;
gap: 120px;
margin: 40px 0 0 0;
padding: 0;
}



#expertise {
display: flex;
padding: 100px 200px 100px 60px;
align-items: flex-start;
gap: 80px;
}

#expertise h2 {
flex: 0 0 320px;
margin: 0;
line-height: 1;
display: flex;
align-items: flex-start;
}

.expertise-columns {
display: flex;
justify-content: space-between;
align-items: flex-start;
flex: 1;
gap: 80px; 
}

.expertise-item h3 {
font-family: "Inter", sans-serif;
font-weight: 500;
font-size: 15px;
letter-spacing: .05em;
color: black;
margin: 0 0 20px 0;     
line-height: 1;
letter-spacing: 1px;
font-optical-sizing: auto;
font-style: normal;
text-decoration: none;
}

.expertise-item ul {
list-style: none;
margin: 0;
padding: 0;
}

.expertise-item li {
font-family: "Inter", sans-serif;
font-weight: 400;
font-size: 14px;
color: #666;
margin-bottom: 20px;
}



#contact {
padding: 100px 60px;
display: flex;   
align-items: flex-start;       
flex-wrap: wrap;     
gap: 80px;
}

.contact-info {
flex: 0 0 320px;    
display: flex;
flex-direction: column;
justify-content: flex-start;
margin-top: 60px;   
}

#contact h2 {
flex: 0 0 100%;        
margin: 0; 
position: absolute;   
}

.contact-form {
flex: 1 1 520px;        
min-width: 320px;
}

.contact-form form { 
display: flex; 
flex-direction: column; 
gap: 16px; 
}

.form-top {
display: flex;
gap: 24px;
}

.form-top label + label { 
margin-left: 24px; 
}

.form-top label { 
flex: 1 1 0;
min-width: 0;
}

.contact-form label {
 display: flex;
flex-direction: column;
gap: 8px;
font-family: "Inter", sans-serif;
font-weight: 300;
font-size: 12px;
letter-spacing: .12em;
color: #666;
}

.contact-info {
gap: 32px;
}

.contact-info-item {
margin: 0;
}

.contact-info h3 {
font-family: "Inter", sans-serif;
font-weight: 300;
font-size: 12px;
letter-spacing: .12em;
color: #666;
margin: 0 0 10px 0;
}

.contact-info p,
.contact-info a {
font-family: "Inter", sans-serif;
font-weight: 400;
font-size: 16px;
color: black;
}

.contact-info a {
text-decoration: none;
}

.contact-form input,
.contact-form textarea {
width: 100%;
border: none;                        
border-bottom: 2px solid #e5e5e5;    
background-color: white;            
padding: 14px 12px;                      
font-family: "Inter", sans-serif;
font-size: 16px;
color: #111;
outline: none;
}

.send-btn {
align-self: flex-start;
padding: 12px 14px;
border-radius: 999px;
border: 1px solid #111;
background: #111;
color: #fff;
font: 400 14px "Inter", sans-serif;
cursor: pointer;
transition: transform .08s ease;
}

.send-btn:hover { 
transform: translateY(-1px); 
}




footer {
position: relative;
font-family: "Inter", sans-serif;
font-size: 14px;
color: #666;
font-weight: 300;
padding: 0;
}

footer::before {
content: "";
display: block;
height: 1px;
background: #e0e0e0;
width: 100vw;
margin-left: calc(50% - 50vw); 
}

footer a {
color: #666;
text-decoration: none;
margin: 0 10px;
font-weight: 300;
font-size: 14px;
}

footer a:hover {
color: black;
}

.footer-info {
max-width: 90vw;             
margin: 0 auto;
padding: 30px 0;           
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
}



/*portfolio page css*/
.gallery {
padding: 40px;  
}

.gallery-title {
margin-bottom: 60px;
}

.gallery-title p {
font-family: "Inter", sans-serif;
font-weight: 400;
font-size: 16px;
color: #666;
line-height: 1.5;
}

.gallery-title h1 {
font-size: 60px;
}

.item-container {
display: flex;
--cols: 3;
--gap: 40px;
flex-wrap: wrap;
justify-content: center;       
gap: 40px;
padding: 0;
}

.gallery-item {
display: flex;
flex: 0 1 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols));
text-align: flex-start;
flex-direction: column;
}

.gallery-item h2 {
color: black;
font-size: 16px;
margin-bottom: -2px;
}

.gallery-item p {
font-family: "Inter", sans-serif;
font-weight: 400;
font-size: 14px;
color: #666;
line-height: 1.7;
margin-bottom: -3px;
}

.gallery-item img {
width: 100%;            
aspect-ratio: 5 / 8;   
height: auto;          
object-fit: cover;     
display: block;
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
transition: transform 0.4s ease;
}

.gallery-item:hover a img {
transform: scale(1.01);
}

.gallery-item a:hover {
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
transform: translateY(-2px);
}


/*general pages*/
.page-top {
display: block;
}

.page-title {
padding: 40px;
}

.page-title h1 {
font-size: 60px;
}

.page-title p {
font-family: "Inter", sans-serif;
font-weight: 400;
font-size: 16px;
color: #666;
line-height: 1.5;
}

.portfolio-content {
padding: 0 40px 40px 40px;
}

.portfolio-content p {
font-family: "Inter", sans-serif;
font-weight: 400;
font-size: 16px;
color: black;
line-height: 1.5;
}

.final a {
font-family: "Inter", sans-serif;
font-weight: 400;
font-size: 16px;
color: black;
line-height: 1.5;
}

/*page 1*/
.page-images-1 {
display: grid;
gap: 40px;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
align-items: start;
justify-items: start;  
}

.page-images-1 img {
display: block;
margin-top: 30px;
width: 100%;
height: auto;         
object-fit: contain;
}

.page-images-1 > * {
align-self: start;
justify-self: stretch;   
}

/*page 2*/
.page-images-2 {
display: flex;
margin-top: 30px;
display: grid;
grid-template-columns: repeat(2, 1fr); 
gap: 40px;                             
justify-items: center;             
align-items: start;
}

.page-images-2 img {
width: 100%;
height: auto;
display: block;
object-fit: contain;
}

/*page 3*/
.page-images-3 {
gap: 40px;
margin: 40px 0 40px 0;
display: grid;
grid-template-columns: repeat(3, 1fr);                          
justify-items: center;              
align-items: start; 
}

.page-images-3 img {
width: 100%;            
aspect-ratio: 5 / 7;   
height: auto;          
object-fit: cover;     
display: block;
}

.page-images-process-3 {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 40px;
justify-items: center;
align-items: start;
margin: 40px 0 40px 0;
}

.page-images-process-3 img {
width: 100%;
height: auto;
display: block;
object-fit: contain;
}

.process .sketch {
width: 100%;
height: auto;
display: block;
object-fit: contain;
display: block;
}

.sketch img {
width: 360px;
}

.sketch {
margin-top: 30px;
}

/*page 4*/
.page-images-4 {
margin-top: 30px;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 40px;                           
justify-items: center;              
align-items: start;             
}

.page-images-4 img {
width: 100%;            
aspect-ratio: 5 / 7;   
height: auto;          
object-fit: cover;     
display: block;
}

/*page 5*/
.page-images-5 {
display: flex;
margin-top: 30px;
display: grid;
grid-template-columns: repeat(2, 1fr); 
gap: 40px;                             
justify-items: center;             
align-items: start;
}

.page-images-5 img {
width: 100%;
height: auto;
display: block;
object-fit: contain;
}

/*page 6*/
.page-images-6 {
margin-top: 30px;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 40px;                           
justify-items: center;              
align-items: start;             
}

.page-images-6 img {
width: 100%;            
aspect-ratio: 5 / 7;   
height: auto;          
object-fit: cover;     
display: block;
}

.page-images-6-process {
margin-top: 30px;
margin-bottom: 30px;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 40px;                           
justify-items: center;              
align-items: start;             
}

.page-images-6-process img {
width: 100%;            
aspect-ratio: 5 / 7;   
height: auto;          
object-fit: cover;     
display: block;
}

.page-images-6-process img.booklet {
object-fit: contain;
}


/*page 7*/
.page-images-7 {
display: flex;
flex-direction: column; 
gap: 40px;            
margin-top: 40px;
margin-bottom: 40px;
align-items: center;
}

.page-images-7 img {
width: 100%;           
max-width: 1000px;
height: auto;          
display: block;
object-fit: contain;
}

.page-images-7-process {
display: flex;
flex-direction: column;
gap: 40px;
align-items: center;
margin-top: 40px;
margin-bottom: 40px;
}

.page-images-7-process img {
width: 100%;
max-width: 1000px;    
height: auto;
object-fit: contain;
}

/*page 8*/
.page-images-8 {
display: flex;
margin-top: 30px;
display: grid;
grid-template-columns: repeat(2, 1fr); 
gap: 40px;                             
justify-items: center;             
align-items: start;
}

.page-images-8 img {
width: 100%;
height: auto;
display: block;
object-fit: contain;
}

/*page 9*/
.page-images-9 {
display: flex;
margin-top: 30px;
display: grid;
grid-template-columns: repeat(2, 1fr); 
gap: 40px;                             
justify-items: center;             
align-items: start;
}

.page-images-9 img {
width: 100%;
height: auto;
display: block;
object-fit: contain;
}

/*media queries*/

@media screen and (max-width: 600px) {

  html, body {
    margin: 0;
    padding: 0;
    overflow-x: hidden;          
  }

  /* NAV + HEADER ---------------------------- */

  nav {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px 24px;
  }

  .logo {
    display: block;
    margin-bottom: 12px;
  }

  nav ul {
    width: 100%;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;               
    gap: 16px;
    padding: 0;
    margin: 0;
    list-style: none;
  }

  /* HERO ---------------------------- */

  #hero {
    padding: 140px 24px;
  }

  h1 {
    font-size: 64px;
    line-height: 1;
    margin: 16px 0;
  }

  .hero-button {
    display: flex;
    flex-direction: column;
    gap: 40px;
    margin-top: 32px;
  }

  /* GENERAL SECTION PADDING ---------------------------- */

  .selected-work,
  #about,
  #expertise,
  #contact,
  .gallery,
  .page-title,
  .portfolio-content {
    padding: 60px 24px;
  }

  /* ABOUT ---------------------------- */

  .about-wrap {
    flex-direction: column;
    gap: 28px;
  }

  #about h2 {
    flex: none;
  }

  .stats {
    gap: 32px;
  }

  /* EXPERTISE ---------------------------- */

  #expertise {
    flex-direction: column;
    gap: 50px;
    padding-right: 24px;
  }
  
   #expertise h2 {
    margin: 0 0 -300px 0;          /* exact space above DESIGN */
  }

  .expertise-columns {
    flex-direction: column;
    gap: 32px;
  }

  /* SELECTED WORK GRID -------------------- */

  .selected-work-items {
    grid-template-columns: 1fr;  
  }

  /* CONTACT SECTION ----------------------- */

  #contact {
    display: block;
    padding-top: 40px;
  }

  #contact h2 {
    position: static;           
    margin-bottom: 24px;
  }

  .contact-info {
    margin-top: 0;
    gap: 24px;
  }

  .contact-form {
    width: 100%;
    margin-top: 32px;
  }

  .form-top {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }

  .form-top label,
  .form-top label + label {
    margin-left: 0;             
  }

  .contact-form form {
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
  }

  .contact-form label {
    display: block;
    width: 100%;
    margin: 0 0 12px 0;
    font-size: 14px;
    letter-spacing: 0.1em;
  }

  .contact-form input,
  .contact-form textarea {
    width: 100%;
    box-sizing: border-box;
    margin: 4px 0 18px 0;
  }

  .send-btn {
    display: block;
    margin: 10px auto 0 auto;
  }

  /* PORTFOLIO GRID ------------------------ */

  .gallery {
    padding: 40px 24px;
  }

  .item-container {
    --cols: 2;
  }

  /* FOOTER ---------------------------- */

  footer {
    width: 100%;
  }

  .footer-info {
    max-width: 100%;
    padding: 24px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;                
    box-sizing: border-box;
  }
}
