/* =========================================================
   HORIZON & COMPANY
   HOMEPAGE ONLY

   Load AFTER /css/styles.css
   Written specifically for the current index2.html structure.
   ========================================================= */


/* =========================================================
   TOKENS
   ========================================================= */

:root{
  --home-cream:#f4f2ed;
  --home-stone:#e9e5de;
  --home-paper:#faf9f6;
  --home-white:#ffffff;
  --home-ink:#242321;
  --home-muted:#6e6a64;
  --home-line:rgba(36,35,33,.14);
  --home-gold:#9f8152;
  --home-dark:#1d1d1c;
}


/* =========================================================
   HOMEPAGE RESET / FULL BLEED
   ========================================================= */

.home-hero,
.home-feeling,
.home-promise,
.home-stories,
.home-review-feature,
.home-process,
.home-partner,
.home-locations,
.home-collections,
.home-faq,
.home-contact{
  position:relative !important;

  width:100vw !important;
  max-width:none !important;

  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;

  box-sizing:border-box;
}


/*
   Neutralise generic section-child width rules
   from styles.css.
*/

.home-hero > *,
.home-feeling > *,
.home-promise > *,
.home-stories > *,
.home-review-feature > *,
.home-process > *,
.home-partner > *,
.home-locations > *,
.home-collections > *,
.home-faq > *,
.home-contact > *{
  max-width:none;
  box-sizing:border-box;
}


.home-hero,
.home-feeling,
.home-promise{
  padding:0 !important;
}


.home-hero *,
.home-feeling *,
.home-promise *{
  box-sizing:border-box;
}


.home-stories,
.home-review-feature,
.home-process,
.home-partner,
.home-locations,
.home-collections,
.home-faq,
.home-contact{
  padding:120px 5vw;
}


.eyebrow{
  display:block;

  color:var(--home-gold);

  font-size:.64rem;
  font-weight:600;

  letter-spacing:3.4px;
  text-transform:uppercase;
}


/* =========================================================
   GENERIC REVEALS
   ========================================================= */

[data-reveal]{
  opacity:0;

  transform:translateY(34px);

  transition:
    opacity .9s cubic-bezier(.2,.7,.2,1),
    transform .9s cubic-bezier(.2,.7,.2,1);
}


[data-reveal="left"]{
  transform:translateX(-38px);
}


[data-reveal="right"]{
  transform:translateX(38px);
}


[data-reveal].is-visible{
  opacity:1;
  transform:none;
}


/* =========================================================
   HERO
   FULL SCREEN VIDEO + STATIC MESSAGE + ROTATING SOCIAL PROOF
   ========================================================= */

.home-hero{
  position:relative !important;

  width:100vw !important;
  max-width:none !important;

  height:calc(100svh - var(--nav-height, 0px));
  min-height:680px;

  margin:0 !important;
  padding:0 !important;

  overflow:hidden;

  background:#111;
}


/* MEDIA */

.home-hero-media{
  position:absolute;

  inset:0;

  z-index:0;

  width:100%;
  height:100%;

  overflow:hidden;

  background:#111;
}


.home-hero-video{
  position:absolute;

  inset:0;

  display:block;

  width:100% !important;
  height:100% !important;

  min-width:100%;
  min-height:100%;

  max-width:none !important;
  max-height:none !important;

  margin:0 !important;

  object-fit:cover !important;
  object-position:center center;

  transform:scale(1.015);
  transform-origin:center center;
}


/* OVERLAY */

.home-hero-overlay{
  position:absolute;

  inset:0;

  z-index:1;

  background:
    linear-gradient(
      180deg,
      rgba(0,0,0,.14) 0%,
      rgba(0,0,0,.20) 38%,
      rgba(0,0,0,.39) 100%
    );

  pointer-events:none;
}


/* INNER */

.home-hero-inner{
  position:relative;

  z-index:2;

  width:min(1180px,90vw);
  height:100%;

  margin:auto;

  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;

  text-align:center;
}


/* HEADLINE */

.home-hero-main{
  position:relative;

  width:100%;
  max-width:1080px;

  margin-top:-42px;
}


.home-hero-eyebrow{
  display:block;

  margin-bottom:18px;

  color:#d4b37c;

  font-size:.61rem;
  font-weight:600;

  letter-spacing:3.8px;
  text-transform:uppercase;
}


.home-hero-main h1{
  max-width:1050px;

  margin:0 auto;

  font-family:'Baskervville',serif;

  font-size:clamp(3.5rem,6vw,6.1rem);
  line-height:.94;

  font-weight:400;

  letter-spacing:-.052em;

  color:#fff;

  text-shadow:0 4px 30px rgba(0,0,0,.38);
}


.home-hero-main h1 em{
  display:block;

  max-width:900px;

  margin:20px auto 0;

  font-size:.43em;
  line-height:1.16;

  font-weight:400;
  font-style:italic;

  letter-spacing:-.028em;

  color:rgba(255,255,255,.94);
}


.home-hero-lead{
  max-width:640px;

  margin:28px auto 0;

  color:rgba(255,255,255,.86);

  font-size:.96rem;
  line-height:1.75;

  text-shadow:0 2px 15px rgba(0,0,0,.28);
}


/* BUTTONS */

.home-hero-actions{
  margin-top:34px;

  display:flex;
  align-items:center;
  justify-content:center;

  gap:13px;
}


.home-hero-button{
  min-width:265px;
  height:58px;

  padding:0 25px;

  display:flex;
  align-items:center;
  justify-content:center;

  box-sizing:border-box;

  text-decoration:none;

  font-size:.66rem;
  font-weight:600;

  letter-spacing:2.25px;
  text-transform:uppercase;

  transition:
    transform .3s ease,
    background .3s ease,
    color .3s ease,
    border-color .3s ease;
}


.home-hero-button:hover{
  transform:translateY(-2px);
}


.home-hero-button-primary{
  background:#fff;

  border:1px solid #fff;

  color:var(--home-ink);
}


.home-hero-button-secondary{
  background:rgba(20,20,20,.14);

  border:1px solid rgba(255,255,255,.68);

  color:#fff;

  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}


.home-hero-button-secondary:hover{
  background:#fff;

  color:var(--home-ink);

  border-color:#fff;
}


/* =========================================================
   HERO SOCIAL PROOF
   ========================================================= */

.home-hero-proof{
  position:absolute;

  left:50%;
  bottom:34px;

  z-index:5;

  width:min(720px,82vw);

  transform:translateX(-50%);

  background:transparent !important;

  text-align:center;

  pointer-events:none;
}


.home-hero-proof,
.home-hero-proof *,
.home-hero-proof-stage,
.home-hero-review,
.home-hero-review-source{
  box-sizing:border-box;

  background:transparent !important;

  box-shadow:none !important;
}


.home-hero-proof-rule{
  width:100%;
  height:1px;

  margin:0 0 12px;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255,255,255,.30),
      transparent
    ) !important;
}


.home-hero-proof-label{
  margin:0 0 8px;

  color:rgba(255,255,255,.60);

  font-size:.5rem;
  font-weight:600;

  line-height:1.2;

  letter-spacing:3px;
  text-transform:uppercase;
}


.home-hero-proof-stage{
  position:relative;

  width:100%;
  min-height:82px;

  margin:0 auto;
  padding:0;

  overflow:visible;

  border:0 !important;
}


.home-hero-review{
  position:absolute;

  inset:0;

  width:100%;
  height:100%;

  margin:0 !important;
  padding:0 !important;

  border:0 !important;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  opacity:0;

  transform:translateY(8px);

  transition:
    opacity .7s ease,
    transform .7s ease;

  pointer-events:none;
}


.home-hero-review::before,
.home-hero-review::after{
  content:none !important;
  display:none !important;
}


.home-hero-review.is-active{
  opacity:1;
  transform:translateY(0);
}


.home-hero-review-stars{
  margin:0 0 7px;
  padding:0;

  color:#efc36f;

  font-family:inherit;

  font-size:.68rem;
  line-height:1;

  letter-spacing:3px;
}


.home-hero-review p{
  display:block;

  width:auto;
  max-width:680px;

  margin:0 auto !important;
  padding:0 !important;

  border:0 !important;

  font-family:'Baskervville',serif;

  font-size:1rem;
  line-height:1.45;

  font-weight:400;
  font-style:italic;

  color:rgba(255,255,255,.95);

  text-align:center;

  text-shadow:0 2px 14px rgba(0,0,0,.45);
}


.home-hero-review-source{
  display:block;

  width:auto;
  height:auto;

  margin:7px 0 0 !important;
  padding:0 !important;

  border:0 !important;

  color:rgba(255,255,255,.65);

  font-family:inherit;

  font-size:.49rem;
  line-height:1.2;

  font-weight:400;
  font-style:normal;

  letter-spacing:2.2px;
  text-transform:uppercase;

  text-align:center;
}


.home-hero-proof-progress{
  position:relative;

  width:48px;
  height:1px;

  margin:10px auto 0;
  padding:0;

  overflow:hidden;

  border:0 !important;

  background:rgba(255,255,255,.22) !important;
}


.home-hero-proof-progress span{
  display:block;

  width:0;
  height:100%;

  margin:0;
  padding:0;

  background:#fff !important;
}


/* =========================================================
   YOUR WEDDING DAY
   ========================================================= */

.home-feeling{
  position:relative !important;

  width:100vw !important;
  max-width:none !important;

  height:400vh;

  padding:0 !important;

  overflow:visible;

  background:var(--home-cream);
}


.home-feeling-sticky{
  position:sticky !important;

  top:0;

  width:100% !important;
  max-width:none !important;

  height:100vh;
  min-height:100vh;

  margin:0 !important;
  padding:0 !important;

  overflow:hidden;

  display:flex;
  align-items:center;
  justify-content:center;

  background:var(--home-cream);
}


.home-feeling-inner{
  position:relative;

  z-index:2;

  width:min(1240px,88vw) !important;
  max-width:1240px !important;

  height:min(720px,78vh);

  margin:0 auto !important;

  display:grid;

  grid-template-columns:
    minmax(0,.88fr)
    minmax(0,1.12fr);

  gap:76px;

  align-items:center;
}


.home-feeling-word{
  position:absolute;

  left:50%;
  top:52%;

  z-index:0;

  transform:translate(-50%,-50%);

  font-family:'Baskervville',serif;

  font-size:clamp(8rem,17vw,17rem);
  line-height:.8;

  white-space:nowrap;

  color:rgba(36,35,33,.025);

  pointer-events:none;
}


.home-feeling-copy{
  position:relative;

  z-index:4;

  width:100%;
  max-width:520px;

  min-width:0;
}


.home-feeling-copy .eyebrow{
  margin-bottom:24px;
}


.home-feeling-copy h2{
  max-width:520px;

  margin:0;

  font-family:'Baskervville',serif;

  font-size:clamp(3.35rem,4.6vw,4.9rem);
  line-height:.95;

  font-weight:400;

  letter-spacing:-.045em;

  color:var(--home-ink);
}


.home-feeling-copy h2 > span{
  display:block;
}


.home-feeling-copy h2 em{
  display:block;

  max-width:490px;

  margin-top:17px;

  font-size:.53em;
  line-height:1.12;

  font-weight:400;
  font-style:italic;

  letter-spacing:-.025em;

  color:#746e67;
}


.home-feeling-lead{
  max-width:455px;

  margin:28px 0 0;

  color:#68635d;

  font-size:.93rem;
  line-height:1.8;
}


.feeling-chapter{
  position:relative;

  min-height:90px;

  margin-top:31px;
  padding-top:19px;

  border-top:1px solid rgba(36,35,33,.13);
}


.feeling-chapter-label{
  display:block;

  margin-bottom:8px;

  color:var(--home-gold);

  font-size:.55rem;
  font-weight:600;

  letter-spacing:2.7px;
  text-transform:uppercase;

  transition:
    opacity .3s ease,
    transform .3s ease;
}


