:root{--ink:#171613;--paper:#f3f0e9;--cream:#e8e1d4;--gold:#b79a69;--muted:#77736b;--line:rgba(23,22,19,.17);--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.announcement{height:29px;background:#171613;color:#cfc5b4;display:flex;justify-content:space-between;align-items:center;padding:0 5.2%;font-size:8px;letter-spacing:.2em}.site-header{height:88px;padding:0 5.2%;display:flex;align-items:center;justify-content:space-between;background:var(--paper);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:12px}.brand-mark{font:26px var(--serif);letter-spacing:-.09em}.brand-mark span{font-size:12px;color:var(--gold);vertical-align:middle;padding:0 4px}.brand-name{font-size:10px;letter-spacing:.18em;font-weight:700;line-height:1.5}.brand-name small{display:block;font-size:8px;letter-spacing:.38em;color:var(--muted);font-weight:400}.nav{display:flex;align-items:center;gap:36px}.nav a{font-size:10px;letter-spacing:.08em;color:#4e4a43;transition:color .2s}.nav a:hover,.text-link:hover{color:#9b7947}.nav .nav-cta{border:1px solid var(--gold);padding:13px 17px;color:var(--ink)}.nav-cta span{color:var(--gold);padding-left:10px}.menu-toggle{display:none}.hero{height:min(720px,76vw);min-height:590px;position:relative;background:#2a2823;overflow:hidden;color:#fff}.hero-image{position:absolute;inset:0;background:url('assets/images/image-02.jpg') center 39%/cover no-repeat;opacity:.78;transform:scale(1.02)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,14,12,.78),rgba(15,14,12,.2) 72%),linear-gradient(0deg,rgba(15,14,12,.36),transparent 55%)}.hero-content{position:absolute;left:12%;top:22%;max-width:580px}.eyebrow{font-size:9px;letter-spacing:.25em;font-weight:600;color:#927c59;margin:0 0 24px}.eyebrow.light{color:#d6c5a6}.hero h1{font:clamp(56px,7.1vw,100px)/.99 var(--serif);font-weight:400;letter-spacing:-.045em;margin:0}.hero h1 em,h2 em,blockquote em{font-weight:400;color:var(--gold)}.hero-copy{max-width:340px;font-size:13px;line-height:1.9;color:#e1ddd5;margin:28px 0 34px}.round-link{display:flex;align-items:center;gap:18px;font-size:8px;letter-spacing:.2em}.round-link b{width:34px;height:34px;border:1px solid rgba(255,255,255,.65);border-radius:50%;display:grid;place-items:center;font-size:15px;font-weight:400}.hero-index{position:absolute;bottom:38px;left:5.2%;display:flex;align-items:center;gap:14px;font-size:8px;letter-spacing:.2em;color:#d4cbbb}.hero-index span:first-child{color:var(--gold)}.hero-index i{height:1px;width:42px;background:var(--gold)}.hero-caption{position:absolute;right:5.2%;bottom:38px;font-size:8px;letter-spacing:.2em;color:#d4cbbb}.section-pad{padding:120px 12%}.intro{display: grid;grid-template-columns:1fr 2.1fr 1.5fr;gap:35px;align-items:center}.section-number{font-size:8px;letter-spacing:.18em;color:#8b806e}.diamond-line{font-size:36px;color:var(--gold);margin-top:65px}.intro-main{padding-top:38px}.intro-main h2,.section-heading h2,.portfolio-head h2,.film-copy h2,.contact h2{font:clamp(42px,5vw,68px)/1.1 var(--serif);font-weight:400;letter-spacing:-.035em;margin:0}.intro-copy{padding-top:66px;max-width:340px}.intro-copy p,.film-copy>p:not(.eyebrow),.contact-intro>p:not(.eyebrow){font-size:12px;line-height:2;color:#6d685f;margin:0 0 17px}.text-link{display:inline-block;margin-top:19px;font-size:8px;letter-spacing:.18em;font-weight:700;border-bottom:1px solid var(--gold);padding-bottom:9px}.text-link span{color:var(--gold);padding-left:10px}.feature-photo{height:490px;position:relative;overflow:hidden;background:#d8d1c6}.feature-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%;filter:saturate(.82)}.feature-note{position:absolute;right:12%;bottom:45px;background:var(--paper);padding:26px 34px;min-width:210px;display:flex;flex-direction:column;gap:4px}.feature-note span:first-child{font-size:8px;letter-spacing:.2em;color:#8b806e}.feature-note strong{font:italic 32px var(--serif);font-weight:400}.note-line{height:1px;width:40px;background:var(--gold);margin-top:12px}.services{background:#e9e4da}.section-heading,.portfolio-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:55px}.section-heading .eyebrow,.portfolio-head .eyebrow{margin:25px 0 15px}.heading-aside,.portfolio-head>p{font:italic 16px/1.7 var(--serif);color:#777064;margin:0 0 8px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.service-card{min-height:270px;padding:25px 23px 24px 0;position:relative;border-right:1px solid var(--line);margin-right:23px}.service-card:last-child{border:0;margin:0}.service-no{font-size:8px;color:#9b8a6d;letter-spacing:.15em}.service-icon{font:30px var(--serif);color:var(--gold);margin:25px 0 15px}.service-card h3{font:25px var(--serif);font-weight:400;margin:0 0 12px}.service-card p{font-size:11px;line-height:1.9;color:#777168;max-width:220px}.service-card>a{position:absolute;bottom:20px;right:22px;font-size:18px;color:#987d53}.portfolio{padding-top:130px;padding-bottom:135px}.portfolio-head{margin-bottom:38px}.filters{display:flex;gap:28px;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:25px}.filter{border:0;background:none;padding:0;color:#8a8479;font-size:8px;letter-spacing:.18em;cursor:pointer}.filter.active{color:var(--ink);font-weight:700}.filter.active:after{content:'';display:block;height:2px;background:var(--gold);margin-top:14px}.gallery{display:grid;grid-template-columns:1.1fr .9fr 1fr;grid-template-rows:230px 230px;gap:16px}.gallery-item{position:relative;border:0;padding:0;overflow:hidden;background:#d6d0c5;cursor:pointer;text-align:left}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s,filter .4s;filter:saturate(.82)}.gallery-item:hover img{transform:scale(1.045);filter:saturate(1)}.gallery-item:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.55))}.gallery-item span{position:absolute;bottom:15px;left:17px;color:#fff;font-size:8px;letter-spacing:.15em;z-index:1}.gallery-item span b{font-weight:500;margin-left:13px}.gallery-item.tall{grid-row:span 2}.gallery-item.wide{grid-column:span 2}.gallery-item.hidden{display:none}.gallery-foot{font-size:8px;letter-spacing:.2em;color:#8a8174;margin-top:24px}.gallery-foot span{color:var(--gold);margin-left:8px}.films{background:#191815;color:#f3f0e9;display:grid;grid-template-columns:.85fr 1.15fr;min-height:570px}.film-copy{padding:100px 10% 90px 18%}.film-copy .section-number{color:#a89a81}.film-copy .eyebrow{margin:36px 0 18px;color:#b49a70}.film-copy h2{font-size:58px;margin-bottom:25px}.film-copy>p:not(.eyebrow){color:#b7b1a6;max-width:300px}.film-reel{position:relative;min-height:570px;overflow:hidden;background:#292720}.reel-video{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;opacity:.78}.reel-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:rgba(0,0,0,.12);color:white}.reel-overlay span{font-size:8px;letter-spacing:.3em}.reel-overlay b{font:italic 27px var(--serif);font-weight:400;margin-top:10px}.sound-toggle{margin-top:35px;border:1px solid rgba(255,255,255,.7);color:white;background:transparent;padding:10px 15px;font-size:8px;letter-spacing:.16em;cursor:pointer}.reel-count{position:absolute;bottom:28px;right:30px;color:#eee;font-size:8px;letter-spacing:.18em}.quote-band{padding:100px 20px;text-align:center;background:#e9e4da}.quote-mark{font:60px var(--serif);color:var(--gold);line-height:.6}.quote-band blockquote{font:clamp(28px,4vw,46px)/1.3 var(--serif);margin:25px 0}.quote-rule{display:block;width:42px;height:1px;background:var(--gold);margin:28px auto}.quote-band p{font-size:8px;letter-spacing:.2em;color:#8b806e}.contact{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding-top:130px;padding-bottom:130px}.contact-intro .eyebrow{margin:35px 0 20px}.contact-intro h2{font-size:66px;margin-bottom:25px}.contact-intro>p:not(.eyebrow){max-width:300px}.contact-stamp{margin-top:45px;font:34px var(--serif);letter-spacing:-.1em;color:#7b715f}.contact-stamp span{font-size:12px;color:var(--gold);padding:0 4px}.contact-stamp small{display:block;font:8px var(--sans);letter-spacing:.3em;margin-top:3px}.enquiry-form{padding-top:18px}.enquiry-form label{display:block;font-size:9px;letter-spacing:.12em;color:#6e685e;margin-bottom:24px}.enquiry-form input,.enquiry-form textarea,.enquiry-form select{display:block;width:100%;border:0;border-bottom:1px solid #c8c0b3;background:transparent;padding:13px 0 12px;color:var(--ink);font:12px var(--sans);outline:none;border-radius:0}.enquiry-form input:focus,.enquiry-form textarea:focus,.enquiry-form select:focus{border-color:var(--gold)}.enquiry-form input::placeholder,.enquiry-form textarea::placeholder{color:#aaa397}.enquiry-form select{color:#8c8579}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px}.submit-btn{width:100%;display:flex;justify-content:space-between;align-items:center;padding:17px 18px;background:var(--ink);color:var(--paper);border:0;font-size:8px;letter-spacing:.2em;cursor:pointer;transition:background .2s}.submit-btn:hover{background:#796548}.submit-btn span{font-size:16px;color:var(--gold)}.form-note{font-size:9px;color:#8b8478;line-height:1.7;margin-top:14px}.footer{background:#171613;color:#d9d2c6;min-height:120px;padding:30px 5.2%;display:flex;align-items:center;justify-content:space-between;gap:20px}.footer .brand-mark{color:#eee}.footer .brand-name{color:#eee}.footer p,.copyright,.back-top{font-size:8px;letter-spacing:.17em;color:#a69e91}.back-top{border-bottom:1px solid #78694e;padding-bottom:7px}.lightbox{position:fixed;inset:0;background:rgba(10,10,9,.94);z-index:30;display:none;align-items:center;justify-content:center;padding:50px}.lightbox.open{display:flex}.lightbox img{max-width:min(90vw,1100px);max-height:85vh;object-fit:contain}.lightbox-close{position:absolute;top:25px;right:35px;border:0;background:none;color:white;font-size:38px;cursor:pointer}
@media(max-width:900px){.nav{gap:18px}.nav a{font-size:9px}.intro{display:flex; flex-direction: column;gap:20px}.section-pad{padding-left:8%;padding-right:8%}.service-grid{grid-template-columns:repeat(2,1fr);}.service-card:nth-child(2){border-right:0;margin-right:0}.service-card:nth-child(3),.service-card:nth-child(4){border-top:1px solid var(--line)}.film-copy{padding-left:12%}.contact{gap:7%}}
@media(max-width:650px){.announcement{padding:0 5%;font-size:7px}.announcement span:last-child{display:none}.site-header{height:72px;padding:0 6%}.menu-toggle{display:flex;flex-direction:column;gap:6px;background:none;border:0;padding:10px;z-index:12}.menu-toggle i{display:block;width:22px;height:1px;background:var(--ink)}.nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--paper);padding:25px 7% 30px;flex-direction:column;align-items:stretch;gap:22px;border-top:1px solid var(--line)}.nav.open{display:flex}.nav .nav-cta{text-align:center}.hero{min-height:650px;height:calc(100svh - 101px);max-height:790px}.hero-image{background-position:57% center}.hero-shade{background:linear-gradient(90deg,rgba(15,14,12,.66),rgba(15,14,12,.15)),linear-gradient(0deg,rgba(15,14,12,.45),transparent 70%)}.hero-content{left:7%;right:7%;top:26%}.hero h1{font-size:clamp(54px,14vw,78px)}.hero-copy{font-size:12px;max-width:290px}.hero-caption{display:none}.hero-index{left:7%;bottom:28px}.section-pad{padding:80px 7%}.intro{grid-template-columns:1fr 2fr;gap:10px}.intro-side{grid-row:span 2}.diamond-line{margin-top:50px}.intro-main{padding-top:20px}.intro-main h2,.section-heading h2,.portfolio-head h2{font-size:48px}.intro-copy{grid-column:2;padding-top:12px}.feature-photo{height:350px}.feature-note{right:7%;bottom:22px;padding:20px 24px}.section-heading,.portfolio-head{align-items:start;gap:25px;flex-direction:column;margin-bottom:35px}.heading-aside,.portfolio-head>p{font-size:14px}.service-grid{grid-template-columns:1fr; padding-left: 10px;}.service-card{min-height:260px;padding-right:12px;margin-right:12px}.service-card:nth-child(2){margin:0}.service-card h3{font-size:22px}.service-card p{font-size:10px}.portfolio{padding-top:85px;padding-bottom:90px}.filters{gap:18px}.filter{font-size:7px}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:210px 175px 210px;gap:9px}.gallery-item.tall{grid-row:span 2}.gallery-item.wide{grid-column:span 2}.gallery-item span{left:10px;bottom:10px;font-size:7px}.gallery-item span b{margin-left:5px}.films{grid-template-columns:1fr}.film-copy{padding:75px 7% 55px}.film-copy h2{font-size:52px}.film-reel{min-height:390px}.quote-band{padding:75px 15px}.contact{grid-template-columns:1fr;gap:35px;padding-top:85px;padding-bottom:85px}.contact-intro h2{font-size:58px}.contact-stamp{display:none}.form-row{gap:15px}.footer{padding:30px 7%;flex-wrap:wrap}.footer p{order:3;width:100%;margin:5px 0 0}.copyright{font-size:7px}.footer .brand-name{font-size:9px}.lightbox{padding:20px}.lightbox-close{top:10px;right:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Readability update: larger body copy, labels, navigation and supporting text. */
body { font-size: 16px; }
.announcement { font-size: 10px; }
.brand-name { font-size: 12px; }
.brand-name small { font-size: 10px; }
.nav a { font-size: 12px; }
.eyebrow { font-size: 11px; }
.hero-copy { font-size: 16px; }
.round-link, .text-link, .submit-btn { font-size: 10px; }
.hero-index, .hero-caption, .section-number { font-size: 10px; }
.intro-copy p, .film-copy>p:not(.eyebrow), .contact-intro>p:not(.eyebrow) { font-size: 15px; }
.feature-note span:first-child, .service-no { font-size: 10px; }
.service-card p { font-size: 14px; }
.filter, .gallery-item span, .gallery-foot { font-size: 10px; }
.reel-overlay span, .reel-count, .sound-toggle { font-size: 10px; }
.quote-band p { font-size: 10px; }
.enquiry-form label { font-size: 12px; }
.enquiry-form input, .enquiry-form textarea, .enquiry-form select { font-size: 15px; }
.form-note { font-size: 12px; }
.footer p, .copyright, .back-top { font-size: 10px; }
@media (max-width: 900px) { .nav a { font-size: 12px; } }
@media (max-width: 650px) {
  .announcement { font-size: 9px; }
  .nav a { font-size: 15px; }
  .hero-copy { font-size: 15px; }
  .intro-copy p, .film-copy>p:not(.eyebrow), .contact-intro>p:not(.eyebrow) { font-size: 15px; }
  .heading-aside, .portfolio-head>p { font-size: 16px; }
  .service-card p { font-size: 13px; }
  .filter, .gallery-item span, .gallery-foot { font-size: 9px; }
  .enquiry-form label { font-size: 13px; }
  .enquiry-form input, .enquiry-form textarea, .enquiry-form select { font-size: 15px; }
  .footer p, .copyright, .back-top { font-size: 10px; }
}



/* Video gallery */
.gallery-video-section {
  margin-top: 82px;
  padding-top: 58px;
  border-top: 1px solid var(--line);
}
.gallery-video-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 30px;
  margin-bottom: 28px;
}
.gallery-video-heading .eyebrow {
  margin-bottom: 14px;
}
.gallery-video-heading h3 {
  margin: 0;
  font: clamp(34px, 4vw, 48px)/1.1 var(--serif);
  font-weight: 400;
  letter-spacing: -.03em;
}
.gallery-video-heading h3 em {
  color: var(--gold);
  font-weight: 400;
}
.gallery-video-heading > p {
  max-width: 310px;
  margin: 0 0 5px;
  color: #777064;
  font: italic 16px/1.7 var(--serif);
}
.gallery-video-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.gallery-video {
  min-width: 0;
  background: #e9e4da;
}
.gallery-video video {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: #201e1a;
}
.gallery-video-caption {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 14px 15px 16px;
}
.gallery-video-caption span {
  color: #9b8a6d;
  font-size: 11px;
  letter-spacing: .14em;
}
.gallery-video-caption strong {
  color: var(--ink);
  font: 18px var(--serif);
  font-weight: 400;
}
@media (max-width: 650px) {
  .gallery-video-section {
    margin-top: 58px;
    padding-top: 42px;
  }
  .gallery-video-heading {
    align-items: start;
    flex-direction: column;
    gap: 12px;
  }
  .gallery-video-heading > p {
    font-size: 15px;
  }
  .gallery-video-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .gallery-video video {
    aspect-ratio: 16 / 10;
  }
  .gallery-video-caption strong {
    font-size: 17px;
  }
}

