:root{--ink:#1C1A17;--wine:#5E2A34;--gold:#B8935A;--alab:#F8F5EF;--stone:#EDE7DC;--mute:#6F675E;--pad:56px}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{max-width:100%;overflow-x:hidden}
body{background:var(--alab);color:var(--ink);font-family:'Jost','Helvetica Neue',Arial,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased;line-height:1.6}
img{display:block;max-width:100%;height:auto}
a{color:var(--wine);text-decoration:none}a:hover{color:var(--gold)}
h1,h2,h3,h4{font-weight:300;margin:0}
p{margin:0}
.serif{font-family:'Cormorant Garamond',Georgia,'Times New Roman',serif}
.eyebrow{font-family:'Jost',Arial,sans-serif;font-size:11px;letter-spacing:.32em;text-transform:uppercase;font-weight:400;color:var(--gold)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 32px;border:1px solid var(--ink);color:var(--ink);font-family:'Jost',Arial,sans-serif;font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:400;text-align:center;transition:all .2s;cursor:pointer;background:transparent}
.btn:hover{background:var(--ink);color:var(--alab)}
.btn-light{border-color:var(--alab);color:var(--alab)}.btn-light:hover{background:var(--alab);color:var(--ink)}
.btn-fill{background:var(--ink);color:var(--alab)}.btn-fill:hover{background:var(--wine);border-color:var(--wine);color:var(--alab)}
.pad{padding-left:var(--pad);padding-right:var(--pad)}
.stone{background:var(--stone)}.alab{background:var(--alab)}.ink{background:var(--ink);color:var(--alab)}

/* promo */
.promo{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 22px;padding:11px var(--pad);background:var(--wine);color:var(--alab);text-align:center}
.promo .eyebrow{font-size:10px}
.promo span.t{font-size:13px;letter-spacing:.04em}
.promo .btn{min-height:32px;padding:0 16px;font-size:10px;letter-spacing:.2em}

/* nav */
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px var(--pad);background:var(--alab);position:relative;z-index:20}
.nav .logo img{height:44px;width:auto}
.nav .links{display:flex;gap:22px;align-items:center;margin:0 16px}
.nav .links a{white-space:nowrap;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);padding-bottom:4px;border-bottom:1px solid transparent}
.nav .links a:hover,.nav .links a.on{border-bottom-color:var(--gold)}
.nav .book{min-height:42px;padding:0 18px;font-size:10px}
.nav .burger{display:none;width:44px;height:44px;border:1px solid var(--ink);background:none;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.nav .burger span{display:block;width:20px;height:1px;background:var(--ink)}
.nav .links a.mobile-only{display:none}

/* hero */
.hero{position:relative;background:var(--ink);color:var(--alab);overflow:hidden}
.hero img.bg{width:100%;height:auto;display:block}
.hero .shade{position:absolute;left:0;right:0;bottom:0;height:60%;background:linear-gradient(180deg,rgba(20,16,14,0) 0%,rgba(20,16,14,.78) 100%)}
.hero .copy{position:absolute;left:var(--pad);right:var(--pad);bottom:56px;display:flex;flex-direction:column;gap:16px;max-width:760px}
.hero .copy.right{left:auto;align-items:flex-end;text-align:right}
.hero h1{font-size:clamp(40px,5vw,72px);line-height:1.02;letter-spacing:-.01em}
.hero p{font-size:18px;line-height:1.6;max-width:560px;color:rgba(248,245,239,.88)}
.hero .copy .btn{margin-top:8px}
.rot{position:relative;aspect-ratio:3/2;background:var(--ink);overflow:hidden}
.rot img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;animation:rotfade var(--total) infinite}
.rot img.base{opacity:.35;animation:none}
@keyframes rotfade{0%{opacity:0}8%{opacity:1}12%{opacity:1}20%{opacity:0}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.rot img{animation:none}.rot img:nth-child(2){opacity:1}}