.feeling-chapter-copy{
  max-width:430px;

  margin:0;

  font-family:'Baskervville',serif;

  font-size:1.17rem;
  line-height:1.45;

  font-style:italic;

  color:#68625b;

  transition:
    opacity .3s ease,
    transform .3s ease;
}


.home-feeling-visual{
  position:relative;

  z-index:3;

  justify-self:end;

  width:100%;
  max-width:620px;

  height:min(68vh,630px);
  min-height:420px;

  overflow:hidden;

  background:#d8d4cd;
}


.feeling-shot{
  position:absolute;

  inset:0;

  width:100%;
  height:100%;

  margin:0 !important;
  padding:0 !important;

  overflow:hidden;

  opacity:0;

  transform:scale(1.025);

  pointer-events:none;

  will-change:
    opacity,
    transform;
}


.feeling-shot:first-child,
.feeling-shot.is-active{
  opacity:1;
}


.feeling-shot.is-active{
  pointer-events:auto;
}


.home-feeling-visual .feeling-shot img{
  position:absolute !important;

  inset:0 !important;

  display:block !important;

  width:100% !important;
  height:100% !important;

  min-width:100%;
  min-height:100%;

  max-width:none !important;
  max-height:none !important;

  margin:0 !important;

  object-fit:cover !important;
  object-position:center center;
}


.feeling-shot:nth-child(4) img{
  object-position:center 38%;
}


.feeling-shot-overlay{
  position:absolute;

  inset:0;

  z-index:1;

  background:
    linear-gradient(
      to top,
      rgba(0,0,0,.48) 0%,
      rgba(0,0,0,.08) 46%,
      transparent 72%
    );

  pointer-events:none;
}


.feeling-shot::after{
  content:"";

  position:absolute;

  inset:18px;

  z-index:2;

  border:1px solid rgba(255,255,255,.30);

  pointer-events:none;
}


.feeling-shot figcaption{
  position:absolute;

  left:28px;
  right:28px;
  bottom:27px;

  z-index:3;

  display:grid;

  grid-template-columns:1fr auto;

  gap:20px;

  align-items:end;

  color:#fff;
}


.feeling-shot figcaption span{
  display:block;

  margin:0;

  color:#ead0a5;

  font-size:.55rem;
  font-weight:600;

  letter-spacing:2.7px;
  text-transform:uppercase;
}


.feeling-shot figcaption strong{
  align-self:end;

  font-family:'Baskervville',serif;

  font-size:2rem;
  font-weight:400;

  color:rgba(255,255,255,.9);
}


.feeling-progress{
  position:absolute;

  left:0;
  right:0;
  bottom:0;

  height:1px;

  background:rgba(36,35,33,.12);
}


.feeling-progress span{
  display:block;

  width:0;
  height:1px;

  background:var(--home-gold);
}


/* =========================================================
   WHAT THE FILM GIVES YOU
   ========================================================= */

.home-promise{
  position:relative !important;

  width:100vw !important;
  max-width:none !important;

  height:400vh;

  padding:0 !important;

  overflow:visible;

  background:#fff;
}


.home-promise-sticky{
  position:sticky !important;

  top:0;

  width:100% !important;
  max-width:none !important;

  height:100vh;
  min-height:100vh;

  margin:0 !important;
  padding:0 !important;

  overflow:hidden;

  display:flex;
  align-items:center;
  justify-content:center;

  background:#fff;
}


.home-promise-inner{
  position:relative;

  z-index:2;

  width:min(1240px,88vw) !important;
  max-width:1240px !important;

  height:min(720px,78vh);

  margin:0 auto !important;
}


.home-promise-word{
  position:absolute;

  left:50%;
  top:52%;

  z-index:0;

  transform:translate(-50%,-50%);

  font-family:'Baskervville',serif;

  font-size:clamp(8rem,17vw,17rem);
  line-height:.8;

  font-style:italic;
  white-space:nowrap;

  color:rgba(0,0,0,.022);

  pointer-events:none;
}


.promise-scene{
  position:absolute;

  inset:0;

  z-index:2;

  width:100%;
  height:100%;

  margin:0 !important;
  padding:0 !important;

  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(0,1fr);

  gap:76px;

  align-items:center;

  opacity:0;

  transform:translateY(35px);

  pointer-events:none;

  will-change:
    opacity,
    transform;
}


.promise-scene:first-of-type,
.promise-scene.is-active{
  opacity:1;
}


.promise-scene.is-active{
  pointer-events:auto;
}


.promise-scene.reverse .promise-image{
  order:2;
}


.promise-scene.reverse .promise-copy{
  order:1;
}


.promise-image{
  position:relative;

  width:100%;
  max-width:590px;

  height:min(67vh,620px);
  min-height:420px;

  justify-self:center;

  margin:0 !important;

  overflow:hidden;

  background:#d8d5cf;
}


.promise-image img{
  position:absolute !important;

  inset:0 !important;

  display:block !important;

  width:100% !important;
  height:100% !important;

  min-width:100%;
  min-height:100%;

  max-width:none !important;
  max-height:none !important;

  margin:0 !important;

  object-fit:cover !important;
  object-position:center center;

  transform:scale(1.035);
}


.promise-image-overlay{
  position:absolute;

  inset:0;

  z-index:1;

  background:
    linear-gradient(
      to top,
      rgba(0,0,0,.40),
      rgba(0,0,0,.02) 51%
    );

  pointer-events:none;
}


.promise-image::after{
  content:"";

  position:absolute;

  inset:19px;

  z-index:2;

  border:1px solid rgba(255,255,255,.29);

  pointer-events:none;
}


.promise-image-caption{
  position:absolute;

  left:28px;
  right:28px;
  bottom:27px;

  z-index:3;

  color:#fff;
}


.promise-image-caption span{
  display:block;

  margin-bottom:8px;

  color:#ead0a5;

  font-size:.55rem;
  font-weight:600;

  letter-spacing:2.7px;
  text-transform:uppercase;
}


.promise-image-caption p{
  max-width:390px;

  margin:0;

  font-family:'Baskervville',serif;

  font-size:1.35rem;
  line-height:1.38;

  font-style:italic;

  color:#fff;

  text-shadow:0 2px 15px rgba(0,0,0,.45);
}


.promise-copy{
  position:relative;

  z-index:3;

  width:100%;
  max-width:555px;

  min-width:0;
}


.promise-copy .eyebrow{
  margin-bottom:21px;
}


.promise-copy h2{
  max-width:555px;

  margin:0 0 27px;

  font-family:'Baskervville',serif;

  font-size:clamp(3rem,4.2vw,4.45rem);
  line-height:.98;

  font-weight:400;

  letter-spacing:-.04em;

  color:var(--home-ink);
}


.promise-copy h2 em{
  display:block;

  max-width:540px;

  margin-top:13px;

  font-size:.56em;
  line-height:1.15;

  font-weight:400;
  font-style:italic;

  color:var(--home-gold);
}


.promise-lead{
  max-width:515px;

  margin:0;

  font-family:'Baskervville',serif;

  font-size:1.28rem;
  line-height:1.55;

  font-style:italic;

  color:#35322f;
}


.promise-number{
  display:block;

  margin-bottom:10px;

  font-family:'Baskervville',serif;

  font-size:4.6rem;
  line-height:.8;

  color:var(--home-gold);
}


.promise-kicker{
  display:block;

  margin-bottom:20px;

  color:#888178;

  font-size:.55rem;
  font-weight:600;

  letter-spacing:2.8px;
  text-transform:uppercase;
}


.promise-copy h3{
  max-width:555px;

  margin:0 0 20px;

  font-family:'Baskervville',serif;

  font-size:clamp(2.35rem,3.25vw,3.35rem);
  line-height:1.02;

  font-weight:400;

  letter-spacing:-.03em;

  color:var(--home-ink);
}


.promise-copy > p:not(.promise-lead){
  max-width:500px;

  margin:0;

  color:#66615c;

  font-size:.94rem;
  line-height:1.78;
}


.promise-note{
  display:block;

  max-width:465px;

  margin-top:23px;
  padding-top:17px;

  border-top:1px solid rgba(36,35,33,.12);

  font-family:'Baskervville',serif;

  font-size:1rem;
  line-height:1.5;

  font-style:italic;

  color:#777169;
}


.promise-progress{
  position:absolute;

  left:0;
  right:0;
  bottom:0;

  z-index:8;

  height:1px;

  background:rgba(36,35,33,.11);
}


.promise-progress span{
  display:block;

  width:0;
  height:1px;

  background:var(--home-gold);
}


/* =========================================================
   REAL WEDDINGS
   ========================================================= */

.home-stories{
  overflow:hidden;

  background:#f1eee8;

  border-top:1px solid var(--home-line);
}


.home-stories::before{
  content:"REAL STORIES";

  position:absolute;

  top:75px;
  left:50%;

  transform:translateX(-50%);

  font-family:'Baskervville',serif;

  font-size:clamp(6rem,12vw,11rem);
  line-height:1;

  white-space:nowrap;

  color:rgba(0,0,0,.022);

  pointer-events:none;
}


.home-stories-header{
  position:relative;

  z-index:1;

  max-width:850px;

  margin:0 auto 100px;

  text-align:center;
}


.home-stories-header .eyebrow{
  margin-bottom:20px;
}


.home-stories-header h2{
  margin:0 0 26px;

  font-family:'Baskervville',serif;

  font-size:clamp(3rem,4.5vw,4.4rem);
  line-height:1.02;

  font-weight:400;

  letter-spacing:-.03em;
}


.story-heading-accent{
  display:block;

  margin-top:10px;

  font-size:.7em;

  font-style:italic;

  color:#66615a;
}


.home-stories-header p{
  max-width:680px;

  margin:auto;

  color:#666;

  font-size:.95rem;
  line-height:1.8;
}


.editorial-story{
  position:relative;

  z-index:1;

  max-width:1180px;

  margin:0 auto 135px;

  display:grid;

  grid-template-columns:1.12fr .88fr;

  gap:75px;

  align-items:center;
}


.editorial-story:last-child{
  margin-bottom:0;
}


.editorial-story.reverse{
  grid-template-columns:.88fr 1.12fr;
}


.editorial-story.reverse .editorial-story-image{
  order:2;
}


.editorial-story.reverse .editorial-story-copy{
  order:1;
}


.editorial-story-image{
  position:relative;
}


.editorial-story-image::after{
  content:"";

  position:absolute;

  right:-18px;
  bottom:-18px;

  z-index:-1;

  width:91%;
  height:91%;

  border-right:1px solid rgba(0,0,0,.14);
  border-bottom:1px solid rgba(0,0,0,.14);
}


.editorial-story.reverse .editorial-story-image::after{
  right:auto;
  left:-18px;

  border-right:0;

  border-left:1px solid rgba(0,0,0,.14);
}


.editorial-story-image a{
  display:block;

  overflow:hidden;
}


.editorial-story-image img{
  display:block;

  width:100%;

  aspect-ratio:4/3;

  object-fit:cover;

  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}


.editorial-story-image:hover img{
  transform:scale(1.035);
}


.editorial-story-badge{
  position:absolute;

  left:28px;
  bottom:28px;

  padding:11px 15px;

  background:rgba(20,20,20,.74);

  color:#fff;

  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);

  font-size:.62rem;

  letter-spacing:2px;
  text-transform:uppercase;
}


.editorial-story-copy{
  position:relative;

  max-width:480px;
}


.editorial-story-number{
  position:absolute;

  top:-90px;
  right:-8px;

  font-family:'Baskervville',serif;

  font-size:7.5rem;
  line-height:1;

  color:rgba(0,0,0,.045);

  pointer-events:none;
}


.editorial-story-copy .eyebrow{
  margin-bottom:18px;
}


.editorial-story-copy h3{
  margin:0 0 10px;

  font-family:'Baskervville',serif;

  font-size:3.55rem;
  line-height:.98;

  font-weight:400;

  letter-spacing:-.025em;
}


.editorial-story-venue{
  margin:0 0 28px;

  color:var(--home-gold);

  font-size:.68rem;

  letter-spacing:2px;
  text-transform:uppercase;
}


