/* 01. Tokens e base */
:root {
  --ink:#082f3a;
  --ink-deep:#052630;
  --water:#57d8cf;
  --water-light:#a1e8dd;
  --paper:#f5f3ec;
  --white:#fffefa;
  --orange:#f5a340;
  --text:#29444a;
  --muted:#5e7174;
  --line:#d7dcd5;
  --display:'Barlow Condensed','Arial Narrow',sans-serif;
  --body:'Manrope',sans-serif;
  --max:1240px;
  --radius:5px;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:94px;
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:15px;
  line-height:1.65;
}

button,input,select,textarea {
  font:inherit;
}

button,a {
  -webkit-tap-highlight-color:transparent;
}

button {
  cursor:pointer;
}

a {
  color:inherit;
  text-decoration:none;
}

a,button,input,select,textarea {
  touch-action:manipulation;
}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:3px solid #b26812;
  outline-offset:5px;
}

img,svg {
  max-width:100%;
}

figure,p,h1,h2,h3 {
  margin:0;
}

h1,h2,h3 {
  font-weight:600;
}

h1,h2 {
  font-family:var(--display);
  line-height:.98;
  letter-spacing:-.025em;
}

h2 {
  font-size:clamp(44px,5.3vw,72px);
}

h3 {
  line-height:1.2;
}

::selection {
  color:var(--ink);
  background:var(--water);
}

.container {
  width:min(var(--max),calc(100% - 48px));
  margin-inline:auto;
}

.section-space {
  padding-block:80px;
}

.icon-library {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
}

.icon {
  width:22px;
  height:22px;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.eyebrow {
  font-size:10px;
  font-weight:800;
  letter-spacing:.14em;
  line-height:1.6;
}

.section-index {
  color:#557575;
  margin-right:12px;
}

.eyebrow.light {
  color:#b8d4d1;
}

.light .section-index {
  color:var(--water);
}

.skip-link {
  position:fixed;
  top:10px;
  left:12px;
  padding:12px 20px;
  background:var(--water);
  z-index:200;
  transform:translateY(-160%);
}

.skip-link:focus {
  transform:translateY(0);
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:58px;
  padding:17px 22px;
  border:1px solid transparent;
  border-radius:var(--radius);
  font-size:12px;
  font-weight:800;
  line-height:1.5;
  transition:background .2s,transform .2s;
}

.button .arrow {
  margin-left:auto;
  width:18px;
}

.button:hover {
  transform:translateY(-2px);
}

.button-water {
  background:var(--water);
  color:var(--ink-deep);
}

.button-water:hover {
  background:#8be6dd;
}

.button-dark {
  background:var(--ink);
  color:var(--white);
}

.button-dark:hover {
  background:#12505b;
}

.text-link {
  display:inline-flex;
  gap:14px;
  align-items:center;
  font-size:12px;
  font-weight:700;
  min-height:44px;
}

.text-link .icon:last-child {
  width:18px;
  transition:transform .2s;
}

.text-link:hover .icon:last-child {
  transform:translateX(4px);
}


/* 02. Cabeçalho e navegação */
.site-header {
  position:sticky;
  top:0;
  z-index:50;
  background:var(--ink-deep);
  color:var(--paper);
  border-bottom:1px solid #ffffff19;
}

.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:86px;
  gap:20px;
}

.brand {
  display:flex;
  align-items:center;
  gap:7px;
  flex-shrink:0;
}

.brand-tx {
  position:relative;
  display:inline-block;
  font-family:var(--display);
  font-weight:700;
  font-size:49px;
  letter-spacing:-.07em;
  line-height:1;
}

.brand-slash {
  position:absolute;
  top:3px;
  right:-2px;
  width:7px;
  height:22px;
  background:var(--orange);
  transform:skew(-37deg);
  clip-path:polygon(0 0,100% 0,100% 65%,0 100%);
}

.brand-name {
  font-size:25px;
  letter-spacing:-.07em;
  font-weight:700;
  line-height:1.1;
}

.brand-name>span {
  display:block;
  font-size:6px;
  font-weight:600;
  letter-spacing:.19em;
  margin-top:6px;
}

.site-header nav {
  display:flex;
  align-items:center;
  gap:32px;
  font-size:11px;
  font-weight:600;
}

.site-header nav>a:not(.header-cta) {
  padding-block:16px;
  color:#c7d8d7;
}

.site-header nav>a:hover {
  color:var(--water);
}

.header-cta {
  display:flex;
  align-items:center;
  gap:24px;
  border:1px solid #6a9296;
  padding:12px 17px;
  border-radius:var(--radius);
  margin-left:12px;
}

.header-cta .icon {
  width:17px;
}

.menu-toggle {
  display:none;
}


/* 03. Hero e ilustração técnica */
.hero {
  color:var(--paper);
  background:var(--ink);
  overflow:hidden;
}

.hero-grid {
  display:grid;
  grid-template-columns:1fr 1.08fr;
  align-items:center;
  gap:22px;
  padding-top:48px;
  padding-bottom:38px;
}

