:root{
  --navy-950:#050F1A;
  --navy-800:#0D2036;
  --navy-700:#16293F;
  --copper:#C1823F;
  --copper-light:#E0A868;
  --parchment:#EDE7DA;
  --steel:#7E93A8;
  --hairline:rgba(237,231,218,0.12);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--navy-950);color:var(--parchment);font-family:'IBM Plex Sans',sans-serif;line-height:1.6;overflow-x:hidden;}
h1,h2{font-family:'Spectral',serif;font-weight:500;}
.mono{font-family:'IBM Plex Mono',monospace;letter-spacing:0.01em;}
a{color:var(--copper-light);}
.inner{max-width:1000px;margin:0 auto;padding:0 40px;}

/* Topbar — static, not floating */
.topbar{
  display:flex;align-items:center;gap:40px;
  padding:22px 40px;background:var(--navy-950);
}
.topbar-logo{height:36px;}
.topbar nav{display:flex;gap:28px;margin-right:auto;}
.topbar nav a{
  color:var(--parchment);text-decoration:none;font-size:0.9rem;
  position:relative;padding-bottom:3px;
}
.topbar nav a::after{
  content:"";position:absolute;left:50%;right:50%;bottom:0;height:1px;
  background:var(--copper);transition:left .25s ease,right .25s ease;
}
.topbar nav a:hover::after{left:0;right:0;}
.lang-switch{position:relative;display:flex;border:1px solid var(--hairline);border-radius:20px;padding:3px;}
.lang-pill{position:absolute;top:3px;bottom:3px;background:var(--copper);border-radius:16px;transition:left .3s ease,width .3s ease;z-index:0;}
.lang-switch button{
  position:relative;z-index:1;background:transparent;border:none;color:var(--steel);
  padding:6px 14px;font-family:'IBM Plex Mono',monospace;font-size:0.76rem;
  cursor:pointer;transition:color .3s ease;
}
.lang-switch button.active{color:var(--navy-950);}

/* Hero */
.hero{
  display:flex;
  justify-content:center;
  min-height:78vh;
  padding:0 40px;
}
.hero-inner{
  width:100%;
  max-width:1100px;
  display:grid;
  grid-template-columns:1fr 560px;
  align-items:center;
  gap:56px;
}
.hero-text h1{
  font-size:clamp(2.1rem,4.4vw,3.4rem);line-height:1.12;
  opacity:0;transform:translateY(18px);
  animation:riseIn .9s ease-out .15s forwards;
}
.hero-sub{
  margin-top:14px;font-size:1.15rem;color:var(--copper-light);
  opacity:0;transform:translateY(18px);
  animation:riseIn .9s ease-out .35s forwards;
}
@keyframes riseIn{to{opacity:1;transform:translateY(0);}}

/* Hero photo — hull plate shape (fixed size, doesn't depend on viewport math) */
.hero-photo{
  position:relative;
  width:560px;
  height:420px;
  flex-shrink:0;
}
.hero-photo .plate{
  position:absolute;inset:0;
  clip-path:polygon(28px 0, 100% 0, 100% calc(100% - 28px), calc(100% - 28px) 100%, 0 100%, 0 28px);
  overflow:hidden;
  box-shadow:0 30px 70px rgba(0,0,0,0.5);
}
.hero-photo .plate img{
  width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.12);animation:kenburns 16s ease-out forwards;
}
.hero-photo .plate::after{
  content:"";position:absolute;inset:0;
  border:2px solid var(--copper);
  clip-path:polygon(28px 0, 100% 0, 100% calc(100% - 28px), calc(100% - 28px) 100%, 0 100%, 0 28px);
  pointer-events:none;
}
@keyframes kenburns{to{transform:scale(1);}}
.hero-medallion{
  position:absolute;left:-38px;bottom:-38px;width:96px;height:96px;
  border-radius:50%;background:var(--navy-950);border:3px solid var(--copper);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  box-shadow:0 10px 26px rgba(0,0,0,0.5);
  z-index:2;
}
.hero-medallion img{width:78%;height:78%;object-fit:contain;}

/* Bands */
.band{padding:96px 0;}
.band.alt{background:var(--navy-800);}
h2{font-size:1.6rem;margin-bottom:32px;}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease;}
.reveal.in-view{opacity:1;transform:translateY(0);}

/* Who We Are */
.who-grid{display:grid;grid-template-columns:0.9fr 1.4fr;gap:56px;align-items:start;}
.stat-block{display:flex;flex-direction:column;padding-top:8px;}
.stat-number{font-family:'Spectral',serif;font-size:5rem;color:var(--copper);line-height:1;}
.stat-label{margin-top:10px;font-family:'IBM Plex Mono',monospace;font-size:0.78rem;color:var(--steel);line-height:1.5;}
.registry-list div{display:flex;gap:16px;padding:14px 0;border-top:1px solid var(--hairline);}
.registry-list div:last-child{border-bottom:1px solid var(--hairline);}
.registry-list dt{flex:0 0 210px;color:var(--steel);font-size:0.88rem;}

