*{margin:0;padding:0;box-sizing:border-box}
:root{
  --black:#080808;
  --dark:#111111;
  --card:#1A1A1A;
  --silver:#e7fcff;
  --silver-light:#effffe;
  --white:#F5F5F5;
  --mid:#e5fcff;
  --border:#2A2A2A;
}
html{scroll-behavior:smooth}
body{background:var(--black);color:var(--white);font-family:'DM Sans',sans-serif;font-weight:300;overflow-x:hidden}

nav{display:flex;justify-content:space-between;align-items:center;padding:1.4rem 5rem;background:var(--dark);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}
.logo{display:flex;flex-direction:column}
.logo-main{font-family:'DM Serif Display',serif;font-size:1.1rem;background:linear-gradient(135deg,var(--silver-light),var(--silver),#888);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.logo-sub{font-size:0.65rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--mid);margin-top:2px}
nav ul{display:flex;gap:2.5rem;list-style:none}
nav ul li a{font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--mid);text-decoration:none;font-weight:400;transition:color 0.2s}
nav ul li a:hover{color:var(--white)}
.nav-book{font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;background:var(--white);color:var(--black);padding:0.6rem 1.4rem;text-decoration:none;font-weight:500;transition:background 0.2s}
.nav-book:hover{background:var(--silver-light)}

.hero{display:grid;grid-template-columns:1fr 1fr;min-height:90vh;position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:var(--dark);will-change:transform}
.hero-overlay{position:absolute;inset:0;background:rgba(8,8,8,0.6)}
.hero-content{position:relative;z-index:2;padding:0 5rem;display:flex;flex-direction:column;justify-content:center}
.hero-tag{font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--mid);margin-bottom:1.8rem}
h1{font-family:'DM Serif Display',serif;font-size:4.8rem;line-height:1;margin-bottom:1.5rem;font-weight:400;background:linear-gradient(135deg,var(--silver-light),var(--silver),#999);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
h1 em{font-style:italic}
.hero-sub{font-size:0.95rem;line-height:1.8;color:var(--white);max-width:420px;margin-bottom:2.5rem;font-weight:300}
.hero-btns{display:flex;gap:1rem;align-items:center}
.btn-book{background:var(--white);color:var(--black);padding:0.9rem 2rem;font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:500;font-family:'DM Sans',sans-serif;border:none;cursor:pointer;transition:background 0.2s;text-decoration:none;display:inline-block}
.btn-book:hover{background:var(--silver-light)}
.btn-ghost{font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--mid);background:none;border:none;border-bottom:1px solid var(--border);padding-bottom:3px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:color 0.2s}
.btn-ghost:hover{color:var(--white);border-color:var(--mid)}
.hero-image{position:relative;z-index:2;display:flex;align-items:center;justify-content:flex-start;padding:3rem 3rem 3rem 1rem}
.hero-img{width:100%;height:540px;object-fit:cover;object-position:left center}

.about-services{padding:6rem 5rem;border-bottom:1px solid var(--border)}
.about-services-inner{display:grid;grid-template-columns:1fr 1fr;gap:6rem}
.section-label{font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--mid);margin-bottom:0.8rem;font-weight:400}
h2{font-family:'DM Serif Display',serif;font-size:2.6rem;font-weight:400;line-height:1.15;margin-bottom:1.5rem;background:linear-gradient(135deg,var(--silver-light),var(--silver),#999);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
h2 em{font-style:italic}
.about-col p{font-size:0.88rem;line-height:1.9;color:var(--white);margin-bottom:1rem;font-weight:300}
.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);margin-top:2.5rem}
.stat{background:var(--card);padding:1.8rem 1.5rem}
.stat-num{font-family:'DM Serif Display',serif;font-size:2.5rem;background:linear-gradient(135deg,var(--silver-light),var(--silver));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}
.stat-label{font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--mid);margin-top:0.5rem}
.service-list{display:flex;flex-direction:column;gap:1.5rem}
.service-item{display:block;border-bottom:1px solid var(--border);padding-bottom:1.5rem}
.service-item:last-child{border-bottom:none;padding-bottom:0}
.service-img{width:140px;height:85px;object-fit:cover;filter:grayscale(30%)}
.service-text h3{font-family:'DM Serif Display',serif;font-size:1.1rem;font-weight:400;color:var(--silver-light);margin-bottom:0.5rem}
.service-text p{font-size:0.82rem;line-height:1.7;color:var(--white);font-weight:300}