.editorial-story-tone{
  margin:0 0 20px;

  font-family:'Baskervville',serif;

  font-size:1.62rem;
  line-height:1.4;

  font-style:italic;
}


.editorial-story-description{
  margin:0 0 28px;

  color:#626262;

  font-size:.94rem;
  line-height:1.8;
}


.editorial-story-quote{
  margin:31px 0;

  padding:25px 0;

  border-top:1px solid rgba(0,0,0,.15);
  border-bottom:1px solid rgba(0,0,0,.15);
}


.editorial-story-quote blockquote{
  margin:0 0 12px;

  font-family:'Baskervville',serif;

  font-size:1.25rem;
  line-height:1.55;

  font-style:italic;
}


.editorial-story-quote p{
  margin:0;

  color:#888;

  font-size:.62rem;

  letter-spacing:2px;
  text-transform:uppercase;
}


.editorial-link{
  display:inline-block;

  padding-bottom:5px;

  border-bottom:1px solid var(--home-ink);

  color:var(--home-ink);

  text-decoration:none;

  font-size:.68rem;
  font-weight:600;

  letter-spacing:2px;
  text-transform:uppercase;
}


/* =========================================================
   REVIEW FEATURE
   ========================================================= */

.home-review-feature{
  overflow:hidden;

  background:var(--home-ink);

  color:#fff;

  text-align:center;
}


.home-review-feature::before{
  content:"“";

  position:absolute;

  left:3%;
  top:-95px;

  font-family:'Baskervville',serif;

  font-size:24rem;
  line-height:1;

  color:rgba(255,255,255,.025);

  pointer-events:none;
}


.home-review-feature-inner{
  position:relative;

  z-index:1;

  max-width:980px;

  margin:auto;
}


.home-review-feature .eyebrow{
  color:var(--home-gold);
}


.home-review-stars{
  margin:22px 0 30px;

  color:#f1c76a;

  font-size:1rem;

  letter-spacing:6px;
}


.home-review-feature blockquote{
  max-width:940px;

  margin:0 auto 32px;

  font-family:'Baskervville',serif;

  font-size:clamp(2rem,3.7vw,3.4rem);
  line-height:1.25;

  font-weight:400;
  font-style:italic;

  color:#fff;
}


.home-review-name{
  margin:0;

  color:rgba(255,255,255,.65);

  font-size:.68rem;

  letter-spacing:2.5px;
  text-transform:uppercase;
}


/* =========================================================
   BEHIND THE LENS
   ========================================================= */

.home-process{
  overflow:hidden;

  background:#fff;
}


.home-process::after{
  content:"CRAFT";

  position:absolute;

  right:-15px;
  top:55px;

  font-family:'Baskervville',serif;

  font-size:clamp(8rem,15vw,15rem);

  font-style:italic;

  color:rgba(0,0,0,.022);

  pointer-events:none;
}


.home-process-grid{
  position:relative;

  z-index:1;

  max-width:1160px;

  margin:auto;

  display:grid;

  grid-template-columns:.82fr 1.18fr;

  gap:95px;

  align-items:center;
}


.home-process-image{
  position:relative;

  overflow:hidden;
}


.home-process-image::before{
  content:"BEHIND\A THE\A LENS";

  white-space:pre;

  position:absolute;

  left:22px;
  bottom:35px;

  z-index:2;

  font-family:'Baskervville',serif;

  font-size:clamp(2.7rem,4vw,3.55rem);
  line-height:.84;

  font-style:italic;

  color:rgba(255,255,255,.77);

  pointer-events:none;
}


.home-process-image img{
  display:block;

  width:100%;

  aspect-ratio:4/5;

  object-fit:cover;
}


.home-process-copy{
  min-width:0;
}


.home-process-copy .eyebrow{
  margin-bottom:19px;
}


.home-process-copy h2{
  max-width:680px;

  margin:0 0 30px;

  font-family:'Baskervville',serif;

  font-size:clamp(3rem,4vw,4rem);
  line-height:1.03;

  font-weight:400;

  letter-spacing:-.03em;
}


.process-heading-accent{
  display:block;

  margin-top:10px;

  font-size:.66em;
  line-height:1.15;

  font-style:italic;

  color:#716b63;
}


.home-process-lead{
  max-width:600px;

  margin:0 0 27px;

  font-family:'Baskervville',serif;

  font-size:1.45rem;
  line-height:1.52;

  font-style:italic;

  color:var(--home-ink);
}


.home-process-copy p{
  max-width:620px;

  margin:0 0 18px;

  color:#595959;

  font-size:.96rem;
  line-height:1.85;
}


.process-signature{
  max-width:570px;

  margin-top:34px;

  padding-top:25px;

  border-top:1px solid var(--home-line);
}


.process-signature strong{
  display:block;

  margin-bottom:8px;

  font-family:'Baskervville',serif;

  font-size:1.35rem;

  font-weight:400;
  font-style:italic;

  color:var(--home-ink);
}


.process-signature span{
  color:#777;

  font-size:.82rem;
  line-height:1.65;
}


/* =========================================================
   PHOTOGRAPHY + FILM
   RUBY SALMON PARTNERSHIP
   ========================================================= */

.home-partner{
  overflow:hidden;

  background:#eae6df;
}


.home-partner::before{
  content:"TOGETHER";

  position:absolute;

  left:-25px;
  bottom:-38px;

  font-family:'Baskervville',serif;

  font-size:clamp(8rem,14vw,14rem);

  font-style:italic;

  color:rgba(0,0,0,.023);

  pointer-events:none;
}


.home-partner-inner{
  position:relative;

  z-index:1;

  width:min(1180px,100%);
  max-width:1180px;

  margin:0 auto;

  display:grid;

  grid-template-columns:
    minmax(0,.98fr)
    minmax(0,1.02fr);

  gap:88px;

  align-items:center;
}


/* =========================================================
   PARTNER COLLAGE
   ========================================================= */

.home-partner-gallery{
  position:relative;

  width:100%;
  max-width:560px;

  height:660px;

  justify-self:center;
}


.partner-photo{
  position:absolute;

  margin:0;

  overflow:hidden;

  background:#d7d2ca;

  box-shadow:
    0 18px 45px rgba(35,31,26,.09);
}


.partner-photo img{
  display:block;

  width:100%;
  height:100%;

  object-fit:cover;

  transition:
    transform .9s cubic-bezier(.2,.7,.2,1);
}


.partner-photo:hover img{
  transform:scale(1.025);
}


/* Large portrait bride */

.partner-photo-main{
  left:0;
  top:0;

  z-index:1;

  width:61%;
  height:79%;
}


.partner-photo-main img{
  object-position:center 34%;
}


/* Wide outdoor image */

.partner-photo-top{
  right:0;
  top:55px;

  z-index:3;

  width:48%;
  height:37%;
}


.partner-photo-top img{
  object-position:center center;
}


/* Vertical town hall image */

.partner-photo-bottom{
  right:5%;
  bottom:0;

  z-index:4;

  width:43%;
  height:49%;
}


.partner-photo-bottom img{
  object-position:center 38%;
}


/*
   Fine editorial outlines rather than
   heavy cards/borders.
*/

.partner-photo-main::after,
.partner-photo-top::after,
.partner-photo-bottom::after{
  content:"";

  position:absolute;

  inset:10px;

  border:1px solid rgba(255,255,255,.32);

  pointer-events:none;
}


/* Photographer label over the collage */

.partner-gallery-label{
  position:absolute;

  left:22px;
  bottom:82px;

  z-index:6;

  min-width:195px;

  padding:15px 18px;

  background:rgba(31,29,27,.86);

  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);

  color:#fff;
}


.partner-gallery-label span{
  display:block;

  margin-bottom:5px;

  color:#d9bb8a;

  font-size:.48rem;
  font-weight:600;

  letter-spacing:2.4px;
  text-transform:uppercase;
}


.partner-gallery-label strong{
  display:block;

  font-family:'Baskervville',serif;

  font-size:1.22rem;
  line-height:1.15;

  font-weight:400;
  font-style:italic;
}


/* =========================================================
   PARTNER COPY
   ========================================================= */

.home-partner-copy{
  min-width:0;

  max-width:620px;
}


.home-partner-copy .eyebrow{
  margin-bottom:20px;
}


.home-partner-copy h2{
  max-width:650px;

  margin:0 0 28px;

  font-family:'Baskervville',serif;

  font-size:clamp(3rem,4vw,3.9rem);
  line-height:1.03;

  font-weight:400;

  letter-spacing:-.035em;

  color:var(--home-ink);
}


.partner-heading-accent{
  display:block;

  max-width:610px;

  margin-top:11px;

  font-size:.66em;
  line-height:1.16;

  font-weight:400;
  font-style:italic;

  letter-spacing:-.02em;

  color:#726c64;
}


.home-partner-lead{
  max-width:590px !important;

  margin:0 0 24px !important;

  font-family:'Baskervville',serif;

  font-size:1.35rem !important;
  line-height:1.5 !important;

  font-style:italic;

  color:#36332f !important;
}


.home-partner-copy p{
  max-width:610px;

  margin:0 0 18px;

  color:#5f5f5f;

  font-size:.95rem;
  line-height:1.82;
}


/* =========================================================
   BENEFITS
   ========================================================= */

.partner-benefits{
  max-width:620px;

  margin:31px 0 30px;

  padding:23px 0;

  display:grid;

  grid-template-columns:1fr 1fr;

  gap:16px 34px;

  border-top:1px solid rgba(36,35,33,.13);
  border-bottom:1px solid rgba(36,35,33,.13);
}


.partner-benefit{
  position:relative;

  padding-left:22px;

  color:#55514c;

  font-size:.82rem;
  line-height:1.48;
}


.partner-benefit::before{
  content:"";

  position:absolute;

  left:0;
  top:.7em;

  width:9px;
  height:1px;

  background:var(--home-gold);
}


/* =========================================================
   RUBY CREDIT / LOGO
   ========================================================= */

.partner-credit{
  max-width:620px;

  margin:0 0 27px;

  display:flex;
  align-items:center;

  gap:20px;
}


.partner-credit img{
  display:block;

  width:118px;
  height:68px;

  padding:7px 10px;

  object-fit:contain;

  background:#fff;
}


.partner-credit div{
  min-width:0;
}


.partner-credit span{
  display:block;

  margin-bottom:5px;

  color:#8a8176;

  font-size:.5rem;
  font-weight:600;

  letter-spacing:2.2px;
  text-transform:uppercase;
}


.partner-credit strong{
  display:block;

  font-family:'Baskervville',serif;

  font-size:1.25rem;
  line-height:1.15;

  font-weight:400;

  color:var(--home-ink);
}


.partner-link{
  display:inline-block;

  padding-bottom:5px;

  border-bottom:1px solid var(--home-ink);

  color:var(--home-ink);

  text-decoration:none;

  font-size:.68rem;
  font-weight:600;

  letter-spacing:2px;
  text-transform:uppercase;

  transition:
    color .25s ease,
    border-color .25s ease;
}


.partner-link:hover{
  color:var(--home-gold);

  border-color:var(--home-gold);
}


/* =========================================================
   LOCATIONS
   ========================================================= */

.home-locations{
  overflow:hidden;

  background:#fff;
}


.home-locations::before{
  content:"GO SOMEWHERE";

  position:absolute;

  left:50%;
  top:40px;

  transform:translateX(-50%);

  white-space:nowrap;

  font-family:'Baskervville',serif;

  font-size:clamp(6rem,11vw,11rem);

  font-style:italic;

  color:rgba(0,0,0,.02);

  pointer-events:none;
}


.home-locations-header{
  position:relative;

  z-index:1;

  max-width:850px;

  margin:0 auto 75px;

  text-align:center;
}


.home-locations-header .eyebrow{
  margin-bottom:20px;
}


.home-locations-header h2{
  margin:0 0 22px;

  font-family:'Baskervville',serif;

  font-size:clamp(3rem,4.3vw,4.1rem);
  line-height:1.04;

  font-weight:400;

  letter-spacing:-.025em;
}