/* statement */
.statement{display:grid;grid-template-columns:1fr 2fr;gap:32px;padding:110px var(--pad) 90px}
.statement .rule{width:48px;height:1px;background:var(--gold);margin-top:14px}
.statement h2{font-size:clamp(32px,3.4vw,46px);line-height:1.15}
.statement p{font-size:18px;line-height:1.75;color:var(--mute);max-width:700px;margin-top:26px}
.statement .btn{margin-top:30px}

/* full */
.full{background:var(--alab)}
.full img{width:100%}
.full .cap{padding:14px var(--pad) 24px;color:var(--mute);font-size:9px}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;align-items:center}
.split .txt{display:flex;flex-direction:column;justify-content:center;gap:22px;padding:64px var(--pad)}
.split h2{font-size:clamp(34px,3.4vw,48px);line-height:1.1}
.split p{font-size:17px;line-height:1.75;color:var(--mute);max-width:480px}
.split.dark{background:var(--ink);color:var(--alab)}.split.dark p{color:rgba(248,245,239,.72)}
.split .pic img{width:100%}

/* gallery rows */
.gal{display:flex;flex-direction:column;gap:16px;padding:16px var(--pad)}
.gal .row{display:flex;gap:16px;align-items:flex-start}
.gal .row img{min-width:0;height:auto;width:0}

/* steps */
.steps{padding:100px var(--pad);display:flex;flex-direction:column;gap:48px}
.steps .intro{display:flex;flex-direction:column;gap:16px;max-width:720px}
.steps h2{font-size:clamp(32px,3.4vw,46px);line-height:1.12}
.steps .intro p{font-size:17px;line-height:1.7;color:var(--mute)}
.steps .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
.steps .card{display:flex;flex-direction:column;gap:16px;padding:36px 32px 40px;border-top:1px solid var(--gold)}
.steps .n{font-size:44px;color:var(--gold);line-height:1}
.steps .t{font-size:27px;font-weight:400;line-height:1.2}
.steps .card p{font-size:15px;line-height:1.7;color:var(--mute)}

/* quote */
.quote{padding:100px var(--pad);background:var(--wine);color:var(--alab);display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center}
.quote .mark{font-size:88px;line-height:.4;color:var(--gold)}
.quote p{font-size:clamp(24px,2.6vw,36px);line-height:1.3;font-style:italic;max-width:920px}

/* cta */
.cta{padding:100px var(--pad);display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center}
.cta h2{font-size:clamp(34px,3.8vw,54px);line-height:1.1;max-width:860px}
.cta p{font-size:17px;line-height:1.7;color:var(--mute);max-width:560px}
.cta .btn{margin-top:10px}

/* features */
.feat{padding:100px var(--pad);display:flex;flex-direction:column;gap:44px}
.feat .intro{display:flex;flex-direction:column;gap:14px;max-width:760px}
.feat h2{font-size:clamp(32px,3.4vw,46px);line-height:1.12}
.feat .grid{display:grid;gap:32px}.feat .cols-3{grid-template-columns:repeat(3,1fr)}.feat .cols-4{grid-template-columns:repeat(4,1fr)}
.feat .cell{display:flex;flex-direction:column;gap:10px;padding-top:20px;border-top:1px solid var(--gold)}
.feat .cell .t{font-size:25px;font-weight:400;line-height:1.2}
.feat .cell p{font-size:15px;line-height:1.7;color:var(--mute)}

/* services */
.services{padding:20px var(--pad) 100px;display:flex;flex-direction:column;gap:40px}
.services h2{font-size:clamp(32px,3.4vw,46px);line-height:1.1}
.services .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}
.services a.card{display:flex;flex-direction:column;gap:14px;color:var(--ink)}
.services a.card .t{font-size:28px;font-weight:400;line-height:1.15}
.services a.card p{font-size:14px;line-height:1.6;color:var(--mute)}
.services a.card .eyebrow{font-size:10px}

/* two-col text */
.twocol{padding:90px var(--pad);display:grid;grid-template-columns:5fr 7fr;gap:32px;align-items:center}
.twocol h2{font-size:clamp(32px,3.4vw,46px);line-height:1.12}
.twocol p{font-size:17px;line-height:1.75;color:var(--mute);max-width:620px}

