/* Minimal, clean styles */
:root{
  --bg:#0b0b0b;
  --fg:#f2f2f2;
  --muted:#b8b8b8;
  --accent:#ffffff;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:Montserrat,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.6}
.container{width:min(1100px,92%);margin:0 auto}
a{color:var(--fg);text-decoration:underline}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-family:Oswald, Montserrat, sans-serif;letter-spacing:.5px;margin:0 0 .5rem}

/* --- Header --- */
.site-header{
  position:sticky;top:0;
  backdrop-filter:saturate(180%) blur(8px);
  background:rgba(11,11,11,.75);
  border-bottom:1px solid rgba(255,255,255,.08);
  z-index:10
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:.75rem 0;
  gap:.75rem;
  flex-wrap:wrap; /* allow nav to wrap under brand on narrow screens */
}
.brand{display:flex;gap:.75rem;align-items:center;min-width:0}
.brand h1 {
  font-size: 3rem;
  margin: 0;
  line-height: 1.1;
  white-space:nowrap; /* keeps brand tight but we’ll scale on mobile */
}
.brand p {
  margin: 0;
  line-height: 1.2;
  font-size: 0.95rem;
  color: var(--muted);
}
.logo{width:100px;height:100px;border-radius:50%;background:#000;object-fit:cover;flex:0 0 auto}
.nav{
  display:flex;gap:1rem;align-items:center;
  flex:1 1 auto;
  justify-content:flex-end;
}
.nav a{opacity:.8;text-decoration:none}
.nav .cta{padding:.4rem .8rem;border:1px solid rgba(255,255,255,.2);border-radius:999px}
.nav a:hover{opacity:1}

/* --- Hero --- */
.hero{padding:3rem 0 1rem;border-bottom:1px solid rgba(255,255,255,.08)}
.hero-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center}
.hero-copy h2{font-size:2.2rem;margin-bottom:.5rem}
.hero-poster{width:100%;height:auto;border-radius:12px;border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 12px rgba(0,0,0,.5);background:#111}
.button{display:inline-block;margin-right:.6rem;margin-top:.3rem;padding:.7rem 1rem;background:var(--fg);color:#111;border-radius:10px;font-weight:700}
.button.ghost{background:transparent;border:1px solid rgba(255,255,255,.25);color:var(--fg)}
.hero-video{width:100%;height:auto;border-radius:12px;border:1px solid rgba(255,255,255,.1)}

.hero-media {
  flex: 1 1 400px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  overflow: hidden;       /* ensures cropped edges are hidden */
  border-radius: 14px;    /* matches your image style */
  aspect-ratio: 16 / 9;   /* keeps consistent shape even on resize */
  max-width: 600px;       /* match previous image width if needed */
}

.hero-media video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;      /* crops to fill container */
  object-position: center;
  border-radius: 14px;
}

.hero-media--tall {
  aspect-ratio: 16 / 9;
  max-width: 600px;
}

.hero-media--tall .video-wrapper {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  border-radius: 14px;
}

.hero-media--tall video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 14px;
}

@media (max-width: 900px) {
  .hero-media--tall {
    justify-content: center;
  }
}


/* --- Social Links --- */
.social-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem; /* space between icon and text */
  font-size: 1rem;
  color: var(--fg);
  text-decoration: none;
}

.social-icon {
  width: 1.1em;   /* scales icon proportionally to text */
  height: 1.1em;
  object-fit: contain;
  vertical-align: middle;
  opacity: 0.9;
  transition: opacity 0.2s ease-in-out;
}

.social-link:hover .social-icon {
  opacity: 1;
}

/* --- Work --- */
.work{padding:2rem 0}
.work .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.work .portrait-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;justify-items:center}
.card{border:1px solid rgba(255,255,255,.12);border-radius:12px;overflow:hidden;position:relative}
.portrait-grid .card{height:325px;width:100%;display:flex;align-items:center;justify-content:center}
.portrait-grid .card img{width:100%;height:100%;object-fit:cover}
.portrait-grid .card--portrait{height:auto;aspect-ratio:3/4}
.work .portrait-row{grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:1.5rem;justify-items:stretch}
.portrait-row .card{width:100%;display:flex;align-items:center;justify-content:center}
.portrait-row .card--portrait{aspect-ratio:3/4}
.portrait-row .card img{width:100%;height:100%;object-fit:cover}
.card span{position:absolute;left:.6rem;bottom:.6rem;background:rgba(0,0,0,.6);padding:.2rem .5rem;border-radius:6px;font-size:.85rem}

