@font-face{
font-family:'Inter'; font-style:normal; font-weight:300 500;
font-display:swap;
src:url('../fonts/inter-var-latin.woff2') format('woff2');
unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
font-family:'Playfair Display'; font-style:normal; font-weight:400 500;
font-display:swap;
src:url('../fonts/playfair-var-latin.woff2') format('woff2');
unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
font-family:'Playfair Display'; font-style:italic; font-weight:500;
font-display:swap;
src:url('../fonts/playfair-italic-latin.woff2') format('woff2');
unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
:root{
--bg:            #ede5e0;
--bg-alt:        #e4dad3;
--surface:       #f7f2ee;
--surface-2:     #efe6de;
--line:          rgba(49,42,34,.12);
--line-strong:   rgba(255,255,255,.22);
--text:          #312a22;
--text-soft:     #5c5044;
--text-mute:     #695a4a;
--heading:       #745a44;
--hero-bg:        #35322b;
--hero-bg-deep:   var(--bg);
--hero-text:      #312a22;
--hero-ink:       #fff;
--hero-ink-soft:  rgba(241,233,224,1);
--hero-ink-mute:  rgba(241,233,224,.52);
--gold:          #c9a55c;
--gold-soft:     #e0c68d;
--gold-deep:     #735c2a;
--stone:         #6f6a63;
--crystal:       #9fb3bd;
--wrap:          1180px;
--r:             14px;
--r-lg:          22px;
--ease:          cubic-bezier(.22,.7,.28,1);
--ease-out:      cubic-bezier(.16,.84,.44,1);
--t-fast:        .22s;
--t-med:         .38s;
--t-slow:        .6s;
--serif:         'Playfair Display', Georgia, 'Times New Roman', serif;
--sans:          'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
*,*::before,*::after{ box-sizing:border-box; }
html{
scroll-behavior:smooth;
scroll-padding-top:84px;
-webkit-text-size-adjust:100%;
}
html.js-smooth{ scroll-behavior:auto; }
body{
margin:0;
background:var(--bg);
color:var(--text);
font-family:var(--sans);
font-size:16.5px;
line-height:1.7;
font-weight:300;
overflow-x:hidden;
-webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul,ol{ margin:0; padding:0; list-style:none; }
button,input,select,textarea{ font:inherit; color:inherit; }
.skip-link{
position:absolute; left:-9999px; top:0; z-index:200;
background:var(--gold); color:#111; padding:.7rem 1.2rem; border-radius:0 0 var(--r) 0;
}
.skip-link:focus{ left:0; }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:4px; }
.wrap{ width:min(100% - 2.5rem, var(--wrap)); margin-inline:auto; }
.section{ padding:clamp(4.5rem, 9vw, 8rem) 0; }
.section-alt{ background:var(--bg-alt); border-block:1px solid var(--line); }
.center{ text-align:center; }
.grid-2{
display:grid; gap:clamp(2.5rem, 6vw, 5rem);
grid-template-columns:1fr;
align-items:start;
}
@media (min-width:900px){ .grid-2{ grid-template-columns:1fr 1fr; } }
.eyebrow{
margin:0 0 1rem;
font-size:.72rem; letter-spacing:.28em; text-transform:uppercase;
color:var(--gold-deep); font-weight:500;
}
h2, h3{ color:var(--heading); }
.h2{
font-family:var(--serif);
font-size:clamp(1.95rem, 4.2vw, 3rem);
line-height:1.2; font-weight:400; letter-spacing:-.01em;
margin:0 0 1.5rem;
}
.lead{ color:var(--text); font-size:1.08rem; margin:0 0 1.3rem; }
.lead.center{ max-width:48ch; margin-inline:auto; }
p{ margin:0 0 1.3rem; color:var(--text); }
strong{ color:var(--text); font-weight:500; }
code{
font-family:ui-monospace, 'Cascadia Code', Consolas, monospace;
font-size:.85em; color:var(--gold-deep);
}
.section-head{ text-align:center; margin-bottom:clamp(3rem,6vw,4.5rem); }
.link-arrow{
display:inline-flex; align-items:center; gap:.6rem;
color:var(--gold-deep); font-size:.9rem; letter-spacing:.06em; text-transform:uppercase;
border-bottom:1px solid rgba(201,165,92,.35); padding-bottom:.35rem;
transition:gap .3s var(--ease), border-color .3s var(--ease);
}
.link-arrow::after{ content:'→'; }
.link-arrow:hover{ gap:1rem; border-color:var(--gold); }
.btn{
display:inline-flex; align-items:center; justify-content:center; gap:6px;
padding:1rem 1.9rem; border-radius:999px; border:1px solid transparent; line-height: 1;
font-size:.86rem; letter-spacing:0em; text-transform:uppercase; font-weight:500;
cursor:pointer; transition:all .35s var(--ease);
}
.btn-solid{
background:linear-gradient(135deg, var(--gold-soft), var(--gold));
color:#171512; box-shadow:0 8px 26px rgba(201,165,92,.22);
}
.btn-solid:hover{ transform:translateY(-2px); box-shadow:0 14px 34px rgba(201,165,92,.34); }
.btn-ghost{ border-color:var(--line-strong); color:var(--text); background:transparent; }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold-deep); transform:translateY(-2px); }
.btn-sm{ padding:1rem 1.2rem; font-size:.74rem; }
.btn-lg{ padding:1.3rem 3rem; font-size:1rem; letter-spacing:.13em; }
.btn-block{ width:100%; }
.site-header{
position:fixed; inset:0 0 auto 0; z-index:100;
background:#fff;
border-bottom:1px solid var(--line);
--header-h:70px;
transition:box-shadow .4s var(--ease);
}
.site-header.scrolled{
box-shadow:0 6px 22px rgba(49,42,34,.08);
--header-h:56px;
}
.header-inner{
display:flex; align-items:center;
min-height:var(--header-h); gap:1.25rem;
transition:min-height .4s var(--ease);
}
.brand{ display:flex; align-items:center; flex:0 0 auto; }
.brand-logo{ width:auto; display:block; }
.brand-logo-desktop{ height:40px; }
.brand-logo-mobile{ display:none; height:40px; }
.site-header.scrolled .brand-logo-desktop{ height:32px; }
.nav{
display:flex; align-items:center; justify-content:center;
flex:1 1 auto; gap:1.6rem; min-width:0;
}
.nav > a:not(.btn){
font-size:.82rem; letter-spacing:.08em; text-transform:uppercase;
color:var(--text-soft); position:relative; padding:.3rem 0;
transition:color .3s var(--ease);
white-space:nowrap;
}
.nav > a:not(.btn)::after{
content:''; position:absolute; left:0; bottom:0; height:1px; width:0;
background:var(--gold); transition:width .35s var(--ease);
}
.nav > a:not(.btn):hover{ color:var(--text); }
.nav > a:not(.btn):hover::after{ width:100%; }
.header-actions{
display:flex; align-items:center; gap:1rem;
flex:0 0 auto; margin-left:auto;
}
.social-ico{
display:grid; place-items:center;
width:24px; height:24px; border-radius:50%;
border:1px solid transparent;
color:var(--text-soft); background:transparent;
transition:color var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out);
}
.social-ico svg{ width:20px; height:20px; }
.social-ico:hover{ color:var(--gold-deep);}
.social-ico{ width:32px; height:32px; }
.social-ico svg{ width:18px; height:18px; }
.burger{
display:none; place-items:center; background:none; border:0; cursor:pointer;
width:40px; height:40px; border-radius:50%; color:var(--text);
flex:0 0 auto;
transition:border-color var(--t-fast) var(--ease-out);
}
.burger svg{ width:32px; height:32px; }
.burger-icon-close{ display:none; }
.burger.open .burger-icon-open{ display:none; }
.burger.open .burger-icon-close{ display:block; }
.lang-flags{ display:flex; align-items:center; gap:.15rem; flex:0 0 auto; }
.lang-flag{
display:block; width:40px; height:30px;
flex:0 0 auto; opacity:.25;
transition:opacity var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out);
}
.lang-flag img{max-height:26px;width:auto;}
.lang-flag.is-active{ opacity:1; }
.lang-flag:hover{ opacity:.8; }
.lang-flag.is-active:hover{ opacity:1;  }
@media (max-width:920px){
.burger{ display:grid; }
.brand-logo-desktop{ display:none; }
.brand-logo-mobile{ display:block; height:52px; }
.site-header.scrolled .brand-logo-mobile{ height:42px; }
.nav{
position:fixed; inset:var(--header-h) 0 auto 0;
flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:0;
background:#fff;
border-bottom:1px solid var(--line);
padding:1rem 1.25rem 2rem; max-height:75vh; overflow-y:auto;
transform:translateY(-100%); opacity:0; visibility:hidden; pointer-events:none;
transition:transform .4s var(--ease), opacity .3s var(--ease),
inset .4s var(--ease), visibility 0s linear .4s;
}
.nav.open{
transform:translateY(0); opacity:1; visibility:visible; pointer-events:auto;
transition:transform .4s var(--ease), opacity .3s var(--ease),
inset .4s var(--ease), visibility 0s linear 0s;
}
.nav > a:not(.btn){ width:100%; padding:1rem 0; border-bottom:1px solid var(--line); font-size:.95rem; }
.header-actions{ gap:.5rem; }
.social-ico{ width:32px; height:32px; }
.social-ico svg{ width:18px; height:18px; }
.lang-flags{ gap:.35rem; }
.lang-flag{ width:32px; height:32px; }
.burger{ width:44px; height:44px; }
.burger svg{ width:28px; height:28px; }
}
@media (max-width:400px){
.header-actions .social-grid{ display:none; }
}
.hero{
position:relative; overflow:hidden;
padding:clamp(7rem,10vw + 2rem,10rem) 0 clamp(3.5rem,6vw,5rem);
}
.hero-bg{
position:absolute; inset:0;
background:
radial-gradient(900px 620px at 82% 12%, rgba(201,165,92,.20), transparent 62%),
radial-gradient(760px 620px at 6% 92%, rgba(159,179,189,.14), transparent 65%),
linear-gradient(180deg, #3c392f 0%, var(--hero-bg) 55%, var(--hero-bg) 90%, var(--hero-bg-deep) 100%);
}
.hero-bg::after{
content:''; position:absolute; inset:0;
background-image:
linear-gradient(rgba(241,233,224,.055) 1px, transparent 1px),
linear-gradient(90deg, rgba(241,233,224,.055) 1px, transparent 1px);
background-size:50px 50px;
mask-image:radial-gradient(circle at 8% 45%, #000 10%, transparent 78%);
}
.hero-grain{
position:absolute; inset:0; opacity:.28; pointer-events:none;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}
.hero-inner{
position:relative; z-index:2;
display:grid; gap:clamp(2.5rem,6vw,4rem);
grid-template-columns:1fr;
align-items:center;
}
.hero-title{
font-size:3rem;
max-width: 520px;
}
@media (min-width:980px){
.hero-inner{ grid-template-columns:1.05fr .95fr; }
}
.hero-content{ max-width:640px; }
.hero-content .eyebrow{ color:var(--gold); }
.hero-title{
font-family:var(--serif); font-weight:400; color:var(--hero-ink);
font-size:clamp(3rem, 4.6vw + .6rem, 4.6rem);
line-height:1.14; letter-spacing:-.015em; margin:0 0 1.8rem;
}
.hero-title em{
font-style:italic; font-weight:500;
background:linear-gradient(100deg, var(--gold-soft), var(--gold) 55%, var(--gold-soft) 100%);
-webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-lead{ font-size:clamp(1.02rem,1vw + .8rem,1.22rem); color:var(--hero-ink-soft); max-width:56ch; margin-bottom:.4rem; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.2rem;}
@media(max-width:767.98px){
.hero-lead{text-align:center;font-size:20px;}
.hero-actions{justify-content:center;}
.hero-title{text-align: center;}
.hero-content .eyebrow{text-align:center;}
}
@media(max-width:480px){
.hero-title{ font-size:clamp(2.1rem, 9vw, 3rem); }
}
.hero-slider{ position:relative; width:100%; max-width:620px; }
.hero-slides{
position:relative; aspect-ratio:1/1; border-radius:var(--r-lg);
overflow:hidden; box-shadow:0 30px 70px rgba(0,0,0,.35);
}
.hero-slide{
position:absolute; inset:0;
opacity:0; visibility:hidden; transition:opacity 1s var(--ease);
}
.hero-slide.is-active{ opacity:1; visibility:visible; }
.hero-slide-photo{
position:absolute; inset:0; width:100%; height:100%;
object-fit:cover; display:block;
}
.hero-slide-name{
position:absolute; left:0; right:0; bottom:0; margin:0;
padding:3.5rem 1.6rem 1.5rem;
background:linear-gradient(0deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.32) 55%, transparent 100%);
color:#fff; font-family:var(--serif); font-style:italic; font-weight:500;
font-size:clamp(1.05rem,1vw + .7rem,1.3rem); letter-spacing:.01em; line-height:1.35;
}
.hero-slide-arrow{
position:absolute; top:50%; translate:0 -50%; z-index:3;
width:44px; height:44px; border-radius:50%; border:0; cursor:pointer;
display:grid; place-items:center;
background:rgba(241,233,224,.92); color:var(--hero-text);
box-shadow:0 6px 18px rgba(0,0,0,.28);
opacity:0; transition:opacity .25s var(--ease), background-color .25s var(--ease), transform .25s var(--ease);
}
.hero-slide-arrow svg{ width:18px; height:18px; }
.hero-slide-arrow.prev{ left:14px; }
.hero-slide-arrow.next{ right:14px; }
.hero-slide-arrow:hover{ background:#fff; }
@media (hover:hover){
.hero-slider:hover .hero-slide-arrow,
.hero-slide-arrow:focus-visible{ opacity:1; }
}
@media (hover:none){
.hero-slide-arrow{ opacity:1; }
}
.hero-slide-dots{
display:flex; justify-content:center; gap:.55rem;
margin-top:1.1rem;
}
.hero-slide-dots .dot{
position:relative;
width:8px; height:8px; border-radius:50%; border:0; padding:0; cursor:pointer;
background:rgba(241,233,224,.35);
transition:background-color .3s var(--ease), transform .3s var(--ease);
}
.hero-slide-dots .dot::after{ content:''; position:absolute; inset:-18px; }
.hero-slide-dots .dot.is-active{ background:var(--heading); transform:scale(1.25); }
.hero-wave{
position:absolute; left:0; right:0; bottom:-1px; z-index:2;
height:clamp(46px,7vw,100px);
overflow:hidden; pointer-events:none;
}
.hero-wave-svg{
position:absolute; left:0; bottom:0;
width:200%; height:100%; display:block;
}
.hero-wave-svg--back{
fill:var(--bg); opacity:.45;
animation:heroWaveDriftBack 26s linear infinite;
}
.hero-wave-svg--front{
animation:heroWaveDriftFront 17s linear infinite reverse;
}
.hero-wave-fill{ fill:var(--bg); }
.hero-wave-line{
stroke:var(--gold); stroke-width:1.6; opacity:.5;
}
@keyframes heroWaveDriftBack{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes heroWaveDriftFront{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (max-width:480px){
.hero-wave-line{ opacity:.35; }
}
.video-band{
position:relative; overflow:hidden;
}
.video-band-bg{
position:absolute; inset:0;
background:
radial-gradient(760px 560px at 12% 6%, rgba(201,165,92,.14), transparent 60%),
radial-gradient(640px 520px at 94% 92%, rgba(159,179,189,.12), transparent 62%),
linear-gradient(155deg, var(--surface) 0%, var(--bg) 55%, var(--bg-alt) 100%);
}
.video-band-grain{
position:absolute; inset:0; opacity:.1; pointer-events:none;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}
.video-band-inner{
position:relative; z-index:1;
display:grid; gap:clamp(2.5rem,6vw,4rem);
grid-template-columns:1fr;
align-items:start;
}
@media (min-width:900px){
.video-band-inner{ grid-template-columns:1fr 1fr; }
}
@media (max-width:899.98px){
.video-band-copy{ text-align:center; }
}
.video-band-copy .lead{ margin-bottom:2rem; }
.video-band-media{ width:100%; }
.video-player{
position:relative; width:100%;
aspect-ratio:16/9; border-radius:18px; overflow:hidden;
background:#100e0c;
box-shadow:0 24px 54px rgba(0,0,0,.4);
}
.video-player-el{
position:absolute; inset:0; width:100%; height:100%;
object-fit:cover; display:block;
}
.video-player::before{
content:''; position:absolute; inset:0; z-index:1;
background:
radial-gradient(circle at 50% 50%, rgba(0,0,0,.4), rgba(0,0,0,.12) 55%),
linear-gradient(180deg, rgba(0,0,0,.18), transparent 32%, transparent 58%, rgba(0,0,0,.6));
opacity:1; transition:opacity .4s var(--ease); pointer-events:none;
}
.video-player.is-active::before{ opacity:.3; }
.video-player-toggle{
position:absolute; inset:0; z-index:2;
display:flex; align-items:center; justify-content:center;
width:100%; height:100%;
background:none; border:0; padding:0; cursor:pointer;
opacity:1; transition:opacity .35s var(--ease);
}
.video-player.is-active .video-player-toggle{ opacity:0; pointer-events:none; }
.video-player.is-ended .video-player-toggle{ opacity:1; pointer-events:auto; }
.video-player-toggle-ring{
position:absolute; width:80px; height:80px; border-radius:50%;
border:1px solid rgba(241,233,224,.5);
animation:videoRingPulse 2.6s var(--ease) infinite;
}
@keyframes videoRingPulse{
0%   { transform:scale(.82); opacity:.7; }
70%  { transform:scale(1.5); opacity:0; }
100% { transform:scale(1.5); opacity:0; }
}
.video-player-toggle-circle{
position:relative; z-index:1;
display:flex; align-items:center; justify-content:center;
width:72px; height:72px; border-radius:50%;
background:linear-gradient(135deg, var(--gold-soft), var(--gold));
box-shadow:0 12px 32px rgba(0,0,0,.4);
transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.video-player-toggle:hover .video-player-toggle-circle{
transform:scale(1.08);
box-shadow:0 16px 38px rgba(201,165,92,.4);
}
.video-player-toggle-circle svg{ width:28px; height:28px; color:#171512; }
.video-player-toggle-circle .icon-play{ margin-left:3px; }
.video-player-toggle-circle .icon-replay{ display:none; }
.video-player.is-ended .video-player-toggle-circle .icon-play{ display:none; }
.video-player.is-ended .video-player-toggle-circle .icon-replay{ display:block; }
.video-player.is-unavailable .video-player-toggle{ cursor:not-allowed; }
.video-player.is-unavailable .video-player-toggle-circle{ opacity:.55; box-shadow:none; }
.video-player.is-unavailable .video-player-toggle-ring{ display:none; }
.video-player-controls{
position:absolute; left:0; right:0; bottom:0; z-index:2;
display:flex; align-items:center; gap:.9rem;
padding:1rem 1.2rem;
background:linear-gradient(180deg, transparent, rgba(0,0,0,.78) 45%);
opacity:0; transform:translateY(8px); pointer-events:none;
transition:opacity .35s var(--ease), transform .35s var(--ease);
}
.video-player.is-active .video-player-controls{
opacity:1; transform:none; pointer-events:auto;
}
@media (max-width:480px){
.video-player-controls{ gap:.5rem; padding:.7rem .8rem; }
}
.video-ctrl-btn{
flex:0 0 auto; display:grid; place-items:center;
width:44px; height:44px; border-radius:50%; border:0;
background:none; color:#fff; cursor:pointer;
transition:color var(--t-fast) var(--ease-out);
}
.video-ctrl-btn:hover{ color:var(--gold); }
.video-ctrl-btn svg{ width:22px; height:22px; }
.video-play-pause .icon-pause,
.video-mute-btn .icon-mute{ display:none; }
.video-player.is-playing .video-play-pause .icon-play{ display:none; }
.video-player.is-playing .video-play-pause .icon-pause{ display:block; }
.video-player.is-muted .video-mute-btn .icon-volume{ display:none; }
.video-player.is-muted .video-mute-btn .icon-mute{ display:block; }
.video-time{
flex:0 0 auto; font-size:.82rem; color:rgba(255,255,255,.8);
font-variant-numeric:tabular-nums; min-width:2.6em;
}
.video-time--total{ text-align:right; }
.video-progress{
position:relative; flex:1 1 auto; height:20px; cursor:pointer;
display:flex; align-items:center;
}
.video-progress::before{
content:''; position:absolute; left:0; right:0; top:50%; height:5px;
transform:translateY(-50%); border-radius:999px; background:rgba(255,255,255,.3);
}
.video-progress-fill{
position:absolute; left:0; top:50%; height:5px; width:0%;
transform:translateY(-50%); border-radius:999px;
background:linear-gradient(90deg, var(--gold-soft), var(--gold));
}
.section-divider{
display:flex; align-items:center; justify-content:center; gap:1.1rem;
max-width:200px; margin-inline:auto;
padding-block:clamp(.5rem,2vw,1.2rem);
}
.section-divider-line{
flex:1 1 auto; height:1px;
background:linear-gradient(90deg, transparent, rgba(201,165,92,.4));
}
.section-divider-mark + .section-divider-line{
background:linear-gradient(270deg, transparent, rgba(201,165,92,.4));
}
.section-divider-mark{
flex:0 0 auto; width:7px; height:7px;
border:1px solid var(--gold); transform:rotate(45deg);
}
.portfolio .section-head .h2{ max-width:22ch; margin:0 auto 1.5rem; }
.portfolio-grid{
display:grid; gap:1.1rem;
grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
}
.portfolio-tile{
position:relative; margin:0; overflow:hidden;
aspect-ratio:1/1;
background:var(--surface); border:1px solid var(--line);
border-radius:var(--r-lg);
transition:border-color var(--t-med) var(--ease-out),
transform var(--t-med) var(--ease-out),
box-shadow var(--t-med) var(--ease-out);
}
.portfolio-tile:hover{
border-color:rgba(201,165,92,.4); transform:translateY(-4px);
box-shadow:0 18px 38px rgba(0,0,0,.16);
}
.portfolio-tile img{
position:absolute; inset:0; width:100%; height:100%;
object-fit:cover; display:block;
transition:transform var(--t-slow) var(--ease);
}
.portfolio-tile:hover img{ transform:scale(1.06); }
.about-cards{ display:grid; gap:1.1rem; }
.card{
background:var(--surface); border:1px solid var(--line);
border-radius:var(--r-lg); padding:2rem 1.9rem;
transition:border-color .35s var(--ease), transform .35s var(--ease), background .35s var(--ease);
}
.card:hover{ border-color:rgba(201,165,92,.4); transform:translateY(-3px); background:var(--surface-2); }
.card-ico{ color:var(--gold); font-size:1.15rem; display:block; margin-bottom:.9rem; }
.card h3{
margin:0 0 .7rem; font-family:var(--serif); font-weight:500;
font-size:1.35rem; letter-spacing:.02em;
}
.card p{ margin:0; font-size:.96rem; }
.lines-grid{
display:grid; gap:1.4rem;
grid-template-columns:repeat(auto-fit, minmax(240px,1fr));
}
.line-card{
display:flex; flex-direction:column;
background:var(--surface); border:1px solid var(--line);
border-radius:var(--r-lg); overflow:hidden;
transition:border-color .4s var(--ease), transform .4s var(--ease), box-shadow .4s var(--ease);
}
.line-card:hover{ border-color:rgba(201,165,92,.38); transform:translateY(-4px); box-shadow:0 16px 34px rgba(0,0,0,.14); }
.line-card-photo{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.swatch{ position:absolute; inset:0; transition:transform 1s var(--ease); }
.line-card:hover .swatch{ transform:scale(1.06); }
.swatch::after{
content:''; position:absolute; inset:0;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)' opacity='.5'/%3E%3C/svg%3E");
opacity:.5; mix-blend-mode:overlay;
}
.sw-cristal{
background:
radial-gradient(circle at 30% 25%, rgba(255,255,255,.30), transparent 45%),
radial-gradient(circle at 72% 70%, rgba(159,179,189,.45), transparent 50%),
linear-gradient(135deg,#3b4046,#22262b 60%,#15181b);
}
.sw-pedras{
background:
radial-gradient(circle at 25% 30%, rgba(201,165,92,.42), transparent 48%),
radial-gradient(circle at 75% 68%, rgba(120,92,58,.55), transparent 52%),
linear-gradient(135deg,#4a3d29,#2e2619 60%,#1b160f);
}
.sw-lapidados{
background:
radial-gradient(circle at 35% 22%, rgba(255,255,255,.34), transparent 44%),
radial-gradient(circle at 68% 74%, rgba(140,140,146,.42), transparent 50%),
linear-gradient(135deg,#55534f,#33322f 60%,#1d1c1b);
}
.sw-granitos{
background:
radial-gradient(circle at 28% 24%, rgba(255,255,255,.30), transparent 46%),
radial-gradient(circle at 74% 72%, rgba(150,154,160,.4), transparent 50%),
linear-gradient(135deg,#4c4c50,#2c2c2f 60%,#18181a);
}
.line-card-body{
display:flex; flex-direction:column; flex:1;
padding:1.5rem 1.4rem 1.6rem;
}
.line-card-body h3{
margin:0 0 .6rem; font-family:var(--serif); font-weight:500;
font-size:1.3rem; letter-spacing:-.01em;
}
.line-card-body p{ margin:0 0 1.3rem; font-size:.92rem; flex:1; }
.line-card-body .btn{ align-self:flex-start; }
.catalog{ margin-top:.5rem; }
.catalog-tabs{
display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem;
margin-bottom:1.1rem;
}
.catalog-tab{
padding:.6rem 1.35rem; border-radius:999px; border:1px solid var(--line);
background:var(--surface); color:var(--text-soft);
font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; font-weight:500;
cursor:pointer;
transition:background-color var(--t-fast) var(--ease-out),
color var(--t-fast) var(--ease-out),
border-color var(--t-fast) var(--ease-out);
}
.catalog-tab:hover{ border-color:rgba(201,165,92,.45); color:var(--text); }
.catalog-tab.is-active{
background:linear-gradient(135deg, var(--gold-soft), var(--gold));
border-color:transparent; color:#171512;
}
.catalog-subfilters{
display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem;
padding-top:1rem; margin-bottom:1.8rem;
border-top:1px dashed var(--line);
}
.catalog-subfilters[hidden]{ display:none; }
.subfilter-btn{
padding:.4rem .95rem; border-radius:999px; border:1px solid var(--line);
background:transparent; color:var(--text-mute);
font-size:.72rem; letter-spacing:.03em;
cursor:pointer;
transition:background-color var(--t-fast) var(--ease-out),
color var(--t-fast) var(--ease-out),
border-color var(--t-fast) var(--ease-out);
}
.subfilter-btn:hover{ border-color:rgba(201,165,92,.45); color:var(--text); }
.subfilter-btn.is-active{ background:var(--heading); border-color:var(--heading); color:#fff; }
.catalog-count{
text-align:center; margin:0 0 1.5rem;
font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; color:var(--text-mute);
}
.catalog-grid{
display:grid; gap:1.25rem;
grid-template-columns:repeat(auto-fit, minmax(280px,1fr));
}
.catalog-card{
background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
overflow:hidden; opacity:1;
transition:opacity var(--t-fast) var(--ease-out),
border-color var(--t-med) var(--ease-out),
transform var(--t-med) var(--ease-out),
box-shadow var(--t-med) var(--ease-out);
}
.catalog-card.is-hidden{ display:none; }
.catalog-card:hover{
border-color:rgba(201,165,92,.4); transform:translateY(-3px);
box-shadow:0 16px 34px rgba(0,0,0,.14);
}
.catalog-card-photo{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.catalog-card:hover .catalog-card-photo .swatch{ transform:scale(1.05); }
.catalog-card-body{ padding:1rem 1.1rem 1.15rem; }
.catalog-card-name{
margin:0 0 .3rem; font-family:var(--serif); font-weight:500;
font-size:1rem; line-height:1.3; color:var(--text);
}
.catalog-card-meta{ margin:0; font-size:.72rem; letter-spacing:.02em; color:var(--text-mute); }
.process-track{ position:relative; padding-top:2.2rem; }
.process-track-line{
position:absolute; inset:0; z-index:0;
width:100%; height:100%;
fill:none; stroke:var(--gold); stroke-width:1.5; opacity:.4;
pointer-events:none;
}
.process-track-line path{
stroke-dasharray:100; stroke-dashoffset:100;
transition:stroke-dashoffset 1.6s var(--ease-out);
}
.reveal.visible .process-track-line path{ stroke-dashoffset:0; }
.process-steps{
position:relative; z-index:1;
list-style:none; margin:0; padding:0;
display:grid; grid-template-columns:1fr; gap:2.6rem;
}
.process-step{
position:relative;
background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
padding:2.9rem 1.6rem 1.8rem; overflow:hidden;
transform:translateY(var(--zig, 0));
transition:transform var(--t-med) var(--ease-out),
box-shadow var(--t-med) var(--ease-out),
border-color var(--t-med) var(--ease-out);
}
.process-step:hover{
transform:translateY(calc(var(--zig, 0) - 5px));
box-shadow:0 18px 40px rgba(49,42,34,.12);
border-color:rgba(201,165,92,.35);
}
.process-num{
position:absolute; top:-.4rem; right:.9rem; z-index:0;
font-family:var(--serif); font-size:4.2rem; line-height:1;
color:rgba(163,128,98,.14);
pointer-events:none; user-select:none;
}
.process-badge{
position:relative; z-index:1;
display:grid; place-items:center; margin-bottom:1.3rem;
width:56px; height:56px; border-radius:50%;
background:linear-gradient(135deg, var(--gold-soft), var(--gold));
color:#171512;
box-shadow:0 10px 24px rgba(201,165,92,.3);
}
.process-badge svg{ width:24px; height:24px; }
.process-step h3{
position:relative; z-index:1;
margin:0 0 .6rem; font-size:1.08rem; font-weight:500; letter-spacing:.01em;
}
.process-step p{ position:relative; z-index:1; margin:0; font-size:.92rem; color:var(--text-soft); }
@media (min-width:600px){
.process-steps{ grid-template-columns:repeat(2,1fr); gap:1.5rem; }
.process-step{ text-align:center; padding:3.1rem 1.4rem 2rem; }
.process-badge{ margin-inline:auto; }
.process-num{ right:50%; translate:50% 0; top:-.6rem; }
}
@media (min-width:860px){
.process-steps{ grid-template-columns:repeat(4,1fr); }
.process-steps > :nth-child(odd){ --zig: -22px; }
.process-steps > :nth-child(even){ --zig: 22px; }
}
@media (max-width:859px){
.process-track-line{ display:none; }
}
.cta-band{
position:relative; overflow:hidden;
padding:clamp(4.5rem,9vw,7rem) 0; text-align:center;
border-block:1px solid var(--line);
}
.cta-band-bg{
position:absolute; inset:0;
background:
radial-gradient(700px 520px at 20% 25%, rgba(201,165,92,.26), transparent 48%),
radial-gradient(640px 520px at 80% 75%, rgba(159,179,189,.20), transparent 50%),
linear-gradient(150deg, #3c392f 0%, #34302a 45%, #2b2822 100%);
}
.cta-band-grain{
position:absolute; inset:0; opacity:.5; mix-blend-mode:overlay; pointer-events:none;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}
.cta-inner{ position:relative; z-index:1; }
.cta-inner .h2{ margin-bottom:1.1rem; color:var(--hero-ink); }
.cta-inner .lead{ color:var(--hero-ink-soft); margin-bottom:2.4rem; }
#contato{
position:relative;
background:
radial-gradient(680px 520px at 88% 12%, rgba(201,165,92,.12), transparent 55%),
radial-gradient(600px 480px at 8% 92%, rgba(159,179,189,.10), transparent 58%),
linear-gradient(170deg, var(--bg-alt) 0%, var(--surface) 55%, var(--bg) 100%);
border-block:1px solid var(--line);
}
.contact-sticky{
position:sticky; top:6.5rem;
align-self:start;
}
@media (max-width:899.98px){
.contact-sticky{ position:static; text-align:center; }
}
.socials{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.8rem; }
.form{
background:var(--surface); border:1px solid var(--line);
border-radius:var(--r-lg); padding:clamp(1.8rem,3.5vw,2.6rem);
}
.form h3{
margin:0 0 1.6rem; font-family:var(--serif); font-weight:400;
font-size:1.6rem; letter-spacing:.01em;
}
.form label{
display:block; margin-bottom:1.1rem;
font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--text-mute);
}
.form input,.form select,.form textarea{
display:block; width:100%; margin-top:.55rem;
background:var(--bg); border:1px solid var(--line); border-radius:10px;
padding:.85rem 1rem; color:var(--text);
font-size:.95rem; letter-spacing:normal; text-transform:none;
transition:border-color .3s var(--ease), background .3s var(--ease);
}
.form textarea{ resize:vertical; min-height:110px; }
.form input::placeholder,.form textarea::placeholder{ color:var(--text-mute); opacity:.65; }
.form input:focus,.form select:focus,.form textarea:focus{
outline:none; border-color:var(--gold); background:var(--surface);
}
.form input.invalid,.form textarea.invalid{ border-color:#c2554e; }
.form-note{ font-size:.74rem; color:var(--text-mute); text-align:center; margin:1rem 0 0; }
#onde-estamos{ padding-bottom:0; }
.location-viewport{
position:relative; width:100vw;
margin-left:calc(50% - 50vw);
height:64vh; min-height:420px; max-height:600px;
}
.location-map{
display:block; width:100%; height:100%;
filter:grayscale(.3) sepia(.12) saturate(1.15) contrast(1.04);
}
.location-fade{
position:absolute; top:0; left:0; right:0; z-index:1;
height:clamp(60px,14vh,160px);
background:linear-gradient(180deg, var(--bg) 0%, transparent 100%);
pointer-events:none;
}
.location-pin-logo{
width:56px; height:auto; display:block;
filter:drop-shadow(0 4px 6px rgba(0,0,0,.45));
}
.leaflet-marker-pane .location-pin-logo{
width:56px !important; height:auto !important;
}
.location-card{
position:absolute; z-index:1;
left:clamp(1rem,4vw,3.5rem); bottom:clamp(1rem,4vw,3rem);
max-width:320px;
background:rgba(247,242,238,.82);
-webkit-backdrop-filter:blur(16px) saturate(1.4);
backdrop-filter:blur(16px) saturate(1.4);
border:1px solid rgba(255,255,255,.5);
border-radius:var(--r-lg);
padding:1.7rem 1.8rem;
box-shadow:0 26px 54px rgba(23,20,16,.28);
}
.location-card-eyebrow{
margin:0 0 .7rem; font-size:.7rem; letter-spacing:.24em;
text-transform:uppercase; color:var(--gold-deep); font-weight:500;
}
.location-card-address{ margin:0 0 1.3rem; font-size:.92rem; color:var(--text); }
.location-card-actions{ display:flex; flex-direction:column; gap:.9rem; align-items:flex-start; }
.location-card-phone{
font-size:.84rem; color:var(--text-soft);
border-bottom:1px solid var(--line);
transition:color var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out);
}
.location-card-phone:hover{ color:var(--gold-deep); border-color:var(--gold); }
@media (max-width:760px){
.location-viewport{ height:50vh; min-height:320px; }
.location-card{
position:static; max-width:none;
margin:-2.5rem 1rem 0;
background:var(--surface); backdrop-filter:none; -webkit-backdrop-filter:none;
}
}
.locations-map{ position:relative; overflow:hidden; }
.locations-banner{
position:absolute; inset:0 0 auto 0; z-index:0;
height:clamp(260px,40vw,440px);
background:
linear-gradient(180deg, rgba(228,218,211,.88) 0%, var(--bg-alt) 94%),
url("../img/onde-encontrar.webp") center 20% / cover no-repeat;
}
.locations-map .section-head,
.locations-layout{ position:relative; z-index:1; }
.locations-layout{
display:grid; gap:1.6rem;
grid-template-columns:1fr;
}
@media (min-width:860px){
.locations-layout{ grid-template-columns:.85fr 1.4fr; align-items:stretch; }
}
.locations-col{ display:flex; flex-direction:column; gap:1rem; min-width:0; }
.locations-list{
list-style:none; margin:0; padding:0;
display:flex; flex-direction:column; gap:.7rem;
}
.locations-item{
display:flex; gap:.9rem; align-items:flex-start;
padding:1.1rem 1.2rem; border-radius:var(--r-lg);
background:var(--surface); border:1px solid var(--line);
cursor:pointer;
transition:border-color var(--t-fast) var(--ease-out),
background var(--t-fast) var(--ease-out),
box-shadow var(--t-fast) var(--ease-out);
}
.locations-item:hover{ border-color:rgba(201,165,92,.4); }
.locations-item.is-active{
background:linear-gradient(135deg, var(--gold-soft), var(--gold));
border-color:transparent;
box-shadow:0 12px 26px rgba(201,165,92,.28);
}
.locations-item-icon{
flex:0 0 auto; width:34px; height:34px; border-radius:50%;
display:grid; place-items:center;
background:var(--bg); color:var(--gold-deep);
transition:background-color var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out);
}
.locations-item-icon svg{ width:18px; height:18px; }
.locations-item.is-active .locations-item-icon{ background:rgba(23,20,16,.16); color:#171512; }
.locations-item-body{ display:flex; flex-direction:column; gap:.3rem; min-width:0; }
.locations-item-name{ font-family:var(--serif); font-size:1.02rem; color:var(--heading); }
.locations-item.is-active .locations-item-name{ color:#171512; }
.locations-item-address{ font-size:.82rem; color:var(--text-soft); line-height:1.5; }
.locations-item.is-active .locations-item-address{ color:rgba(23,20,16,.75); }
.locations-item-contact{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:.3rem; }
.locations-item-contact a{
font-size:.78rem; color:var(--text-soft); border-bottom:1px solid var(--line);
transition:color var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out);
}
.locations-item-contact a:hover{ color:var(--gold-deep); border-color:var(--gold); }
.locations-item.is-active .locations-item-contact a{ color:rgba(23,20,16,.8); border-color:rgba(23,20,16,.3); }
.locations-col-title{
margin:.5rem 0 0; font-size:.72rem; letter-spacing:.16em;
text-transform:uppercase; color:var(--gold-deep); font-weight:500;
}
.locations-states{
list-style:none; margin:0; padding:0;
display:flex; flex-wrap:wrap; gap:.5rem;
}
.locations-states button{
padding:.5rem 1rem; border-radius:999px; border:1px solid var(--line);
background:var(--surface); color:var(--text-soft);
font-size:.8rem; cursor:pointer;
transition:border-color var(--t-fast) var(--ease-out),
color var(--t-fast) var(--ease-out),
background var(--t-fast) var(--ease-out);
}
.locations-states button:hover{ border-color:rgba(201,165,92,.45); color:var(--text); }
.locations-states button.is-active{
background:linear-gradient(135deg, var(--gold-soft), var(--gold));
border-color:transparent; color:#171512;
}
.locations-map-viewport{
height:360px; border-radius:var(--r-lg); overflow:hidden;
border:1px solid var(--line);
box-shadow:0 20px 46px rgba(23,20,16,.14);
}
@media (min-width:860px){
.locations-map-viewport{ height:100%; }
}
.locations-map-el{ width:100%; height:100%; }
.map-pin-marker{ background:none; border:0; }
.leaflet-div-icon{ background:none; border:0; }
.leaflet-popup-content-wrapper{
border-radius:12px; background:var(--surface);
box-shadow:0 16px 34px rgba(23,20,16,.22);
}
.leaflet-popup-content{ margin:.9rem 1.05rem; font-family:var(--sans); }
.leaflet-popup-content strong{
display:block; margin-bottom:.3rem;
font-family:var(--serif); font-size:1rem; color:var(--heading);
}
.leaflet-popup-content p{ margin:0 0 .5rem; font-size:.86rem; color:var(--text-soft); }
.leaflet-popup-content a{ font-size:.82rem; color:var(--gold-deep); border-bottom:1px solid rgba(201,165,92,.35); }
.leaflet-popup-tip{ background:var(--surface); }
.site-footer{ background:#fff; border-top:1px solid var(--line); }
.footer-grid{
display:grid; gap:clamp(2.5rem,5vw,4rem);
grid-template-columns:1.3fr 1fr 1fr;
padding-block:clamp(3.5rem,7vw,5.5rem);
border-bottom:1px solid var(--line);
}
.footer-brand{ max-width:320px; }
.footer-logo{ height:92px; width:auto; display:block; margin-bottom:1.3rem; }
.footer-tag{ margin:0 0 1.6rem; font-size:.92rem; color:var(--text-mute); }
.footer-socials{ margin-top:0; }
.footer-col-title{
margin:0 0 1.3rem; font-size:.72rem; letter-spacing:.2em;
text-transform:uppercase; color:var(--gold-deep); font-weight:500;
}
.footer-nav{ display:flex; flex-direction:column; gap:.9rem; }
.footer-nav a{
font-size:.92rem; color:var(--text-soft);
transition:color var(--t-fast) var(--ease-out);
}
.footer-nav a:hover{ color:var(--gold-deep); }
.footer-address{
display:flex; align-items:flex-start; gap:.9rem;
margin:0 0 1.3rem; font-size:.96rem; color:var(--text);
}
.footer-address svg{ flex:0 0 auto; width:24px; height:24px; stroke-width:1.4; color:var(--gold-deep); }
.footer-contact a{
display:flex; width:fit-content; align-items:center; gap:.9rem;
margin-bottom:.6rem; font-size:.92rem; color:var(--text);
transition:color var(--t-fast) var(--ease-out);
}
.footer-contact a svg{ flex:0 0 auto; width:24px; height:24px; stroke-width:1.4; }
.footer-contact a:hover{ color:var(--gold-deep); }
.footer-legal{
display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
gap:1rem; padding-block:1.6rem;
}
.footer-legal p{ margin:0; font-size:.78rem; color:var(--text-mute); }
.footer-credit{
display:inline-flex; align-items:center; gap:.55rem;
font-size:.78rem; color:var(--text-mute);
transition:color var(--t-fast) var(--ease-out);
}
.footer-credit img{ height:20px; width:auto; display:block; }
.footer-credit:hover{ color:var(--gold-deep); }
@media (min-width:761px) and (max-width:1000px){
.footer-grid{ grid-template-columns:1fr 1fr; }
.footer-brand{ grid-column:1 / -1; max-width:460px; }
.footer-logo{ margin-inline:auto; }
}
@media (max-width:760px){
.footer-grid{ grid-template-columns:1fr; text-align:center; }
.footer-brand{ max-width:none; margin-inline:auto; }
.footer-logo{ margin-inline:auto; }
.footer-socials{ justify-content:center; }
.footer-nav{ align-items:center; }
.footer-address{ justify-content:center; }
.footer-contact a{ margin-inline:auto; }
.footer-legal{ flex-direction:column; text-align:center; }
}
.wa-float{
position:fixed; right:1.35rem; bottom:1.35rem; z-index:90;
width:54px; height:54px; border-radius:50%;
display:grid; place-items:center;
background:#25d366; color:#fff;
box-shadow:0 10px 28px rgba(37,211,102,.32);
transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.wa-float:hover{ transform:translateY(-3px) scale(1.05); box-shadow:0 16px 36px rgba(37,211,102,.45); }
.wa-float svg{width:40px;height:40px;}
.wa-float::before{
content:''; position:absolute; inset:0; z-index:-1;
pointer-events:none;
border-radius:50%;
border:1px solid rgba(37,211,102,.55);
animation:waSonar 2.8s var(--ease) infinite;
}
@keyframes waSonar{
0%   { transform:scale(1); opacity:.6; }
100% { transform:scale(1.7); opacity:0; }
}
.btn{
transition:transform var(--t-fast) var(--ease-out),
box-shadow var(--t-med) var(--ease-out),
background-color var(--t-med) var(--ease-out),
border-color var(--t-med) var(--ease-out),
color var(--t-med) var(--ease-out);
}
.btn-solid{
background:linear-gradient(115deg, var(--gold-soft), var(--gold) 50%, var(--gold-soft));
background-size:220% 100%;
background-position:0% 0;
transition:transform var(--t-fast) var(--ease-out),
box-shadow var(--t-med) var(--ease-out),
background-position var(--t-slow) var(--ease-out);
}
.btn-solid:hover{ background-position:100% 0; }
.btn:active{ transform:translateY(0) scale(.985); }
.nav > a:not(.btn){ transition:color var(--t-fast) var(--ease-out); }
.nav > a:not(.btn)::after{ transition:width var(--t-med) var(--ease-out); }
.brand-logo{ transition:opacity var(--t-med) var(--ease-out), height .4s var(--ease); }
.brand:hover .brand-logo{ opacity:.82; }
.card,
.line-card{
transition:border-color var(--t-med) var(--ease-out),
background-color var(--t-med) var(--ease-out),
box-shadow var(--t-med) var(--ease-out),
transform var(--t-med) var(--ease-out);
}
.card:hover{ box-shadow:0 18px 40px rgba(0,0,0,.34); }
.card-ico{ transition:color var(--t-med) var(--ease-out), transform var(--t-med) var(--ease-out); }
.card:hover .card-ico{ color:var(--gold-deep); }
.line-card-body h3{ transition:color var(--t-med) var(--ease-out); }
.line-card:hover .line-card-body h3{ color:var(--gold-deep); }
.swatch{ transition:transform var(--t-slow) var(--ease-out), filter var(--t-slow) var(--ease-out); }
.line-card:hover .swatch{ filter:saturate(1.12) brightness(1.06); }
.catalog-card-photo .swatch{ transition:transform var(--t-med) var(--ease-out), filter var(--t-med) var(--ease-out); }
.catalog-card-name{ transition:color var(--t-med) var(--ease-out); }
.catalog-card:hover .catalog-card-photo .swatch{ filter:saturate(1.15) brightness(1.08); }
.catalog-card:hover .catalog-card-name{ color:var(--gold-deep); }
.form input,
.form select,
.form textarea{
transition:border-color var(--t-fast) var(--ease-out),
background-color var(--t-fast) var(--ease-out),
box-shadow var(--t-fast) var(--ease-out);
}
.form input:hover,
.form select:hover,
.form textarea:hover{ border-color:var(--line-strong); }
.form input:focus,
.form select:focus,
.form textarea:focus{ box-shadow:0 0 0 3px rgba(201,165,92,.14); }
.form label{ transition:color var(--t-fast) var(--ease-out); }
.form label:focus-within{ color:var(--gold); }
@media (hover:hover){
.card:hover .card-ico{ transform:translateY(-2px); }
}
@media (hover:none){
.btn:hover,
.card:hover,
.line-card:hover,
.catalog-card:hover,
.wa-float:hover{ transform:none; }
}
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
html:not(.movimento-liberado){ scroll-behavior:auto; }
html:not(.movimento-liberado) .hero-wave-svg--back,
html:not(.movimento-liberado) .hero-wave-svg--front{ animation:none; transform:none; }
html:not(.movimento-liberado) .video-player-toggle-ring{ animation:none; opacity:.7; }
html:not(.movimento-liberado) .wa-float::before{ animation:none; opacity:0; }
html:not(.movimento-liberado) .process-track-line path{ transition:none; stroke-dashoffset:0; }
html:not(.movimento-liberado) .reveal{ opacity:1; transform:none; transition:none; }
html:not(.movimento-liberado) .card:hover,
html:not(.movimento-liberado) .line-card:hover,
html:not(.movimento-liberado) .catalog-card:hover,
html:not(.movimento-liberado) .process-step:hover,
html:not(.movimento-liberado) .btn:hover,
html:not(.movimento-liberado) .wa-float:hover{ transform:none; }
html:not(.movimento-liberado) .line-card:hover .swatch{ transform:none; }
}