*{box-sizing:border-box}
html{scroll-behavior:smooth}
:root{--header-h:72px}
body{
  margin:0;
  padding-top:var(--header-h);
  background:var(--bg);
  color:var(--text);
  font-family:Georgia,"Times New Roman",serif;
  -webkit-font-smoothing:antialiased
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

.site-header{
  position:fixed;z-index:1000;top:0;left:0;right:0;height:var(--header-h);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;
  padding:0 4vw;background:var(--bg);border-bottom:1px solid rgba(0,0,0,.09)
}
.brand{justify-self:start;font-size:21px;white-space:nowrap}
.desktop-nav{display:flex;gap:28px;align-items:center;font-family:Arial,sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.desktop-nav a{padding:27px 0 22px;border-bottom:1px solid transparent}
.desktop-nav a:hover{border-bottom-color:currentColor}
.book-link{justify-self:end;font-family:Arial,sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid currentColor;padding-bottom:4px}

/* slider */
.home-slider{position:relative;padding:58px 0 70px;background:#fff;overflow:hidden}
.slider-viewport{overflow:hidden;scroll-behavior:smooth}
.slider-track{display:flex;gap:28px;padding:0 7vw;align-items:stretch}
.hero-slide{
  position:relative;flex:0 0 min(29vw,480px);height:min(68vh,690px);
  overflow:hidden;background:#ece9e4
}
.hero-slide img{width:100%;height:100%;object-fit:cover}
.slide-caption{
  position:absolute;left:0;right:0;bottom:0;padding:28px 24px;color:#fff;
  background:linear-gradient(to top,rgba(0,0,0,.52),rgba(0,0,0,0))
}
.slide-caption h2{font-size:27px;font-weight:400;margin:0 0 5px}
.slide-caption p{font-family:Arial,sans-serif;font-size:12px;margin:0}
.slide-placeholder{display:grid;place-items:center;text-align:center;padding:20px;color:#777}
.slide-placeholder span{display:block;font-family:Arial,sans-serif;font-size:12px;margin-top:8px}
.slider-arrow{
  position:absolute;z-index:10;top:50%;transform:translateY(-50%);
  width:54px;height:86px;border:1px solid rgba(0,0,0,.15);background:rgba(255,255,255,.88);
  color:#111;font-size:44px;font-family:Arial,sans-serif;font-weight:200;cursor:pointer
}
.slider-prev{left:2vw}.slider-next{right:2vw}

/* reveals */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
.reveal.is-visible{opacity:1;transform:none}

/* intro */
.intro{padding:90px 8vw 110px;background:#fff}
.intro-kicker{text-align:center;font-family:Arial,sans-serif;font-size:11px;letter-spacing:.11em;text-transform:uppercase;margin-bottom:25px}
.intro>h1{max-width:980px;margin:0 auto 90px;text-align:center;font-size:clamp(38px,4.8vw,68px);line-height:1.16;font-weight:400}
.intro-grid{display:grid;grid-template-columns:34% 1fr;gap:70px;max-width:1200px;margin:0 auto}
.intro-label{font-size:clamp(34px,4vw,54px);line-height:1.05}
.intro-copy{font-size:19px;line-height:1.8}
.intro-copy p{margin:0 0 24px}
.intro-copy a{font-family:Arial,sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid currentColor;padding-bottom:3px}

/* portfolio categories */
.shoots{padding:90px 8vw 120px;background:#fff}
.section-minihead{max-width:1240px;margin:0 auto 48px}
.section-minihead span{font-family:Arial,sans-serif;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#777}
.section-minihead h2{font-size:clamp(38px,4vw,58px);font-weight:400;margin:10px 0 0}
.section-minihead.compact{margin:0 0 28px}
.section-minihead.compact h2{font-size:40px}
.shoot-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:54px 38px}
.shoot-image{display:block;overflow:hidden;background:#eee}
.shoot-image img,.shoot-placeholder{width:100%;aspect-ratio:4/5;object-fit:cover}
.shoot-image img{transition:transform .45s ease}
.shoot-card:hover .shoot-image img{transform:scale(1.018)}
.shoot-placeholder{display:grid;place-items:center;color:#888;font-family:Arial,sans-serif;font-size:12px}
.shoot-card-copy{text-align:center;padding:16px 12px 0}
.shoot-card-copy h3{font-size:30px;font-weight:400;margin:0 0 10px}
.shoot-card-copy p{font-family:Arial,sans-serif;font-size:12px;line-height:1.6;color:#666;margin:0 0 12px}
.shoot-card-copy>a{font-size:14px;border-bottom:1px solid #c7ad96;color:#8b6b54}

/* faq */
.faq-section{display:grid;grid-template-columns:1fr 1.4fr;gap:7vw;padding:95px 8vw;background:#f5f3ef;align-items:start}
.faq-visual img,.faq-image-placeholder{width:100%;min-height:660px;height:72vh;object-fit:cover;background:#e3dfd8}
.faq-image-placeholder{display:grid;place-items:center;color:#888}
.faq-content{padding-top:18px}
.faq-list details{border-bottom:1px solid rgba(0,0,0,.14)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:30px;padding:24px 0;font-size:25px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-plus{font-family:Arial,sans-serif;font-size:30px;font-weight:200}
.faq-answer{font-family:Arial,sans-serif;font-size:14px;line-height:1.7;color:#555;padding:0 45px 24px 0}

/* category / album pages */
.simple-page-head{padding:80px 8vw 55px;text-align:center;background:#fff}
.simple-page-head span,.album-title span{font-family:Arial,sans-serif;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#777}
.simple-page-head h1{font-size:clamp(44px,5vw,72px);font-weight:400;margin:12px 0 0}
.simple-page-head p{font-family:Arial,sans-serif;font-size:14px;color:#666;max-width:650px;margin:18px auto 0;line-height:1.7}
.portfolio-page{padding-top:10px}

.stories-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:46px 24px;padding:40px 3vw 100px;background:#fff}
.story-card{text-align:center}
.story-card img,.story-placeholder{width:100%;aspect-ratio:4/5;object-fit:cover;background:#eee}
.story-placeholder{display:grid;place-items:center;color:#888}
.story-card h2{font-size:20px;font-weight:400;margin:12px 0 0}

.album-title{text-align:center;padding:70px 6vw 45px;background:#fff}
.album-title h1{font-size:clamp(42px,5vw,68px);font-weight:400;margin:10px 0 0}
.album-title p{font-family:Arial,sans-serif;font-size:14px;line-height:1.7;max-width:700px;margin:18px auto 0;color:#666}
.editorial-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:0 4px 80px;background:#fff;align-items:start}
.editorial-gallery figure{margin:0;overflow:hidden;background:#eee}
.editorial-gallery img{width:100%;height:auto;display:block}

/* footer */
.footer{padding:70px 6vw 55px;text-align:center;background:#fff;border-top:1px solid rgba(0,0,0,.07)}
.footer-socials{display:flex;justify-content:center;gap:28px;margin-bottom:32px;font-family:Arial,sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.footer-main{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:15px}
.footer-title{font-size:22px;margin-bottom:5px}
.footer-copy{margin-top:34px;font-family:Arial,sans-serif;font-size:11px;color:#777}

/* admin-safe generic */
.empty-public{grid-column:1/-1;padding:40px;border:1px solid rgba(0,0,0,.14);font-family:Arial,sans-serif;font-size:13px;text-align:center}

@media(max-width:1050px){
  .site-header{grid-template-columns:1fr auto}.desktop-nav{display:none}
  .hero-slide{flex-basis:42vw;height:60vh}
  .shoot-grid{grid-template-columns:repeat(2,1fr)}
  .faq-section{grid-template-columns:1fr}
  .faq-visual img,.faq-image-placeholder{height:auto;min-height:0;max-height:700px}
  .stories-grid{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:700px){
  :root{--header-h:64px}
  .site-header{padding:0 18px}
  .brand{font-size:18px}
  .book-link{font-size:10px}
  .home-slider{padding:28px 0 42px}
  .slider-track{gap:12px;padding:0 12vw}
  .hero-slide{flex-basis:72vw;height:60vh}
  .slider-arrow{width:42px;height:66px;font-size:34px}
  .slider-prev{left:0}.slider-next{right:0}
  .intro{padding:62px 20px 72px}
  .intro>h1{font-size:38px;margin-bottom:55px}
  .intro-grid{grid-template-columns:1fr;gap:20px}
  .intro-label{font-size:36px}
  .intro-copy{font-size:16px}
  .shoots{padding:60px 20px 75px}
  .section-minihead h2{font-size:36px}
  .shoot-grid{grid-template-columns:1fr;gap:42px}
  .shoot-card-copy h3{font-size:27px}
  .faq-section{padding:60px 20px;gap:42px}
  .section-minihead.compact h2{font-size:34px}
  .faq-list summary{font-size:20px;padding:20px 0}
  .stories-grid{grid-template-columns:1fr;padding:20px 14px 70px}
  .editorial-gallery{grid-template-columns:1fr 1fr}
  .simple-page-head,.album-title{padding-left:20px;padding-right:20px}
  .footer{padding:55px 20px}
}


/* =========================================================
   INFINITE EDITORIAL CAROUSEL
   ========================================================= */
.home-slider{
  position:relative;
  overflow:hidden;
  padding:56px 0 68px;
  background:#fff;
}

.slider-viewport{
  width:100%;
  overflow:hidden;
  touch-action:pan-y;
}

.slider-track{
  display:flex;
  align-items:stretch;
  gap:28px;
  padding:0;
  will-change:transform;
  transform:translate3d(0,0,0);
}

.hero-slide{
  position:relative;
  flex:0 0 28.25vw;
  height:min(67vh,680px);
  overflow:hidden;
  background:#ece9e4;
}

.hero-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.slider-arrow{
  position:absolute;
  z-index:20;
  top:50%;
  transform:translateY(-50%);
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(20,20,20,.16);
  border-radius:50%;
  background:rgba(255,255,255,.86);
  color:#222;
  font-family:Arial,sans-serif;
  font-size:30px;
  font-weight:200;
  line-height:1;
  cursor:pointer;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  transition:background .2s ease, transform .2s ease, opacity .2s ease;
}

.slider-arrow:hover{
  background:#fff;
  transform:translateY(-50%) scale(1.05);
}

.slider-prev{left:20px}
.slider-next{right:20px}

/* Use a simple elegant chevron rather than the large text glyph. */
.slider-arrow{
  font-size:0;
}
.slider-arrow::before{
  content:"";
  width:10px;
  height:10px;
  border-top:1.5px solid currentColor;
  border-right:1.5px solid currentColor;
}
.slider-prev::before{
  transform:rotate(-135deg);
  margin-left:4px;
}
.slider-next::before{
  transform:rotate(45deg);
  margin-right:4px;
}

@media(max-width:1050px){
  .hero-slide{
    flex-basis:42vw;
    height:60vh;
  }
}

@media(max-width:700px){
  .home-slider{
    padding:28px 0 42px;
  }

  .slider-track{
    gap:12px;
  }

  .hero-slide{
    flex-basis:72vw;
    height:58vh;
  }

  .slider-arrow{
    width:38px;
    height:38px;
  }

  .slider-prev{left:8px}
  .slider-next{right:8px}
}


/* =========================================================
   PATCH: clean arrows + 4-column album gallery
   ========================================================= */

/* Carousel arrows: no circle/background, just elegant chevrons */
.slider-arrow{
  width:34px;
  height:64px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  opacity:.88;
}

.slider-arrow:hover{
  background:transparent;
  transform:translateY(-50%) scale(1.06);
  opacity:1;
}

.slider-arrow::before{
  width:13px;
  height:13px;
  border-top:1.5px solid currentColor;
  border-right:1.5px solid currentColor;
}

.slider-prev{left:22px}
.slider-next{right:22px}

/* Album page: 4 photos per row on desktop */
.editorial-gallery{
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:4px;
}

/* Keep photos natural, no forced crop */
.editorial-gallery figure{
  margin:0;
  overflow:hidden;
}

.editorial-gallery img{
  width:100%;
  height:auto;
  display:block;
}

@media(max-width:1100px){
  .editorial-gallery{
    grid-template-columns:repeat(3, minmax(0,1fr));
  }
}

@media(max-width:760px){
  .slider-prev{left:8px}
  .slider-next{right:8px}

  .editorial-gallery{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}

@media(max-width:480px){
  .editorial-gallery{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   PATCH: masonry album layout + cleaner/smaller typography
   ========================================================= */

/* 1) Album page: masonry / tetris-style photo layout */
.editorial-gallery{
  display:block !important;
  column-count:4;
  column-gap:4px;
  padding:0 4px 80px;
}

.editorial-gallery figure{
  display:inline-block;
  width:100%;
  margin:0 0 4px;
  break-inside:avoid;
  -webkit-column-break-inside:avoid;
  page-break-inside:avoid;
  overflow:hidden;
  vertical-align:top;
}

.editorial-gallery img{
  width:100%;
  height:auto;
  display:block;
}

/* if empty state appears, keep it full-width and readable */
.editorial-gallery .empty-public{
  display:block;
  width:100%;
  max-width:900px;
  margin:20px auto 0;
  break-inside:avoid;
}

/* 2) Slightly more compact typography across key sections */
.intro{
  padding:76px 8vw 90px;
}
.intro-kicker{
  font-size:10px;
  margin-bottom:20px;
}
.intro > h1{
  max-width:920px;
  margin:0 auto 72px;
  font-size:clamp(34px, 4.1vw, 58px);
  line-height:1.14;
}
.intro-grid{
  gap:54px;
}
.intro-label{
  font-size:clamp(28px, 3.3vw, 44px);
  line-height:1.04;
}
.intro-copy{
  font-size:16px;
  line-height:1.72;
}
.intro-copy p{
  margin:0 0 18px;
}

/* section headings smaller and cleaner */
.section-minihead{
  margin:0 auto 38px;
}
.section-minihead h2{
  font-size:clamp(32px, 3.1vw, 46px);
  line-height:1.12;
}
.section-minihead.compact h2{
  font-size:32px;
}

.shoot-card-copy{
  padding:14px 10px 0;
}
.shoot-card-copy h3{
  font-size:24px;
  margin:0 0 8px;
}
.shoot-card-copy p{
  font-size:12px;
  line-height:1.55;
}

.simple-page-head{
  padding:64px 8vw 42px;
}
.simple-page-head h1{
  font-size:clamp(34px, 4vw, 56px);
  line-height:1.12;
}
.simple-page-head p{
  font-size:13px;
  margin:14px auto 0;
}

.album-title{
  padding:54px 6vw 34px;
}
.album-title h1{
  font-size:clamp(34px, 4vw, 56px);
  line-height:1.12;
}
.album-title p{
  font-size:13px;
  margin:14px auto 0;
  line-height:1.65;
}

.brand{
  font-size:18px;
}

@media(max-width:1200px){
  .editorial-gallery{
    column-count:3;
  }
}

@media(max-width:900px){
  .intro{
    padding:64px 6vw 78px;
  }
  .intro > h1{
    margin-bottom:54px;
  }
  .editorial-gallery{
    column-count:2;
  }
}

@media(max-width:560px){
  .editorial-gallery{
    column-count:1;
  }

  .intro-label{
    font-size:34px;
  }
  .intro-copy{
    font-size:15px;
  }
  .section-minihead h2{
    font-size:32px;
  }
  .shoot-card-copy h3{
    font-size:22px;
  }
}


/* =========================================================
   PATCH: editorial "How the shoot works" block
   ========================================================= */
.intro-editorial{
  padding:72px 7vw 92px;
}

.intro-editorial .intro-kicker{
  margin-bottom:22px;
  text-align:center;
  font-family:Arial,Helvetica,sans-serif;
  font-size:10px;
  line-height:1.4;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.intro-editorial > h1{
  max-width:900px;
  margin:0 auto 72px;
  text-align:center;
  font-size:clamp(34px,3.75vw,54px);
  line-height:1.16;
  font-weight:400;
}

.intro-process-grid{
  max-width:1280px;
  grid-template-columns:minmax(300px,.8fr) minmax(0,1.55fr);
  gap:72px;
  align-items:start;
}

.intro-process-grid .intro-label{
  padding-top:2px;
  font-size:clamp(31px,3vw,43px);
  line-height:1.12;
  font-weight:400;
}

.intro-process-copy{
  max-width:820px;
  font-size:16px;
  line-height:1.72;
}

.intro-process-copy p{
  margin:0 0 22px;
}

.intro-process-copy p:last-of-type{
  margin-bottom:24px;
}

.intro-process-copy a{
  display:inline-block;
  margin-top:2px;
}

@media(max-width:900px){
  .intro-editorial{
    padding:58px 6vw 72px;
  }

  .intro-editorial > h1{
    margin-bottom:48px;
    font-size:clamp(32px,6vw,46px);
  }

  .intro-process-grid{
    grid-template-columns:1fr;
    gap:22px;
  }

  .intro-process-grid .intro-label{
    font-size:34px;
  }

  .intro-process-copy{
    font-size:15px;
  }
}

@media(max-width:560px){
  .intro-editorial{
    padding:50px 20px 62px;
  }

  .intro-editorial > h1{
    font-size:32px;
    margin-bottom:40px;
  }

  .intro-process-grid .intro-label{
    font-size:30px;
  }
}


/* =========================================================
   PATCH: softer editorial typography for About section
   ========================================================= */

.intro-editorial{
  padding:68px 8vw 88px;
}

.intro-editorial .intro-kicker{
  margin-bottom:18px;
  font-size:9px;
  letter-spacing:.14em;
  font-weight:400;
  color:#444;
}

.intro-editorial > h1{
  max-width:860px;
  margin:0 auto 66px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(30px,3.2vw,46px);
  line-height:1.2;
  font-weight:400;
  letter-spacing:.005em;
}

.intro-process-grid{
  max-width:1220px;
  grid-template-columns:minmax(280px,.72fr) minmax(0,1.45fr);
  gap:64px;
}

.intro-process-grid .intro-label{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(28px,2.55vw,38px);
  line-height:1.16;
  font-weight:400;
  letter-spacing:.004em;
}

.intro-process-copy{
  max-width:720px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:15px;
  line-height:1.82;
  font-weight:400;
  color:#282828;
}

.intro-process-copy p{
  margin:0 0 20px;
}

.intro-process-copy a{
  margin-top:4px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:10px;
  letter-spacing:.09em;
  font-weight:400;
}

@media(max-width:900px){
  .intro-editorial{
    padding:56px 6vw 72px;
  }

  .intro-editorial > h1{
    max-width:680px;
    margin-bottom:46px;
    font-size:clamp(29px,5vw,40px);
  }

  .intro-process-grid{
    gap:18px;
  }

  .intro-process-grid .intro-label{
    font-size:31px;
  }

  .intro-process-copy{
    max-width:100%;
    font-size:14.5px;
    line-height:1.76;
  }
}

@media(max-width:560px){
  .intro-editorial{
    padding:48px 20px 60px;
  }

  .intro-editorial > h1{
    font-size:29px;
    line-height:1.18;
  }

  .intro-process-grid .intro-label{
    font-size:28px;
  }

  .intro-process-copy{
    font-size:14px;
    line-height:1.72;
  }
}
