@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&family=Italiana&display=swap');

:root {
  --ivory: #f4f0e9;
  --paper: #faf8f3;
  --beige: #d9cec0;
  --rose: #a7827f;
  --wine: #542833;
  --deep: #24181b;
  --graphite: #2d2b2a;
  --muted: #716b66;
  --gold: #a58d65;
  --line: rgba(45, 43, 42, .2);
  --serif: 'Italiana', 'Times New Roman', serif;
  --sans: 'Inter', Arial, sans-serif;
  --header-h: 86px;
  --ease: cubic-bezier(.22, 1, .36, 1)
}

* {
  box-sizing: border-box
}

html {
  scroll-behavior: smooth;
  scrollbar-width: thin;
  scrollbar-color: var(--wine) var(--ivory)
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--graphite);
  font-family: var(--sans);
  font-weight: 300;
  line-height: 1.6;
  overflow-x: hidden
}

body.menu-open,
body.modal-open {
  overflow: hidden
}

img {
  display: block;
  max-width: 100%;
  height: auto
}

a {
  color: inherit;
  text-decoration: none
}

button,
input,
select,
textarea {
  font: inherit
}

button {
  color: inherit
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0
}

.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 9999;
  background: #fff;
  padding: 10px 16px;
  transform: translateY(-150%)
}

.skip-link:focus {
  transform: none
}

::-webkit-scrollbar {
  width: 8px;
  height: 8px
}

::-webkit-scrollbar-track {
  background: var(--ivory)
}

::-webkit-scrollbar-thumb {
  background: var(--wine);
  border: 2px solid var(--ivory);
  border-radius: 999px
}

::-webkit-scrollbar-thumb:hover {
  background: var(--deep)
}

.page-loader {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: grid;
  place-items: center;
  background: var(--paper);
  transition: opacity .8s var(--ease), visibility .8s
}

.page-loader span {
  font-family: var(--serif);
  font-size: clamp(2rem, 5vw, 5rem);
  letter-spacing: .06em
}

.is-loaded .page-loader {
  opacity: 0;
  visibility: hidden
}

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  color: #fff;
  transition: background .45s, color .45s, transform .45s
}

.site-header.scrolled {
  background: rgba(250, 248, 243, .94);
  backdrop-filter: blur(18px);
  color: var(--deep);
  border-bottom: 1px solid rgba(45, 43, 42, .08)
}

.site-header.hidden {
  transform: translateY(-110%)
}

.header-inner {
  height: var(--header-h);
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  align-items: center;
  padding: 0 clamp(24px, 4vw, 72px);
  overflow: hidden;
}

.main-nav {
  display: flex;
  gap: clamp(20px, 3vw, 52px)
}

.main-nav a,
.header-cta {
  font-size: .67rem;
  text-transform: uppercase;
  letter-spacing: .22em;
  position: relative
}

.main-nav a:after,
.header-cta:after,
.text-link:after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .4s var(--ease)
}

.main-nav a:hover:after,
.header-cta:hover:after,
.text-link:hover:after {
  transform: scaleX(1);
  transform-origin: left
}

.brand {
  justify-self: center;
  align-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--header-h);
  min-width: 0;
  overflow: hidden;
}

.brand img {
  display: block;
  width: auto;
  height: auto;
  max-width: clamp(150px, 14vw, 188px);
  max-height: calc(var(--header-h) - 18px);
  object-fit: contain;
  object-position: center;
}

.site-header:not(.scrolled) .brand img {
  filter: brightness(0) invert(1)
}

.header-cta {
  justify-self: end
}

.menu-toggle {
  display: none;
  background: none;
  border: 0;
  padding: 12px
}

.menu-toggle span {
  display: block;
  width: 25px;
  height: 1px;
  background: currentColor;
  margin: 7px
}

.hero {
  position: relative;
  min-height: 100svh;
  color: #fff;
  display: grid;
  align-items: end;
  overflow: hidden;
  background: var(--deep)
}

.hero-media,
.hero-shade {
  position: absolute;
  inset: 0
}

.hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: heroZoom 18s ease-out both
}

.hero-shade {
  background: linear-gradient(90deg, rgba(10, 8, 10, .64) 0%, rgba(10, 8, 10, .38) 34%, rgba(10, 8, 10, .14) 66%, rgba(10, 8, 10, .08) 100%), linear-gradient(180deg, rgba(10, 8, 10, .24) 0%, rgba(10, 8, 10, .12) 42%, rgba(10, 8, 10, .68) 100%)
}

.hero-content {
  position: relative;
  z-index: 2;
  padding: 0 clamp(24px, 8vw, 150px) clamp(70px, 10vh, 120px);
  max-width: 1150px
}

.eyebrow {
  text-transform: uppercase;
  font-size: .66rem;
  letter-spacing: .3em;
  font-weight: 500;
  margin: 0 0 28px
}

.hero h1 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(3.3rem, 7vw, 8.2rem);
  line-height: .94;
  letter-spacing: -.035em;
  margin: 0 0 32px
}

.hero-copy {
  font-size: clamp(.95rem, 1.15vw, 1.15rem);
  max-width: 570px;
  margin: 0 0 40px
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
  min-width: 270px;
  padding: 17px 21px;
  border: 1px solid currentColor;
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .67rem;
  background: transparent;
  cursor: pointer;
  transition: background .35s, color .35s, transform .35s
}

.button:hover {
  transform: translateY(-2px)
}

.button-light:hover {
  background: #fff;
  color: var(--deep)
}

.scroll-cue {
  position: absolute;
  right: clamp(24px, 4vw, 70px);
  bottom: 50px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  font-size: .58rem;
  text-transform: uppercase;
  letter-spacing: .25em
}

.scroll-cue i {
  height: 62px;
  width: 1px;
  background: rgba(255, 255, 255, .55);
  position: relative;
  overflow: hidden
}

.scroll-cue i:after {
  content: '';
  position: absolute;
  inset: 0;
  background: #fff;
  animation: scrollLine 2.2s infinite
}

.section {
  padding: clamp(90px, 12vw, 190px) clamp(24px, 7vw, 135px)
}

.editorial-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .8fr);
  gap: clamp(50px, 10vw, 180px);
  align-items: center
}

.intro-visual {
  position: relative;
  max-width: 760px
}

.intro-visual img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover
}

.image-index {
  position: absolute;
  left: calc(100% + 18px);
  bottom: 0;
  writing-mode: vertical-rl;
  font-size: .58rem;
  text-transform: uppercase;
  letter-spacing: .25em
}

.intro-copy {
  max-width: 610px
}

.intro-copy h2,
.section-heading h2,
.craft-copy h2,
.process-heading h2,
.form-intro h2,
.privacy-modal h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(3rem, 5.5vw, 6.4rem);
  line-height: 1.02;
  letter-spacing: -.03em;
  margin: 0 0 32px
}