.location-heading-accent{
  display:block;

  margin-top:8px;

  font-size:.67em;

  font-style:italic;

  color:#716b63;
}


.home-locations-header p{
  max-width:650px;

  margin:auto;

  color:#666;

  font-size:.92rem;
  line-height:1.8;
}


.home-destination-grid{
  position:relative;

  z-index:1;

  max-width:1180px;

  margin:auto;

  display:grid;

  grid-template-columns:repeat(4,1fr);

  gap:12px;
}


.home-destination-grid .destination-card:nth-child(2),
.home-destination-grid .destination-card:nth-child(4){
  transform:translateY(28px);
}


/* =========================================================
   COLLECTIONS
   ========================================================= */

.home-collections{
  overflow:hidden;

  background:var(--home-cream);

  border-top:1px solid var(--home-line);
}


.home-collections::before{
  content:"YOUR STORY";

  position:absolute;

  left:50%;
  top:40px;

  transform:translateX(-50%);

  white-space:nowrap;

  font-family:'Baskervville',serif;

  font-size:clamp(6rem,12vw,12rem);

  color:rgba(0,0,0,.022);

  pointer-events:none;
}


.collection-intro{
  position:relative;

  z-index:1;

  max-width:820px;

  margin:0 auto 75px;

  text-align:center;
}


.collection-intro .eyebrow{
  margin-bottom:21px;
}


.collection-intro h2{
  margin:0;

  font-family:'Baskervville',serif;

  font-size:clamp(3rem,4.2vw,4rem);
  line-height:1.04;

  font-weight:400;

  letter-spacing:-.025em;
}


.collection-heading-accent{
  display:block;

  margin-top:8px;

  font-size:.68em;

  font-style:italic;

  color:#706a62;
}


.collection-intro p{
  max-width:680px;

  margin:25px auto 0;

  color:#666;

  font-size:.92rem;
  line-height:1.75;
}


.home-collections .packages,
.home-collections .optional-extras{
  max-width:1100px;

  margin-left:auto;
  margin-right:auto;
}


.optional-extras-title{
  margin:0;

  font-family:'Baskervville',serif;

  font-size:2rem;

  font-weight:400;
}


.optional-extras-note{
  max-width:650px;

  margin:25px auto 0;

  color:#888;

  font-size:.8rem;
  line-height:1.7;
}


/* =========================================================
   FAQ
   ========================================================= */

.home-faq{
  overflow:hidden;

  background:#fff;

  border-top:1px solid var(--home-line);
}


.home-faq::before{
  content:"ASK";

  position:absolute;

  right:2%;
  top:10px;

  font-family:'Baskervville',serif;

  font-size:clamp(9rem,18vw,17rem);

  font-style:italic;

  color:rgba(0,0,0,.02);

  pointer-events:none;
}


.home-faq-header{
  position:relative;

  z-index:1;

  max-width:800px;

  margin:0 auto 55px;

  text-align:center;
}


.home-faq-header .eyebrow{
  margin-bottom:20px;
}


.home-faq-header h2{
  margin:0;

  font-family:'Baskervville',serif;

  font-size:clamp(2.8rem,4vw,3.7rem);
  line-height:1.08;

  font-weight:400;

  letter-spacing:-.02em;
}


.faq-heading-accent{
  display:block;

  margin-top:8px;

  font-size:.65em;

  font-style:italic;

  color:#716b63;
}


.home-faq .faq-container{
  max-width:800px;

  margin-left:auto;
  margin-right:auto;
}


/* =========================================================
   CONTACT
   ========================================================= */

.home-contact{
  overflow:hidden;

  background:#efede8;

  border-top:1px solid var(--home-line);
}


.home-contact::before{
  content:"HELLO";

  position:absolute;

  right:-20px;
  top:5px;

  font-family:'Baskervville',serif;

  font-size:clamp(10rem,19vw,18rem);

  font-style:italic;

  color:rgba(0,0,0,.022);

  pointer-events:none;
}


.home-contact-header{
  position:relative;

  z-index:1;

  max-width:800px;

  margin:0 auto 62px;

  text-align:center;
}


.home-contact-header .eyebrow{
  margin-bottom:20px;
}


.home-contact-header h2{
  margin:0;

  font-family:'Baskervville',serif;

  font-size:clamp(3rem,4.2vw,4rem);
  line-height:1.05;

  font-weight:400;

  letter-spacing:-.025em;
}


.contact-heading-accent{
  display:block;

  margin-top:8px;

  font-size:.63em;
  line-height:1.2;

  font-style:italic;

  color:#706a62;
}


.home-contact-header p{
  max-width:650px;

  margin:22px auto 0;

  color:#666;

  line-height:1.8;
}


.home-contact .custom-form-container{
  max-width:650px;

  margin-left:auto;
  margin-right:auto;
}


.contact-submit{
  width:100%;

  margin-top:10px;
}


.form-success{
  display:none;

  margin-top:20px;

  color:var(--home-gold);

  font-style:italic;

  text-align:center;
}


/* =========================================================
   SHORTER LAPTOP HEIGHTS
   ========================================================= */

@media(max-height:820px) and (min-width:901px){

  .home-hero-main{
    margin-top:-20px;
  }


  .home-hero-main h1{
    font-size:clamp(3.1rem,5vw,4.85rem);
  }


  .home-hero-lead{
    margin-top:20px;
  }


  .home-hero-actions{
    margin-top:25px;
  }


  .home-hero-proof{
    bottom:20px;
  }


  .home-feeling-inner,
  .home-promise-inner{
    width:min(1160px,88vw) !important;
    height:72vh;
  }


  .home-feeling-inner{
    gap:60px;
  }


  .home-feeling-copy h2{
    font-size:clamp(2.9rem,4vw,4.2rem);
  }


  .home-feeling-lead{
    margin-top:19px;
  }


  .feeling-chapter{
    margin-top:20px;
  }


  .home-feeling-visual{
    max-width:560px;

    height:63vh;
    min-height:380px;
  }


  .promise-scene{
    gap:58px;
  }


  .promise-image{
    max-width:545px;

    height:61vh;
    min-height:380px;
  }


  .promise-copy h2{
    font-size:clamp(2.65rem,3.6vw,3.65rem);
  }


  .promise-copy h3{
    font-size:clamp(2.05rem,2.7vw,2.75rem);
  }


  .promise-number{
    font-size:3.8rem;
  }


  .promise-note{
    margin-top:15px;
    padding-top:14px;
  }


  .home-partner{
    padding-top:95px;
    padding-bottom:95px;
  }


  .home-partner-inner{
    gap:68px;
  }


  .home-partner-gallery{
    max-width:500px;
    height:570px;
  }


  .home-partner-copy h2{
    font-size:clamp(2.7rem,3.5vw,3.35rem);
  }


  .home-partner-lead{
    font-size:1.2rem !important;
  }
}


/* =========================================================
   TABLET
   ========================================================= */

@media(max-width:1050px){

  .home-feeling-inner{
    width:min(92vw,1100px) !important;
    gap:55px;
  }


  .home-promise-inner{
    width:min(92vw,1100px) !important;
  }


  .promise-scene{
    gap:55px;
  }


  .home-process-grid,
  .home-partner-inner{
    gap:50px;
  }


  .home-partner-gallery{
    height:590px;
  }


  .home-partner-copy h2{
    font-size:clamp(2.7rem,4vw,3.45rem);
  }


  .home-destination-grid{
    grid-template-columns:1fr 1fr;
  }


  .home-destination-grid .destination-card:nth-child(2),
  .home-destination-grid .destination-card:nth-child(4){
    transform:none;
  }
}


/* =========================================================
   MOBILE / SMALL TABLET
   ========================================================= */

@media(max-width:900px){

  .home-stories,
  .home-review-feature,
  .home-process,
  .home-partner,
  .home-locations,
  .home-collections,
  .home-faq,
  .home-contact{
    padding:90px 25px;
  }


  /* HERO */

  .home-hero{
    height:100svh;
    min-height:680px;
  }


  .home-hero-inner{
    width:90vw;
  }


  .home-hero-main{
    margin-top:-30px;
  }


  .home-hero-main h1{
    font-size:clamp(3rem,8vw,4.8rem);
  }


  .home-hero-proof{
    bottom:28px;

    width:min(620px,84vw);
  }


  /* DAY */

  .home-feeling{
    height:auto;
  }


  .home-feeling-sticky{
    position:relative !important;

    top:auto;

    width:100% !important;
    max-width:none !important;

    height:auto;
    min-height:0;

    margin:0 !important;
    padding:95px 0 !important;

    overflow:visible;
  }


  .home-feeling-inner{
    width:min(700px,88vw) !important;
    max-width:700px !important;

    height:auto;

    display:block;
  }


  .home-feeling-word,
  .feeling-progress{
    display:none;
  }


  .home-feeling-copy{
    max-width:650px;

    margin-bottom:50px;
  }


  .home-feeling-visual{
    width:100%;
    max-width:none;

    height:auto;
    min-height:0;

    overflow:visible;

    background:transparent;
  }


  .feeling-shot{
    position:relative;

    inset:auto;

    width:100%;
    height:auto;

    aspect-ratio:4/5;

    margin:0 0 28px !important;

    opacity:1 !important;

    transform:none !important;

    pointer-events:auto;
  }


  .home-feeling-visual .feeling-shot img{
    position:absolute !important;

    inset:0 !important;

    width:100% !important;
    height:100% !important;
  }


  /* PROMISE */

  .home-promise{
    height:auto;
  }


  .home-promise-sticky{
    position:relative !important;

    top:auto;

    width:100% !important;
    max-width:none !important;

    height:auto;
    min-height:0;

    margin:0 !important;
    padding:95px 0 !important;

    overflow:visible;
  }


  .home-promise-inner{
    width:min(700px,88vw) !important;
    max-width:700px !important;

    height:auto;
  }


  .home-promise-word,
  .promise-progress{
    display:none;
  }


  .promise-scene,
  .promise-scene.reverse{
    position:relative;

    inset:auto;

    width:100%;
    height:auto;

    display:grid;

    grid-template-columns:1fr;

    gap:36px;

    padding:50px 0 !important;

    opacity:1 !important;

    transform:none !important;

    pointer-events:auto;

    border-bottom:1px solid rgba(36,35,33,.11);
  }


  .promise-scene:last-of-type{
    border-bottom:0;
  }


  .promise-scene.reverse .promise-image,
  .promise-scene.reverse .promise-copy{
    order:initial;
  }


  .promise-image{
    width:100%;
    max-width:none;

    height:auto;
    min-height:0;

    aspect-ratio:4/5;
  }


  .promise-copy{
    max-width:650px;
  }


  /* OTHER SECTIONS */

  .editorial-story,
  .editorial-story.reverse,
  .home-process-grid,
  .home-partner-inner{
    grid-template-columns:1fr;
  }


  .editorial-story.reverse .editorial-story-image,
  .editorial-story.reverse .editorial-story-copy{
    order:initial;
  }


  .home-process-image{
    max-width:650px;

    margin-left:auto;
    margin-right:auto;
  }


  .home-process-copy,
  .editorial-story-copy,
  .home-partner-copy{
    max-width:700px;

    margin-left:auto;
    margin-right:auto;
  }


  /* PARTNER */

  .home-partner-inner{
    max-width:700px;
    gap:65px;
  }


  .home-partner-gallery{
    width:min(100%,610px);
    max-width:610px;

    height:680px;

    margin:0 auto;
  }


  .partner-photo-main{
    width:61%;
    height:78%;
  }


  .partner-photo-top{
    width:48%;
    height:36%;

    top:55px;
  }


  .partner-photo-bottom{
    width:43%;
    height:48%;
  }


  .home-partner-copy{
    width:100%;
  }
}


/* =========================================================
   PHONE
   ========================================================= */