.hero-copy {
  position:relative;
  z-index:1;
  padding:17px 0 24px;
}

.hero .eyebrow {
  font-size:9px;
  display:flex;
  align-items:center;
  gap:9px;
  letter-spacing:.1em;
}

.status-dot {
  width:6px;
  height:6px;
  background:var(--orange);
  border-radius:50%;
  box-shadow:0 0 0 4px #f5a34012;
}

.hero h1 {
  font-size:clamp(76px,7.45vw,104px);
  margin-top:27px;
  letter-spacing:-.02em;
  line-height:.94;
}

.hero h1>span {
  color:var(--water);
}

.hero-description {
  font-size:14px;
  line-height:1.8;
  max-width:362px;
  margin-top:27px;
  color:#c6d8d5;
}

.hero-actions {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  margin-top:27px;
}

.hero-actions .button {
  font-size:13px;
  gap:10px;
  padding-inline:18px;
}

.hero-actions .button>.icon {
  width:20px;
}

.hero-secondary {
  color:#dce7df;
  font-size:11px;
}

.hero-note {
  display:flex;
  gap:8px;
  align-items:center;
  margin-top:24px;
  color:#a7c3c1;
  font-size:9px;
}

.hero-note .icon {
  width:16px;
  height:16px;
}

.note-divider {
  padding-inline:10px;
  opacity:.5;
}

.hero-art {
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  min-width:0;
}

.art-topline {
  font-size:8px;
  letter-spacing:.16em;
  color:#9ab7b8;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid #ffffff22;
  padding-top:14px;
  position:relative;
  z-index:1;
}

.cross-mark {
  font-size:22px;
  font-weight:400;
  color:var(--water);
}

.spa-illustration {
  width:114%;
  max-width:none;
  margin-left:-8%;
  margin-top:-3%;
  margin-bottom:-6%;
}

.hero-art figcaption {
  display:flex;
  align-items:center;
  gap:9px;
  color:#a7c3c1;
  font-size:7px;
  letter-spacing:.15em;
  position:relative;
  padding-bottom:15px;
}

.hero-art figcaption>span:last-child {
  margin-left:auto;
}

.art-caption-line {
  width:23px;
  height:1px;
  background:var(--water);
}

.hero-bottom {
  border-top:1px solid #ffffff25;
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:64px;
  font-size:8px;
  letter-spacing:.13em;
  color:#a9c4c4;
}

.hero-bottom a {
  display:flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:44px;
}

.hero-bottom .icon {
  width:18px;
  transform:rotate(90deg);
}

.water-glints {
  animation:glint 5s ease-in-out infinite;
}

@keyframes glint {
  50% {
    opacity:.25;
  }

}


/* 04. Serviços — linhas abertas, sem grade de cards repetidos */
.services {
  background:var(--white);
}

.section-heading {
  display:grid;
  grid-template-columns:1fr 2fr 1.25fr;
  gap:36px;
  align-items:start;
  margin-bottom:47px;
}

.section-heading .eyebrow {
  padding-top:10px;
}

.section-heading>p:last-child {
  font-size:13px;
  line-height:1.9;
  color:var(--muted);
  padding-top:10px;
  max-width:270px;
}

.service-row {
  display:grid;
  grid-template-columns:50px 1.05fr 1.25fr .8fr;
  gap:25px;
  align-items:center;
  min-height:137px;
  border-top:1px solid var(--line);
  position:relative;
  transition:background .2s;
}

.service-row:last-child {
  border-bottom:1px solid var(--line);
}

.service-row:hover {
  background:#edf4ef;
}

.service-number {
  align-self:start;
  padding-top:34px;
  font-family:var(--display);
  font-size:18px;
  color:#5c7575;
}

.service-title {
  display:flex;
  align-items:center;
  gap:18px;
}

.service-icon {
  width:32px;
  height:32px;
  stroke-width:1.2;
  color:#2c7779;
}

.service-title h3 {
  font-family:var(--display);
  font-size:38px;
  font-weight:500;
  letter-spacing:-.02em;
}

.service-row>p {
  font-size:13px;
  line-height:1.85;
  color:var(--muted);
  max-width:290px;
}

.service-link {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  font-weight:800;
  font-size:10px;
  min-height:48px;
}

.service-link .icon {
  border:1px solid #c3d3ca;
  width:39px;
  height:39px;
  padding:10px;
  border-radius:50%;
  transition:background .2s,transform .2s;
}

.service-link:hover .icon {
  background:var(--water);
  transform:rotate(5deg);
}

.services-aside {
  font-size:10px;
  color:var(--muted);
  margin-top:28px;
}

.services-aside>span {
  font-size:8px;
  font-weight:800;
  letter-spacing:.11em;
  color:var(--ink);
  margin-right:18px;
}


/* 05. Portfólio demonstrativo */
.work-section {
  background:var(--paper);
}

.work-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px;
  margin-bottom:30px;
}

.work-heading h2 {
  margin-top:20px;
}