.intro-copy>p:not(.eyebrow),
.craft-copy>p:not(.eyebrow),
.form-intro>p:not(.eyebrow) {
  max-width: 540px;
  color: var(--muted);
  font-size: 1rem
}

.text-link {
  display: inline-flex;
  gap: 24px;
  margin-top: 30px;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .66rem;
  position: relative
}

.gallery-section {
  padding-top: 30px
}

.section-heading {
  margin-bottom: clamp(60px, 9vw, 130px)
}

.section-heading h2 {
  font-size: clamp(3.2rem, 6vw, 7rem)
}

.section-heading.compact {
  max-width: 720px
}

.editorial-gallery {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(18px, 2.3vw, 42px);
  align-items: start
}

.gallery-item {
  margin: 0;
  position: relative;
  cursor: zoom-in
}

.gallery-item:nth-child(1) {
  grid-column: 1/6
}

.gallery-item:nth-child(2) {
  grid-column: 7/13;
  margin-top: 12vw
}

.gallery-item:nth-child(3) {
  grid-column: 2/7;
  margin-top: 4vw
}

.gallery-item:nth-child(4) {
  grid-column: 8/12;
  margin-top: -7vw
}

.gallery-item:nth-child(5) {
  grid-column: 1/5;
  margin-top: 8vw
}

.gallery-item:nth-child(6) {
  grid-column: 6/13
}

.gallery-item:nth-child(7) {
  grid-column: 2/7;
  margin-top: 10vw
}

.gallery-item:nth-child(8) {
  grid-column: 8/13;
  margin-top: 2vw
}

.gallery-item:nth-child(9) {
  grid-column: 3/11;
  margin-top: 8vw
}

.gallery-button {
  border: 0;
  background: none;
  padding: 0;
  width: 100%;
  cursor: zoom-in;
  overflow: hidden
}

.gallery-button img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1s var(--ease)
}

.gallery-button:hover img {
  transform: scale(1.025)
}

.gallery-item figcaption {
  display: flex;
  justify-content: space-between;
  margin-top: 14px;
  font-size: .62rem;
  text-transform: uppercase;
  letter-spacing: .18em
}

.gallery-item figcaption span:last-child {
  color: var(--muted)
}

.craft-section {
  background: var(--ivory);
  display: grid;
  grid-template-columns: .75fr 1.35fr;
  gap: clamp(50px, 9vw, 150px);
  align-items: center
}

.craft-copy {
  max-width: 530px
}

.fine-line {
  display: block;
  width: 58px;
  height: 1px;
  background: var(--gold);
  margin: 0 0 40px
}

.craft-image img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover
}

.process-section {
  background: var(--deep);
  color: var(--paper)
}

.process-heading {
  display: grid;
  grid-template-columns: .5fr 1.5fr;
  align-items: start;
  margin-bottom: 90px
}

.process-heading h2 {
  margin: 0
}

.process-list {
  list-style: none;
  padding: 0;
  margin: 0
}

.process-list li {
  display: grid;
  grid-template-columns: 100px 1fr 1fr;
  gap: 30px;
  padding: 34px 0;
  border-top: 1px solid rgba(255, 255, 255, .17);
  align-items: start
}

.process-list li:last-child {
  border-bottom: 1px solid rgba(255, 255, 255, .17)
}

.process-list span {
  font-family: var(--serif);
  font-size: 2.8rem;
  color: var(--rose)
}

.process-list h3 {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 2.2vw, 2.7rem);
  font-weight: 400;
  margin: 5px 0
}

.process-list p {
  color: rgba(255, 255, 255, .62);
  max-width: 430px;
  margin: 10px 0
}

.statement-section{
  position:relative;
  width:100%;
  height:min(90vh,920px);
  overflow:hidden;
  color:#fff;
  background:#24181b;
  isolation:isolate;
}

.statement-media{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}

.statement-media #statementVideo{
  display:block;
  width:100%;
  height:100%;
  min-width:100%;
  min-height:100%;
  object-fit:cover;
  object-position:100% 10%;
}

.statement-section::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;

  background:
    linear-gradient(
      90deg,
      rgba(18,9,13,.78) 0%,
      rgba(18,9,13,.52) 38%,
      rgba(18,9,13,.18) 72%,
      rgba(18,9,13,.08) 100%
    ),
    linear-gradient(
      180deg,
      rgba(18,9,13,.08) 0%,
      rgba(18,9,13,.38) 100%
    );
}

.statement-copy{
  position:absolute;
  z-index:2;
  left:clamp(24px,8vw,150px);
  bottom:clamp(50px,8vw,120px);
}

.statement-copy p{
  font-family:var(--serif);
  font-size:clamp(3.4rem,7vw,8rem);
  line-height:.93;
  margin:0 0 24px;
}

.statement-copy span{
  text-transform:uppercase;
  font-size:.62rem;
  letter-spacing:.28em;
}

.benefits-section {
  background: var(--paper)
}

.benefits-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line)
}

.benefits-grid div {
  min-height: 190px;
  padding: 30px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  justify-content: space-between
}

.benefits-grid span {
  font-size: .62rem;
  letter-spacing: .16em;
  color: var(--muted)
}

.benefits-grid p {
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2vw, 2.2rem);
  line-height: 1.1;
  margin: 0
}

.testimonial-section {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  padding-top: 0;
  padding-bottom: 0;
  background: var(--ivory)
}

.testimonial-aside {
  margin-left: calc(clamp(24px, 7vw, 135px)*-1)
}

.testimonial-aside img {
  width: 100%;
  height: 100%;
  min-height: 720px;
  object-fit: cover
}

.testimonial-content {
  padding: clamp(80px, 10vw, 150px);
  display: flex;
  flex-direction: column;
  justify-content: center
}

.testimonial-slider {
  position: relative;
  overflow: hidden;
  min-height: clamp(280px, 35vh, 430px);
  transition: height .45s var(--ease)
}

.testimonial-slide {
  display: flex;
  flex-direction: column;
  justify-content: center;
  will-change: transform, opacity
}

.testimonial-slide blockquote {
  font-family: var(--serif);
  font-size: clamp(2rem, 3.8vw, 4.6rem);
  line-height: 1.14;
  margin: 0 0 46px
}

.testimonial-slide cite {
  font-style: normal;
  text-transform: uppercase;
  font-size: .62rem;
  letter-spacing: .2em
}

.testimonial-slide cite span {
  display: block;
  color: var(--muted);
  margin-top: 8px
}

.testimonial-slide.is-entering,
.testimonial-slide.is-exiting {
  position: absolute;
  inset: 0
}

.testimonial-slide.is-entering {
  opacity: 0;
  transform: translate3d(0, 18px, 0) scale(.995);
  pointer-events: none;
  transition: opacity .55s var(--ease), transform .85s var(--ease)
}

.testimonial-slide.is-entering.from-prev {
  transform: translate3d(0, -18px, 0) scale(.995)
}

