:root {
  --bg:#0f0f10;
  --surface:#17181b;
  --surface-2:#1f2024;
  --text:#f2efea;
  --text-soft:#b4ada5;
  --line:rgba(255,255,255,.10);
  --primary:#9a7a5c;
  --primary-dark:#81644d;
  --white:#ffffff;
  --shadow:0 16px 40px rgba(0,0,0,.35);
  --radius-sm:10px;
  --radius-md:18px;
  --radius-lg:28px;
  --container:1200px;
  --text-xs:clamp(.75rem,.72rem + .2vw,.875rem);
  --text-sm:clamp(.9rem,.85rem + .2vw,1rem);
  --text-base:clamp(1rem,.96rem + .25vw,1.1rem);
  --text-xl:clamp(1.8rem,1.3rem + 2vw,3rem);
  --text-hero:clamp(2.6rem,1.6rem + 4vw,5.5rem);
  --header-height:76px
}

*,:before,:after {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:90px
}

body {
  margin:0;
  font-family:"Inter","Helvetica Neue",Arial,sans-serif;
  font-size:var(--text-base);
  line-height:1.6;
  color:var(--text);
  background:var(--bg)
}

body.menu-open {
  overflow:hidden
}

img,video {
  display:block;
  max-width:100%;
  height:auto
}

a {
  text-decoration:none;
  color:inherit;
  transition:180ms ease
}

button {
  font:inherit
}

.container {
  width:min(100% - 2rem,var(--container));
  margin-inline:auto
}

.section {
  padding:clamp(4rem,8vw,7rem) 0
}

.section-eyebrow {
  margin-bottom:.75rem;
  font-size:var(--text-xs);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--text-soft)
}

.section-head {
  max-width:920px;
  margin-bottom:2.5rem
}

.section-head h2,.intro-title h2,.opening-text h2,.contact-content h2 {
  margin:0 0 1rem;
  font-size:var(--text-xl);
  line-height:1.1;
  font-family:"Cormorant Garamond",Georgia,serif;
  font-weight:600
}

.section-head p,.intro-text p,.opening-text p,.contact-content p,.hero-text,.hero-note {
  color:var(--text-soft)
}

.skip-link {
  position:absolute;
  left:-9999px;
  top:auto
}

.skip-link:focus {
  left:1rem;
  top:1rem;
  z-index:9999;
  background:var(--surface);
  padding:.75rem 1rem;
  border-radius:var(--radius-sm)
}

.site-header {
  position:sticky;
  top:0;
  z-index:1000;
  backdrop-filter:blur(14px);
  background:rgba(15,15,16,.82);
  border-bottom:1px solid var(--line)
}

.header-inner {
  min-height:var(--header-height);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem
}

.brand {
  display:inline-flex;
  align-items:center
}

.logo {
  width:90px;
  height:auto;
  display:block
}

.main-nav {
  display:none;
  align-items:center;
  gap:1.5rem
}

.main-nav a {
  font-size:var(--text-sm);
  color:var(--text-soft)
}

.main-nav a:hover,.main-nav a:focus-visible {
  color:var(--text)
}

.nav-toggle {
  display:inline-flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:46px;
  height:46px;
  border:1px solid var(--line);
  background:var(--surface);
  border-radius:999px;
  padding:0 11px;
  cursor:pointer;
  position:relative;
  z-index:1002
}

.nav-toggle span {
  display:block;
  height:2px;
  background:var(--text);
  border-radius:999px
}

.mobile-menu {
  position:absolute;
  left:0;
  right:0;
  top:100%;
  background:rgba(23,24,27,.98);
  border-bottom:1px solid var(--line);
  box-shadow:var(--shadow);
  padding:1rem
}

.mobile-nav {
  display:flex;
  flex-direction:column;
  gap:.5rem
}

.mobile-nav a {
  padding:.9rem 1rem;
  border-radius:14px;
  background:var(--surface-2)
}

.header-cta,.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:.85rem 1.15rem;
  border-radius:999px;
  font-size:var(--text-sm);
  font-weight:600;
  border:1px solid transparent
}

.header-cta,.button-primary {
  background:var(--primary);
  color:var(--white)
}

.header-cta:hover,.button-primary:hover {
  background:var(--primary-dark)
}

.button-secondary {
  background:transparent;
  color:var(--text);
  border-color:var(--line)
}

.button-secondary:hover,.contact-secondary:hover {
  background:var(--surface-2)
}

.hero {
  position:relative;
  min-height:min(100svh,920px);
  display:flex;
  align-items:end;
  overflow:hidden;
  color:var(--white);
  background:#101113
}

.hero-media,.hero-media video,.hero-overlay {
  position:absolute;
  inset:0
}

.hero-media video {
  width:100%;
  height:100%;
  object-fit:cover
}

.hero-overlay {
  background:linear-gradient(to top,rgba(13,10,9,.84) 12%,rgba(13,10,9,.42) 55%,rgba(13,10,9,.24) 100%)
}

.hero-content {
  position:relative;
  z-index:2;
  width:100%;
  padding-block:clamp(7rem,18vw,12rem) clamp(3rem,8vw,5rem);
  max-width:760px
}