.work-heading>p {
  font-size:11px;
  color:var(--muted);
  line-height:1.9;
  padding-bottom:4px;
}

.demo-notice {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:10px;
  color:#4c676a;
  margin-bottom:23px;
  max-width:740px;
}

.demo-notice .icon {
  width:16px;
}

.project-grid {
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:26px;
}

.project-main {
  grid-row:span 2;
  display:flex;
  flex-direction:column;
}

.project-placeholder {
  position:relative;
  overflow:hidden;
  color:#547b7b;
  background:#dce7e0;
  display:flex;
  align-items:center;
  justify-content:center;
  aspect-ratio:2/1;
  min-height:170px;
}

.project-main .project-placeholder {
  aspect-ratio:auto;
  flex:1;
  min-height:400px;
}

.project-placeholder>svg {
  width:100%;
  height:100%;
  position:absolute;
  inset:0;
  object-fit:contain;
  opacity:.75;
}

.placeholder-label {
  color:#31544f;
  position:absolute;
  left:18px;
  top:17px;
  z-index:1;
  font-size:7px;
  font-weight:800;
  letter-spacing:.14em;
  border:1px solid currentColor;
  padding:6px 8px;
  background:#e1e9dfd9;
}

.placeholder-spa {
  color:#547b76;
  background:#d4ded4;
  background-image:linear-gradient(125deg,transparent 50%,#b6ccc3 100%);
}

.placeholder-detail {
  color:#5b7374;
  background:#cfdcd9;
}

.placeholder-renew {
  color:#816c52;
  background:#e6dfcf;
}

.placeholder-renew .placeholder-label {
  background:#e6dfcfd9;
}

.placeholder-note {
  position:absolute;
  left:23px;
  right:23px;
  bottom:23px;
  display:flex;
  align-items:center;
  gap:10px;
  font-size:10px;
  color:#3a6460;
}

.placeholder-note .icon {
  width:17px;
}

.project figcaption {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding-top:14px;
}

.project-category {
  display:block;
  font-size:7px;
  font-weight:800;
  letter-spacing:.15em;
  color:#617373;
}

.project h3 {
  font-size:13px;
  font-weight:700;
  margin-top:5px;
}

.editable-caption {
  font-size:8px;
  line-height:1.6;
  max-width:65px;
  text-align:right;
  color:#687778;
}

.work-instagram {
  margin-top:25px;
  font-size:10px;
}

.work-instagram>.icon:first-child {
  width:17px;
}


/* 06. Processo e região */
.process-section {
  background:var(--ink-deep);
  color:var(--paper);
}

.process-heading {
  display:grid;
  grid-template-columns:1fr 2fr 1.25fr;
  gap:36px;
}

.process-heading>.eyebrow {
  padding-top:8px;
}

.process-heading>p:last-child {
  color:#b2c9c6;
  font-size:12px;
  padding-top:10px;
  line-height:1.9;
}

.process-list {
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:32px;
  padding:0;
  margin:52px 0 60px;
}

.step-number {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-family:var(--display);
  font-size:40px;
  color:var(--water);
  line-height:1;
  border-bottom:1px solid #75928e5e;
  padding-bottom:18px;
  margin-bottom:23px;
}

.step-number>span {
  font-family:var(--body);
  font-size:20px;
  font-weight:400;
  color:#6f9693;
}

.process-list h3 {
  font-size:14px;
  font-weight:700;
  margin-bottom:12px;
}

.process-list p {
  font-size:12px;
  color:#b0c7c4;
  line-height:1.9;
  max-width:220px;
}

.region-block {
  border-top:1px solid #75928e5e;
  display:grid;
  grid-template-columns:35px 1fr 1fr auto;
  gap:25px;
  align-items:center;
  padding-top:32px;
}

.region-block>.icon {
  width:29px;
  height:29px;
  color:var(--water);
  stroke-width:1.2;
}

.region-block .eyebrow {
  font-size:7px;
}

.region-block h3 {
  font-family:var(--display);
  font-size:32px;
  font-weight:500;
  margin-top:6px;
}

.region-block>p {
  font-size:10px;
  color:#b2c9c6;
  max-width:240px;
}

.region-block .text-link {
  font-size:9px;
  color:var(--water);
}


/* 07. Formulário */
.quote-section {
  background:var(--white);
}

.quote-grid {
  display:grid;
  grid-template-columns:.95fr 1fr;
  gap:100px;
  align-items:start;
}

.quote-copy h2 {
  font-size:clamp(54px,6vw,81px);
  margin-top:24px;
}

.quote-copy h2>span {
  color:#2d797b;
}

.quote-copy>p:not(.eyebrow) {
  font-size:12px;
  color:var(--muted);
  max-width:275px;
  margin-top:26px;
  line-height:1.9;
}

.direct-contact {
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:31px;
  max-width:310px;
  border-block:1px solid var(--line);
  padding-block:20px;
}

.direct-contact>.icon:first-child {
  width:27px;
  height:27px;
  color:#277375;
}

.direct-contact>span {
  font-size:9px;
  color:var(--muted);
}

.direct-contact strong {
  display:block;
  font-size:17px;
  font-weight:600;
  color:var(--ink);
  margin-top:3px;
}

.direct-contact>.icon:last-child {
  margin-left:auto;
  width:17px;
}

.quote-tip {
  display:flex;
  gap:12px;
  align-items:center;
  margin-top:23px;
  font-size:9px;
  color:var(--muted);
}

.quote-tip .icon {
  width:20px;
}

.quote-form {
  padding-top:5px;
}

.form-intro {
  font-size:12px;
  font-weight:700;
  border-bottom:1px solid var(--line);
  padding-bottom:22px;
  margin-bottom:25px;
}

.form-intro>span {
  display:block;
  font-size:8px;
  font-weight:400;
  color:var(--muted);
  margin-top:6px;
}

.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.field {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:20px;
  min-width:0;
}

.field label {
  font-size:12px;
  font-weight:800;
}

.field label>span {
  color:#446969;
}

.field input,.field select,.field textarea {
  width:100%;
  min-width:0;
  color:var(--ink);
  background:#f5f6f0;
  border:1px solid #d9dfd7;
  border-radius:var(--radius);
  padding:13px 14px;
  min-height:48px;
  font-size:14px;
  transition:border-color .2s;
}

.field select {
  padding-right:25px;
}

.field textarea {
  resize:vertical;
  min-height:120px;
  line-height:1.8;
}

.field input::placeholder,.field textarea::placeholder {
  color:#6a7b7b;
  opacity:1;
}

.field input:hover,.field select:hover,.field textarea:hover {
  border-color:#789d98;
}

.field [aria-invalid=true] {
  border-color:#a63722;
  background:#fff4ee;
}

.quote-form .button {
  width:100%;
  font-size:11px;
}

.form-status {
  font-size:12px;
  color:#96351f;
  line-height:1.6;
  margin-bottom:12px;
}

.form-status:empty {
  display:none;
}

.form-status a {
  text-decoration:underline;
}

.form-footnote {
  font-size:11px;
  color:#657678;
  line-height:1.8;
  margin-top:14px;
  max-width:380px;
}

.noscript-note {
  font-size:11px;
  background:#f5e4cb;
  padding:15px;
  margin-top:15px;
}

.noscript-note a {
  text-decoration:underline;
}


/* 08. Rodapé e acesso mobile */
.site-footer {
  color:var(--paper);
  background:var(--ink-deep);
  padding-top:48px;
}

.footer-top {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:30px;
  align-items:start;
  padding-bottom:38px;
}

.footer-top>.brand {
  justify-self:start;
}

.footer-top>p {
  font-family:var(--display);
  font-size:29px;
  line-height:1.15;
  font-weight:500;
}

.footer-contact {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
}

.footer-contact a {
  display:flex;
  gap:10px;
  align-items:center;
  font-size:10px;
  min-height:32px;
  color:#c4d6d1;
}

.footer-contact .icon {
  width:15px;
  height:15px;
}

.footer-contact a:hover {
  color:var(--water);
}

.footer-bottom {
  border-top:1px solid #75928e4d;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding-block:22px;
  font-size:8px;
  color:#a7c0bc;
}

.footer-bottom>a {
  min-height:30px;
  display:flex;
  align-items:center;
}

.demo-badge {
  border:1px solid #71918b66;
  padding:4px 8px;
  border-radius:3px;
  font-size:7px;
}

.floating-wa {
  display:none;
}


/* Le contenu reste visible sans JS, sans support IO ou avec mouvement réduit. */
.reveal.is-pending {
  opacity:0;
  transform:translateY(15px);
  transition:opacity .55s ease,transform .55s ease;
}

.reveal.is-pending.is-visible {
  opacity:1;
  transform:none;
}


/* 09. Adaptations */
@media(min-width:1450px) {
  .hero-grid {
    padding-block:65px 45px;
  }

  .hero h1 {
    font-size:116px;
  }

  .hero-description {
    font-size:15px;
  }

  .hero-art {
    padding-left:10px;
  }

}

@media(max-width:1050px) {
  .site-header nav {
    gap:18px;
  }

  .header-cta {
    margin-left:0;
  }

  .hero-grid {
    grid-template-columns:1.05fr 1fr;
    gap:0;
  }

  .hero h1 {
    font-size:85px;
  }

  .hero-description {
    font-size:14px;
    max-width:310px;
  }

  .hero-actions .button {
    font-size:12px;
    padding-inline:13px;
  }

  .hero-note {
    font-size:8px;
  }

  .hero-art {
    padding-left:20px;
  }

  .hero .eyebrow {
    font-size:8px;
  }

  .section-heading,.process-heading {
    grid-template-columns:.8fr 1.6fr 1fr;
    gap:25px;
  }

  .service-row {
    grid-template-columns:30px 1fr 1.2fr .85fr;
    gap:18px;
  }

  .service-title {
    gap:12px;
  }

  .service-title h3 {
    font-size:32px;
  }

  .service-icon {
    width:26px;
  }

  .service-link {
    font-size:9px;
  }

  .service-link .icon {
    width:33px;
    height:33px;
    padding:8px;
  }

  .quote-grid {
    gap:55px;
  }

  .region-block {
    gap:18px;
  }

}

@media(max-width:800px) {
  html {
    scroll-padding-top:82px;
  }

  .container {
    width:calc(100% - 40px);
  }

  .section-space {
    padding-block:65px;
  }

  .header-inner {
    min-height:76px;
  }

  .brand-tx {
    font-size:43px;
  }

  .brand-name {
    font-size:23px;
  }

  .brand-name>span {
    font-size:5.5px;
  }

  .site-header nav {
    gap:16px;
    font-size:10px;
  }

  .site-header nav>a:nth-child(3) {
    display:none;
  }

  .header-cta {
    padding:9px 11px;
    gap:13px;
  }

  .hero-grid {
    padding-top:32px;
  }

  .hero h1 {
    font-size:76px;
  }

  .hero-description {
    font-size:14px;
    max-width:285px;
  }

  .hero .eyebrow {
    font-size:7px;
    letter-spacing:.06em;
  }

  .hero-actions .button {
    max-width:290px;
  }

  .hero-actions .button>.icon:last-child {
    display:none;
  }

  .hero-note>span {
    max-width:225px;
    line-height:1.8;
  }

  .note-divider {
    padding-inline:6px;
  }

  .spa-illustration {
    width:133%;
    margin-left:-19%;
    margin-top:14%;
    margin-bottom:4%;
  }

  .art-topline {
    font-size:6px;
  }

  .hero-art figcaption {
    font-size:6px;
  }

  .hero-art figcaption>span:last-child {
    display:none;
  }

  .section-heading,.process-heading {
    grid-template-columns:1.5fr 1fr;
    gap:22px;
  }

  .section-heading>.eyebrow,.process-heading>.eyebrow {
    grid-column:1/-1;
    padding-top:0;
  }

  .section-heading>p:last-child,.process-heading>p:last-child {
    font-size:11px;
  }

  .service-row {
    grid-template-columns:25px 1fr 1.2fr;
    gap:15px;
    padding-block:25px;
    min-height:0;
  }

  .service-number {
    padding-top:3px;
  }

  .service-row>p {
    font-size:12px;
  }

  .service-link {
    grid-column:3;
    padding-top:0;
    min-height:33px;
    max-width:190px;
  }

  .service-title {
    align-self:start;
  }

  .service-title h3 {
    font-size:32px;
  }

  .service-title .icon {
    width:25px;
  }

  .services-aside {
    line-height:1.9;
  }

  .services-aside>span {
    display:block;
    margin-bottom:4px;
  }

  .project-grid {
    gap:22px;
  }

  .project-main .project-placeholder {
    min-height:375px;
  }

  .project-placeholder {
    min-height:145px;
  }

  .placeholder-label {
    font-size:6px;
    left:12px;
    top:12px;
  }

  .project h3 {
    font-size:11px;
  }

  .project-category {
    font-size:6px;
  }

  .editable-caption {
    font-size:7px;
  }

  .process-list {
    gap:22px;
  }

  .process-list h3 {
    font-size:11px;
  }

  .process-list p {
    font-size:10px;
  }

  .region-block {
    grid-template-columns:28px 1fr 1fr;
  }

  .region-block .text-link {
    grid-column:2;
  }

  .region-block h3 {
    font-size:30px;
  }

  .quote-grid {
    gap:38px;
  }

  .quote-copy h2 {
    font-size:63px;
  }

  .form-row {
    gap:13px;
  }

  .form-intro {
    font-size:11px;
  }

  .footer-contact a {
    font-size:9px;
  }

  .footer-top {
    grid-template-columns:.85fr 1fr 1.2fr;
    gap:18px;
  }

  .footer-top>p {
    font-size:25px;
  }

}

@media(max-width:620px) {
  .container {
    width:calc(100% - 36px);
  }

  .section-space {
    padding-block:58px;
  }

  .header-inner {
    min-height:73px;
  }

  .brand-tx {
    font-size:41px;
  }

  .brand-name {
    font-size:22px;
  }

  .brand-name>span {
    font-size:5px;
  }

  .menu-toggle:not([hidden]) {
    display:flex;
    align-items:center;
    gap:10px;
    border:1px solid #678b8e;
    border-radius:4px;
    color:var(--paper);
    background:transparent;
    padding:10px 12px;
    font-size:10px;
    min-height:42px;
  }

  .menu-lines {
    position:relative;
    width:17px;
    height:11px;
    border-block:1px solid currentColor;
  }

  .menu-lines:after {
    content:'';
    position:absolute;
    left:0;
    top:4px;
    width:12px;
    border-top:1px solid currentColor;
  }

  .site-header nav {
    flex-wrap:wrap;
    justify-content:center;
    gap:3px 18px;
    padding-bottom:14px;
  }

  .header-inner {
    flex-wrap:wrap;
  }

  .site-header nav>a {
    font-size:11px;
  }

  .site-header nav>a:nth-child(3) {
    display:block;
  }

  .site-header nav>.header-cta {
    margin-left:0;
    min-height:40px;
  }

  .site-header nav {
    width:100%;
  }

  .nav-enhanced nav {
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    padding:18px;
    background:var(--ink-deep);
    border-bottom:1px solid #ffffff30;
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }

  .nav-enhanced nav.is-open {
    display:flex;
  }

  .nav-enhanced nav>a {
    padding:13px 12px;
    min-height:45px;
  }

  .nav-enhanced nav>.header-cta {
    justify-content:space-between;
    margin-top:8px;
  }

  .hero-grid {
    display:flex;
    flex-direction:column;
    gap:0;
    padding-top:26px;
    padding-bottom:20px;
  }

  .hero-copy {
    width:100%;
    padding-top:7px;
    padding-bottom:18px;
  }

  .hero .eyebrow {
    font-size:7px;
    letter-spacing:.11em;
    gap:8px;
  }

  .hero h1 {
    font-size:clamp(76px,18.5vw,108px);
    margin-top:23px;
    line-height:.94;
  }

  .hero-description {
    font-size:14px;
    max-width:315px;
    margin-top:22px;
  }

  .hero-actions {
    margin-top:23px;
    gap:8px;
  }

  .hero-actions .button {
    font-size:12px;
    max-width:none;
    width:100%;
    min-height:55px;
    gap:9px;
    padding-inline:15px;
    justify-content:flex-start;
  }

  .hero-actions .button>.icon:last-child {
    display:block;
    width:17px;
  }

  .hero-secondary {
    font-size:10px;
    min-height:42px;
  }

  .hero-note {
    font-size:8px;
    margin-top:13px;
  }

  .hero-note>span {
    max-width:none;
  }

  .hero-art {
    width:100%;
    padding-left:0;
    min-height:0;
  }

  .art-topline {
    font-size:6px;
    padding-top:7px;
  }

  .spa-illustration {
    width:108%;
    margin-left:-4%;
    margin-top:-8%;
    margin-bottom:-9%;
  }

  .hero-art figcaption {
    font-size:6px;
    padding-bottom:2px;
  }

  .hero-art figcaption>span:last-child {
    display:inline;
  }

  .hero-bottom {
    min-height:56px;
    font-size:6px;
    letter-spacing:.08em;
  }

  .hero-bottom .icon {
    width:16px;
  }

  .section-heading,.process-heading {
    display:block;
    margin-bottom:30px;
  }

  .section-heading h2,.process-heading h2 {
    margin-top:20px;
  }

  .section-heading>p:last-child {
    max-width:290px;
    font-size:11px;
    margin-top:20px;
    padding-top:0;
  }

  .service-row {
    grid-template-columns:23px 1fr;
    gap:13px 12px;
    padding-block:25px;
  }

  .service-number {
    font-size:16px;
    grid-row:1/4;
    padding-top:4px;
  }

  .service-title {
    gap:14px;
  }

  .service-title h3 {
    font-size:34px;
  }

  .service-title .icon {
    width:27px;
    height:27px;
  }

  .service-row>p {
    grid-column:2;
    font-size:13px;
    max-width:290px;
    line-height:1.85;
  }

  .service-link {
    grid-column:2;
    min-height:39px;
    width:100%;
    max-width:none;
    font-size:10px;
    margin-top:1px;
    justify-content:space-between;
  }

  .service-link .icon {
    width:34px;
    height:34px;
  }

  .services-aside {
    font-size:10px;
    margin-top:24px;
  }

  .services-aside>span {
    font-size:7px;
  }

  .work-heading {
    display:block;
    margin-bottom:24px;
  }

  .work-heading h2 {
    margin-top:20px;
    font-size:48px;
  }

  .work-heading>p {
    margin-top:20px;
    font-size:11px;
  }

  .demo-notice {
    font-size:9px;
    line-height:1.8;
    gap:9px;
    align-items:flex-start;
    margin-bottom:20px;
  }

  .demo-notice>.icon {
    margin-top:3px;
  }

  .project-grid {
    display:flex;
    flex-direction:column;
    gap:25px;
  }

  .project-placeholder {
    aspect-ratio:1.5;
    min-height:0;
  }

  .project-main .project-placeholder {
    aspect-ratio:1.2;
    min-height:0;
    flex:auto;
  }

  .placeholder-label {
    font-size:6px;
    left:15px;
    top:15px;
  }

  .placeholder-note {
    font-size:9px;
    bottom:19px;
    left:17px;
  }

  .project h3 {
    font-size:13px;
  }

  .project-category {
    font-size:7px;
  }

  .editable-caption {
    font-size:8px;
  }

  .project figcaption {
    padding-top:12px;
  }

  .work-instagram {
    font-size:9px;
    margin-top:22px;
    gap:10px;
  }

  .process-heading>p:last-child {
    font-size:11px;
    margin-top:20px;
    padding:0;
  }

  .process-list {
    grid-template-columns:1fr 1fr;
    gap:30px 22px;
    margin:36px 0 40px;
  }

  .step-number {
    font-size:36px;
    padding-bottom:14px;
    margin-bottom:17px;
  }

  .step-number>span {
    font-size:17px;
  }

  .process-list h3 {
    font-size:12px;
    line-height:1.5;
    margin-bottom:9px;
  }

  .process-list p {
    font-size:10px;
  }

  .region-block {
    grid-template-columns:27px 1fr;
    gap:17px;
    padding-top:26px;
  }

  .region-block h3 {
    font-size:33px;
  }

  .region-block>.icon {
    width:25px;
    height:25px;
  }

  .region-block>p {
    grid-column:2;
    font-size:10px;
    max-width:260px;
  }

  .region-block .text-link {
    font-size:10px;
    min-height:35px;
  }

  .quote-grid {
    display:block;
  }

  .quote-copy h2 {
    font-size:66px;
    margin-top:22px;
  }

  .quote-copy>p:not(.eyebrow) {
    margin-top:21px;
    font-size:11px;
  }

  .direct-contact {
    margin-top:24px;
    max-width:none;
  }

  .quote-tip {
    margin-block:22px 36px;
  }

  .quote-form {
    padding-top:0;
  }

  .form-intro {
    font-size:11px;
    margin-bottom:22px;
  }

  .form-row {
    gap:13px;
  }

  .field {
    gap:8px;
    margin-bottom:18px;
  }

  .field input,.field select,.field textarea {
    font-size:16px;
    min-height:50px;
    padding:11px 10px;
  }

  .field input::placeholder,.field textarea::placeholder {
    font-size:11px;
  }

  .field label {
    font-size:11px;
  }

  .quote-form .button {
    font-size:11px;
    padding-inline:15px;
  }

  .form-footnote {
    font-size:11px;
    line-height:1.8;
  }

  .site-footer {
    padding-top:38px;
    padding-bottom:82px;
  }

  .footer-top {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:25px 15px;
    padding-bottom:28px;
  }

  .footer-top>p {
    font-size:24px;
  }

  .footer-contact {
    grid-column:1/-1;
    gap:7px;
  }

  .footer-contact a {
    font-size:10px;
    min-height:34px;
  }

  .footer-bottom {
    flex-wrap:wrap;
    gap:14px;
    padding-block:22px;
    font-size:7px;
  }

  .footer-bottom>span:first-child {
    width:100%;
  }

  .footer-bottom>a {
    margin-left:auto;
  }

  .floating-wa {
    position:fixed;
    z-index:45;
    bottom:max(16px,env(safe-area-inset-bottom));
    right:18px;
    display:flex;
    align-items:center;
    gap:9px;
    background:var(--water);
    color:var(--ink-deep);
    border:1px solid #125c604d;
    box-shadow:0 4px 18px #05263025;
    border-radius:30px;
    font-size:10px;
    font-weight:800;
    padding:13px 17px;
    min-height:48px;
  }

  .floating-wa .icon {
    width:21px;
    height:21px;
  }

}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }

  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }

  .reveal.is-pending {
    opacity:1;
    transform:none;
  }

  .button:hover {
    transform:none;
  }

}