@media(max-width:600px){

  .home-hero-inner{
    width:92vw;
  }


  .home-hero-main{
    margin-top:-60px;
  }


  .home-hero-eyebrow{
    margin-bottom:14px;
  }


  .home-hero-main h1{
    font-size:2.8rem;
  }


  .home-hero-main h1 em{
    margin-top:13px;

    font-size:.48em;
  }


  .home-hero-lead{
    max-width:92%;

    margin-top:20px;

    font-size:.86rem;
    line-height:1.6;
  }


  .home-hero-actions{
    width:100%;

    margin-top:27px;

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:8px;
  }


  .home-hero-button{
    min-width:0;

    width:100%;
    height:51px;

    padding:0 8px;

    font-size:.53rem;

    letter-spacing:1.2px;
  }


  .home-hero-proof{
    bottom:20px;

    width:90vw;
  }


  .home-hero-proof-rule,
  .home-hero-proof-label{
    display:none;
  }


  .home-hero-proof-stage{
    min-height:74px;
  }


  .home-hero-review p{
    max-width:340px;

    font-size:.9rem;
    line-height:1.4;
  }


  .home-hero-review-source{
    margin-top:6px !important;

    font-size:.44rem;
  }


  .home-feeling-sticky,
  .home-promise-sticky{
    padding:75px 0 !important;
  }


  .home-feeling-copy h2{
    font-size:3.05rem;
  }


  .home-feeling-copy h2 em{
    font-size:.59em;
  }


  .home-feeling-lead{
    font-size:.9rem;
  }


  .promise-copy h2{
    font-size:2.75rem;
  }


  .promise-copy h3{
    font-size:2.4rem;
  }


  .promise-image-caption{
    left:22px;
    right:22px;
    bottom:22px;
  }


  .home-stories,
  .home-review-feature,
  .home-process,
  .home-partner,
  .home-locations,
  .home-collections,
  .home-faq,
  .home-contact{
    padding:82px 6vw;
  }


  .home-stories-header h2,
  .home-process-copy h2,
  .home-partner-copy h2,
  .home-locations-header h2,
  .collection-intro h2,
  .home-faq-header h2,
  .home-contact-header h2{
    font-size:2.65rem;
  }


  .editorial-story{
    margin-bottom:85px;

    gap:38px;
  }


  .editorial-story-image::after{
    display:none;
  }


  .editorial-story-number{
    top:-55px;

    font-size:5rem;
  }


  .editorial-story-copy h3{
    font-size:2.8rem;
  }


  .home-review-feature blockquote{
    font-size:1.85rem;
  }


  .home-process-image::before{
    display:none;
  }


  /* PARTNER MOBILE COLLAGE */

  .home-partner-inner{
    gap:54px;
  }


  .home-partner-gallery{
    width:100%;
    height:auto;

    display:grid;

    grid-template-columns:
      1.08fr .92fr;

    grid-template-rows:
      185px 205px;

    gap:8px;
  }


  .partner-photo{
    position:relative;

    inset:auto;

    width:auto;
    height:auto;

    box-shadow:none;
  }


  .partner-photo-main{
    grid-column:1;
    grid-row:1 / span 2;
  }


  .partner-photo-top{
    grid-column:2;
    grid-row:1;
  }


  .partner-photo-bottom{
    grid-column:2;
    grid-row:2;
  }


  .partner-photo-main img{
    object-position:center 33%;
  }


  .partner-gallery-label{
    left:14px;
    bottom:14px;

    min-width:0;

    padding:11px 13px;
  }


  .partner-gallery-label span{
    font-size:.42rem;
    letter-spacing:1.8px;
  }


  .partner-gallery-label strong{
    font-size:1rem;
  }


  .home-partner-copy h2{
    font-size:2.65rem;
  }


  .home-partner-lead{
    font-size:1.2rem !important;
  }


  .partner-benefits{
    grid-template-columns:1fr;

    gap:13px;

    margin-top:26px;
  }


  .partner-credit{
    gap:15px;
  }


  .partner-credit img{
    width:100px;
    height:60px;
  }


  .partner-credit strong{
    font-size:1.1rem;
  }


  .home-destination-grid{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   VERY SMALL PHONES
   ========================================================= */

@media(max-width:390px){

  .home-partner-gallery{
    grid-template-rows:
      165px 185px;
  }


  .partner-gallery-label{
    right:14px;
  }


  .partner-credit{
    align-items:flex-start;
  }


  .partner-credit img{
    width:90px;
    height:55px;
  }
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media(prefers-reduced-motion:reduce){

  [data-reveal]{
    opacity:1;

    transform:none;

    transition:none;
  }


  .home-hero-review,
  .feeling-shot,
  .promise-scene,
  .partner-photo img{
    transition:none;
  }


  .feeling-shot:first-child,
  .promise-scene:first-of-type{
    opacity:1 !important;
  }
}

/* =========================================================
   PROMISE STORY — 2026-09-17 OVERRIDE
   Current HTML: scrolling text cards + sticky changing image.
   This deliberately overrides the legacy .home-promise rules above
   without changing any other homepage section.
   ========================================================= */

.home-promise{
  height:auto !important;
  padding:0 !important;
  overflow:visible !important;
  background:#f6f3ee;
}

/* ---------- Intro / section heading ---------- */

.promise-intro{
  position:relative;
  width:100%;
  padding:112px 5vw 92px;
  overflow:hidden;
  background:#fff;
}

.promise-intro-word{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  font-family:'Baskervville',serif;
  font-size:clamp(8rem,17vw,16rem);
  line-height:.8;
  white-space:nowrap;
  color:rgba(36,35,33,.025);
  pointer-events:none;
}

.promise-intro-inner{
  position:relative;
  z-index:2;
  width:min(1180px,90vw);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:76px;
  align-items:center;
}

.promise-intro-image{
  position:relative;
  min-height:520px;
  overflow:hidden;
  background:#d8d5cf;
}

.promise-intro-image > img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
  transform:scale(1.02);
}

.promise-intro-image::after{
  content:"";
  position:absolute;
  inset:18px;
  z-index:2;
  border:1px solid rgba(255,255,255,.30);
  pointer-events:none;
}

.promise-intro-copy{
  min-width:0;
  max-width:560px;
}

.promise-intro-copy .eyebrow{
  margin-bottom:20px;
}

.promise-intro-copy h2{
  margin:0 0 28px;
  font-family:'Baskervville',serif;
  font-size:clamp(3.1rem,4.4vw,4.6rem);
  line-height:.98;
  font-weight:400;
  letter-spacing:-.042em;
  color:var(--home-ink);
}

.promise-intro-copy h2 em{
  display:block;
  margin-top:12px;
  font-size:.58em;
  line-height:1.15;
  font-weight:400;
  font-style:italic;
  letter-spacing:-.02em;
  color:var(--home-gold);
}

.promise-intro-copy .promise-lead{
  max-width:520px;
  margin:0;
  color:#615c56;
  font-family:inherit;
  font-size:.98rem;
  line-height:1.8;
  font-style:normal;
}

/* Keep the existing intro split animation subtle, but do not let it
   interfere with the story layout that follows. */
.promise-intro-image,
.promise-intro-copy{
  transition:
    transform .75s cubic-bezier(.2,.7,.2,1),
    opacity .75s cubic-bezier(.2,.7,.2,1);
}

.promise-intro.is-transitioning .promise-intro-image{
  transform:translateX(-16px);
}

.promise-intro.is-transitioning .promise-intro-copy{
  transform:translateX(16px);
}

.promise-intro.is-exiting .promise-intro-image,
.promise-intro.is-exiting .promise-intro-copy{
  opacity:.35;
}

/* ---------- Scrolling cards / sticky image story ---------- */

.promise-story{
  position:relative;
  width:100%;
  background:#f6f3ee;
  border-top:1px solid rgba(36,35,33,.10);
}

.promise-story-word{
  position:absolute;
  left:50%;
  top:80px;
  transform:translateX(-50%);
  z-index:0;
  font-family:'Baskervville',serif;
  font-size:clamp(7rem,14vw,14rem);
  line-height:.8;
  white-space:nowrap;
  color:rgba(36,35,33,.022);
  pointer-events:none;
}

.promise-story-inner{
  position:relative;
  z-index:1;
  width:min(1180px,90vw);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
  gap:82px;
  align-items:start;
}

.promise-copy-stack{
  min-width:0;
  padding:13vh 0 15vh;
}

.promise-copy-block{
  position:relative;
  min-height:76vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  margin:0;
}

.promise-copy-block::before{
  content:"";
  position:absolute;
  inset:50% -18px auto -18px;
  height:calc(100% - 22vh);
  min-height:330px;
  transform:translateY(-50%);
  z-index:-1;
  background:rgba(255,255,255,.56);
  border:1px solid rgba(36,35,33,.09);
  box-shadow:0 18px 55px rgba(44,39,33,.045);
  opacity:.35;
  transition:
    opacity .45s ease,
    border-color .45s ease,
    transform .45s cubic-bezier(.2,.7,.2,1),
    background .45s ease;
}

.promise-copy-block.is-active::before{
  opacity:1;
  border-color:rgba(159,129,82,.28);
  background:rgba(255,255,255,.88);
  transform:translateY(-50%) translateX(7px);
}

.promise-copy-block > *{
  position:relative;
  z-index:1;
  max-width:480px;
}

.promise-copy-block .promise-number{
  margin:0 0 13px;
  font-size:4.8rem;
  line-height:.82;
  color:rgba(159,129,82,.72);
  transition:color .35s ease, transform .35s ease;
}

.promise-copy-block.is-active .promise-number{
  color:var(--home-gold);
  transform:translateX(5px);
}

.promise-copy-block .promise-kicker{
  margin:0 0 18px;
  color:#857d74;
  font-size:.55rem;
  font-weight:600;
  letter-spacing:2.8px;
  text-transform:uppercase;
}

.promise-copy-block h3{
  margin:0 0 20px;
  font-family:'Baskervville',serif;
  font-size:clamp(2.2rem,3vw,3.15rem);
  line-height:1.04;
  font-weight:400;
  letter-spacing:-.03em;
  color:var(--home-ink);
}

.promise-copy-block > p{
  margin:0;
  color:#625d57;
  font-size:.95rem;
  line-height:1.8;
}

.promise-copy-block .promise-note{
  display:block;
  margin-top:23px;
  padding-top:17px;
  border-top:1px solid rgba(36,35,33,.12);
  font-family:'Baskervville',serif;
  font-size:1rem;
  line-height:1.5;
  font-style:italic;
  color:#777067;
}

.promise-visual-column{
  position:relative;
  align-self:stretch;
  min-width:0;
}

.promise-visual-sticky{
  position:sticky;
  top:12vh;
  width:100%;
  height:76vh;
  max-height:720px;
  min-height:500px;
  margin:12vh 0;
  overflow:hidden;
  background:#d6d1ca;
}

.promise-sticky-image{
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  margin:0;
  overflow:hidden;
  opacity:0;
  transform:scale(1.018);
  transition:
    opacity 1s cubic-bezier(.22,.61,.36,1),
    transform 1.35s cubic-bezier(.2,.7,.2,1);
  pointer-events:none;
  will-change:opacity, transform;
}

.promise-sticky-image.is-active{
  z-index:2;
  opacity:1;
  transform:scale(1);
  pointer-events:auto;
}

.promise-sticky-image .promise-image-overlay,
.promise-sticky-image .promise-image-caption{
  transition:opacity .85s ease, transform 1s cubic-bezier(.2,.7,.2,1);
}

.promise-sticky-image:not(.is-active) .promise-image-overlay,
.promise-sticky-image:not(.is-active) .promise-image-caption{
  opacity:.82;
}

.promise-sticky-image:not(.is-active) .promise-image-caption{
  transform:translateY(7px);
}

.promise-sticky-image.is-active .promise-image-overlay,
.promise-sticky-image.is-active .promise-image-caption{
  opacity:1;
  transform:translateY(0);
}

.promise-sticky-image > img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
}

.promise-sticky-image::after{
  content:"";
  position:absolute;
  inset:18px;
  z-index:2;
  border:1px solid rgba(255,255,255,.30);
  pointer-events:none;
}

.promise-sticky-image .promise-image-caption,
.promise-intro-image .promise-image-caption{
  position:absolute;
  left:28px;
  right:28px;
  bottom:27px;
  z-index:3;
  color:#fff;
}

.promise-sticky-image .promise-image-caption span,
.promise-intro-image .promise-image-caption span{
  display:block;
  margin-bottom:8px;
  color:#ead0a5;
  font-size:.55rem;
  font-weight:600;
  letter-spacing:2.7px;
  text-transform:uppercase;
}

.promise-sticky-image .promise-image-caption p,
.promise-intro-image .promise-image-caption p{
  max-width:390px;
  margin:0;
  font-family:'Baskervville',serif;
  font-size:1.35rem;
  line-height:1.38;
  font-style:italic;
  color:#fff;
  text-shadow:0 2px 15px rgba(0,0,0,.45);
}

.promise-progress{
  position:sticky;
  left:0;
  right:0;
  bottom:0;
  z-index:8;
  width:100%;
  height:2px;
  background:rgba(36,35,33,.09);
}

.promise-progress span{
  display:block;
  width:0;
  height:100%;
  background:var(--home-gold);
}

/* ---------- Laptop-height tuning ---------- */

@media(max-height:820px) and (min-width:901px){
  .promise-intro{
    padding-top:88px;
    padding-bottom:76px;
  }

  .promise-intro-image{
    min-height:440px;
  }

  .promise-story-inner{
    gap:66px;
  }

  .promise-copy-stack{
    padding-top:10vh;
    padding-bottom:12vh;
  }

  .promise-copy-block{
    min-height:78vh;
  }

  .promise-visual-sticky{
    top:9vh;
    height:82vh;
    min-height:430px;
    margin:9vh 0;
  }
}

/* ---------- Tablet / mobile: stack each card with its image ---------- */

@media(max-width:900px){
  .promise-intro{
    padding:88px 0 72px;
  }

  .promise-intro-inner{
    width:min(700px,88vw);
    grid-template-columns:1fr;
    gap:38px;
  }

  .promise-intro-image{
    order:2;
    min-height:0;
    aspect-ratio:4/5;
  }

  .promise-intro-copy{
    order:1;
    max-width:650px;
  }

  .promise-intro.is-transitioning .promise-intro-image,
  .promise-intro.is-transitioning .promise-intro-copy,
  .promise-intro.is-exiting .promise-intro-image,
  .promise-intro.is-exiting .promise-intro-copy{
    transform:none;
    opacity:1;
  }

  .promise-story-word,
  .promise-progress{
    display:none;
  }

  .promise-story-inner{
    width:min(700px,88vw);
    display:block;
  }

  .promise-copy-stack{
    padding:56px 0 20px;
  }

  .promise-copy-block{
    min-height:0;
    margin:0 0 28px;
    padding:42px 26px;
    background:#fff;
    border:1px solid rgba(36,35,33,.09);
  }

  .promise-copy-block::before{
    display:none;
  }

  .promise-copy-block > *{
    max-width:none;
  }

  .promise-copy-block .promise-number{
    font-size:4rem;
  }

  .promise-visual-column{
    display:none;
  }
}

@media(max-width:600px){
  .promise-intro{
    padding-top:74px;
    padding-bottom:60px;
  }

  .promise-intro-copy h2{
    font-size:2.8rem;
  }

  .promise-copy-stack{
    padding-top:40px;
  }

  .promise-copy-block{
    padding:34px 22px;
  }

  .promise-copy-block h3{
    font-size:2.25rem;
  }
}

@media(prefers-reduced-motion:reduce){
  .promise-intro-image,
  .promise-intro-copy,
  .promise-copy-block::before,
  .promise-copy-block .promise-number,
  .promise-sticky-image{
    transition:none !important;
  }
}


/* =========================================================
   PROMISE STORY — FINAL CINEMATIC PASS
   2026-09-17

   Goals:
   - remove card crowding / overflow
   - make the image the emotional focal point
   - stagger active text gently
   - cinematic cross-dissolve with a restrained push/pull
   - subtle scroll-linked image drift
   - changing editorial background word
   ========================================================= */

@media(min-width:901px){

  .promise-story{
    --promise-ease:cubic-bezier(.22,.61,.36,1);
  }

  .promise-story-inner{
    grid-template-columns:minmax(0,.80fr) minmax(0,1.20fr);
    gap:clamp(68px,6vw,96px);
  }

  .promise-copy-stack{
    padding:12vh 0 15vh;
  }

  .promise-copy-block{
    min-height:76vh;
    padding:clamp(64px,8vh,88px) 0;
    justify-content:center;
    overflow:visible;
  }

  /* The panel follows the chapter itself, so content can never bleed out. */
  .promise-copy-block::before{
    inset:8vh -24px;
    height:auto;
    min-height:0;
    transform:none;
    border-color:rgba(36,35,33,.065);
    background:rgba(255,255,255,.43);
    box-shadow:0 18px 55px rgba(44,39,33,.028);
    opacity:.55;
    transition:
      opacity .65s var(--promise-ease),
      border-color .65s var(--promise-ease),
      background .65s var(--promise-ease),
      box-shadow .65s var(--promise-ease);
  }

  .promise-copy-block.is-active::before{
    opacity:1;
    transform:none;
    border-color:rgba(159,129,82,.20);
    background:rgba(255,255,255,.76);
    box-shadow:0 24px 70px rgba(44,39,33,.045);
  }

  .promise-copy-block > *{
    max-width:450px;
    transform:translateY(10px);
    opacity:.62;
    transition:
      opacity .62s var(--promise-ease),
      transform .78s var(--promise-ease),
      color .45s ease;
  }

  .promise-copy-block.is-before > *{
    transform:translateY(-10px);
  }

  .promise-copy-block.is-active > *{
    opacity:1;
    transform:translateY(0);
  }

  /* Tiny stagger: felt rather than noticed. */
  .promise-copy-block.is-active .promise-number{ transition-delay:0ms; }
  .promise-copy-block.is-active .promise-kicker{ transition-delay:55ms; }
  .promise-copy-block.is-active h3{ transition-delay:105ms; }
  .promise-copy-block.is-active > p{ transition-delay:155ms; }
  .promise-copy-block.is-active .promise-note{ transition-delay:205ms; }

  .promise-copy-block .promise-number{
    margin:0 0 10px;
    font-size:clamp(3.8rem,4.2vw,4.45rem);
    line-height:.82;
  }

  .promise-copy-block.is-active .promise-number{
    transform:translateY(0);
  }

  .promise-copy-block .promise-kicker{
    margin-bottom:15px;
    font-size:.52rem;
    letter-spacing:2.65px;
  }

  .promise-copy-block h3{
    max-width:430px;
    margin-bottom:17px;
    font-size:clamp(2.05rem,2.75vw,2.85rem);
    line-height:1.035;
  }

  .promise-copy-block > p{
    max-width:430px;
    font-size:.91rem;
    line-height:1.68;
  }

  .promise-copy-block .promise-note{
    max-width:420px;
    margin-top:19px;
    padding-top:15px;
    font-size:.94rem;
    line-height:1.43;
  }

  /* Editorial ghost word changes with the chapter. */
  .promise-story-word{
    top:72px;
    font-size:clamp(7rem,13.5vw,13rem);
    color:rgba(36,35,33,.025);
    transition:
      opacity .34s ease,
      transform .5s var(--promise-ease);
  }

  .promise-story-word.is-changing{
    opacity:0;
    transform:translateX(-50%) translateY(-8px);
  }

  /* Keep the frame still. Only the memory inside it moves. */
  .promise-visual-sticky{
    top:11vh;
    height:78vh;
    max-height:740px;
    min-height:500px;
    margin:11vh 0;
    box-shadow:0 28px 80px rgba(38,34,30,.075);
  }

  .promise-sticky-image{
    z-index:1;
    opacity:0;
    transform:none;
    transition:opacity 1.05s var(--promise-ease);
    will-change:opacity;
  }

  .promise-sticky-image.is-leaving{
    z-index:2;
    opacity:0;
  }

  .promise-sticky-image.is-active{
    z-index:3;
    opacity:1;
    transform:none;
  }

  .promise-sticky-image > img{
    --promise-drift:0px;
    --promise-zoom:1.018;
    transform:
      translate3d(0,var(--promise-drift),0)
      scale(var(--promise-zoom));
    transform-origin:center center;
    transition:transform .22s linear;
    will-change:transform;
  }

  /* Incoming image settles; outgoing image gently breathes away. */
  .promise-sticky-image:not(.is-active) > img{
    transform:translate3d(0,var(--promise-drift),0) scale(1.035);
  }

  .promise-sticky-image.is-leaving > img{
    transform:translate3d(0,var(--promise-drift),0) scale(1.045);
    transition:transform 1.2s var(--promise-ease);
  }

  .promise-sticky-image .promise-image-caption{
    opacity:0;
    transform:translateY(11px);
    transition:
      opacity .7s ease .22s,
      transform .85s var(--promise-ease) .18s;
  }

  .promise-sticky-image.is-active .promise-image-caption{
    opacity:1;
    transform:translateY(0);
  }

  .promise-sticky-image.is-leaving .promise-image-caption{
    opacity:0;
    transform:translateY(-7px);
    transition-delay:0ms;
  }

  .promise-sticky-image .promise-image-overlay{
    opacity:.94;
    transition:opacity .95s ease;
  }

  .promise-sticky-image.is-active .promise-image-overlay{
    opacity:1;
  }

  .promise-sticky-image::after{
    inset:19px;
    border-color:rgba(255,255,255,.27);
  }

  .promise-sticky-image .promise-image-caption span{
    margin-bottom:6px;
    font-size:.50rem;
    letter-spacing:2.5px;
  }

  .promise-sticky-image .promise-image-caption p{
    max-width:360px;
    font-size:1.20rem;
    line-height:1.35;
  }
}

/* Short laptops: preserve breathing room without losing content. */
@media(max-height:820px) and (min-width:901px){
  .promise-copy-block{
    min-height:80vh;
    padding:56px 0;
  }

  .promise-copy-block::before{
    inset:5vh -20px;
  }

  .promise-copy-block .promise-number{
    font-size:3.55rem;
  }

  .promise-copy-block h3{
    font-size:clamp(1.85rem,2.45vw,2.45rem);
    margin-bottom:14px;
  }

  .promise-copy-block > p{
    font-size:.87rem;
    line-height:1.58;
  }

  .promise-copy-block .promise-note{
    margin-top:15px;
    padding-top:13px;
    font-size:.89rem;
  }

  .promise-visual-sticky{
    top:8vh;
    height:84vh;
    margin:8vh 0;
  }
}

/* Mobile remains a calm stacked reading experience. */
@media(max-width:900px){
  .promise-copy-block{
    overflow:hidden;
  }

  .promise-copy-block h3{
    line-height:1.04;
  }

  .promise-copy-block .promise-note{
    margin-bottom:0;
  }
}

@media(prefers-reduced-motion:reduce){
  .promise-story-word,
  .promise-copy-block > *,
  .promise-sticky-image,
  .promise-sticky-image > img,
  .promise-sticky-image .promise-image-caption,
  .promise-sticky-image .promise-image-overlay{
    transition:none !important;
    transform:none !important;
  }
}



   WEDDING FILMS PAGE — 2026-09-17
   ========================================================= */

.films-page{
  background:var(--home-cream,#f4f2ed);
  color:var(--home-ink,#242321);
}

.films-page .films-hero,
.films-page .films-intro,
.films-page .films-story,
.films-page .films-craft,
.films-page .films-review-feature,
.films-page .films-approach,
.films-page .films-locations,
.films-page .films-cta{
  position:relative;
  width:100vw;
  max-width:none;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  box-sizing:border-box;
}

.films-page .films-hero *,
.films-page .films-intro *,
.films-page .films-story *,
.films-page .films-craft *,
.films-page .films-review-feature *,
.films-page .films-approach *,
.films-page .films-locations *,
.films-page .films-cta *{
  box-sizing:border-box;
}

/* HERO */

.films-hero{
  min-height:calc(100svh - var(--nav-height,0px));
  padding:88px 5vw 72px;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:var(--home-ink);
  color:#fff;
}

.films-hero::before{
  content:"WATCH";
  position:absolute;
  left:-2vw;
  bottom:-7vw;
  font-family:'Baskervville',serif;
  font-size:clamp(11rem,23vw,23rem);
  line-height:.8;
  font-style:italic;
  color:rgba(255,255,255,.018);
  pointer-events:none;
}

.films-hero-inner{
  position:relative;
  z-index:2;
  width:min(1220px,90vw);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:88px;
  align-items:center;
}

.films-hero-copy{
  max-width:590px;
}

.films-hero-copy .eyebrow{
  margin-bottom:20px;
  color:#d2b17c;
}

.films-hero h1{
  max-width:650px;
  margin:0;
  font-family:'Baskervville',serif;
  font-size:clamp(4.25rem,6vw,6.4rem);
  line-height:.9;
  font-weight:400;
  letter-spacing:-.052em;
  color:#fff;
}

.films-hero h1 em{
  display:block;
  margin-top:21px;
  font-size:.43em;
  line-height:1.15;
  font-weight:400;
  font-style:italic;
  letter-spacing:-.02em;
  color:rgba(255,255,255,.78);
}

.films-hero-lead{
  max-width:570px;
  margin:28px 0 0;
  color:rgba(255,255,255,.72);
  font-size:.96rem;
  line-height:1.82;
}

.films-hero-actions{
  margin-top:33px;
  display:flex;
  gap:12px;
}

.films-hero-actions .home-hero-button{
  min-width:215px;
}

.films-hero-proof{
  max-width:560px;
  margin-top:36px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.14);
}

.films-hero-proof > span{
  display:block;
  margin-bottom:10px;
  color:#efc36f;
  font-size:.72rem;
  letter-spacing:4px;
}

.films-hero-proof p{
  margin:0;
  font-family:'Baskervville',serif;
  font-size:1.08rem;
  line-height:1.48;
  font-style:italic;
  color:rgba(255,255,255,.94);
}

.films-hero-proof small{
  display:block;
  margin-top:9px;
  color:rgba(255,255,255,.52);
  font-size:.5rem;
  letter-spacing:2.2px;
  text-transform:uppercase;
}

.films-hero-visual{
  position:relative;
  width:100%;
  height:min(70vh,690px);
  min-height:520px;
}

.films-hero-frame{
  position:absolute;
  display:block;
  overflow:hidden;
  color:#fff;
  text-decoration:none;
  box-shadow:0 24px 65px rgba(0,0,0,.22);
}

.films-hero-frame-main{
  left:0;
  top:0;
  width:72%;
  height:83%;
  z-index:1;
}

.films-hero-frame-small{
  right:0;
  bottom:0;
  width:49%;
  height:47%;
  z-index:3;
  border:9px solid var(--home-ink);
}

.films-hero-frame img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .9s cubic-bezier(.2,.7,.2,1);
}

.films-hero-frame-main img{
  object-position:center center;
}

.films-hero-frame-small img{
  object-position:center center;
}

.films-hero-frame:hover img{
  transform:scale(1.035);
}

.films-hero-frame-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.03) 62%);
}

