/* Speedster Collective - private concept */
:root{--ink:#191a19;--black:#151615;--char:#232321;--gold:#c7a26b;--gold2:#a7834e;--cream:#f3eee5;--pale:#e6ded1;--white:#faf9f5;--muted:#766f65}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}.preview-banner{text-align:center;background:#a78247;color:#141414;font-weight:800;letter-spacing:2.2px;font-size:10px;padding:9px}.preview-banner span{padding:0 8px}.site-head{position:relative;background:#181919;display:flex;align-items:center;justify-content:space-between;padding:20px clamp(22px,4vw,68px);border-bottom:1px solid #34342f;z-index:5;gap:20px}.brand{display:flex;flex-direction:column;width:min(250px,33vw);min-width:170px;align-items:center;color:var(--gold)}.brand-emblem{height:49px;width:100%;position:relative;background:var(--gold);-webkit-mask:url('assets/wordmark.png') center/contain no-repeat;mask:url('assets/wordmark.png') center/contain no-repeat}.brand-fallback{position:absolute;opacity:0;font-size:24px;font-style:italic}.brand-under{font-size:11px;font-weight:700;letter-spacing:7.4px;margin-top:2px;padding-left:7px;color:#f1e9db}.navigation{display:flex;align-items:center;gap:clamp(11px,1.7vw,28px)}.navigation a{font-size:10px;letter-spacing:1.15px;font-weight:800;color:#eae5dd;transition:color .2s}.navigation a:hover,.navigation a[aria-current=page]{color:var(--gold)}.navigation .nav-enquire{padding:13px 17px;border:1px solid #a28051;color:var(--gold)}.menu-toggle{display:none}.eyebrow{font-size:10px!important;font-weight:800!important;letter-spacing:2.6px!important;color:var(--gold2)!important;line-height:1.6!important}.hero{display:grid;grid-template-columns:42% 58%;background:var(--black);min-height:640px}.hero-copy{padding:70px clamp(25px,5vw,84px);display:flex;flex-direction:column;align-items:start;justify-content:center}.hero .eyebrow{color:#c4a46c!important}.hero h1{font-size:clamp(61px,7vw,112px);color:#f5efe7;letter-spacing:-.076em;line-height:.95;font-weight:850;margin:22px 0 26px}.hero h1 em,.page-lead h1 em{font-style:normal;color:var(--gold)}.hero-intro{font-size:15px;line-height:1.75;color:#c4bcb1;max-width:385px;margin-bottom:31px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:19px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;font-size:11px;font-weight:900;letter-spacing:1.3px;padding:17px 21px;transition:background .2s,transform .2s;border:0;min-height:52px}.btn:hover{transform:translateY(-2px)}.btn-gold{background:var(--gold);color:#171612}.btn-gold:hover{background:#e4ba7d}.text-action{font-size:10px;color:#e3d8c8;letter-spacing:1.2px;font-weight:800}.hero-photo{position:relative;min-height:560px;overflow:hidden}.cover-image{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.hero-photo .cover-image{object-position:60% center}.hero-photo-caption{position:absolute;right:25px;bottom:25px;background:#161615dc;color:white;padding:13px 18px;font-size:10px;letter-spacing:1.6px;font-weight:800}.hero-photo-caption span{color:var(--gold)}.fact-strip{background:#2a2926;color:#eee9df;display:flex;justify-content:space-around;gap:18px;flex-wrap:wrap;padding:19px 20px;font-size:10px;letter-spacing:2px;font-weight:800}.section{padding:clamp(52px,8vw,113px) clamp(22px,5.5vw,88px)}.cream{background:var(--cream)}.white{background:var(--white)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:39px}.section-heading h2,.editorial-copy h2{font-weight:850;font-size:clamp(42px,5.3vw,83px);letter-spacing:-.067em;line-height:1.03;margin:12px 0 0}.section-heading>p{max-width:325px;line-height:1.8;color:var(--muted);font-size:14px;margin-bottom:4px}.occasion-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.occasion-card{background:var(--pale);overflow:hidden}.occasion-card>img{width:100%;aspect-ratio:1.22;object-fit:cover;transition:transform .3s}.occasion-card:hover>img{transform:scale(1.025)}.occasion-details{padding:23px;display:block;min-height:132px}.occasion-details strong{display:flex;justify-content:space-between;gap:10px;letter-spacing:-.4px;font-size:17px}.occasion-details strong b{color:#886b40}.occasion-details small{font-size:13px;color:#756d62;line-height:1.65;display:block;margin-top:10px}.image-disclaimer{color:#797368;font-size:10px;margin:17px 0 0}.editorial-split{display:grid;grid-template-columns:53% 47%;min-height:620px;background:#e9e1d6}.editorial-split.reverse{grid-template-columns:47% 53%}.editorial-split.reverse .editorial-photo{order:2}.editorial-photo{position:relative;min-height:540px}.editorial-photo img{width:100%;height:100%;position:absolute;object-fit:cover;inset:0}.editorial-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(35px,6vw,95px)}.editorial-copy h2{margin:8px 0 26px}.editorial-copy p:not(.eyebrow){color:#625b51;line-height:1.85;font-size:15px;max-width:470px}.underlink{display:inline-block;margin-top:18px;padding-bottom:11px;font-size:11px;letter-spacing:1.5px;font-weight:900;border-bottom:1px solid #967951;color:#5d492b}.process-grid,.use-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:27px}.process-grid>div,.use{border-top:1px solid #a69b8b;padding-top:24px}.process-grid span,.use-no{font-size:15px;color:#a38450;font-weight:700}.process-grid h3,.use h3{font-size:18px;letter-spacing:-.7px;margin:20px 0 12px}.process-grid p,.use p{max-width:300px;color:var(--muted);line-height:1.8;font-size:13px}.cta-section{text-align:center;background:#181919;padding:clamp(60px,8vw,105px) 20px}.cta-section h2{font-size:clamp(41px,6vw,87px);font-weight:850;letter-spacing:-.066em;line-height:1.05;color:#f3efe8;max-width:950px;margin:17px auto 19px}.cta-section>p:not(.eyebrow){font-size:14px;color:#aca59d;line-height:1.8;max-width:540px;margin:0 auto 26px}.foot{padding:50px clamp(22px,5.5vw,88px) 22px;background:#111211;color:#e6ded1}.foot-top{display:flex;justify-content:space-between;gap:25px;margin-bottom:60px}.foot-mark{font-size:22px;font-style:italic;font-weight:850;letter-spacing:-1px;color:var(--gold)}.foot-mark span{font-size:10px;letter-spacing:2px;font-style:normal;color:#e4dfd6}.foot p{color:#a8a097;line-height:1.8;font-size:13px;margin-top:12px}.foot-links{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;max-width:500px}.foot-links a{font-size:11px;letter-spacing:1px}.foot-bottom{border-top:1px solid #3b3a37;padding-top:19px;display:flex;gap:20px;justify-content:space-between;flex-wrap:wrap;color:#8c887f;font-size:9px;letter-spacing:1px;line-height:1.6}.page-hero{display:grid;grid-template-columns:48% 52%;min-height:590px;background:#171818}.page-lead{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(45px,6vw,95px);color:#f4eee4}.page-lead h1{font-size:clamp(60px,7.3vw,113px);font-weight:850;letter-spacing:-.072em;line-height:.98;margin:14px 0 29px}.page-lead>p:not(.eyebrow){font-size:16px;line-height:1.75;max-width:500px;color:#c3bdb3;margin-bottom:30px}.page-media{position:relative;min-height:520px}.page-media img{object-position:center}.gallery-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;grid-template-rows:220px 220px;gap:15px}.gallery-photo{padding:0;border:0;position:relative;overflow:hidden;background:#242424}.gallery-photo.feature{grid-row:span 2}.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.gallery-photo:hover img{transform:scale(1.03)}.gallery-photo span{position:absolute;right:12px;bottom:12px;background:#171817d9;color:white;font-size:10px;letter-spacing:1px;padding:8px 11px}.lightbox[hidden]{display:none}.lightbox{position:fixed;inset:0;z-index:40;background:#090909ef;display:flex;align-items:center;justify-content:center;padding:70px 30px 30px}.lightbox>img{max-width:96vw;max-height:83vh;object-fit:contain}.lightbox-close{position:absolute;right:25px;top:18px;background:transparent;border:0;color:white;font-size:42px}.service-hero .page-lead h1{font-size:clamp(60px,7vw,108px)}.contact-wrapper{display:grid;grid-template-columns:44% 56%;min-height:740px;background:#191919}.contact-intro{padding:clamp(40px,6vw,95px);color:#eee8dc}.contact-intro h1{font-size:clamp(54px,6vw,96px);line-height:.98;letter-spacing:-.07em;margin:17px 0 25px}.contact-intro h1 em{font-style:normal;color:var(--gold)}.contact-intro>p:not(.eyebrow){font-size:15px;color:#bcb5aa;line-height:1.8}.contact-facts{margin-top:58px}.contact-facts>div{display:flex;align-items:center;gap:18px;border-top:1px solid #47423a;padding:11px 0}.contact-facts span{font-size:13px;color:var(--gold)}.contact-facts p{color:#c8c1b6;margin:0;font-size:13px}.form-card{background:var(--cream);padding:clamp(32px,5vw,80px)}.form-card h2{font-size:clamp(33px,3.5vw,58px);letter-spacing:-.05em;margin:13px 0 25px}.demo-warning{background:#e9dbc6;color:#6b4a23;padding:14px 16px;font-size:12px;line-height:1.6;margin-bottom:22px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-card label{display:flex;flex-direction:column;gap:9px;font-size:10px;letter-spacing:1.3px;font-weight:800;margin-bottom:20px}.form-card input:not([type=checkbox]),.form-card select,.form-card textarea{width:100%;background:#fffcf7;border:1px solid #cfc6b7;border-radius:0;padding:14px 13px;outline-color:var(--gold2);font-size:13px;letter-spacing:0;color:#302b26}.form-card textarea{resize:vertical}.form-card label.tick{flex-direction:row;align-items:flex-start;gap:10px;font-size:12px;font-weight:400;letter-spacing:0;line-height:1.5}.form-card label.tick input{accent-color:var(--gold2);margin-top:2px}.form-card .send{min-width:210px}.form-footnote{font-size:11px;color:var(--muted);margin-top:15px;line-height:1.6}.demo-result{padding:20px;background:#e9dbc6;color:#402b13;font-size:14px;line-height:1.6;margin-top:20px}
@media(max-width:1160px){.navigation{gap:10px}.navigation a{font-size:9px}.site-head{padding:17px 25px}.hero h1{font-size:clamp(60px,7vw,84px)}.hero-copy{padding:48px 35px}.page-lead{padding:45px}.page-lead h1{font-size:clamp(60px,6.5vw,90px)}}
@media(max-width:830px){.menu-toggle{display:flex;flex-direction:column;gap:5px;justify-content:center;align-items:center;border:1px solid #7c6b56;background:transparent;width:44px;height:42px}.menu-toggle span{display:block;width:20px;height:2px;background:#e7dbca}.navigation{display:none;flex-direction:column;align-items:stretch;position:absolute;left:0;right:0;top:100%;background:#1c1d1b;padding:20px 25px 25px;border-bottom:1px solid #786449;gap:0}.navigation.is-open{display:flex}.navigation a{font-size:12px;padding:14px 0;border-bottom:1px solid #363632}.navigation .nav-enquire{text-align:center;margin-top:15px}.hero{grid-template-columns:1fr}.hero-copy{padding:52px 35px 44px}.hero h1{font-size:clamp(68px,13vw,110px)}.hero-photo{min-height:490px}.page-hero{grid-template-columns:1fr}.page-lead{padding:55px 35px}.page-media{min-height:480px}.editorial-split,.editorial-split.reverse{grid-template-columns:1fr}.editorial-split.reverse .editorial-photo{order:0}.editorial-photo{min-height:440px}.editorial-copy{padding:60px 35px}.section-heading{align-items:start;flex-direction:column;gap:13px}.section-heading>p{max-width:500px}.contact-wrapper{grid-template-columns:1fr}.contact-intro{padding:55px 35px 35px}.contact-facts{margin-top:30px}.form-card{padding:50px 35px}.gallery-grid{grid-template-rows:200px 200px}.occasion-details{padding:16px}.occasion-details strong{font-size:14px}}
@media(max-width:590px){.preview-banner{font-size:8px;letter-spacing:1px}.site-head{padding:14px 19px}.brand{width:185px;min-width:150px}.brand-emblem{height:35px}.brand-under{font-size:9px;letter-spacing:5.6px}.hero-copy{padding:46px 22px 35px}.hero h1{font-size:clamp(63px,15vw,92px)}.hero-intro{font-size:14px}.hero-photo{min-height:300px}.hero-photo-caption{right:12px;bottom:12px;font-size:9px;padding:9px}.fact-strip{gap:10px;justify-content:center;font-size:8px;letter-spacing:1.3px;padding:14px}.section{padding:54px 20px}.section-heading h2,.editorial-copy h2{font-size:clamp(40px,10vw,66px)}.occasion-grid,.process-grid,.use-grid{grid-template-columns:1fr;gap:17px}.occasion-card>img{aspect-ratio:1.38}.occasion-details{min-height:0;padding:20px}.occasion-details strong{font-size:17px}.editorial-photo{min-height:320px}.editorial-copy{padding:48px 22px}.process-grid>div,.use{padding-top:18px}.cta-section{padding:67px 20px}.cta-section h2{font-size:clamp(40px,10vw,60px)}.foot{padding:44px 20px 20px}.foot-top{flex-direction:column;margin-bottom:35px}.foot-links{gap:13px 19px}.page-lead{padding:50px 23px}.page-lead h1,.service-hero .page-lead h1{font-size:clamp(52px,12vw,86px)}.page-media{min-height:325px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:250px 190px 190px;gap:10px}.gallery-photo.feature{grid-column:span 2;grid-row:span 1}.gallery-photo:last-child{grid-column:span 2}.contact-intro{padding:48px 22px}.contact-intro h1{font-size:clamp(49px,11vw,80px)}.form-card{padding:40px 22px}.field-row{grid-template-columns:1fr;gap:0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* Reference-matched 356 badge typography. Original artwork displayed unmodified. */
.brand{width:270px;min-width:190px;flex-shrink:0}
.brand-emblem{height:auto;aspect-ratio:12.8;background:none;-webkit-mask:none;mask:none;mix-blend-mode:lighten}
.badge-art{display:block;width:100%;height:auto;overflow:hidden;aspect-ratio:12.8}
.brand-under{font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:400;letter-spacing:7px;line-height:1.5;margin-top:8px;padding-left:7px;color:#eee8de}
.brand-location{font-size:5.5px;letter-spacing:3.3px;font-weight:400;line-height:1.5;margin-top:6px;color:#d7cfc3;white-space:nowrap}
.foot-mark{width:min(340px,100%);font-size:inherit;text-align:center;letter-spacing:normal}
.foot-mark .badge-art{mix-blend-mode:lighten}
.foot-mark>span{display:block;font-size:15px;font-weight:400;letter-spacing:9px;margin-top:12px;padding-left:9px;color:#eee8de}
.foot-mark>small{display:block;font-size:7px;font-weight:400;letter-spacing:4px;margin:12px 0 24px;color:#d7cfc3}
@media(max-width:1160px){.brand{width:230px;min-width:190px}}
@media(max-width:590px){.brand{width:230px;min-width:0}.brand-emblem{height:auto}.brand-under{font-size:10px;letter-spacing:6px;margin-top:7px}.brand-location{font-size:5px;letter-spacing:2.6px;margin-top:5px}.site-head{min-height:100px}.foot-mark{width:290px}}

/* Audiowide heading preview — locally hosted, SIL Open Font License. */
@font-face{font-family:Audiowide;src:url('assets/fonts/audiowide-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
h1,h2,h3{font-family:Audiowide,Arial,sans-serif!important;font-weight:400!important;letter-spacing:-.025em!important;overflow-wrap:normal}
h1,h2{color:var(--gold2)}
.hero h1{font-size:clamp(48px,6.3vw,96px);line-height:1.08;color:var(--gold)}
.hero h1 em,.page-lead h1 em{color:var(--gold)}
.page-lead h1,.service-hero .page-lead h1,.contact-intro h1{font-size:clamp(32px,4.6vw,66px);line-height:1.15;color:var(--gold)}
.section-heading h2,.editorial-copy h2{font-size:clamp(30px,3.8vw,60px);line-height:1.2}
.cta-section h2{font-size:clamp(30px,3.8vw,60px);line-height:1.2;color:var(--gold)}
.form-card h2{font-size:clamp(27px,3vw,43px);line-height:1.2}
h3{line-height:1.4}
@media(max-width:590px){.hero h1{font-size:clamp(42px,11vw,62px)}.page-lead h1,.service-hero .page-lead h1,.contact-intro h1{font-size:clamp(26px,7.5vw,42px)}.section-heading h2,.editorial-copy h2,.cta-section h2{font-size:clamp(25px,7vw,38px)}.form-card h2{font-size:27px}}

/* Portrait wedding photography: preserve original framing. */
.weddings-page .page-media{aspect-ratio:4/5;min-height:0}
.weddings-page .page-media .cover-image{object-position:center}
.wedding-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.wedding-photo-grid .gallery-photo{aspect-ratio:4/5;grid-column:auto;grid-row:auto}
.wedding-photo-grid .gallery-photo img{display:block;width:100%;height:100%;object-fit:cover}
.wedding-photo-grid .gallery-photo:focus-visible{outline:3px solid var(--gold2);outline-offset:4px}
@media(max-width:830px){.wedding-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:590px){.wedding-photo-grid{grid-template-columns:1fr;gap:18px}.weddings-page .page-media{min-height:0;aspect-ratio:4/5}}

/* Film portraits and landscape hero. */
.film-page .page-media .cover-image{object-position:60% center}
.film-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.film-photo-grid .gallery-photo{aspect-ratio:4/5;grid-column:auto;grid-row:auto}
.film-photo-grid .gallery-photo img{width:100%;height:100%;object-fit:cover}
.film-photo-grid .gallery-photo:focus-visible{outline:3px solid var(--gold2);outline-offset:4px}
@media(max-width:830px){.film-page .page-media{min-height:0;aspect-ratio:3/2}}
@media(max-width:590px){.film-photo-grid{grid-template-columns:1fr;gap:18px}}

/* Homepage portrait hero framing. */
.home-page .hero-photo .cover-image{object-position:50% 35%}
@media(max-width:830px){.home-page .hero-photo{min-height:0;aspect-ratio:4/5}}

/* Homepage enquiry actions and rates. */
.home-page .hero h1{font-size:clamp(34px,4.4vw,68px);line-height:1.16;max-width:100%;overflow-wrap:normal}
.mobile-whatsapp{display:none}
.btn-whatsapp{background:transparent;border:1px solid var(--gold);color:var(--gold)}
.btn-whatsapp:disabled{opacity:.65;cursor:default;transform:none}
.whatsapp-pending{width:100%;color:#c4bcb1;font-size:11px;line-height:1.5}
.rates-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:start}
.rate-card{padding:clamp(25px,4vw,56px);background:var(--black);color:#ded5c8;border-top:3px solid var(--gold)}
.rate-card h2{font-size:22px;color:var(--gold);line-height:1.4}.rate-card h2 strong{display:block;font-weight:400;font-size:clamp(40px,5vw,72px)}
.rate-card p,.rate-details p{line-height:1.8}.rate-duration{font-size:20px;color:#f3eee5}.rate-card .btn{margin-top:20px}
.rate-details h2{font-size:clamp(26px,3vw,44px);line-height:1.25}.rate-details p{color:var(--muted)}
#enquiry-form{scroll-margin-top:30px}
@media(max-width:1050px) and (min-width:831px){.site-head{flex-wrap:wrap}.navigation{flex:1;justify-content:flex-end;flex-wrap:wrap}}
@media(max-width:830px){.rates-grid{grid-template-columns:1fr}}
@media(max-width:590px){.home-page .hero h1{font-size:clamp(30px,9vw,48px)}}
@media(max-width:830px) and (pointer:coarse){.btn.mobile-whatsapp{display:inline-flex}.whatsapp-pending.mobile-whatsapp{display:block}}

/* Matric photography keeps the couple and car in frame. */
.matric-page .page-media .cover-image{object-position:65% center}
.matric-photo-grid{display:grid;grid-template-columns:minmax(0,1fr);max-width:1000px;margin-inline:auto}
.matric-photo-grid .gallery-photo{aspect-ratio:4/3;grid-column:auto;grid-row:auto}
.matric-photo-grid .gallery-photo img{display:block;object-fit:contain}
.matric-photo-grid .gallery-photo:focus-visible{outline:3px solid var(--gold2);outline-offset:4px}
@media(max-width:830px){.matric-page .page-media{min-height:0;aspect-ratio:4/3}}

/* Cape Speedster: retain the original gold badge lettering. */
.brand-cape,.foot-mark>.brand-cape{display:block;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-size:12px;font-weight:400;letter-spacing:7px;line-height:1.5;color:var(--gold);margin:0 0 9px;padding-left:7px}
.brand-location{margin-top:10px}
.foot-mark>.brand-cape{font-size:15px;letter-spacing:9px;padding-left:9px;margin-bottom:12px}

.cape-logo{display:block;width:100%;height:auto;overflow:hidden}.foot-mark .cape-logo{margin-bottom:14px}

.pending-fields{border:0;margin:24px 0 0;padding:0;min-width:0;opacity:.6}