.testimonial-slide.is-entering.is-in {
  opacity: 1;
  transform: none
}

.testimonial-slide.is-exiting {
  opacity: 1;
  transform: none;
  pointer-events: none;
  transition: opacity .42s ease, transform .75s var(--ease)
}

.testimonial-slide.is-exiting.to-prev {
  opacity: 0;
  transform: translate3d(0, -14px, 0) scale(.996)
}

.testimonial-slide.is-exiting.to-next {
  opacity: 0;
  transform: translate3d(0, 14px, 0) scale(.996)
}

.testimonial-controls {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 60px
}

.testimonial-controls button {
  border: 0;
  background: none;
  font-size: 1.3rem;
  cursor: pointer;
  padding: 8px;
  transition: transform .35s var(--ease), opacity .35s var(--ease)
}

.testimonial-controls button:hover {
  transform: translateY(-1px);
  opacity: .72
}

.testimonial-controls span {
  font-size: .62rem;
  letter-spacing: .18em
}

.form-section {
  background: var(--wine);
  color: #fff;
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: clamp(60px, 9vw, 150px)
}

.form-intro {
  position: sticky;
  top: 140px;
  align-self: start
}

.form-intro h2 {
  font-size: clamp(3rem, 4.6vw, 5.5rem)
}

.form-intro>p:not(.eyebrow),
.form-intro small {
  color: rgba(255, 255, 255, .7)
}

.form-intro small {
  display: block;
  margin-top: 40px;
  font-size: .72rem
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 34px 26px
}

.field {
  position: relative
}

.field-full {
  grid-column: 1/-1
}

.field label:not(.checkbox-label) {
  display: block;
  text-transform: uppercase;
  letter-spacing: .2em;
  font-size: .59rem;
  margin-bottom: 12px
}

.field input,
.field select,
.field textarea,
.custom-select-trigger {
  width: 100%;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .42);
  border-radius: 0;
  background: transparent;
  color: #fff;
  padding: 14px 2px;
  font-size: 1rem;
  outline: none;
  transition: border-color .25s, background .25s
}

.field textarea {
  resize: vertical;
  min-height: 110px
}

.field input::placeholder,
.field textarea::placeholder {
  color: rgba(255, 255, 255, .42)
}

.field input:focus,
.field select:focus,
.field textarea:focus,
.custom-select-trigger:focus-visible {
  border-color: #fff;
  box-shadow: 0 2px 0 rgba(255, 255, 255, .18)
}

.field input.valid,
.field select.valid {
  border-color: #d5e5d4
}

.field input.invalid,
.field select.invalid {
  border-color: #ffb9bb
}

.field-message {
  display: block;
  min-height: 18px;
  margin-top: 8px;
  font-size: .68rem;
  color: #ffd1d2
}

.char-count {
  position: absolute;
  right: 0;
  bottom: -22px;
  font-size: .62rem;
  color: rgba(255, 255, 255, .5)
}

select {
  appearance: none
}

select option {
  color: var(--deep);
  background: var(--paper)
}

.custom-select {
  position: relative
}

.custom-select-trigger {
  text-align: left;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer
}

.custom-select-trigger i {
  width: 8px;
  height: 8px;
  border-right: 1px solid;
  border-bottom: 1px solid;
  transform: rotate(45deg);
  transition: transform .25s
}

.custom-select-trigger[aria-expanded=true] i {
  transform: rotate(225deg)
}

.custom-select-options {
  position: absolute;
  z-index: 20;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  max-height: 260px;
  overflow: auto;
  padding: 8px;
  margin: 0;
  list-style: none;
  background: var(--paper);
  color: var(--deep);
  border: 1px solid rgba(0, 0, 0, .12);
  box-shadow: 0 20px 50px rgba(0, 0, 0, .2);
  scrollbar-width: thin;
  scrollbar-color: var(--wine) var(--paper)
}

.custom-select-options li {
  padding: 11px 12px;
  cursor: pointer;
  font-size: .9rem
}

.custom-select-options li:hover,
.custom-select-options li[aria-selected=true],
.custom-select-options li.active {
  background: var(--ivory)
}

.checkbox-label {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  font-size: .75rem;
  color: rgba(255, 255, 255, .76);
  cursor: pointer
}

.checkbox-label input {
  position: absolute;
  opacity: 0;
  width: 1px
}

.custom-checkbox {
  width: 18px;
  height: 18px;
  border: 1px solid rgba(255, 255, 255, .6);
  flex: 0 0 18px;
  display: grid;
  place-items: center;
  margin-top: 2px
}

.checkbox-label input:checked+.custom-checkbox:after {
  content: '✓';
  font-size: .75rem
}

.checkbox-label input:focus-visible+.custom-checkbox {
  box-shadow: 0 0 0 3px rgba(255, 255, 255, .24)
}

.checkbox-label a {
  text-decoration: underline
}

.submit-button {
  color: #fff;
  margin-top: 42px;
  background: transparent
}

.submit-button:hover {
  background: #fff;
  color: var(--wine)
}

.submit-button.loading {
  opacity: .6;
  pointer-events: none
}

.form-status {
  margin-top: 18px;
  font-size: .8rem;
  min-height: 22px
}

.post-submit {
  margin-top: 28px;
  padding-top: 28px;
  border-top: 1px solid rgba(255, 255, 255, .3)
}

.button-outline {
  margin-top: 12px;
  color: #fff
}

.faq-list {
  border-top: 1px solid var(--line)
}

.faq-item {
  border-bottom: 1px solid var(--line)
}

.faq-question {
  width: 100%;
  border: 0;
  background: none;
  padding: 30px 0;
  display: flex;
  justify-content: space-between;
  text-align: left;
  cursor: pointer;
  font-family: var(--serif);
  font-size: clamp(1.25rem, 2vw, 2rem)
}

.faq-answer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .5s var(--ease)
}

.faq-answer>div {
  overflow: hidden
}

.faq-answer p {
  max-width: 720px;
  color: var(--muted);
  margin: 0 0 34px
}

.faq-item.open .faq-answer {
  grid-template-rows: 1fr
}

.faq-question span:last-child {
  transition: transform .35s
}

.faq-item.open .faq-question span:last-child {
  transform: rotate(45deg)
}

.site-footer {
  background: #171113;
  color: rgba(255, 255, 255, .72);
  padding: 80px clamp(24px, 5vw, 90px) 30px
}

.footer-top {
  display: grid;
  grid-template-columns: 1.1fr .8fr .8fr;
  gap: 70px;
  padding-bottom: 42px
}

.footer-brand img {
  filter: none;
  width: 230px;
  margin-bottom: 24px
}

.footer-brand p {
  max-width: 330px
}

.footer-label {
  text-transform: uppercase;
  letter-spacing: .2em;
  font-size: .58rem;
  color: #fff;
  margin-bottom: 20px
}