/* --- Services Overview (Home Page) --- */
.services-overview{padding:2rem 0;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.service-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}
.service-overview-card{
  display:flex;
  flex-direction:column;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  overflow:hidden;
  text-decoration:none !important;
  transition:transform .2s ease,border-color .2s ease;
  color:inherit;
  -webkit-tap-highlight-color:transparent;
  -webkit-text-decoration:none !important;
}
.service-overview-card *{
  text-decoration:none !important;
  -webkit-text-decoration:none !important;
}
.service-overview-card:hover{
  transform:translateY(-4px);
  border-color:rgba(255,255,255,.3);
}
.service-overview-card:active{
  transform:translateY(-2px);
}
.service-overview-card .card-image{
  width:100%;
  height:200px;
  overflow:hidden;
}
.service-overview-card .card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.service-overview-card .card-content{
  padding:1.25rem;
  flex:1;
  display:flex;
  flex-direction:column;
}
.service-overview-card .card-content h4{
  font-size:1.5rem;
  margin-bottom:.5rem;
  color:var(--fg);
}
.service-overview-card .card-content p{
  color:var(--muted);
  margin-bottom:1rem;
  flex:1;
}
.service-overview-card .card-cta{
  color:var(--accent);
  font-weight:600;
  text-decoration:none;
  margin-top:auto;
}

/* --- Home About --- */
.home-about{padding:2rem 0;text-align:center}
.home-about .button{margin-top:1rem}

/* --- Services --- */
.services{padding:2rem 0;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.service-card h4{margin-bottom:.25rem}
.service-card .price{font-size:1.3rem;font-weight:600;margin:.25rem 0 .75rem}
.service-card{border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:1rem;position:relative;overflow:hidden;}




.service-card.featured{border-color:#fff}

.note{opacity:.75;margin-top:1rem}

/* --- About --- */
.about{padding:2rem 0}
.about-inner{display:grid;grid-template-columns:1.5fr .5fr;gap:2rem}
.socials{display:flex;flex-direction:column;gap:.5rem}
.socials a{opacity:.9}
.socials a:hover{opacity:1}

/* --- Contact --- */
.contact{padding:2rem 0}
.contact-form{display:flex;flex-direction:column;gap:1rem}
.contact-form .row{display:flex;gap:1rem;flex-wrap:wrap}
.contact-form label{display:flex;flex-direction:column;gap:.25rem;flex:1}
.contact-form label.full{flex-basis:100%}
input,textarea{padding:.7rem .8rem;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:#111;color:var(--fg)}
.alt-contact{opacity:.85;margin-top:.5rem}

/* --- Footer --- */
.site-footer{padding:1.5rem 0;border-top:1px solid rgba(255,255,255,.08);opacity:.85;text-align:center}

/* Offset for sticky header when using #hash links */
section{scroll-margin-top:88px}

/* --- Tablet --- */
@media (max-width: 900px){
  .hero-inner{grid-template-columns:1fr}
  .work .grid{grid-template-columns:repeat(2,1fr)}
  .work .portrait-grid{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
  .service-cards-grid{grid-template-columns:1fr}
  .about-inner{grid-template-columns:1fr}
}

/* --- Mobile --- */
@media (max-width: 600px){
  .logo{width:64px;height:64px}
  .brand h1{font-size:1.8rem}
  .brand p{font-size:.9rem}
  .header-inner{align-items:flex-start}
  .nav{
    order:2; /* move below brand */
    width:100%;
    justify-content:center;
    flex-wrap:wrap;
    gap:.75rem;
    margin-top:.25rem;
  }
  .nav .cta{padding:.45rem .9rem}
  .hero{padding:1.75rem 0 2rem}
  .hero-copy h2{font-size:1.6rem;margin-bottom:.75rem}
  .hero-copy p{font-size:.95rem;line-height:1.5;margin-bottom:.5rem}
  .button{display:inline-block;margin-top:.5rem}
  .work .grid{grid-template-columns:1fr} /* 1 column on phones */
  .card span{font-size:.8rem}
  .contact-form .row{gap:.75rem}
  input,textarea{font-size:16px} /* prevent iOS zoom on focus */

  /* Mobile service cards */
  .services-overview{padding:2.5rem 0}
  .services-overview h3{font-size:1.5rem;margin-bottom:1.5rem}
  .service-cards-grid{gap:2rem}
  .service-overview-card{border:2px solid rgba(255,255,255,.25)}
  .service-overview-card .card-image{height:200px}
  .service-overview-card .card-content{padding:1.25rem}
  .service-overview-card .card-content h4{font-size:1.4rem;margin-bottom:.5rem}
  .service-overview-card .card-content p{font-size:.95rem;margin-bottom:.85rem;line-height:1.5}
  .service-overview-card .card-cta{font-size:.95rem}

  /* Mobile home about */
  .home-about{padding:2.5rem 0}
  .home-about h3{font-size:1.5rem;margin-bottom:1rem}
  .home-about p{font-size:.95rem;line-height:1.6}
}
