:root {
  --blue: #0756a6;
  --blue-dark: #064b92;
  --green: #12b95d;
  --text: #111820;
  --muted: #6d7680;
  --border: #d9e0e6;
  --footer: #fafbfc;
  --container: 1200px;
}
* { box-sizing: border-box; }
/* O atributo hidden precisa vencer o display dos componentes (setas, paginação). */
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: Arial, Helvetica, sans-serif; color: var(--text); background: #fff; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
img { display: block; max-width: 100%; }
.container { width: min(var(--container), calc(100% - 40px)); margin: 0 auto; }

/* Header */
.site-header { background: #fff; }
.header-shell { height: 210px; position: relative; }
.brand { position: absolute; left: 0; top: 12px; width: 170px; z-index: 3; }
.brand img { width: 170px; height: 195px; object-fit: contain; }
.utility-bar { position: absolute; top: 46px; right: 0; height: 50px; display: flex; align-items: center; gap: 26px; font-size: 14px; }
.utility-bar::after { content: ""; position: absolute; right: 0; left: -760px; bottom: -8px; height: 1px; background: #e2e7eb; z-index: -1; }
.social-links { display: flex; gap: 7px; align-items: center; }
.social-links a { color: var(--blue); font-weight: 700; font-size: 17px; line-height: 1; }
.social-links img { width: 20px; height: 20px; object-fit: contain;}
.top-phone { white-space: nowrap; }
.whatsapp-button { display: inline-flex; justify-content: center; align-items: center; min-height: 49px; padding: 0 15px; color: #fff; background: var(--green); border-radius: 6px; font-weight: 700; }
.whatsapp-button--top { min-height: 29px; min-width: 150px; font-size: 14px; }
.main-nav { position: absolute; right: 0; top: 132px; display: flex; align-items: center; gap: 40px; font-size: 16px; }
.main-nav a { white-space: nowrap; }
.main-nav a.active { color: var(--blue); font-weight: 700; }
.menu-toggle, .menu-button { display: none; }

/* Hero */
.hero-section { position: relative; }
.hero { height: 380px; border-radius: 24px; position: relative; }
.hero-slider { position: absolute; inset: 0; overflow: hidden; border-radius: 24px; background: #0a3967; }
.hero-slide { position: absolute; inset: 0; z-index: 0; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 1.15s ease-in-out, visibility 0s linear 1.15s; will-change: opacity; }
.hero-slide::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(0,31,68,.68) 0%, rgba(0,30,65,.36) 43%, rgba(0,0,0,.05) 76%); }
.hero-slide.is-active { z-index: 1; opacity: 1; visibility: visible; pointer-events: auto; transition: opacity 1.15s ease-in-out, visibility 0s; }
.hero-slide-image { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.hero-copy { position: absolute; z-index: 2; left: 56px; top: 56px; color: #fff; }
.hero-copy h1 { margin: 0 0 10px; font-size: 47px; line-height: 1.06; letter-spacing: -.5px; }
.hero-copy p { margin: 0; font-size: 19px; line-height: 1.3; }
.primary-button { margin-top: 25px; display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-width: 250px; min-height: 55px; padding: 0 22px; background: #0760bf; color: #fff; border-radius: 6px; font-weight: 700; font-size: 16px; }
.hero-arrow { position: absolute; z-index: 3; top: 50%; width: 38px; height: 38px; margin-top: -19px; border: 1px solid rgba(255,255,255,.55); padding: 0; border-radius: 50%; background: rgba(7,35,65,.28); color: #fff; font-size: 32px; line-height: 1; cursor: pointer; display: grid; place-items: center; transition: background .2s ease, border-color .2s ease; }
/* Seta em SVG, e não o caractere "‹": o desenho do caractere fica uns 4px
   abaixo do centro na Arial. O traço tem o centro exato da caixa de 24x24. */
.hero-arrow svg { display: block; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.hero-arrow:hover, .hero-arrow:focus-visible { background: rgba(7,86,166,.92); border-color: #fff; outline: none; }
.hero-arrow--prev { left: 16px; }
.hero-arrow--next { right: 16px; }
.hero-dots { position: absolute; z-index: 3; left: 50%; bottom: 52px; transform: translateX(-50%); display: flex; align-items: center; gap: 8px; }
.hero-dot { width: 9px; height: 9px; padding: 0; border: 1px solid rgba(255,255,255,.9); border-radius: 50%; background: rgba(255,255,255,.35); cursor: pointer; transition: width .2s ease, border-radius .2s ease, background .2s ease; }
.hero-dot.is-active { width: 28px; border-radius: 999px; background: #fff; }
.property-search { position: absolute; z-index: 4; left: 20px; right: 20px; bottom: -80px; min-height: 115px; padding: 20px 22px; background: #fff; border-radius: 24px; box-shadow: 0 12px 30px rgba(34,58,82,.13); display: grid; grid-template-columns: 1.2fr 1.2fr 1.15fr 1.2fr 1.2fr 1.2fr .8fr; gap: 20px; align-items: end; }
.property-search label { display: grid; gap: 9px; font-size: 12px; font-weight: 700; }
.property-search input, .property-search select { width: 100%; height: 45px; border: 1px solid #cfd8df; border-radius: 6px; padding: 0 14px; color: #737c84; background: #fff; font-size: 13px; outline: none; }
.property-search button { height: 45px; border: 0; border-radius: 6px; background: var(--blue); color: #fff; font-weight: 700; cursor: pointer; }

/* Shared */
.section-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
.section-heading h2, .contact-section h2 { margin: 0; color: var(--blue); font-size: 27px; line-height: 1.15; }
.section-heading a { color: var(--blue); font-weight: 700; font-size: 14px; }

/* Properties */
.featured-section { padding-top: 124px; }
.property-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 38px; }
.property-card { overflow: hidden; border: 1px solid var(--border); border-radius: 0 0 16px 16px; box-shadow: 0 8px 18px rgba(25,49,72,.06); background: #fff; }
.property-card > img { width: 100%; height: 175px; object-fit: cover; }
.property-body { padding: 17px 18px 15px; }
.property-body h3 { margin: 0; font-size: 16px; line-height: 1.15; }
.location { margin: 2px 0 20px; color: var(--blue); font-weight: 700; font-size: 15px; }
.price { margin: 0 0 16px; color: var(--blue); font-size: 21px; font-weight: 700; }
.specs { display: grid; grid-template-columns: repeat(5, 1fr); }
.specs span { display: grid; justify-items: center; gap: 8px; padding: 0 5px; border-right: 1px solid #e1e5e8; }
.specs span:last-child { border-right: 0; }
.specs b { font-size: 12px; white-space: nowrap; }
.specs small { color: #8a9299; font-size: 9px; white-space: nowrap; }

/* Videos */
.videos-section { padding-top: 72px; }
.video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.video-card { overflow: hidden; border: 1px solid var(--border); border-radius: 14px; background: #fff; }
.video-media { position: relative; width: 100%; aspect-ratio: 16 / 9; height: auto; overflow: hidden; background: #000; }
.video-media img, .video-media iframe { width: 100%; height: 100%; object-fit: cover; }
.video-media iframe { display: block; border: 0; }
.play { position: absolute; left: 50%; top: 50%; width: 80px; height: 80px; transform: translate(-50%,-50%); border-radius: 50%; display: grid; place-items: center; background: #fff; color: #0862b7; font-size: 29px; padding-left: 5px; box-shadow: 0 3px 12px rgba(0,0,0,.14); }
.duration { position: absolute; right: 12px; bottom: 10px; padding: 6px 12px; border-radius: 6px; background: rgba(24,27,31,.82); color: #fff; font-size: 10px; }
.video-copy { padding: 17px 18px 20px; }
.video-copy h3 { margin: 0 0 10px; font-size: 16px; }
.video-copy p { margin: 0; color: #7a838b; font-size: 12px; }

/* Services */
.services-section { padding-top: 78px; }
.services-section h2 { margin: 0 0 18px; text-align: center; color: var(--blue); font-size: 28px; }
.services-grid { display: grid; grid-template-columns: repeat(5, 1fr); }
.service { min-height: 205px; padding: 43px 30px 20px; text-align: center; border-right: 1px solid #dfe4e8; }
.service img {margin:0 auto;}
.service:last-child { border-right: 0; }
.service-icon { height: 43px; color: var(--blue); font-size: 34px; line-height: 1; }
.service h3 { margin: 13px 0 28px; color: var(--blue); font-size: 16px; }
.service p { margin: 0 auto; max-width: 180px; color: #767f87; font-size: 12px; line-height: 1.35; }

/* Assessment */
.assessment-section { padding-top: 48px; }
.assessment-card { height: 120px; padding: 0 64px; border-radius: 12px; display: grid; grid-template-columns: 130px 1fr 300px; align-items: center; gap: 22px; color: #fff; background: var(--blue); position: relative; overflow: hidden; }
.assessment-card::after { content: ""; position: absolute; right: 90px; top: -48px; width: 410px; height: 210px; background: repeating-linear-gradient(126deg, transparent 0 13px, rgba(255,255,255,.9) 14px 15px); opacity: .75; transform: skewX(-6deg); pointer-events: none; }
.assessment-mark { width: 92px; height: 92px; border: 2px solid #fff; border-radius: 50%; display: grid; place-items: center; font-size: 30px; font-weight: 700; z-index: 2; }
.assessment-copy { z-index: 2; }
.assessment-copy h2 { margin: 0 0 9px; font-size: 29px; }
.assessment-copy p { margin: 0; font-size: 16px; }
.assessment-button { z-index: 2; min-height: 62px; display: flex; justify-content: center; align-items: center; gap: 12px; border-radius: 8px; background: #fff; color: var(--blue); font-size: 14px; font-weight: 700; }

/* Contact */
.contact-section { padding: 64px 0 78px; }
.contact-section h2 { margin-left: 30px; margin-bottom: 35px; }
.contact-layout { display: grid; grid-template-columns: 390px 1fr; gap: 74px; padding: 0 30px; }
.contact-info { padding-right: 44px; border-right: 1px solid #dce2e7; }
.contact-info a, .contact-info p { display: flex; align-items: center; gap: 16px; min-height: 57px; margin: 0; font-size: 16px; }
.contact-icon { flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: ; color: #fff; font-size: 16px; font-weight: 700; }
.contact-icon--whatsapp { font-size: 20px; }
/* Endereço em várias linhas: ícone alinhado à primeira linha e respiro entre elas. */
.contact-info .contact-address { align-items: flex-start; padding: 12px 0; line-height: 1.55; }
.contact-address .contact-icon { margin-top: -5px; }
.contact-address small { display: block; margin-top: 4px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 28px; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; border: 1px solid #cfd8df; border-radius: 6px; padding: 0 17px; color: #777f87; background: #fff; outline: none; font-size: 12px; }
.contact-form input, .contact-form select { height: 50px; }
.contact-form textarea { grid-column: 1/-1; height: 115px; padding-top: 18px; resize: vertical; }
.contact-form button { width: 220px; height: 50px; border: 0; border-radius: 6px; background: var(--blue); color: #fff; font-weight: 700; }

/* Footer */
.site-footer { background: var(--footer); border-top: 1px solid #e6eaed; padding-top: 45px; }
.footer-grid { display: grid; grid-template-columns: 180px 160px 180px 240px 1fr; gap: 60px; align-items: start; padding: 0 28px 36px; }
.footer-brand img { width: 150px; height: 180px; object-fit: contain; }
.footer-grid h3 { margin: 4px 0 15px; font-size: 14px; }
.footer-grid a, .footer-grid p { display: block; margin: 0 0 11px; font-size: 13px; line-height: 1.35; }
.footer-whatsapp p { max-width: 240px; font-size: 15px; line-height: 1.55; }
.footer-whatsapp .whatsapp-button { display: inline-flex; margin-top: 18px; font-size: 14px; }
.copyright { border-top: 1px solid #dfe4e8; padding: 28px; color: #7c858d; font-size: 12px; }
.floating-whatsapp { position: fixed; right: 26px; bottom: 28px; z-index: 15; width: 68px; height: 68px; border-radius: 50%; display: grid; place-items: center; background: #; color: #fff; font-size: 42px; font-weight: 700; border: 5px solid #fff; box-shadow: 0 6px 20px rgba(0,0,0,.10); }
.footer-credit {
  width:auto;
  height:auto; float:right;}

@media (max-width: 1150px) {
  .container { width: min(940px, calc(100% - 32px)); }
  .header-shell { height: 150px; }
  .brand { top: 8px; width: 122px; }
  .brand img { width: 122px; height: 140px; }
  .utility-bar { top: 28px; }
  .utility-bar::after { left: -600px; }
  .main-nav { top: 98px; gap: 20px; font-size: 14px; }
  .hero { height: 380px; }
  .property-search { grid-template-columns: repeat(3, 1fr); padding: 18px; }
  .property-search button { height: 45px; }
  .featured-section { padding-top: 210px; }
  .property-grid { grid-template-columns: repeat(2, 1fr); }
  .property-card > img { height: 230px; }
  .services-grid { grid-template-columns: repeat(3, 1fr); row-gap: 20px; }
  .service:nth-child(3) { border-right: 0; }
  .service:nth-child(n+4) { border-top: 1px solid #dfe4e8; }
  .assessment-card { grid-template-columns: 100px 1fr 250px; padding: 0 35px; }
  .contact-layout { grid-template-columns: 320px 1fr; gap: 45px; }
  .footer-grid { grid-template-columns: 160px repeat(2,1fr) 1.2fr; gap: 35px; }
  .footer-whatsapp { grid-column: 2/-1; }
}

@media (max-width: 820px) {
  .container { width: min(720px, calc(100% - 28px)); }
  .header-shell { height: 92px; }
  .brand { top: 5px; width: 82px; }
  .brand img { width: 82px; height: 88px; }
  .utility-bar { display: none; }
  .menu-toggle { display: none; }
  .menu-button { position: absolute; display: grid; right: 0; top: 30px; width: 38px; gap: 6px; cursor: pointer; z-index: 10; }
  .menu-button span { height: 3px; background: var(--blue); border-radius: 99px; }
  .main-nav { display: none; position: absolute; left: 0; right: 0; top: 88px; padding: 22px; background: #fff; border: 1px solid #e2e7eb; border-radius: 10px; box-shadow: 0 15px 30px rgba(0,0,0,.08); z-index: 9; }
  .menu-toggle:checked ~ .main-nav { display: grid; gap: 14px; }
  .hero { height: 440px; border-radius: 18px; }
  .hero-slider { border-radius: 18px; }
  .hero-slide-image { object-position: 58% center; }
  .hero-arrow { width: 38px; height: 38px; margin-top: -19px; }
  .hero-arrow--prev { left: 10px; }
  .hero-arrow--next { right: 10px; }
  .hero-dots { bottom: 95px; }
  .hero-copy { left: 30px; top: 70px; right: 30px; }
  .hero-copy h1 { font-size: 42px; }
  .hero-copy p { font-size: 17px; }
  .property-search { left: 14px; right: 14px; bottom: -255px; grid-template-columns: repeat(2, 1fr); gap: 15px; }
  .featured-section { padding-top: 310px; }
  .video-grid { grid-template-columns: 1fr; }
  .video-media { height: auto; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .service { border-top: 1px solid #dfe4e8; }
  .service:nth-child(2n) { border-right: 0; }
  .service:first-child, .service:nth-child(2) { border-top: 0; }
  .assessment-card { height: auto; min-height: 190px; padding: 30px; grid-template-columns: 95px 1fr; }
  .assessment-button { grid-column: 1/-1; width: 260px; justify-self: center; }
  .contact-layout { grid-template-columns: 1fr; padding: 0; }
  .contact-info { border-right: 0; border-bottom: 1px solid #dce2e7; padding: 0 0 28px; }
  .contact-section h2 { margin-left: 0; }
  .footer-grid { grid-template-columns: repeat(2,1fr); padding-left: 0; padding-right: 0; }
  .footer-whatsapp { grid-column: auto; }
}

@media (max-width: 560px) {
  .container { width: calc(100% - 24px); }
  .hero { height: 460px; border-radius: 14px; }
  .hero-slider { border-radius: 14px; }
  .hero-arrow { display: none; }
  .hero-dots { bottom: 95px; }
  .hero-copy { top: 62px; left: 22px; right: 22px; }
  .hero-copy h1 { font-size: 35px; }
  .hero-copy p { font-size: 15px; }
  .desktop-break { display: none; }
  .primary-button { min-width: 220px; font-size: 14px; }
  .property-search { bottom: -487px; grid-template-columns: 1fr; border-radius: 16px; }
  .featured-section { padding-top: 540px; }
  .section-heading { align-items: flex-end; gap: 14px; }
  .section-heading h2, .contact-section h2 { font-size: 23px; }
  .section-heading a { font-size: 12px; text-align: right; }
  .property-grid { grid-template-columns: 1fr; gap: 22px; }
  .property-card > img { height: 230px; }
  .videos-section { padding-top: 52px; }
  .video-media { height: auto; }
  .play { width: 68px; height: 68px; }
  .services-grid { grid-template-columns: 1fr; }
  .service { min-height: 170px; border-right: 0; border-top: 1px solid #dfe4e8 !important; }
  .service:first-child { border-top: 0 !important; }
  .services-section h2 { font-size: 25px; }
  .assessment-card { grid-template-columns: 72px 1fr; gap: 12px; padding: 26px 20px; }
  .assessment-mark { width: 68px; height: 68px; font-size: 22px; }
  .assessment-copy h2 { font-size: 22px; }
  .assessment-copy p { font-size: 13px; }
  .assessment-button { width: 100%; }
  .contact-section { padding-bottom: 50px; }
  .contact-form { grid-template-columns: 1fr; }
  .contact-form textarea { grid-column: auto; }
  .contact-form button { width: 100%; }
  .contact-info a, .contact-info p { font-size: 14px; }
  .footer-grid { grid-template-columns: 1fr; gap: 25px; }
  .footer-brand img { width: 130px; height: 145px; }
  .floating-whatsapp { width: 58px; height: 58px; font-size: 34px; right: 14px; bottom: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-slide, .hero-arrow, .hero-dot { transition: none; }
}