.hero-kicker {
  margin:0 0 1rem;
  font-size:var(--text-xs);
  letter-spacing:.16em;
  text-transform:uppercase;
  opacity:.88
}

.hero h1 {
  margin:0 0 1.25rem;
  font-size:var(--text-hero);
  line-height:.95;
  font-family:"Cormorant Garamond",Georgia,serif;
  font-weight:600;
  max-width:10ch
}

.hero-text {
  margin:0 0 1.5rem;
  max-width:34rem;
  color:rgba(255,255,255,.84)
}

.hero-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.9rem;
  margin-bottom:1.25rem
}

.hero-note {
  margin:0;
  font-size:var(--text-sm);
  max-width:36rem;
  color:rgba(255,255,255,.72)
}

.intro-grid,.opening-grid,.contact-grid,.services-grid,.team-grid,.price-sections {
  display:grid;
  gap:1.5rem
}

.intro-grid {
  grid-template-columns:1fr
}

.intro-media {
  margin:0 0 1.5rem;
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow)
}

.intro-media img {
  width:100%;
  height:auto;
  display:block
}

.services-grid,.team-grid,.price-sections {
  grid-template-columns:1fr
}

.service-card,.team-card,.price-group,.opening-hours,.team-quote {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow)
}

.service-card,.team-card,.price-group,.team-quote {
  padding:1.5rem
}

.service-card h3,.team-card h3,.price-group h3 {
  margin:0 0 .6rem;
  font-size:1.1rem
}

.team-photo {
  margin:-1.5rem -1.5rem 1rem;
  border-radius:calc(var(--radius-md) - 2px) calc(var(--radius-md) - 2px) 0 0;
  overflow:hidden;
  background:var(--surface-2)
}

.team-photo img {
  width:100%;
  height:auto;
  display:block;
  aspect-ratio:4/5;
  object-fit:cover
}

.role {
  margin:0 0 .75rem;
  font-size:var(--text-sm);
  color:var(--text-soft)
}

.price-group ul,.opening-hours ul {
  list-style:none;
  margin:0;
  padding:0
}

.price-group li,.opening-hours li {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.9rem 0;
  border-bottom:1px solid var(--line)
}

.price-group li:last-child,.opening-hours li:last-child {
  border-bottom:0
}

.price-group li span:last-child,.opening-hours li span:last-child {
  text-align:right;
  white-space:nowrap;
  font-weight:600
}

.price-group .price-note {
  display:block;
  color:var(--text-soft);
  font-size:var(--text-sm);
  padding-top:0;
  border-bottom:1px solid var(--line);
  line-height:1.5
}

.price-group .price-note:last-child {
  border-bottom:0
}

.opening-hours {
  padding:1.5rem;
  background:var(--surface-2)
}

.contact-grid.single-column-contact {
  grid-template-columns:1fr
}

.contact-content {
  max-width:860px
}

.contact-content address {
  margin:1.5rem 0;
  font-style:normal;
  line-height:1.8
}

.contact-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.9rem
}

.contact-secondary {
  color:var(--text);
  border-color:var(--line);
  background:transparent
}

.site-footer {
  padding:2rem 0;
  border-top:1px solid var(--line);
  background:var(--surface)
}

.footer-inner {
  display:grid;
  gap:1rem
}

.footer-inner nav {
  display:flex;
  flex-wrap:wrap;
  gap:1rem
}

.footer-inner a {
  color:var(--text-soft)
}

.footer-inner a:hover {
  color:var(--text)
}

@media (min-width:720px) {
  .services-grid,.team-grid {
  grid-template-columns:repeat(2,minmax(0,1fr))
}

.intro-grid,.opening-grid,.contact-grid {
  grid-template-columns:1fr 1fr;
  align-items:start
}

.footer-inner {
  grid-template-columns:1fr auto;
  align-items:center
}

.intro-media {
  margin:0
}


}

@media (min-width:980px) {
  .nav-toggle,.mobile-menu {
  display:none
}

.main-nav {
  display:flex
}

.services-grid,.team-grid,.price-sections {
  grid-template-columns:repeat(2,minmax(0,1fr))
}

.price-group.full-width {
  grid-column:1 / -1
}

.header-cta {
  display:inline-flex
}

.hero-content {
  padding-bottom:5.5rem
}

.logo {
  width:110px
}


}

@media (max-width:979px) {
  .header-cta {
  display:none
}


}

@media (max-width:719px) {
  .hero {
  min-height:88svh
}

.hero h1 {
  max-width:12ch
}

.price-group li,.opening-hours li {
  flex-direction:column;
  align-items:flex-start
}

.price-group li span:last-child,.opening-hours li span:last-child {
  text-align:left;
  white-space:normal
}


}

@media (prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto
}

*,*:before,*:after {
  animation:none!important;
  transition:none!important
}


}

@media (max-width:640px) {
  .hero-media video {
  display:none
}

.hero {
  background:linear-gradient(to top,rgba(13,10,9,.9),rgba(13,10,9,.45)),url('assets/hero-video-mobile-pic-1920x1080-1.png') center/cover no-repeat #101113
}


}