.films-hero-frame::after{
  content:"";
  position:absolute;
  inset:15px;
  border:1px solid rgba(255,255,255,.24);
  pointer-events:none;
}

.films-hero-frame-copy{
  position:absolute;
  left:27px;
  right:27px;
  bottom:26px;
  z-index:2;
}

.films-hero-frame-copy small,
.films-hero-frame-copy strong,
.films-hero-frame-copy em{
  display:block;
}

.films-hero-frame-copy small{
  margin-bottom:7px;
  color:#e4c99c;
  font-size:.5rem;
  font-weight:600;
  letter-spacing:2.2px;
  text-transform:uppercase;
}

.films-hero-frame-copy strong{
  font-family:'Baskervville',serif;
  font-size:1.8rem;
  line-height:1.05;
  font-weight:400;
}

.films-hero-frame-copy em{
  margin-top:5px;
  color:rgba(255,255,255,.72);
  font-family:'Baskervville',serif;
  font-size:.95rem;
}

.films-hero-frame-small .films-hero-frame-copy strong{
  font-size:1.35rem;
}

.films-hero-visual-label{
  position:absolute;
  right:3%;
  top:4%;
  z-index:4;
  text-align:right;
}

.films-hero-visual-label span,
.films-hero-visual-label strong{
  display:block;
}