/* Departments */
.dept-list{list-style:none;}
.dept-list li{
  position:relative;display:flex;align-items:center;gap:16px;
  padding:16px 20px;margin:0 -20px;border-top:1px solid var(--hairline);
  transition:background .25s ease;
}
.dept-list li:last-child{border-bottom:1px solid var(--hairline);}
.dept-list li:hover{background:rgba(193,130,63,0.08);}
.dept-list li span{flex:1;}
.dept-list a{text-decoration:none;}
.needle{
  width:14px;height:14px;fill:var(--steel);
  transform:rotate(20deg);transition:transform .35s ease,fill .35s ease;
  flex-shrink:0;
}
.dept-list li:hover .needle{transform:rotate(90deg);fill:var(--copper);}

/* Legal notice */
.legal{background:var(--navy-800);}
.legal-block h3{font-size:0.92rem;font-weight:600;color:var(--copper-light);margin-top:24px;margin-bottom:6px;}
.legal-block h3:first-of-type{margin-top:0;}
.legal-block p{color:var(--steel);font-size:0.92rem;}

/* Contact */
.contact{position:relative;text-align:center;overflow:hidden;}
.compass-rose{
  position:absolute;top:50%;left:50%;width:520px;height:520px;
  transform:translate(-50%,-50%);
  fill:none;stroke:var(--copper);opacity:0.08;
  animation:spin 90s linear infinite;
}
.compass-rose path{fill:var(--copper);stroke:none;}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg);}}
.contact a{font-family:'Spectral',serif;font-size:1.7rem;text-decoration:none;border-bottom:1px solid var(--copper);padding-bottom:4px;}

footer{text-align:center;padding:26px;color:var(--steel);font-size:0.78rem;background:var(--navy-950);}

@media (max-width:960px){
  .hero{padding:40px 24px;}
  .hero-inner{grid-template-columns:1fr;gap:40px;}
  .hero-photo{width:100%;max-width:560px;height:340px;margin:0 auto;}
}
@media (max-width:820px){
  .topbar{flex-wrap:wrap;gap:16px;padding:18px 24px;}
  .topbar nav{order:3;width:100%;gap:20px;}
  .inner{padding:0 24px;}
  .who-grid{grid-template-columns:1fr;gap:32px;}
  .registry-list dt{flex-basis:150px;font-size:0.82rem;}
  .dept-list li{margin:0 -14px;padding:14px;flex-wrap:wrap;}
  .compass-rose{width:340px;height:340px;}
}
@media (prefers-reduced-motion:reduce){
  .hero-text h1,.hero-sub,.hero-photo img,.compass-rose{animation:none;opacity:1;transform:none;}
  .reveal{opacity:1;transform:none;transition:none;}
}
.bimco-number{
  color:var(--copper-light);
  font-weight:600;
  padding:2px 6px;
  background:rgba(193,130,63,0.14);
  border-radius:3px;
}
.phone-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-top:20px;
}
.landline-icon{
  width:30px;height:30px;
  flex-shrink:0;
  image-rendering:-webkit-optimize-contrast;
}
.phone-row a{
  font-size:1.3rem;
  text-decoration:none;
  border-bottom:1px solid var(--copper);
  padding-bottom:3px;
}
.phone-tag{
  font-size:0.7rem;
  color:var(--steel);
  border:1px solid var(--hairline);
  padding:2px 9px;
  border-radius:10px;
}

.hero-kicker{
  font-family:'IBM Plex Mono',monospace;
  font-size:0.8rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--copper-light);
  margin-bottom:16px;
  opacity:0;transform:translateY(14px);
  animation:riseIn .9s ease-out 0s forwards;
  display:flex;align-items:center;flex-wrap:wrap;gap:2px;
}
.hero-kicker .motto-sep{
  color:var(--copper);
  opacity:0.6;
  font-size:0.6rem;
  margin:0 4px;
}

.cookie-banner{
  position:fixed;
  left:0;right:0;bottom:0;
  background:var(--navy-800);
  border-top:2px solid var(--copper);
  box-shadow:0 -20px 50px rgba(0,0,0,0.5);
  z-index:200;
  transform:translateY(100%);
  transition:transform .5s ease;
}
.cookie-banner.visible{transform:translateY(0);}
.cookie-inner{
  max-width:1000px;
  margin:0 auto;
  padding:20px 40px;
  display:flex;
  align-items:center;
  gap:24px;
  flex-wrap:wrap;
}
.cookie-inner p{
  flex:1 1 380px;
  font-size:0.85rem;
  color:var(--steel);
  line-height:1.5;
}
.cookie-actions{display:flex;gap:10px;flex-shrink:0;}
.cookie-actions button{
  font-family:'IBM Plex Mono',monospace;
  font-size:0.76rem;
  letter-spacing:0.03em;
  padding:9px 16px;
  border-radius:2px;
  cursor:pointer;
  border:1px solid var(--hairline);
  background:transparent;
  color:var(--parchment);
  transition:background .2s ease,border-color .2s ease;
}
#cookieDismiss:hover,
#cookieDismiss:focus-visible{
  background:var(--copper);
  border-color:var(--copper);
  color:var(--navy-950);
}
#cookieAccept{
  background:var(--copper);
  border-color:var(--copper);
  color:var(--navy-950);
  font-weight:600;
}
#cookieAccept:hover{background:var(--copper-light);}
#cookieReject:hover{border-color:var(--copper);color:var(--copper-light);}

@media (max-width:640px){
  .cookie-inner{padding:18px 24px;}
}

#tidio-chat-iframe{
  transition: bottom .3s ease !important;
}
body.cookie-banner-visible #tidio-chat-iframe{
  bottom: 92px !important;
}