/* Homepage system: shared type, colour and editorial rhythm. */
@font-face{font-family:InstrumentSans;src:url('../source/home/assets/instrument-sans-variable.ttf') format('truetype');font-weight:400 700;font-style:normal;font-display:swap}
:root{
  --section-space:96px;
  --heading-gap:48px;
  --split-gap:clamp(40px,5vw,80px);
  --copy-size:18px;
  --small-size:14px;
  --label-size:12px;
  --heading-size:clamp(42px,4.2vw,64px);
  --entry-size:clamp(28px,2.3vw,34px);
}
body{font-family:var(--sans);font-size:var(--copy-size);line-height:1.65}
button,input,select,textarea{font-family:var(--sans)}

/* A single supporting-copy role, rather than a new size in every section. */
.section-intro,.studio-copy p,.principles p,
.specialty-copy>p:not(.eyebrow):not(.lead),.cinema-description p,
.team-copy>p:not(.eyebrow),.chapter-content p,
.traditions-copy>p:not(.eyebrow),.tradition-grid p,.inclusions-grid p,
.awards-intro>p:last-child,.awards-grid p,.journal-copy>p:not(.eyebrow),.closing-bottom p{
  font-family:var(--sans);font-size:var(--copy-size);font-weight:400;line-height:1.65;letter-spacing:0;
}
.eyebrow,.selected .eyebrow,.specialty-copy .eyebrow,.press-strip .eyebrow,.footer .eyebrow{
  font-family:var(--sans);font-size:var(--label-size);line-height:1.5;letter-spacing:.13em;font-weight:500;
}
main .section .eyebrow{color:var(--wine)}
.hero .eyebrow,main .included .eyebrow{color:var(--paper)}
main .section h2,main .section .section-heading h2{font-family:var(--serif);font-size:var(--heading-size);line-height:1.12;letter-spacing:-.04em}
main .section h2 em{color:var(--wine)}
main .included h2 em{color:inherit}
main .selected h2{font-size:clamp(32px,3.1vw,48px);line-height:1.14}
main .closing h2{font-size:clamp(45px,5.7vw,90px)}
.couple p,.quote-author p,.short-quote figcaption,.media-caption{font-family:var(--sans);font-size:var(--small-size);line-height:1.65}
.selected .selected-caption,.weekend-caption{font-family:var(--sans);font-size:18px;line-height:1.65}
.event-tab,.tradition-grid h3{font-family:var(--serif);font-size:var(--entry-size);font-weight:400;line-height:1.2;letter-spacing:-.025em}
.desktop-nav a{font-size:14px}
.header-enquire{font-size:12px;letter-spacing:.07em}
.button{font-size:12px;letter-spacing:.07em}
.hero-bottom p{font-size:var(--copy-size);line-height:1.65}
.film-toggle,.cinema-play,.vimeo-play{font-family:var(--sans);font-size:11px;letter-spacing:.1em}
.footer nav>a,.footer-about>a,.footer-note>p:not(.eyebrow){font-size:var(--small-size);line-height:1.75}
.footer-bottom{font-size:12px}
.journal-resources small{font-size:var(--label-size);letter-spacing:.1em}
.quote-author h3,.awards-grid h3{font-family:var(--sans);font-size:var(--small-size);font-weight:500;letter-spacing:.04em}
.awards-grid .award-attribution{font-size:var(--small-size)}

/* Contextual links all inherit the accepted portfolio underline. */
.text-link,.cinema-description .text-link,.section-heading>.text-link,.weekend .weekend-cta{
  display:inline-block;position:relative;width:fit-content;min-height:44px;padding:10px 0;
  font-family:var(--sans);font-size:18px;line-height:1.65;font-weight:400;letter-spacing:0;text-transform:none;border:0;
  transition:color .7s ease;
}
.text-link::after,.weekend .weekend-cta::after{
  content:'';position:absolute;left:0;right:0;bottom:7px;width:auto;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:left;transition:transform .85s cubic-bezier(.22,.61,.36,1);
}
.text-link:hover,.text-link:focus-visible{color:var(--wine)}
.text-link:hover::after,.text-link:focus-visible::after{transform:scaleX(1);transform-origin:left}
.text-link>span[aria-hidden],.button>span[aria-hidden]{display:none}
.image-link-indicator{display:none}
.button-dark:hover{background:var(--wine);opacity:.88}
.footer a{position:relative;width:fit-content;text-decoration:none}
.footer a:hover{text-decoration:none}
.footer a::after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .85s cubic-bezier(.22,.61,.36,1)}
.footer a:hover::after,.footer a:focus-visible::after{transform:scaleX(1)}
.footer a:focus-visible,.included a:focus-visible{outline-color:var(--paper)}

