@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Italiana&display=swap');
:root{--bg:#000;--gold:#dbbd7c;--text:#f8f6f0;--muted:#b9bdbe;--line:#ffffff24}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--gold);outline-offset:7px}header{display:flex;justify-content:space-between;align-items:center;padding:25px 5%;border-bottom:1px solid var(--line);gap:25px}.brand{display:flex;align-items:center;gap:14px;font-size:15px;letter-spacing:2px;line-height:1.5}.brand small{display:block;font-size:10px;letter-spacing:3px;color:var(--gold);margin-top:4px}.mark{font-size:42px;color:var(--gold);line-height:1}nav{display:flex;gap:30px;align-items:center;font-size:14px}.nav-contact{border:1px solid #dbbd7c80;padding:11px 18px;color:var(--gold)}.hero{position:relative;min-height:730px;display:flex;align-items:center;background-position:center;background-size:cover}.hero-shade{position:absolute;inset:0;background:none}.hero-content{position:relative;padding:60px 8% 125px;width:100%}.eyebrow{font-size:12px;letter-spacing:2.8px;color:var(--gold);font-weight:500;margin:0 0 25px}h1,h2,h3{font-family:'Italiana',Georgia,serif;font-weight:400;line-height:1.1;margin:0}h1{font-size:clamp(60px,6.8vw,104px);letter-spacing:-2px}em{font-weight:400;color:var(--gold)}h2{font-size:clamp(40px,4.2vw,64px)}h3{font-size:32px;line-height:1.2}.intro{max-width:440px;color:#e0e0dc;margin:25px 0 30px;font-size:17px}.button{display:inline-flex;align-items:center;gap:35px;background:var(--gold);color:#14191c;padding:15px 23px;font-size:14px;font-weight:600;transition:background .2s}.button:hover{background:#f1d7a3}.hero-footer{position:absolute;bottom:26px;left:8%;right:8%;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:24px;font-size:12px;letter-spacing:1.6px}.hero-footer a{font-size:14px;letter-spacing:0}.section{padding:100px 8%}.section-heading{max-width:710px}.section-heading>p:last-child{max-width:570px;color:var(--muted);margin-top:25px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;margin-top:60px}.services article{border-top:1px solid var(--line);padding-top:25px}.number{font-size:12px;letter-spacing:2px;color:var(--gold);display:block;margin-bottom:25px}.services p{color:var(--muted);font-size:16px;max-width:330px}.gallery{background:#000}.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:40px}.text-link{font-size:14px;border-bottom:1px solid #dbbd7c75;padding-bottom:8px;color:var(--gold);display:inline-block}.gallery-note{color:var(--muted);font-size:14px}#photo-gallery{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:20px}#photo-gallery a{display:block;overflow:hidden}#photo-gallery img{width:100%;height:370px;display:block;object-fit:cover;transition:transform .4s}#photo-gallery a:hover img{transform:scale(1.035)}.shop{display:grid;grid-template-columns:1fr 1fr;gap:90px;border-bottom:1px solid var(--line)}.shop-copy>p{color:var(--muted);margin:0 0 20px}.address{border-top:1px solid var(--line);margin-top:35px;padding-top:28px}.address span{display:block;font-size:12px;color:var(--gold);letter-spacing:2px}.address strong{display:block;font-size:20px;line-height:1.6;font-weight:400;margin:15px 0}.reviews{text-align:center;max-width:960px;margin:auto}.reviews>p:not(.eyebrow){color:var(--muted);max-width:540px;margin:25px auto 35px}.review-link{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);padding:24px 30px;max-width:540px;margin:auto;gap:20px}.review-link span:first-child{font-family:Georgia,serif;font-size:24px}.review-link span:last-child{font-size:14px;color:var(--gold)}.contact{text-align:center;background:#000;border-top:1px solid var(--line)}.contact h2{font-size:clamp(45px,6vw,85px)}.contact p:not(.eyebrow){color:var(--muted)}.contact-actions{display:flex;justify-content:center;align-items:center;gap:32px;margin-top:30px}footer{padding:40px 5%;display:flex;justify-content:space-between;align-items:center;gap:25px}footer p,footer>a:last-child{font-size:12px;color:var(--muted)}@media(max-width:800px){header{padding:20px 6%;align-items:start}nav{gap:15px}nav>a:not(.nav-contact){display:none}.nav-contact{font-size:12px;padding:10px}.brand{font-size:12px;letter-spacing:1px}.brand small{font-size:9px}.mark{font-size:32px}.hero{min-height:710px}.hero-content{padding-left:7%;padding-right:7%}.hero-shade{background:none}.hero-footer{left:7%;right:7%}.hero-footer>span{max-width:180px;font-size:10px}.section{padding:70px 7%}.services{grid-template-columns:1fr;gap:25px;margin-top:38px}.services p{max-width:none}.services h3 br{display:none}.gallery-heading{display:block}.gallery-heading>a{margin-top:25px}#photo-gallery{grid-template-columns:1fr 1fr;gap:12px}#photo-gallery a:first-child{grid-column:1/-1}#photo-gallery img{height:260px}.shop{grid-template-columns:1fr;gap:35px}.contact-actions{flex-direction:column;gap:22px}footer{flex-direction:column;align-items:start;padding:35px 7%}.review-link{padding:20px}.review-link span:first-child{font-size:21px}.review-link span:last-child{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.hero{background:#000}.portfolio-link{display:flex;flex-direction:column;gap:15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0}.portfolio-link span{font-size:12px;letter-spacing:2px;color:var(--gold);text-transform:uppercase}.portfolio-link strong{font-size:22px;font-weight:400}.reviews .rating{display:flex;flex-direction:column;gap:10px}.rating strong{color:var(--gold);font-size:55px;font-family:Georgia,serif;font-weight:400}.rating strong span{font-size:24px}.rating>span{font-size:12px}

header,footer,.section,.hero{background-color:#000}.brand-logo{display:block;width:260px;height:auto;max-width:100%}.brand{flex-shrink:0}.instagram-icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle;margin-right:9px}a:has(>.instagram-icon){display:inline-flex;align-items:center}.button .instagram-icon{margin-right:-23px}.gallery{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}@media(max-width:800px){.brand-logo{width:190px}.brand{flex-shrink:1}.nav-contact{max-width:160px;line-height:1.4}.nav-contact .instagram-icon{width:18px;height:18px}.hero-footer>a{font-size:12px}}@media(max-width:420px){.brand-logo{width:155px}header{gap:14px}.nav-contact{max-width:145px}}
/* Shared Pirotecnica identity on all public page templates. */
body{background:#000;color:#f8f6f0}.hero-copy,.client-hero,.client-prep,.client-delivery,.client-review,.film-feature,.closing,.intro,.care,.manifesto-strip,.contact-layout,.studio-location,.story-content,.story-hero,.stories-intro,.stories-closing,.film-intro,.film-closing,.client-path,.client-countdown,.client-card,.client-downloads article,.contact-form,.location-card,.client-dialog,.links-card{background:#000;color:#f8f6f0;border-color:#ffffff29}.contact-copy p,.contact-form p,.studio-location p,.client-main p,.story-content p{color:#b9bdbe}.client-dialog input,.client-dialog select,.client-dialog textarea,.contact-form input,.contact-form select,.contact-form textarea{background:#151515;color:#f8f6f0;border:1px solid #ffffff40}.client-dialog h2,.client-dialog h3,.client-main h1,.client-main h2,.client-main h3{color:#f8f6f0}.client-status,.client-pending,.eyebrow,.text-link{color:#dbbd7c}.client-contract,.client-downloads article,.client-expiry,.client-path a{border-color:#ffffff30}.button{border:0;border-radius:0}.brand img{width:260px;height:auto;max-width:100%}.menu{display:none;color:#dbbd7c;background:none;border:1px solid #dbbd7c66;padding:10px 14px}.hero-content>.intro{background:transparent}.hero-content{max-width:none}.story-grid{margin-top:35px}.story-card .card-caption{color:#f8f6f0}.story-card .photo{background:#111}.hero-footer{color:#b9bdbe}.client-downloads article{border:1px solid #ffffff30}header nav{flex-wrap:wrap;gap:18px}header nav a{font-size:12px}.brand{max-width:280px}
@media(max-width:1000px){header{flex-wrap:wrap}.menu{display:block;margin-left:auto}header nav{display:none;width:100%;flex-direction:column;align-items:flex-start}header nav.open{display:flex}header nav.open>a{display:block!important}.brand img{width:220px}.contact-layout,.studio-location,.client-hero,.client-prep{grid-template-columns:1fr;gap:30px}.client-path{flex-wrap:wrap}.client-downloads{grid-template-columns:1fr}.hero-content{padding-top:45px}}
