/*
Theme Name: The Booth Boutique
Theme URI: https://www.theboothboutique.co.uk/
Author: The Booth Boutique
Description: Minimal luxury Midnight Cinema theme for The Booth Boutique.
Version: 3.3.3
Text Domain: the-booth-boutique
*/

:root{
  --black:#0b0a09;
  --black-2:#12100e;
  --espresso:#1a1512;
  --gold:#bd934f;
  --gold-soft:#dcc394;
  --ivory:#f3eee6;
  --cream:#e8ded0;
  --muted:#a89e93;
  --line:rgba(255,255,255,.12);
  --dark-line:rgba(11,10,9,.13);
  --display:"Bodoni 72","Didot","Bodoni MT","Baskerville","Times New Roman",serif;
  --serif:"Bodoni 72","Didot","Bodoni MT","Baskerville","Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --max:1280px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--black);color:var(--ivory);font-family:var(--sans);line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit}
.wrap{width:min(var(--max),calc(100% - 64px));margin-inline:auto}
.eyebrow{font-size:.66rem;letter-spacing:.23em;text-transform:uppercase;font-weight:800;color:var(--gold)}
h1,h2,h3,h4{font-family:var(--display);font-weight:500;letter-spacing:-.045em;line-height:.98;margin:0}
p{margin:0 0 1.15em}
.muted{color:var(--muted)}
.text-link{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:.71rem;text-transform:uppercase;letter-spacing:.15em;font-weight:800;color:var(--gold-soft)}
.text-link:after{content:"→";transition:transform .2s ease}
.text-link:hover:after{transform:translateX(4px)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 23px;border:1px solid rgba(255,255,255,.45);color:#fff;background:transparent;text-decoration:none;text-transform:uppercase;letter-spacing:.14em;font-size:.69rem;font-weight:800;transition:.25s ease}
.btn:hover{background:var(--gold);border-color:var(--gold);color:var(--black)}
.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--black)}
.btn-gold:hover{background:var(--gold-soft);border-color:var(--gold-soft)}

