
:root{
  --bg:#f6efe4;
  --bg2:#fbf6ee;
  --ink:#17302f;
  --ink2:#102624;
  --gold:#caa978;
  --gold-soft:#ead9b3;
  --text:#334744;
  --line:rgba(23,48,47,.12);
  --white:#ffffff;
  --serif:"Georgia","Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 var(--sans)}
img{max-width:100%;display:block}
a{color:inherit}
.topbar{position:fixed;z-index:50;top:0;left:0;right:0;height:92px;padding:16px clamp(20px,4vw,54px);display:flex;align-items:center;justify-content:space-between;color:#fff;transition:.35s;gap:20px}
.topbar.scrolled{height:76px;background:rgba(16,38,36,.94);backdrop-filter:blur(16px);box-shadow:0 10px 30px rgba(0,0,0,.16)}
.brand{display:flex;align-items:center;gap:16px;text-decoration:none;color:inherit;min-width:0}
.brand-mark{width:min(280px,42vw)}
.brand-mark img{width:100%;height:auto;display:block;filter: drop-shadow(0 6px 18px rgba(0,0,0,.22));}
.nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap;justify-content:center}
.nav a,.language a{color:inherit;text-decoration:none;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.nav-cta{border:1px solid rgba(255,255,255,.45);padding:11px 16px;border-radius:999px;background:rgba(255,255,255,.06)}
.header-actions{display:flex;align-items:center;gap:12px}
.language{position:relative}
.lang-current{border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff;font:500 12px var(--sans);cursor:pointer;border-radius:999px;padding:8px 10px;min-width:52px}
.lang-menu{display:none;position:absolute;right:0;top:44px;background:#fff;color:var(--ink);padding:10px;border-radius:18px;min-width:142px;box-shadow:0 10px 35px rgba(0,0,0,.16);gap:8px;grid-template-columns:1fr 1fr}
.language.open .lang-menu{display:grid}
.flag-link{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px}
.flag-link:hover{background:#f6efe4}
.flag-emoji{font-size:18px;line-height:1}
.menu-toggle{display:none;background:none;border:0;width:34px;padding:0}
.menu-toggle span{display:block;height:1px;background:#fff;margin:7px 0}
.hero{min-height:100svh;position:relative;color:#fff;display:flex;align-items:flex-end;overflow:hidden;background:#122a29}
.hero-bg{position:absolute;inset:0;background-image:url('img_5889.jpg');background-size:cover;background-position:center center;transform:scale(1.03)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,17,17,.65) 0%,rgba(4,17,17,.18) 62%),linear-gradient(0deg,rgba(5,20,19,.62),transparent 42%)}
.hero-content{position:relative;z-index:2;padding:0 clamp(24px,7vw,120px) 14vh;max-width:920px}
.eyebrow{margin:0 0 22px;text-transform:uppercase;letter-spacing:.24em;font-size:11px;font-weight:600}
.eyebrow.dark{color:#70817d}.eyebrow.light{color:#d7c3a1}
.hero h1,.section h2{font:clamp(48px,8vw,116px)/.88 var(--serif);letter-spacing:-.03em;margin:0;color:var(--ink)}
.hero h1{color:#fff;max-width:900px}
.hero h1 em,.section h2 em{font-style:italic;color:var(--gold)}
.hero-copy{max-width:640px;font-size:18px;line-height:1.7;margin:28px 0 34px;color:rgba(255,255,255,.88)}
.hero-buttons{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;padding:15px 22px;text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font-size:11px;border:1px solid transparent;cursor:pointer;border-radius:999px}
.btn-light{background:#fff;color:var(--ink)}.btn-ghost{color:#fff;border-color:rgba(255,255,255,.5);background:transparent}
.hero-bottom{position:absolute;z-index:2;bottom:28px;left:clamp(24px,7vw,120px);right:clamp(24px,7vw,120px);display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.2em;text-transform:uppercase}.hero-bottom a{text-decoration:none;font-size:22px}
.section{padding:clamp(84px,10vw,150px) clamp(22px,7vw,120px)}
.intro{display:grid;grid-template-columns:1.05fr .95fr;gap:9vw;align-items:end;background:var(--bg2)}
.intro h2,.harbour h2,.bar h2,.team h2,.dolce h2,.contact h2,.service h2{font-size:clamp(46px,6.6vw,94px)}
.intro-text{max-width:620px}.lead{font:28px/1.38 var(--serif);color:var(--ink)}
.intro-text>p:not(.lead),.bar-copy p,.team-copy p,.dolce-copy>p:not(.lead),.section-head>p:not(.eyebrow),.contact-copy>p{line-height:1.8;font-size:16px}
.signature{font:italic 32px var(--serif);margin-top:34px;color:var(--ink)}
.heritage{display:grid;grid-template-columns:1fr minmax(180px,.4fr) 1fr;align-items:center;gap:30px;padding:0 clamp(22px,7vw,120px) 110px;background:var(--bg2)}
.heritage-photo{min-height:480px;background-size:cover;background-position:center;border-radius:26px}
.heritage-old{background-image:url('slider5.jpg');filter:sepia(.15)}
.heritage-roberta{background-image:url('roberta.jpg')}
.heritage-center{text-align:center}.heritage-center>span{font:20px var(--serif);color:var(--ink)}.heritage-center i{height:120px;width:1px;background:var(--line);display:block;margin:18px auto}.heritage-center p{font:20px/1.35 var(--serif);color:var(--ink)}
.harbour{background:#f5eddc}.section-head{display:grid;grid-template-columns:1fr 1fr;column-gap:8vw}.section-head .eyebrow{grid-column:1/-1}.section-head p:last-child{max-width:560px;align-self:end}
.harbour-image{position:relative;height:min(62vw,690px);margin-top:60px;background:url('img_5889.jpg') center/cover no-repeat;border-radius:28px;overflow:hidden}.floating-card{position:absolute;right:0;bottom:0;background:var(--ink);color:#fff;width:220px;height:176px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-top-left-radius:28px}.floating-card strong{font:68px/1 var(--serif)}.floating-card span{text-transform:uppercase;font-size:10px;letter-spacing:.18em;margin-top:8px}.facts{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);margin-top:38px}.facts div{padding:26px 18px 0;border-right:1px solid var(--line)}.facts div:first-child{padding-left:0}.facts strong{font:32px var(--serif);display:block;color:var(--ink)}.facts span{display:block;margin-top:8px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#6f7d78}
.service{background:var(--ink2);color:#fff}.service h2{color:#fff}.service-heading{max-width:940px;margin-bottom:62px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.15);border-left:1px solid rgba(255,255,255,.15)}.service-card{padding:38px 32px 44px;border-right:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.15);min-height:250px}.service-card>span{font-size:10px;letter-spacing:.18em;color:#d6c29b}.service-card h3{font:29px var(--serif);font-weight:400;margin:34px 0 14px;color:#fff}.service-card p{color:rgba(255,255,255,.7);line-height:1.7;font-size:14px}
.bar{display:grid;grid-template-columns:.98fr 1.02fr;gap:8vw;align-items:center;background:var(--bg2)}
.bar-photo{min-height:620px;background:url('bar.jpg') center/cover no-repeat;border-radius:26px;position:relative;overflow:hidden}
.badge{position:absolute;left:22px;top:22px;background:rgba(23,48,47,.88);color:#fff;padding:12px 15px;border-radius:999px;text-transform:uppercase;font-size:10px;letter-spacing:.14em}
.team{display:grid;grid-template-columns:1.02fr .98fr;gap:8vw;align-items:center;background:#efe4d0}
.team-copy{max-width:560px}.team-photo{min-height:620px;background:url('bisoli-team.png') center/cover no-repeat;border-radius:26px}
.team-note{margin-top:26px;color:#7a6a53;text-transform:uppercase;letter-spacing:.16em;font-size:11px}
.dolce{display:grid;grid-template-columns:1.04fr .96fr;gap:8vw;align-items:center;background:var(--bg)}
.dolce-photo{min-height:700px;background:url('dolce-vita-hafen.jpg') center/cover no-repeat;border-radius:26px}.dolce-copy{max-width:610px}.text-link{display:inline-block;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:5px;margin-top:24px;text-transform:uppercase;font-size:11px;letter-spacing:.14em}
.quote-section{background:#ccb188;padding:120px 22px}.quote-inner{max-width:980px;margin:auto;text-align:center}.quote-inner>p{font:70px var(--serif);margin:0;color:var(--ink)}.quote-inner blockquote{font:clamp(32px,4.6vw,62px)/1.14 var(--serif);margin:0 0 30px;color:var(--ink)}.quote-inner span{text-transform:uppercase;font-size:11px;letter-spacing:.2em;color:#5f503d}
.contact{background:#17302f;color:#fff;display:grid;grid-template-columns:.94fr 1.06fr;gap:9vw}.contact h2{color:#fff}.contact-copy>p{color:rgba(255,255,255,.74);max-width:530px}.contact-direct{display:grid;gap:10px;margin-top:42px}.contact-direct a,.contact-direct span{color:#fff;text-decoration:none;font-size:14px}
.contact-form{background:#f4ecdf;color:var(--ink);padding:clamp(28px,4vw,54px);border-radius:28px}.contact-form label{display:block;margin-bottom:20px}.contact-form label>span:first-child{display:block;text-transform:uppercase;font-size:9px;letter-spacing:.16em;margin-bottom:8px;color:#64716d}.contact-form input,.contact-form textarea,.contact-form select{width:100%;font:16px var(--sans);color:var(--ink);background:transparent;border:0;border-bottom:1px solid rgba(24,48,47,.35);padding:9px 0 12px;outline:none;border-radius:0}.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:var(--ink)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:28px}.consent{display:flex!important;gap:10px;align-items:flex-start}.consent input{width:auto;margin-top:4px}.consent span{font-size:10px!important;line-height:1.5;text-transform:none!important;letter-spacing:0!important}.submit{background:var(--ink);color:#fff;width:100%}.honeypot{display:none}.preview-success{margin-top:16px;padding:14px 16px;border-radius:16px;background:#e5f1ea;color:#17302f;font-size:14px}
footer{background:#0c1d1c;color:#fff;padding:56px clamp(22px,7vw,120px) 32px;display:grid;grid-template-columns:1fr auto;gap:34px;align-items:end}.footer-logo{max-width:320px;margin-bottom:14px}.footer-copy p{margin:0;color:rgba(255,255,255,.7)}.footer-links{display:flex;gap:18px;flex-wrap:wrap}.footer-links a{color:rgba(255,255,255,.72);text-decoration:none;font-size:11px;text-transform:uppercase;letter-spacing:.12em}.footer-meta{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:22px;font-size:9px;color:rgba(255,255,255,.48);letter-spacing:.08em}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:1024px){.nav{gap:14px}.brand-mark{width:min(240px,46vw)}.topbar{padding-inline:18px}}
@media(max-width:920px){.nav{position:fixed;inset:0;background:var(--ink2);display:flex;flex-direction:column;justify-content:center;gap:18px;transform:translateX(100%);transition:.35s;z-index:55}.nav.open{transform:none}.nav a{font:30px var(--serif);text-transform:none}.nav-cta{border-radius:999px}.menu-toggle{display:block;position:relative;z-index:60}.language{z-index:61}.intro,.section-head,.bar,.team,.dolce,.contact{grid-template-columns:1fr}.intro{gap:48px}.heritage{grid-template-columns:1fr 1fr}.heritage-center{grid-column:1/-1;grid-row:2}.heritage-center i{height:54px}.heritage-photo{min-height:360px}.facts{grid-template-columns:repeat(2,1fr)}.service-grid{grid-template-columns:1fr 1fr}.section-head p:last-child{margin-top:28px}.topbar{height:82px}.brand-mark{width:min(220px,60vw)}}
@media(max-width:620px){.hero-content{padding-bottom:18vh}.hero-copy{font-size:15px}.hero-buttons .btn{width:100%}.heritage{gap:12px}.heritage-photo{min-height:240px}.service-grid{grid-template-columns:1fr}.facts{grid-template-columns:1fr 1fr}.facts div{padding:20px 10px 0}.floating-card{width:150px;height:126px}.floating-card strong{font-size:50px}.bar-photo,.team-photo,.dolce-photo{min-height:420px}.form-row{grid-template-columns:1fr;gap:0}footer{grid-template-columns:1fr}.section{padding-left:20px;padding-right:20px}.harbour-image{height:55vh}.contact-form{padding:24px}}
