@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,500;1,600;1,700;1,800;1,900&family=Manrope:wght@400;500;600;700;800&display=swap');

:root { --ink:#070707; --panel:#111; --muted:#a1a1a1; --line:rgba(255,255,255,.13); --red:#ef1515; --red-light:#ff4a42; --white:#f8f8f7; --font-display:'Barlow Condensed', Impact, sans-serif; --font-body:Manrope,Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--ink); }
body { margin:0; color:var(--white); background:var(--ink); font-family:var(--font-body); overflow-x:hidden; }
body::before { content:""; position:fixed; z-index:-2; inset:0; background:radial-gradient(circle at 15% 10%, rgba(208,9,9,.12), transparent 27rem), radial-gradient(circle at 85% 47%,rgba(134,0,0,.08),transparent 32rem),#070707; }
a { color:inherit; text-decoration:none; } button,input,textarea { font:inherit; } button { cursor:pointer; }
.skip-link { position:fixed; top:1rem; left:1rem; z-index:100; padding:.75rem 1rem; background:white; color:black; transform:translateY(-150%); } .skip-link:focus { transform:none; }
.site-shell { max-width:1600px; margin:0 auto; border-inline:1px solid rgba(255,255,255,.06); overflow:hidden; }
.site-header { height:86px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(1.3rem,4vw,4.5rem); border-bottom:1px solid var(--line); position:relative; z-index:20; background:rgba(7,7,7,.75); backdrop-filter:blur(14px); }
.brand { display:flex; align-items:center; width:155px; height:64px; overflow:hidden; } .brand img { width:155px; mix-blend-mode:screen; transform:scale(1.31); }
.main-nav { display:flex; align-items:center; gap:clamp(1.1rem,2.6vw,2.8rem); font-size:.75rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.main-nav>a:not(.nav-call) { color:#dedede; transition:color .2s; }.main-nav>a:hover { color:var(--red-light); }.nav-call { background:var(--red); padding:.8rem 1rem; border:1px solid #ff5d54; clip-path:polygon(7px 0,100% 0,calc(100% - 7px) 100%,0 100%); }
.menu-toggle { display:none; background:none; border:0; width:44px; padding:8px; }.menu-toggle span:not(.visually-hidden) { display:block; height:2px; background:white; margin:5px 0; transition:.25s; }.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.hero { min-height:660px; position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(400px,.9fr); align-items:center; padding:clamp(4rem,9vw,8rem) clamp(1.3rem,7vw,8rem); isolation:isolate; }
.hero::after { content:""; position:absolute; inset:0; z-index:-1; opacity:.36; background:linear-gradient(90deg,#080808 4%,rgba(8,8,8,.83) 48%,rgba(8,8,8,.16)), url('/carshine-services.webp') center/cover; filter:grayscale(1) contrast(1.18); }
.hero-glow { position:absolute; z-index:-1; width:35rem; height:35rem; border-radius:50%; filter:blur(90px); opacity:.32; pointer-events:none; }.glow-one{background:#dd0d0d;left:-18rem;top:-6rem}.glow-two{background:#f74838;right:-25rem;bottom:-22rem}
.hero-content { max-width:650px; }.eyebrow { display:flex; align-items:center; gap:.5rem; color:var(--red-light); font-size:.69rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; margin:0 0 1.2rem; }.pulse-dot { width:.5rem; height:.5rem; display:inline-block; border-radius:50%; background:var(--red); box-shadow:0 0 0 0 rgba(239,21,21,.7); animation:pulse 2s infinite; }
@keyframes pulse { 70% { box-shadow:0 0 0 8px rgba(239,21,21,0); } 100% { box-shadow:0 0 0 0 rgba(239,21,21,0); } }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-family:var(--font-display); text-transform:uppercase; line-height:.84; letter-spacing:.015em; } h1 { font-size:clamp(4rem,8.4vw,8.3rem); margin-bottom:1.5rem; font-weight:800; } h1 em,h2 em { color:var(--red); font-weight:700; } em { font-style:italic; }
.hero-copy { color:#d5d5d5; line-height:1.8; max-width:530px; font-size:.94rem; }.hero-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin:2rem 0 3.2rem; }.button { display:inline-flex; gap:.8rem; justify-content:center; align-items:center; min-height:48px; padding:.85rem 1.25rem; border:1px solid transparent; color:white; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; transition:transform .2s,background .2s,border .2s; }.button:hover { transform:translateY(-3px); }.button-primary { background:var(--red); border-color:#ff6058; box-shadow:0 10px 30px rgba(239,21,21,.2); clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%); }.button-primary:hover { background:#ff2a21; }.button-primary span { font-size:1.2em; }.button-ghost { border-color:rgba(255,255,255,.35); background:rgba(0,0,0,.15); clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%); }.button-ghost:hover { border-color:var(--red-light); }
.hero-proof { display:flex; gap:clamp(1rem,3.4vw,3.1rem); margin:0; }.hero-proof>div { border-left:1px solid var(--red); padding-left:.75rem; }.hero-proof dt { font-family:var(--font-display); font-size:1.8rem; line-height:1; font-weight:700; }.hero-proof dd { margin:.2rem 0 0; color:#aaa; font-size:.62rem; text-transform:uppercase; letter-spacing:.09em; }
.hero-art { min-height:390px; position:relative; display:flex; align-items:center; justify-content:center; }.hero-art img { width:min(600px,100%); position:relative; z-index:2; mix-blend-mode:screen; filter:drop-shadow(0 0 22px rgba(238,11,11,.5)); animation:float 5s ease-in-out infinite; }.art-orbit { position:absolute; border:1px solid rgba(255,61,55,.7); border-radius:50%; transform:rotate(-24deg); }.orbit-a { width:85%; height:52%; }.orbit-b { width:64%; height:74%; border-color:rgba(255,255,255,.22); }.shine-sweep { position:absolute; z-index:3; width:20%; height:170%; transform:rotate(25deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent); filter:blur(7px); animation:sweep 5s ease-in-out infinite; }.art-caption { position:absolute; bottom:1rem; z-index:3; font-family:var(--font-display); font-size:.85rem; font-weight:700; letter-spacing:.25em; }.art-caption span { color:var(--red); } @keyframes float { 50% { transform:translateY(-10px); } } @keyframes sweep { 0%,35% { left:-30%; opacity:0; } 43% { opacity:1; } 57%,100% { left:110%;opacity:0; } }
.marquee { border-block:1px solid var(--line); overflow:hidden; padding:.82rem 0; white-space:nowrap; background:#0d0d0d; }.marquee-track { display:inline-flex; min-width:max-content; align-items:center; gap:1.5rem; font-family:var(--font-display); font-size:1.15rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; animation:marquee 25s linear infinite; }.marquee i { color:var(--red); font-style:normal; } @keyframes marquee { to { transform:translateX(-50%); } }
.section { padding:clamp(4.5rem,9vw,8rem) clamp(1.3rem,7vw,8rem); }.section-heading { max-width:1100px; }.heading-row { display:grid; grid-template-columns:1fr minmax(220px,350px); gap:3rem; align-items:end; }.heading-row>p { color:#b5b5b5; line-height:1.8; font-size:.86rem; margin:0 0 .4rem; } h2 { font-size:clamp(3.2rem,6.5vw,6.4rem); margin-bottom:0; font-weight:800; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:3.5rem; }.service-card { min-height:355px; padding:1.25rem; border:1px solid #343434; position:relative; display:flex; flex-direction:column; overflow:hidden; background:linear-gradient(155deg,rgba(255,255,255,.06),rgba(10,10,10,.8) 55%); transition:transform .3s,border .3s,box-shadow .3s; }.service-card::after { content:""; position:absolute; pointer-events:none; width:180%; height:55%; transform:rotate(-34deg); top:-75%; left:-45%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),transparent); transition:top .7s; }.service-card:hover { transform:translateY(-9px); border-color:var(--red); box-shadow:0 16px 38px rgba(0,0,0,.36); }.service-card:hover::after { top:100%; }.card-index { align-self:flex-end; color:#777; font-size:.62rem; text-transform:uppercase; letter-spacing:.1em; }.service-icon { color:var(--red); font-size:2rem; margin:1.7rem 0; text-shadow:0 0 20px #ec1515; }.service-card h3 { font-size:2.55rem; margin-bottom:.9rem; }.service-card>p { color:#b9b9b9; font-family:var(--font-display); font-size:1.1rem; text-transform:uppercase; letter-spacing:.05em; line-height:1.15; }.service-card ul { padding:0; list-style:none; color:#ddd; font-size:.72rem; line-height:1.7; }.service-card li::before { content:'✓'; color:var(--red); margin-right:.45rem; }.card-footer { margin-top:auto; display:flex; justify-content:space-between; align-items:end; }.card-footer strong { font-family:var(--font-display); font-size:3.5rem; line-height:.8; }.card-footer button { border:0; color:white; background:transparent; text-transform:uppercase; font-size:.64rem; letter-spacing:.11em; font-weight:800; }.card-footer button span { color:var(--red); font-size:1.3rem; }.featured { background:linear-gradient(150deg,rgba(224,17,17,.29),rgba(20,5,5,.92) 54%); border-color:#981414; }.featured .card-index { color:#ffb7b3; }
.service-showcase { margin-top:1rem; min-height:310px; border:1px solid #303030; position:relative; overflow:hidden; display:flex; align-items:flex-end; padding:clamp(1.5rem,4vw,3rem); }.service-showcase::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#090909 0%,rgba(9,9,9,.6) 48%,rgba(9,9,9,.12)); }.service-showcase img { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; object-position:center 62%; opacity:.55; filter:grayscale(1) contrast(1.1); }.service-showcase>div { position:relative; z-index:1; max-width:420px; }.service-showcase h3 { font-size:clamp(2.5rem,5vw,4.4rem); margin-bottom:1.2rem; }.service-showcase a { color:#fff; font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; font-weight:800; }.service-showcase a span { color:var(--red); font-size:1.4rem; margin-left:.4rem; }
.process-section { border-top:1px solid var(--line); background:linear-gradient(105deg,#0d0d0d,#090909); }.process-list { list-style:none; margin:3rem 0 0; padding:0; border-top:1px solid var(--line); }.process-list li { display:grid; grid-template-columns:120px 1fr 1fr; gap:2rem; align-items:center; min-height:135px; border-bottom:1px solid var(--line); transition:padding .3s,background .3s; }.process-list li:hover { background:rgba(239,21,21,.08); padding-left:1.2rem; }.process-list span { color:var(--red); font-family:var(--font-display); font-size:1.1rem; font-weight:700; }.process-list h3 { font-size:2rem; margin:0; }.process-list p { color:#aaa; font-size:.84rem; line-height:1.7; margin:0; }
.booking-section { display:grid; grid-template-columns:minmax(260px,.68fr) minmax(0,1.32fr); align-items:start; gap:clamp(2.5rem,7vw,7rem); background:radial-gradient(ellipse at 95% 20%,rgba(200,14,14,.2),transparent 35rem); }.booking-intro { position:sticky; top:2rem; }.booking-intro>p:not(.eyebrow) { color:#b1b1b1; line-height:1.8; max-width:310px; font-size:.86rem; margin:1.3rem 0 2rem; }.phone-pill { display:inline-flex; align-items:center; gap:.6rem; border:1px solid #4a4a4a; padding:.6rem .7rem; font-family:var(--font-display); font-size:1.35rem; letter-spacing:.05em; }.phone-pill>span { color:var(--red); font-size:1.25rem; }.phone-pill small { padding-left:.5rem; border-left:1px solid #555; color:#aaa; font:700 .61rem var(--font-body); text-transform:uppercase; letter-spacing:.08em; }
.booking-panel { border:1px solid #383838; background:rgba(15,15,15,.86); box-shadow:0 30px 70px rgba(0,0,0,.3); }.booking-steps { display:flex; align-items:center; padding:1.3rem 1.5rem; border-bottom:1px solid var(--line); gap:.65rem; }.booking-steps>span:not(.step) { height:1px; flex:1; background:#3a3a3a; }.step { display:flex; align-items:center; gap:.42rem; color:#777; font-family:var(--font-display); font-size:1.1rem; }.step b { font:800 .61rem var(--font-body); text-transform:uppercase; letter-spacing:.08em; }.step.active { color:white; }.step.active::first-letter { color:var(--red); }.booking-step { display:none; border:0; margin:0; padding:clamp(1.5rem,4vw,3rem); min-width:0; }.booking-step.active { display:block; animation:step-in .32s ease-out; } @keyframes step-in { from { opacity:0; transform:translateX(12px); } }
legend { padding:0; font-family:var(--font-display); text-transform:uppercase; font-size:2.25rem; font-weight:700; }.booking-multi-hint { max-width:650px; margin:1rem 0 0; color:#aaa; font-size:.75rem; line-height:1.6; }.booking-multi-hint strong { color:#fff; }.booking-service-options { display:grid; grid-template-columns:repeat(2,1fr); gap:.75rem; margin:1.35rem 0 2rem; }.booking-option { position:relative; padding:1rem 5.8rem 1rem 1rem; min-height:122px; border:1px solid #3b3b3b; background:#151515; text-align:left; color:white; transition:.2s; }.booking-option:hover,.booking-option.selected { border-color:var(--red); background:linear-gradient(135deg,rgba(239,21,21,.28),#151515); }.booking-option b { display:block; font-family:var(--font-display); text-transform:uppercase; font-size:1.35rem; }.booking-option span { display:block; color:#aaa; font-size:.67rem; line-height:1.35; margin:.35rem 0 .6rem; }.booking-option strong { color:var(--red-light); font-family:var(--font-display); font-size:1.65rem; }.booking-option i { position:absolute; right:.8rem; bottom:.85rem; color:#aaa; font:800 .57rem var(--font-body); letter-spacing:.08em; text-transform:uppercase; font-style:normal; }.booking-option.selected i { color:#fff; }.booking-option.selected::after { content:'✓'; position:absolute; right:.8rem; top:.8rem; display:grid; place-items:center; width:20px; height:20px; border:1px solid var(--red-light); border-radius:50%; color:var(--red-light); font-size:.7rem; }
.calendar-wrap { margin-top:1.6rem; padding:1rem; border:1px solid #313131; background:#0d0d0d; }.calendar-head { display:flex; align-items:center; justify-content:space-between; padding:0 .2rem .9rem; }.calendar-head h3 { margin:0; font-size:1.45rem; }.calendar-nav { color:white; background:#1d1d1d; border:1px solid #444; width:32px; height:29px; font-size:1rem; }.calendar-nav:hover { border-color:var(--red); color:var(--red-light); }.calendar-weekdays,.calendar-days { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center; }.calendar-weekdays { color:#777; font-size:.57rem; text-transform:uppercase; letter-spacing:.06em; padding-bottom:.35rem; }.calendar-day { min-height:37px; border:1px solid transparent; background:#141414; color:#f0f0f0; font-size:.68rem; transition:.2s; }.calendar-day:hover:not(:disabled),.calendar-day.selected { background:var(--red); border-color:#ff8179; }.calendar-day:disabled { color:#484848; background:#101010; cursor:not-allowed; }.calendar-day.outside { opacity:.28; background:transparent; }.calendar-day.today:not(.selected) { border-color:#8a2a25; }
.slots-area { margin:1.4rem 0 2rem; }.slots-label { color:#b7b7b7; font-size:.75rem; margin-bottom:.65rem; }.time-slots { display:flex; flex-wrap:wrap; gap:.55rem; min-height:40px; }.time-slot { min-width:68px; border:1px solid #4a4a4a; color:white; background:transparent; padding:.55rem .65rem; font-size:.7rem; }.time-slot:hover,.time-slot.selected { background:var(--red); border-color:#ff7d77; }.step-actions { display:flex; justify-content:space-between; gap:1rem; margin-top:1.7rem; }.step-actions .button:first-child { min-width:85px; }.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; margin-top:1.5rem; }.form-grid label { color:#dedede; font-size:.67rem; letter-spacing:.03em; }.form-grid small { color:#888; }.form-grid input,.form-grid textarea { display:block; width:100%; border:1px solid #454545; color:white; background:#121212; outline:0; margin-top:.45rem; padding:.75rem; resize:vertical; transition:border .2s,box-shadow .2s; }.form-grid input:focus,.form-grid textarea:focus { border-color:var(--red); box-shadow:0 0 0 2px rgba(239,21,21,.15); }.full-width { grid-column:1/-1; }.selected-summary { display:flex; gap:.75rem; flex-wrap:wrap; margin:1.45rem 0 0; }.selected-summary span { border:1px solid #484848; padding:.45rem .6rem; color:#ddd; font-size:.68rem; }.selected-summary b { color:var(--red-light); margin-right:.25rem; }.secure-note { color:#929292; font-size:.67rem; line-height:1.6; margin-top:1.4rem; }.secure-note span { color:var(--red); font-size:1.3em; }
.payment-method-field { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem; border:1px solid #5b302c; background:linear-gradient(115deg,rgba(239,21,21,.14),#141111 64%); }.payment-method-field[hidden] { display:none; }.payment-method-field strong { display:block; margin-top:.25rem; color:#fff; font:800 1.35rem/.95 var(--font-display); text-transform:uppercase; }.payment-method-options { display:flex; flex-wrap:wrap; gap:.6rem; }.form-grid .payment-method-option { display:flex; align-items:center; gap:.65rem; min-width:190px; margin:0; padding:.75rem; border:1px solid #4b3a38; background:#111; cursor:pointer; }.form-grid .payment-method-option:has(input:checked) { border-color:#ff5b51; background:linear-gradient(145deg,rgba(239,21,21,.24),#151010); }.form-grid .payment-method-option input { width:auto; margin:0; accent-color:var(--red); }.payment-method-option span { display:grid; gap:.2rem; }.payment-method-option b { color:#fff; font-size:.72rem; }.payment-method-option small { color:#aaa; font-size:.55rem; line-height:1.4; }
.site-footer { border-top:1px solid var(--line); padding:3rem clamp(1.3rem,7vw,8rem) 1.4rem; background:#090909; }.footer-top { display:grid; grid-template-columns:150px 1fr auto; gap:2rem; align-items:center; padding-bottom:2.4rem; }.footer-top img { width:150px; mix-blend-mode:screen; transform:scale(1.24); }.footer-top p { margin:0; font-family:var(--font-display); text-transform:uppercase; font-size:2.1rem; font-weight:700; }.footer-top p em { color:var(--red); }.footer-top>a { font-family:var(--font-display); color:var(--red-light); font-size:2rem; font-weight:700; }.footer-bottom { padding-top:1.3rem; border-top:1px solid var(--line); display:flex; gap:1.2rem; flex-wrap:wrap; justify-content:space-between; color:#777; font-size:.61rem; text-transform:uppercase; letter-spacing:.08em; }.footer-bottom a:hover { color:var(--red-light); }.staff-link { color:#555; }
.toast { position:fixed; z-index:50; right:1.2rem; bottom:1.2rem; max-width:350px; padding:1rem 1.15rem; color:#fff; background:#262626; border-left:3px solid var(--red); box-shadow:0 10px 30px rgba(0,0,0,.35); font-size:.78rem; line-height:1.5; transform:translateY(140%); opacity:0; transition:.3s; }.toast.show { transform:none; opacity:1; }.toast.error { border-color:#f55959; }.booking-confirmation { position:fixed; z-index:60; inset:0; display:grid; place-items:center; padding:1rem; background:rgba(0,0,0,.75); backdrop-filter:blur(8px); }.booking-confirmation[hidden] { display:none; }.confirmation-card { position:relative; max-width:470px; padding:3rem; text-align:center; border:1px solid #552322; background:linear-gradient(145deg,#28100f,#101010 70%); box-shadow:0 25px 80px #000; }.confirmation-mark { display:grid; place-items:center; width:54px; height:54px; border:1px solid var(--red); color:var(--red-light); border-radius:50%; margin:0 auto 1.2rem; font-size:1.7rem; }.confirmation-card h2 { font-size:3rem; margin-bottom:1rem; }.confirmation-card>p:not(.eyebrow) { color:#bbb; font-size:.84rem; line-height:1.7; }.confirmation-ref { margin:1.4rem 0 1.8rem; font-size:.72rem!important; text-transform:uppercase; letter-spacing:.1em; }.confirmation-ref strong { color:white; }.close-confirmation { position:absolute; top:.65rem; right:.8rem; border:0; background:none; color:#aaa; font-size:1.8rem; }.close-confirmation:hover { color:white; }.reveal { opacity:0; transform:translateY(25px); transition:opacity .65s ease,transform .65s ease; }.reveal.visible { opacity:1; transform:none; }
@media (max-width:900px) { .hero { grid-template-columns:1fr; min-height:auto; }.hero-art { min-height:300px; max-width:580px; width:90%; margin:1rem auto 0; }.hero::after { background:linear-gradient(90deg,#080808 2%,rgba(8,8,8,.7)),url('/carshine-services.webp') center/cover; }.service-grid { grid-template-columns:repeat(2,1fr); }.booking-section { grid-template-columns:1fr; }.booking-intro { position:static; }.process-list li { grid-template-columns:85px 1fr; }.process-list li p { margin-top:.5rem; }.footer-top { grid-template-columns:120px 1fr; }.footer-top>a { grid-column:2; } }
@media (max-width:650px) { .site-header { height:70px; }.brand { width:128px; }.brand img { width:128px; }.menu-toggle { display:block; position:relative; z-index:2; }.main-nav { display:none; position:absolute; top:69px; left:0; right:0; padding:1.2rem; background:#111; border-bottom:1px solid #333; flex-direction:column; align-items:stretch; }.main-nav.open { display:flex; }.main-nav a { padding:.5rem; }.nav-call { text-align:center; }.hero { padding-top:4rem; }.hero-art { min-height:210px; }.hero-proof { gap:.8rem; }.hero-proof dt { font-size:1.5rem; }.hero-proof dd { font-size:.52rem; }.section { padding-block:4.3rem; }.heading-row { display:block; }.heading-row>p { margin-top:1.3rem; }.service-grid { grid-template-columns:1fr; margin-top:2.3rem; }.service-card { min-height:265px; }.service-card h3 { font-size:2.35rem; }.service-icon { margin:.7rem 0 1.2rem; }.service-showcase { min-height:340px; }.service-showcase::after { background:linear-gradient(0deg,#090909 4%,rgba(9,9,9,.25)); }.process-list li { grid-template-columns:62px 1fr; gap:1rem; min-height:130px; }.process-list h3 { font-size:1.65rem; }.booking-steps { padding:1rem; gap:.35rem; }.step b { display:none; }.booking-service-options,.form-grid { grid-template-columns:1fr; }.full-width { grid-column:auto; }.step-actions { flex-wrap:wrap; }.step-actions .button { flex:1; }.calendar-days { gap:3px; }.calendar-day { min-height:34px; }.footer-top { display:flex; flex-direction:column; align-items:flex-start; gap:1rem; }.footer-top img { width:135px; }.footer-top>a { font-size:1.7rem; }.footer-bottom { flex-direction:column; } .confirmation-card { padding:2.5rem 1.4rem; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.01ms!important; } }

/* Required terms acknowledgements for account creation and booking. */
.terms-consent { display:flex!important; align-items:flex-start; gap:.72rem; padding:.9rem 1rem; border:1px solid #51302d; background:linear-gradient(110deg,rgba(239,21,21,.1),#121212 62%); color:#e9e9e9!important; line-height:1.55; }
.terms-consent input[type="checkbox"] { width:18px!important; min-width:18px; min-height:18px!important; margin:.08rem 0 0!important; padding:0!important; accent-color:var(--red); cursor:pointer; }
.terms-consent>span { display:block; font-size:.68rem; }
.terms-consent a { color:#ff938c; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.terms-consent a:hover { color:#fff; }
.terms-consent small { display:block; margin-top:.28rem; color:#969696!important; font-size:.58rem!important; line-height:1.5; }

/* Terms & Conditions page */
.legal-page { min-height:calc(100vh - 145px); padding:clamp(4rem,8vw,7rem) clamp(1.3rem,7vw,8rem); background:radial-gradient(circle at 78% 16%,rgba(239,21,21,.2),transparent 22rem),#0a0a0a; }
.legal-page-inner { max-width:850px; }
.legal-page h1 { margin:.15rem 0 1.2rem; font-size:clamp(4rem,8vw,7.5rem); }
.legal-page>div>p:not(.eyebrow) { max-width:690px; color:#b8b8b8; font-size:.9rem; line-height:1.85; }
.legal-draft-card { display:grid; grid-template-columns:auto 1fr; gap:1rem; margin-top:2.3rem; padding:1.25rem; border:1px solid #71352f; background:linear-gradient(135deg,rgba(239,21,21,.16),#121212 58%); }
.legal-draft-card>span { display:grid; place-items:center; width:34px; height:34px; border:1px solid #db554e; border-radius:50%; color:#ffaaa4; font-weight:900; }
.legal-draft-card h2 { margin:0 0 .45rem; font-size:2rem; }
.legal-draft-card p { max-width:600px; margin:0; color:#b7b7b7; font-size:.75rem; line-height:1.7; }
.legal-lede { max-width:700px!important; }
.legal-version { display:flex; flex-wrap:wrap; gap:.45rem .85rem; align-items:center; margin:2rem 0 1.4rem; padding:.78rem 1rem; border:1px solid #5f302c; background:linear-gradient(110deg,rgba(239,21,21,.18),#111 65%); color:#bdbdbd; font-size:.6rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.legal-version strong { color:#fff; }
.legal-version span:last-child { margin-left:auto; color:#ffaaa4; }
.legal-content { display:grid; gap:.8rem; }
.legal-section { padding:1.35rem 1.45rem; border:1px solid #322827; background:linear-gradient(120deg,rgba(255,255,255,.025),rgba(14,14,14,.88)); }
.legal-section:hover { border-color:#693530; }
.legal-section h2 { margin:0 0 .8rem; color:#fff; font-size:clamp(1.7rem,2.5vw,2.35rem); }
.legal-section p { margin:.6rem 0; color:#c0c0c0; font-size:.77rem; line-height:1.78; }
.legal-section ul { display:grid; gap:.38rem; margin:.85rem 0 1rem; padding:0; list-style:none; color:#d1d1d1; font-size:.76rem; line-height:1.55; }
.legal-section li { position:relative; padding-left:1.15rem; }
.legal-section li::before { content:""; position:absolute; top:.48rem; left:0; width:5px; height:5px; border-radius:50%; background:var(--red-light); box-shadow:0 0 10px rgba(239,21,21,.8); }
.legal-contact { border-color:#81332d; background:radial-gradient(circle at 88% 15%,rgba(239,21,21,.2),transparent 14rem),#15100f; }
.legal-contact a { color:#ff938c; font-weight:800; }
.legal-contact a:hover { color:#fff; }
@media (max-width:650px) { .legal-version span:last-child { width:100%; margin-left:0; }.legal-section { padding:1.1rem; } }

.service-card.chosen { border-color:var(--red-light); box-shadow:0 0 0 1px rgba(239,21,21,.35),0 16px 38px rgba(0,0,0,.36); }

/* Autoaura-inspired service-site structure, adapted for CarShine's own branding. */

.booking-service-config { display:grid; gap:.8rem; margin:-.7rem 0 1.6rem; }.booking-config-label { display:grid; gap:.5rem; max-width:430px; color:#dedede; font-size:.68rem; letter-spacing:.03em; }.booking-config-label b { color:#fff; font-size:.73rem; }.booking-config-label select,.booking-config-label input { width:100%; border:1px solid #57403f; color:#fff; background:#151515; padding:.78rem; outline:0; }.booking-config-label select:focus,.booking-config-label input:focus { border-color:var(--red-light); box-shadow:0 0 0 2px rgba(239,21,21,.15); }.booking-config-label small { color:#999; font-size:.62rem; line-height:1.5; }

/* Compact package menu */
.packages-hero { min-height:455px; }.packages-hero-copy>p:not(.eyebrow) { max-width:570px; }.package-catalog { padding-top:clamp(3.4rem,6vw,5.5rem); }.package-service-group { margin-top:3.5rem; }.package-service-group+.package-service-group { margin-top:5.5rem; padding-top:1.5rem; border-top:1px solid rgba(239,21,21,.28); }.package-service-group>h3 { display:flex; align-items:baseline; gap:.75rem; margin:0 0 1.2rem; color:#fff; font-size:clamp(2.35rem,4vw,3.75rem); }.package-service-group>h3>span { color:var(--red-light); font:800 .57rem var(--font-body); letter-spacing:.15em; text-transform:uppercase; }.package-service-group>h3>small { margin-left:auto; color:#888; font:800 .57rem var(--font-body); letter-spacing:.1em; text-transform:uppercase; }.package-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin:0; border:1px solid #353535; background:#353535; }.package-detail-card { min-height:0; padding:1.2rem; border:0; background:#111; box-shadow:none; }.package-detail-card:hover { border:0; box-shadow:none; transform:none; background:linear-gradient(145deg,#24100f,#101010); }.package-detail-card.featured { border:0; background:radial-gradient(circle at 88% 0,rgba(238,19,19,.32),transparent 13rem),#180b0a; }.package-card-head { min-height:32px; }.package-number { color:#888; text-transform:uppercase; }.package-icon { width:31px; height:31px; font-size:.9rem; }.package-card-pricing { display:flex; align-items:end; gap:.7rem; margin:1.35rem 0 1rem; }.package-card-pricing strong { color:#fff; font:800 clamp(2.7rem,3.3vw,3.5rem)/.75 var(--font-display); white-space:nowrap; }.package-card-pricing span { color:#9d9d9d; font-size:.57rem; line-height:1.35; }.package-detail-card h3 { min-height:2em; margin:.2rem 0 .65rem; font-size:clamp(2.15rem,3.1vw,3.2rem); }.package-description { min-height:0; color:#bcbcbc; font-size:1rem; }.package-details { margin:1.35rem 0 1.1rem; border-top:1px solid #393939; border-bottom:1px solid #393939; }.package-details summary { display:flex; align-items:center; justify-content:space-between; min-height:42px; color:#ddd; cursor:pointer; font-size:.61rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; list-style:none; }.package-details summary::-webkit-details-marker { display:none; }.package-details summary i { color:var(--red-light); font-size:1rem; font-style:normal; transition:transform .2s; }.package-details[open] summary i { transform:rotate(45deg); }.package-includes { padding:0 0 1rem; font-size:.67rem; line-height:1.65; }.package-detail-card>.button { width:100%; min-height:42px; margin-top:auto; padding:.65rem .8rem; font-size:.56rem; }.package-help { margin-top:1px; }
@media (max-width:1100px) { .package-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:650px) { .packages-hero { min-height:auto; }.package-service-group>h3 { align-items:flex-start; flex-direction:column; gap:.35rem; }.package-service-group>h3>small { margin-left:0; }.package-list { grid-template-columns:1fr; }.package-detail-card { padding:1.1rem; }.package-card-pricing strong { font-size:3rem; }.package-detail-card h3 { min-height:0; }.package-description { font-size:.95rem; } }
.utility-bar { min-height:35px; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0 clamp(1.3rem,4vw,4.5rem); color:#aaa; background:#171717; border-bottom:1px solid rgba(255,255,255,.09); font-size:.59rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }.utility-bar div { display:flex; gap:1.1rem; }.utility-bar a:hover { color:var(--red-light); }.utility-bar p { margin:0; }.utility-bar b { color:var(--red); padding-inline:.25rem; }.site-header { height:78px; }.about-section { display:grid; grid-template-columns:minmax(0,.95fr) minmax(320px,1fr); gap:clamp(2rem,7vw,7.2rem); align-items:center; background:linear-gradient(135deg,#0d0d0d,#070707 65%,#120606); border-bottom:1px solid var(--line); }.about-visual { position:relative; min-height:510px; overflow:hidden; border:1px solid #3d2625; }.about-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.66),transparent 65%),linear-gradient(90deg,rgba(230,13,13,.16),transparent 45%); }.about-visual img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:47% 38%; filter:grayscale(.22) contrast(1.12); }.about-badge { position:absolute; z-index:1; right:1.3rem; bottom:1.3rem; display:flex; align-items:center; gap:.7rem; padding:.8rem 1rem; background:var(--red); clip-path:polygon(7px 0,100% 0,calc(100% - 7px) 100%,0 100%); }.about-badge strong { font:800 2.6rem/.85 var(--font-display); }.about-badge span { font-size:.56rem; font-weight:800; line-height:1.35; text-transform:uppercase; letter-spacing:.08em; }.about-copy>p:not(.eyebrow) { color:#b9b9b9; max-width:570px; font-size:.87rem; line-height:1.85; margin:1.5rem 0 2rem; }.benefit-list { display:grid; gap:.05rem; margin:0 0 2rem; }.benefit-list>div { display:grid; grid-template-columns:42px 1fr; gap:.7rem; padding:1rem 0; border-top:1px solid var(--line); }.benefit-list>div:last-child { border-bottom:1px solid var(--line); }.benefit-list>div>span { color:var(--red); font:700 1rem var(--font-display); }.benefit-list h3 { margin:0 0 .25rem; font-size:1.35rem; }.benefit-list p { margin:0; color:#969696; font-size:.7rem; }.text-link { display:inline-flex; gap:.7rem; color:white; font-size:.68rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.text-link span { color:var(--red); font-size:1.1rem; transition:transform .2s; }.text-link:hover span { transform:translateX(5px); }
.faq-section { display:grid; grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr); gap:clamp(2.5rem,8vw,8rem); border-top:1px solid var(--line); background:radial-gradient(circle at 88% 40%,rgba(193,10,10,.17),transparent 27rem),#0a0a0a; }.faq-intro>p:not(.eyebrow) { color:#aaa; font-size:.84rem; line-height:1.8; margin-top:1.5rem; }.faq-intro p a { color:var(--red-light); font-weight:800; }.faq-list { border-top:1px solid var(--line); }.faq-list details { border-bottom:1px solid var(--line); }.faq-list summary { position:relative; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.35rem 0; list-style:none; font:700 1.65rem/.95 var(--font-display); text-transform:uppercase; cursor:pointer; }.faq-list summary::-webkit-details-marker { display:none; }.faq-list summary span { display:grid; place-items:center; width:25px; height:25px; flex:none; color:var(--red); border:1px solid #85302c; border-radius:50%; font:500 1.4rem/.8 var(--font-body); transition:transform .2s; }.faq-list details[open] summary span { transform:rotate(45deg); background:var(--red); color:white; }.faq-list details p { max-width:670px; margin:0; padding:0 2.4rem 1.4rem 0; color:#adadad; font-size:.78rem; line-height:1.8; }
.site-footer { padding-top:4.5rem; }.footer-grid { display:grid; grid-template-columns:1.4fr .75fr .95fr 1.25fr; gap:2.1rem; padding-bottom:3rem; }.footer-grid>div:not(.footer-brand) { display:flex; flex-direction:column; align-items:flex-start; gap:.7rem; }.footer-grid h3 { margin:0 0 .35rem; color:#eaeaea; font-size:1.3rem; }.footer-grid a,.footer-grid p { color:#8d8d8d; font-size:.68rem; line-height:1.6; margin:0; }.footer-grid>div:not(.footer-brand)>a:hover { color:var(--red-light); }.footer-brand img { width:155px; margin-left:-.2rem; mix-blend-mode:screen; transform:scale(1.15); transform-origin:left; }.footer-brand>p { max-width:210px; margin:.8rem 0 1rem; font:700 1.8rem/.96 var(--font-display); text-transform:uppercase; }.footer-brand>p em { color:var(--red); }.footer-social { display:inline-grid; place-items:center; width:27px; height:27px; margin-right:.4rem; border:1px solid #434343; color:#ddd!important; font-size:.78rem!important; }.footer-social:hover { border-color:var(--red); background:var(--red); }.footer-contact>a:first-of-type { color:var(--red-light); font:700 1.7rem/.9 var(--font-display); letter-spacing:.03em; }.footer-book { margin-top:.5rem!important; color:#fff!important; font-weight:800!important; letter-spacing:.08em; text-transform:uppercase; }.footer-book span { color:var(--red); font-size:1.1rem; margin-left:.25rem; }.footer-bottom { justify-content:flex-start; }.footer-bottom span:nth-child(2) { margin-left:auto; }
@media (max-width:900px) { .about-section,.faq-section { grid-template-columns:1fr; }.about-visual { min-height:410px; max-width:700px; }.footer-grid { grid-template-columns:repeat(2,1fr); }.utility-bar { padding-inline:1.3rem; }.utility-bar p { display:none; } }
@media (max-width:650px) { .utility-bar { min-height:30px; justify-content:center; font-size:.51rem; }.utility-bar div { gap:.75rem; }.utility-bar span { display:none; }.site-header { height:70px; }.main-nav { top:69px; }.about-visual { min-height:310px; }.about-badge { right:.8rem; bottom:.8rem; }.about-copy h2,.faq-intro h2 { font-size:3.5rem; }.faq-list summary { font-size:1.35rem; }.faq-list details p { padding-right:0; }.footer-grid { grid-template-columns:1fr; gap:2rem; }.footer-grid>div:not(.footer-brand) { gap:.5rem; }.footer-bottom span:nth-child(2) { margin-left:0; } }

/* Interactive showcase and showreel */
.gallery-section { background:linear-gradient(145deg,#080808 12%,#130707 54%,#080808); border-top:1px solid var(--line); }.gallery-heading { display:grid; grid-template-columns:1fr minmax(240px,355px); gap:3rem; align-items:end; }.gallery-heading>p { margin:0 0 .5rem; color:#aeaeae; font-size:.84rem; line-height:1.8; }.gallery-toolbar { display:flex; gap:.5rem; flex-wrap:wrap; margin:3rem 0 1.1rem; }.gallery-filter { padding:.7rem .9rem; color:#c7c7c7; border:1px solid #343434; background:#111; font-size:.64rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; transition:background .2s,border .2s,color .2s,transform .2s; }.gallery-filter span { margin-left:.45rem; color:#777; }.gallery-filter:hover { color:white; border-color:#8b302d; transform:translateY(-2px); }.gallery-filter.active { color:white; border-color:var(--red); background:var(--red); box-shadow:0 9px 20px rgba(239,21,21,.2); }.gallery-filter.active span { color:#ffd0cd; }.gallery-grid { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:145px; gap:.8rem; }.gallery-card { position:relative; grid-column:span 3; grid-row:span 2; min-height:0; overflow:hidden; padding:0; border:1px solid #3d2524; color:white; background:#131313; text-align:left; isolation:isolate; transition:transform .35s cubic-bezier(.2,.8,.2,1),border .25s,opacity .25s; }.gallery-card[hidden] { display:none; }.gallery-card:hover { z-index:2; border-color:var(--red-light); transform:translateY(-5px); }.gallery-card img { width:100%; height:100%; object-fit:cover; object-position:center 58%; filter:grayscale(.5) contrast(1.16) brightness(.65); transition:transform .65s ease,filter .35s; }.gallery-card:hover img { transform:scale(1.09); filter:grayscale(.08) contrast(1.1) brightness(.86); }.gallery-card::after { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(180deg,transparent 34%,rgba(0,0,0,.88) 100%); }.gallery-sheen { position:absolute; z-index:2; left:-110%; top:-30%; width:62%; height:165%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.26),transparent); transform:rotate(25deg); transition:left .7s ease; pointer-events:none; }.gallery-card:hover .gallery-sheen { left:135%; }.gallery-meta { position:absolute; z-index:3; right:.8rem; bottom:.75rem; left:.8rem; display:grid; grid-template-columns:auto 1fr auto; gap:.55rem; align-items:end; font-size:.62rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }.gallery-meta b { color:var(--red-light); font-family:var(--font-display); font-size:1.2rem; line-height:.8; }.gallery-meta i { color:#fff; font-style:normal; opacity:0; transform:translateX(-5px); transition:.25s; }.gallery-card:hover .gallery-meta i { opacity:1; transform:none; }.gallery-card-tall { grid-column:span 5; grid-row:span 3; }.gallery-card-tall .gallery-meta { font-size:.71rem; }.gallery-card-tall .gallery-meta b { font-size:1.5rem; }.gallery-card-wide { grid-column:span 4; }.gallery-card:nth-child(1) img { object-position:44% 48%; }.gallery-card:nth-child(2) img,.gallery-card:nth-child(6) img { object-fit:contain; padding:1.2rem; background:radial-gradient(circle,#5f1919,#090909 70%); filter:none; }.gallery-card:nth-child(3) img { object-position:42% 76%; }.gallery-card:nth-child(4) img { object-position:69% 45%; }.gallery-card:nth-child(5) img { object-position:22% 38%; }.gallery-note { display:flex; align-items:center; gap:.6rem; margin:1.35rem 0 0; color:#909090; font-size:.66rem; line-height:1.6; }.gallery-note span { color:var(--red); font-size:1rem; }
.showreel-section { position:relative; display:grid; grid-template-columns:minmax(260px,.84fr) minmax(360px,1.16fr); gap:clamp(2rem,8vw,8rem); align-items:center; overflow:hidden; padding:clamp(4.5rem,9vw,8rem) clamp(1.3rem,7vw,8rem); background:#0b0b0b; border-top:1px solid var(--line); }.showreel-section::before { content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 17% 48%,rgba(237,18,18,.24),transparent 27rem),linear-gradient(115deg,rgba(255,255,255,.025),transparent 38%); }.showreel-copy,.showreel-frame { position:relative; z-index:2; }.showreel-copy>p:not(.eyebrow) { max-width:455px; margin:1.5rem 0 2rem; color:#b5b5b5; font-size:.85rem; line-height:1.85; }.showreel-launch { display:inline-flex; align-items:center; gap:.7rem; padding:0; border:0; color:white; background:transparent; font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.showreel-launch:hover { color:var(--red-light); }.play-icon { display:grid; place-items:center; width:42px; height:42px; padding-left:2px; border:1px solid var(--red-light); border-radius:50%; color:white; background:var(--red); box-shadow:0 0 0 7px rgba(239,21,21,.11),0 0 35px rgba(239,21,21,.4); font-size:.75rem; transition:transform .25s; }.showreel-launch:hover .play-icon,.video-play:hover span { transform:scale(1.1); }.showreel-launch small { padding:.35rem .45rem; border:1px solid #464646; color:#aaa; font:700 .57rem var(--font-body); }.showreel-frame { min-height:390px; overflow:hidden; border:1px solid #562625; background:#161010; box-shadow:0 28px 70px rgba(0,0,0,.45); }.showreel-frame::before { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(135deg,rgba(9,9,9,.15),rgba(9,9,9,.76)),repeating-linear-gradient(90deg,transparent 0 32px,rgba(255,255,255,.03) 33px); }.showreel-frame img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:center 55%; filter:grayscale(.8) contrast(1.35) brightness(.68); transform:scale(1.03); transition:transform .8s ease; }.showreel-frame:hover img { transform:scale(1.11); }.showreel-overlay { position:absolute; z-index:2; inset:0; display:flex; flex-direction:column; justify-content:space-between; align-items:flex-start; padding:1.05rem; }.video-kicker,.video-status { padding:.4rem .55rem; border:1px solid rgba(255,255,255,.24); color:#e7e7e7; background:rgba(7,7,7,.5); font-size:.56rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; backdrop-filter:blur(5px); }.video-kicker b { color:var(--red); }.video-status { align-self:flex-end; color:#aaa; }.video-status i { margin-left:.4rem; color:#fff; font-style:normal; }.video-play { align-self:center; width:80px; height:80px; border:1px solid #ff6d64; border-radius:50%; color:white; background:rgba(237,21,21,.88); box-shadow:0 0 0 10px rgba(239,21,21,.12),0 0 45px rgba(239,21,21,.36); transition:transform .25s,background .25s; }.video-play:hover { transform:scale(1.06); background:#ff2e25; }.video-play span { display:inline-block; margin-left:4px; transition:transform .25s; }.showreel-motion { position:absolute; z-index:1; top:0; bottom:0; left:53%; width:120px; transform:skewX(-22deg); opacity:.45; }.showreel-motion span { position:absolute; display:block; width:1px; height:150%; background:linear-gradient(transparent,rgba(255,75,67,.9),transparent); animation:reel-line 4s ease-in-out infinite; }.showreel-motion span:nth-child(1) { left:0; animation-delay:-1.8s; }.showreel-motion span:nth-child(2) { left:30px; animation-delay:-.9s; }.showreel-motion span:nth-child(3) { left:67px; animation-delay:-2.6s; }.showreel-motion span:nth-child(4) { left:108px; animation-delay:-.3s; } @keyframes reel-line { 0%,100% { transform:translateY(-20%) scaleY(.5); opacity:0; } 45% { opacity:1; } 60% { transform:translateY(10%) scaleY(1); opacity:.72; } }
.gallery-modal,.showreel-modal { position:fixed; z-index:70; inset:0; display:grid; place-items:center; padding:1.2rem; background:rgba(0,0,0,.82); backdrop-filter:blur(10px); }.gallery-modal[hidden],.showreel-modal[hidden] { display:none; }.gallery-modal-backdrop,.showreel-modal-backdrop { position:absolute; inset:0; }.gallery-modal-content,.showreel-modal-content { position:relative; z-index:1; width:min(1080px,100%); max-height:calc(100vh - 2.4rem); border:1px solid #672826; background:#111; box-shadow:0 28px 90px #000; }.gallery-modal-content figure { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(220px,.55fr); min-height:590px; margin:0; }.gallery-modal-content figure>img { width:100%; height:100%; min-height:0; object-fit:cover; object-position:center; filter:contrast(1.08); }.gallery-modal-content figcaption { display:flex; flex-direction:column; justify-content:flex-end; padding:clamp(1.4rem,4vw,3rem); background:radial-gradient(circle at 90% 10%,rgba(222,17,17,.32),transparent 20rem),#101010; }.gallery-modal-content figcaption>span { color:var(--red-light); font:700 .72rem var(--font-body); letter-spacing:.13em; }.gallery-modal-content h2 { margin:1.1rem 0 .8rem; font-size:clamp(2.8rem,5vw,5.2rem); }.gallery-modal-content p { color:#b6b6b6; font-size:.8rem; line-height:1.8; }.gallery-modal-close,.showreel-modal-close { position:absolute; z-index:3; top:.7rem; right:.8rem; width:39px; height:39px; border:1px solid #6a3936; border-radius:50%; color:white; background:rgba(8,8,8,.75); font-size:1.65rem; line-height:1; }.gallery-modal-close:hover,.showreel-modal-close:hover { border-color:var(--red-light); background:var(--red); }.gallery-modal-nav { position:absolute; z-index:3; top:50%; width:45px; height:45px; border:1px solid #6a3936; border-radius:50%; color:white; background:rgba(7,7,7,.78); font-size:1.3rem; transform:translateY(-50%); }.gallery-modal-nav:hover { border-color:var(--red-light); background:var(--red); }.gallery-modal-nav.previous { left:1rem; }.gallery-modal-nav.next { right:1rem; }.showreel-modal-content { width:min(890px,100%); }.showreel-placeholder { min-height:min(68vh,620px); position:relative; display:grid; place-items:center; overflow:hidden; text-align:center; isolation:isolate; }.showreel-placeholder::after { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(180deg,rgba(6,6,6,.18),rgba(6,6,6,.9)),radial-gradient(circle at 50% 45%,rgba(235,18,18,.35),transparent 24rem); }.showreel-placeholder img { position:absolute; z-index:-1; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 52%; filter:grayscale(1) contrast(1.35) brightness(.48); }.showreel-placeholder>div { position:relative; z-index:2; max-width:510px; padding:2rem; }.showreel-placeholder .play-icon { margin:0 auto 1.4rem; width:56px; height:56px; }.showreel-placeholder .eyebrow { justify-content:center; }.showreel-placeholder h2 { margin:.5rem 0 1rem; font-size:clamp(3rem,7vw,5.7rem); }.showreel-placeholder p:not(.eyebrow) { color:#c1c1c1; font-size:.82rem; line-height:1.8; }
@media (max-width:900px) { .gallery-heading,.showreel-section { grid-template-columns:1fr; }.gallery-grid { grid-auto-rows:125px; }.gallery-card { grid-column:span 4; }.gallery-card-tall { grid-column:span 6; grid-row:span 3; }.gallery-card-wide { grid-column:span 6; }.showreel-frame { max-width:720px; width:100%; min-height:360px; }.showreel-motion { left:72%; }.gallery-modal-content figure { min-height:510px; } }
@media (max-width:650px) { .gallery-heading { display:block; }.gallery-heading>p { margin-top:1.35rem; }.gallery-toolbar { margin-top:2rem; overflow:auto; flex-wrap:nowrap; padding-bottom:.25rem; }.gallery-filter { flex:none; }.gallery-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:145px; gap:.55rem; }.gallery-card,.gallery-card-wide { grid-column:span 1; grid-row:span 1; }.gallery-card-tall { grid-column:span 1; grid-row:span 2; }.gallery-card:nth-child(3) { grid-column:span 2; }.gallery-meta { right:.55rem; bottom:.55rem; left:.55rem; grid-template-columns:auto 1fr; font-size:.53rem; }.gallery-meta i { display:none; }.showreel-section { padding-block:4.5rem; }.showreel-frame { min-height:310px; }.showreel-motion { left:55%; }.gallery-modal { padding:.6rem; }.gallery-modal-content figure { display:block; min-height:0; }.gallery-modal-content figure>img { display:block; height:min(51vh,430px); }.gallery-modal-content figcaption { min-height:225px; padding:1.3rem 1.3rem 1.5rem; }.gallery-modal-content h2 { margin:.55rem 0; font-size:3.1rem; }.gallery-modal-nav { top:calc(min(51vh,430px) / 2); width:38px; height:38px; }.gallery-modal-nav.previous { left:.55rem; }.gallery-modal-nav.next { right:.55rem; }.showreel-placeholder { min-height:70vh; }.showreel-modal-content { max-height:calc(100vh - 1.2rem); }.showreel-modal-close { top:.55rem; right:.55rem; } }

.social-section { display:grid; grid-template-columns:minmax(260px,.82fr) minmax(320px,1.18fr); align-items:center; gap:clamp(2rem,8vw,8rem); border-top:1px solid var(--line); background:radial-gradient(circle at 85% 30%,rgba(231,17,17,.23),transparent 24rem),#090909; }.social-copy>p:not(.eyebrow) { max-width:470px; margin:1.5rem 0 0; color:#b1b1b1; font-size:.85rem; line-height:1.85; }.social-widget { border:1px solid #542523; overflow:hidden; background:linear-gradient(135deg,rgba(218,15,15,.15),#111 49%,#0a0a0a); box-shadow:0 22px 60px rgba(0,0,0,.35); }.social-widget-head { display:grid; grid-template-columns:auto 1fr auto; gap:.55rem; align-items:center; padding:.8rem 1rem; border-bottom:1px solid var(--line); color:#bcbcbc; font-size:.59rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.social-widget-head p { margin:0; }.social-widget-head small { color:#777; font-size:.54rem; }.social-live-dot { width:7px; height:7px; border-radius:50%; background:var(--red); box-shadow:0 0 0 0 rgba(239,21,21,.7); animation:pulse 2s infinite; }.social-widget-logo { height:215px; position:relative; display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle at 50% 75%,rgba(222,13,13,.44),transparent 13rem),#070707; }.social-widget-logo::after { content:""; position:absolute; inset:-35%; background:repeating-linear-gradient(115deg,transparent 0 28px,rgba(255,255,255,.04) 29px); transform:rotate(-8deg); }.social-widget-logo img { position:relative; z-index:1; width:min(370px,83%); mix-blend-mode:screen; filter:drop-shadow(0 0 20px rgba(239,21,21,.28)); transition:transform .4s; }.social-widget:hover .social-widget-logo img { transform:scale(1.045); }.social-widget-actions { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:#373737; }.social-channel,.social-share { min-height:76px; display:flex; flex-direction:column; justify-content:center; gap:.25rem; padding:1rem; border:0; color:white; background:#101010; text-align:left; transition:background .2s,color .2s; }.social-channel:hover,.social-share:hover { background:#1d0d0d; color:var(--red-light); }.social-channel b,.social-share b { font:700 1.35rem/.9 var(--font-display); text-transform:uppercase; }.social-channel span,.social-share small { color:#aaa; font-size:.57rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.social-share { position:relative; grid-column:span 2; flex-direction:row; align-items:center; justify-content:flex-start; gap:.7rem; }.social-share>span { display:grid; place-items:center; width:25px; height:25px; border:1px solid #88332e; border-radius:50%; color:var(--red-light); }.social-share small { margin-left:auto; }.showreel-player { display:block; width:100%; max-height:calc(100vh - 2.4rem); background:#050505; }.consent-banner { position:fixed; z-index:80; right:1rem; bottom:1rem; width:min(510px,calc(100% - 2rem)); padding:1.15rem; border:1px solid #69302d; background:#151010; box-shadow:0 20px 60px rgba(0,0,0,.55); }.consent-banner p { margin:0; color:#bdbdbd; font-size:.7rem; line-height:1.65; }.consent-banner strong { color:#fff; }.consent-banner>div { display:flex; justify-content:flex-end; gap:.6rem; margin-top:1rem; }.consent-banner .button { min-height:38px; padding:.6rem .8rem; font-size:.6rem; }.consent-essential { border:1px solid #4a4a4a; color:#ddd; background:transparent; padding:.6rem .8rem; font-size:.6rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.consent-essential:hover { border-color:var(--red-light); color:white; }
@media (max-width:900px) { .social-section { grid-template-columns:1fr; }.social-widget { max-width:690px; width:100%; }.social-widget-logo { height:260px; } }
@media (max-width:650px) { .social-widget-logo { height:185px; }.social-widget-actions { grid-template-columns:1fr; }.social-share { grid-column:auto; }.consent-banner { right:.6rem; bottom:.6rem; width:calc(100% - 1.2rem); }.consent-banner>div { flex-wrap:wrap; }.consent-banner>div>* { flex:1; } }

/* Packages catalogue and meet-up map */
.package-page-link { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; padding:1.1rem 1.3rem; border:1px solid #502421; color:#d8d8d8; background:linear-gradient(90deg,rgba(239,21,21,.15),rgba(12,12,12,.8)); font-size:.67rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; transition:border .2s,transform .2s,background .2s; }.package-page-link b { color:white; font-family:var(--font-display); font-size:1.35rem; }.package-page-link:hover { border-color:var(--red-light); background:linear-gradient(90deg,rgba(239,21,21,.3),rgba(12,12,12,.8)); transform:translateY(-3px); }
.meetup-map { margin-top:-.1rem; padding:1rem; border:1px solid #472525; background:linear-gradient(135deg,rgba(239,21,21,.1),#101010 56%); }.meetup-map-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; }.meetup-map-head>div { display:grid; grid-template-columns:auto 1fr; column-gap:.55rem; align-items:center; }.meetup-map-head b { font:700 1.3rem/.9 var(--font-display); letter-spacing:.05em; text-transform:uppercase; }.meetup-map-head small { grid-column:2; color:#9d9d9d; font-size:.6rem; }.map-pin { display:grid; grid-row:span 2; place-items:center; width:28px; height:28px; border:1px solid #ba3631; border-radius:50%; color:var(--red-light); font-size:1.1rem; }.meetup-map-head button { flex:none; border:1px solid #d24740; color:white; background:var(--red); padding:.6rem .75rem; font-size:.61rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; transition:background .2s,transform .2s; }.meetup-map-head button:hover { background:#ff2b22; transform:translateY(-2px); }.meetup-map>p { margin:.9rem 0; color:#b3b3b3; font-size:.67rem; line-height:1.6; }.meetup-map-frame:empty { display:none; }.meetup-map-frame { overflow:hidden; border:1px solid #58302c; background:#0a0a0a; }.meetup-map-frame iframe { display:block; width:100%; height:235px; border:0; }.meetup-map-link { display:inline-block; margin-top:.8rem; color:#fff; font-size:.62rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }.meetup-map-link span { color:var(--red-light); font-size:1.1rem; }.meetup-map-link:hover { color:var(--red-light); }
.location-picker { margin-top:-.1rem; padding:1.15rem; border:1px solid #572a27; background:radial-gradient(circle at 92% 2%,rgba(239,21,21,.18),transparent 17rem),linear-gradient(135deg,#171010,#0c0c0c 63%); }.location-picker-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }.location-picker-head>div { display:flex; align-items:center; gap:.7rem; }.location-picker-head .eyebrow { margin:0 0 .28rem; font-size:.51rem; }.location-picker-head b { display:block; color:#fff; font:700 1.45rem/.9 var(--font-display); letter-spacing:.045em; text-transform:uppercase; }.location-status { flex:none; margin-top:.1rem; padding:.35rem .5rem; border:1px solid #474747; color:#9b9b9b; font-size:.53rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }.location-status.is-set { border-color:#b93b35; color:#ffd1cd; background:rgba(239,21,21,.16); }.location-picker-copy,.location-picker-message { max-width:700px; margin:.9rem 0; color:#adadad; font-size:.68rem; line-height:1.65; }.location-picker-actions { display:flex; flex-wrap:wrap; gap:.6rem; margin:1rem 0; }.location-picker-actions .button { min-height:39px; padding:.65rem .85rem; font-size:.57rem; }.location-picker-actions .button:disabled { cursor:not-allowed; opacity:.48; }.location-picker-map { height:300px; overflow:hidden; border:1px solid #66312d; background:linear-gradient(135deg,#171717,#0e0e0e); }.location-picker-map .leaflet-tile-pane { filter:grayscale(.7) brightness(.62) contrast(1.2); }.location-picker-map .leaflet-control-zoom a { border-color:#55312e; color:#fff; background:#171717; }.location-picker-map .leaflet-control-attribution { color:#aaa; background:rgba(8,8,8,.72); font-size:9px; }.location-picker-map .leaflet-control-attribution a { color:#ffc2bd; }.carshine-map-marker { display:grid; place-items:center; width:38px!important; height:38px!important; margin:0!important; border:2px solid #ff8a82; border-radius:50% 50% 50% 0; color:#fff; background:#e61919; box-shadow:0 0 0 6px rgba(239,21,21,.18),0 7px 18px rgba(0,0,0,.52); transform:rotate(-45deg); }.carshine-map-marker span { display:block; font-size:1.2rem; font-weight:900; line-height:1; transform:rotate(45deg); }.meetup-map-link { display:inline-block; margin-top:.8rem; color:#fff; font-size:.62rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }.meetup-map-link span { color:var(--red-light); font-size:1.1rem; }.meetup-map-link:hover { color:var(--red-light); }
.packages-hero { position:relative; display:grid; grid-template-columns:minmax(0,.92fr) minmax(390px,1.08fr); align-items:center; min-height:590px; overflow:hidden; padding:clamp(4rem,8vw,7rem) clamp(1.3rem,7vw,8rem); border-bottom:1px solid var(--line); isolation:isolate; }.packages-hero::before { content:""; position:absolute; z-index:-2; inset:0; background:linear-gradient(100deg,#090909 4%,rgba(9,9,9,.83) 49%,rgba(9,9,9,.19)),url('/carshine-services.webp') center/cover; filter:grayscale(1) contrast(1.15); }.packages-hero::after { content:""; position:absolute; z-index:-1; width:43rem; height:43rem; right:-16rem; top:-14rem; border-radius:50%; background:radial-gradient(circle,rgba(239,21,21,.43),rgba(239,21,21,0) 67%); filter:blur(18px); }.packages-hero-copy { max-width:640px; }.packages-hero-copy>p:not(.eyebrow) { max-width:510px; color:#d0d0d0; font-size:.9rem; line-height:1.85; }.packages-hero-art { min-height:360px; position:relative; }.packages-hero-art img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 61%; filter:grayscale(.45) contrast(1.18) brightness(.68); border:1px solid #562624; clip-path:polygon(14% 0,100% 0,86% 100%,0 100%); }.packages-hero-art::after { content:""; position:absolute; inset:0; background:linear-gradient(110deg,rgba(239,21,21,.1),transparent 35%,rgba(0,0,0,.65)); pointer-events:none; clip-path:polygon(14% 0,100% 0,86% 100%,0 100%); }.packages-price-tag { position:absolute; z-index:2; right:1rem; bottom:1.2rem; padding:.65rem .8rem; border:1px solid #ef4d46; background:rgba(8,8,8,.78); font-size:.57rem; font-weight:800; letter-spacing:.13em; }.packages-price-tag b { display:block; color:var(--red-light); font:700 3.4rem/.8 var(--font-display); letter-spacing:0; }.packages-red-line { position:absolute; z-index:3; top:-15%; left:34%; width:1px; height:125%; background:linear-gradient(transparent,var(--red-light),transparent); box-shadow:0 0 24px rgba(239,21,21,.7); transform:rotate(18deg); }
.package-catalog { background:radial-gradient(circle at 90% 8%,rgba(197,13,13,.2),transparent 24rem),#0b0b0b; }.package-heading { display:grid; grid-template-columns:1fr minmax(235px,380px); align-items:end; gap:3rem; }.package-heading>p { margin:0 0 .5rem; color:#aaa; font-size:.83rem; line-height:1.8; }.package-service-group { margin-top:3.2rem; }.package-service-group+.package-service-group { margin-top:5rem; }.package-service-group>h3 { margin:0 0 1rem; color:var(--red-light); font-size:clamp(2rem,3vw,3rem); }.package-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }.package-detail-card { display:flex; flex-direction:column; min-height:420px; padding:1.4rem; border:1px solid #363636; background:linear-gradient(145deg,#161616,#090909 68%); scroll-margin-top:1.4rem; transition:transform .28s,border .28s,box-shadow .28s; }.package-detail-card:hover { border-color:var(--red); box-shadow:0 20px 48px rgba(0,0,0,.38); transform:translateY(-5px); }.package-detail-card.featured { border-color:#981d19; background:radial-gradient(circle at 76% 0,rgba(238,19,19,.28),transparent 18rem),linear-gradient(145deg,#2c0c0a,#0c0909 70%); }.package-card-head { display:flex; justify-content:space-between; align-items:center; }.package-number { color:#909090; font-size:.6rem; font-weight:800; letter-spacing:.13em; }.featured .package-number { color:#ffb8b3; }.package-icon { display:grid; place-items:center; width:36px; height:36px; border:1px solid #7a2a26; border-radius:50%; color:var(--red-light); font-size:1.1rem; box-shadow:0 0 20px rgba(239,21,21,.15); }.package-detail-card h3 { margin:1.8rem 0 .8rem; font-size:clamp(2.8rem,4vw,4rem); }.package-description { min-height:2.6em; margin:0; color:#cacaca; font:600 1.15rem/1.1 var(--font-display); letter-spacing:.04em; text-transform:uppercase; }.package-includes-label { margin:1.7rem 0 .6rem; color:var(--red-light); font-size:.59rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }.package-includes { margin:0; padding:0; list-style:none; color:#d5d5d5; font-size:.72rem; line-height:1.7; }.package-includes li::before { content:"✓"; margin-right:.55rem; color:var(--red-light); font-weight:800; }.package-card-footer { display:grid; grid-template-columns:auto 1fr; align-items:end; gap:.25rem 1rem; margin-top:auto; padding-top:1.5rem; }.package-card-footer strong { grid-row:span 2; color:white; font:700 3.6rem/.8 var(--font-display); }.package-card-footer>span { color:#989898; font-size:.59rem; }.package-card-footer .button { justify-self:start; min-height:39px; padding:.65rem .8rem; font-size:.57rem; }.package-help { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:1.1rem; align-items:center; margin-top:1rem; padding:1.25rem; border:1px solid #4b2825; background:linear-gradient(100deg,rgba(239,21,21,.14),#101010 54%); }.package-help>span { color:var(--red-light); font-size:1.8rem; }.package-help h3 { margin:0 0 .35rem; font-size:1.75rem; }.package-help p { max-width:600px; margin:0; color:#b0b0b0; font-size:.69rem; line-height:1.6; }.package-help .button { min-height:40px; padding:.65rem .85rem; font-size:.57rem; white-space:nowrap; }
@media (max-width:900px) { .packages-hero { grid-template-columns:1fr; gap:2rem; min-height:auto; }.packages-hero-art { min-height:330px; max-width:720px; width:100%; }.package-heading { grid-template-columns:1fr; gap:1rem; }.package-list { grid-template-columns:1fr; }.package-help { grid-template-columns:auto 1fr; }.package-help .button { grid-column:2; justify-self:start; } }
@media (max-width:650px) { .package-page-link { padding:1rem; }.package-page-link b { font-size:1.12rem; }.meetup-map-head { align-items:flex-start; }.meetup-map-head button { margin-top:.1rem; }.meetup-map-frame iframe { height:205px; }.packages-hero { padding-top:3.6rem; }.packages-hero-art { min-height:240px; }.packages-price-tag { right:.6rem; bottom:.7rem; }.packages-price-tag b { font-size:2.8rem; }.package-list { margin-top:2.2rem; }.package-detail-card { min-height:390px; }.package-card-footer { grid-template-columns:1fr; align-items:start; }.package-card-footer strong { grid-row:auto; }.package-card-footer .button { margin-top:.6rem; }.package-help { grid-template-columns:1fr; }.package-help .button { grid-column:auto; } }

/* Gift card catalogue */
.gift-card-showcase { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(1.5rem,4vw,4rem); align-items:center; margin-top:1rem; padding:clamp(1.5rem,4vw,3rem); border:1px solid #5f2c28; background:radial-gradient(circle at 92% 15%,rgba(239,21,21,.32),transparent 17rem),linear-gradient(118deg,#25100f,#0f0d0d 70%); }.gift-card-showcase h2 { margin:.35rem 0 .8rem; font-size:clamp(2.6rem,4.8vw,5.1rem); }.gift-card-showcase>div>p:not(.eyebrow),.gift-card-note { max-width:500px; color:#bdb6b5; font-size:.77rem; line-height:1.7; }.gift-card-values { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; }.gift-card-value { display:grid; min-height:126px; align-content:space-between; gap:.45rem; padding:.8rem; border:1px solid #65403c; background:linear-gradient(145deg,rgba(239,21,21,.16),#111); color:#fff; transition:transform .2s,border .2s,background .2s; }.gift-card-value:hover { border-color:#ff5b51; background:linear-gradient(145deg,rgba(239,21,21,.34),#151010); transform:translateY(-3px); }.gift-card-value span,.gift-card-value small { color:#e5aaa5; font-size:.52rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }.gift-card-value b { color:#fff; font:800 2.4rem/.9 var(--font-display); }.gift-card-value small { color:#aaa; line-height:1.35; }.gift-card-note { margin:.9rem 0 0; color:#d6a4a0; }.gift-card-note::before { content:'✦'; margin-right:.4rem; color:var(--red-light); }
@media (max-width:900px) { .gift-card-showcase { grid-template-columns:1fr; }.gift-card-values { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:560px) { .gift-card-showcase { padding:1.25rem; }.gift-card-values { grid-template-columns:repeat(2,minmax(0,1fr)); }.gift-card-value { min-height:110px; } }

/* Gift-card choices inside the booking flow */
.booking-gift-cards { margin:-.25rem 0 1.35rem; padding:1rem; border:1px solid #5b302c; background:linear-gradient(115deg,rgba(239,21,21,.17),#141111 64%); }.booking-gift-card-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:.85rem; }.booking-gift-card-heading h3 { margin:.24rem 0 0; color:#fff; font:800 1.65rem/.9 var(--font-display); text-transform:uppercase; }.booking-gift-card-heading>p { max-width:300px; margin:0; color:#b5a8a5; font-size:.63rem; line-height:1.55; text-align:right; }.booking-gift-card-values { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.45rem; }.booking-gift-card-value { display:grid; min-height:88px; align-content:space-between; gap:.25rem; padding:.55rem; border:1px solid #613832; background:#111; color:#fff; transition:transform .2s,border-color .2s,background .2s; }.booking-gift-card-value:hover { border-color:var(--red-light); background:linear-gradient(145deg,rgba(239,21,21,.28),#151010); transform:translateY(-2px); }.booking-gift-card-value span,.booking-gift-card-value small { color:#b9a5a1; font-size:.46rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.booking-gift-card-value b { color:#fff; font:800 1.55rem/.88 var(--font-display); }.booking-gift-card-value small { color:#ff9188; }
@media (max-width:900px) { .booking-gift-card-values { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:560px) { .booking-gift-card-heading { display:block; }.booking-gift-card-heading>p { margin-top:.6rem; text-align:left; }.booking-gift-card-values { grid-template-columns:repeat(2,minmax(0,1fr)); }.booking-gift-card-value { min-height:78px; } }

@media (max-width:650px) { .location-picker { padding:1rem; }.location-picker-head { align-items:flex-start; }.location-picker-head b { font-size:1.2rem; }.location-status { margin-top:0; font-size:.48rem; }.location-picker-map { height:255px; }.location-picker-actions .button { flex:1; padding-inline:.55rem; } }

/* Compact packages-page introduction: avoids repeating the flyer as a full-screen header. */
.packages-hero.packages-hero-compact { display:grid; grid-template-columns:minmax(0,1fr) minmax(230px,360px); gap:clamp(2rem,7vw,7rem); min-height:0; padding:clamp(3rem,5vw,4.5rem) clamp(1.3rem,7vw,8rem); background:linear-gradient(105deg,#0b0b0b 0%,#0b0b0b 60%,#210807 100%); border-bottom:1px solid #48211f; }
.packages-hero.packages-hero-compact::before { display:none; }
.packages-hero.packages-hero-compact::after { width:29rem; height:29rem; top:-19rem; right:-12rem; background:radial-gradient(circle,rgba(239,21,21,.42),rgba(239,21,21,0) 68%); filter:blur(9px); }
.packages-hero-compact .packages-hero-copy { max-width:670px; }
.packages-hero-compact h1 { margin-bottom:1rem; font-size:clamp(3.7rem,6.5vw,6.6rem); }
.packages-hero-compact .hero-actions { margin:1.45rem 0 0; }
.packages-hero-summary { position:relative; display:grid; gap:1.25rem; align-content:center; min-height:205px; padding:1.45rem; border:1px solid rgba(255,93,84,.52); background:linear-gradient(145deg,rgba(239,21,21,.16),rgba(12,12,12,.9) 54%); box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),0 20px 55px rgba(0,0,0,.2); clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px); }
.packages-hero-summary::before { content:""; position:absolute; top:0; left:0; width:72px; height:2px; background:var(--red-light); box-shadow:0 0 18px rgba(239,21,21,.72); }
.packages-summary-label { color:#ff847e; font-size:.58rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.packages-hero-summary>strong { color:#eee; font:700 1.2rem/.9 var(--font-display); text-transform:uppercase; }
.packages-hero-summary>strong b { display:block; margin-top:.25rem; color:#fff; font:800 clamp(4.8rem,7vw,6rem)/.7 var(--font-display); letter-spacing:-.025em; }
.packages-hero-summary>div { display:flex; flex-wrap:wrap; gap:.5rem .9rem; padding-top:.9rem; border-top:1px solid rgba(255,255,255,.16); color:#c2c2c2; font-size:.58rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.packages-hero-summary>div span { display:flex; align-items:center; gap:.38rem; }.packages-hero-summary>div span::before { content:""; width:4px; height:4px; border-radius:50%; background:var(--red-light); box-shadow:0 0 8px var(--red); }
@media (max-width:760px) { .packages-hero.packages-hero-compact { grid-template-columns:1fr; gap:2rem; padding-block:3.2rem; }.packages-hero-summary { min-height:0; max-width:520px; }.packages-hero-summary>strong b { font-size:4.8rem; } }

.about-visual .about-ferrari { object-position:52% 53%; filter:contrast(1.04) saturate(1.08) brightness(.92); }

/* Make the member rewards area easy to find from every page. */
.main-nav>a[href="/account.html"] {
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.46rem;
  margin-inline:-.58rem;
  padding:.58rem .7rem;
  overflow:visible;
  color:#fff!important;
  border:1px solid rgba(255,86,79,.65);
  background:linear-gradient(112deg,rgba(239,21,21,.34),rgba(37,12,12,.92));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 0 0 1px rgba(239,21,21,.12),0 0 22px rgba(239,21,21,.32);
  clip-path:polygon(6px 0,100% 0,calc(100% - 6px) 100%,0 100%);
  transition:transform .2s,background .2s,box-shadow .2s;
  animation:member-nav-glow 2.6s ease-in-out infinite;
}
.main-nav>a[href="/account.html"]::after {
  content:"";
  width:5px;
  height:5px;
  border-radius:50%;
  background:#ffb8b3;
  box-shadow:0 0 0 3px rgba(255,97,89,.18),0 0 10px #ff443b;
}
.main-nav>a[href="/account.html"]:hover {
  color:#fff!important;
  background:linear-gradient(112deg,#f32720,#a20909);
  box-shadow:0 0 0 1px rgba(255,255,255,.15),0 0 30px rgba(239,21,21,.6);
  transform:translateY(-2px);
}
@keyframes member-nav-glow {
  0%,100% { box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 0 0 1px rgba(239,21,21,.12),0 0 14px rgba(239,21,21,.2); }
  50% { box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 0 0 1px rgba(255,117,111,.38),0 0 29px rgba(239,21,21,.54); }
}
@media (max-width:650px) {
  .main-nav>a[href="/account.html"] { margin:0; padding:.68rem .72rem; justify-content:center; }
}

/* A distinct booking call-to-action: outlined urgency rather than the member-rewards glow. */
.main-nav>a[href="/#booking"],
.main-nav>a[href="#booking"] {
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.42rem;
  margin-inline:-.58rem;
  padding:.58rem .7rem;
  overflow:hidden;
  color:#fff!important;
  border:1px solid #ef3029;
  background:#17100f;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 0 0 1px rgba(239,21,21,.13);
  clip-path:polygon(6px 0,100% 0,calc(100% - 6px) 100%,0 100%);
  transition:transform .2s,background .2s,box-shadow .2s;
}
.main-nav>a[href="/#booking"]::before,
.main-nav>a[href="#booking"]::before {
  content:"";
  position:absolute;
  top:-60%;
  bottom:-60%;
  left:-30%;
  width:22%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.36),transparent);
  transform:skewX(-22deg);
  animation:booking-nav-shine 3.3s ease-in-out infinite;
}
.main-nav>a[href="/#booking"]::after,
.main-nav>a[href="#booking"]::after {
  content:"↗";
  position:relative;
  color:#ff766f;
  font-size:.98rem;
  line-height:.7;
  transition:transform .2s;
}
.main-nav>a[href="/#booking"]:hover,
.main-nav>a[href="#booking"]:hover {
  color:#fff!important;
  background:#c51010;
  box-shadow:0 0 25px rgba(239,21,21,.4);
  transform:translateY(-2px);
}
.main-nav>a[href="/#booking"]:hover::after,
.main-nav>a[href="#booking"]:hover::after { color:#fff; transform:translate(2px,-2px); }
@keyframes booking-nav-shine {
  0%,58% { left:-32%; opacity:0; }
  62% { opacity:1; }
  83%,100% { left:116%; opacity:0; }
}
@media (max-width:650px) {
  .main-nav>a[href="/#booking"],.main-nav>a[href="#booking"] { margin:0; padding:.68rem .72rem; justify-content:center; }
}

/* Dedicated, customer-work gallery */
.gallery-link-section { display:grid; grid-template-columns:minmax(0,1fr) minmax(290px,.62fr); gap:clamp(2rem,8vw,8rem); align-items:end; padding:clamp(4.5rem,8vw,7.5rem) clamp(1.3rem,7vw,8rem); border-block:1px solid var(--line); background:radial-gradient(circle at 87% 14%,rgba(239,21,21,.26),transparent 20rem),linear-gradient(118deg,#090909,#100707 58%,#090909); }.gallery-link-copy { max-width:650px; }.gallery-link-copy h2 { margin:0; font-size:clamp(3.6rem,6.7vw,6.8rem); }.gallery-link-copy>p:not(.eyebrow) { max-width:530px; margin:1.3rem 0 0; color:#b9b9b9; font-size:.84rem; line-height:1.85; }.gallery-link-panel { position:relative; display:grid; gap:1.2rem; min-height:245px; padding:1.5rem; border:1px solid #7c2a27; background:linear-gradient(145deg,rgba(239,21,21,.16),rgba(13,13,13,.94) 53%); overflow:hidden; }.gallery-link-panel::before { content:""; position:absolute; inset:auto -15% -55% auto; width:17rem; height:17rem; border:1px solid rgba(255,104,96,.36); border-radius:50%; box-shadow:0 0 0 28px rgba(239,21,21,.04),0 0 0 56px rgba(239,21,21,.025); }.gallery-link-panel-number { color:var(--red-light); font:700 4.5rem/.8 var(--font-display); }.gallery-link-panel p { position:relative; z-index:1; max-width:250px; margin:0; color:#d2d2d2; font:600 1.28rem/1 var(--font-display); letter-spacing:.04em; text-transform:uppercase; }.gallery-link-panel .button { position:relative; z-index:1; justify-self:start; margin-top:auto; }

.gallery-page-hero { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,390px); gap:clamp(2rem,9vw,9rem); align-items:center; min-height:430px; padding:clamp(3.7rem,7vw,6.5rem) clamp(1.3rem,7vw,8rem); overflow:hidden; border-bottom:1px solid #4a211f; background:linear-gradient(112deg,#090909 0%,#090909 54%,#220807 100%); isolation:isolate; }.gallery-page-hero::before { content:""; position:absolute; z-index:-1; top:-25rem; right:-17rem; width:48rem; height:48rem; border-radius:50%; background:radial-gradient(circle,rgba(239,21,21,.49),rgba(239,21,21,0) 66%); filter:blur(16px); }.gallery-page-hero::after { content:""; position:absolute; z-index:-1; top:0; bottom:0; left:58%; width:1px; background:linear-gradient(transparent,rgba(255,90,82,.55),transparent); transform:rotate(22deg); box-shadow:0 0 25px rgba(239,21,21,.35); }.gallery-page-hero-copy { max-width:670px; }.gallery-page-hero-copy h1 { margin-bottom:1.1rem; font-size:clamp(4rem,7.1vw,7.3rem); }.gallery-page-hero-copy>p:not(.eyebrow) { max-width:545px; margin:0; color:#c5c5c5; font-size:.88rem; line-height:1.88; }.gallery-page-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.75rem; }.gallery-page-hero-panel { position:relative; display:grid; align-content:center; gap:.8rem; min-height:224px; padding:1.55rem; border:1px solid rgba(255,92,84,.58); background:linear-gradient(145deg,rgba(239,21,21,.18),rgba(10,10,10,.92) 57%); box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),0 25px 55px rgba(0,0,0,.27); clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px); }.gallery-page-hero-panel::after { content:""; position:absolute; top:0; left:0; width:78px; height:2px; background:var(--red-light); box-shadow:0 0 18px rgba(239,21,21,.76); }.gallery-panel-mark { color:var(--red-light); font-size:1.25rem; }.gallery-page-hero-panel p { margin:0; color:#ff918b; font-size:.59rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }.gallery-page-hero-panel strong { color:white; font:700 clamp(2.3rem,4vw,3.8rem)/.82 var(--font-display); letter-spacing:.01em; text-transform:uppercase; }.gallery-page-hero-panel strong span { color:var(--red-light); }.gallery-page-hero-panel small { padding-top:.9rem; border-top:1px solid rgba(255,255,255,.16); color:#b9b9b9; font-size:.59rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }

.gallery-portfolio { min-height:540px; background:radial-gradient(circle at 88% 8%,rgba(209,11,11,.19),transparent 24rem),#0b0b0b; }.gallery-portfolio-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(230px,370px); gap:3rem; align-items:end; }.gallery-portfolio-heading h2 { margin:0; font-size:clamp(3.4rem,5.5vw,6.1rem); }.gallery-portfolio-heading>p { margin:0 0 .55rem; color:#aaa; font-size:.8rem; line-height:1.8; }.gallery-page-filters { display:flex; flex-wrap:wrap; gap:.55rem; margin:3rem 0 1rem; }.gallery-page-filter { padding:.72rem .92rem; border:1px solid #3c3333; color:#c9c9c9; background:#101010; font-size:.62rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; transition:transform .2s,border .2s,color .2s,background .2s; }.gallery-page-filter span { margin-left:.45rem; color:#808080; }.gallery-page-filter:hover { border-color:#8f332e; color:white; transform:translateY(-2px); }.gallery-page-filter.active { border-color:var(--red); color:white; background:var(--red); box-shadow:0 9px 20px rgba(239,21,21,.2); }.gallery-page-filter.active span { color:#ffd0cd; }.gallery-page-status { min-height:1.3rem; margin:.3rem 0 1.25rem; color:#949494; font-size:.65rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }.gallery-page-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-auto-rows:128px; gap:.85rem; }.gallery-page-card { position:relative; grid-column:span 4; grid-row:span 2; min-height:0; padding:0; border:1px solid #46302e; color:white; background:#111; overflow:hidden; text-align:left; isolation:isolate; transition:transform .35s cubic-bezier(.2,.8,.2,1),border .25s,box-shadow .25s; }.gallery-page-card:hover { z-index:2; border-color:var(--red-light); box-shadow:0 22px 45px rgba(0,0,0,.38); transform:translateY(-5px); }.gallery-page-card>img,.gallery-page-card>video { width:100%; height:100%; object-fit:cover; object-position:center; filter:grayscale(.36) contrast(1.14) brightness(.69); transition:transform .65s ease,filter .35s ease; pointer-events:none; }.gallery-page-card>video { background:radial-gradient(circle,#4d1513,#080808 70%); }.gallery-page-card:hover>img,.gallery-page-card:hover>video { filter:grayscale(.04) contrast(1.08) brightness(.93); transform:scale(1.075); }.gallery-page-card::after { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.02) 28%,rgba(0,0,0,.9) 100%); }.gallery-page-sheen { position:absolute; z-index:2; top:-35%; left:-110%; width:54%; height:170%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent); transform:rotate(24deg); transition:left .72s ease; pointer-events:none; }.gallery-page-card:hover .gallery-page-sheen { left:140%; }.gallery-page-meta { position:absolute; z-index:3; right:1rem; bottom:.9rem; left:1rem; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.65rem; align-items:end; }.gallery-page-meta b { color:var(--red-light); font:700 1.25rem/.8 var(--font-display); }.gallery-page-meta span { min-width:0; display:grid; gap:.22rem; }.gallery-page-meta small { color:#f2938e; font-size:.53rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.gallery-page-meta strong { overflow:hidden; color:#fff; font:700 clamp(1.28rem,2vw,1.75rem)/.88 var(--font-display); letter-spacing:.02em; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }.gallery-page-meta i { color:white; font-size:.58rem; font-style:normal; font-weight:800; letter-spacing:.08em; opacity:0; text-transform:uppercase; transform:translateX(-5px); transition:.24s; }.gallery-page-card:hover .gallery-page-meta i { opacity:1; transform:none; }.gallery-page-card--wide { grid-column:span 8; grid-row:span 3; }.gallery-page-card--tall { grid-column:span 4; grid-row:span 3; }.gallery-page-card--video::before { content:"▶"; position:absolute; z-index:3; top:1rem; left:1rem; display:grid; place-items:center; width:39px; height:39px; border:1px solid rgba(255,255,255,.65); border-radius:50%; color:white; background:rgba(5,5,5,.58); font-size:.9rem; padding-left:2px; }.gallery-empty { display:grid; justify-items:center; max-width:650px; margin:1rem auto 0; padding:4rem 1.5rem; border:1px dashed #5b3935; background:linear-gradient(145deg,rgba(239,21,21,.09),rgba(12,12,12,.86)); text-align:center; }.gallery-empty>span { color:var(--red-light); font-size:1.7rem; }.gallery-empty h2 { margin:1rem 0 .55rem; font-size:clamp(2.6rem,5vw,4.2rem); }.gallery-empty p { max-width:430px; margin:0 0 1.4rem; color:#b8b8b8; font-size:.78rem; line-height:1.75; }

.gallery-lightbox { position:fixed; z-index:90; inset:0; display:grid; place-items:center; padding:1.2rem; background:rgba(0,0,0,.84); backdrop-filter:blur(11px); }.gallery-lightbox[hidden] { display:none; }.gallery-lightbox-backdrop { position:absolute; inset:0; }.gallery-lightbox-content { position:relative; z-index:1; width:min(1130px,100%); max-height:calc(100vh - 2.4rem); border:1px solid #6c2a27; background:#111; box-shadow:0 28px 90px #000; }.gallery-lightbox-content figure { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(220px,.55fr); min-height:min(71vh,650px); margin:0; }.gallery-lightbox-content figure>img,.gallery-lightbox-content figure>video { display:block; width:100%; height:100%; min-height:0; object-fit:cover; background:#050505; }.gallery-lightbox-content figure>video { object-fit:contain; }.gallery-lightbox-content figcaption { display:flex; flex-direction:column; justify-content:flex-end; padding:clamp(1.4rem,4vw,3rem); background:radial-gradient(circle at 90% 10%,rgba(222,17,17,.32),transparent 20rem),#101010; }.gallery-lightbox-content figcaption>span,.gallery-lightbox-content figcaption>p { color:var(--red-light); font:700 .7rem var(--font-body); letter-spacing:.13em; text-transform:uppercase; }.gallery-lightbox-content figcaption>p { margin:1rem 0 0; color:#ffb0ab; font-size:.57rem; }.gallery-lightbox-content figcaption h2 { margin:1rem 0; font-size:clamp(2.8rem,5vw,5.2rem); }.gallery-lightbox-content figcaption small { padding-top:1rem; border-top:1px solid rgba(255,255,255,.16); color:#aaa; font-size:.58rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.gallery-lightbox-close { position:absolute; z-index:4; top:.7rem; right:.8rem; width:39px; height:39px; border:1px solid #6a3936; border-radius:50%; color:white; background:rgba(8,8,8,.75); font-size:1.65rem; line-height:1; }.gallery-lightbox-close:hover,.gallery-lightbox-nav:hover { border-color:var(--red-light); background:var(--red); }.gallery-lightbox-nav { position:absolute; z-index:4; top:50%; width:45px; height:45px; border:1px solid #6a3936; border-radius:50%; color:white; background:rgba(7,7,7,.78); font-size:1.3rem; transform:translateY(-50%); }.gallery-lightbox-nav.previous { left:1rem; }.gallery-lightbox-nav.next { right:1rem; }
.gallery-audio-toggle { display:inline-flex; align-items:center; gap:.45rem; width:max-content; margin-top:.3rem; padding:.55rem .65rem; border:1px solid #b43a34; color:#fff; background:rgba(239,21,21,.18); font-size:.56rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.gallery-audio-toggle:hover { border-color:#ff8f88; background:var(--red); }.gallery-audio-toggle span { display:inline!important; color:#ffb9b4!important; font-size:.88rem!important; letter-spacing:0!important; }
.gallery-lightbox-content figure>img[hidden],.gallery-lightbox-content figure>video[hidden] { display:none!important; }
.gallery-lightbox-content figure:has(>video:not([hidden])) { min-height:min(64vh,590px); background:radial-gradient(circle at 50% 50%,#25100f 0,rgba(14,14,14,.98) 54%,#070707 100%); }
.gallery-lightbox-content figure>video:not([hidden]) { width:min(calc(100% - 3.5rem),460px); height:min(62vh,540px); justify-self:center; align-self:center; padding:.45rem; border:1px solid rgba(255,102,94,.78); border-radius:2px; background:#030303; box-shadow:0 0 0 7px rgba(239,21,21,.08),0 26px 58px rgba(0,0,0,.58); object-fit:contain; }

/* Video items use a purpose-built card, rather than the wider image lightbox. */
.gallery-lightbox.is-video .gallery-lightbox-content { width:min(650px,100%); max-height:calc(100vh - 2rem); }
.gallery-lightbox.is-video .gallery-lightbox-content figure { display:block; min-height:0; background:#070707; }
.gallery-lightbox.is-video .gallery-lightbox-content figure>video:not([hidden]) { display:block; width:min(calc(100% - 2.5rem),430px); height:min(50vh,440px); margin:1.25rem auto; padding:.4rem; border:1px solid rgba(255,110,102,.9); box-shadow:0 0 0 6px rgba(239,21,21,.09),0 22px 48px rgba(0,0,0,.65); object-fit:contain; }
.gallery-lightbox.is-video .gallery-lightbox-content figcaption { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.55rem 1rem; min-height:0; padding:1.1rem 1.25rem 1.2rem; background:linear-gradient(135deg,#170707,#100d0d); }
.gallery-lightbox.is-video .gallery-lightbox-content figcaption>span { grid-row:1 / span 2; font-size:.63rem; }
.gallery-lightbox.is-video .gallery-lightbox-content figcaption>p { margin:0; font-size:.52rem; }
.gallery-lightbox.is-video .gallery-lightbox-content figcaption h2 { margin:0; font-size:clamp(2.15rem,7vw,3.35rem); line-height:.85; }
.gallery-lightbox.is-video .gallery-audio-toggle { grid-column:3; grid-row:1 / span 2; margin:0; white-space:nowrap; }
.gallery-lightbox.is-video .gallery-lightbox-content figcaption small { grid-column:1 / -1; padding-top:.75rem; font-size:.52rem; }
.gallery-lightbox.is-video .gallery-lightbox-nav { top:40%; }
@media (max-width:650px) { .gallery-lightbox.is-video { padding:.45rem; }.gallery-lightbox.is-video .gallery-lightbox-content figure>video:not([hidden]) { width:min(calc(100% - 1.5rem),360px); height:min(47vh,390px); margin:.75rem auto; }.gallery-lightbox.is-video .gallery-lightbox-content figcaption { grid-template-columns:auto minmax(0,1fr); padding:1rem; }.gallery-lightbox.is-video .gallery-audio-toggle { grid-column:1 / -1; grid-row:auto; justify-self:start; }.gallery-lightbox.is-video .gallery-lightbox-content figcaption small { font-size:.5rem; }.gallery-lightbox.is-video .gallery-lightbox-nav { top:35%; } }

@media (max-width:900px) { .gallery-link-section,.gallery-page-hero,.gallery-portfolio-heading { grid-template-columns:1fr; }.gallery-link-section { align-items:start; }.gallery-link-panel { max-width:520px; min-height:0; }.gallery-page-hero { min-height:0; }.gallery-page-hero-panel { max-width:500px; }.gallery-page-hero::after { left:78%; }.gallery-page-grid { grid-template-columns:repeat(6,minmax(0,1fr)); grid-auto-rows:118px; }.gallery-page-card { grid-column:span 3; }.gallery-page-card--wide { grid-column:span 6; }.gallery-page-card--tall { grid-column:span 3; }.gallery-lightbox-content figure { min-height:560px; } }
@media (max-width:650px) { .gallery-link-section { padding-block:4.5rem; }.gallery-link-copy h2 { font-size:4.3rem; }.gallery-link-panel { padding:1.3rem; }.gallery-page-hero { padding-block:3.7rem; }.gallery-page-hero-copy h1 { font-size:4.4rem; }.gallery-page-hero::after { left:87%; }.gallery-page-hero-panel { min-height:190px; }.gallery-page-hero-panel strong { font-size:3.1rem; }.gallery-portfolio-heading { gap:1rem; }.gallery-page-filters { flex-wrap:nowrap; margin-top:2rem; overflow:auto; padding-bottom:.35rem; }.gallery-page-filter { flex:none; }.gallery-page-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:155px; gap:.6rem; }.gallery-page-card,.gallery-page-card--tall { grid-column:span 1; grid-row:span 1; }.gallery-page-card--wide { grid-column:span 2; grid-row:span 2; }.gallery-page-meta { right:.65rem; bottom:.65rem; left:.65rem; gap:.45rem; }.gallery-page-meta strong { font-size:1.35rem; }.gallery-page-meta i { display:none; }.gallery-page-card--video::before { top:.65rem; left:.65rem; width:34px; height:34px; }.gallery-lightbox { padding:.6rem; }.gallery-lightbox-content figure { display:block; min-height:0; }.gallery-lightbox-content figure>img,.gallery-lightbox-content figure>video { height:min(54vh,430px); }.gallery-lightbox-content figure>video { object-fit:contain; }.gallery-lightbox-content figcaption { min-height:220px; padding:1.3rem 1.3rem 1.5rem; }.gallery-lightbox-content figcaption h2 { margin:.6rem 0; font-size:3.15rem; }.gallery-lightbox-nav { top:calc(min(54vh,430px) / 2); width:38px; height:38px; }.gallery-lightbox-nav.previous { left:.55rem; }.gallery-lightbox-nav.next { right:.55rem; }.gallery-empty { padding:3rem 1rem; } }

/* Gallery art direction: the work is the page, not decoration around it. */
.gallery-page-body .gallery-page-hero { grid-template-columns:minmax(0,1fr) minmax(230px,310px); gap:clamp(2rem,7vw,7rem); min-height:0; padding-block:clamp(2.8rem,5vw,4.4rem); }.gallery-page-body .gallery-page-hero-copy { max-width:760px; }.gallery-page-body .gallery-page-hero-copy h1 { margin-bottom:.75rem; font-size:clamp(3.9rem,6.5vw,6.6rem); }.gallery-page-body .gallery-page-hero-copy>p:not(.eyebrow) { max-width:620px; font-size:.82rem; }.gallery-page-body .gallery-page-actions { margin-top:1.35rem; }.gallery-page-body .gallery-page-hero-panel { min-height:172px; gap:.65rem; padding:1.25rem; }.gallery-page-body .gallery-panel-mark { color:#ff9c96; font-size:.55rem; font-weight:900; letter-spacing:.17em; text-transform:uppercase; }.gallery-page-body .gallery-page-hero-panel strong { font-size:clamp(2.6rem,4.2vw,4rem); }.gallery-page-body .gallery-page-hero-panel small { padding-top:.7rem; font-size:.54rem; }.gallery-page-body .gallery-portfolio { padding-top:clamp(2.4rem,4.2vw,4rem); }.gallery-portfolio-toolbar { display:flex; align-items:end; justify-content:space-between; gap:2rem; padding-bottom:1.2rem; border-bottom:1px solid rgba(255,255,255,.13); }.gallery-portfolio-intro { display:flex; align-items:baseline; gap:1.1rem; }.gallery-portfolio-intro .eyebrow { margin:0; white-space:nowrap; }.gallery-portfolio-intro h2 { margin:0; font-size:clamp(2.5rem,4.4vw,4.7rem); }.gallery-portfolio-intro>p:not(.eyebrow) { margin:0; color:#9e9e9e; font-size:.66rem; line-height:1.6; }.gallery-page-filters { justify-content:flex-end; margin:0; }.gallery-page-filter { position:relative; padding:.65rem .78rem; border-color:rgba(255,255,255,.2); background:transparent; }.gallery-page-filter::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(130deg,rgba(239,21,21,.2),transparent); opacity:0; transition:opacity .2s; }.gallery-page-filter:hover::before,.gallery-page-filter.active::before { opacity:1; }.gallery-page-filter.active { border-color:#ff5048; background:#171010; box-shadow:none; }.gallery-page-status { margin:1rem 0 .8rem; color:#b8b8b8; }.gallery-page-grid { grid-auto-rows:132px; gap:1rem; }.gallery-page-card { border-color:rgba(255,255,255,.17); background:#171717; }.gallery-page-card:focus-visible { z-index:4; outline:2px solid #ff544c; outline-offset:3px; }.gallery-page-card>img,.gallery-page-card>video { filter:contrast(1.08) saturate(1.04) brightness(.8); }.gallery-page-card:hover>img,.gallery-page-card:hover>video { filter:contrast(1.04) saturate(1.12) brightness(.96); }.gallery-page-card::after { background:linear-gradient(180deg,rgba(0,0,0,.02) 23%,rgba(0,0,0,.16) 47%,rgba(0,0,0,.91) 100%); }.gallery-page-card--featured { grid-column:span 8; grid-row:span 4; }.gallery-page-card--wide { grid-column:span 8; grid-row:span 3; }.gallery-page-card--tall { grid-column:span 4; grid-row:span 4; }.gallery-page-meta { right:1.1rem; bottom:1rem; left:1.1rem; }.gallery-page-meta b { color:#fff; font-size:1.05rem; text-shadow:0 1px 8px #000; }.gallery-page-meta small { color:#ffaaa4; }.gallery-page-card--featured .gallery-page-meta strong { font-size:clamp(1.75rem,3vw,2.8rem); }.gallery-page-grid--compact { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:clamp(250px,28vw,420px); }.gallery-page-grid--compact .gallery-page-card { grid-column:span 1; grid-row:span 1; }.gallery-page-grid--single { grid-template-columns:1fr; grid-auto-rows:clamp(360px,50vw,620px); }.gallery-page-grid--single .gallery-page-card { grid-column:auto; }.gallery-page-grid--compact .gallery-page-card>img,.gallery-page-grid--compact .gallery-page-card>video { object-position:center 54%; }.gallery-lightbox-content { border-color:rgba(255,91,84,.72); }.gallery-lightbox-content figure { grid-template-columns:minmax(0,1.65fr) minmax(245px,.45fr); }.gallery-lightbox-close:focus-visible,.gallery-lightbox-nav:focus-visible { outline:2px solid white; outline-offset:2px; }
@media (max-width:1000px) { .gallery-portfolio-toolbar { display:grid; grid-template-columns:1fr; gap:1.25rem; }.gallery-page-filters { justify-content:flex-start; }.gallery-page-grid { grid-auto-rows:118px; }.gallery-page-card--featured { grid-column:span 6; }.gallery-page-card--tall { grid-column:span 3; }.gallery-page-card--wide { grid-column:span 6; }.gallery-page-grid--compact { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:clamp(230px,36vw,360px); }.gallery-page-grid--compact .gallery-page-card { grid-column:span 1; } }
@media (max-width:650px) { .gallery-page-body .gallery-page-hero { grid-template-columns:1fr; gap:1.7rem; padding-block:3rem; }.gallery-page-body .gallery-page-hero-copy h1 { font-size:4.15rem; }.gallery-page-body .gallery-page-hero-panel { max-width:none; min-height:0; }.gallery-portfolio-toolbar { gap:1rem; }.gallery-portfolio-intro { display:block; }.gallery-portfolio-intro .eyebrow { margin-bottom:.55rem; }.gallery-portfolio-intro>p:not(.eyebrow) { margin-top:.7rem; }.gallery-page-grid { gap:.6rem; }.gallery-page-grid--compact { grid-auto-rows:clamp(205px,62vw,340px); }.gallery-page-grid--compact .gallery-page-card { grid-column:span 1; }.gallery-page-grid--single { grid-template-columns:1fr; grid-auto-rows:clamp(320px,100vw,500px); }.gallery-page-card--featured,.gallery-page-card--wide { grid-column:span 2; grid-row:span 2; }.gallery-page-card--tall { grid-column:span 1; grid-row:span 2; } }

/* Member rewards in the booking flow */
.booking-rewards { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; align-items:center; padding:1rem; border:1px solid #5a2b28; background:linear-gradient(118deg,rgba(239,21,21,.14),#111 58%); }.booking-rewards .eyebrow { margin-bottom:.45rem; font-size:.56rem; }.booking-rewards strong { display:block; color:#fff; font:700 1.45rem/.9 var(--font-display); text-transform:uppercase; }.booking-rewards p:not(.eyebrow) { margin:.45rem 0 0; color:#b5b5b5; font-size:.64rem; line-height:1.6; }.booking-rewards label { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1fr) minmax(105px,145px); align-items:center; gap:1rem; color:#eee; font-size:.68rem; }.booking-rewards label small { color:#999; }.booking-rewards input { width:100%; padding:.62rem; border:1px solid #5b4745; color:white; background:#171717; text-align:right; }.coupon-feedback { min-height:1.2rem; margin:0; color:#898989; font-size:.62rem; line-height:1.55; }.coupon-feedback.valid { color:#a7efb8; }.coupon-feedback.invalid { color:#ff9992; } @media (max-width:650px) { .booking-rewards { grid-template-columns:1fr; }.booking-rewards .button { justify-self:start; }.booking-rewards label { grid-template-columns:1fr; gap:.45rem; } }

/* Multiple service quantities in the booking flow. */
.booking-option-add { display:block; width:100%; padding:0; border:0; color:inherit; background:transparent; text-align:left; cursor:pointer; }
.booking-option-add:focus-visible { outline:1px solid #ff8a82; outline-offset:5px; }
.booking-option-remove { position:absolute; z-index:2; top:.7rem; right:.7rem; display:grid; place-items:center; width:25px; height:25px; padding:0; border:1px solid #94413c; border-radius:50%; color:#ffd1cd; background:#261010; font-size:1.1rem; line-height:1; cursor:pointer; }
.booking-option-remove:hover { border-color:#ff8179; color:#fff; background:var(--red); }
.booking-option.selected::after { display:none; }
.booking-option-count { position:absolute; right:.75rem; top:2.55rem; color:#ffaaa4!important; font-size:.5rem!important; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }

/* Home gallery slideshow: real team uploads, never a static showreel placeholder. */
.gallery-page-meta { right:auto; display:block!important; }
.gallery-page-meta b,.gallery-page-meta strong,.gallery-page-meta i { display:none!important; }
.gallery-page-meta span { display:block!important; }
.gallery-page-meta small { display:inline-block; padding:.42rem .56rem; border:1px solid rgba(255,109,102,.6); color:#ffb5b0; background:rgba(8,8,8,.84); box-shadow:0 7px 18px rgba(0,0,0,.28); }
.gallery-slideshow-section { position:relative; display:grid; grid-template-columns:minmax(250px,.78fr) minmax(360px,1.22fr); gap:clamp(2rem,8vw,8rem); align-items:center; overflow:hidden; padding:clamp(4.5rem,9vw,8rem) clamp(1.3rem,7vw,8rem); border-top:1px solid var(--line); background:radial-gradient(circle at 78% 44%,rgba(219,15,15,.2),transparent 28rem),#0a0a0a; }.gallery-slideshow-section::before { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(110deg,rgba(255,255,255,.025),transparent 40%),repeating-linear-gradient(108deg,transparent 0 94px,rgba(255,255,255,.018) 95px 96px); }.gallery-slideshow-copy,.gallery-slideshow { position:relative; z-index:1; }.gallery-slideshow-copy>p:not(.eyebrow) { max-width:460px; margin:1.5rem 0 2rem; color:#b5b5b5; font-size:.85rem; line-height:1.85; }.gallery-slideshow { overflow:hidden; border:1px solid #63302e; background:#121212; box-shadow:0 28px 70px rgba(0,0,0,.48); }.gallery-slideshow-stage { position:relative; display:block; min-height:430px; overflow:hidden; color:white; background:radial-gradient(circle at 50% 50%,#2c0a0a,#0b0b0b 70%); isolation:isolate; }.gallery-slideshow-stage::after { content:""; position:absolute; z-index:2; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(5,5,5,.08),rgba(5,5,5,.56) 100%),linear-gradient(90deg,rgba(239,21,21,.17),transparent 40%); }.gallery-slideshow-stage:hover .gallery-slideshow-image.is-active { transform:scale(1.045); }.gallery-slideshow-image { position:absolute; z-index:1; inset:0; width:100%; height:100%; opacity:0; object-fit:cover; object-position:center; filter:contrast(1.07) saturate(.84) brightness(.82); transform:scale(1.015); transition:opacity .62s ease,transform 5.5s ease,filter .35s; }.gallery-slideshow-image.is-active { opacity:1; }.gallery-slideshow-empty { position:absolute; z-index:3; inset:0; display:grid; place-content:center; gap:.8rem; padding:2rem; color:#aaa; text-align:center; }.gallery-slideshow-empty span { color:var(--red-light); font-size:2.1rem; }.gallery-slideshow-empty p { max-width:280px; margin:0; font-size:.72rem; line-height:1.65; }.gallery-slideshow-footer { position:relative; z-index:4; display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:82px; padding:1rem 1.15rem; border-top:1px solid #4a2624; background:linear-gradient(100deg,#161010,rgba(35,8,8,.9)); }.gallery-slideshow-footer>div:first-child { display:grid; gap:.25rem; min-width:0; }.gallery-slideshow-footer span:not(#gallery-slideshow-count) { color:var(--red-light); font-size:.55rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }.gallery-slideshow-footer strong { overflow:hidden; color:#f2f2f2; font:700 1.45rem/.92 var(--font-display); text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }.gallery-slideshow-controls { display:flex; align-items:center; gap:.5rem; flex:none; }.gallery-slideshow-controls button { display:grid; place-items:center; width:34px; height:34px; border:1px solid #6a3633; color:#fff; background:#151515; font-size:1rem; transition:background .2s,border .2s,transform .2s; }.gallery-slideshow-controls button:not(:disabled):hover { border-color:var(--red-light); background:var(--red); transform:translateY(-2px); }.gallery-slideshow-controls button:disabled { cursor:default; opacity:.35; }.gallery-slideshow-controls span { min-width:46px; color:#aaa; font-size:.55rem; font-weight:900; letter-spacing:.07em; text-align:center; }.gallery-slideshow-footer { min-height:58px; }.gallery-slideshow-footer>div:first-child { display:block!important; }.gallery-slideshow-footer strong { display:none!important; }
@media (max-width:900px) { .gallery-slideshow-section { grid-template-columns:1fr; }.gallery-slideshow { max-width:720px; width:100%; }.gallery-slideshow-stage { min-height:370px; } }
@media (max-width:650px) { .gallery-slideshow-section { padding-block:4.5rem; }.gallery-slideshow-stage { min-height:300px; }.gallery-slideshow-footer { align-items:flex-end; padding:.9rem; }.gallery-slideshow-footer strong { max-width:180px; font-size:1.2rem; } }

/* Secure gift-card checkout. */
.gift-card-value { width:100%; text-align:left; cursor:pointer; }
.gift-card-dialog { width:min(680px,calc(100% - 2rem)); max-height:calc(100vh - 2rem); padding:0; border:1px solid #713531; background:radial-gradient(circle at 100% 0,rgba(239,21,21,.24),transparent 18rem),#100d0d; color:#fff; box-shadow:0 28px 90px #000; }
.gift-card-dialog::backdrop { background:rgba(0,0,0,.82); backdrop-filter:blur(5px); }
.gift-card-dialog form { position:relative; padding:clamp(1.35rem,4vw,2.4rem); }
.gift-card-dialog h2 { margin:.35rem 2rem .55rem 0; font:800 clamp(2rem,5vw,3.4rem)/.95 var(--font-display); text-transform:uppercase; }
.gift-card-dialog h2 span { color:var(--red-light); }
.gift-card-dialog-copy,.gift-card-secure-note { color:#bdb3b1; font-size:.75rem; line-height:1.65; }
.gift-card-dialog-close { position:absolute; top:1rem; right:1rem; width:38px; height:38px; border:1px solid #68403c; background:#171313; color:#fff; font-size:1.5rem; cursor:pointer; }
.gift-card-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin:1.35rem 0 1rem; }
.gift-card-form-grid label { display:grid; gap:.4rem; color:#ddd3d1; font-size:.64rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.gift-card-form-grid label small { color:#8e8381; font-size:.55rem; }
.gift-card-form-grid input,.gift-card-form-grid textarea { width:100%; padding:.75rem; border:1px solid #4b3734; background:#0b0a0a; color:#fff; font:inherit; text-transform:none; }
.gift-card-form-grid input:focus,.gift-card-form-grid textarea:focus { outline:2px solid #ef1515; outline-offset:1px; }
.gift-card-message { grid-column:1/-1; }
.gift-card-terms { display:flex; align-items:flex-start; gap:.6rem; color:#c8bfbd; font-size:.7rem; line-height:1.5; }
.gift-card-terms input { margin-top:.15rem; accent-color:#ef1515; }
.gift-card-terms a { color:#ff746d; }
.gift-card-form-status { min-height:1.2rem; margin:.8rem 0; color:#c6bcba; font-size:.7rem; }
.gift-card-form-status.invalid { color:#ff7e76; }
.gift-card-pay { width:100%; justify-content:center; }
.gift-card-pay:disabled { opacity:.62; cursor:wait; }
.gift-card-secure-note { margin:.7rem 0 0; text-align:center; font-size:.62rem; }
@media (max-width:560px) { .gift-card-form-grid { grid-template-columns:1fr; }.gift-card-message { grid-column:auto; } }
.gift-card-sales-title { margin:1.4rem 0 .5rem; padding-top:1.1rem; border-top:1px solid #49302d; color:#ffaaa4; font-size:.62rem; letter-spacing:.11em; text-transform:uppercase; }
.gift-card-sale small { display:block; margin-top:.25rem; color:#8f8684; font-size:.55rem; }
