:root {
  color-scheme: dark;
  --forest: #1b4636;
  --forest-deep: #102e26;
  --gold: #cdb896;
  --gold-light: #e5d6b9;
  --cream: #f1e9d9;
  --slide-width: clamp(275px, 79vw, 362px);
  --slide-height: clamp(505px, 73svh, 620px);
  --duration: 700ms;
}
*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; background: var(--forest-deep); overflow-x: hidden; }
body {
  margin: 0;
  min-height: 100svh;
  color: var(--cream);
  font-family: "Arial", "Helvetica Neue", sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
button:focus-visible, a:focus-visible { outline: 3px solid var(--gold-light); outline-offset: 3px; }
.scene-background {
  position: fixed;
  inset: 0;
  z-index: -2;
  background: linear-gradient(155deg, rgba(8,29,22,.78), rgba(8,25,19,.87) 65%, rgba(2,16,12,.94)), url("assets/ambiente-blur.webp") center / cover no-repeat;
  transform: translateZ(0);
}
.scene-grain {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 44%, rgba(164,144,95,.12), transparent 61%);
}
.site-shell {
  width: 100%;
  min-height: 100svh;
  margin-inline: auto;
  padding: 18px 15px max(14px, env(safe-area-inset-bottom));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.site-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: min(460px, 100%);
  min-height: 30px;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-size: 9px;
  font-weight: 700;
  color: var(--gold-light);
  white-space: nowrap;
}
.header-label span { color: rgba(244,239,220,.7); margin-left: 4px; }
.header-rule { height: 1px; flex: 1; background: linear-gradient(90deg, transparent, rgba(221,200,161,.48)); }
.header-rule:last-child { transform: rotate(180deg); }
.slider {
  position: relative;
  width: min(100%, 1260px);
  flex: 1;
  min-height: calc(var(--slide-height) + 12px);
  overflow: hidden;
  display: grid;
  place-items: center;
}
.slider-stage {
  position: relative;
  width: 100%;
  height: var(--slide-height);
  perspective: 1300px;
  touch-action: pan-y;
}
.slide {
  position: absolute;
  top: 0;
  left: 50%;
  width: var(--slide-width);
  height: var(--slide-height);
  margin-left: calc(var(--slide-width) / -2);
  border: 1px solid rgba(234,213,166,.22);
  border-radius: 10px;
  overflow: hidden;
  background: var(--forest-deep);
  backface-visibility: hidden;
  box-shadow: 0 28px 65px rgba(0,0,0,.37), 0 1px 0 rgba(246,229,197,.16) inset;
  transform-origin: center;
  transition: transform var(--duration) cubic-bezier(.2,.7,.15,1), opacity var(--duration) ease, filter var(--duration) ease;
  will-change: transform;
}
.slide.is-current { z-index: 5; transform: translateX(0) rotateY(0deg) scale(1); opacity: 1; filter: brightness(1); }
.slide.is-next { z-index: 2; transform: translateX(calc(var(--slide-width) * .79)) rotateY(-40deg) scale(.83); opacity: .68; filter: brightness(.68); }
.slide.is-previous { z-index: 2; transform: translateX(calc(var(--slide-width) * -.79)) rotateY(40deg) scale(.83); opacity: .68; filter: brightness(.68); }
.slide-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transform: perspective(1200px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));
  transition: transform 300ms ease-out;
  overflow: hidden;
}
.slide-home .slide-inner { display: grid; grid-template-rows: 43% 57%; }
.home-photo { position: relative; min-height: 0; overflow: hidden; background: #211a14; }
.home-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
.home-photo::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,rgba(5,19,15,.15), transparent 45%,rgba(16,46,38,.33)); }
.photo-topline { position: absolute; left: 17px; top: 18px; z-index: 1; color: #fff1d6; font-size: 9px; font-weight: 700; letter-spacing: .21em; text-shadow: 0 1px 4px rgba(0,0,0,.7); }
.home-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  padding: 13px 20px 18px;
  background: linear-gradient(160deg, #214c3a, #153a2e 58%, #113125);
  text-align: center;
  border-top: 1px solid rgba(205,184,150,.52);
}
.brand-logo { display:block; width: clamp(145px, 45%, 192px); height: auto; max-height: 112px; object-fit: contain; }
.brand-tagline { font-size: 12px; letter-spacing: .10em; font-weight: 400; margin: 0; color: var(--gold-light); }
.contact-links { width:100%; display:flex; flex-direction:column; gap: 7px; margin-top: 2px; }
.contact-link {
  display:grid;
  grid-template-columns: 23px 1fr 17px;
  align-items:center;
  gap: 7px;
  width: 100%;
  min-height: 42px;
  padding: 7px 12px;
  border: 1px solid rgba(205,184,150,.56);
  border-radius: 7px;
  color: var(--gold-light);
  background: rgba(8,31,22,.28);
  text-decoration: none;
  text-align: left;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .075em;
  transition: background-color 200ms, transform 120ms, border-color 200ms;
}
.contact-link--primary { background: var(--gold); color: #17382d; border-color: var(--gold); }
.contact-link svg { width:21px; height:21px; }
.contact-link .link-arrow { width:16px; height:16px; justify-self:end; }
.contact-link:hover { background: rgba(205,184,150,.16); border-color: var(--gold-light); }
.contact-link--primary:hover { background: #e3cea9; }
.contact-link:active { transform: scale(.985); }
.service-photo { width: 100%; height: 100%; object-fit: cover; object-position: center center; display:block; }
.beard-photo { object-position: 47% 29%; }
.slide-service .slide-inner::before { content: ""; position:absolute; inset:0; z-index:1; pointer-events:none; background: linear-gradient(180deg, rgba(7,26,19,.47), transparent 28%, transparent 38%, rgba(6,22,17,.65) 64%, rgba(4,18,13,.94)); }
.service-top { position:absolute; inset: 20px 17px auto; display:flex; justify-content:space-between; gap:12px; z-index:2; color: #fff0d9; text-shadow:0 1px 3px #111; font-size:9px; letter-spacing:.14em; font-weight:700; }
.service-copy { position:absolute; bottom:0; left:0; right:0; padding: 23px 23px 36px; z-index:2; text-align:left; }
.service-overline { font-size:10px; font-weight:700; letter-spacing:.18em; color: var(--gold-light); }
.service-copy h2 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(58px, 14vw, 83px); font-weight:500; letter-spacing:-.065em; line-height:1.12; margin: 7px 0 3px; color:#fff7e8; }
.gold-period { color: var(--gold); }
.service-copy p { font-size:14px; line-height:1.55; margin:8px 0 19px; color:#f7f0e3; max-width:280px; }
.service-stroke { display:block; width: 52px; height: 2px; background: var(--gold); }
.slide-controls { display:flex; align-items:center; justify-content:space-between; width: min(290px,80%); margin: 2px auto; gap:20px; }
.arrow-button { flex:none; width:44px; height:44px; display:grid; place-items:center; border-radius:50%; border: 1px solid rgba(225,204,160,.5); background: rgba(11,37,28,.65); color: var(--gold-light); cursor:pointer; transition: background-color 180ms, transform 150ms; }
.arrow-button:hover { background: rgba(188,163,121,.22); }
.arrow-button:active { transform:scale(.94); }
.arrow-button svg { width: 21px; height: 21px; }
.slide-dots { display:flex; align-items:center; justify-content:center; gap:10px; }
.dot { width: 8px; height:8px; padding:0; border-radius:10px; border:1px solid rgba(218,194,148,.9); background:transparent; cursor:pointer; transition: width 240ms, background-color 240ms; }
.dot.is-active { width:28px; background:var(--gold); }
.site-footer { display:flex; align-items:center; gap:13px; min-height:26px; color:rgba(220,202,165,.75); font-size: 9px; font-weight:700; letter-spacing:.14em; }
.footer-separator { font-size: 12px; color:var(--gold); }
@media(min-width:750px) {
  :root { --slide-width: clamp(340px, 29vw, 425px); --slide-height: clamp(570px, 72svh, 680px); }
  .site-shell { padding-top: 26px; padding-bottom: 18px; }
  .site-header { font-size: 11px; }
  .slide.is-next { transform: translateX(calc(var(--slide-width) * 1.0)) rotateY(-37deg) scale(.85); }
  .slide.is-previous { transform: translateX(calc(var(--slide-width) * -1.0)) rotateY(37deg) scale(.85); }
  .home-content { padding: 18px 28px 26px; }
  .brand-logo { width: 195px; max-height: 123px; }
  .contact-link { min-height:45px; padding: 8px 15px; }
  .contact-links { gap: 9px; }
  .slide-controls { width: min(290px, 100%); }
}
@media(max-width:374px) {
  :root { --slide-width: 82vw; --slide-height: 505px; }
  .site-shell { padding: 11px 10px; gap:6px; }
  .home-content { padding:11px 12px 14px; }
  .brand-logo { width:145px; }
  .contact-link { min-height:41px; }
  .brand-tagline {font-size:11px;}
  .service-copy { padding: 18px 18px 25px; }
}
@media(max-height:680px) and (max-width:749px) {
  .site-shell { justify-content:flex-start; }
  .slider { flex: 0 0 auto; }
  .slide-controls { margin-top: 1px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; }
}