.footer-top address {
  font-style: normal
}
.footer-top > div > a,
.footer-links > a{
  display:inline-block;
  margin-top:14px;
  border-bottom:1px solid rgba(255,255,255,.25);
  font-size:.75rem;
}

.footer-social {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 18px
}

.social-link {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 999px;
  background: rgba(255, 255, 255, .03);
  transition: transform .35s var(--ease), background .35s var(--ease), border-color .35s var(--ease)
}

.social-link:hover {
  transform: translateY(-1px);
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .3)
}

.social-link svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round
}

.social-link#socialFacebook svg,
.social-link#socialPinterest svg,
.social-link#socialWhatsapp svg {
  fill: currentColor;
  stroke: none
}

.footer-showcase {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
  gap: clamp(20px, 4vw, 48px);
  align-items: stretch;
  padding: 0 0 38px
}

.footer-media {
  margin: 0;
  position: relative;
  border-radius: 0;
  overflow: hidden;
  min-height: 220px;
  background: #24181b
}

.footer-media:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, .04), rgba(0, 0, 0, .3))
}

.footer-media img {
  width: 100%;
  height: 100%;
  object-fit: cover
}

.footer-map-card {
  background: rgba(255, 255, 255, .03);
  border: 1px solid rgba(255, 255, 255, .08);
  padding: clamp(18px, 2vw, 24px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px
}

.footer-map-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px
}

.footer-map-head .footer-label {
  margin-bottom: 0
}

.footer-map-head a {
  margin-top: 0
}

.footer-map-wrap {
  position: relative;
  overflow: hidden;
  min-height: 280px;
  height: 100%;
  background: #231b1d
}

.footer-map-wrap iframe {
  width: 100%;
  height: 100%;
  min-height: 280px;
  border: 0;
  filter: grayscale(1) saturate(.2) contrast(.95) brightness(.9)
}

.footer-map-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(23, 17, 19, .04), rgba(23, 17, 19, .1))
}

.footer-bottom {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 30px;
  align-items: center;
  border-top: 1px solid rgba(255, 255, 255, .12);
  padding-top: 28px;
  font-size: .65rem
}

.footer-bottom button {
  border: 0;
  background: none;
  color: inherit;
  cursor: pointer
}

.developer-credit {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: .62rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .9)
}

.developer-credit span {
  opacity: .72
}

.developer-credit img {
  filter: brightness(0) invert(1);
  opacity: .82
}

dialog {
  border: 0;
  padding: 0
}

.lightbox {
  width: 100vw;
  height: 100vh;
  max-width: none;
  max-height: none;
  background: rgba(18, 13, 14, .96);
  color: #fff
}

.lightbox::backdrop,
.privacy-modal::backdrop {
  background: rgba(0, 0, 0, .74);
  backdrop-filter: blur(8px)
}

.lightbox figure {
  height: 100%;
  margin: 0;
  display: grid;
  place-items: center;
  padding: 70px
}

.lightbox figure img {
  max-height: 82vh;
  max-width: 82vw
}

.lightbox figcaption {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  font-size: .66rem;
  text-transform: uppercase;
  letter-spacing: .2em
}

.lightbox-close,
.modal-close {
  position: absolute;
  right: 25px;
  top: 18px;
  border: 0;
  background: none;
  color: inherit;
  font-size: 2rem;
  z-index: 2;
  cursor: pointer
}

.lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  background: none;
  color: #fff;
  font-size: 2rem;
  padding: 24px;
  cursor: pointer
}

.lightbox-nav.prev {
  left: 10px
}

.lightbox-nav.next {
  right: 10px
}

.privacy-modal {
  max-width: 720px;
  background: var(--paper);
  color: var(--deep);
  padding: 70px
}

.privacy-modal h2 {
  font-size: 3.6rem
}

.privacy-modal p {
  color: var(--muted)
}

.privacy-modal .modal-close {
  color: var(--deep)
}

/* Scroll story editorial — rolagem nativa com seção fixada */
@media (min-width:821px) and (prefers-reduced-motion:no-preference) {
  .scroll-story {
    --story-steps: 1;
    position: relative;
    height: 100svh;
    padding: 0;
    background: var(--paper)
  }

  .gallery-sticky-stage {
    position: sticky;
    top: 0;
    height: 100vh;
    min-height: 680px;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(300px, .72fr) minmax(520px, 1.28fr);
    gap: clamp(48px, 7vw, 130px);
    align-items: center;
    padding: calc(var(--header-h) + 3vh) clamp(40px, 6vw, 110px) 5vh
  }

  .gallery-story-heading {
    margin: 0;
    align-self: center;
    z-index: 3
  }

  .gallery-story-heading h2 {
    font-size: clamp(3.7rem, 5.7vw, 7rem);
    line-height: .89;
    margin-bottom: 30px
  }

  .gallery-story-copy {
    max-width: 430px;
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.75
  }

  .gallery-story-status {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-top: 42px;
    font-size: .6rem;
    letter-spacing: .18em;
    text-transform: uppercase
  }

  .gallery-story-status i {
    display: block;
    position: relative;
    width: min(190px, 15vw);
    height: 1px;
    background: var(--line);
    overflow: hidden
  }

  .gallery-story-status b {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--wine);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .12s linear
  }

  .editorial-gallery {
    position: relative;
    display: block;
    height: min(76vh, 850px);
    min-height: 560px;
    overflow: visible;
    isolation: isolate
  }

  .gallery-item {
    position: absolute;
    inset: 0;
    margin: 0 !important;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    opacity: 0;
    visibility: hidden;
    transform: translate3d(0, 7%, 0) scale(.985);
    clip-path: inset(8% 0 0 0);
    transition: opacity .95s var(--ease), transform 1.35s var(--ease), clip-path 1.35s var(--ease), visibility 0s linear 1.35s;
    pointer-events: none;
    will-change: transform, opacity, clip-path
  }

  .gallery-item .gallery-button {
    height: 100%;
    background: var(--ivory)
  }

  .gallery-item .gallery-button img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.028);
    transition: transform 2.1s var(--ease)
  }

  .gallery-item.story-active {
    opacity: 1;
    visibility: visible;
    transform: none;
    clip-path: inset(0);
    z-index: 2;
    pointer-events: auto;
    transition-delay: 0s
  }

  .gallery-item.story-active .gallery-button img {
    transform: scale(1)
  }

  .gallery-item.story-before {
    transform: translate3d(0, -5%, 0) scale(.992);
    clip-path: inset(0 0 100% 0)
  }

  .gallery-item.story-after {
    transform: translate3d(0, 7%, 0) scale(.985);
    clip-path: inset(8% 0 0 0)
  }

  .gallery-item.story-extra {
    display: none
  }

  .gallery-item figcaption {
    margin-top: 18px
  }

  .gallery-scroll-hint {
    position: absolute;
    right: clamp(18px, 2vw, 40px);
    bottom: 5vh;
    display: flex;
    align-items: center;
    gap: 12px;
    writing-mode: vertical-rl;
    text-transform: uppercase;
    letter-spacing: .2em;
    font-size: .52rem;
    color: var(--muted)
  }

  .gallery-scroll-hint i {
    position: relative;
    width: 1px;
    height: 50px;
    background: var(--line);
    overflow: hidden
  }

  .gallery-scroll-hint i:after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--wine);
    animation: scrollLine 2s infinite
  }
}

