:root { --orange:#f04a0c; --black:#090a0a; --ink:#161819; --paper:#f3f1eb; --line:#d7d4cc; --font-display:"Arial Narrow","Roboto Condensed",Impact,sans-serif; --font-body:Inter,Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-body),Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
img,video { display:block; max-width:100%; }
.wrap { width:min(1240px,calc(100% - 64px)); margin-inline:auto; }
.section { padding-block:120px; }
.eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 28px; color:#fff; font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.eyebrow span { width:32px; height:2px; background:var(--orange); }
.eyebrow.dark { color:#606365; }
.site-header { position:absolute; z-index:20; top:0; left:0; width:100%; height:100px; padding:18px 4vw; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #ffffff26; color:white; }
.brand img { width:142px; height:66px; object-fit:contain; filter:brightness(0) invert(1); }
.site-header nav { display:flex; gap:34px; font-size:12px; font-weight:600; letter-spacing:.11em; text-transform:uppercase; }
.site-header nav a { transition:.25s; }
.site-header nav a:hover { color:var(--orange); }
.button { display:inline-flex; min-height:58px; padding:0 24px; align-items:center; justify-content:center; gap:22px; border:1px solid var(--orange); background:var(--orange); color:#fff; font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; transition:.25s; }
.button:hover { background:#d43d00; border-color:#d43d00; transform:translateY(-2px); }
.button-small { min-height:46px; padding-inline:18px; }
.hero { min-height:830px; height:100vh; position:relative; overflow:hidden; background:#0b0c0c; color:#fff; }
.hero>video { position:absolute; width:100%; height:100%; object-fit:cover; opacity:.74; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,#080909ed 0%,#0809099e 48%,#0809091f 80%),linear-gradient(0deg,#080909d9 0%,transparent 40%); }
.hero-grid { position:absolute; inset:0; opacity:.12; background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px); background-size:100% 25%,25% 100%; mask-image:linear-gradient(to bottom,transparent,black); }
.hero-content { position:relative; z-index:2; padding-top:205px; }
.hero h1,.section-heading h2,.split-content h2,.quality h2,.video-copy h2,.projects h2,.region h2,.final-cta h2,.contact h2 { font-family:var(--font-display),Impact,sans-serif; font-weight:600; text-transform:uppercase; line-height:.84; letter-spacing:-.025em; margin:0; }
.hero h1 { font-size:clamp(76px,9.2vw,145px); max-width:930px; }
h1 em,h2 em { color:var(--orange); font-style:normal; }
.hero-copy { margin:34px 0 38px; max-width:580px; color:#dbdddd; font-size:18px; line-height:1.6; }
.hero-actions { display:flex; align-items:center; gap:34px; }
.text-link,.arrow-link { font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding-bottom:7px; border-bottom:1px solid currentColor; }
.text-link span,.arrow-link span { margin-left:12px; color:var(--orange); }
.hero-stats { position:absolute; z-index:3; right:4vw; bottom:0; display:grid; grid-template-columns:repeat(3,210px); background:#0a0b0bd9; backdrop-filter:blur(12px); }
.hero-stats div { padding:28px; border-left:1px solid #ffffff1c; }
.hero-stats strong { display:block; font-family:var(--font-display); font-size:27px; color:var(--orange); text-transform:uppercase; }
.hero-stats span { font-size:10px; color:#b9bcbc; letter-spacing:.06em; text-transform:uppercase; }
.intro { display:grid; grid-template-columns:1.5fr .7fr; gap:10vw; align-items:end; }
.section-heading h2,.split-content h2,.video-copy h2,.projects h2,.region h2 { font-size:clamp(58px,6.5vw,94px); }
.intro-copy { padding-bottom:8px; }
.intro-copy p,.video-copy>p,.region-title>p { color:#646768; font-size:17px; line-height:1.75; margin:0 0 34px; }
.arrow-link { display:inline-flex; color:#161819; }
.services { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:#bbb; }
.service-card { min-height:500px; position:relative; overflow:hidden; color:#fff; background:#222; }
.service-card img,.service-shade { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.service-card img { transition:.55s; }
.service-card:hover img { transform:scale(1.045); }
.service-shade { background:linear-gradient(0deg,#080909f2 8%,transparent 75%); }
.service-number { position:absolute; top:24px; left:24px; font-size:11px; letter-spacing:.15em; }
.service-content { position:absolute; bottom:0; padding:28px; }
.service-content h3 { font-family:var(--font-display); margin:0 0 12px; font-size:32px; line-height:1; text-transform:uppercase; }
.service-content p { margin:0; color:#cfd1d1; font-size:13px; line-height:1.6; }
.split-section { display:grid; grid-template-columns:1fr 1fr; gap:9vw; align-items:center; }
.split-image { position:relative; height:720px; }
.split-image img { width:100%; height:100%; object-fit:cover; }
.vertical-label { position:absolute; left:-42px; bottom:80px; transform:rotate(-90deg); transform-origin:left; color:#717374; font-size:9px; letter-spacing:.22em; text-transform:uppercase; }
.split-content h2 { margin-bottom:54px; }
.split-options { border-top:1px solid var(--line); }
.split-options>div { position:relative; display:grid; grid-template-columns:52px 1fr; padding:26px 0; border-bottom:1px solid var(--line); }
.split-options span { grid-row:1/3; font-family:var(--font-display); color:var(--orange); font-size:14px; }
.split-options h3 { margin:0 0 8px; font-family:var(--font-display); font-size:27px; text-transform:uppercase; }
.split-options p { margin:0; color:#6b6e6f; font-size:14px; line-height:1.65; }
.button-dark { margin-top:34px; background:var(--ink); border-color:var(--ink); }
.quality { min-height:850px; position:relative; display:flex; align-items:center; overflow:hidden; color:#fff; background:#080909; }
.quality-photo { position:absolute; inset:0; background:linear-gradient(90deg,#080909 15%,#080909c7 52%,#0809091c),url('assets/images/gallery/tendas-chuva-noite.jpeg') center/cover; opacity:.9; }
.quality-content { position:relative; }
.quality h2 { font-size:clamp(66px,7vw,108px); }
.quality-lead { max-width:590px; margin:34px 0 44px; color:#c7caca; font-size:16px; line-height:1.7; }
.quality-list { max-width:760px; display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid #ffffff25; }
.quality-list div { display:flex; gap:20px; padding:19px 0; border-bottom:1px solid #ffffff25; font-size:13px; text-transform:uppercase; letter-spacing:.05em; }
.quality-list strong { color:var(--orange); font-size:10px; }
.video-section { display:grid; grid-template-columns:.65fr 1.35fr; gap:8vw; align-items:center; }
.video-copy h2 { font-size:clamp(52px,5vw,78px); margin-bottom:32px; }
.event-tags { display:flex; flex-wrap:wrap; gap:8px; }
.event-tags span { padding:9px 13px; border:1px solid #c8c5be; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.video-frame { position:relative; background:#111; aspect-ratio:16/10; }
.video-frame video { width:100%; height:100%; object-fit:cover; }
.video-label { position:absolute; right:-35px; top:50%; transform:rotate(90deg); color:#777; font-size:9px; letter-spacing:.2em; text-transform:uppercase; }
.projects { background:#e8e5de; }
.projects-head { display:flex; justify-content:space-between; align-items:end; gap:80px; margin-bottom:70px; }
.projects-head>p { max-width:420px; margin:0 0 8px; color:#6a6c6d; line-height:1.7; }
.gallery { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:115px; gap:18px; }
.gallery-item { position:relative; overflow:hidden; margin:0; background:#ccc; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:.5s; }
.gallery-item:hover img { transform:scale(1.035); }
.gallery-item figcaption { position:absolute; inset:auto 0 0; padding:42px 18px 16px; color:white; background:linear-gradient(transparent,#000b); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; }
.gallery-item figcaption span { color:var(--orange); margin-right:12px; }
.item-1 { grid-column:span 7; grid-row:span 4; }.item-2 { grid-column:span 5; grid-row:span 3; }.item-3 { grid-column:span 5; grid-row:span 4; }.item-4 { grid-column:span 4; grid-row:span 3; }.item-5 { grid-column:span 3; grid-row:span 3; }.item-6 { grid-column:span 7; grid-row:span 4; }.item-7 { grid-column:span 5; grid-row:span 4; }.item-8 { grid-column:span 12; grid-row:span 4; }
.region { display:grid; grid-template-columns:.8fr 1.2fr; gap:10vw; }
.region-title { position:sticky; top:60px; align-self:start; }
.city-list { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); }
.city-list span { display:flex; align-items:center; gap:18px; padding:17px 0; border-bottom:1px solid var(--line); font-family:var(--font-display); font-size:21px; text-transform:uppercase; }
.city-list span:nth-child(odd) { border-right:1px solid var(--line); }
.city-list span:nth-child(even) { padding-left:24px; }
.city-list b { color:var(--orange); font-family:var(--font-body); font-size:9px; }
.final-cta { min-height:650px; position:relative; display:flex; align-items:center; overflow:hidden; color:#fff; background:#0a0b0b; }
.final-cta-bg { position:absolute; inset:0; background:linear-gradient(90deg,#090a0af2,#090a0a59),url('assets/images/gallery/tendas-jardim-tablado.jpeg') center/cover; }
.final-cta-content { position:relative; }
.final-cta h2 { font-size:clamp(70px,8vw,122px); max-width:1000px; }
.final-cta-content>p:not(.eyebrow) { max-width:540px; color:#d1d3d3; line-height:1.7; font-size:16px; }
.button-light { margin-top:20px; background:white; border-color:white; color:#111; }
.button-light:hover { color:white; }
.contact { display:grid; grid-template-columns:.8fr 1.2fr; gap:0; }
.contact-card { padding:70px; background:#111313; color:white; }
.contact h2 { font-size:72px; }
.contact-details { margin:42px 0; border-top:1px solid #ffffff23; }
.contact-details>div { padding:18px 0; border-bottom:1px solid #ffffff23; display:grid; grid-template-columns:105px 1fr; }
.contact-details span { color:var(--orange); font-size:9px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.contact-details p,.contact-details a { margin:0; color:#d2d4d4; font-size:13px; line-height:1.6; }
.map-frame iframe { width:100%; height:100%; min-height:650px; border:0; filter:grayscale(1) contrast(1.05); }
footer { background:#090a0a; color:white; padding-top:80px; }
.footer-main { display:grid; grid-template-columns:1.2fr 1fr .7fr .7fr; gap:60px; padding-bottom:70px; }
.footer-main img { width:170px; height:100px; object-fit:contain; filter:brightness(0) invert(1); }
.footer-main p { color:#989b9b; line-height:1.7; }
.footer-main>div { display:flex; flex-direction:column; gap:14px; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.footer-bottom { display:flex; justify-content:space-between; padding-block:22px; border-top:1px solid #ffffff1a; color:#747777; font-size:9px; letter-spacing:.1em; text-transform:uppercase; }
.whatsapp-float { position:fixed; z-index:30; right:20px; bottom:20px; display:flex; align-items:center; gap:9px; padding:14px 18px; border-radius:40px; background:#25d366; color:#072911; box-shadow:0 10px 30px #0004; font-size:11px; font-weight:800; text-transform:uppercase; }
.whatsapp-float span { color:white; }

@media (max-width:1050px) {
  .site-header nav { display:none; }.hero-stats { grid-template-columns:repeat(3,160px); }.services { grid-template-columns:repeat(2,1fr); }.split-section,.video-section,.region { gap:5vw; }.contact-card { padding:50px; }
}
@media (max-width:760px) {
  .wrap { width:min(100% - 36px,1240px); }.section { padding-block:78px; }.site-header { height:82px; padding-inline:18px; }.brand img { width:108px; height:54px; }.button-small { font-size:9px; min-height:42px; padding-inline:12px; }.hero { min-height:760px; height:100svh; }.hero-content { padding-top:170px; }.hero h1 { font-size:64px; line-height:.88; }.hero-copy { font-size:15px; max-width:90%; }.hero-actions { align-items:flex-start; flex-direction:column; gap:24px; }.hero-stats { left:0; right:0; grid-template-columns:repeat(3,1fr); }.hero-stats div { padding:16px 11px; }.hero-stats strong { font-size:18px; }.hero-stats span { font-size:7px; }.intro,.split-section,.video-section,.region,.contact { grid-template-columns:1fr; }.intro { gap:30px; }.section-heading h2,.split-content h2,.video-copy h2,.projects h2,.region h2 { font-size:54px; }.services { width:100%; grid-template-columns:1fr; }.service-card { min-height:420px; }.split-image { height:470px; }.vertical-label,.video-label { display:none; }.quality { min-height:900px; }.quality-photo { background:linear-gradient(0deg,#080909 15%,#080909a6),url('assets/images/gallery/tendas-chuva-noite.jpeg') center/cover; }.quality h2 { font-size:60px; }.quality-list { grid-template-columns:1fr; }.video-section { gap:50px; }.video-copy { order:2; }.projects-head { display:block; }.projects-head>p { margin-top:24px; }.gallery { display:grid; grid-template-columns:1fr 1fr; grid-auto-rows:220px; gap:8px; }.gallery-item { grid-column:span 1!important; grid-row:span 1!important; }.gallery-item:nth-child(1),.gallery-item:nth-child(6),.gallery-item:nth-child(8) { grid-column:span 2!important; }.city-list { grid-template-columns:1fr; }.city-list span:nth-child(odd) { border-right:0; }.city-list span:nth-child(even) { padding-left:0; }.region-title { position:static; }.final-cta { min-height:650px; }.final-cta h2 { font-size:62px; }.contact-card { padding:42px 28px; }.contact h2 { font-size:58px; }.map-frame iframe { min-height:440px; }.footer-main { grid-template-columns:1fr 1fr; }.footer-main img,.footer-main p { grid-column:span 2; }.footer-bottom { flex-direction:column; gap:12px; }.whatsapp-float { padding:14px; }.whatsapp-float { font-size:0; }.whatsapp-float span { font-size:15px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
