:root {
  --ink: #111210;
  --night: #171714;
  --paper: #f2eee5;
  --stone: #d8d0c1;
  --gold: #b3976b;
  --gold-light: #d4b98e;
  --muted: #716d64;
  --line: rgba(17, 18, 16, .16);
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--paper); color: var(--ink); font-family: var(--sans); }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
::selection { background: var(--gold); color: var(--ink); }

.page-loader { position: fixed; z-index: 20; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; background: var(--night); color: var(--paper); animation: loader-out .8s 1.1s cubic-bezier(.76,0,.24,1) forwards; pointer-events: none; }
.loader-mark { display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid var(--gold); border-radius: 50%; font: 2rem var(--serif); animation: loader-pulse 1s ease-in-out infinite alternate; }
.loader-line { width: 80px; height: 1px; background: var(--gold); transform-origin: left; animation: loader-grow .9s ease-out forwards; }.page-loader small { color: var(--gold-light); font-size: .58rem; font-weight: 700; letter-spacing: .28em; }
@keyframes loader-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } } @keyframes loader-pulse { to { transform: scale(.93); opacity: .66; } } @keyframes loader-out { to { transform: translateY(-100%); visibility: hidden; } }

.cursor-dot,.cursor-ring { display: none; position: fixed; left: 0; top: 0; z-index: 30; pointer-events: none; border-radius: 50%; }.cursor-dot { width: 5px; height: 5px; margin: -2px 0 0 -2px; background: var(--gold-light); }.cursor-ring { width: 28px; height: 28px; margin: -14px 0 0 -14px; border: 1px solid rgba(179,151,107,.65); transition: width .2s ease, height .2s ease, border-color .2s ease; }.cursor-active .cursor-ring { width: 44px; height: 44px; margin: -22px 0 0 -22px; border-color: var(--gold-light); }
@media (pointer: fine) { .cursor-dot,.cursor-ring { display: block; } body, a, button { cursor: none; } }