/* Campo de data editorial, preservando o seletor nativo */
.date-field {
  position: relative
}

.date-field input[type="date"] {
  position: relative;
  min-height: 52px;
  padding-right: 48px;
  color-scheme: dark;
  font-variant-numeric: tabular-nums;
  letter-spacing: .035em;
  cursor: pointer
}

.date-field:after {
  content: "";
  position: absolute;
  right: 3px;
  top: 35px;
  width: 20px;
  height: 20px;
  pointer-events: none;
  opacity: .88;
  background: center/18px 18px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='1'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E")
}

.date-field input[type="date"]::-webkit-calendar-picker-indicator {
  position: absolute;
  right: 0;
  top: 0;
  width: 44px;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: pointer
}

.date-field input[type="date"]::-webkit-datetime-edit {
  padding: 0
}

.date-field input[type="date"]::-webkit-datetime-edit-fields-wrapper {
  display: flex;
  gap: 2px
}

.date-field input[type="date"]::-webkit-datetime-edit-text {
  color: rgba(255, 255, 255, .42);
  padding: 0 2px
}

.date-field input[type="date"]::-webkit-datetime-edit-day-field,
.date-field input[type="date"]::-webkit-datetime-edit-month-field,
.date-field input[type="date"]::-webkit-datetime-edit-year-field {
  color: #fff;
  padding: 2px;
  border-radius: 2px
}

.date-field input[type="date"]:focus {
  background: rgba(255, 255, 255, .035)
}

.date-field:focus-within:after {
  opacity: 1;
  transform: translateY(-1px)
}

/* Navegação editorial por cenas — encaixe suave inspirado em campanhas de moda */
@media (min-width: 821px) and (prefers-reduced-motion: no-preference) {
  .scene-snap {
    min-height: 100svh;
    scroll-margin-top: 0;
    overflow: clip;
  }

  .editorial-intro.scene-snap,
  .craft-section.scene-snap,
  .testimonial-section.scene-snap {
    align-items: center;
  }

  .scene-snap.scene-entering {
    animation: sceneArrival .95s var(--ease) both;
  }

  .scene-snap.scene-leaving>* {
    transition: opacity .42s ease, transform .65s var(--ease);
  }

  .scene-snap.scene-leaving>* {
    opacity: .72;
    transform: translate3d(0, -1.2vh, 0) scale(.995);
  }

  .scene-snap-tall {
    min-height: max(100svh, 860px);
    overflow: visible;
  }
}