.films-hero-visual-label span{
  color:rgba(255,255,255,.45);
  font-size:.5rem;
  letter-spacing:2.2px;
  text-transform:uppercase;
}

.films-hero-visual-label strong{
  max-width:210px;
  margin-top:6px;
  font-family:'Baskervville',serif;
  font-size:1rem;
  line-height:1.35;
  font-weight:400;
  font-style:italic;
  color:rgba(255,255,255,.82);
}

.films-hero-scroll{
  position:absolute;
  left:50%;
  bottom:20px;
  transform:translateX(-50%);
  z-index:4;
  display:flex;
  align-items:center;
  gap:10px;
  color:rgba(255,255,255,.44);
  font-size:.47rem;
  letter-spacing:2px;
  text-transform:uppercase;
}

.films-hero-scroll span{
  width:35px;
  height:1px;
  background:rgba(255,255,255,.35);
}

/* INTRO */

.films-intro{
  padding:120px 5vw 110px;
  overflow:hidden;
  background:#fff;
}

.films-intro::before{
  content:"STORIES";
  position:absolute;
  left:50%;
  top:33px;
  transform:translateX(-50%);
  font-family:'Baskervville',serif;
  font-size:clamp(8rem,16vw,16rem);
  line-height:1;
  font-style:italic;
  color:rgba(36,35,33,.022);
  pointer-events:none;
}

.films-intro-inner{
  position:relative;
  z-index:1;
  width:min(1000px,90vw);
  margin:0 auto;
  text-align:center;
}

.films-intro .eyebrow{
  margin-bottom:20px;
}

.films-intro h2{
  max-width:850px;
  margin:0 auto;
  font-family:'Baskervville',serif;
  font-size:clamp(3.1rem,4.8vw,4.7rem);
  line-height:.99;
  font-weight:400;
  letter-spacing:-.04em;
}

.films-intro h2 em{
  display:block;
  margin-top:10px;
  font-size:.63em;
  line-height:1.14;
  font-weight:400;
  font-style:italic;
  color:#706a62;
}

.films-intro > .films-intro-inner > p{
  max-width:690px;
  margin:27px auto 0;
  color:#625e59;
  font-size:.95rem;
  line-height:1.82;
}

.films-jump-links{
  max-width:880px;
  margin:55px auto 0;
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--home-line);
  border-bottom:1px solid var(--home-line);
}

.films-jump-links a{
  position:relative;
  padding:27px 28px;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto auto;
  column-gap:18px;
  text-align:left;
  color:var(--home-ink);
  text-decoration:none;
  transition:background .3s ease;
}

.films-jump-links a + a{
  border-left:1px solid var(--home-line);
}

.films-jump-links a:hover{
  background:var(--home-cream);
}

.films-jump-links span{
  grid-row:1 / span 2;
  font-family:'Baskervville',serif;
  font-size:2.5rem;
  line-height:.9;
  color:var(--home-gold);
}

.films-jump-links strong{
  font-family:'Baskervville',serif;
  font-size:1.3rem;
  font-weight:400;
}

.films-jump-links small{
  margin-top:5px;
  color:#847d74;
  font-size:.53rem;
  letter-spacing:1.7px;
  text-transform:uppercase;
}

/* STORY */

.films-story{
  padding:125px 5vw 120px;
  overflow:hidden;
  scroll-margin-top:40px;
}

.films-story-light{
  background:#faf9f6;
}

.films-story-stone{
  background:#e9e5de;
  border-top:1px solid var(--home-line);
  border-bottom:1px solid var(--home-line);
}

.films-story-inner{
  width:min(1180px,90vw);
  margin:0 auto;
}

.films-story-heading{
  margin-bottom:50px;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:95px;
  align-items:end;
}

.films-story-number{
  display:block;
  margin-bottom:13px;
  font-family:'Baskervville',serif;
  font-size:5.6rem;
  line-height:.8;
  color:rgba(159,129,82,.34);
}

.films-story-heading .eyebrow{
  margin-bottom:16px;
}

.films-story-heading h2{
  margin:0;
  font-family:'Baskervville',serif;
  font-size:clamp(3.7rem,5vw,5.2rem);
  line-height:.95;
  font-weight:400;
  letter-spacing:-.045em;
}

.films-story-venue{
  margin:17px 0 0;
  color:var(--home-gold);
  font-size:.62rem;
  font-weight:600;
  letter-spacing:2.2px;
  text-transform:uppercase;
}

.films-story-intro{
  max-width:530px;
}

.films-story-tone{
  margin:0 0 18px !important;
  font-family:'Baskervville',serif;
  font-size:1.68rem !important;
  line-height:1.4 !important;
  font-style:italic;
  color:#35312d !important;
}

.films-story-intro p:last-child{
  margin:0;
  color:#625d57;
  font-size:.95rem;
  line-height:1.83;
}

.films-player-wrap{
  position:relative;
}

.films-player{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  display:block;
  padding:0;
  overflow:hidden;
  border:0;
  cursor:pointer;
  background:#111;
  color:#fff;
  text-align:left;
  box-shadow:0 30px 70px rgba(41,36,31,.12);
}

.films-player > img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform 1.1s cubic-bezier(.2,.7,.2,1),filter .5s ease;
}

.films-player:hover > img{
  transform:scale(1.025);
  filter:saturate(.92);
}

.films-player-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(to top,rgba(0,0,0,.56),rgba(0,0,0,.03) 60%),
    linear-gradient(to right,rgba(0,0,0,.18),transparent 55%);
}

.films-player::after{
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(255,255,255,.25);
  pointer-events:none;
}

.films-player-centre{
  position:absolute;
  left:50%;
  top:50%;
  z-index:3;
  transform:translate(-50%,-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.films-player-play{
  width:78px;
  height:78px;
  margin-bottom:18px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.65);
  border-radius:50%;
  background:rgba(25,25,25,.18);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  font-size:1rem;
  text-indent:3px;
  transition:transform .3s ease,background .3s ease;
}

.films-player:hover .films-player-play{
  transform:scale(1.07);
  background:rgba(255,255,255,.16);
}

.films-player-centre strong{
  font-family:'Baskervville',serif;
  font-size:1.65rem;
  font-weight:400;
}

.films-player-centre small{
  margin-top:8px;
  color:rgba(255,255,255,.7);
  font-size:.5rem;
  letter-spacing:2px;
  text-transform:uppercase;
}

.films-player-corner{
  position:absolute;
  right:29px;
  bottom:26px;
  z-index:3;
  color:rgba(255,255,255,.72);
  font-size:.48rem;
  letter-spacing:1.7px;
  text-transform:uppercase;
}

.films-player.is-playing{
  cursor:default;
}

.films-player.is-playing::after{
  display:none;
}

.films-player iframe{
  position:absolute;
  inset:0;
  z-index:5;
  width:100%;
  height:100%;
  border:0;
}

.films-story-after{
  margin-top:50px;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:90px;
  align-items:start;
}

.films-story-copy{
  max-width:650px;
}

.films-story-copy .eyebrow{
  margin-bottom:15px;
}

.films-story-copy p{
  margin:0;
  color:#625d57;
  font-size:.94rem;
  line-height:1.85;
}

.films-story-quote,
.films-story-review{
  padding:27px 0 0 28px;
  border-left:1px solid rgba(36,35,33,.16);
}

.films-story-quote blockquote,
.films-story-review blockquote{
  margin:0 0 13px;
  font-family:'Baskervville',serif;
  font-size:1.32rem;
  line-height:1.52;
  font-style:italic;
  color:#35312d;
}

.films-story-quote span,
.films-story-review > span{
  color:#837c74;
  font-size:.52rem;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
}

.films-story-stars{
  margin-bottom:14px;
  color:#b89562;
  font-size:.72rem;
  letter-spacing:4px;
}

.films-story-link-row{
  margin-top:40px;
  padding-top:25px;
  border-top:1px solid rgba(36,35,33,.12);
}

.films-text-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--home-ink);
  text-decoration:none;
  font-size:.62rem;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
}