/* 10. Alternativa fotográfica — abertura em tela inteira e galeria real */
.hero-photo {
  position:relative;
  isolation:isolate;
  min-height:720px;
}
.hero-background,.hero-shade {
  position:absolute;
  inset:0;
  z-index:-2;
}
.hero-background img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 61%;
}
.hero-shade {
  z-index:-1;
  background:linear-gradient(90deg,rgba(3,28,33,.92) 0%,rgba(3,28,33,.79) 30%,rgba(3,28,33,.23) 68%,rgba(3,28,33,.09) 100%),linear-gradient(0deg,rgba(3,28,33,.68),transparent 32%);
}
.hero-photo .hero-grid {
  display:block;
  padding-top:55px;
  padding-bottom:45px;
}
.hero-photo .hero-copy {
  max-width:620px;
  padding-block:12px 20px;
}
.hero-photo h1 {
  font-size:clamp(84px,8vw,112px);
  text-shadow:0 2px 24px #031c3326;
}
.hero-photo .hero-description {
  color:#e0e8e3;
  max-width:365px;
  font-size:15px;
}
.hero-photo .hero-actions {
  gap:10px;
  margin-top:28px;
}
.hero-photo .hero-actions .button {
  padding-inline:20px;
  font-size:12px;
}
.hero-photo .hero-note {
  color:#d2dfd9;
  font-size:10px;
}
.hero-photo-bottom {
  position:relative;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  border-top:1px solid #ffffff40;
  min-height:70px;
}
.hero-explore {
  display:flex;
  align-items:center;
  gap:25px;
  font-size:8px;
  letter-spacing:.12em;
  color:#e1e9e2;
  min-height:44px;
}
.hero-explore .icon {
  transform:rotate(90deg);
  width:17px;
}
.photo-credit {
  color:#f5f3ec;
  font-size:9px;
  line-height:1.7;
  min-height:30px;
  display:flex;
  align-items:center;
}
.photo-credit:hover,.project-source:hover {
  text-decoration:underline;
  text-underline-offset:4px;
}
.photo-project-grid {
  grid-template-columns:1.12fr 1fr;
  gap:26px;
  margin-top:36px;
}
.project-photo {
  display:block;
  position:relative;
  overflow:hidden;
  background:#d7e0d8;
  aspect-ratio:1.85;
}
.project-photo img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .55s ease;
}
.project-photo:hover img {
  transform:scale(1.025);
}
.project-main .project-photo {
  flex:1;
  min-height:480px;
  aspect-ratio:auto;
}
.photo-view img {
  object-position:center 58%;
}
.photo-spa img {
  object-position:center 39%;
}
.photo-maintenance img {
  object-position:center 66%;
}
.source-tag {
  position:absolute;
  left:17px;
  top:17px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:7px 10px;
  color:#fffefa;
  background:#052630df;
  font-size:7px;
  font-weight:700;
  letter-spacing:.1em;
}
.source-tag .icon {
  width:13px;
  height:13px;
}
.project-source {
  font-size:9px;
  color:#435e60;
  flex-shrink:0;
  min-height:34px;
  display:flex;
  align-items:center;
}
.photo-project-grid figcaption {
  gap:15px;
}
.photo-project-grid h3 {
  font-size:13px;
  line-height:1.5;
}
.gallery-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  margin-top:25px;
}
.gallery-footer>p {
  font-size:10px;
  line-height:1.8;
  color:var(--muted);
  max-width:460px;
}
.gallery-footer .work-instagram {
  margin:0;
  flex-shrink:0;
}
@media(min-width:1450px) {
  .hero-photo .hero-grid {padding-top:75px;padding-bottom:65px;}
  .hero-photo {min-height:790px;}
}
@media(max-width:1050px) {
  .hero-photo h1 {font-size:94px;}
  .hero-photo .hero-copy {max-width:550px;}
  .hero-photo .hero-description {font-size:14px;}
  .hero-photo {min-height:700px;}
  .hero-shade {background:linear-gradient(90deg,#031c21eb 0%,#031c21ba 40%,#031c2126 100%),linear-gradient(0deg,#031c2180,transparent 40%);}
  .photo-project-grid h3 {font-size:12px;}
}
@media(max-width:800px) {
  .hero-photo .hero-grid {padding-top:45px;padding-bottom:35px;}
  .hero-photo h1 {font-size:88px;}
  .hero-photo {min-height:690px;}
  .hero-photo .hero-copy {max-width:490px;}
  .hero-background img {object-position:59% center;}
  .project-main .project-photo {min-height:420px;}
  .project-source {font-size:8px;}
  .photo-project-grid figcaption {align-items:flex-start;flex-direction:column;gap:3px;}
  .project-source {min-height:27px;}
  .gallery-footer {align-items:flex-start;flex-direction:column;gap:8px;}
}
@media(max-width:620px) {
  .hero-photo {min-height:850px;display:flex;flex-direction:column;}
  .hero-photo .hero-grid {padding-top:35px;padding-bottom:10px;flex:1;}
  .hero-photo .hero-copy {max-width:100%;padding-top:7px;}
  .hero-photo h1 {font-size:clamp(70px,17.7vw,100px);margin-top:23px;}
  .hero-photo .hero-description {font-size:13px;max-width:300px;}
  .hero-photo .hero-actions .button {font-size:11px;padding-inline:14px;}
  .hero-photo .hero-note {font-size:8px;margin-top:17px;}
  .hero-background img {object-position:59% 71%;}
  .hero-shade {background:linear-gradient(180deg,#031c21e8 0%,#031c21d9 27%,#031c21a6 53%,#031c211f 78%,#031c217d 100%);}
  .hero-photo-bottom {flex-direction:column;align-items:flex-start;gap:0;padding-top:13px;padding-bottom:17px;min-height:97px;}
  .hero-explore {font-size:6px;letter-spacing:.08em;gap:13px;min-height:33px;}
  .photo-credit {font-size:8px;}
  .photo-project-grid {display:flex;flex-direction:column;gap:28px;margin-top:28px;}
  .project-photo {aspect-ratio:1.18;}
  .project-main .project-photo {aspect-ratio:.85;min-height:0;flex:auto;}
  .photo-project-grid figcaption {flex-direction:row;align-items:center;gap:12px;}
  .photo-project-grid h3 {font-size:12px;}
  .project-source {font-size:8px;max-width:75px;}
  .source-tag {font-size:6px;left:13px;top:13px;gap:8px;}
  .gallery-footer>p {font-size:9px;}
}
@media(prefers-reduced-motion:reduce) {
  .project-photo img {transition:none;}
  .project-photo:hover img {transform:none;}
}