/* One palette for statistics and secondary surfaces, too. */
.legacy-stats{--font-editorial:var(--serif);color:var(--ink)}
.legacy-label{font-family:var(--sans);font-size:var(--label-size);letter-spacing:.13em}
.legacy-replay,.legacy-note,.legacy-footer,.legacy-eyebrow{font-family:var(--sans);color:var(--muted);font-size:var(--label-size);letter-spacing:.1em}
.legacy-replay:hover{color:var(--wine)}
.legacy-stat:focus-visible,.legacy-replay:focus-visible{outline-color:var(--wine)}
.legacy-digit-window,.legacy-reel>span{width:.62em;letter-spacing:0}
.publication{color:var(--muted)}
.locations{background:var(--paper-dark)}
.included .section-intro,.inclusions-grid p,.footer-about>a,.footer-note>p:not(.eyebrow),.footer-bottom,.footer .eyebrow{color:var(--paper)}
.inclusion-mark{color:var(--paper);opacity:.7}

/* Shared outer rhythm. Selected Work compensates inside its fixed-height stage. */
.section,.selected.section,.specialties.section,.celebrations.section,.awards.section,.locations.section,.closing.section{padding-block:var(--section-space)}
.specialties.section{padding-bottom:0}
.section-heading,.weekend .section-heading{margin-bottom:var(--heading-gap)}
.selected .selected-heading{margin-bottom:32px}
.selected .selected-gallery{height:clamp(260px,calc(100svh - 390px),620px)}
.team{padding-block:var(--section-space)}
.cinema-specialty{margin-top:var(--section-space);padding-top:var(--section-space)}
.cinema-heading{margin-bottom:32px}
.cinema-description{padding-top:32px;padding-bottom:var(--section-space)}
.photo-specialty,.team,.weekend-layout,.traditions-layout,.featured-testimonial,.journal{column-gap:var(--split-gap)}
.eyebrow,.traditions-copy .eyebrow{margin-bottom:24px}
.selected .eyebrow{margin-bottom:12px}
.journal-copy>p:not(.eyebrow){margin-top:24px}
.tradition-grid{margin-top:0;row-gap:32px;align-content:start}
.tradition-grid h3{margin-bottom:12px}
.more-love{margin-top:64px;padding-top:48px}
.awards-grid{margin-top:48px;margin-bottom:32px}
.closing-bottom{margin-top:32px}
.footer{padding-top:var(--section-space)}

/* Split spreads alternate across the page. Media-only galleries retain their composition. */
@media(min-width:1001px){
  .traditions-layout{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}
  .traditions-photo{grid-column:2;grid-row:1}
  .tradition-grid{grid-column:1;grid-row:1}
  .featured-testimonial{grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr)}
  .featured-quote{grid-column:2;grid-row:1}
  .film-story{grid-column:1;grid-row:1}
  .journal{grid-template-columns:minmax(0,1fr) minmax(0,.75fr)}
  .journal-copy{grid-column:1;grid-row:1}
  .journal-image{grid-column:2;grid-row:1}
}
@media(max-width:1150px){.desktop-nav{display:none}.header-enquire{display:flex}}
@media(min-width:901px) and (max-height:700px){
  .selected.section{padding-block:48px}
  .selected .selected-heading{margin-bottom:24px}
  .selected .selected-gallery{height:clamp(200px,calc(100svh - 310px),390px);min-height:200px}
}
@media(max-width:1000px){
  :root{--section-space:80px;--split-gap:40px;--heading-gap:40px}
  .tradition-grid{margin-top:0;row-gap:32px}
  .journal{display:flex;flex-direction:column;align-items:stretch;gap:32px}
  .journal-copy{max-width:650px}
  .journal-image{max-width:600px;align-self:center;width:100%}
}
@media(max-width:850px){
  .legacy-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .legacy-stat:nth-child(2) .legacy-divider{display:none}
  .legacy-stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .legacy-digits{font-size:clamp(64px,10vw,88px)}
}
@media(max-width:600px){
  :root{--section-space:64px;--heading-gap:32px;--split-gap:32px;--copy-size:16px;--label-size:11px;--heading-size:43px}
  .selected .selected-heading{margin-bottom:24px}
  main .selected h2{font-size:clamp(29px,7.8vw,40px)}
  main .closing h2{font-size:43px}
  .selected .selected-gallery{height:auto}
  .selected .selected-caption,.weekend-caption{font-size:16px;line-height:1.65}
  :root{--entry-size:28px}
  .traditions-layout{gap:32px}
  .tradition-grid{gap:32px}
  .legacy-digits{font-size:clamp(56px,15vw,80px)}
  .legacy-stat{min-height:190px}
  .legacy-label,.legacy-replay{font-size:11px}
  .cinema-heading{margin-bottom:24px}
  .cinema-description{padding-top:24px}
  .hero .eyebrow{font-size:10px;letter-spacing:.1em}
  .hero-bottom p{font-size:16px}
  .hero-foot{font-size:11px}
  .hero-bottom .button{margin-top:24px}
  .button{font-size:11px}
  .header-enquire{font-size:11px}
  .brand small{font-size:7px}
  .footer-bottom{font-size:11px}
  .more-love{margin-top:40px;padding-top:32px}
  .awards-grid{margin-top:32px}
}
@media(max-width:370px){:root{--heading-size:39px}.header-enquire{display:none}}
@media(prefers-reduced-motion:reduce){.text-link,.cinema-description .text-link,.section-heading>.text-link,.weekend .weekend-cta,.text-link::after,.weekend .weekend-cta::after,.footer a::after{transition:none!important}}