/* italy */
.italy-head{padding:100px var(--pad) 40px;display:flex;flex-direction:column;gap:14px}
.italy-head h2{font-size:clamp(36px,4vw,54px);line-height:1.1;max-width:900px}
.italy{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:20px var(--pad) 90px}
.italy .box{display:flex;flex-direction:column;gap:18px;padding:40px;border:1px solid var(--gold);background:var(--alab)}
.italy h3{font-size:clamp(30px,2.8vw,38px);line-height:1.1}
.italy p{font-size:16px;line-height:1.75;color:var(--mute)}
.soon{display:grid;grid-template-columns:4fr 6fr 2fr;gap:32px;padding:60px var(--pad);align-items:center}
.soon h3{font-size:40px;line-height:1.1}
.soon p{font-size:17px;line-height:1.7;color:var(--mute)}
.soon .r{display:flex;justify-content:flex-end}

/* about */
.about-hero{display:grid;grid-template-columns:1fr 1fr;background:var(--stone)}
.about-hero .pic{display:flex;align-items:center;justify-content:center;min-height:760px;background:var(--ink);border-right:1px solid var(--gold);padding:64px}
.about-hero .pic img{width:100%;max-width:440px;box-shadow:0 30px 60px rgba(0,0,0,.35)}
.about-hero .txt{display:flex;flex-direction:column;justify-content:center;gap:22px;padding:80px 64px}
.about-hero h1{font-size:clamp(38px,4.2vw,60px);line-height:1.05}
.about-hero p{font-size:17px;line-height:1.75;color:var(--mute);max-width:520px}
.bts-head{padding:72px var(--pad) 8px;display:flex;flex-direction:column;gap:10px}
.bts-head h2{font-size:clamp(30px,3.2vw,44px);line-height:1.1;max-width:900px}
.team{padding:90px var(--pad);display:flex;flex-direction:column;gap:40px}
.team h2{font-size:clamp(32px,3.4vw,46px);line-height:1.1}
.team .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.team .tile{display:flex;flex-direction:column;gap:14px}
.team .frame{aspect-ratio:4/5;background:var(--ink);overflow:hidden}
.team .frame img{width:100%;height:100%;object-fit:cover;object-position:50% 0%;transform-origin:50% 0%}
.team .name{font-size:26px;font-weight:400}
.team .role{font-size:10px}