.announcement { position: relative; z-index: 5; padding: 10px 20px; background: var(--night); color: #ebe2d4; text-align: center; font-size: .61rem; font-weight: 500; letter-spacing: .17em; text-transform: uppercase; }.announcement strong { color: var(--gold-light); font-weight: 700; }
.topbar { position: sticky; top: 0; z-index: 4; display: flex; height: 88px; align-items: center; justify-content: space-between; padding: 0 clamp(24px,5vw,76px); border-bottom: 1px solid rgba(242,238,229,.16); background: rgba(17,18,16,.88); color: var(--paper); backdrop-filter: blur(12px); }.brand { display: flex; align-items: center; gap: 10px; font-size: .86rem; font-weight: 700; letter-spacing: .12em; white-space: nowrap; }.brand em { color: var(--gold-light); font-style: normal; font-weight: 500; }.brand-mark { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-family: var(--serif); font-size: 1rem; letter-spacing: 0; }
nav { display: flex; gap: clamp(16px,2.6vw,38px); font-size: .67rem; font-weight: 500; letter-spacing: .11em; text-transform: uppercase; } nav a { position: relative; opacity: .86; }nav a:after { position: absolute; bottom: -6px; left: 0; width: 0; height: 1px; background: var(--gold-light); content: ""; transition: width .28s ease; }nav a:hover { color: var(--gold-light); opacity: 1; }nav a:hover:after { width: 100%; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 17px; min-height: 51px; padding: 16px 22px; border: 1px solid var(--gold); background: var(--gold); color: var(--ink); cursor: pointer; font-size: .67rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; transition: background .25s ease,color .25s ease,border .25s ease; }.button:hover { border-color: var(--gold-light); background: transparent; color: var(--gold-light); }.button span { font-size: 1rem; line-height: 0; }.button-small { min-height: 40px; padding: 10px 15px; font-size: .61rem; }

.hero { position: relative; display: grid; min-height: min(810px,calc(100vh - 32px)); grid-template-columns: 1.01fr .99fr; overflow: hidden; background: var(--night); color: var(--paper); }.hero-content { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: center; padding: clamp(75px,9vw,145px) clamp(24px,8vw,130px) clamp(82px,8vw,120px); background: radial-gradient(circle at 20% 60%, rgba(179,151,107,.12), transparent 38%),var(--night); }.hero-content:before { position: absolute; top: 11%; right: -2px; bottom: 10%; width: 1px; background: linear-gradient(transparent,var(--gold),transparent); content: ""; opacity: .72; }.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 23px; color: var(--gold-light); font-size: .62rem; font-weight: 700; letter-spacing: .2em; }.eyebrow span { width: 29px; height: 1px; background: currentColor; }h1,h2,h3,p { margin-top: 0; }h1,h2 { font-family: var(--serif); font-weight: 600; letter-spacing: -.048em; line-height: .96; }h1 { margin-bottom: 29px; font-size: clamp(3.3rem,6.6vw,6.8rem); }h1 i,h2 i { color: var(--gold-light); font-weight: 600; }.hero-copy { max-width: 408px; color: #c9c2b4; font-size: .98rem; line-height: 1.75; }.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 29px; margin-top: 29px; }.text-link { display: inline-block; padding-bottom: 5px; border-bottom: 1px solid currentColor; color: inherit; font-size: .66rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; transition: color .2s ease; }.text-link:hover { color: var(--gold); }.hero-art { position: relative; min-height: 460px; overflow: hidden; background: #0c0d0c; }.hero-art img { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.055); animation: photo-settle 1.8s .35s cubic-bezier(.22,1,.36,1) both; }.photo-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(17,18,16,.6),transparent 31%),linear-gradient(0deg,rgba(17,18,16,.35),transparent 37%); }.art-label { position: absolute; color: #eee1cb; font-size: .54rem; font-weight: 600; letter-spacing: .19em; }.art-label-top { top: 8%; left: 10%; }.art-label-bottom { bottom: 8%; left: 10%; }.art-label-side { right: 7%; bottom: 8%; writing-mode: vertical-rl; transform: rotate(180deg); color: var(--gold-light); line-height: 1.8; }.hero-scroll { position: absolute; z-index: 2; bottom: 33px; left: clamp(24px,8vw,130px); display: flex; gap: 11px; align-items: center; color: #c6bda9; font-size: .57rem; font-weight: 700; letter-spacing: .17em; }.hero-scroll span { width: 32px; height: 1px; background: var(--gold); }.hero-scroll:hover { color: var(--gold-light); }@keyframes photo-settle { from { transform: scale(1.15); filter: brightness(.7); } to { transform: scale(1.055); filter: brightness(1); } }

.signature-strip { display: flex; align-items: center; gap: 26px; overflow: hidden; padding: 16px 0; background: var(--gold); color: var(--ink); white-space: nowrap; font-size: .63rem; font-weight: 700; letter-spacing: .2em; text-indent: -55px; }.signature-strip i { font-size: .7rem; font-style: normal; }
.intro { display: grid; grid-template-columns: .55fr 1.45fr; gap: 10vw; padding: clamp(83px,11vw,165px) clamp(24px,8vw,130px); background: var(--paper); }.intro .eyebrow { align-self: start; color: var(--gold); }.intro h2,.section-heading h2,.process h2,.booking h2,.private-standard h2 { margin-bottom: 25px; font-size: clamp(2.5rem,4.1vw,4.8rem); }.intro div p { max-width: 550px; color: var(--muted); font-size: .98rem; line-height: 1.8; }

.private-standard { display: grid; grid-template-columns: .28fr 1fr .82fr; gap: clamp(31px,6vw,100px); align-items: stretch; padding: clamp(64px,8vw,110px) clamp(24px,8vw,130px); background: #292a24; color: var(--paper); }.standard-number { align-self: start; color: var(--gold-light); font: 600 clamp(3.5rem,7vw,7.8rem)/.75 var(--serif); }.standard-copy { max-width: 540px; }.standard-copy h2 { font-size: clamp(2.45rem,3.8vw,4.1rem); }.standard-copy > p:not(.eyebrow) { color: #c8c1b3; font-size: .92rem; line-height: 1.75; }.standard-copy .text-link { margin-top: 17px; color: var(--gold-light); }.standard-quote { display: flex; flex-direction: column; justify-content: center; padding: 27px 0 27px clamp(26px,4vw,63px); border-left: 1px solid rgba(242,238,229,.2); }.standard-quote span { margin-bottom: 3px; color: var(--gold); font: 5rem/.5 var(--serif); }.standard-quote p { margin: 22px 0; font: italic 600 clamp(1.25rem,2vw,2rem)/1.25 var(--serif); letter-spacing: -.028em; }.standard-quote small { color: var(--gold-light); font-size: .57rem; font-weight: 700; letter-spacing: .15em; }

.services { padding: clamp(70px,8vw,115px) clamp(24px,5vw,76px); background: #e3dacb; }.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 44px; padding: 0 clamp(0px,3.2vw,50px); }.section-heading .eyebrow { color: #71614a; }.section-heading h2 { margin-bottom: 0; }.section-heading > p { max-width: 275px; margin-bottom: 7px; color: #6c655b; font-size: .83rem; line-height: 1.65; }.service-grid { display: grid; grid-template-columns: repeat(3,1fr); }.service-card { display: flex; min-height: 380px; flex-direction: column; padding: 35px; border: 1px solid rgba(17,18,16,.2); margin: -1px 0 0 -1px; transition: background .35s cubic-bezier(.22,1,.36,1),color .35s; }.service-card:hover { background: var(--ink); color: var(--paper); }.service-card > span { color: var(--gold); font: 600 1.1rem var(--serif); }.service-card h3 { margin: auto 0 13px; font: 600 clamp(1.7rem,2.4vw,2.5rem)/1.05 var(--serif); letter-spacing: -.035em; }.service-card p:not(.card-kicker) { max-width: 275px; color: #666057; font-size: .86rem; line-height: 1.7; transition: color .35s; }.service-card:hover p:not(.card-kicker) { color: #ccc3b4; }.service-card.featured { background: var(--ink); color: var(--paper); }.featured > span,.featured .card-kicker { color: var(--gold-light); }.featured p:not(.card-kicker) { color: #cac1b2; }.featured:hover { background: #3a3329; }.card-kicker { margin: 22px 0 auto; color: #6a6257; font-size: .6rem; font-weight: 700; letter-spacing: .16em; }.service-select { width: fit-content; margin-top: 19px; padding: 0 0 5px; border: 0; border-bottom: 1px solid currentColor; background: none; color: inherit; cursor: pointer; font-size: .64rem; font-weight: 700; letter-spacing: .13em; text-align: left; text-transform: uppercase; }.service-select b { margin-left: 8px; font-size: .95rem; }

.process { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(50px,12vw,190px); padding: clamp(84px,10vw,150px) clamp(24px,8vw,130px); background: var(--paper); }.process h2 { margin-bottom: 0; }.process ol { margin: 0; padding: 0; list-style: none; }.process li { display: grid; grid-template-columns: 45px 1fr; gap: 17px; margin-bottom: 28px; padding: 0 0 31px; border-bottom: 1px solid var(--line); }.process li span { color: var(--gold); font: 600 1.2rem var(--serif); }.process h3 { margin-bottom: 8px; font: 600 1.25rem var(--serif); }.process li p { max-width: 380px; margin-bottom: 0; color: var(--muted); font-size: .88rem; line-height: 1.65; }

.booking { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(50px,9vw,140px); padding: clamp(76px,9vw,136px) clamp(24px,8vw,130px); background: #c3a373; color: var(--ink); }.booking .eyebrow { color: #4c3c25; }.booking h2 { margin-bottom: 27px; }.booking h2 i { color: #f2e8d9; }.booking-copy > p:not(.eyebrow) { max-width: 390px; color: #514332; font-size: .9rem; line-height: 1.75; }.booking-note { margin-top: 36px; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.booking-note span { margin-right: 7px; color: #f4ddaf; }.booking-form { display: grid; align-content: start; gap: 16px; }.booking-form label { display: grid; gap: 8px; color: #4d3e2d; font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.booking-form input,.booking-form select,.booking-form textarea { width: 100%; padding: 14px; border: 1px solid rgba(17,18,16,.12); border-radius: 0; outline-color: var(--ink); background: rgba(247,242,233,.78); color: var(--ink); font-size: .88rem; font-weight: 400; letter-spacing: 0; text-transform: none; transition: background .2s,border .2s; }.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus { border-color: var(--ink); background: #f9f4eb; }.booking-form textarea { resize: vertical; }.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }.optional { font-weight: 400; letter-spacing: .02em; text-transform: none; }.form-submit { width: 100%; margin-top: 6px; border-color: var(--ink); background: var(--ink); color: var(--paper); }.form-submit:hover { background: transparent; color: var(--ink); }.form-privacy { color: #5d4c37; font-size: .67rem; line-height: 1.5; text-align: center; }

footer { display: grid; grid-template-columns: 1fr 1.4fr auto; gap: 30px; align-items: start; padding: 46px clamp(24px,8vw,130px) 25px; background: var(--night); color: #e6ded0; }footer p { max-width: 310px; margin: 4px 0 0; color: #aaa395; font-size: .76rem; line-height: 1.55; }.footer-links { display: flex; gap: 19px; font-size: .65rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }.footer-links a:hover { color: var(--gold-light); }footer small { grid-column: 1/-1; margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(246,242,233,.12); color: #8b867b; font-size: .6rem; }

[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1); }[data-reveal].is-visible { opacity: 1; transform: none; }.service-card[data-reveal]:nth-child(2) { transition-delay: .1s; }.service-card[data-reveal]:nth-child(3) { transition-delay: .2s; }
@media (max-width: 760px) { .topbar { height: 70px; }.topbar nav { display: none; }.announcement { font-size: .54rem; }.hero { min-height: auto; grid-template-columns: 1fr; }.hero-content { min-height: 520px; }.hero-content:before { display: none; }.hero-art { min-height: 430px; }.hero-scroll { display: none; }.signature-strip { gap: 19px; padding: 14px 0; font-size: .55rem; }.intro,.private-standard,.process,.booking { grid-template-columns: 1fr; gap: 36px; }.private-standard { padding-top: 70px; }.standard-number { font-size: 5rem; }.standard-quote { padding: 25px 0 0; border-top: 1px solid rgba(242,238,229,.2); border-left: 0; }.section-heading { display: block; }.section-heading > p { margin: 16px 0 0; }.service-grid { grid-template-columns: 1fr; }.service-card { min-height: 267px; }.service-card h3 { margin-top: auto; }.form-row { grid-template-columns: 1fr; gap: 16px; }footer { grid-template-columns: 1fr; gap: 16px; }.footer-links { grid-row: 3; } }
@media (max-width: 380px) { .brand { font-size: .72rem; }.brand-mark { width: 25px; height: 25px; }.button-small { min-height: 37px; padding: 8px 10px; }.hero-actions { gap: 17px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; }.page-loader { display: none; }.hero-art img { animation: none; }[data-reveal] { opacity: 1; transform: none; transition: none; }* { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
.booking-portal-card { position: relative; overflow: hidden; padding: 34px; background: rgba(247,242,233,.78); box-shadow: 0 17px 45px rgba(71,47,16,.12); }.booking-portal-card:after { position: absolute; inset: 12px; border: 1px solid rgba(17,18,16,.13); content: ""; pointer-events: none; }.portal-orbit { position: absolute; top: -47px; right: -27px; display: grid; width: 135px; height: 135px; place-items: center; border: 1px solid rgba(179,151,107,.45); border-radius: 50%; color: rgba(179,151,107,.36); font: 6rem var(--serif); }.portal-label { position: relative; z-index: 1; margin-bottom: 27px; color: #72572e; font-size: .6rem; font-weight: 700; letter-spacing: .17em; }.booking-portal-card h3 { position: relative; z-index: 1; max-width: 305px; margin-bottom: 30px; font: 600 2.15rem/1.06 var(--serif); letter-spacing: -.045em; }.booking-portal-card ul { position: relative; z-index: 1; margin: 0 0 30px; padding: 0; list-style: none; }.booking-portal-card li { display: flex; gap: 12px; align-items: baseline; padding: 12px 0; border-top: 1px solid rgba(17,18,16,.14); color: #594c3b; font-size: .78rem; }.booking-portal-card li span { color: var(--gold); font: 1rem var(--serif); }.booking-portal-card .form-privacy { position: relative; z-index: 1; }

/* Portfolio de cortes: as três imagens podem ser substituídas em assets/cuts/. */
.cut-gallery { padding:clamp(75px,9vw,130px) clamp(24px,7vw,118px); background:#1f201b; color:var(--paper); }.gallery-heading { display:flex; align-items:end; justify-content:space-between; gap:44px; margin-bottom:clamp(37px,5vw,69px); }.gallery-heading .eyebrow { color:var(--gold-light); }.gallery-heading h2 { margin:0; font-size:clamp(2.7rem,4.8vw,5.25rem); line-height:.92; }.gallery-heading h2 i { color:var(--gold); }.gallery-heading > p { max-width:340px; margin:0 0 6px; color:#bbb3a5; font-size:.83rem; line-height:1.75; }.cut-grid { display:grid; grid-template-columns:1.18fr .91fr .91fr; gap:clamp(13px,2.3vw,27px); align-items:start; }.cut-card { min-width:0; background:#292a24; box-shadow:0 23px 55px rgba(0,0,0,.14); transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s; }.cut-card:nth-child(2) { margin-top:clamp(22px,5vw,74px); }.cut-card:nth-child(3) { margin-top:clamp(5px,1vw,17px); }.cut-card:hover { transform:translateY(-10px); box-shadow:0 32px 70px rgba(0,0,0,.28); }.cut-photo { position:relative; isolation:isolate; aspect-ratio:3/4; overflow:hidden; background-color:#4a4337; background-position:center; background-size:cover; }.cut-card-main .cut-photo { aspect-ratio:4/5; }.cut-photo:before { position:absolute; inset:13px; z-index:-1; border:1px solid rgba(242,238,229,.42); content:""; }.cut-photo:after { position:absolute; right:-7px; bottom:-28px; z-index:-1; color:rgba(246,242,234,.16); content:"K"; font:clamp(8rem,16vw,15rem)/1 var(--serif); }.cut-photo-one { background-image:linear-gradient(145deg,rgba(26,28,24,.22),rgba(126,94,48,.58)),url("assets/cuts/cut-01.jpg"),linear-gradient(135deg,#766044,#242621); }.cut-photo-two { background-image:linear-gradient(160deg,rgba(28,29,24,.12),rgba(142,111,67,.57)),url("assets/cuts/cut-02.jpg"),linear-gradient(135deg,#9e8155,#292a25); }.cut-photo-three { background-image:linear-gradient(150deg,rgba(24,25,21,.18),rgba(82,59,32,.6)),url("assets/cuts/cut-03.jpg"),linear-gradient(135deg,#494c40,#8a6a42); }.cut-card-caption { display:grid; grid-template-columns:auto 1fr; gap:14px; padding:18px 19px 20px; }.cut-card-caption > span { color:var(--gold-light); font:1rem var(--serif); }.cut-card-caption h3 { margin:0 0 5px; font:600 clamp(1.13rem,1.8vw,1.6rem)/1.05 var(--serif); letter-spacing:-.035em; }.cut-card-caption p { margin:0; color:#bbb3a5; font-size:.69rem; line-height:1.5; }.cut-card-caption small { grid-column:1/-1; padding-top:12px; border-top:1px solid rgba(246,242,233,.14); color:#8e8779; font-size:.51rem; font-weight:700; letter-spacing:.16em; }.gallery-note { display:flex; gap:9px; align-items:center; margin:31px 0 0; color:#a8a094; font-size:.66rem; letter-spacing:.03em; }.gallery-note span { color:var(--gold-light); }.cut-card[data-reveal]:nth-child(2) { transition-delay:.1s; }.cut-card[data-reveal]:nth-child(3) { transition-delay:.2s; }
@media (max-width:760px) { .gallery-heading { display:block; }.gallery-heading > p { margin-top:19px; }.cut-grid { grid-template-columns:1fr; gap:19px; }.cut-card:nth-child(2),.cut-card:nth-child(3) { margin-top:0; }.cut-photo,.cut-card-main .cut-photo { aspect-ratio:5/4; }.cut-card-caption { padding:17px; } }