.visit{padding:5rem;background:var(--dark);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.visit-inner{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--border)}
.visit-block{padding:2.5rem;border-right:1px solid var(--border)}
.visit-block:last-child{border-right:none}
.visit-block h3{font-family:'DM Serif Display',serif;font-size:1.1rem;font-weight:400;color:var(--silver-light);margin-bottom:1.5rem;margin-top:0.8rem}
.hours{display:flex;flex-direction:column;gap:0.5rem}
.hours-row{display:flex;justify-content:space-between;font-size:0.82rem;color:var(--white);padding-bottom:0.5rem;border-bottom:1px solid var(--border);font-weight:300}
.hours-row.closed{color:var(--mid)}
.hours-row:last-child{border-bottom:none}
.visit-text{font-size:0.85rem;line-height:1.9;color:var(--white);font-weight:300}
.visit-link{color:var(--silver);text-decoration:none;font-size:0.8rem;display:inline-block;margin-top:1rem;border-bottom:1px solid var(--border);padding-bottom:2px;transition:color 0.2s}
.visit-link:hover{color:var(--white)}

.contact{padding:5rem;background:var(--black)}
.contact-inner{display:grid;grid-template-columns:1fr 1.5fr;gap:6rem;align-items:start}
.contact-left h2{margin-bottom:1rem}
.contact-left p{font-size:0.88rem;line-height:1.9;color:var(--white);font-weight:300}
.form{display:flex;flex-direction:column;gap:1.2rem}
.fg{display:flex;flex-direction:column;gap:0.4rem}
.fg label{font-size:0.65rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--mid);font-weight:400}
.fg input,.fg textarea,.fg select{background:var(--card);border:1px solid var(--border);padding:0.85rem 1rem;font-family:'DM Sans',sans-serif;font-size:0.85rem;color:var(--white);outline:none;width:100%;transition:border-color 0.2s;font-weight:300}
.fg input::placeholder,.fg textarea::placeholder{color:var(--mid)}
.fg input:focus,.fg textarea:focus,.fg select:focus{border-color:var(--silver)}
.fg select{color:var(--white)}
.fg select option{background:var(--card)}
.fg textarea{resize:vertical;min-height:100px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.btn-submit{background:var(--white);color:var(--black);padding:1rem;font-family:'DM Sans',sans-serif;font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;border:none;cursor:pointer;font-weight:500;transition:background 0.2s;margin-top:0.3rem}
.btn-submit:hover{background:var(--silver-light)}

footer{background:var(--dark);padding:2rem 5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;border-top:1px solid var(--border)}
.footer-left{display:flex;flex-direction:column;gap:0.3rem}
.footer-logo{font-family:'DM Serif Display',serif;font-size:0.95rem;color:var(--silver-light)}
.footer-address{font-size:0.68rem;color:var(--mid);letter-spacing:0.05em}
.footer-copy{font-size:0.68rem;color:var(--mid);letter-spacing:0.08em}
.footer-credit{font-size:0.65rem;color:var(--mid);text-decoration:none;letter-spacing:0.1em;text-transform:uppercase;transition:color 0.2s}
.footer-credit:hover{color:var(--silver)}

.fade-in{opacity:0;transform:translateY(16px);transition:opacity 0.65s ease,transform 0.65s ease}
.fade-in.visible{opacity:1;transform:translateY(0)}