/* Wedding Weekend + Traditions: one heading and entry hierarchy, alternating photographs. */
.section .editorial-heading{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--split-gap);
  align-items:end;margin-bottom:var(--heading-gap);
}
.editorial-heading .eyebrow{margin-bottom:24px}
.section .editorial-heading>.section-intro{
  max-width:40ch;margin:0;padding:0 0 4px;
  font-family:var(--serif);font-size:clamp(24px,2vw,29px);font-weight:400;font-style:italic;
  line-height:1.4;letter-spacing:-.015em;color:var(--ink);
}
.weekend-chapter{display:grid;min-height:0}
.chapter-content{position:relative;inset:auto;grid-area:1/1;align-self:start}
.chapter-content h3{font-size:clamp(48px,4.6vw,68px);line-height:1.06;min-height:0;max-width:100%}
.chapter-content p{margin-top:16px;max-width:34ch}
.weekend-tabs{max-width:none;gap:8px 24px}
.event-tab{align-items:flex-start;min-height:52px;padding:8px 0}
.event-name::after{bottom:-5px}
.event-tab:hover .event-name::after,.event-tab:focus-visible .event-name::after{transform:scaleX(1)}
.weekend-caption{padding-top:10px;min-height:70px}
.caption-line{top:10px}
.weekend .weekend-cta{color:var(--wine)}
@media(min-width:1001px){
  .weekend-layout{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto 1fr auto;row-gap:24px;align-items:start}
  /* Subgrid aligns controls with the photograph, and CTA with its separate caption row. */
  .weekend-panel{display:grid;grid-template-rows:subgrid;grid-column:1;grid-row:1/4;align-self:stretch}
  .weekend-image{grid-row:1/3;align-self:start}
  .weekend-caption{grid-row:3}
  .weekend-chapter{grid-column:2;grid-row:1;height:auto}
  .weekend-tabs{grid-column:2;grid-row:2;align-self:end;grid-template-columns:repeat(2,minmax(0,1fr))}
  .weekend .weekend-cta{grid-column:2;grid-row:3;align-self:start}
}
@media(max-width:1000px){
  .weekend-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;gap:32px}
  .weekend-chapter{grid-column:1;grid-row:1;height:auto}
  .chapter-content h3{font-size:56px;max-width:100%}
  .weekend-panel{display:block;grid-column:1;grid-row:2;position:relative}
  .weekend-tabs{grid-column:1;grid-row:3;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 24px}
  .weekend .weekend-cta{grid-column:1;grid-row:4;margin-top:8px}
  .weekend-caption{min-height:80px;padding-top:16px}
  .caption-line{top:16px}
}
@media(max-width:700px){
  .section .editorial-heading{grid-template-columns:minmax(0,1fr);gap:24px}
  .section .editorial-heading>.section-intro{font-size:24px;max-width:40ch;padding:0}
  .weekend-layout{row-gap:24px}
  .chapter-content h3{font-size:48px}
  .chapter-content p{margin-top:12px}
  .weekend-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px}
  .weekend .weekend-cta{margin-top:16px}
}
@media(max-width:600px){.weekend-caption{min-height:72px}}

@media(min-width:1001px) and (max-width:1200px){.weekend-layout{row-gap:16px}}


/* Real Celebrations: approved couples share one horizontal baseline. */
.celebrations .couples-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;align-items:start}
.celebrations .couple-photo{--celebration-radius:18px;--corner-progress:1;overflow:hidden;border-radius:calc(var(--celebration-radius) * var(--corner-progress))}
.celebrations .couple{display:block;min-width:0;margin:0;scroll-snap-align:start}
.celebrations .couple h3{
  position:relative;width:fit-content;max-width:100%;margin-top:24px;
  font-size:var(--entry-size);line-height:1.2;transition:color .85s cubic-bezier(.22,.61,.36,1);
}
.celebrations .couple h3::after{
  content:'';position:absolute;left:0;right:0;bottom:-6px;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:left;transition:transform .85s cubic-bezier(.22,.61,.36,1);
}
.celebrations .couple:hover h3,.celebrations .couple:focus-visible h3{color:var(--wine)}
.celebrations .couple:hover h3::after,.celebrations .couple:focus-visible h3::after{transform:scaleX(1)}
.celebrations .couple p{margin-top:12px}
@media(max-width:900px){
  .celebrations .couple-photo{--celebration-radius:14px}
  .celebrations .couples-grid{
    grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:clamp(280px,78vw,480px);
    gap:24px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;
    padding:8px 8px 24px;margin:-8px;scroll-padding-inline:8px;
    scrollbar-width:thin;scrollbar-color:var(--wine) var(--line);
  }
}
@media(prefers-reduced-motion:reduce){
  .celebrations .couple h3,.celebrations .couple h3::after{transition:none!important}
}
