/* US.MEDiA – Foto & Video V3 */
.fv3-hero{min-height:72vh}
.fv3-hero .bg{object-position:center 55%;filter:brightness(.9) saturate(.92)}
.fv3-hero::after{
  background:linear-gradient(90deg,rgba(0,0,0,.46) 0%,rgba(0,0,0,.22) 52%,rgba(0,0,0,.08) 100%);
}
.fv3-hero h1{max-width:980px;font-size:clamp(58px,6.4vw,104px);line-height:.98}
.fv3-hero p{max-width:760px;font-size:clamp(18px,1.45vw,23px)}

.fv3-intro{padding:84px 0 92px;background:#f4f3f0;color:#111}
.fv3-intro-row{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(440px,1.1fr);gap:90px;align-items:end;margin-top:18px}
.fv3-intro h2{margin:0;font-size:clamp(38px,4vw,64px);line-height:1.02;letter-spacing:-.035em}
.fv3-intro p{margin:0;max-width:720px;font-size:clamp(18px,1.35vw,22px);line-height:1.62;color:#555}

.fv-photo{padding:90px 0 110px;background:#f4f3f0;color:#111}
.fv-video{padding:110px 0;background:#0b0b0c;color:#fff}
.fv-heading{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.7fr);gap:55px;align-items:end;margin-bottom:42px}
.fv-heading p{margin:0;line-height:1.6;opacity:.7;max-width:500px}
.fv3-photo-title{font-size:clamp(38px,4vw,62px);line-height:1.02;letter-spacing:-.03em;margin:10px 0 0}

.fv-photo-grid{display:grid;grid-template-columns:1.45fr 1fr;grid-template-rows:repeat(2,280px);gap:18px}
.fv-photo-grid figure{margin:0;overflow:hidden;background:#ddd}
.fv-photo-grid .fv-photo-wide{grid-row:1/3}
.fv-photo-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s ease}
.fv-photo-grid figure:hover img{transform:scale(1.02)}

.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 24px}
.video-card{min-width:0}
.video-poster{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;background:#171719;overflow:hidden;cursor:pointer}
.video-poster img{width:100%;height:100%;object-fit:cover;display:block;opacity:.88;transition:transform .55s ease,opacity .3s ease}
.video-poster:hover img{transform:scale(1.025);opacity:1}
.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:rgba(255,255,255,.92);color:#111;font-size:24px;padding-left:4px;box-shadow:0 10px 35px rgba(0,0,0,.25)}
.video-card iframe{display:block;width:100%;aspect-ratio:16/9;border:0}
.video-meta{display:flex;gap:18px;align-items:baseline;padding-top:15px}
.video-meta span{font-size:12px;letter-spacing:.16em;opacity:.5}
.video-meta h3{font-size:18px;margin:0;font-weight:500}

@media(max-width:800px){
 .fv3-hero{min-height:68vh}
 .fv3-hero .bg{object-position:center}
 .fv3-intro{padding:64px 0 68px}
 .fv3-intro-row,.fv-heading{grid-template-columns:1fr;gap:25px}
 .fv-photo,.fv-video{padding:70px 0}
 .fv-photo-grid{grid-template-columns:1fr;grid-template-rows:auto}
 .fv-photo-grid .fv-photo-wide{grid-row:auto}
 .fv-photo-grid figure{aspect-ratio:4/3}
 .video-grid{grid-template-columns:1fr}
 .play{width:60px;height:60px}
}

/* V4 – hero brighter/full, one continuous light content area */
.fv3-hero{
  min-height:calc(100vh - 76px);
}
.fv3-hero .bg{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  filter:brightness(1.16) saturate(1.02) contrast(.96);
}
.fv3-hero::after{
  background:linear-gradient(90deg,rgba(0,0,0,.28) 0%,rgba(0,0,0,.12) 48%,rgba(0,0,0,.02) 100%);
}
.fv3-work{
  background:#f4f3f0;
  color:#111;
  padding:0 0 105px;
}
.fv3-work .fv3-intro{
  background:transparent;
  padding:72px 0 58px;
}
.fv3-work .fv-photo{
  background:transparent;
  padding:0;
}
.fv3-work .fv-heading{
  margin-top:0;
  padding-top:0;
  border-top:1px solid rgba(0,0,0,.12);
  padding-top:52px;
}
@media(max-width:800px){
  .fv3-hero{min-height:72vh}
  .fv3-work{padding-bottom:70px}
  .fv3-work .fv3-intro{padding:56px 0 46px}
  .fv3-work .fv-heading{padding-top:42px}
}

/* V5 – Hero fills the visible browser window */
.fv3-hero{
  height:100vh;
  height:100svh;
  min-height:100vh;
  min-height:100svh;
  box-sizing:border-box;
  margin:0;
}
.fv3-hero .bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-height:100%;
  object-fit:cover;
}
.fv3-hero p{
  max-width:900px;
}
@media(max-width:800px){
  .fv3-hero{
    height:100svh;
    min-height:100svh;
  }
}

/* V6 – portfolio selection + clean video heading */
.fv-video .fv-heading{
  display:block;
  margin-bottom:42px;
}
.fv-video .fv-heading>div{
  max-width:900px;
}

/* V7 – five user-selected portfolio images */
.fv-photo-grid-five{
  display:grid;
  grid-template-columns:1.35fr .8fr .8fr;
  grid-template-rows:260px 260px;
  gap:18px;
}
.fv-photo-grid-five .fv-photo-lead{grid-row:1/3}
.fv-photo-grid-five figure{aspect-ratio:auto}
@media(max-width:900px){
  .fv-photo-grid-five{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .fv-photo-grid-five .fv-photo-lead{grid-column:1/3;grid-row:auto;aspect-ratio:16/9}
  .fv-photo-grid-five figure{aspect-ratio:4/3}
}
@media(max-width:600px){
  .fv-photo-grid-five{grid-template-columns:1fr}
  .fv-photo-grid-five .fv-photo-lead{grid-column:auto}
}

/* V8 – rotating portfolio: one large image + four compact thumbnails */
.fv-rotator{
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px;
  gap:16px;
  align-items:stretch;
}
.fv-rotator-main{
  position:relative;
  min-height:590px;
  overflow:hidden;
  background:#ddd;
}
.fv-main-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  opacity:1;
  transition:opacity .65s ease;
}
.fv-main-image.is-fading{opacity:0}
.fv-rotator-thumbs{
  display:grid;
  grid-template-rows:repeat(4,1fr);
  gap:10px;
  min-height:590px;
}
.fv-thumb{
  display:block;
  width:100%;
  min-height:0;
  padding:0;
  border:0;
  overflow:hidden;
  background:#ddd;
  cursor:pointer;
  opacity:.68;
  transition:opacity .25s ease,transform .25s ease;
}
.fv-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.fv-thumb:hover,.fv-thumb.is-active{opacity:1}
.fv-thumb.is-active{outline:2px solid #b51e2b;outline-offset:-2px}
@media(max-width:900px){
  .fv-rotator{grid-template-columns:1fr}
  .fv-rotator-main{min-height:0;aspect-ratio:16/10}
  .fv-rotator-thumbs{grid-template-columns:repeat(4,1fr);grid-template-rows:1fr;min-height:0;gap:8px}
  .fv-thumb{aspect-ratio:4/3}
}

/* V9 – fluid typography and gallery sizing */
.fv3-work .eyebrow,
.fv-video .eyebrow{
  font-size:clamp(.72rem,.55rem + .35vw,.95rem);
}
.fv3-photo-title,
.fv-video .section-title{
  font-size:clamp(2rem,1.15rem + 3vw,4.7rem);
  line-height:.98;
  text-wrap:balance;
}
.fv-heading p{
  font-size:clamp(.95rem,.82rem + .3vw,1.12rem);
  line-height:1.55;
}
.fv-rotator{
  grid-template-columns:minmax(0,1fr) clamp(120px,14vw,210px);
  gap:clamp(8px,1.1vw,18px);
}
.fv-rotator-main{
  min-height:clamp(360px,58vh,680px);
}
.fv-rotator-thumbs{
  min-height:clamp(360px,58vh,680px);
  gap:clamp(6px,.7vw,10px);
}
@media(max-width:900px){
  .fv-rotator{grid-template-columns:1fr}
  .fv-rotator-main{
    min-height:0;
    height:auto;
    aspect-ratio:16/10;
  }
  .fv-rotator-thumbs{
    min-height:0;
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-template-rows:1fr;
  }
}
@media(max-width:560px){
  .fv3-photo-title,
  .fv-video .section-title{
    font-size:clamp(1.8rem,9vw,2.7rem);
  }
  .fv-rotator-main{aspect-ratio:4/3}
  .fv-rotator-thumbs{gap:5px}
}

/* V10 – gallery block follows the actual viewport, not a fixed pixel height */
.fv3-work .wrap{
  width:min(100% - clamp(28px,6vw,110px), 1800px);
  max-width:none;
}
.fv-photo{
  width:100%;
}
.fv-heading{
  grid-template-columns:minmax(0,1fr) minmax(260px,32vw);
  gap:clamp(24px,5vw,100px);
}
.fv3-photo-title{
  font-size:clamp(2.15rem,4.5vw,5.2rem);
}
.fv-rotator{
  width:100%;
  height:clamp(430px, calc(100vh - 260px), 760px);
  grid-template-columns:minmax(0,1fr) clamp(110px,15vw,260px);
  gap:clamp(8px,1vw,18px);
}
.fv-rotator-main,
.fv-rotator-thumbs{
  min-height:0;
  height:100%;
}
.fv-rotator-main{
  position:relative;
}
.fv-main-image{
  width:100%;
  height:100%;
  object-fit:cover;
}
.fv-rotator-thumbs{
  display:grid;
  grid-template-rows:repeat(4,minmax(0,1fr));
}
.fv-thumb{
  height:100%;
  min-height:0;
}
@media(max-width:1100px){
  .fv-heading{
    grid-template-columns:1fr;
    gap:16px;
  }
  .fv-heading p{max-width:760px}
  .fv-rotator{
    height:auto;
    grid-template-columns:1fr;
  }
  .fv-rotator-main{
    height:auto;
    aspect-ratio:16/9;
  }
  .fv-rotator-thumbs{
    height:auto;
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-template-rows:1fr;
  }
  .fv-thumb{aspect-ratio:16/10}
}
@media(max-width:600px){
  .fv3-work .wrap{
    width:min(100% - 24px,1800px);
  }
  .fv-rotator-main{aspect-ratio:4/3}
  .fv3-photo-title{font-size:clamp(2rem,11vw,3.2rem)}
}

/* V11 – complete photography heading + gallery visible within one desktop viewport */
@media (min-width:1101px) and (min-height:650px){
  .fv-photo{
    min-height:100svh;
    box-sizing:border-box;
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
    gap:clamp(16px,2.2vh,28px);
    padding-block:clamp(18px,2.5vh,32px);
  }
  .fv-photo .fv-heading{
    margin:0;
    align-items:end;
  }
  .fv3-photo-title{
    margin-bottom:0;
    font-size:clamp(2.2rem,3.7vw,4.8rem);
    line-height:.95;
  }
  .fv-photo .fv-heading p{
    margin:0 0 .25rem;
    font-size:clamp(.9rem,1.05vw,1.08rem);
    line-height:1.45;
  }
  .fv-rotator{
    height:100%;
    min-height:0;
    max-height:none;
  }
  .fv-rotator-main,
  .fv-rotator-thumbs{
    height:100%;
    min-height:0;
  }
}
/* Short desktop/laptop windows: reserve more room for heading */
@media (min-width:1101px) and (max-height:800px){
  .fv-photo{
    gap:14px;
    padding-block:14px 18px;
  }
  .fv3-photo-title{font-size:clamp(2rem,3.2vw,3.8rem)}
  .fv-photo .eyebrow{margin-bottom:7px}
  .fv-photo .fv-heading p{font-size:.94rem;line-height:1.35}
}

/* V12 – balanced one-screen composition */
@media (min-width:1101px){
  .fv-photo{
    min-height:auto;
    display:block;
    padding-block:clamp(28px,4vh,54px);
  }
  .fv-photo .fv-heading{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,30vw);
    align-items:end;
    gap:clamp(40px,6vw,110px);
    margin:0 0 clamp(26px,3.5vh,44px);
  }
  .fv3-photo-title{
    font-size:clamp(2.7rem,4vw,4.9rem);
    line-height:1;
    margin:0;
  }
  .fv-photo .fv-heading p{
    margin:0 0 .35rem;
    max-width:560px;
    font-size:clamp(.92rem,1vw,1.08rem);
    line-height:1.5;
  }
  .fv-rotator{
    height:min(58vh,620px);
    min-height:390px;
    grid-template-columns:minmax(0,1fr) clamp(115px,14vw,220px);
  }
  .fv-rotator-main,
  .fv-rotator-thumbs{height:100%}
}
@media (min-width:1101px) and (max-height:820px){
  .fv-photo{padding-block:24px}
  .fv-photo .fv-heading{margin-bottom:24px}
  .fv3-photo-title{font-size:clamp(2.45rem,3.5vw,4rem)}
  .fv-rotator{height:52vh;min-height:340px}
}