/* contact */
.contact{padding:80px var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.contact h1{font-size:clamp(38px,4.2vw,56px);line-height:1.05}
.contact p{font-size:17px;line-height:1.75;color:var(--mute);max-width:520px}
.contact .info{display:flex;flex-direction:column;gap:18px}
.contact .info a.big{font-family:'Cormorant Garamond',Georgia,serif;font-size:28px;color:var(--ink)}
.contact iframe{width:100%;min-height:760px;border:0;background:#fff}

/* footer */
.foot{padding:56px var(--pad) 40px;background:var(--ink);color:var(--alab);display:flex;flex-direction:column;gap:36px}
.foot .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;align-items:start}
.foot .col{display:flex;flex-direction:column;gap:10px}
.foot .col p,.foot .col a{font-size:14px;line-height:1.9;color:rgba(248,245,239,.8);display:block}
.foot .col a:hover{color:var(--gold)}
.foot .tag{font-size:13px;line-height:1.7;color:rgba(248,245,239,.6)}
.foot .badge{width:88px;height:88px}
.foot .legal{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;border-top:1px solid rgba(248,245,239,.14);padding-top:20px;font-size:11px;letter-spacing:.12em;color:rgba(248,245,239,.45)}

/* responsive */
@media(max-width:1100px){
  :root{--pad:32px}
  .nav .links{gap:14px}
}
@media(max-width:960px){
  .nav .links{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;margin:0;background:var(--alab);border-top:1px solid var(--stone);border-bottom:1px solid var(--stone)}
  .nav .links a{padding:16px var(--pad);border-bottom:1px solid var(--stone);font-size:12px}
  .nav .links a.mobile-only{display:block}
  .nav.open .links{display:flex}
  .nav .burger{display:flex}
  .nav .book{display:none}
  .statement,.split,.twocol,.italy,.about-hero,.contact{grid-template-columns:1fr}
  .steps .grid,.services .grid,.feat .grid,.feat .cols-3,.feat .cols-4{grid-template-columns:1fr 1fr}
  .team .grid{grid-template-columns:1fr 1fr}
  .foot .grid{grid-template-columns:1fr 1fr}
  .soon{grid-template-columns:1fr}.soon .r{justify-content:flex-start}
  .about-hero .pic{min-height:0;border-right:0;border-bottom:1px solid var(--gold);padding:40px}
  .split .txt{padding:48px var(--pad)}
  .statement{padding:80px var(--pad) 64px;gap:20px}
}
@media(max-width:640px){
  :root{--pad:20px}
  .hero .copy{position:static;padding:28px var(--pad) 36px;max-width:none}
  .hero .copy.right{align-items:flex-start;text-align:left}
  .hero .shade{display:none}
  .hero h1{font-size:34px}
  .hero p{font-size:16px}
  .rot{aspect-ratio:3/2}
  .gal .row.wrap{flex-wrap:wrap}
  .gal .row.wrap img{flex:0 0 calc(50% - 8px) !important;width:calc(50% - 8px)}
  .steps .grid,.services .grid,.feat .grid,.feat .cols-3,.feat .cols-4,.foot .grid{grid-template-columns:1fr}
  .steps,.feat,.cta,.quote{padding-top:64px;padding-bottom:64px}
  .steps .card{padding:24px 0 28px}
  .team .grid{grid-template-columns:1fr 1fr;gap:16px}
  .promo{padding:10px var(--pad)}
  .promo .btn{display:none}
  .nav .logo img{height:36px}
  .italy .box{padding:28px 22px}
  .contact iframe{min-height:640px}
}

/* legal pages */
.legal-page{padding:72px var(--pad) 96px;max-width:860px}
.legal-page h1{font-size:clamp(38px,4.2vw,56px);line-height:1.05;margin-bottom:8px}
.legal-page .meta{font-size:13px;color:var(--mute);margin-bottom:40px}
.legal-page h2{font-size:26px;font-weight:400;margin:40px 0 12px}
.legal-page h3{font-size:20px;font-weight:400;margin:24px 0 8px}
.legal-page p,.legal-page li{font-size:16px;line-height:1.75;color:var(--mute);margin-bottom:14px}
.legal-page ul{padding-left:22px;margin-bottom:14px}
.legal-page li{margin-bottom:8px}
.legal-page a{text-decoration:underline}
.foot .legal a{color:rgba(248,245,239,.6)}.foot .legal a:hover{color:var(--gold)}
/* video */
.motion,.film{background:var(--ink);line-height:0}
.motion video,.film video{display:block;width:100%;height:auto;max-height:88vh;object-fit:cover}
.film .wrap{position:relative}
.film .play{position:absolute;inset:0;width:100%;height:100%;background:rgba(20,16,14,.18);border:0;cursor:pointer;color:var(--alab);display:flex;align-items:center;justify-content:center;padding:0}
.film .ring{width:96px;height:96px;border:1px solid var(--alab);display:flex;align-items:center;justify-content:center;background:rgba(20,16,14,.35);transition:background .25s}
.film .play:hover .ring{background:rgba(94,42,52,.65)}
.film .label{position:absolute;left:var(--pad);bottom:40px;display:flex;flex-direction:column;gap:8px;color:var(--alab);line-height:1.2;pointer-events:none}
.film .label .eyebrow{color:var(--gold)}
.film .label .t{font-size:30px;font-weight:300}
.film .label .note{font-size:12px;letter-spacing:.08em;color:rgba(248,245,239,.7)}
.film.on .play,.film.on .label{display:none}
@media(max-width:640px){.film .ring{width:64px;height:64px}.film .label{bottom:20px}.film .label .t{font-size:22px}}
.film .wrap::after{content:"";position:absolute;left:0;right:0;bottom:0;height:45%;background:linear-gradient(transparent,rgba(20,16,14,.6));pointer-events:none}
.film .play{z-index:2}.film .label{z-index:3}.film.on .wrap::after{display:none}