.films-text-link span{
  transition:transform .3s ease;
}

.films-text-link:hover span{
  transform:translateX(5px);
}

/* CRAFT */

.films-craft{
  padding:125px 5vw;
  overflow:hidden;
  background:#fff;
}

.films-craft::before{
  content:"CRAFT";
  position:absolute;
  right:-2%;
  top:12px;
  font-family:'Baskervville',serif;
  font-size:clamp(10rem,20vw,19rem);
  font-style:italic;
  color:rgba(36,35,33,.02);
  pointer-events:none;
}

.films-craft-inner{
  position:relative;
  z-index:1;
  width:min(1120px,90vw);
  margin:0 auto;
}

.films-craft-heading{
  max-width:720px;
  margin-bottom:70px;
}

.films-craft-heading .eyebrow{
  margin-bottom:20px;
}

.films-craft-heading h2{
  margin:0;
  font-family:'Baskervville',serif;
  font-size:clamp(3rem,4.5vw,4.5rem);
  line-height:1;
  font-weight:400;
  letter-spacing:-.04em;
}

.films-craft-heading h2 em{
  display:block;
  margin-top:10px;
  font-size:.64em;
  line-height:1.15;
  font-weight:400;
  font-style:italic;
  color:#706a62;
}

.films-craft-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--home-line);
  border-bottom:1px solid var(--home-line);
}

.films-craft-grid article{
  min-height:270px;
  padding:35px 35px 40px 0;
}

.films-craft-grid article + article{
  padding-left:35px;
  border-left:1px solid var(--home-line);
}

.films-craft-grid article > span{
  display:block;
  margin-bottom:35px;
  font-family:'Baskervville',serif;
  font-size:2.7rem;
  line-height:.9;
  color:rgba(159,129,82,.65);
}

.films-craft-grid h3{
  margin:0 0 15px;
  font-family:'Baskervville',serif;
  font-size:1.85rem;
  font-weight:400;
}

.films-craft-grid p{
  margin:0;
  color:#625d57;
  font-size:.88rem;
  line-height:1.75;
}

/* REVIEW */

.films-review-feature{
  padding:110px 5vw;
  overflow:hidden;
  background:var(--home-ink);
  color:#fff;
  text-align:center;
}

.films-review-feature::before{
  content:"“";
  position:absolute;
  left:3%;
  top:-95px;
  font-family:'Baskervville',serif;
  font-size:24rem;
  line-height:1;
  color:rgba(255,255,255,.025);
  pointer-events:none;
}

.films-review-feature-inner{
  position:relative;
  z-index:1;
  max-width:920px;
  margin:0 auto;
}

.films-review-feature .eyebrow{
  color:var(--home-gold);
}

.films-review-stars{
  margin:22px 0 29px;
  color:#efc36f;
  font-size:.9rem;
  letter-spacing:6px;
}

.films-review-feature blockquote{
  margin:0 auto 28px;
  font-family:'Baskervville',serif;
  font-size:clamp(2rem,3.6vw,3.2rem);
  line-height:1.24;
  font-weight:400;
  font-style:italic;
  color:#fff;
}

.films-review-feature p{
  margin:0;
  color:rgba(255,255,255,.6);
  font-size:.6rem;
  letter-spacing:2.3px;
  text-transform:uppercase;
}

/* APPROACH */

.films-approach{
  padding:125px 5vw;
  overflow:hidden;
  background:#e9e5de;
}

.films-approach::before{
  content:"STORY";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  font-family:'Baskervville',serif;
  font-size:clamp(10rem,21vw,20rem);
  font-style:italic;
  color:rgba(36,35,33,.024);
  pointer-events:none;
}

.films-approach-inner{
  position:relative;
  z-index:1;
  width:min(1100px,90vw);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:100px;
  align-items:start;
}

.films-approach-heading .eyebrow{
  margin-bottom:20px;
}

.films-approach-heading h2{
  margin:0;
  font-family:'Baskervville',serif;
  font-size:clamp(3.2rem,4.5vw,4.6rem);
  line-height:.99;
  font-weight:400;
  letter-spacing:-.04em;
}

.films-approach-heading h2 em{
  display:block;
  margin-top:10px;
  font-size:.64em;
  line-height:1.16;
  font-weight:400;
  font-style:italic;
  color:#706a62;
}

.films-approach-copy{
  max-width:610px;
}

.films-approach-lead{
  margin:0 0 25px;
  font-family:'Baskervville',serif;
  font-size:1.45rem;
  line-height:1.48;
  font-style:italic;
  color:#34312e;
}

.films-approach-copy > p:not(.films-approach-lead){
  margin:0 0 19px;
  color:#5e5a56;
  font-size:.95rem;
  line-height:1.82;
}

.films-approach-points{
  margin-top:30px;
  padding-top:24px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px 30px;
  border-top:1px solid rgba(36,35,33,.13);
}

.films-approach-points span{
  position:relative;
  padding-left:20px;
  color:#55514c;
  font-size:.81rem;
}

.films-approach-points span::before{
  content:"";
  position:absolute;
  left:0;
  top:.7em;
  width:8px;
  height:1px;
  background:var(--home-gold);
}

/* LOCATIONS */

.films-locations{
  padding:105px 5vw;
  background:#fff;
  text-align:center;
}

.films-locations-inner{
  width:min(900px,90vw);
  margin:0 auto;
}

.films-locations .eyebrow{
  margin-bottom:18px;
}

.films-locations h2{
  margin:0;
  font-family:'Baskervville',serif;
  font-size:clamp(2.9rem,4.2vw,4.1rem);
  line-height:1.03;
  font-weight:400;
  letter-spacing:-.035em;
}

.films-locations h2 em{
  display:block;
  margin-top:8px;
  font-size:.67em;
  line-height:1.15;
  font-weight:400;
  font-style:italic;
  color:#706a62;
}

.films-locations p{
  max-width:620px;
  margin:23px auto 0;
  color:#625e59;
  font-size:.92rem;
  line-height:1.8;
}

.films-location-links{
  margin-top:35px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:9px;
}

.films-location-links a{
  padding:13px 18px;
  border:1px solid rgba(36,35,33,.16);
  color:#514d48;
  text-decoration:none;
  font-size:.58rem;
  font-weight:600;
  letter-spacing:1.7px;
  text-transform:uppercase;
  transition:background .3s ease,color .3s ease,border-color .3s ease;
}

.films-location-links a:hover{
  background:var(--home-ink);
  border-color:var(--home-ink);
  color:#fff;
}

/* CTA */

.films-cta{
  padding:125px 5vw;
  overflow:hidden;
  background:var(--home-ink);
  color:#fff;
  text-align:center;
}

.films-cta::before{
  content:"YOURS";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  font-family:'Baskervville',serif;
  font-size:clamp(10rem,22vw,21rem);
  font-style:italic;
  color:rgba(255,255,255,.022);
  pointer-events:none;
}

.films-cta-inner{
  position:relative;
  z-index:1;
  max-width:820px;
  margin:0 auto;
}

.films-cta .eyebrow{
  margin-bottom:19px;
  color:#c9a876;
}

.films-cta h2{
  margin:0;
  font-family:'Baskervville',serif;
  font-size:clamp(3.2rem,5vw,4.8rem);
  line-height:1;
  font-weight:400;
  letter-spacing:-.04em;
  color:#fff;
}

.films-cta h2 em{
  display:block;
  margin-top:11px;
  font-size:.62em;
  line-height:1.15;
  font-weight:400;
  font-style:italic;
  color:rgba(255,255,255,.72);
}

.films-cta p{
  max-width:650px;
  margin:28px auto 34px;
  color:rgba(255,255,255,.68);
  font-size:.94rem;
  line-height:1.8;
}

.films-cta-actions{
  display:flex;
  justify-content:center;
  gap:12px;
}

.films-cta-actions .home-hero-button{
  min-width:220px;
}

@media(max-width:1000px){
  .films-hero-inner{
    gap:55px;
  }

  .films-story-heading,
  .films-story-after,
  .films-approach-inner{
    gap:55px;
  }
}

@media(max-width:900px){
  .films-hero{
    padding:105px 0 70px;
    min-height:auto;
  }

  .films-hero-inner{
    width:min(700px,88vw);
    grid-template-columns:1fr;
    gap:52px;
  }

  .films-hero-copy{
    max-width:650px;
  }

  .films-hero-visual{
    height:auto;
    min-height:0;
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:10px;
  }

  .films-hero-frame,
  .films-hero-frame-main,
  .films-hero-frame-small{
    position:relative;
    inset:auto;
    width:100%;
    height:auto;
    aspect-ratio:4/5;
    border:0;
  }

  .films-hero-visual-label,
  .films-hero-scroll{
    display:none;
  }

  .films-intro,
  .films-story,
  .films-craft,
  .films-approach{
    padding:95px 0;
  }

  .films-intro-inner,
  .films-story-inner,
  .films-craft-inner,
  .films-approach-inner{
    width:min(700px,88vw);
  }

  .films-story-heading,
  .films-story-after,
  .films-approach-inner{
    grid-template-columns:1fr;
    gap:35px;
  }

  .films-craft-grid{
    grid-template-columns:1fr;
  }

  .films-craft-grid article,
  .films-craft-grid article + article{
    min-height:0;
    padding:30px 0;
    border-left:0;
    border-top:1px solid var(--home-line);
  }

  .films-craft-grid article:first-child{
    border-top:0;
  }
}

@media(max-width:600px){
  .films-hero{
    padding-top:85px;
  }

  .films-hero h1{
    font-size:3.3rem;
  }

  .films-hero h1 em{
    font-size:.5em;
  }

  .films-hero-actions,
  .films-cta-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }

  .films-hero-actions .home-hero-button,
  .films-cta-actions .home-hero-button{
    min-width:0;
    width:100%;
    padding:0 9px;
    font-size:.52rem;
    letter-spacing:1.1px;
  }

  .films-hero-visual{
    grid-template-columns:1fr 1fr;
  }

  .films-hero-frame-copy{
    left:17px;
    right:17px;
    bottom:17px;
  }

  .films-hero-frame-copy strong,
  .films-hero-frame-small .films-hero-frame-copy strong{
    font-size:1.15rem;
  }

  .films-hero-frame-copy em{
    display:none;
  }

  .films-intro,
  .films-story,
  .films-craft,
  .films-approach{
    padding:78px 0;
  }

  .films-intro h2,
  .films-craft-heading h2,
  .films-approach-heading h2,
  .films-locations h2,
  .films-cta h2{
    font-size:2.7rem;
  }

  .films-jump-links{
    grid-template-columns:1fr;
  }

  .films-jump-links a + a{
    border-left:0;
    border-top:1px solid var(--home-line);
  }

  .films-story-heading h2{
    font-size:3rem;
  }

  .films-story-number{
    font-size:4.3rem;
  }

  .films-player-centre strong{
    font-size:1.35rem;
  }

  .films-player-play{
    width:64px;
    height:64px;
  }

  .films-player-corner{
    display:none;
  }

  .films-story-quote,
  .films-story-review{
    padding-left:20px;
  }

  .films-approach-points{
    grid-template-columns:1fr;
  }

  .films-review-feature{
    padding:82px 6vw;
  }

  .films-locations{
    padding:80px 6vw;
  }

  .films-location-links{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .films-cta{
    padding:90px 6vw;
  }
}

@media(prefers-reduced-motion:reduce){
  .films-hero-frame img,
  .films-player > img,
  .films-player-play,
  .films-text-link span,
  .films-location-links a{
    transition:none !important;
  }
}
