@font-face { font-family: Cormorant; src: url("../fonts/cormorant.c47ff12887a3.woff2") format('woff2'); font-display: swap; font-weight: 300 700; }
@font-face { font-family: Montserrat; src: url("../fonts/montserrat-400.bb19862257e6.woff2") format('woff2'); font-display: swap; font-weight: 400; font-style: normal; }
@font-face { font-family: Montserrat; src: url("../fonts/montserrat-500.faa487a5de13.woff2") format('woff2'); font-display: swap; font-weight: 500; font-style: normal; }
@font-face { font-family: Montserrat; src: url("../fonts/montserrat-600.ed2f97d4b0a7.woff2") format('woff2'); font-display: swap; font-weight: 600; font-style: normal; }
@font-face { font-family: Montserrat; src: url("../fonts/montserrat-700.253237c033a7.woff2") format('woff2'); font-display: swap; font-weight: 700; font-style: normal; }
:root {
  --navy: #071d35; --navy-2: #0d2a47; --gold: #c3a465; --gold-light: #dec899;
  --ivory: #f6f3eb; --paper: #fcfbf7; --ink: #172535; --muted: #65707a; --line: #d8d4ca;
  --serif: Cormorant, Georgia, serif; --sans: Montserrat, Arial, sans-serif;
  --wrap: 1280px; --gutter: 56px; --ease: cubic-bezier(.22,.65,.15,1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 98px; scrollbar-width: none; }
html::-webkit-scrollbar, body::-webkit-scrollbar { display: none; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.7; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
a { -webkit-tap-highlight-color: transparent; }
img, svg { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; letter-spacing: -.035em; line-height: 1.06; }
em { font-style: italic; color: var(--gold); }
a:focus-visible, button:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
::selection { background: var(--gold); color: var(--navy); }
.wrap { width: min(var(--wrap), calc(100% - var(--gutter) * 2)); margin-inline: auto; }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 100; padding: 12px 18px; background: var(--gold); color: var(--navy); }
.skip-link:focus { top: 16px; }

/* A marca inteira sempre cabe dentro da barra e da cápsula. */
.site-header {
  --scroll-progress: 0; position: fixed; z-index: 40; top: 0; left: 50%; transform: translateX(-50%);
  width: 100%; height: 76px; border: 1px solid transparent; background: #fcfbf7f5; backdrop-filter: blur(16px);
  transition: width .45s var(--ease), top .45s var(--ease), height .45s var(--ease), border-radius .45s var(--ease), box-shadow .35s;
}
.header-shell { width: min(var(--wrap), calc(100% - var(--gutter) * 2)); height: 100%; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { flex: 0 0 auto; display: flex; align-items: center; height: 64px; }
.brand-full { display: block; width: 108px; height: 64px; max-width: none; object-fit: contain; }
.site-header.is-floating { top: 12px; width: min(1260px, calc(100% - 40px)); height: 68px; border-color: #d8d4ca; border-radius: 999px; box-shadow: 0 10px 32px #071d3517; }
.site-header.is-floating .header-shell { width: calc(100% - 48px); }
.site-header.is-floating .brand { height: 58px; }
.site-header.is-floating .brand-full { width: 96px; height: 58px; }
.site-header::after {
  content: ''; position: absolute; z-index: 2; pointer-events: none; inset: -1px; padding: 1px; border-radius: inherit;
  background: conic-gradient(from -90deg, var(--gold) calc(var(--scroll-progress) * 1turn), transparent 0);
  opacity: 0; transition: opacity .35s;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite: exclude;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
}
.site-header.is-floating::after { opacity: .8; }
.desktop-nav { display: flex; align-items: center; gap: 30px; }
.desktop-nav a { position: relative; padding: 12px 0; color: var(--navy); font-size: .78rem; letter-spacing: .04em; }
.desktop-nav a::after { content: ''; position: absolute; bottom: 5px; left: 0; width: 100%; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.desktop-nav a:hover::after { transform: scaleX(1); }
.compact-nav { display: none; }

/* Hero: escala limitada e retrato centralizado em sua própria composição. */
.hero {
  position: relative; isolation: isolate; overflow: hidden; min-height: 700px; height: 100svh; max-height: 920px; color: var(--ivory);
  background: radial-gradient(ellipse at 80% 25%, #315a7b 0, transparent 43%), radial-gradient(ellipse at 38% 100%, #153a5b 0, transparent 55%), linear-gradient(115deg, #041629, var(--navy) 60%, #0b2946);
}
.hero::before { content: ''; position: absolute; width: 900px; height: 900px; left: -500px; bottom: -680px; border: 1px solid #c3a46528; border-radius: 50%; pointer-events: none; }
.hero-grid { height: 100%; display: grid; grid-template-columns: 51% 49%; align-items: center; gap: 0; padding-top: 94px; padding-bottom: 40px; }
.hero-copy { position: relative; z-index: 3; padding-right: 30px; }
.hero h1 { font-size: clamp(4rem, 5.8vw, 6.15rem); line-height: 1.02; margin-bottom: 28px; }
.hero-lead { max-width: 475px; color: #e7ebed; font-size: .9rem; line-height: 1.95; }
.hero-actions { display: flex; margin-top: 30px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 54px; padding: 16px 24px; border: 1px solid transparent; border-radius: 999px; font-size: .8rem; font-weight: 600; line-height: 1.5; transition: transform .25s, background .25s; }
.button:hover { transform: translateY(-3px); }
.button-gold { background: var(--gold); color: var(--navy); }
.button-gold:hover { background: var(--gold-light); }
.button-icon { flex: 0 0 20px; width: 20px; height: 20px; }
.credentials { display: flex; align-items: center; gap: 13px; margin-top: 35px; color: #bdc6ce; font-size: .63rem; letter-spacing: .04em; }
.credentials i { width: 3px; height: 3px; background: var(--gold); border-radius: 50%; }
.hero-visual { position: relative; width: 100%; max-width: 620px; aspect-ratio: 1; height: auto; justify-self: center; align-self: center; }
.hero-arch, .hero-lines, .hero-portrait-disc { position: absolute; z-index: 1; aspect-ratio: 1; height: auto; left: 50%; border-radius: 50%; pointer-events: none; }
.hero-arch { width: 97%; bottom: -3.5%; border: 1px solid #c3a46565; animation: orbit-clockwise 32s linear infinite; }
.hero-lines { width: 78%; bottom: 6%; border: 1px solid #ffffff28; animation: orbit-counterclockwise 27s linear infinite; }
.hero-portrait-disc { width: 85%; bottom: 2.5%; transform: translateX(-50%); border: 1px solid #c3a46583; background: radial-gradient(circle at 50% 20%, #315a7b2b, #071d3500 70%); }
.hero-arch::after, .hero-lines::after { content: ''; position: absolute; left: 50%; top: -5px; width: 9px; height: 9px; transform: translateX(-50%); border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 7px #c3a46516; }
.hero-portrait { position: absolute; z-index: 2; inset: 0; margin: 0; clip-path: url(#portrait-circle-clip); }
.hero-portrait img { width: 100%; height: 100%; object-fit: contain; object-position: center bottom; }
.geometry-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
@keyframes orbit-clockwise { from { transform: translateX(-50%) rotate(0); } to { transform: translateX(-50%) rotate(360deg); } }
@keyframes orbit-counterclockwise { from { transform: translateX(-50%) rotate(0); } to { transform: translateX(-50%) rotate(-360deg); } }

/* A foto não participa do cálculo de altura: só preenche a faixa de texto. */
.section-note { margin-bottom: 16px; color: #94794a; font-size: .66rem; font-weight: 650; letter-spacing: .15em; text-transform: uppercase; }
.intro-section { position: relative; background: var(--paper); overflow: hidden; }
.intro-split { display: grid; grid-template-columns: 52% 48%; min-height: 400px; }
.intro-content { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; padding: 44px 64px 44px max(var(--gutter), calc((100vw - var(--wrap)) / 2)); }
.intro-content h2 { max-width: 570px; margin-bottom: 22px; font-size: clamp(2.4rem, 2.8vw, 3.05rem); line-height: 1.08; text-wrap: balance; }
.intro-content > p:last-child { max-width: 525px; color: var(--muted); font-size: .87rem; line-height: 1.9; }
.intro-photo { position: relative; align-self: stretch; min-width: 0; min-height: 0; margin: 0; overflow: hidden; }
.intro-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; filter: saturate(.9); }
.intro-photo::before { content: ''; position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, var(--paper), #fcfbf7e3 12%, #fcfbf700 52%); pointer-events: none; }

.areas-section { position: relative; background: var(--navy); color: var(--ivory); padding-block: 68px; overflow: hidden; }
.section-heading h2 { font-size: clamp(2.9rem, 4.2vw, 4.25rem); }
.section-subtitle { margin-top: 12px; color: #d5dde1; font-family: var(--serif); font-size: 1.5rem; line-height: 1.3; }
.area-grid { display: none; }
.area-card { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; padding: 28px; border: 1px solid #ffffff20; border-radius: 24px; background: var(--navy-2); transition: color .35s; }
.area-card::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(110deg, var(--gold), var(--gold-light)); transform: translateX(-101%); transition: transform .55s var(--ease); }
.area-card:hover::before { transform: translateX(0); }
.area-card:hover { color: var(--navy); }
.card-top { display: flex; justify-content: flex-end; color: var(--gold); }
.card-top svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.25; }
.area-card h3 { margin: 24px 0 15px; font-size: 2rem; }
.area-card p { color: #c2cbd1; font-size: .82rem; line-height: 1.9; }
.area-card:hover .card-top, .area-card:hover p { color: var(--navy); }

.method-section { display: grid; grid-template-columns: 43% 57%; gap: 0; align-items: center; padding-block: 88px; }
.method-visual { position: relative; padding-right: 38px; min-width: 0; }
.method-visual img { width: 100%; height: 430px; object-fit: cover; object-position: center 33%; border-radius: 32px; }
.method-stamp { position: absolute; right: 12px; bottom: 25px; padding: 18px 22px; border-radius: 20px; background: var(--navy); color: var(--ivory); font-size: .6rem; letter-spacing: .14em; line-height: 1.8; }
.method-stamp em { display: block; font-family: var(--serif); font-size: 1.6rem; letter-spacing: -.025em; }
.method-copy { padding-left: 65px; }
.method-copy h2 { max-width: 570px; margin-bottom: 22px; font-size: clamp(2.7rem, 3.5vw, 3.7rem); }
.method-lead { max-width: 510px; color: var(--muted); font-size: .87rem; line-height: 1.95; }
.method-copy ol { margin: 28px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.method-copy li { padding-block: 16px; border-bottom: 1px solid var(--line); }
.method-copy h3 { font-size: 1.65rem; letter-spacing: -.02em; }
.method-copy li p { margin-top: 5px; color: var(--muted); font-size: .78rem; line-height: 1.85; }

.journal-section { padding-block: 78px; background: var(--ivory); overflow: hidden; }
.journal-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 36px; }
.journal-heading h2 { font-size: clamp(2.8rem, 3.8vw, 4rem); }
.journal-link { display: inline-flex; align-items: center; gap: 14px; font-size: .78rem; font-weight: 600; }
.journal-link b { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid #0b22364d; border-radius: 50%; font-size: 1.2rem; font-weight: 400; transition: background .25s, color .25s; }
.journal-link:hover b { background: var(--navy); color: var(--ivory); }
.article-marquee { overflow: hidden; padding-block: 10px 20px; }
.article-track { display: flex; align-items: start; gap: 24px; width: max-content; animation: article-flow 45s linear infinite; }
.article-marquee:hover .article-track, .article-marquee:focus-within .article-track { animation-play-state: paused; }
.article-card { flex: 0 0 350px; width: 350px; }
.article-card img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 22px; margin-bottom: 18px; }
.article-meta { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 13px; color: #7c715e; font-size: .56rem; letter-spacing: .06em; }
.article-card h3 { margin-bottom: 18px; font-size: 1.95rem; line-height: 1.15; }
.article-card > a { font-size: .76rem; font-weight: 600; }
.article-card > a b { margin-left: 10px; font-size: 1.1rem; font-weight: 400; }
@keyframes article-flow { to { transform: translateX(calc(-50% - 12px)); } }

.contact-section { position: relative; isolation: isolate; overflow: hidden; padding-block: 82px; background: var(--navy); color: var(--ivory); }
.contact-lines { position: absolute; z-index: -1; width: 680px; height: 680px; left: -350px; top: -180px; border: 1px solid #c3a46530; border-radius: 50%; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.contact-grid .section-note { color: var(--gold); }
.contact-grid h2 { font-size: clamp(3rem, 4.2vw, 4.5rem); }
.contact-action p { max-width: 465px; margin-bottom: 25px; color: #cbd3d8; font-size: .87rem; line-height: 1.95; }
.contact-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 15px; }
.email-link { display: flex; flex-direction: column; gap: 4px; padding: 12px 17px; border: 1px solid #c3a4656b; border-radius: 18px; color: var(--gold-light); line-height: 1.45; transition: background .25s; }
.email-link:hover { background: #ffffff0b; }
.email-link span { font-size: .57rem; letter-spacing: .08em; text-transform: uppercase; }
.email-link strong { font-size: .76rem; font-weight: 500; }
.floating-whatsapp { position: fixed; z-index: 39; right: 26px; bottom: 25px; display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid #e7d4a5; border-radius: 50%; background: var(--gold); color: var(--navy); box-shadow: 0 10px 28px #071d3544; transition: transform .25s; }
.floating-whatsapp:hover { transform: translateY(-4px); }
.floating-whatsapp svg { width: 30px; height: 30px; }

.site-footer { padding-top: 66px; background: #041424; color: #d9e0e3; }
.footer-top { display: grid; grid-template-columns: 1.5fr .7fr 1fr; gap: 56px; padding-bottom: 50px; }
.footer-brand-lockup { display: inline-flex; align-items: center; gap: 12px; }
.footer-brand-lockup img { width: 76px; height: 60px; object-fit: contain; }
.footer-brand-lockup span { display: flex; flex-direction: column; line-height: 1; }
.footer-brand-lockup b { font-family: var(--serif); font-size: 1.9rem; font-weight: 600; letter-spacing: .02em; }
.footer-brand-lockup small { margin-top: 5px; color: var(--gold-light); font-size: .47rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; }
.footer-brand > p { max-width: 380px; margin: 24px 0 15px; color: #e7e2d7; font-family: var(--serif); font-size: 1.5rem; line-height: 1.35; }
.footer-location { display: block; color: #9aa9b3; font-size: .65rem; line-height: 1.8; }
.footer-nav, .footer-contact { display: flex; flex-direction: column; align-items: start; gap: 10px; font-size: .76rem; }
.footer-nav strong, .footer-contact strong { margin-bottom: 8px; color: var(--gold); font-size: .63rem; letter-spacing: .13em; text-transform: uppercase; }
.footer-nav a:hover, .footer-contact a:hover { color: var(--gold); }
.footer-contact span { color: #9aa9b3; font-size: .65rem; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 25px; min-height: 76px; padding-block: 20px; border-top: 1px solid #ffffff20; color: #95a5b0; font-size: .62rem; line-height: 1.7; }
.company-signature { display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; }
.company-signature img { width: 60px; height: 25px; object-fit: contain; filter: brightness(0) invert(1); }
.company-signature:hover { color: var(--gold); }
[data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .65s var(--ease), transform .65s var(--ease); }
[data-reveal].visible { opacity: 1; transform: none; }

/* Tablet: duas colunas mais leves, com cards de atuação e navegação direta. */
@media (min-width: 768px) and (max-width: 1099px) {
  :root { --gutter: 32px; }
  .desktop-nav { gap: 22px; }
  .desktop-nav a { font-size: .75rem; }
  .hero { min-height: 640px; max-height: 850px; }
  .hero-grid { grid-template-columns: 52% 48%; padding-top: 105px; padding-bottom: 45px; }
  .hero h1 { font-size: clamp(3.5rem, 7.2vw, 5rem); }
  .hero-copy { padding-right: 14px; }
  .hero-lead { font-size: .85rem; }
  .credentials { font-size: .57rem; gap: 9px; }
  .intro-split { grid-template-columns: 54% 46%; min-height: 390px; }
  .intro-content { padding: 38px 28px 38px var(--gutter); }
  .intro-content h2 { font-size: 2.6rem; }
  .intro-content > p:last-child { font-size: .82rem; }
  .areas-section { padding-block: 65px; }
  .section-heading { margin-bottom: 35px; }
  .area-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .area-card:last-child { grid-column: 1 / -1; }
  .area-card h3 { font-size: 2rem; }
  .area-card:last-child p { max-width: 580px; }
  .method-section { padding-block: 68px; }
  .method-copy { padding-left: 32px; }
  .method-copy h2 { font-size: 2.65rem; }
  .method-visual { padding-right: 10px; }
  .method-visual img { height: 400px; }
  .method-stamp { right: 0; }
  .journal-heading h2 { font-size: 3rem; }
  .contact-grid { gap: 35px; }
  .contact-grid h2 { font-size: 3.25rem; }
  .footer-top { gap: 24px; grid-template-columns: 1.2fr .65fr 1fr; }
  .footer-brand-lockup img { width: 57px; }
  .footer-brand-lockup b { font-size: 1.6rem; }
  .footer-contact { font-size: .65rem; }
}

/* Celular: composições verticais, links visíveis e ritmos próprios. */
@media (max-width: 767px) {
  :root { --gutter: 24px; }
  html { scroll-padding-top: 88px; }
  .site-header { height: 68px; }
  .header-shell { width: calc(100% - 36px); gap: 16px; }
  .brand { height: 58px; }
  .brand-full { width: 92px; height: 56px; }
  .desktop-nav { display: none; }
  .compact-nav { display: flex; align-items: center; gap: 18px; }
  .compact-nav a { font-size: .7rem; font-weight: 500; padding-block: 12px; }
  .compact-nav a:last-child { color: #8b7041; }
  .site-header.is-floating { top: 9px; width: calc(100% - 22px); height: 62px; }
  .site-header.is-floating .header-shell { width: calc(100% - 34px); }
  .site-header.is-floating .brand { height: 54px; }
  .site-header.is-floating .brand-full { width: 84px; height: 52px; }
  .hero { height: auto; max-height: none; min-height: 0; }
  .hero-grid { height: auto; display: flex; flex-direction: column; gap: 25px; padding-top: 114px; padding-bottom: 0; }
  .hero-copy { width: 100%; padding: 0; text-align: center; }
  .hero h1 { font-size: clamp(2.95rem, 13vw, 3.8rem); margin-bottom: 22px; }
  .hero-lead { max-width: 350px; margin-inline: auto; font-size: .85rem; line-height: 1.9; }
  .hero-actions { justify-content: center; margin-top: 25px; }
  .button { min-height: 52px; padding: 15px 23px; font-size: .77rem; }
  .credentials { justify-content: center; margin-top: 26px; font-size: .57rem; }
  .hero-visual { width: min(390px, calc(100% + 12px)); flex-shrink: 0; margin-inline: -6px; }
  .hero-arch { width: 96%; }
  .intro-split { display: flex; flex-direction: column; min-height: 0; }
  .intro-content { display: block; padding: 45px var(--gutter) 20px; text-align: center; }
  .section-note { font-size: .62rem; margin-bottom: 15px; }
  .intro-content h2 { max-width: 420px; margin: 0 auto 19px; font-size: clamp(2.05rem, 8.3vw, 2.65rem); }
  .intro-content > p:last-child { max-width: 420px; margin-inline: auto; font-size: .82rem; line-height: 1.9; }
  .intro-photo { width: 100%; height: clamp(260px, 72vw, 350px); flex-shrink: 0; }
  .intro-photo img { object-position: 50% 31%; }
  .intro-photo::before { background: linear-gradient(180deg, var(--paper), #fcfbf7e3 13%, #fcfbf700 50%); }
  .areas-section { padding-block: 56px; }
  .section-heading { text-align: center; margin-bottom: 28px; }
  .section-heading h2 { font-size: 2.65rem; }
  .section-subtitle { max-width: 315px; margin: 12px auto 0; font-size: 1.3rem; line-height: 1.4; }
  .area-grid { display: flex; flex-direction: column; gap: 12px; }
  .area-card { padding: 25px 22px 28px; text-align: center; align-items: center; }
  .card-top { justify-content: center; }
  .area-card h3 { margin: 19px 0 13px; font-size: 2rem; }
  .area-card p { max-width: 350px; font-size: .81rem; }
  .method-section { display: flex; flex-direction: column; padding-block: 60px; }
  .method-visual { width: 100%; max-width: 440px; padding-right: 0; }
  .method-visual img { height: 285px; border-radius: 26px; object-position: center 31%; }
  .method-stamp { right: -4px; bottom: 16px; padding: 13px 17px; }
  .method-stamp em { font-size: 1.4rem; }
  .method-copy { width: 100%; max-width: 460px; padding: 40px 0 0; text-align: center; }
  .method-copy h2 { font-size: 2.5rem; margin-bottom: 20px; }
  .method-lead { font-size: .83rem; }
  .method-copy ol { text-align: left; margin-top: 26px; }
  .method-copy li { padding-block: 18px; }
  .method-copy h3 { font-size: 1.6rem; }
  .method-copy li p { font-size: .79rem; }
  .journal-section { padding-block: 58px; }
  .journal-heading { display: block; text-align: center; margin-bottom: 25px; }
  .journal-heading h2 { font-size: 2.65rem; }
  .journal-link { margin-top: 24px; font-size: .73rem; gap: 12px; }
  .article-track { animation-duration: 42s; }
  .article-card { flex-basis: min(295px, calc(100vw - 64px)); width: min(295px, calc(100vw - 64px)); }
  .article-card img { border-radius: 18px; }
  .article-meta { font-size: .49rem; letter-spacing: .02em; }
  .article-card h3 { font-size: 1.72rem; }
  .article-card > a { font-size: .72rem; }
  .contact-section { padding-block: 62px; text-align: center; }
  .contact-grid { display: block; }
  .contact-grid h2 { font-size: 2.9rem; }
  .contact-action { margin-top: 24px; }
  .contact-action p { max-width: 370px; margin-inline: auto; font-size: .83rem; }
  .contact-actions { justify-content: center; flex-direction: column; gap: 16px; }
  .email-link { min-width: 255px; text-align: left; }
  .floating-whatsapp { right: 18px; bottom: calc(18px + env(safe-area-inset-bottom)); width: 54px; height: 54px; }
  .floating-whatsapp svg { width: 28px; height: 28px; }
  .site-footer { padding-top: 46px; }
  .footer-top { display: grid; grid-template-columns: 1fr 1fr; gap: 32px 20px; padding-bottom: 36px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-brand > p { max-width: 335px; font-size: 1.45rem; }
  .footer-brand-lockup img { width: 65px; height: 54px; }
  .footer-brand-lockup b { font-size: 1.75rem; }
  .footer-location { font-size: .61rem; }
  .footer-nav, .footer-contact { font-size: .69rem; }
  .footer-contact { overflow-wrap: anywhere; }
  .footer-contact span { font-size: .6rem; }
  .footer-bottom { flex-direction: column; align-items: start; gap: 14px; padding-bottom: 28px; font-size: .57rem; }
}
@media (max-width: 359px) {
  :root { --gutter: 18px; }
  .compact-nav { gap: 12px; }
  .hero h1 { font-size: 2.85rem; }
  .hero-lead { font-size: .79rem; }
  .credentials { font-size: .51rem; gap: 9px; }
  .footer-top { column-gap: 14px; }
  .footer-nav, .footer-contact { font-size: .63rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  [data-reveal] { opacity: 1; transform: none; }
}