/* HEADER */
.site-header{position:sticky;top:0;z-index:50;background:rgba(11,10,9,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.header-inner{min-height:90px;display:flex;align-items:center;gap:35px}
.brand{flex:0 0 auto;display:flex;align-items:center}
.custom-logo{max-height:68px;width:auto}
.brand-wordmark{font-family:var(--display);font-size:1.05rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:#fff}
.primary-nav{margin-left:auto}
.primary-nav ul{display:flex;align-items:center;gap:25px;list-style:none;padding:0;margin:0}
.primary-nav a{font-size:.67rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800;text-decoration:none;color:#e5ddd3;position:relative}
.primary-nav a:after{content:"";position:absolute;left:0;bottom:-8px;width:0;height:1px;background:var(--gold);transition:.2s}
.primary-nav a:hover:after,.primary-nav .current-menu-item a:after{width:100%}
.header-cta{margin-left:8px;border-bottom:1px solid var(--gold);padding-bottom:3px;color:var(--gold-soft)!important}
.menu-toggle{display:none;margin-left:auto;border:0;background:none;color:#fff;text-transform:uppercase;letter-spacing:.14em;font-size:.68rem}

/* HOME HERO */
.home-hero{min-height:760px;position:relative;overflow:hidden;display:flex;align-items:flex-end;background:#100c0a}
.home-hero-media{position:absolute;inset:0}
.home-hero-media:before{content:"";position:absolute;inset:0;background:
linear-gradient(90deg,rgba(7,6,5,.96) 0%,rgba(7,6,5,.82) 34%,rgba(7,6,5,.22) 68%,rgba(7,6,5,.18) 100%),
linear-gradient(0deg,rgba(8,7,6,.7),transparent 48%);z-index:2}
.home-hero-media img{width:100%;height:100%;object-fit:cover}
.hero-placeholder{position:absolute;inset:0;background:
radial-gradient(circle at 73% 26%,rgba(211,152,84,.45),transparent 19%),
linear-gradient(145deg,#251711,#824b2f 45%,#17100d)}
.hero-placeholder:after{content:"";position:absolute;right:23%;top:12%;width:23%;height:70%;border-radius:48% 48% 14% 14%;background:rgba(10,8,7,.58)}
.hero-content{position:relative;z-index:3;padding:0 0 105px;max-width:690px}
.hero-content h1{font-size:clamp(4.5rem,7.2vw,7.8rem);line-height:.91;margin:19px 0 27px;max-width:850px}
.hero-content p{font-size:1rem;color:#cabfb4;max-width:560px}
.hero-actions{display:flex;gap:27px;align-items:center;flex-wrap:wrap;margin-top:30px}

/* BRAND INTRO */
.intro{background:var(--ivory);color:var(--black);padding:115px 0}
.intro-grid{display:grid;grid-template-columns:.75fr 1.8fr;gap:95px;align-items:start}
.intro-side{padding-top:8px}
.intro-side p{color:#6c635b;max-width:325px;font-size:.92rem}
.intro h2{font-size:clamp(3.3rem,5.5vw,6.1rem);max-width:940px}
.gold-rule{width:65px;height:1px;background:var(--gold);margin:27px 0}

/* BOOTH STRIP */
.booth-strip{background:#11100f;padding:0}
.booth-row{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.booth-tile{min-height:245px;padding:32px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;transition:.25s}
.booth-tile:last-child{border-right:0}
.booth-tile:hover{background:#181513}
.booth-num{font-family:var(--display);font-style:italic;color:var(--gold);font-size:1.05rem}
.booth-tile h3{font-size:2rem;margin-top:35px}
.booth-tile p{font-size:.78rem;color:#9e958b;max-width:230px}
.booth-arrow{color:var(--gold-soft);font-size:1.2rem}

/* FEATURE */
.feature{background:var(--black);padding:125px 0}
.feature-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:95px;align-items:center}
.feature-media{min-height:610px;background:linear-gradient(145deg,#35241c,#b47a4d);position:relative;overflow:hidden}
.feature-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feature-copy h2{font-size:clamp(3.4rem,5.2vw,5.9rem);margin:18px 0 30px}
.feature-copy p{color:#aaa096;max-width:530px}
.feature-list{border-top:1px solid var(--line);margin:38px 0 35px}
.feature-item{padding:18px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:35px 1fr;font-size:.85rem;color:#d2c9bf}
.feature-item b{font-family:var(--display);font-weight:400;color:var(--gold)}

/* TESTIMONIAL */
.quote-section{background:var(--ivory);color:var(--black);padding:105px 0;text-align:center}
.quote-section blockquote{font-family:var(--display);font-size:clamp(2.8rem,4.7vw,5.2rem);line-height:1.03;letter-spacing:-.03em;max-width:1050px;margin:0 auto 30px}
.quote-section cite{font-style:normal;text-transform:uppercase;letter-spacing:.16em;font-size:.65rem;color:#81786f}

/* CTA */
.end-cta{background:#160f0b;padding:100px 0}
.cta-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:60px;align-items:end}
.cta-grid h2{font-size:clamp(3.4rem,5.2vw,5.8rem);margin:18px 0 0}
.cta-right{padding-bottom:8px}
.cta-right p{color:#a99f95;font-size:.9rem}

/* PAGES */
.page-hero{padding:115px 0 80px;background:#0e0c0b;border-bottom:1px solid var(--line)}
.page-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:75px;align-items:end}
.page-hero h1{font-size:clamp(4.5rem,7.5vw,8rem)}
.page-hero p{color:#aaa096;max-width:550px;margin-left:auto}
.page-content{padding:90px 0 120px;background:var(--ivory);color:var(--black)}
.page-content.dark{background:var(--black);color:var(--ivory)}
.content-narrow{max-width:850px;margin:auto}

/* BOOTH DETAIL */
.booth-detail{display:grid;grid-template-columns:1.05fr .95fr;gap:80px}
.booth-photo{min-height:700px;background:linear-gradient(145deg,#2a1b15,#9e6946);position:relative;overflow:hidden}
.booth-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.booth-copy{padding-top:35px}
.booth-copy h2{font-size:clamp(3rem,4.7vw,5.2rem);margin:18px 0 26px}
.booth-copy>p{color:#6f675f}
.spec-list{margin:40px 0;border-top:1px solid var(--dark-line)}
.spec{display:grid;grid-template-columns:35px 1fr;padding:16px 0;border-bottom:1px solid var(--dark-line);font-size:.86rem}
.spec b{font-family:var(--display);font-weight:400;color:#a97937}
.booth-enquire{background:#e6ddd2;padding:32px;margin-top:45px}
.booth-enquire h3{font-size:2rem;margin-bottom:12px}
.booth-enquire p{color:#716960;font-size:.88rem}

/* ABOUT */
.about-statement{font-family:var(--display);font-size:clamp(2.7rem,4.4vw,4.8rem);line-height:1.05;max-width:950px}
.about-copy{margin-top:60px;display:grid;grid-template-columns:1fr 1fr;gap:65px}
.about-copy p{color:#6d655d}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:75px}
.contact-copy h2{font-size:clamp(3.2rem,4.7vw,5.1rem);margin:18px 0 26px}
.contact-copy p{color:#716960}
.contact-meta{margin-top:40px;border-top:1px solid var(--dark-line)}
.meta{padding:17px 0;border-bottom:1px solid var(--dark-line)}
.meta small{display:block;color:#9b743d;text-transform:uppercase;letter-spacing:.15em;font-size:.61rem;margin-bottom:3px}
.form{background:#fff;padding:42px;border:1px solid var(--dark-line)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.full{grid-column:1/-1}
label{display:block;font-size:.63rem;text-transform:uppercase;letter-spacing:.15em;font-weight:800;margin-bottom:8px}
input,select,textarea{width:100%;border:0;border-bottom:1px solid #a99f95;background:transparent;padding:12px 0;outline:none;border-radius:0;color:#171411}
input:focus,select:focus,textarea:focus{border-color:#6d512d}
textarea{min-height:130px;resize:vertical}
.form .btn{border-color:#171411;color:#171411}
.form .btn:hover{background:#171411;color:#fff}
.form-note{font-size:.73rem;color:#877e75;margin-top:15px}
.notice{padding:12px 14px;margin-bottom:20px;font-size:.84rem}
.notice-success{background:#e7f2e8;color:#2b5d34}
.notice-error{background:#f6e7e4;color:#7a312a}

/* FOOTER */
.site-footer{background:#080706;color:#fff;padding:75px 0 28px;border-top:1px solid var(--line)}
.footer-grid{display:grid;grid-template-columns:1.5fr .75fr .75fr;gap:70px}
.footer-brand h2{font-size:clamp(3rem,4.7vw,5.2rem);max-width:650px;margin:15px 0 25px}
.footer-brand p{color:#958b82;max-width:500px}
.footer-col h4{font-family:var(--sans);font-size:.62rem;letter-spacing:.17em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:18px}
.footer-links{list-style:none;padding:0;margin:0}
.footer-links li{margin:9px 0}
.footer-links a{text-decoration:none;color:#a99f95;font-size:.84rem}
.footer-links a:hover{color:#fff}
.footer-bottom{margin-top:55px;padding-top:19px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px}
.footer-bottom small,.footer-legal a{font-size:.65rem;color:#756d66;text-decoration:none}
.footer-legal{display:flex;gap:17px}

/* Woo future */
.woocommerce .button,.woocommerce button.button,.woocommerce input.button,.woocommerce a.button{border-radius:0!important;background:#171411!important;color:#fff!important;text-transform:uppercase!important;letter-spacing:.12em!important;font-size:.68rem!important}
.woocommerce ul.products li.product{background:#fff;padding:16px;border:1px solid rgba(0,0,0,.1)}

/* mobile */
@media(max-width:1050px){
 .wrap{width:min(var(--max),calc(100% - 40px))}
 .header-inner{min-height:80px}
 .primary-nav{display:none;position:absolute;left:0;right:0;top:80px;background:#0b0a09;padding:22px 30px;border-bottom:1px solid var(--line)}
 .primary-nav.is-open{display:block}
 .primary-nav ul{display:block}
 .primary-nav li{padding:9px 0}
 .menu-toggle{display:block}
 .header-cta{display:none}
 .booth-row{grid-template-columns:1fr 1fr}
 .booth-tile:nth-child(2){border-right:0}
 .booth-tile:nth-child(-n+2){border-bottom:1px solid var(--line)}
 .feature-grid,.booth-detail,.contact-grid{grid-template-columns:1fr;gap:55px}
 .feature-media,.booth-photo{min-height:560px}
 .footer-grid{grid-template-columns:1fr 1fr}
 .footer-brand{grid-column:1/-1}
}
@media(max-width:700px){
 .wrap{width:min(var(--max),calc(100% - 28px))}
 .custom-logo{max-height:54px}
 .home-hero{min-height:690px}
 .hero-content{padding-bottom:70px}
 .hero-content h1{font-size:clamp(3.5rem,16vw,5.1rem)}
 .home-hero-media:before{background:linear-gradient(0deg,rgba(7,6,5,.95),rgba(7,6,5,.5) 65%,rgba(7,6,5,.25))}
 .intro{padding:80px 0}
 .intro-grid{grid-template-columns:1fr;gap:35px}
 .intro h2{font-size:3.25rem}
 .booth-row{grid-template-columns:1fr}
 .booth-tile{border-right:0;border-bottom:1px solid var(--line)!important;min-height:190px}
 .feature{padding:80px 0}
 .feature-media,.booth-photo{min-height:480px}
 .feature-copy h2{font-size:3.35rem}
 .quote-section{padding:75px 0}
 .quote-section blockquote{font-size:2.8rem}
 .end-cta{padding:75px 0}
 .cta-grid,.page-grid{grid-template-columns:1fr;gap:30px}
 .page-hero{padding:75px 0 55px}
 .page-hero h1{font-size:4rem}
 .page-hero p{margin-left:0}
 .page-content{padding:65px 0 85px}
 .about-copy{grid-template-columns:1fr;gap:20px}
 .form{padding:28px 21px}
 .form-grid{grid-template-columns:1fr}
 .full{grid-column:auto}
 .footer-grid{grid-template-columns:1fr}
 .footer-brand{grid-column:auto}
 .footer-bottom{display:block}
 .footer-legal{margin-top:12px;flex-wrap:wrap}
}


/* v3.0.1 — modern luxury typography refinement */
body{
  font-family:var(--sans);
  font-weight:400;
  letter-spacing:-.008em;
}

.brand-wordmark{
  font-family:var(--display);
  font-weight:600;
  letter-spacing:.18em;
}

.eyebrow,
.primary-nav a,
.btn,
.text-link,
.footer-col h4,
label,
.meta small{
  font-family:var(--sans);
  font-weight:700;
  letter-spacing:.16em;
}

.hero-content h1{
  font-family:var(--display);
  font-weight:500;
  letter-spacing:-.06em;
  line-height:.88;
}

.intro h2,
.feature-copy h2,
.quote-section blockquote,
.cta-grid h2,
.page-hero h1,
.booth-copy h2,
.about-statement,
.contact-copy h2,
.footer-brand h2{
  font-family:var(--display);
  font-weight:500;
  letter-spacing:-.055em;
}

.booth-tile h3,
.booth-enquire h3{
  font-family:var(--display);
  font-weight:500;
  letter-spacing:-.035em;
}

.booth-num,
.spec b{
  font-family:var(--display);
  font-style:normal;
  font-weight:600;
  letter-spacing:-.02em;
}

.quote-section cite{
  font-family:var(--sans);
  font-weight:700;
  letter-spacing:.18em;
}

p,
.booth-tile p,
.feature-copy p,
.page-hero p,
.contact-copy p,
.form-note,
.footer-links a{
  letter-spacing:-.006em;
}

@media(max-width:700px){
  .hero-content h1{letter-spacing:-.055em}
}


/* v3.0.2 — flowing luxury display typography
   Only the large statement typography is changed.
   Smaller UI/body copy remains intentionally restrained for now. */

.hero-content h1,
.intro h2,
.feature-copy h2,
.quote-section blockquote,
.cta-grid h2,
.page-hero h1,
.booth-copy h2,
.about-statement,
.contact-copy h2,
.footer-brand h2{
  font-family:var(--display);
  font-weight:400;
  letter-spacing:-.045em;
  line-height:.93;
  text-wrap:balance;
}

.hero-content h1{
  font-style:normal;
  letter-spacing:-.055em;
  line-height:.89;
}

.intro h2,
.feature-copy h2,
.cta-grid h2,
.page-hero h1,
.booth-copy h2,
.contact-copy h2,
.footer-brand h2{
  font-style:normal;
}

.quote-section blockquote,
.about-statement{
  font-style:italic;
  letter-spacing:-.035em;
  line-height:1;
}

.booth-tile h3,
.booth-enquire h3{
  font-family:var(--display);
  font-weight:400;
  letter-spacing:-.025em;
  line-height:.98;
}

@media(max-width:700px){
  .hero-content h1{
    letter-spacing:-.045em;
    line-height:.91;
  }
}


/* v3.0.3 — LUXE-inspired display typography
   Based on the supplied reference:
   tall high-contrast serif forms, fine hairlines, sharp serifs,
   measured spacing, restrained metallic champagne treatment. */

:root{
  --luxe-gold-1:#8d6630;
  --luxe-gold-2:#f1d79b;
  --luxe-gold-3:#b8843f;
  --luxe-gold-4:#fff0c8;
}

/* Main oversized display type */
.hero-content h1,
.page-hero h1,
.intro h2,
.feature-copy h2,
.cta-grid h2,
.booth-copy h2,
.contact-copy h2,
.footer-brand h2,
.about-statement,
.quote-section blockquote{
  font-family:var(--display);
  font-weight:400;
  font-style:normal;
  letter-spacing:.015em;
  line-height:.88;
  text-transform:none;
  font-kerning:normal;
  font-variant-ligatures:common-ligatures;
  text-rendering:optimizeLegibility;
}

/* Make the biggest statements feel tall and sculpted, like the reference */
.hero-content h1,
.page-hero h1{
  letter-spacing:.025em;
  line-height:.84;
}

/* Slightly softer secondary display headings */
.intro h2,
.feature-copy h2,
.cta-grid h2,
.booth-copy h2,
.contact-copy h2,
.footer-brand h2{
  letter-spacing:.005em;
  line-height:.9;
}

/* Reference image uses elegant regular + italic pairing */
.quote-section blockquote,
.about-statement{
  font-style:italic;
  letter-spacing:.006em;
  line-height:.94;
}

/* Booth names become more like luxury collection/product names */
.booth-tile h3,
.booth-enquire h3{
  font-family:var(--display);
  font-weight:400;
  letter-spacing:.035em;
  line-height:.92;
}

/* Roman numerals / numbering: thin, precise and clean */
.booth-num,
.spec b{
  font-family:var(--display);
  font-weight:400;
  font-style:normal;
  letter-spacing:.08em;
}

/* Metallic treatment only where it helps.
   Most headings remain ivory for readability and restraint. */
.hero-content .eyebrow,
.page-hero .eyebrow,
.feature-copy .eyebrow,
.cta-grid .eyebrow{
  color:var(--gold-soft);
}

/* Elegant metallic accent applied to selected high-impact words/headings */
.booth-tile h3,
.booth-enquire h3{
  background:linear-gradient(
    105deg,
    var(--luxe-gold-1) 0%,
    var(--luxe-gold-2) 24%,
    var(--luxe-gold-4) 42%,
    var(--luxe-gold-3) 62%,
    var(--luxe-gold-2) 84%,
    var(--luxe-gold-1) 100%
  );
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:var(--gold-soft);
}

/* Thin highlight gives the gold a subtle engraved/metallic feel */
.booth-tile h3{
  text-shadow:0 1px 0 rgba(255,239,197,.05);
}

/* Slightly more cinematic spacing around the hero statement */
.hero-content h1{
  margin-top:22px;
  margin-bottom:30px;
}

/* Mobile: preserve elegance without opening letters too far */
@media(max-width:700px){
  .hero-content h1,
  .page-hero h1{
    letter-spacing:.01em;
    line-height:.87;
  }
  .intro h2,
  .feature-copy h2,
  .cta-grid h2,
  .booth-copy h2,
  .contact-copy h2,
  .footer-brand h2{
    letter-spacing:0;
    line-height:.92;
  }
}


/* v3.0.4 — corrected LUXE display font application
   The display variable is now actually defined, so major headlines no longer
   fall back to the body sans-serif. */

h1,h2,h3,h4{
  font-family:var(--sans);
}

/* These are the LARGE statement headings the LUXE reference applies to */
.hero-content h1,
.page-hero h1,
.intro h2,
.feature-copy h2,
.cta-grid h2,
.booth-copy h2,
.contact-copy h2,
.footer-brand h2,
.about-statement,
.quote-section blockquote{
  font-family:var(--display);
  font-weight:400;
  font-style:normal;
  letter-spacing:.005em;
  line-height:.89;
}

/* Homepage headline: deliberately closest to supplied LUXE example */
.hero-content h1{
  font-family:"Bodoni 72","Didot","Bodoni MT","Baskerville","Times New Roman",serif;
  font-weight:400;
  letter-spacing:.012em;
  line-height:.87;
}

/* Other page-sized hero headings use the same display family */
.page-hero h1{
  font-family:"Bodoni 72","Didot","Bodoni MT","Baskerville","Times New Roman",serif;
  font-weight:400;
  letter-spacing:.01em;
  line-height:.87;
}

/* Large supporting statements retain the same luxury family */
.intro h2,
.feature-copy h2,
.cta-grid h2,
.booth-copy h2,
.contact-copy h2,
.footer-brand h2{
  letter-spacing:-.005em;
  line-height:.91;
}

.quote-section blockquote,
.about-statement{
  font-family:"Bodoni 72","Didot","Bodoni MT","Baskerville","Times New Roman",serif;
  font-style:italic;
  letter-spacing:0;
  line-height:.95;
}

/* Product/booth titles are large enough to benefit, but remain restrained */
.booth-tile h3,
.booth-enquire h3{
  font-family:var(--display);
  font-weight:400;
}

@media(max-width:700px){
  .hero-content h1,
  .page-hero h1{
    letter-spacing:0;
    line-height:.89;
  }
}


/* v3.0.5 — larger luxury masthead / logo treatment
   The Booth Boutique crest is tall and detailed, so the header now gives it
   enough vertical room to read properly without overwhelming the page. */

.site-header{
  background:rgba(8,7,6,.97);
}

.header-inner{
  min-height:132px;
  gap:42px;
}

.brand{
  min-width:190px;
  justify-content:flex-start;
}

.custom-logo-link{
  display:flex;
  align-items:center;
  line-height:0;
}

.custom-logo{
  max-height:112px;
  width:auto;
  max-width:230px;
  object-fit:contain;
}

.primary-nav ul{
  gap:23px;
}

.primary-nav a{
  font-size:.66rem;
  letter-spacing:.145em;
}

/* A subtle gold glow helps the detailed crest read on black without looking flashy */
.custom-logo{
  filter:drop-shadow(0 0 10px rgba(189,147,79,.08));
}

/* Keep the start of the hero visually connected to the larger masthead */
.home-hero{
  min-height:750px;
}

@media(max-width:1050px){
  .header-inner{
    min-height:108px;
  }

  .custom-logo{
    max-height:88px;
    max-width:190px;
  }

  .primary-nav{
    top:108px;
  }
}

@media(max-width:700px){
  .header-inner{
    min-height:92px;
  }

  .brand{
    min-width:0;
  }

  .custom-logo{
    max-height:74px;
    max-width:150px;
  }

  .primary-nav{
    top:92px;
  }
}


/* =========================================================
   v3.0.6 — BRAND-FIRST MASTHEAD
   The crest now has its own dedicated visual area.
   Navigation sits on a separate restrained row beneath it.
   ========================================================= */

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:#080706;
  border-bottom:0;
  backdrop-filter:none;
}

.brand-masthead{
  background:
    radial-gradient(circle at 50% 0%, rgba(189,147,79,.055), transparent 55%),
    #080706;
  border-bottom:1px solid rgba(255,255,255,.07);
}

.brand-masthead-inner{
  min-height:178px;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
}

.brand-centred{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-width:0;
}

/* This is intentionally much larger than a standard web header logo. */
.brand-centred .custom-logo-link{
  display:flex;
  align-items:center;
  justify-content:center;
  width:auto;
  max-width:none;
  line-height:0;
}

.brand-centred .custom-logo{
  display:block;
  width:auto;
  height:auto;
  max-height:158px;
  max-width:340px;
  object-fit:contain;
  filter:
    drop-shadow(0 3px 12px rgba(0,0,0,.45))
    drop-shadow(0 0 12px rgba(189,147,79,.06));
}

/* Wordmark fallback if no image logo is selected */
.brand-centred .brand-wordmark{
  font-family:var(--display);
  font-size:2rem;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:var(--gold-soft);
  text-decoration:none;
}

.nav-bar{
  min-height:58px;
  background:#0d0b0a;
  border-bottom:1px solid rgba(255,255,255,.10);
}

.nav-bar-inner{
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.nav-bar .primary-nav{
  margin:0;
}

.nav-bar .primary-nav ul{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:34px;
  margin:0;
  padding:0;
}

.nav-bar .primary-nav a{
  font-size:.65rem;
  letter-spacing:.16em;
  color:#d9d0c5;
}

.nav-bar .primary-nav a:hover{
  color:#fff;
}

.nav-bar .primary-nav a:after{
  background:var(--gold);
}

/* Menu button stays hidden on desktop */
.brand-masthead .menu-toggle{
  display:none;
}

/* Hero no longer needs to compensate for the old header sizing */
.home-hero{
  min-height:720px;
}

/* Tablet */
@media(max-width:1050px){
  .brand-masthead-inner{
    min-height:150px;
  }

  .brand-centred .custom-logo{
    max-height:132px;
    max-width:290px;
  }

  .nav-bar{
    min-height:54px;
  }

  .nav-bar-inner{
    min-height:54px;
  }

  .nav-bar .primary-nav{
    position:static;
    display:block;
    padding:0;
    border:0;
    background:transparent;
  }

  .nav-bar .primary-nav ul{
    display:flex;
    gap:20px;
  }

  .nav-bar .primary-nav li{
    padding:0;
  }

  .nav-bar .primary-nav a{
    font-size:.60rem;
  }
}

/* Mobile */
@media(max-width:700px){
  .brand-masthead-inner{
    min-height:120px;
  }

  .brand-centred .custom-logo{
    max-height:104px;
    max-width:215px;
  }

  .brand-masthead .menu-toggle{
    display:block;
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    z-index:3;
    color:#fff;
  }

  .nav-bar{
    min-height:0;
  }

  .nav-bar-inner{
    min-height:0;
    width:100%;
  }

  .nav-bar .primary-nav{
    display:none;
    position:absolute;
    top:120px;
    left:0;
    right:0;
    z-index:50;
    background:#0b0908;
    border-top:1px solid rgba(255,255,255,.07);
    border-bottom:1px solid rgba(255,255,255,.10);
    padding:18px 22px 22px;
  }

  .nav-bar .primary-nav.is-open{
    display:block;
  }

  .nav-bar .primary-nav ul{
    display:block;
  }

  .nav-bar .primary-nav li{
    padding:7px 0;
  }

  .nav-bar .primary-nav a{
    display:block;
    font-size:.67rem;
    padding:7px 0;
  }

  .home-hero{
    min-height:665px;
  }
}


/* =========================================================
   v3.0.8 — VALUXE DISPLAY TYPOGRAPHY
   Layout/text restored to v3.0.6.
   Large statement headings use Valuxe when the licensed
   typeface/webfont is available.
   ========================================================= */

:root{
  --valuxe:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
}

/* Large statement typography only */
.hero-content h1,
.page-hero h1,
.intro h2,
.feature-copy h2,
.cta-grid h2,
.booth-copy h2,
.contact-copy h2,
.footer-brand h2,
.about-statement,
.quote-section blockquote{
  font-family:var(--valuxe);
  font-style:normal;
  font-weight:400;
  letter-spacing:-.025em;
  text-transform:none;
  text-rendering:optimizeLegibility;
}

/* The hero is the strongest Valuxe treatment */
.hero-content h1{
  line-height:.88;
  letter-spacing:-.035em;
}

/* Page headlines */
.page-hero h1{
  line-height:.9;
  letter-spacing:-.03em;
}

/* Supporting statement headings */
.intro h2,
.feature-copy h2,
.cta-grid h2,
.booth-copy h2,
.contact-copy h2,
.footer-brand h2{
  line-height:.92;
}

/* Keep booth names clean and fashion-led */
.booth-tile h3,
.booth-enquire h3{
  font-family:var(--valuxe);
  font-style:normal;
  font-weight:400;
  letter-spacing:-.015em;
}

/* Remove any serif/italic character from these larger text areas */
.quote-section blockquote,
.about-statement{
  font-style:normal;
  letter-spacing:-.02em;
  line-height:.96;
}

@media(max-width:700px){
  .hero-content h1{
    line-height:.9;
    letter-spacing:-.03em;
  }
  .page-hero h1{
    line-height:.91;
  }
}


/* =========================================================
   v3.0.9 — JOSEFIN SANS DISPLAY TYPOGRAPHY
   Large headings use Josefin Sans Light / Regular.
   Small navigation and body copy remain unchanged.
   ========================================================= */

.hero-content h1,
.page-hero h1,
.intro h2,
.feature-copy h2,
.cta-grid h2,
.booth-copy h2,
.contact-copy h2,
.footer-brand h2,
.about-statement,
.quote-section blockquote{
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-weight:300;
  font-style:normal;
  letter-spacing:-.035em;
}

.hero-content h1{
  font-weight:300;
  line-height:.9;
  letter-spacing:-.045em;
}

.page-hero h1{
  font-weight:300;
  line-height:.91;
  letter-spacing:-.04em;
}

.intro h2,
.feature-copy h2,
.cta-grid h2,
.booth-copy h2,
.contact-copy h2,
.footer-brand h2{
  font-weight:300;
  line-height:.93;
}

.booth-tile h3,
.booth-enquire h3{
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-weight:400;
  letter-spacing:-.02em;
}

.quote-section blockquote,
.about-statement{
  font-weight:300;
  line-height:.98;
  letter-spacing:-.03em;
}

@media(max-width:700px){
  .hero-content h1{
    line-height:.92;
    letter-spacing:-.04em;
  }

  .page-hero h1{
    line-height:.92;
  }
}


/* =========================================================
   v3.1.0 — CINEMATIC BOOTH COLLECTION
   Replaces the old text-only booth strip with four image-led
   luxury panels populated from each booth page's Featured Image.
   ========================================================= */

.booth-collection{
  background:#0b0a09;
  padding:110px 0 120px;
}

.booth-collection-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:40px;
  margin-bottom:38px;
}

.booth-collection-head h2{
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(2.6rem,4.5vw,4.7rem);
  font-weight:300;
  line-height:.94;
  letter-spacing:-.04em;
  margin:14px 0 0;
  max-width:650px;
}

.booth-collection-head p{
  max-width:420px;
  color:#9f968d;
  font-size:.87rem;
  margin:0;
}

.booth-collection-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}

.booth-showcase{
  position:relative;
  min-height:560px;
  overflow:hidden;
  background:#171310;
  text-decoration:none;
  color:#fff;
  isolation:isolate;
}

.booth-showcase-image,
.booth-showcase-placeholder{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.booth-showcase-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .65s cubic-bezier(.2,.6,.2,1);
}

.booth-showcase-placeholder{
  background:
    radial-gradient(circle at 70% 25%,rgba(195,145,78,.28),transparent 24%),
    linear-gradient(145deg,#2a1b15,#745039 52%,#18110e);
}

.booth-showcase-placeholder span{
  position:absolute;
  right:8%;
  bottom:-.06em;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(6rem,10vw,11rem);
  font-weight:300;
  line-height:.8;
  letter-spacing:-.08em;
  color:rgba(255,255,255,.08);
}

.booth-showcase:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:
    linear-gradient(0deg,rgba(6,5,4,.93) 0%,rgba(6,5,4,.58) 34%,rgba(6,5,4,.12) 67%,rgba(6,5,4,.18) 100%);
  transition:background .3s ease;
}

.booth-showcase:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  border:1px solid rgba(255,255,255,.08);
  pointer-events:none;
  transition:border-color .3s ease;
}

.booth-showcase-content{
  position:absolute;
  z-index:4;
  left:0;
  right:0;
  bottom:0;
  padding:28px 26px 27px;
}

.booth-showcase-number{
  display:block;
  margin-bottom:15px;
  color:var(--gold-soft);
  font-size:.62rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
}

.booth-showcase h3{
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(1.75rem,2.3vw,2.65rem);
  font-weight:300;
  line-height:.95;
  letter-spacing:-.035em;
  color:#fff;
  margin:0 0 12px;
  background:none;
  -webkit-text-fill-color:initial;
}

.booth-showcase p{
  color:rgba(255,255,255,.68);
  font-size:.75rem;
  line-height:1.55;
  max-width:245px;
  margin:0;
  opacity:.9;
}

.booth-showcase-arrow{
  position:absolute;
  right:25px;
  bottom:27px;
  width:38px;
  height:38px;
  border:1px solid rgba(220,195,148,.45);
  display:grid;
  place-items:center;
  color:var(--gold-soft);
  font-size:1rem;
  transition:.25s ease;
}

.booth-showcase:hover .booth-showcase-image img{
  transform:scale(1.035);
}

.booth-showcase:hover:before{
  background:
    linear-gradient(0deg,rgba(6,5,4,.93) 0%,rgba(6,5,4,.48) 38%,rgba(6,5,4,.08) 70%,rgba(6,5,4,.12) 100%);
}

.booth-showcase:hover:after{
  border-color:rgba(189,147,79,.5);
}

.booth-showcase:hover .booth-showcase-arrow{
  background:var(--gold);
  border-color:var(--gold);
  color:#0b0a09;
  transform:translate(2px,-2px);
}

/* The previous text-only strip is no longer used on the homepage. */
.booth-strip{
  display:none;
}

@media(max-width:1050px){
  .booth-collection{
    padding:90px 0 100px;
  }

  .booth-collection-grid{
    grid-template-columns:1fr 1fr;
  }

  .booth-showcase{
    min-height:500px;
  }
}

@media(max-width:700px){
  .booth-collection{
    padding:72px 0 80px;
  }

  .booth-collection-head{
    display:block;
    margin-bottom:28px;
  }

  .booth-collection-head h2{
    font-size:2.9rem;
  }

  .booth-collection-head p{
    margin-top:18px;
    max-width:100%;
  }

  .booth-collection-grid{
    grid-template-columns:1fr;
    gap:10px;
  }

  .booth-showcase{
    min-height:430px;
  }

  .booth-showcase-content{
    padding:24px 22px;
  }

  .booth-showcase-arrow{
    right:22px;
    bottom:24px;
  }
}


/* v3.1.1 — booth cards simplified
   Removes 01 / 02 / 03 / 04 labels for a cleaner luxury presentation. */

.booth-showcase-number{
  display:none !important;
}

.booth-showcase h3{
  margin-top:0;
}


/* =========================================================
   v3.1.2 — booth card readability refinement
   Keeps all images unchanged.
   Raises the text slightly and strengthens only the lower fade.
   ========================================================= */

.booth-showcase:before{
  background:
    linear-gradient(
      0deg,
      rgba(5,4,4,.98) 0%,
      rgba(5,4,4,.90) 15%,
      rgba(5,4,4,.68) 29%,
      rgba(5,4,4,.32) 43%,
      rgba(5,4,4,.08) 62%,
      rgba(5,4,4,.10) 100%
    );
}

.booth-showcase-content{
  bottom:18px;
  padding:24px 26px 30px;
}

.booth-showcase h3{
  margin-bottom:14px;
}

.booth-showcase p{
  line-height:1.5;
  max-width:235px;
}

.booth-showcase-arrow{
  right:25px;
  bottom:47px;
}

.booth-showcase:hover:before{
  background:
    linear-gradient(
      0deg,
      rgba(5,4,4,.98) 0%,
      rgba(5,4,4,.86) 15%,
      rgba(5,4,4,.58) 30%,
      rgba(5,4,4,.24) 45%,
      rgba(5,4,4,.05) 65%,
      rgba(5,4,4,.08) 100%
    );
}

@media(max-width:700px){
  .booth-showcase-content{
    bottom:14px;
    padding:22px 22px 27px;
  }

  .booth-showcase-arrow{
    right:22px;
    bottom:40px;
  }
}


/* =========================================================
   v3.1.3 — booth card arrow overlap fix
   Prevents the CTA arrow from sitting on top of longer copy
   (noticed most on Selfie Booths and 360 Booth).
   ========================================================= */

.booth-showcase-content{
  padding-right:78px;
}

.booth-showcase h3,
.booth-showcase p{
  max-width:calc(100% - 54px);
}

.booth-showcase-arrow{
  right:22px;
  bottom:46px;
}

@media(max-width:700px){
  .booth-showcase-content{
    padding-right:72px;
  }

  .booth-showcase h3,
  .booth-showcase p{
    max-width:calc(100% - 48px);
  }

  .booth-showcase-arrow{
    right:20px;
    bottom:40px;
  }
}


/* =========================================================
   v3.1.4 — feature section refinement
   Cleaner, calmer, more premium presentation.
   ========================================================= */

.feature{
  padding:120px 0;
}

.feature-grid{
  grid-template-columns:1.08fr .92fr;
  gap:110px;
}

.feature-copy h2{
  max-width:560px;
  margin-bottom:32px;
}

.feature-copy > p{
  max-width:545px;
  font-size:.96rem;
  line-height:1.72;
}

.feature-list{
  margin:42px 0 34px;
}

.feature-item{
  grid-template-columns:1fr;
  padding:17px 0;
  color:#ddd3c9;
  font-size:.84rem;
}

.feature-item b{
  display:none;
}

.feature-item span{
  display:block;
}

.feature-copy .text-link{
  margin-top:2px;
}

@media(max-width:1050px){
  .feature-grid{
    gap:65px;
  }
}

@media(max-width:700px){
  .feature{
    padding:80px 0;
  }

  .feature-copy h2{
    max-width:none;
  }

  .feature-copy > p{
    max-width:none;
  }
}


/* =========================================================
   v3.1.5 — minimal luxury testimonial
   One review only. No cards, no stars, no carousel.
   ========================================================= */

.testimonial-luxury{
  background:#090807;
  color:var(--ivory);
  padding:118px 0 122px;
  border-top:1px solid rgba(255,255,255,.07);
  border-bottom:1px solid rgba(255,255,255,.07);
}

.testimonial-luxury-inner{
  position:relative;
  text-align:center;
  max-width:1120px;
}

.testimonial-mark{
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:5.8rem;
  font-weight:300;
  line-height:.7;
  color:var(--gold);
  opacity:.9;
  margin-bottom:24px;
}

.testimonial-luxury blockquote{
  margin:0 auto;
  max-width:1000px;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(2.5rem,4.35vw,4.7rem);
  font-weight:300;
  font-style:normal;
  line-height:1.02;
  letter-spacing:-.04em;
  color:#f3ede5;
}

.testimonial-luxury cite{
  display:block;
  margin-top:34px;
  font-family:var(--sans);
  font-style:normal;
  font-size:.64rem;
  font-weight:700;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:var(--gold-soft);
}

@media(max-width:700px){
  .testimonial-luxury{
    padding:82px 0 88px;
  }

  .testimonial-mark{
    font-size:4.7rem;
    margin-bottom:18px;
  }

  .testimonial-luxury blockquote{
    font-size:clamp(2.2rem,10.5vw,3.2rem);
    line-height:1.04;
  }

  .testimonial-luxury cite{
    margin-top:27px;
    font-size:.60rem;
  }
}


/* =========================================================
   v3.1.6 — final homepage CTA
   Minimal, centred and cinematic.
   ========================================================= */

.end-cta{
  position:relative;
  overflow:hidden;
  background:#120d0a;
  padding:132px 0 138px;
  border-top:1px solid rgba(255,255,255,.06);
}

.end-cta:before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:760px;
  height:420px;
  transform:translate(-50%,-50%);
  background:radial-gradient(
    ellipse at center,
    rgba(184,139,77,.11) 0%,
    rgba(184,139,77,.045) 38%,
    rgba(18,13,10,0) 72%
  );
  pointer-events:none;
}

.end-cta-inner{
  position:relative;
  z-index:1;
  max-width:980px;
  margin:0 auto;
  text-align:center;
}

.end-cta .eyebrow{
  margin-bottom:25px;
}

.end-cta h2{
  margin:0 auto;
  max-width:900px;
  font-size:clamp(3.5rem,6.4vw,6.8rem);
  font-weight:300;
  line-height:.94;
  letter-spacing:-.045em;
}

.end-cta p{
  max-width:520px;
  margin:31px auto 35px;
  color:#ada39a;
  font-size:.9rem;
  line-height:1.7;
}

.end-cta-button{
  min-width:210px;
  text-align:center;
}

@media(max-width:700px){
  .end-cta{
    padding:90px 0 96px;
  }

  .end-cta:before{
    width:520px;
    height:340px;
  }

  .end-cta h2{
    font-size:clamp(3rem,13vw,4.5rem);
    line-height:.96;
  }

  .end-cta p{
    max-width:330px;
    margin:25px auto 30px;
  }
}


/* =========================================================
   v3.1.7 — bespoke Magic Mirrors page
   Editorial product page, using the WordPress Featured Image.
   ========================================================= */

.mm-hero{
  position:relative;
  min-height:760px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:#0a0908;
}

.mm-hero-media{
  position:absolute;
  inset:0;
}

.mm-hero-media:after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(7,6,5,.97) 0%,rgba(7,6,5,.84) 31%,rgba(7,6,5,.34) 59%,rgba(7,6,5,.12) 100%),
    linear-gradient(0deg,rgba(7,6,5,.58) 0%,rgba(7,6,5,0) 48%);
}

.mm-hero-image{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 43%;
}

.mm-hero-inner{
  position:relative;
  z-index:2;
  padding-bottom:100px;
}

.mm-hero-copy{
  max-width:690px;
}

.mm-hero h1{
  margin:17px 0 27px;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(4.6rem,7.3vw,8rem);
  font-weight:300;
  line-height:.89;
  letter-spacing:-.055em;
}

.mm-hero p{
  max-width:530px;
  margin-bottom:30px;
  color:#c1b7ad;
  font-size:.98rem;
  line-height:1.7;
}

.mm-intro{
  background:var(--ivory);
  color:var(--black);
  padding:118px 0 122px;
}

.mm-intro-grid{
  display:grid;
  grid-template-columns:.62fr 1.38fr;
  gap:85px;
  align-items:start;
}

.mm-intro-label{
  padding-top:14px;
}

.mm-intro-copy h2{
  max-width:880px;
  margin-bottom:34px;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(3.6rem,5.5vw,6.2rem);
  font-weight:300;
  line-height:.94;
  letter-spacing:-.05em;
}

.mm-intro-copy p{
  max-width:730px;
  color:#6d655d;
  font-size:.98rem;
  line-height:1.78;
}

.mm-details{
  background:#0c0b0a;
  padding:120px 0 130px;
}

.mm-details-grid{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:100px;
  align-items:center;
}

.mm-details-image{
  min-height:720px;
  overflow:hidden;
  background:#1a1410;
}

.mm-details-image img{
  width:100%;
  height:720px;
  object-fit:cover;
  object-position:center;
}

.mm-details-copy h2{
  max-width:590px;
  margin:18px 0 36px;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(3.4rem,4.8vw,5.5rem);
  font-weight:300;
  line-height:.95;
  letter-spacing:-.05em;
}

.mm-feature-list{
  border-top:1px solid rgba(255,255,255,.12);
}

.mm-feature{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:32px;
  padding:24px 0;
  border-bottom:1px solid rgba(255,255,255,.12);
}

.mm-feature h3{
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:1.18rem;
  font-weight:400;
  letter-spacing:-.02em;
  line-height:1.15;
  color:#efe7dd;
}

.mm-feature p{
  margin:0;
  color:#958c83;
  font-size:.82rem;
  line-height:1.66;
}

.mm-style-note{
  background:#e8ded0;
  color:#11100f;
  padding:116px 0;
}

.mm-style-note-inner{
  max-width:940px;
  text-align:center;
}

.mm-style-note h2{
  margin:20px auto 28px;
  max-width:900px;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(3.5rem,5.4vw,6rem);
  font-weight:300;
  line-height:.94;
  letter-spacing:-.05em;
}

.mm-style-note p{
  max-width:650px;
  margin:0 auto;
  color:#6d655d;
  line-height:1.78;
}

.mm-editor-content{
  background:var(--ivory);
  color:var(--black);
  padding:0 0 95px;
}

.mm-editor-content-inner{
  max-width:820px;
}

.mm-cta{
  position:relative;
  overflow:hidden;
  background:#120d0a;
  padding:126px 0 132px;
  text-align:center;
}

.mm-cta:before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:760px;
  height:430px;
  transform:translate(-50%,-50%);
  background:radial-gradient(
    ellipse at center,
    rgba(184,139,77,.11) 0%,
    rgba(184,139,77,.04) 42%,
    rgba(18,13,10,0) 72%
  );
  pointer-events:none;
}

.mm-cta-inner{
  position:relative;
  z-index:1;
  max-width:850px;
}

.mm-cta h2{
  margin:20px 0 25px;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(3.8rem,6vw,6.7rem);
  font-weight:300;
  line-height:.92;
  letter-spacing:-.055em;
}

.mm-cta p{
  max-width:500px;
  margin:0 auto 33px;
  color:#a99f95;
  line-height:1.7;
}

@media(max-width:1050px){
  .mm-intro-grid,
  .mm-details-grid{
    grid-template-columns:1fr;
    gap:55px;
  }

  .mm-intro-grid{
    gap:28px;
  }

  .mm-details-image,
  .mm-details-image img{
    min-height:620px;
    height:620px;
  }
}

@media(max-width:700px){
  .mm-hero{
    min-height:680px;
  }

  .mm-hero-media:after{
    background:
      linear-gradient(0deg,rgba(7,6,5,.96) 0%,rgba(7,6,5,.68) 58%,rgba(7,6,5,.18) 100%);
  }

  .mm-hero-inner{
    padding-bottom:65px;
  }

  .mm-hero h1{
    font-size:clamp(3.8rem,16vw,5.4rem);
  }

  .mm-intro{
    padding:80px 0 85px;
  }

  .mm-intro-copy h2{
    font-size:clamp(3rem,13vw,4.35rem);
  }

  .mm-details{
    padding:80px 0 90px;
  }

  .mm-details-image,
  .mm-details-image img{
    min-height:500px;
    height:500px;
  }

  .mm-feature{
    grid-template-columns:1fr;
    gap:10px;
    padding:20px 0;
  }

  .mm-style-note{
    padding:82px 0;
  }

  .mm-style-note h2{
    font-size:clamp(3rem,13vw,4.4rem);
  }

  .mm-cta{
    padding:90px 0 96px;
  }

  .mm-cta h2{
    font-size:clamp(3.3rem,14vw,4.8rem);
  }
}


/* =========================================================
   v3.1.8 — Magic Mirror featured image reliability fix
   Hero now uses the page Featured Image as a CSS background.
   ========================================================= */

.mm-hero{
  background-color:#0a0908;
  background-size:cover;
  background-position:center 43%;
  background-repeat:no-repeat;
}

.mm-hero-media{
  display:none;
}

.mm-hero-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg,rgba(7,6,5,.97) 0%,rgba(7,6,5,.84) 31%,rgba(7,6,5,.34) 59%,rgba(7,6,5,.12) 100%),
    linear-gradient(0deg,rgba(7,6,5,.58) 0%,rgba(7,6,5,0) 48%);
  pointer-events:none;
}

.mm-hero-inner{
  z-index:2;
}

.mm-details-featured-image{
  width:100%;
  height:720px;
  object-fit:cover;
  object-position:center;
}

@media(max-width:1050px){
  .mm-details-featured-image{
    height:620px;
  }
}

@media(max-width:700px){
  .mm-hero{
    background-position:center center;
  }

  .mm-hero-overlay{
    background:
      linear-gradient(0deg,rgba(7,6,5,.96) 0%,rgba(7,6,5,.68) 58%,rgba(7,6,5,.18) 100%);
  }

  .mm-details-featured-image{
    height:500px;
  }
}


/* v3.2.0 route fallback visual — only visible if WordPress truly has
   no Featured Image attached to the Magic Mirrors page. */
.mm-image-missing{
  height:720px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 50% 35%,rgba(184,139,77,.18),transparent 36%),
    #15110e;
  border:1px solid rgba(184,139,77,.18);
}
.mm-image-missing span{
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:2rem;
  font-weight:300;
  color:#c49a5d;
}
@media(max-width:1050px){.mm-image-missing{height:620px}}
@media(max-width:700px){.mm-image-missing{height:500px}}


/* =========================================================
   v3.2.1 — unified booth pages
   Magic Mirrors, Selfie, Oval and 360 now share one layout.
   ========================================================= */

.booth-page-hero{
  padding-top:105px;
  padding-bottom:82px;
}

.booth-page-content{
  padding-top:96px;
  padding-bottom:126px;
}

.booth-detail{
  gap:88px;
  align-items:start;
}

.booth-photo{
  min-height:720px;
  background:#17120f;
  border:1px solid rgba(20,16,13,.08);
}

.booth-photo .booth-featured-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.booth-photo-fallback{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 50% 38%,rgba(184,139,77,.18),transparent 35%),
    #17120f;
}

.booth-photo-fallback span{
  color:#c49a5d;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:2rem;
  font-weight:300;
}

.booth-copy{
  padding-top:28px;
}

.booth-copy > p{
  max-width:535px;
  line-height:1.72;
}

.spec-list{
  margin:42px 0 46px;
}

.spec{
  display:block;
  padding:17px 0;
  color:#403a35;
  letter-spacing:.01em;
}

.spec span{
  display:block;
}

.booth-editor-content{
  margin:0 0 42px;
}

.booth-enquire{
  margin-top:44px;
  padding:35px 36px 38px;
  background:#e6ddd2;
  border:1px solid rgba(80,65,50,.08);
}

.booth-enquire h3{
  margin:14px 0 14px;
}

.booth-enquire p{
  max-width:500px;
  margin-bottom:24px;
  line-height:1.65;
}

.booth-enquire-btn{
  border-color:#171411;
  color:#171411;
  min-width:190px;
  text-align:center;
}

.booth-enquire-btn:hover{
  background:#171411;
  color:#fff;
}

@media(max-width:1050px){
  .booth-detail{
    gap:58px;
  }

  .booth-photo{
    min-height:610px;
  }
}

@media(max-width:700px){
  .booth-page-hero{
    padding-top:78px;
    padding-bottom:65px;
  }

  .booth-page-content{
    padding-top:68px;
    padding-bottom:88px;
  }

  .booth-photo{
    min-height:500px;
  }

  .booth-copy{
    padding-top:4px;
  }

  .booth-enquire{
    padding:29px 25px 31px;
  }
}


/* =========================================================
   v3.2.2 — About Us
   Editorial, personal-feeling brand page without invented history.
   ========================================================= */

.about-hero{
  padding-top:105px;
  padding-bottom:82px;
}

.about-intro{
  background:var(--ivory);
  color:var(--black);
  padding:112px 0 122px;
}

.about-intro-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:100px;
  align-items:start;
}

.about-intro-heading h2{
  margin:18px 0 0;
  max-width:600px;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(3.4rem,5vw,5.7rem);
  font-weight:300;
  line-height:.94;
  letter-spacing:-.05em;
}

.about-intro-copy{
  padding-top:8px;
  max-width:650px;
}

.about-lead{
  margin:0 0 28px;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(2rem,2.6vw,3rem);
  font-weight:300;
  line-height:1.08;
  letter-spacing:-.035em;
  color:#191613;
}

.about-intro-copy > p:not(.about-lead){
  max-width:590px;
  color:#6d655d;
  line-height:1.8;
}

.about-story{
  background:#0b0a09;
  color:var(--ivory);
  padding:120px 0 128px;
}

.about-story-grid{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:100px;
  align-items:center;
}

.about-story-media{
  position:relative;
  min-height:690px;
  overflow:hidden;
  background:#17120f;
}

.about-featured-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.about-media-fallback{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:17px;
  background:
    radial-gradient(circle at 50% 42%,rgba(184,139,77,.18),transparent 34%),
    linear-gradient(145deg,#16110e,#090807);
  border:1px solid rgba(184,139,77,.14);
}

.about-fallback-monogram{
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:7rem;
  font-weight:300;
  letter-spacing:-.12em;
  color:#c09a62;
}

.about-media-fallback small{
  padding-left:.19em;
  color:#a98759;
  font-size:.58rem;
  font-weight:700;
  letter-spacing:.19em;
}

.about-story-copy h2{
  margin:19px 0 29px;
  max-width:620px;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(3.3rem,4.8vw,5.5rem);
  font-weight:300;
  line-height:.94;
  letter-spacing:-.05em;
}

.about-story-copy > p{
  max-width:560px;
  color:#aaa097;
  line-height:1.75;
}

.about-values{
  margin-top:43px;
  border-top:1px solid rgba(255,255,255,.12);
}

.about-value{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:32px;
  padding:22px 0;
  border-bottom:1px solid rgba(255,255,255,.12);
}

.about-value h3{
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:1.15rem;
  font-weight:400;
  color:#eee6dc;
}

.about-value p{
  margin:0;
  color:#928980;
  font-size:.82rem;
  line-height:1.65;
}

.about-editor{
  background:#e8ded0;
  color:#171411;
  padding:105px 0 112px;
}

.about-editor-grid{
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:90px;
}

.about-editor h2{
  margin:18px 0 0;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(3rem,4.4vw,5rem);
  font-weight:300;
  line-height:.96;
  letter-spacing:-.05em;
}

.about-editor .entry-content{
  max-width:690px;
  color:#625b54;
}

.about-cta{
  position:relative;
  overflow:hidden;
  background:#120d0a;
  padding:125px 0 132px;
  text-align:center;
}

.about-cta:before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:760px;
  height:430px;
  transform:translate(-50%,-50%);
  background:radial-gradient(
    ellipse at center,
    rgba(184,139,77,.11) 0%,
    rgba(184,139,77,.04) 42%,
    rgba(18,13,10,0) 72%
  );
  pointer-events:none;
}

.about-cta-inner{
  position:relative;
  z-index:1;
  max-width:880px;
}

.about-cta h2{
  margin:20px 0 26px;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(3.7rem,6vw,6.6rem);
  font-weight:300;
  line-height:.92;
  letter-spacing:-.055em;
}

.about-cta p{
  max-width:530px;
  margin:0 auto 34px;
  color:#a79e95;
  line-height:1.7;
}

.about-cta-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:30px;
  flex-wrap:wrap;
}

.about-contact-link{
  color:#d0a66d;
}

@media(max-width:1050px){
  .about-intro-grid,
  .about-story-grid,
  .about-editor-grid{
    grid-template-columns:1fr;
    gap:55px;
  }

  .about-intro-grid{
    gap:42px;
  }

  .about-story-media{
    min-height:600px;
  }

  .about-editor-grid{
    gap:36px;
  }
}

@media(max-width:700px){
  .about-hero{
    padding-top:78px;
    padding-bottom:65px;
  }

  .about-intro{
    padding:78px 0 84px;
  }

  .about-intro-heading h2{
    font-size:clamp(3rem,13vw,4.4rem);
  }

  .about-story{
    padding:80px 0 88px;
  }

  .about-story-media{
    min-height:500px;
  }

  .about-story-copy h2{
    font-size:clamp(3rem,13vw,4.4rem);
  }

  .about-value{
    grid-template-columns:1fr;
    gap:8px;
  }

  .about-editor{
    padding:78px 0 84px;
  }

  .about-cta{
    padding:90px 0 96px;
  }

  .about-cta h2{
    font-size:clamp(3.3rem,14vw,4.8rem);
  }

  .about-cta-actions{
    flex-direction:column;
    gap:20px;
  }
}


/* =========================================================
   v3.2.3 — Contact page
   ========================================================= */

.contact-hero{
  padding-top:105px;
  padding-bottom:82px;
}

.contact-main{
  background:var(--ivory);
  color:var(--black);
  padding:112px 0 122px;
}

.contact-grid{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:105px;
  align-items:start;
}

.contact-copy{
  position:sticky;
  top:150px;
}

.contact-copy h2{
  margin:18px 0 28px;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(3.5rem,5vw,5.6rem);
  font-weight:300;
  line-height:.94;
  letter-spacing:-.05em;
}

.contact-copy > p{
  max-width:470px;
  color:#6c645d;
  line-height:1.76;
}

.contact-points{
  margin-top:42px;
  border-top:1px solid rgba(20,16,13,.15);
}

.contact-point{
  display:grid;
  grid-template-columns:100px 1fr;
  gap:20px;
  padding:18px 0;
  border-bottom:1px solid rgba(20,16,13,.15);
}

.contact-point span{
  font-size:.65rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#9b7445;
}

.contact-point p{
  margin:0;
  color:#514a44;
  font-size:.84rem;
}

.contact-direct{
  margin-top:42px;
}

.contact-direct a{
  display:inline-block;
  margin-top:12px;
  color:#191613;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:1.45rem;
  font-weight:300;
  border-bottom:1px solid rgba(25,22,19,.28);
}

.contact-form-panel{
  padding:46px 48px 50px;
  background:#fffdf9;
  border:1px solid rgba(60,45,30,.09);
  box-shadow:0 24px 60px rgba(31,23,16,.07);
}

.tbb-contact-form{
  display:block;
}

.form-row{
  display:block;
  margin-bottom:24px;
}

.form-row.two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
}

.tbb-contact-form label > span{
  display:block;
  margin-bottom:9px;
  font-size:.63rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#705f50;
}

.tbb-contact-form input[type="text"],
.tbb-contact-form input[type="email"],
.tbb-contact-form input[type="tel"],
.tbb-contact-form input[type="date"],
.tbb-contact-form select,
.tbb-contact-form textarea{
  width:100%;
  border:0;
  border-bottom:1px solid rgba(30,24,19,.24);
  border-radius:0;
  background:transparent;
  color:#171411;
  padding:12px 0 13px;
  font-family:var(--sans);
  font-size:.9rem;
  outline:none;
  box-shadow:none;
}

.tbb-contact-form textarea{
  min-height:150px;
  resize:vertical;
  border:1px solid rgba(30,24,19,.18);
  padding:14px 15px;
}

.tbb-contact-form input:focus,
.tbb-contact-form select:focus,
.tbb-contact-form textarea:focus{
  border-color:#b1844e;
}

.privacy-check{
  display:flex !important;
  align-items:flex-start;
  gap:11px;
  margin:8px 0 28px;
}

.privacy-check input{
  margin-top:3px;
}

.privacy-check span{
  margin:0 !important;
  color:#746b63 !important;
  font-size:.72rem !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
  line-height:1.55;
  text-transform:none !important;
}

.contact-submit{
  min-width:180px;
  cursor:pointer;
}

.tbb-honeypot{
  position:absolute !important;
  left:-99999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}

.contact-error{
  margin-bottom:26px;
  padding:14px 16px;
  background:#f3e7df;
  border-left:3px solid #8e5d44;
  color:#5d4133;
  font-size:.8rem;
  line-height:1.55;
}

.contact-status{
  padding:18px 0 10px;
}

.contact-status h2{
  margin:18px 0 20px;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(3.5rem,5vw,5.6rem);
  font-weight:300;
  line-height:.94;
  letter-spacing:-.05em;
}

.contact-status p{
  max-width:520px;
  margin-bottom:30px;
  color:#665e57;
  line-height:1.7;
}

.contact-editor{
  background:#e8ded0;
  color:#171411;
  padding:95px 0 105px;
}

.contact-editor-inner{
  max-width:820px;
}

.contact-footer-cta{
  position:relative;
  overflow:hidden;
  background:#120d0a;
  padding:112px 0 120px;
  text-align:center;
}

.contact-footer-cta-inner{
  max-width:760px;
}

.contact-footer-cta h2{
  margin:19px 0 20px;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(3.5rem,5.4vw,5.9rem);
  font-weight:300;
  line-height:.94;
  letter-spacing:-.05em;
}

.contact-footer-cta p{
  max-width:490px;
  margin:0 auto 30px;
  color:#a99f95;
  line-height:1.7;
}

@media(max-width:1050px){
  .contact-grid{
    grid-template-columns:1fr;
    gap:62px;
  }

  .contact-copy{
    position:static;
  }
}

@media(max-width:700px){
  .contact-hero{
    padding-top:78px;
    padding-bottom:65px;
  }

  .contact-main{
    padding:78px 0 86px;
  }

  .contact-copy h2{
    font-size:clamp(3rem,13vw,4.4rem);
  }

  .contact-form-panel{
    padding:31px 24px 35px;
  }

  .form-row.two{
    grid-template-columns:1fr;
    gap:0;
  }

  .contact-direct a{
    font-size:1.2rem;
  }

  .contact-footer-cta{
    padding:84px 0 90px;
  }

  .contact-footer-cta h2{
    font-size:clamp(3rem,13vw,4.4rem);
  }
}


/* =========================================================
   v3.2.6 — FINAL WHOLE-SITE POLISH
   Consistency, accessibility, responsive behaviour and finishing.
   ========================================================= */

html{
  scroll-padding-top:210px;
}

#main:focus{
  outline:none;
}

.skip-link{
  position:fixed;
  left:18px;
  top:18px;
  z-index:9999;
  transform:translateY(-150%);
  padding:11px 15px;
  background:var(--gold);
  color:#111;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
  text-decoration:none;
  transition:transform .18s ease;
}

.skip-link:focus{
  transform:translateY(0);
}

a,
button,
input,
select,
textarea{
  -webkit-tap-highlight-color:transparent;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:2px solid var(--gold-soft);
  outline-offset:4px;
}

.btn{
  min-height:52px;
  padding-inline:25px;
  transition:
    background-color .22s ease,
    border-color .22s ease,
    color .22s ease,
    transform .22s ease;
}

.btn:hover{
  transform:translateY(-1px);
}

.text-link{
  min-height:42px;
}

.primary-nav a{
  transition:color .2s ease;
}

.primary-nav .current-menu-item > a{
  color:#fff;
}

.site-header{
  isolation:isolate;
}

.brand-centred .custom-logo{
  transition:filter .25s ease, transform .25s ease;
}

.custom-logo-link:hover .custom-logo{
  transform:translateY(-1px);
  filter:
    drop-shadow(0 4px 14px rgba(0,0,0,.48))
    drop-shadow(0 0 15px rgba(189,147,79,.10));
}

.booth-showcase{
  transition:transform .28s ease, border-color .28s ease;
}

.booth-showcase-image img{
  transition:transform .55s cubic-bezier(.2,.65,.25,1);
}

.booth-showcase:hover .booth-showcase-image img{
  transform:scale(1.025);
}

.feature-media img,
.booth-featured-image,
.about-featured-image{
  object-position:center center;
}

/* Generic page rhythm */
.page-hero .page-grid{
  align-items:end;
}

.page-content,
.booth-page-content,
.about-intro,
.contact-main{
  scroll-margin-top:210px;
}

/* Booth pages */
.booth-photo{
  overflow:hidden;
}

.booth-featured-image{
  transition:transform .6s cubic-bezier(.2,.65,.25,1);
}

.booth-photo:hover .booth-featured-image{
  transform:scale(1.018);
}

.spec{
  min-height:52px;
}

.booth-enquire{
  box-shadow:0 18px 42px rgba(40,30,20,.055);
}

/* Contact form finishing */
.tbb-contact-form input,
.tbb-contact-form select{
  min-height:47px;
}

.tbb-contact-form select{
  cursor:pointer;
}

.tbb-contact-form input[type="checkbox"]{
  accent-color:var(--gold);
}

.contact-submit{
  min-width:190px;
}

.contact-direct a,
.footer-links a{
  overflow-wrap:anywhere;
}

.contact-status .text-link{
  color:#8e672f;
}

/* Footer */
.site-footer{
  padding-top:82px;
}

.footer-links a{
  display:inline-block;
  padding:2px 0;
  transition:color .18s ease, transform .18s ease;
}

.footer-links a:hover{
  transform:translateX(2px);
}

.footer-bottom{
  align-items:center;
}

/* Reduce motion for visitors who request it */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,
  *:before,
  *:after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* Tablet */
@media(max-width:1050px){
  html{
    scroll-padding-top:190px;
  }

  .booth-collection-grid{
    gap:1px;
  }

  .booth-showcase{
    min-height:520px;
  }

  .about-story-grid,
  .contact-grid,
  .booth-detail{
    align-items:start;
  }
}

/* Mobile */
@media(max-width:700px){
  html{
    scroll-padding-top:125px;
  }

  body.nav-open{
    overflow:hidden;
  }

  .brand-masthead-inner{
    min-height:112px;
  }

  .brand-centred .custom-logo{
    max-height:96px;
    max-width:205px;
  }

  .nav-bar .primary-nav{
    top:112px;
    max-height:calc(100vh - 112px);
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:15px 22px 23px;
    box-shadow:0 22px 42px rgba(0,0,0,.38);
  }

  .nav-bar .primary-nav li{
    padding:0;
    border-bottom:1px solid rgba(255,255,255,.07);
  }

  .nav-bar .primary-nav li:last-child{
    border-bottom:0;
  }

  .nav-bar .primary-nav a{
    padding:14px 2px;
    font-size:.69rem;
  }

  .nav-bar .primary-nav a:after{
    bottom:8px;
  }

  .menu-toggle{
    min-width:54px;
    min-height:44px;
    padding:0;
    cursor:pointer;
  }

  .home-hero{
    min-height:650px;
  }

  .hero-content{
    padding-bottom:62px;
  }

  .hero-content p{
    font-size:.94rem;
  }

  .hero-actions{
    gap:16px 22px;
  }

  .booth-collection-head{
    gap:22px;
  }

  .booth-showcase{
    min-height:480px;
  }

  .feature-media,
  .booth-photo,
  .about-story-media{
    min-height:470px;
  }

  .feature-copy h2,
  .booth-copy h2,
  .about-story-copy h2,
  .contact-copy h2{
    line-height:.96;
  }

  .booth-enquire{
    margin-top:36px;
  }

  .contact-point{
    grid-template-columns:82px 1fr;
  }

  .contact-direct a{
    font-size:1.05rem;
  }

  .contact-form-panel{
    box-shadow:0 14px 35px rgba(31,23,16,.055);
  }

  .footer-brand h2{
    font-size:clamp(2.8rem,13vw,4.2rem);
  }

  .footer-bottom small{
    display:block;
    line-height:1.5;
  }
}


/* =========================================================
   v3.2.7 — booth enquiry heading readability fix
   Removes the metallic gradient that became too pale on the
   ivory/champagne panel. Keeps only the final word as gold.
   ========================================================= */

.booth-enquire h3{
  background:none !important;
  -webkit-background-clip:border-box !important;
  background-clip:border-box !important;
  -webkit-text-fill-color:#33271d !important;
  color:#33271d !important;
  text-shadow:none !important;
}

.booth-enquire h3 .booth-enquire-accent{
  color:#b98743 !important;
  -webkit-text-fill-color:#b98743 !important;
}


/* =========================================================
   v3.2.8 — Selfie Booth full-length image treatment
   Keeps Magic Mirror / Oval / 360 image crops unchanged.
   ========================================================= */

.booth-photo-selfie-booths{
  background:#16110e;
}

.booth-photo-selfie-booths .booth-featured-image{
  object-fit:contain !important;
  object-position:center center !important;
  padding:18px;
  background:#16110e;
}

@media(max-width:1050px){
  .booth-photo-selfie-booths .booth-featured-image{
    padding:14px;
  }
}

@media(max-width:700px){
  .booth-photo-selfie-booths .booth-featured-image{
    padding:10px;
  }
}


/* =========================================================
   v3.2.9 — Selfie Booth image treatment, second pass
   Full booth visible without the empty dark-box appearance.
   ========================================================= */

.booth-photo-selfie-booths{
  position:relative;
  overflow:hidden;
  background:#17120f;
}

/* Soft full-bleed version of the same image behind the main image. */
.booth-photo-selfie-booths:before{
  content:"";
  position:absolute;
  inset:-26px;
  background-image:
    linear-gradient(rgba(10,8,7,.28),rgba(10,8,7,.28)),
    var(--selfie-bg);
  background-size:cover;
  background-position:center;
  filter:blur(18px) brightness(.78);
  transform:scale(1.08);
  z-index:0;
}

/* Very subtle dark veil to keep it cinematic. */
.booth-photo-selfie-booths:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    90deg,
    rgba(8,7,6,.18) 0%,
    rgba(8,7,6,.02) 48%,
    rgba(8,7,6,.18) 100%
  );
  z-index:1;
  pointer-events:none;
}

.booth-photo-selfie-booths .booth-featured-image{
  position:absolute;
  z-index:2;
  inset:18px;
  width:calc(100% - 36px);
  height:calc(100% - 36px);
  object-fit:contain !important;
  object-position:center center !important;
  padding:0 !important;
  background:transparent !important;
  box-shadow:0 18px 38px rgba(0,0,0,.18);
}

/* Do not zoom this image on hover — preserving the full booth is the priority. */
.booth-photo-selfie-booths:hover .booth-featured-image{
  transform:none !important;
}

@media(max-width:1050px){
  .booth-photo-selfie-booths .booth-featured-image{
    inset:14px;
    width:calc(100% - 28px);
    height:calc(100% - 28px);
  }
}

@media(max-width:700px){
  .booth-photo-selfie-booths .booth-featured-image{
    inset:10px;
    width:calc(100% - 20px);
    height:calc(100% - 20px);
  }
}


/* =========================================================
   v3.3.0 — FINAL SITE COMPLETION
   Legal pages, cookie notice, 404, launch readiness.
   ========================================================= */

/* Contact privacy link */
.privacy-check a{
  color:#9a6e38;
  text-decoration:underline;
  text-underline-offset:2px;
}
.privacy-check a:hover{
  color:#6d4b25;
}

/* Legal pages */
.legal-hero{
  padding-top:105px;
  padding-bottom:82px;
}

.legal-page{
  background:var(--ivory);
  color:var(--black);
  padding:104px 0 122px;
}

.legal-layout{
  display:grid;
  grid-template-columns:300px minmax(0,760px);
  gap:100px;
  align-items:start;
  justify-content:center;
}

.legal-summary{
  position:sticky;
  top:160px;
  padding:28px 0;
  border-top:1px solid rgba(30,24,19,.18);
  border-bottom:1px solid rgba(30,24,19,.18);
}

.legal-summary p{
  margin:18px 0 0;
  color:#6a625a;
  font-size:.84rem;
  line-height:1.7;
}

.legal-summary a{
  color:#8e642e;
}

.legal-content{
  max-width:760px;
}

.legal-updated{
  margin-bottom:46px !important;
  color:#95897f !important;
  font-size:.72rem !important;
  text-transform:uppercase;
  letter-spacing:.12em;
}

.legal-content h2{
  margin:48px 0 14px;
  color:#201b17;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(1.75rem,2.5vw,2.55rem);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.025em;
}

.legal-content h2:first-of-type{
  margin-top:0;
}

.legal-content p{
  color:#625b54;
  font-size:.94rem;
  line-height:1.8;
}

.legal-content a{
  color:#8c642f;
  text-decoration:underline;
  text-underline-offset:3px;
}

/* Cookie information notice: no accept/reject because the current theme
   intentionally loads no non-essential analytics/advertising cookies. */
.cookie-notice[hidden]{
  display:none !important;
}

.cookie-notice{
  position:fixed;
  z-index:9998;
  left:22px;
  right:22px;
  bottom:22px;
  pointer-events:none;
}

.cookie-notice-inner{
  max-width:980px;
  margin:0 auto;
  padding:18px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  background:rgba(13,11,9,.97);
  border:1px solid rgba(190,150,92,.28);
  box-shadow:0 18px 55px rgba(0,0,0,.38);
  backdrop-filter:blur(12px);
  pointer-events:auto;
}

.cookie-notice p{
  margin:0;
  max-width:690px;
  color:#c9c0b7;
  font-size:.76rem;
  line-height:1.55;
}

.cookie-notice p strong{
  color:#f0e7dd;
}

.cookie-notice-actions{
  display:flex;
  align-items:center;
  gap:17px;
  flex-shrink:0;
}

.cookie-notice-actions a{
  color:#c9a46d;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.cookie-notice-dismiss{
  min-width:58px;
  min-height:40px;
  border:1px solid #b88b4d;
  background:#b88b4d;
  color:#12100d;
  font:inherit;
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.12em;
  cursor:pointer;
}

/* Footer legal links */
.footer-legal{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:18px;
}

.footer-legal a{
  color:#81776e;
  font-size:.62rem;
  letter-spacing:.06em;
}

.footer-legal a:hover{
  color:#d2ad77;
}

/* 404 */
.not-found-page{
  min-height:650px;
  display:flex;
  align-items:center;
  background:
    radial-gradient(circle at 65% 40%,rgba(184,139,77,.08),transparent 28%),
    #0a0908;
  padding:110px 0;
}

.not-found-inner{
  max-width:880px;
}

.not-found-page h1{
  margin:20px 0 26px;
  font-family:"Josefin Sans","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(4.5rem,8vw,8rem);
  font-weight:300;
  line-height:.9;
  letter-spacing:-.055em;
}

.not-found-page p{
  max-width:490px;
  margin-bottom:34px;
  color:#a89e94;
  line-height:1.7;
}

.not-found-actions{
  display:flex;
  align-items:center;
  gap:28px;
  flex-wrap:wrap;
}

/* Make generic/editor content pages pleasant too. */
.content-narrow{
  width:min(820px,calc(100% - 44px));
  margin-inline:auto;
}

.entry-content article + article{
  margin-top:45px;
  padding-top:45px;
  border-top:1px solid rgba(30,24,19,.12);
}

/* Launch/staging admin bar should not visually affect header geometry. */
body.admin-bar .site-header{
  top:0;
}

/* Mobile */
@media(max-width:1050px){
  .legal-layout{
    grid-template-columns:1fr;
    gap:55px;
  }

  .legal-summary{
    position:static;
    max-width:700px;
  }
}

@media(max-width:700px){
  .legal-hero{
    padding-top:78px;
    padding-bottom:65px;
  }

  .legal-page{
    padding:76px 0 88px;
  }

  .legal-layout{
    gap:42px;
  }

  .legal-content h2{
    margin-top:38px;
    font-size:clamp(1.7rem,8vw,2.25rem);
  }

  .cookie-notice{
    left:12px;
    right:12px;
    bottom:12px;
  }

  .cookie-notice-inner{
    padding:16px;
    align-items:flex-start;
    flex-direction:column;
    gap:14px;
  }

  .cookie-notice-actions{
    width:100%;
    justify-content:space-between;
  }

  .footer-legal{
    justify-content:flex-start;
    gap:12px 16px;
    margin-top:12px;
  }

  .not-found-page{
    min-height:560px;
    padding:85px 0;
  }

  .not-found-page h1{
    font-size:clamp(3.8rem,16vw,5.3rem);
  }

  .not-found-actions{
    align-items:flex-start;
    flex-direction:column;
    gap:18px;
  }
}


/* =========================================================
   v3.3.1 — CONTACT FORM SEND BUTTON FIX
   ========================================================= */
.contact-submit-row{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  margin-top:10px;
}

.tbb-contact-form .contact-submit{
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-width:210px;
  min-height:54px;
  padding:16px 28px;
  margin:0;
  border:1px solid #171411 !important;
  border-radius:0;
  background:#171411 !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  font-family:var(--sans);
  font-size:.68rem;
  font-weight:800;
  line-height:1;
  letter-spacing:.16em;
  text-transform:uppercase;
  cursor:pointer;
  opacity:1 !important;
  visibility:visible !important;
  position:relative;
  z-index:3;
}

.tbb-contact-form .contact-submit:hover{
  background:#b88b4d !important;
  border-color:#b88b4d !important;
  color:#171411 !important;
  -webkit-text-fill-color:#171411 !important;
}

@media(max-width:700px){
  .contact-submit-row{
    width:100%;
  }
  .tbb-contact-form .contact-submit{
    width:100%;
    min-width:0;
    min-height:56px;
  }
}


/* =========================================================
   v3.3.2 — PRIVACY CHECKBOX SIZE / ALIGNMENT FIX
   ========================================================= */

.privacy-check{
  display:flex !important;
  align-items:flex-start;
  gap:10px;
  margin:12px 0 28px;
}

.privacy-check input[type="checkbox"]{
  appearance:auto !important;
  -webkit-appearance:checkbox !important;
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  min-height:16px !important;
  max-width:16px !important;
  max-height:16px !important;
  margin:2px 0 0 !important;
  padding:0 !important;
  border:0 !important;
  flex:0 0 16px;
  accent-color:#b88b4d;
}

.privacy-check span{
  flex:1 1 auto;
  margin:0 !important;
  line-height:1.55;
}

@media(max-width:700px){
  .privacy-check{
    gap:9px;
  }

  .privacy-check input[type="checkbox"]{
    width:16px !important;
    height:16px !important;
    min-width:16px !important;
    min-height:16px !important;
  }
}
