:root {
  --black: #050505;
  --black-soft: #0d0d0d;
  --graphite: #171717;
  --yellow: #ffcb05;
  --yellow-deep: #eab700;
  --paper: #f4f1e8;
  --white: #fff;
  --ink: #111;
  --muted: #686865;
  --line: #d9d5ca;
  --display: Impact, Haettenschweiler, "Arial Narrow Bold", "Arial Narrow", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { background: var(--black); color: var(--ink); font-family: Arial, Helvetica, sans-serif; margin: 0; overflow-x: hidden; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
::selection { background: var(--yellow); color: var(--black); }
.wrap { margin-inline: auto; max-width: 1480px; width: min(100% - 44px, 1480px); }
.sr-only { height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; clip: rect(0, 0, 0, 0); }
.skip-link { background: var(--yellow); color: #000; font-weight: 900; left: 16px; padding: 12px 18px; position: fixed; top: -80px; z-index: 100; }
.skip-link:focus { top: 12px; }

.site-header { align-items: center; backdrop-filter: blur(18px); background: rgba(5, 5, 5, .92); border-bottom: 1px solid rgba(255, 203, 5, .22); color: #fff; display: flex; justify-content: space-between; min-height: 84px; padding: 14px clamp(20px, 5vw, 78px); position: sticky; top: 0; z-index: 50; }
.brand { align-items: center; display: inline-flex; gap: 13px; }
.brand-mark { align-items: center; background: var(--yellow); border: 2px solid var(--yellow); color: #000; display: inline-flex; font-family: var(--display); font-size: 20px; font-style: italic; height: 50px; justify-content: center; letter-spacing: -.05em; transform: skew(-8deg); width: 54px; }
.brand-copy { display: flex; flex-direction: column; line-height: 1; }
.brand-copy small { color: var(--yellow); font-size: 9px; font-weight: 900; letter-spacing: .15em; margin-bottom: 5px; text-transform: uppercase; }
.brand-copy strong { color: #fff; font-family: var(--display); font-size: 23px; font-style: italic; letter-spacing: .025em; text-transform: uppercase; }
nav { align-items: center; display: flex; font-size: 12px; font-weight: 900; gap: clamp(18px, 2.4vw, 34px); letter-spacing: .07em; text-transform: uppercase; }
nav a:not(.nav-cta) { color: #d4d4d4; }
nav a:hover { color: var(--yellow); }
.nav-cta { border: 1px solid var(--yellow); color: var(--yellow); padding: 12px 16px; }
.nav-cta:hover { background: var(--yellow); color: #000; }
.menu-button { background: none; border: 0; display: none; padding: 10px; }
.menu-button > span:not(.sr-only) { background: var(--yellow); display: block; height: 2px; margin: 5px 0; width: 27px; }

.hero { background: linear-gradient(90deg, #030303 0%, rgba(3,3,3,.98) 28%, rgba(3,3,3,.58) 56%, rgba(3,3,3,.08) 82%), linear-gradient(180deg, transparent 58%, rgba(0,0,0,.96) 100%), url("assets/souza-car-hero.png") center / cover no-repeat; color: #fff; isolation: isolate; min-height: calc(100vh - 84px); position: relative; }
.hero::before { background-image: repeating-linear-gradient(-8deg, rgba(255,203,5,.08) 0, rgba(255,203,5,.08) 1px, transparent 1px, transparent 13px); content: ""; inset: 0; mask-image: linear-gradient(90deg, #000, transparent 42%); pointer-events: none; position: absolute; z-index: -1; }
.hero-content { align-items: center; display: grid; min-height: clamp(650px, 74vh, 820px); padding-block: clamp(70px, 9vw, 130px); position: relative; }
.hero-copy { max-width: 700px; position: relative; z-index: 2; }
.eyebrow { align-items: center; color: var(--yellow); display: flex; font-size: 11px; font-weight: 900; gap: 9px; letter-spacing: .16em; margin: 0 0 20px; text-transform: uppercase; }
.eyebrow > span { font-size: 18px; }
.eyebrow-dark { color: #625000; }
.hero h1 { font-family: var(--display); font-size: clamp(64px, 8vw, 118px); font-style: italic; letter-spacing: -.035em; line-height: .79; margin: 0; text-shadow: 0 8px 34px rgba(0,0,0,.8); text-transform: uppercase; }
.hero h1 span, .hero h1 strong { display: block; }
.hero h1 span { color: var(--yellow); }
.hero h1 strong { color: #fff; font-size: 1.15em; letter-spacing: -.045em; }
.hero-description { border-left: 4px solid var(--yellow); color: #efefef; font-size: clamp(17px, 1.45vw, 21px); font-weight: 700; line-height: 1.55; margin: 28px 0 0; max-width: 520px; padding-left: 16px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.button { align-items: center; display: inline-flex; font-size: 12px; font-weight: 900; justify-content: center; letter-spacing: .06em; min-height: 54px; padding: 15px 21px; text-transform: uppercase; transition: .2s ease; }
.button-primary { background: var(--yellow); color: #000; gap: 26px; }
.button-primary:hover { background: #fff; transform: translateY(-2px); }
.button-outline { border: 1px solid #777; color: #fff; }
.button-outline:hover { border-color: var(--yellow); color: var(--yellow); }
.button-dark { background: #050505; color: var(--yellow); white-space: nowrap; }
.button-dark:hover { background: #fff; color: #000; }
.trust-row { display: flex; flex-wrap: wrap; gap: 12px 20px; margin-top: 28px; }
.trust-row span { color: #ddd; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.hero-seal { align-items: center; aspect-ratio: 1; border: 4px solid var(--yellow); border-radius: 50%; display: flex; flex-direction: column; justify-content: center; padding: 25px; position: absolute; right: 2%; text-align: center; top: 15%; transform: rotate(5deg); width: clamp(190px, 20vw, 300px); }
.hero-seal::after { border: 1px solid rgba(255,203,5,.7); border-radius: 50%; content: ""; inset: 9px; position: absolute; }
.hero-seal small, .hero-seal strong { font-family: var(--display); font-style: italic; line-height: .92; text-transform: uppercase; }
.hero-seal small { font-size: clamp(18px, 2vw, 29px); }
.hero-seal strong { color: var(--yellow); font-size: clamp(29px, 3.3vw, 50px); }
.hero-seal span { border-top: 1px solid #777; font-size: 10px; font-weight: 900; letter-spacing: .2em; margin-top: 15px; padding-top: 11px; text-transform: uppercase; }
.availability-bar { background: var(--yellow); color: #000; }
.availability-inner { align-items: center; display: grid; gap: 30px; grid-template-columns: auto 1fr auto; min-height: 112px; padding-block: 19px; }
.availability-title { align-items: baseline; display: flex; flex-direction: column; }
.availability-title strong { font-family: var(--display); font-size: 49px; font-style: italic; line-height: .8; text-transform: uppercase; }
.availability-title span { font-size: 13px; font-weight: 900; text-transform: uppercase; }
.availability-inner p { border-left: 1px solid rgba(0,0,0,.25); font-size: 14px; font-weight: 700; margin: 0; max-width: 600px; padding: 6px 0 6px 30px; }
.availability-inner a { border-bottom: 2px solid #000; font-size: 12px; font-weight: 900; padding-bottom: 5px; text-transform: uppercase; }
.highlights { display: grid; grid-template-columns: repeat(4, 1fr); padding-block: 26px; }
.highlights > div { align-items: center; border-right: 1px solid #252525; display: flex; gap: 14px; min-height: 50px; padding: 0 22px; }
.highlights > div:first-child { padding-left: 0; }
.highlights > div:last-child { border-right: 0; }
.highlights span { color: var(--yellow); font-family: var(--display); font-size: 24px; font-style: italic; }
.highlights strong { font-size: 11px; letter-spacing: .05em; text-transform: uppercase; }

.booking-section { background: var(--yellow); padding: clamp(80px, 8vw, 130px) 0; }
.booking-layout { align-items: start; display: grid; gap: clamp(38px, 7vw, 110px); grid-template-columns: .8fr 1.2fr; }
.booking-intro { padding-top: 30px; }
.booking-intro h2, .section-heading h2, .contact-section h2 { font-family: var(--display); font-size: clamp(53px, 6vw, 86px); font-style: italic; letter-spacing: -.025em; line-height: .88; margin: 0; text-transform: uppercase; }
.booking-intro h2 span, .section-heading h2 span { display: block; }
.booking-intro h2 span { color: #fff; text-shadow: 3px 3px 0 #000; }
.booking-intro > p:not(.eyebrow) { font-size: 17px; font-weight: 700; line-height: 1.65; max-width: 500px; }
.booking-intro ul { list-style: none; margin: 28px 0; padding: 0; }
.booking-intro li { border-bottom: 1px solid rgba(0,0,0,.2); font-size: 13px; font-weight: 900; padding: 13px 0; text-transform: uppercase; }
.booking-intro li span { background: #000; color: var(--yellow); display: inline-grid; height: 24px; margin-right: 10px; place-items: center; width: 24px; }
.booking-warning { background: rgba(255,255,255,.35); border-left: 4px solid #000; max-width: 500px; padding: 17px 20px; }
.booking-warning strong { font-size: 13px; text-transform: uppercase; }
.booking-warning p { font-size: 13px; line-height: 1.5; margin: 5px 0 0; }
.booking-card { background: var(--paper); box-shadow: 14px 14px 0 rgba(0,0,0,.18); padding: clamp(25px, 4vw, 48px); }
.form-heading { align-items: start; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; margin-bottom: 28px; padding-bottom: 24px; }
.form-heading p { color: #776100; font-size: 10px; font-weight: 900; letter-spacing: .13em; margin: 0 0 7px; text-transform: uppercase; }
.form-heading h2 { font-family: var(--display); font-size: clamp(36px, 4vw, 56px); font-style: italic; line-height: 1; margin: 0; text-transform: uppercase; }
.form-heading > span { background: #0a0a0a; color: var(--yellow); font-size: 9px; font-weight: 900; letter-spacing: .06em; padding: 9px 11px; text-transform: uppercase; }
.form-grid { display: grid; gap: 19px; grid-template-columns: 1fr 1fr; }
.field { display: flex; flex-direction: column; gap: 8px; }
.full-field { grid-column: 1 / -1; margin-bottom: 19px; }
.field label { font-size: 11px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.field label span { color: var(--muted); font-size: 9px; }
.field input, .field select, .field textarea { background: #fff; border: 1px solid #cbc6bb; border-radius: 0; color: #111; min-height: 52px; outline: none; padding: 13px 14px; width: 100%; }
.field textarea { min-height: 90px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: #111; box-shadow: 0 0 0 2px var(--yellow); }
.field select:disabled { color: #777; }
.divider { align-items: center; display: flex; gap: 12px; margin: 28px 0 20px; }
.divider::before, .divider::after { background: var(--line); content: ""; flex: 1; height: 1px; }
.divider span { color: #6c6b67; font-size: 9px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.form-note { color: #696966; font-size: 11px; line-height: 1.5; margin: 22px 0 12px; }
.form-note.error { color: #aa211c; font-weight: 700; }
.submit-button { align-items: center; background: #050505; border: 0; color: var(--yellow); cursor: pointer; display: flex; font-size: 12px; font-weight: 900; justify-content: space-between; letter-spacing: .06em; min-height: 58px; padding: 15px 20px; text-transform: uppercase; transition: .2s; width: 100%; }
.submit-button:hover { background: var(--yellow); box-shadow: inset 0 0 0 2px #000; color: #000; }
.submit-button span { font-size: 21px; }

.services-section { background: #060606; color: #fff; padding: clamp(80px, 9vw, 140px) 0; }
.section-heading { max-width: 760px; }
.section-heading h2 span { color: var(--yellow); }
.section-heading > p:not(.eyebrow) { color: #b9b9b9; line-height: 1.6; max-width: 600px; }
.service-grid { display: grid; gap: 1px; grid-template-columns: repeat(4, 1fr); margin-top: 56px; }
.service-grid article { background: #111; display: flex; flex-direction: column; justify-content: space-between; min-height: 330px; padding: 30px; transition: .2s ease; }
.service-grid article:hover { background: #191919; transform: translateY(-4px); }
.service-top { align-items: center; display: flex; justify-content: space-between; }
.service-top span { color: var(--yellow); font-family: var(--display); font-size: 36px; font-style: italic; }
.service-top small { border: 1px solid #3a3a3a; color: #aaa; font-size: 9px; font-weight: 900; padding: 7px 9px; text-transform: uppercase; }
.service-grid h3 { font-family: var(--display); font-size: 30px; font-style: italic; line-height: 1; margin: 44px 0 12px; text-transform: uppercase; }
.service-grid p { color: #aaa; font-size: 13px; line-height: 1.6; }
.service-grid a { color: var(--yellow); font-size: 10px; font-weight: 900; margin-top: 30px; text-transform: uppercase; }

.packages-section { background: #111; padding: 40px 0; }
.packages-card { align-items: center; background: var(--yellow); display: grid; gap: 35px; grid-template-columns: auto 1fr auto; padding: clamp(30px, 5vw, 65px); position: relative; }
.calendar-icon { border: 4px solid #000; display: flex; flex-direction: column; height: 118px; justify-content: center; text-align: center; transform: rotate(-4deg); width: 108px; }
.calendar-icon strong { font-family: var(--display); font-size: 54px; line-height: .8; }
.calendar-icon span { font-size: 10px; font-weight: 900; letter-spacing: .17em; margin-top: 9px; }
.packages-card > div:nth-child(2) > p { font-size: 13px; font-weight: 800; margin: 0 0 7px; }
.packages-card h2 { font-family: var(--display); font-size: clamp(45px, 5vw, 76px); font-style: italic; line-height: .88; margin: 0 0 14px; text-transform: uppercase; }
.packages-card h2 span { color: #fff; text-shadow: 3px 3px 0 #000; }

.standards-section { background: var(--paper); padding: clamp(80px, 8vw, 120px) 0; }
.section-heading-light h2 { color: #111; }
.standards-grid { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); margin-top: 50px; }
.standards-grid article { border-top: 5px solid #111; padding: 28px 20px 20px 0; }
.standards-grid article > span { color: #a78600; font-family: var(--display); font-size: 24px; font-style: italic; }
.standards-grid h3 { font-family: var(--display); font-size: 29px; font-style: italic; margin: 15px 0 9px; text-transform: uppercase; }
.standards-grid p { color: #666; font-size: 13px; line-height: 1.6; }

.contact-section { background: #050505; color: #fff; padding: clamp(70px, 7vw, 110px) 0; }
.contact-layout { align-items: center; display: flex; gap: 40px; justify-content: space-between; }
.contact-section h2 { color: var(--yellow); font-size: clamp(45px, 5.5vw, 78px); }
.contact-section p:not(.eyebrow) { color: #aaa; }
.contact-actions { align-items: stretch; display: flex; flex-direction: column; gap: 12px; text-align: center; }
.contact-actions > a:last-child { border: 1px solid #333; color: #ddd; font-size: 12px; font-weight: 800; padding: 17px; }
footer { background: #0e0e0e; border-top: 1px solid #222; color: #aaa; padding: 30px 0; }
.footer-inner { align-items: center; display: flex; gap: 30px; justify-content: space-between; }
.footer-brand .brand-mark { height: 42px; width: 45px; }
.footer-inner > p { font-size: 12px; }
.footer-inner > small { font-size: 10px; }
.floating-whatsapp { align-items: center; background: #20b75a; border: 3px solid #fff; border-radius: 999px; bottom: 20px; box-shadow: 0 8px 30px rgba(0,0,0,.4); color: #fff; display: flex; font-size: 11px; font-weight: 900; gap: 8px; padding: 13px 17px; position: fixed; right: 20px; text-transform: uppercase; z-index: 40; }
.floating-whatsapp span { font-size: 22px; line-height: .5; }

@media (max-width: 1050px) {
  .hero-seal { display: none; }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .booking-layout { gap: 45px; grid-template-columns: 1fr; }
  .booking-intro { max-width: 720px; padding-top: 0; }
  .packages-card { grid-template-columns: auto 1fr; }
  .packages-card .button { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  html { scroll-padding-top: 74px; }
  .wrap { width: min(100% - 32px, 1480px); }
  .site-header { min-height: 74px; padding: 12px 17px; }
  .brand-mark { height: 43px; width: 46px; }
  .brand-copy strong { font-size: 19px; }
  .menu-button { display: block; }
  nav { background: #080808; border-bottom: 1px solid #2a2a2a; display: none; flex-direction: column; gap: 0; left: 0; position: absolute; right: 0; top: 74px; }
  nav.open { display: flex; }
  nav a, .nav-cta { border: 0; border-top: 1px solid #1d1d1d; padding: 18px 22px; text-align: center; width: 100%; }
  .hero { background-position: 63% center; min-height: auto; }
  .hero::after { background: rgba(0,0,0,.42); content: ""; inset: 0; pointer-events: none; position: absolute; z-index: -1; }
  .hero-content { min-height: 650px; padding-block: 72px; }
  .hero h1 { font-size: clamp(58px, 18vw, 87px); }
  .hero-description { font-size: 16px; max-width: 390px; }
  .hero-actions .button { width: 100%; }
  .availability-inner { gap: 18px; grid-template-columns: 1fr; padding-block: 28px; }
  .availability-inner p { border-left: 0; border-top: 1px solid rgba(0,0,0,.25); padding: 16px 0 0; }
  .availability-inner a { justify-self: start; }
  .highlights { grid-template-columns: repeat(2, 1fr); }
  .highlights > div, .highlights > div:first-child { border-bottom: 1px solid #222; padding: 16px 10px; }
  .booking-section, .services-section, .standards-section { padding-block: 75px; }
  .booking-card { box-shadow: 8px 8px 0 rgba(0,0,0,.18); }
  .form-heading { gap: 15px; }
  .form-heading > span { display: none; }
  .form-grid { grid-template-columns: 1fr; }
  .full-field { grid-column: auto; }
  .service-grid { grid-template-columns: 1fr; }
  .service-grid article { min-height: 285px; }
  .packages-card { grid-template-columns: 1fr; text-align: left; }
  .calendar-icon { height: 90px; width: 84px; }
  .calendar-icon strong { font-size: 43px; }
  .packages-card .button { grid-column: auto; }
  .standards-grid { grid-template-columns: 1fr; }
  .contact-layout, .footer-inner { align-items: stretch; flex-direction: column; }
  .contact-actions { width: 100%; }
  .footer-inner { gap: 18px; }
  .floating-whatsapp { bottom: 12px; right: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}