/* Contact details */
.contact-details {
  align-self: center;
  width: 100%;
  max-width: 570px;
  padding: 10px 0;
}

.contact-details > .eyebrow,
.contact-socials > .eyebrow {
  margin: 0 0 20px;
}

.contact-detail {
  display: grid;
  grid-template-columns: 105px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 16px;
  padding: 21px 0;
  border-bottom: 1px solid var(--line);
  color: inherit;
  text-decoration: none;
}

.contact-detail:first-of-type {
  border-top: 1px solid var(--line);
}

.contact-detail-label,
.contact-socials a > span:first-child {
  color: #9b8a6d;
  font-size: 12px;
  letter-spacing: .14em;
}

.contact-detail-value {
  overflow-wrap: anywhere;
  font: 21px/1.35 var(--serif);
  font-weight: 400;
}

.contact-detail-arrow {
  color: var(--gold);
  font-size: 17px;
  transition: transform .2s ease;
}

.contact-detail:hover .contact-detail-arrow {
  transform: translate(3px, -3px);
}

/* Social media links */
.contact-socials {
  margin-top: 38px;
}

.contact-socials a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
  color: inherit;
  text-decoration: none;
}

.contact-socials a > span:last-child {
  font: 17px/1.4 var(--serif);
  overflow-wrap: anywhere;
  text-align: right;
}

.contact-socials a:hover > span:last-child {
  color: var(--gold);
}

/* Mobile responsiveness */
@media (max-width: 650px) {
  .contact-detail {
    grid-template-columns: 82px minmax(0, 1fr) 16px;
    gap: 10px;
    padding: 18px 0;
  }

  .contact-detail-value {
    font-size: 17px;
  }

  .contact-socials a > span:last-child {
    font-size: 15px;
  }
}