@keyframes sceneArrival {
  from {
    opacity: .84;
    transform: translate3d(0, 2.2vh, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

/* Campo de data: superfície clicável única e acabamento mais limpo */
.date-field input[type="date"] {
  border-radius: 0;
  background-image: linear-gradient(90deg, transparent, transparent);
}

.date-field input[type="date"]:hover {
  border-bottom-color: rgba(255, 255, 255, .72);
}

.date-field input[type="date"]:valid {
  color: #fff;
}

.date-field input[type="date"]::-webkit-clear-button,
.date-field input[type="date"]::-webkit-inner-spin-button {
  display: none;
}

@media (min-width:821px) and (prefers-reduced-motion:no-preference) {
  html.fullpage-active {
    scroll-behavior: auto;
    overscroll-behavior: none
  }

  html.fullpage-active body {
    overscroll-behavior: none
  }

  .fullpage-active [data-scene] {
    scroll-snap-align: none
  }
}


/* ==========================================================
   FULL-PAGE 2.1 — TODAS AS COMPOSIÇÕES CABEM NA ÁREA VISÍVEL
   A altura útil, e não só a largura, governa ritmo e escala.
   ========================================================== */
@media (min-width:821px) and (prefers-reduced-motion:no-preference) {
  html.fullpage-active [data-scene] {
    width: 100%;
    height: 100svh;
    min-height: 100svh;
    max-height: 100svh;
    overflow: hidden;
  }

  html.fullpage-active .section[data-scene] {
    padding-top: clamp(86px, 11vh, 125px);
    padding-bottom: clamp(28px, 5vh, 64px);
  }

  /* A antiga altura mínima de 860px fazia o formulário ser cortado. */
  html.fullpage-active .scene-snap-tall {
    min-height: 100svh;
    height: 100svh;
    overflow: hidden;
  }

  /* Coleção e ateliê */
  html.fullpage-active .editorial-intro,
  html.fullpage-active .craft-section {
    gap: clamp(42px, 7vw, 130px);
  }

  html.fullpage-active .intro-visual,
  html.fullpage-active .craft-image {
    height: min(72vh, 760px);
  }

  html.fullpage-active .intro-visual img,
  html.fullpage-active .craft-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  html.fullpage-active .intro-copy h2,
  html.fullpage-active .craft-copy h2 {
    font-size: clamp(3rem, min(5.2vw, 8.2vh), 6.1rem);
    margin-bottom: clamp(18px, 3vh, 32px);
  }

  /* Processo — agora é uma cena real e nunca é pulado */
  html.fullpage-active .process-section {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  html.fullpage-active .process-heading {
    margin-bottom: clamp(18px, 3.5vh, 48px);
  }

  html.fullpage-active .process-heading h2 {
    font-size: clamp(2.8rem, min(5vw, 7.4vh), 5.8rem);
  }

  html.fullpage-active .process-list li {
    grid-template-columns: clamp(58px, 6vw, 100px) minmax(250px, 1fr) minmax(280px, 1fr);
    gap: clamp(18px, 2vw, 30px);
    padding: clamp(12px, 2.05vh, 25px) 0;
  }

  html.fullpage-active .process-list span {
    font-size: clamp(1.8rem, 4.1vh, 2.8rem)
  }

  html.fullpage-active .process-list h3 {
    font-size: clamp(1.35rem, min(2.1vw, 3.2vh), 2.45rem);
    margin: 2px 0
  }

  html.fullpage-active .process-list p {
    font-size: clamp(.76rem, 1.35vh, .95rem);
    line-height: 1.5;
    margin: 5px 0
  }

  /* Manifesto ocupa exatamente uma tela */
  html.fullpage-active .statement-section {
    height: 100svh;
    min-height: 100svh;
    max-height: 100svh
  }

  /* Diferenciais — título e seis itens dentro de uma única tela */
  html.fullpage-active .benefits-section {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  html.fullpage-active .benefits-section .section-heading {
    margin-bottom: clamp(22px, 4vh, 52px);
  }

  html.fullpage-active .benefits-section .section-heading h2 {
    font-size: clamp(2.9rem, min(5.4vw, 7.8vh), 6rem);
    margin-bottom: 0;
  }

  html.fullpage-active .benefits-grid {
    flex: 0 1 auto
  }

  html.fullpage-active .benefits-grid div {
    min-height: clamp(105px, 17vh, 170px);
    padding: clamp(18px, 2.5vh, 30px);
  }

  html.fullpage-active .benefits-grid p {
    font-size: clamp(1.15rem, min(2vw, 3vh), 2rem)
  }

  /* Depoimento */
  html.fullpage-active .testimonial-aside,
  html.fullpage-active .testimonial-aside img {
    height: 100%
  }

  html.fullpage-active .testimonial-aside img {
    min-height: 0
  }

  html.fullpage-active .testimonial-content {
    padding: clamp(50px, 7vw, 120px)
  }

  html.fullpage-active .testimonial-slide blockquote {
    font-size: clamp(1.9rem, min(3.7vw, 5.8vh), 4.2rem);
    margin-bottom: clamp(22px, 4vh, 46px);
  }

  html.fullpage-active .testimonial-controls {
    margin-top: clamp(25px, 5vh, 60px)
  }

  /* Formulário — compactação fluida para 768p/800p sem amputar o botão */
  html.fullpage-active .form-section {
    align-items: center;
    gap: clamp(42px, 7vw, 120px);
  }

  html.fullpage-active .form-intro {
    position: static;
    align-self: center
  }

  html.fullpage-active .form-intro h2 {
    font-size: clamp(2.65rem, min(4.5vw, 6.8vh), 5.1rem);
    margin-bottom: clamp(16px, 2.5vh, 28px);
  }

  html.fullpage-active .form-intro small {
    margin-top: clamp(18px, 3vh, 34px)
  }

  html.fullpage-active .form-grid {
    gap: clamp(13px, 2.15vh, 28px) 26px
  }

  html.fullpage-active .field label:not(.checkbox-label) {
    margin-bottom: clamp(4px, .8vh, 10px)
  }

  html.fullpage-active .field input,
  html.fullpage-active .field select,
  html.fullpage-active .field textarea,
  html.fullpage-active .custom-select-trigger {
    padding: clamp(8px, 1.35vh, 13px) 2px
  }

  html.fullpage-active .field textarea {
    min-height: clamp(58px, 9vh, 95px);
    max-height: 12vh
  }

  html.fullpage-active .submit-button {
    margin-top: clamp(18px, 3vh, 36px)
  }

  html.fullpage-active .form-status {
    margin-top: 10px;
    min-height: 18px
  }

  /* FAQ — adicionada à sequência full-page */
  html.fullpage-active .faq-section {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  html.fullpage-active .faq-section .section-heading {
    margin-bottom: clamp(18px, 3.5vh, 44px);
  }

  html.fullpage-active .faq-section .section-heading h2 {
    font-size: clamp(2.8rem, min(5.3vw, 7.3vh), 5.9rem);
    margin-bottom: 0;
  }

  html.fullpage-active .faq-question {
    padding: clamp(14px, 2.2vh, 25px) 0;
    font-size: clamp(1.12rem, min(1.8vw, 2.7vh), 1.8rem);
  }

  html.fullpage-active .faq-answer p {
    margin-bottom: clamp(12px, 2vh, 24px);
    font-size: .88rem
  }

  /* Rodapé é a última cena, com começo e fim integralmente visíveis */
  html.fullpage-active .site-footer[data-scene] {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-top: clamp(105px, 15vh, 150px);
    padding-bottom: clamp(22px, 4vh, 38px);
  }

  html.fullpage-active .footer-top {
    gap: clamp(38px, 6vw, 90px);
    padding-bottom: clamp(18px, 3vh, 30px);
  }

  html.fullpage-active .footer-showcase {
    gap: clamp(18px, 3.2vw, 40px);
    padding-bottom: clamp(18px, 3vh, 28px);
  }

  html.fullpage-active .footer-media {
    min-height: clamp(170px, 24vh, 240px)
  }

  html.fullpage-active .footer-map-card {
    padding: clamp(16px, 2vw, 22px)
  }

  html.fullpage-active .footer-map-wrap {
    min-height: clamp(180px, 26vh, 250px)
  }

  html.fullpage-active .footer-map-wrap iframe {
    min-height: clamp(180px, 26vh, 250px)
  }

  html.fullpage-active .footer-brand img {
    width: clamp(180px, 15vw, 230px);
    margin-bottom: clamp(14px, 2.4vh, 24px)
  }

  html.fullpage-active .footer-bottom {
    padding-top: clamp(16px, 2.8vh, 28px)
  }
}

/* Notebooks baixos: preserva a composição inteira sem miniaturizar a interface. */
@media (min-width:821px) and (max-height:760px) and (prefers-reduced-motion:no-preference) {
  :root {
    --header-h: 68px
  }

  html.fullpage-active .section[data-scene] {
    padding-top: 76px;
    padding-bottom: 22px
  }

  html.fullpage-active .eyebrow {
    margin-bottom: 14px;
    font-size: .56rem
  }

  html.fullpage-active .intro-visual,
  html.fullpage-active .craft-image {
    height: 68vh
  }

  html.fullpage-active .intro-copy>p:not(.eyebrow),
  html.fullpage-active .craft-copy>p:not(.eyebrow),
  html.fullpage-active .form-intro>p:not(.eyebrow) {
    font-size: .86rem;
    line-height: 1.5
  }

  html.fullpage-active .text-link {
    margin-top: 18px
  }

  html.fullpage-active .process-heading {
    margin-bottom: 12px
  }

  html.fullpage-active .process-list li {
    padding: 9px 0
  }

  html.fullpage-active .benefits-section .section-heading {
    margin-bottom: 16px
  }

  html.fullpage-active .benefits-grid div {
    min-height: 96px;
    padding: 15px 20px
  }

  html.fullpage-active .testimonial-content {
    padding: 45px 7vw
  }

  html.fullpage-active .form-grid {
    gap: 9px 22px
  }

  html.fullpage-active .field-message {
    min-height: 13px;
    margin-top: 3px;
    font-size: .6rem
  }

  html.fullpage-active .field textarea {
    min-height: 52px;
    max-height: 60px
  }

  html.fullpage-active .checkbox-label {
    font-size: .66rem
  }

  html.fullpage-active .submit-button {
    margin-top: 12px;
    padding-top: 13px;
    padding-bottom: 13px
  }

  html.fullpage-active .faq-section .section-heading {
    margin-bottom: 12px
  }

  html.fullpage-active .faq-question {
    padding: 11px 0
  }

  html.fullpage-active .site-footer[data-scene] {
    padding-top: 88px;
    padding-bottom: 18px
  }

  html.fullpage-active .footer-top {
    padding-bottom: 16px
  }

  html.fullpage-active .footer-showcase {
    grid-template-columns: minmax(0, 1fr) minmax(280px, .9fr);
    padding-bottom: 16px
  }

  html.fullpage-active .footer-media {
    min-height: 150px
  }

  html.fullpage-active .footer-map-card {
    padding: 14px 16px
  }

  html.fullpage-active .footer-map-wrap {
    min-height: 150px
  }

  html.fullpage-active .footer-map-wrap iframe {
    min-height: 150px
  }
}


/* Telas largas e baixas (notebooks 1366×768, 1440×900). */
@media (min-width:821px) and (max-aspect-ratio:16/9) and (max-height:900px) {

  html.fullpage-active .editorial-intro,
  html.fullpage-active .craft-section {
    grid-template-columns: minmax(0, .9fr) minmax(330px, .82fr)
  }
}

/* CORREÇÃO DOS ÍCONES SOCIAIS DO FOOTER */
.footer-top .footer-social{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:22px;
}

.footer-top .footer-social .social-link{
  width:42px;
  height:42px;
  margin:0;
  padding:0;

  display:flex;
  align-items:center;
  justify-content:center;

  border:1px solid rgba(255,255,255,.22);
  border-radius:50%;
  background:transparent;
  color:rgba(255,255,255,.85);

  text-decoration:none;
  line-height:1;
  overflow:hidden;

  transition:
    transform .3s ease,
    background .3s ease,
    color .3s ease,
    border-color .3s ease;
}

.footer-top .footer-social .social-link svg{
  display:block;
  width:17px;
  height:17px;
  margin:0;
  padding:0;
  flex:none;
}

.footer-top .footer-social .social-link:hover{
  transform:translateY(-3px);
  color:#171113;
  background:#fff;
  border-color:#fff;
}

/* Remove a linha aplicada aos links comuns do footer */
.footer-top .footer-social .social-link::after{
  display:none;
}

/* ===== Consentimento e preferências de privacidade ===== */
body.consent-open{overflow:hidden}
.consent-layer{position:fixed;inset:0;z-index:10050;display:grid;place-items:end center;padding:clamp(14px,3vw,34px);opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s}
.consent-layer.is-visible{opacity:1;visibility:visible}
.consent-backdrop{position:absolute;inset:0;background:rgba(19,12,14,.66);backdrop-filter:blur(12px)}
.consent-card{position:relative;width:min(1120px,100%);max-height:min(88dvh,860px);overflow:auto;background:var(--paper);color:var(--deep);display:grid;grid-template-columns:minmax(210px,.5fr) minmax(360px,1.25fr);gap:clamp(26px,5vw,74px);padding:clamp(30px,5vw,70px);box-shadow:0 35px 120px rgba(0,0,0,.32);transform:translateY(36px);transition:transform .65s var(--ease);scrollbar-width:thin;scrollbar-color:var(--wine) var(--paper)}
.consent-layer.is-visible .consent-card{transform:none}
.consent-close{position:absolute;right:18px;top:12px;border:0;background:none;font-size:2rem;line-height:1;cursor:pointer;color:var(--deep)}
.consent-brand{border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:flex-end;padding-right:clamp(24px,4vw,55px)}
.consent-brand span{font-family:var(--serif);font-size:clamp(2rem,3vw,3.5rem);line-height:1}.consent-brand small{text-transform:uppercase;letter-spacing:.22em;font-size:.55rem;margin-top:12px;color:var(--muted)}
.consent-copy h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,4.5vw,5rem);line-height:1;margin:0 0 22px;max-width:14ch}.consent-copy>p:not(.eyebrow){color:var(--muted);max-width:64ch}.consent-policy-link{display:inline-block;margin-top:12px;border-bottom:1px solid currentColor;font-size:.72rem;text-transform:uppercase;letter-spacing:.13em}
.consent-preferences{grid-column:1/-1;border-top:1px solid var(--line);margin-top:4px}.consent-option{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);cursor:pointer}.consent-option strong{font-family:var(--serif);font-size:1.45rem;font-weight:400}.consent-option p{margin:4px 0 0;color:var(--muted);font-size:.82rem}.consent-required{font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.consent-switch{position:relative;width:48px;height:27px}.consent-switch input{position:absolute;opacity:0}.consent-switch i{position:absolute;inset:0;border-radius:999px;background:#cfc8bf;transition:.3s}.consent-switch i:after{content:'';position:absolute;width:21px;height:21px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 2px 7px rgba(0,0,0,.18);transition:.3s}.consent-switch input:checked+i{background:var(--wine)}.consent-switch input:checked+i:after{transform:translateX(21px)}.consent-switch input:focus-visible+i{outline:2px solid var(--wine);outline-offset:3px}
.consent-actions{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:4px}.consent-button,.consent-manage{border:1px solid var(--deep);background:transparent;color:var(--deep);padding:13px 18px;text-transform:uppercase;letter-spacing:.13em;font-size:.6rem;cursor:pointer;transition:.3s}.consent-button-primary{background:var(--deep);color:#fff}.consent-button:hover,.consent-manage:hover{transform:translateY(-1px)}.consent-manage{border-color:transparent;text-decoration:underline;text-underline-offset:4px}
.privacy-fab{position:fixed;right:18px;bottom:18px;z-index:900;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(36,24,27,.92);color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.18);cursor:pointer;display:grid;place-items:center}
.footer-privacy-link{color:inherit;font-size:inherit}


/* Vídeos editoriais locais */
.craft-video,
.statement-media,
.footer-video{position:relative;overflow:hidden;background:var(--deep)}
.craft-video video,
.statement-media video,
.footer-video video{display:block;width:100%;height:100%;object-fit:cover;object-position:center;border:0}
.craft-video video{aspect-ratio:4/3}
.footer-video video{min-height:220px}
.footer-video:after{pointer-events:none}
@media (max-width:820px){
  .craft-video video{aspect-ratio:4/5;min-height:0}
  .statement-media video{height:100%}
  .footer-video video{min-height:220px}
}
@media (max-width:600px){
  .footer-video video{min-height:180px}
}
@media (prefers-reduced-motion:reduce){
  .craft-video video,
  .statement-media video,
  .footer-video video{animation:none}
}

.statement-media{
  position:absolute;
  inset:0;
  overflow:hidden;
  z-index:0;
}

.statement-media #statementVideo{
  display:block;
  width:100%;
  height:125%;
  min-width:100%;
  min-height:125%;

  object-fit:cover;
  object-position:center;

  transform:translate3d(0,-22%,0) scale(1.04) !important;
  transform-origin:center center;
}

/* Dados comerciais, marcador da loja e crédito do rodapé */
.footer-phone{
  display:block!important;
  width:max-content;
  margin-top:8px!important;
  margin-bottom:2px;
}

.footer-map-wrap{
  isolation:isolate;
}

.map-store-badge{
  position:absolute;
  z-index:4;
  left:18px;
  bottom:18px;
  display:flex;
  align-items:center;
  gap:12px;
  max-width:min(390px,calc(100% - 36px));
  padding:12px 15px;
  color:#1c1517;
  background:rgba(250,248,243,.94);
  border:1px solid rgba(36,24,27,.14);
  box-shadow:0 14px 35px rgba(0,0,0,.2);
  backdrop-filter:blur(14px);
  transition:transform .3s var(--ease),background .3s var(--ease);
}
.map-store-badge:hover{transform:translateY(-2px);background:#fff}
.map-store-icon{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:var(--wine);
}
.map-store-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.map-store-badge strong{display:block;font-family:var(--serif);font-size:1rem;font-weight:400;line-height:1.1}
.map-store-badge small{display:block;margin-top:3px;color:var(--muted);font-size:.62rem;line-height:1.3}

.footer-bottom p{margin:0}
#cnpjText{display:inline-block;margin-left:7px;color:rgba(255,255,255,.72)}
.developer-credit{
  min-width:max-content;
  visibility:visible!important;
  opacity:1!important;
}
.developer-credit img{
  display:block!important;
  width:132px;
  height:auto;
  filter:none;
  opacity:1;
}
.developer-credit span{display:inline-block!important;color:rgba(255,255,255,.68)}

@media(max-width:820px){
  .map-store-badge{left:12px;right:12px;bottom:12px;max-width:none}
  .developer-credit{flex-wrap:wrap;gap:8px}
}


/* ==========================================================
   FOOTER FULL-PAGE DEFINITIVO
   Mantém informações, mídia/mapa e créditos dentro de 100svh.
   ========================================================== */
@media (min-width:821px) and (prefers-reduced-motion:no-preference){
  html.fullpage-active .site-footer[data-scene]{
    width:100%;
    height:100svh;
    min-height:100svh;
    max-height:100svh;
    display:grid;
    grid-template-rows:auto minmax(0,1fr) auto;
    align-content:stretch;
    gap:clamp(12px,1.8vh,22px);
    padding:clamp(74px,9.2vh,98px) clamp(24px,5vw,90px) clamp(14px,2vh,24px);
    overflow:hidden;
  }

  html.fullpage-active .site-footer[data-scene] .footer-top{
    display:grid;
    grid-template-columns:1.1fr .8fr .8fr;
    align-items:start;
    gap:clamp(34px,5vw,78px);
    padding:0;
    margin:0;
  }

  html.fullpage-active .site-footer[data-scene] .footer-brand img{
    width:clamp(170px,13vw,220px);
    margin-bottom:clamp(10px,1.6vh,18px);
  }

  html.fullpage-active .site-footer[data-scene] .footer-brand p,
  html.fullpage-active .site-footer[data-scene] .footer-top address,
  html.fullpage-active .site-footer[data-scene] #footerHours{
    margin-top:0;
    margin-bottom:0;
    line-height:1.45;
  }

  html.fullpage-active .site-footer[data-scene] .footer-label{
    margin-bottom:clamp(8px,1.2vh,14px);
  }

  html.fullpage-active .site-footer[data-scene] .footer-social{
    margin-top:clamp(10px,1.5vh,16px);
  }

  html.fullpage-active .site-footer[data-scene] .footer-showcase{
    width:100%;
    height:100%;
    min-height:0;
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);
    gap:clamp(16px,2.8vw,34px);
    padding:0;
    margin:0;
    overflow:hidden;
  }

  html.fullpage-active .site-footer[data-scene] .footer-media,
  html.fullpage-active .site-footer[data-scene] .footer-map-card{
    width:100%;
    height:100%;
    min-height:0;
    max-height:none;
    overflow:hidden;
  }

  html.fullpage-active .site-footer[data-scene] .footer-media img,
  html.fullpage-active .site-footer[data-scene] .footer-media video{
    display:block;
    width:100%;
    height:100%;
    min-height:0;
    object-fit:cover;
  }

  html.fullpage-active .site-footer[data-scene] .footer-map-card{
    padding:clamp(10px,1.4vw,18px);
  }

  html.fullpage-active .site-footer[data-scene] .footer-map-head{
    flex:0 0 auto;
  }

  html.fullpage-active .site-footer[data-scene] .footer-map-wrap{
    flex:1 1 auto;
    width:100%;
    height:auto;
    min-height:0;
    overflow:hidden;
  }

  html.fullpage-active .site-footer[data-scene] .footer-map-wrap iframe{
    display:block;
    width:100%;
    height:100%;
    min-height:0;
  }

  html.fullpage-active .site-footer[data-scene] .footer-bottom{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    align-items:center;
    gap:clamp(16px,2vw,28px);
    margin:0;
    padding-top:clamp(10px,1.5vh,18px);
    border-top:1px solid rgba(255,255,255,.12);
    min-height:0;
  }

  html.fullpage-active .site-footer[data-scene] .footer-bottom p{
    margin:0;
    white-space:normal;
  }

  html.fullpage-active .site-footer[data-scene] #cnpjText{
    display:inline;
    margin-left:7px;
  }

  html.fullpage-active .site-footer[data-scene] .developer-credit{
    display:inline-flex!important;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    min-width:max-content;
    visibility:visible!important;
    opacity:1!important;
  }

  html.fullpage-active .site-footer[data-scene] .developer-credit img{
    display:block!important;
    width:clamp(105px,8vw,132px);
    height:auto;
    opacity:1!important;
  }
}

/* Ajuste extra para notebooks baixos */
@media (min-width:821px) and (max-height:760px) and (prefers-reduced-motion:no-preference){
  html.fullpage-active .site-footer[data-scene]{
    gap:10px;
    padding:68px clamp(22px,4.5vw,76px) 12px;
  }

  html.fullpage-active .site-footer[data-scene] .footer-top{
    gap:30px;
  }

  html.fullpage-active .site-footer[data-scene] .footer-brand img{
    width:165px;
    margin-bottom:8px;
  }

  html.fullpage-active .site-footer[data-scene] .footer-brand p,
  html.fullpage-active .site-footer[data-scene] .footer-top address,
  html.fullpage-active .site-footer[data-scene] #footerHours,
  html.fullpage-active .site-footer[data-scene] .footer-phone,
  html.fullpage-active .site-footer[data-scene] #instagramLink{
    font-size:.72rem;
    line-height:1.35;
  }

  html.fullpage-active .site-footer[data-scene] .footer-social{
    margin-top:8px;
    gap:8px;
  }

  html.fullpage-active .site-footer[data-scene] .footer-social .social-link{
    width:34px;
    height:34px;
  }

  html.fullpage-active .site-footer[data-scene] .footer-showcase{
    gap:14px;
  }

  html.fullpage-active .site-footer[data-scene] .footer-map-card{
    padding:10px 12px;
  }

  html.fullpage-active .site-footer[data-scene] .footer-bottom{
    padding-top:9px;
    font-size:.58rem;
  }

  html.fullpage-active .site-footer[data-scene] .developer-credit img{
    width:102px;
  }
}
