:root{
  --bg:#f6f3ee;
  --surface:#fffdfa;
  --surface-2:#ece7de;
  --text:#171615;
  --muted:#6f6a63;
  --soft:#9b948b;
  --accent:#1c1b19;
  --accent-2:#3c3832;
  --accent-rgb:28,27,25;
  --accent-soft:rgba(28,27,25,.10);
  --accent-contrast:#fffdfa;
  --card:#fffdfa;
  --border:rgba(23,22,21,.12);
  --border-strong:rgba(23,22,21,.22);
  --radius:8px;
  --shadow:0 18px 42px rgba(39,35,29,.09);
  --shadow-sm:0 8px 22px rgba(39,35,29,.07);
  --container:min(1160px, calc(100% - 2rem));
}

*{box-sizing:border-box}

html{
  height:100%;
  scroll-behavior:smooth;
}

body{
  min-height:100%;
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Manrope,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,sans-serif;
  font-size:16px;
  line-height:1.6;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block}

a{
  color:inherit;
  text-decoration-thickness:1px;
  text-underline-offset:.18em;
}

.container{
  width:var(--container);
  margin-inline:auto;
}

.visually-hidden{
  position:absolute!important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.text-muted,
.section-copy,
.card-copy{
  color:var(--muted)!important;
}

.section-copy,
.card-copy{
  line-height:1.75;
}

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(246,243,238,.86);
  border-bottom:1px solid transparent;
  backdrop-filter:saturate(150%) blur(14px);
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.site-header.is-scrolled{
  background:rgba(246,243,238,.94);
  border-bottom-color:var(--border);
  box-shadow:0 8px 26px rgba(39,35,29,.05);
}

.site-header .nav-inner{
  min-height:76px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:1.25rem;
  align-items:center;
  padding:.65rem 0;
}

.brand{
  display:inline-flex;
  align-items:center;
  color:var(--text);
  text-decoration:none;
}

.brand-logo{
  width:auto;
  height:52px;
  object-fit:contain;
}

.nav{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:.2rem;
}

.nav a{
  color:var(--muted);
  text-decoration:none;
  border-radius:999px;
  padding:.5rem .75rem;
  font-size:.9rem;
  font-weight:700;
  transition:color .16s ease, background .16s ease;
}

.nav a:hover,
.nav a:focus-visible{
  color:var(--accent);
  background:var(--accent-soft);
}

.actions{
  display:flex;
  align-items:center;
  gap:.55rem;
}

.nav-toggle{
  display:none!important;
}

.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after{
  display:block;
  width:1rem;
  height:2px;
  border-radius:999px;
  background:currentColor;
  content:"";
  transition:transform .16s ease, opacity .16s ease;
}

.nav-toggle span{
  position:relative;
}

.nav-toggle span::before,
.nav-toggle span::after{
  position:absolute;
  left:0;
}

.nav-toggle span::before{
  transform:translateY(-5px);
}

.nav-toggle span::after{
  transform:translateY(5px);
}

.site-header.nav-open .nav-toggle span{
  background:transparent;
}

.site-header.nav-open .nav-toggle span::before{
  transform:rotate(45deg);
}

.site-header.nav-open .nav-toggle span::after{
  transform:rotate(-45deg);
}

.lang-switch{
  display:inline-flex;
  align-items:center;
  gap:2px;
  padding:3px;
  border:1px solid var(--border);
  border-radius:999px;
  background:rgba(255,253,250,.72);
}

.lang-switch a{
  min-width:34px;
  padding:.32rem .52rem;
  border-radius:999px;
  color:var(--muted);
  text-align:center;
  text-decoration:none;
  font-size:.78rem;
  font-weight:800;
  line-height:1;
}

.lang-switch a.active{
  color:var(--accent-contrast);
  background:var(--accent);
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  min-height:2.6rem;
  padding:.62rem .95rem;
  border:1px solid var(--border-strong);
  border-radius:999px;
  background:transparent;
  color:var(--text);
  font-weight:800;
  line-height:1.15;
  text-decoration:none;
  cursor:pointer;
  box-shadow:none;
  transition:background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.btn:hover,
.btn:focus-visible{
  border-color:var(--text);
  background:rgba(23,22,21,.05);
  color:var(--text);
}

.btn:active{
  transform:translateY(1px);
}

.btn-primary{
  border-color:var(--accent);
  background:var(--accent);
  color:var(--accent-contrast);
}

.btn-primary:hover,
.btn-primary:focus-visible{
  border-color:var(--accent-2);
  background:var(--accent-2);
  color:var(--accent-contrast);
}

.btn-outline-light{
  color:#fffdfa;
  border-color:rgba(255,253,250,.5);
  background:rgba(255,253,250,.08);
}

.btn-outline-light:hover,
.btn-outline-light:focus-visible{
  color:#171615;
  background:#fffdfa;
  border-color:#fffdfa;
}

.btn-outline-primary,
.btn-outline-secondary{
  color:var(--text);
  border-color:var(--border-strong);
}

.btn-danger{
  border-color:#b42318;
  background:#b42318;
  color:#fff;
}

.btn-ghost{
  width:2.6rem;
  padding:0;
  border-color:var(--border);
  color:var(--muted);
  background:rgba(255,253,250,.58);
}

.theme-toggle__icon{
  width:1rem;
  height:1rem;
  border:2px solid currentColor;
  border-radius:50%;
  box-shadow:inset -.32rem -.28rem 0 currentColor;
}

.btn[aria-pressed="true"] .theme-toggle__icon{
  box-shadow:none;
  background:currentColor;
}

.btn-lg{
  min-height:3rem;
  padding:.78rem 1.16rem;
}

/* Layout */
.site-main{
  width:var(--container);
  margin-inline:auto;
  padding:1.4rem 0 3.5rem;
}

.page-shell{
  padding:clamp(1.35rem, 3vw, 2.35rem)!important;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius)!important;
  box-shadow:var(--shadow-sm);
}

.section-kicker{
  margin-bottom:.55rem;
  color:var(--accent);
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.section-title{
  margin:0;
  color:var(--text);
  font-size:clamp(1.8rem, 3.4vw, 3.15rem);
  font-weight:800;
  line-height:1.06;
  letter-spacing:0;
}

.lead{
  max-width:66ch;
  color:var(--muted);
}

.grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1rem;
}

.card,
.card-3d{
  position:relative;
  background:var(--card);
  border:1px solid var(--border)!important;
  border-radius:var(--radius);
  box-shadow:none;
  overflow:hidden;
  color:var(--text);
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.card:hover,
.card-3d:hover{
  border-color:rgba(var(--accent-rgb),.34)!important;
  box-shadow:var(--shadow-sm);
  transform:translateY(-2px);
}

.card-body{
  color:var(--text);
}

.card-img-top{
  background:var(--surface-2);
}

/* Home hero */
.home-hero{
  position:relative;
  min-height:clamp(520px, 72vh, 700px);
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(270px, 340px);
  align-items:end;
  gap:1.2rem;
  padding:clamp(1rem, 2.6vw, 1.6rem);
  overflow:hidden;
  border-radius:var(--radius);
  background-image:var(--hero-image);
  background-size:cover;
  background-position:center;
  box-shadow:var(--shadow);
}

.home-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, var(--hero-overlay-left) 0%, var(--hero-overlay-middle) 46%, var(--hero-overlay-right) 100%),
    linear-gradient(0deg, var(--hero-overlay-bottom) 0%, transparent 42%),
    linear-gradient(180deg, var(--hero-overlay-top) 0%, transparent 34%);
  pointer-events:none;
}

.home-hero__overlay{
  display:none;
}

.home-hero__content,
.home-hero__meta{
  position:relative;
  z-index:1;
}

.home-hero__content{
  max-width:720px;
  padding:clamp(1rem, 3vw, 2.2rem);
  color:#fffdfa;
}

.hero-kicker{
  display:inline-flex;
  width:max-content;
  margin-bottom:1rem;
  padding:.42rem .68rem;
  border:1px solid rgba(255,253,250,.32);
  border-radius:999px;
  color:rgba(255,253,250,.86);
  background:rgba(255,253,250,.1);
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.hero-title{
  max-width:10ch;
  margin:0 0 1rem;
  color:#fffdfa;
  font-size:clamp(3rem, 8vw, 6.35rem);
  font-weight:800;
  line-height:.95;
  letter-spacing:0;
}

.hero-desc{
  max-width:58ch;
  margin:0 0 1.35rem;
  color:rgba(255,253,250,.78);
  font-size:clamp(1rem, 1.35vw, 1.1rem);
}

.home-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
}

.home-hero__meta{
  display:grid;
  gap:0;
  align-self:end;
  background:rgba(255,253,250,.92);
  border:1px solid rgba(255,253,250,.5);
  border-radius:var(--radius);
  box-shadow:0 18px 46px rgba(0,0,0,.18);
  overflow:hidden;
}

.home-hero__meta div{
  padding:1rem 1.1rem;
  border-bottom:1px solid rgba(23,22,21,.1);
}

.home-hero__meta div:last-child{
  border-bottom:0;
}

.home-hero__meta strong{
  display:block;
  color:var(--text);
  font-size:1.55rem;
  font-weight:900;
  line-height:1;
}

.home-hero__meta span{
  display:block;
  margin-top:.35rem;
  color:var(--muted);
  font-size:.84rem;
  font-weight:700;
}

/* Home sections */
.home-section{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:1.5rem;
  margin-top:clamp(2rem, 5vw, 4rem);
  margin-bottom:1rem;
}

.home-intro{
  align-items:start;
}

.home-intro .section-copy{
  max-width:58ch;
  margin:0;
}

.home-service-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
}

.home-service-card{
  min-height:100%;
  display:flex;
  flex-direction:column;
  gap:1rem;
  padding:1.2rem;
}

.service-number{
  width:2.35rem;
  height:2.35rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:.82rem;
  font-weight:900;
}

.home-service-card h3{
  margin:0;
  color:var(--text);
  font-size:1.18rem;
  font-weight:850;
  line-height:1.25;
}

.home-service-card p{
  margin:0;
  color:var(--muted);
  line-height:1.72;
}

.home-service-card__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-top:auto;
  padding-top:1rem;
  border-top:1px solid var(--border);
  color:var(--muted);
  font-size:.9rem;
  font-weight:800;
}

.home-service-card__footer a{
  color:var(--text);
  text-decoration:none;
}

.home-service-card__footer a:hover{
  text-decoration:underline;
}

.home-split{
  display:grid;
  grid-template-columns:minmax(0, 1.25fr) minmax(280px, .75fr);
  gap:1rem;
  margin-top:1rem;
}

.home-panel{
  padding:clamp(1.35rem, 3.3vw, 2.4rem);
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--shadow-sm);
}

.home-panel--dark{
  background:#181716;
  border-color:#181716;
  color:#fffdfa;
}

.home-panel h2{
  max-width:15ch;
  margin:0 0 1rem;
  color:inherit;
  font-size:clamp(1.65rem, 3.2vw, 2.75rem);
  font-weight:800;
  line-height:1.05;
}

.home-panel .section-copy{
  margin-bottom:1.25rem;
}

.home-panel--dark .section-kicker{
  color:#cfc6b8;
}

.home-panel--dark .section-copy{
  color:rgba(255,253,250,.72)!important;
}

.home-steps{
  display:grid;
  gap:.2rem;
}

.home-steps div{
  display:grid;
  grid-template-columns:2.5rem 1fr;
  gap:1rem;
  padding:1rem 0;
  border-top:1px solid rgba(255,253,250,.14);
}

.home-steps span{
  color:#cfc6b8;
  font-weight:900;
}

.home-steps p{
  margin:0;
  color:rgba(255,253,250,.75);
}

.home-portfolio-strip{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
}

.home-portfolio-item{
  position:relative;
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:var(--radius);
  background:#181716;
  color:#fffdfa;
  text-decoration:none;
}

.home-portfolio-item::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, transparent 45%, rgba(0,0,0,.68) 100%);
}

.home-portfolio-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .3s ease, filter .3s ease;
}

.home-portfolio-item span{
  position:absolute;
  left:1rem;
  right:1rem;
  bottom:1rem;
  z-index:1;
  font-weight:850;
  text-shadow:0 2px 12px rgba(0,0,0,.42);
}

.home-portfolio-item:hover img{
  transform:scale(1.035);
  filter:saturate(.95);
}

/* Portfolio, booking, pricing */
.table-responsive{
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
  overflow:hidden;
}

.table{
  margin:0;
  color:var(--text);
}

.table>:not(caption)>*>*{
  padding:1rem;
  border-color:var(--border);
  background:transparent;
}

.table thead th{
  color:var(--muted);
  font-size:.78rem;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.table tbody tr:hover{
  background:rgba(23,22,21,.035);
}

/* Contact */
.contact-shell{
  display:grid;
  gap:1rem;
}

.contact-intro{
  padding:clamp(1.5rem, 4vw, 3rem);
  border-radius:var(--radius);
  background:#181716;
  color:#fffdfa;
  box-shadow:var(--shadow);
}

.contact-intro h1{
  max-width:12ch;
  margin:0 0 1rem;
  color:inherit;
  font-size:clamp(2.4rem, 6vw, 5rem);
  font-weight:800;
  line-height:.98;
  letter-spacing:0;
}

.contact-intro p{
  max-width:64ch;
  margin:0;
  color:rgba(255,253,250,.76);
}

.contact-grid{
  display:grid;
  grid-template-columns:minmax(280px, .82fr) minmax(0, 1.18fr);
  gap:1rem;
  align-items:stretch;
}

.contact-info-panel,
.contact-form-panel,
.contact-map{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
}

.contact-info-panel{
  display:grid;
  overflow:hidden;
}

.contact-info-item{
  padding:1.15rem;
  border-bottom:1px solid var(--border);
}

.contact-info-item:last-child{
  border-bottom:0;
}

.contact-info-item span{
  display:block;
  margin-bottom:.35rem;
  color:var(--soft);
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.contact-info-item a,
.contact-info-item strong{
  color:var(--text);
  font-size:1rem;
  line-height:1.55;
  text-decoration:none;
}

.contact-info-item a:hover{
  text-decoration:underline;
}

.contact-form-panel{
  padding:clamp(1.25rem, 3vw, 2rem);
}

.contact-form-panel h2{
  margin:0 0 1rem;
  color:var(--text);
  font-size:clamp(1.6rem, 2.5vw, 2.25rem);
  font-weight:800;
}

.contact-form{
  display:grid;
  gap:1rem;
}

.contact-form .btn{
  width:max-content;
  min-width:10rem;
}

.contact-map{
  min-height:320px;
  overflow:hidden;
}

.contact-map iframe{
  width:100%;
  height:360px;
  border:0;
  display:block;
}

.contact-map-placeholder{
  min-height:320px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:.35rem;
  color:var(--muted);
  background:var(--surface-2);
  text-align:center;
}

/* Equipment rental */
.equipment-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
  margin-top:1.25rem;
}

.equipment-card{
  display:flex;
  min-height:100%;
  flex-direction:column;
  gap:1rem;
  padding:1.2rem;
}

.equipment-card__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}

.equipment-status{
  display:inline-flex;
  align-items:center;
  min-height:1.8rem;
  padding:.35rem .65rem;
  border-radius:999px;
  font-size:.78rem;
  font-weight:850;
}

.equipment-status.is-available{
  color:var(--accent);
  background:var(--accent-soft);
}

.equipment-status.is-unavailable{
  color:var(--muted);
  background:var(--surface-2);
}

.equipment-card:has(.equipment-status.is-unavailable){
  opacity:.72;
}

.equipment-card h2{
  margin:0;
  color:var(--text);
  font-size:1.25rem;
  font-weight:850;
  line-height:1.25;
}

.equipment-card p{
  margin:0;
  color:var(--muted);
  line-height:1.72;
}

.equipment-price{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:1rem;
  margin-top:auto;
  padding-top:1rem;
  border-top:1px solid var(--border);
}

.equipment-price strong{
  color:var(--text);
  font-size:1.15rem;
  line-height:1;
}

.equipment-price span{
  color:var(--muted);
  font-size:.9rem;
  font-weight:750;
}

.equipment-rent-btn{
  width:100%;
}

.equipment-rent-btn:disabled{
  cursor:not-allowed;
  opacity:.7;
}

.rental-form-equipment{
  padding:.85rem .95rem;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--accent-soft);
  color:var(--accent);
  font-weight:850;
}

/* Admin login */
.admin-login-shell{
  min-height:calc(100vh - 240px);
  display:grid;
  place-items:center;
  padding:clamp(1rem, 5vw, 4rem) 0;
}

.admin-login-panel{
  width:min(100%, 440px);
  padding:clamp(1.35rem, 4vw, 2.2rem);
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--shadow-sm);
}

.admin-login-panel h1{
  margin:0 0 .75rem;
  color:var(--text);
  font-size:clamp(1.8rem, 4vw, 2.45rem);
  font-weight:850;
  line-height:1.05;
}

.admin-login-panel p{
  margin:0 0 1.35rem;
  color:var(--muted);
}

.admin-login-alert{
  margin-bottom:1rem;
  padding:.85rem .95rem;
  border:1px solid rgba(180,35,24,.22);
  border-radius:var(--radius);
  background:#f6dedb;
  color:#92251b;
  font-weight:750;
}

.admin-login-form{
  display:grid;
  gap:1rem;
}

.admin-login-form .btn{
  width:100%;
  margin-top:.25rem;
}

/* Forms */
.form-label{
  color:var(--text);
  font-size:.88rem;
  font-weight:800;
}

input,
textarea,
select,
.form-control,
.form-select{
  min-height:2.85rem;
  padding:.7rem .82rem;
  border:1px solid var(--border);
  border-radius:var(--radius);
  outline:none;
  background:rgba(255,253,250,.78);
  color:var(--text);
  box-shadow:none;
}

textarea,
textarea.form-control{
  min-height:9rem;
  resize:vertical;
}

input:focus,
textarea:focus,
select:focus,
.form-control:focus,
.form-select:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 .22rem rgba(var(--accent-rgb),.14);
  background:var(--surface);
}

.form-text,
small.text-muted{
  color:var(--muted)!important;
}

/* Booking modal */
.swal-booking-popup{
  width:min(780px, calc(100vw - 1.5rem));
  border-radius:var(--radius);
}

.swal-booking-popup .swal2-html-container{
  margin:1rem 0 0;
  overflow:visible;
}

.swal-booking-popup .swal2-title{
  color:var(--text);
  font-weight:850;
}

.swal-booking-popup .form-control{
  min-height:44px;
}

.booking-time-slots{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(70px, 1fr));
  gap:.45rem;
  max-height:176px;
  overflow:auto;
  padding:.45rem;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface-2);
}

.booking-time-slot{
  min-height:34px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--surface);
  color:var(--text);
  font-size:.84rem;
  font-weight:850;
  transition:background .14s ease, border-color .14s ease, color .14s ease;
}

.booking-time-slot:hover{
  border-color:var(--accent);
  color:var(--accent);
}

.booking-time-slot.is-active{
  background:var(--accent);
  border-color:var(--accent);
  color:var(--accent-contrast);
}

.booking-time-slot.is-blocked,
.booking-time-slot.is-blocked:hover{
  background:#f6dedb;
  border-color:#e7bbb5;
  color:#92251b;
  cursor:not-allowed;
}

.booking-time-slot.is-blocked::after{
  content:"";
  display:inline-block;
  width:5px;
  height:5px;
  margin-left:.35rem;
  border-radius:50%;
  background:#b42318;
  vertical-align:middle;
}

.flatpickr-calendar{
  z-index:10000;
}

.flatpickr-calendar .flatpickr-day.flatpickr-disabled.booking-date-blocked,
.flatpickr-calendar .flatpickr-day.flatpickr-disabled.booking-date-blocked:hover{
  color:#92251b;
  background:#f6dedb;
  border-color:#e7bbb5;
  font-weight:850;
  cursor:not-allowed;
  opacity:1;
}

.flatpickr-calendar .flatpickr-day.flatpickr-disabled.booking-date-blocked::after{
  content:"";
  display:block;
  width:4px;
  height:4px;
  margin:1px auto 0;
  border-radius:50%;
  background:#b42318;
}

.swal2-popup{
  border-radius:var(--radius)!important;
}

/* Footer */
.site-footer{
  padding:2rem 0 2.5rem;
  color:var(--muted);
}

.site-footer .inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  border-top:1px solid var(--border);
  padding-top:1.25rem;
  font-size:.92rem;
}

/* Motion */
.reveal-on-scroll{
  opacity:0;
  transform:translateY(14px);
}

.reveal-on-scroll.is-visible{
  opacity:1;
  transform:translateY(0);
  transition:opacity .42s ease, transform .42s ease;
}

@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto!important;
    transition:none!important;
    animation:none!important;
  }
}

/* Dark theme */
.theme-root.dark{
  --bg:#11100f;
  --surface:#191817;
  --surface-2:#23211f;
  --text:#f8f3ea;
  --muted:#b9b0a5;
  --soft:#91887c;
  --accent:#f8f3ea;
  --accent-2:#d8cec0;
  --accent-rgb:248,243,234;
  --accent-soft:rgba(248,243,234,.14);
  --accent-contrast:#171615;
  --card:#191817;
  --border:rgba(248,243,234,.12);
  --border-strong:rgba(248,243,234,.26);
  --shadow:0 18px 48px rgba(0,0,0,.25);
  --shadow-sm:0 10px 30px rgba(0,0,0,.18);
}

.theme-root.dark .site-header,
.theme-root.dark .site-header.is-scrolled{
  background:rgba(17,16,15,.9);
}

.theme-root.dark .btn-primary{
  background:var(--accent);
  border-color:var(--accent);
  color:var(--accent-contrast);
}

.theme-root.dark .btn-primary:hover,
.theme-root.dark .btn-primary:focus-visible{
  background:var(--accent-2);
  border-color:var(--accent-2);
  color:var(--accent-contrast);
}

.theme-root.dark .btn-ghost,
.theme-root.dark .lang-switch{
  background:rgba(255,255,255,.04);
}

.theme-root.dark .lang-switch a.active{
  background:var(--accent);
  color:var(--accent-contrast);
}

.theme-root.dark .home-hero__meta{
  background:rgba(25,24,23,.9);
  border-color:rgba(248,243,234,.14);
}

.theme-root.dark .home-panel--dark,
.theme-root.dark .contact-intro{
  background:#050505;
  border-color:#050505;
}

.theme-root.dark .form-control,
.theme-root.dark .form-select,
.theme-root.dark input,
.theme-root.dark textarea,
.theme-root.dark select{
  background:rgba(255,255,255,.045);
  color:var(--text);
}

.theme-root.dark .form-control:focus,
.theme-root.dark .form-select:focus,
.theme-root.dark input:focus,
.theme-root.dark textarea:focus,
.theme-root.dark select:focus{
  background:rgba(255,255,255,.07);
  box-shadow:0 0 0 .22rem rgba(var(--accent-rgb),.16);
}

.theme-root.dark .booking-time-slot{
  background:rgba(255,255,255,.05);
  color:var(--text);
}

.theme-root.dark .booking-time-slot.is-active{
  background:var(--accent);
  border-color:var(--accent);
  color:var(--accent-contrast);
}

.theme-root.dark .contact-map-placeholder{
  background:#23211f;
}

.theme-root.dark .text-dark{
  color:var(--text)!important;
}

/* Responsive */
@media (max-width: 991.98px){
  .site-header .nav-inner{
    grid-template-columns:1fr auto;
    gap:.75rem;
  }

  .nav{
    grid-column:1 / -1;
    justify-content:flex-start;
    overflow-x:auto;
    padding-bottom:.35rem;
    scrollbar-width:none;
  }

  .nav::-webkit-scrollbar{
    display:none;
  }

  .actions .btn-primary{
    display:none;
  }

  .home-hero{
    min-height:auto;
    grid-template-columns:1fr;
    padding:1rem;
  }

  .home-hero__content{
    padding:clamp(1rem, 5vw, 2rem);
    min-height:460px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
  }

  .hero-title{
    max-width:11ch;
  }

  .home-hero__meta{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }

  .home-hero__meta div{
    border-bottom:0;
    border-right:1px solid rgba(23,22,21,.1);
  }

  .home-hero__meta div:last-child{
    border-right:0;
  }

  .home-section,
  .home-split,
  .contact-grid{
    display:grid;
    grid-template-columns:1fr;
  }

  .home-service-grid,
  .home-portfolio-strip,
  .grid,
  .equipment-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 767.98px){
  .site-header{
    position:sticky;
  }

  .site-header .nav-inner{
    position:relative;
    grid-template-columns:auto 1fr auto;
    min-height:68px;
  }

  .brand{
    grid-column:1;
    grid-row:1;
  }

  .nav{
    position:static;
    grid-column:1 / -1;
    grid-row:2;
    display:flex;
    flex-wrap:nowrap;
    gap:.15rem;
    max-height:none;
    padding:0 0 .35rem;
    overflow-x:auto;
    overflow-y:hidden;
    opacity:1;
    pointer-events:auto;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }

  .nav a{
    flex:0 0 auto;
    border-radius:999px;
    padding:.55rem .72rem;
  }

  .nav-toggle{
    display:none!important;
  }

  .actions{
    grid-column:3;
    grid-row:1;
  }
}

@media (max-width: 575.98px){
  :root{
    --container:min(100% - 1rem, 1160px);
  }

  .site-header .nav-inner{
    min-height:68px;
  }

  .brand-logo{
    height:44px;
  }

  .actions{
    gap:.35rem;
  }

  .lang-switch a{
    min-width:30px;
    padding:.3rem .45rem;
  }

  .home-hero{
    border-radius:var(--radius);
  }

  .home-hero__content{
    min-height:430px;
    padding:1rem;
  }

  .hero-title{
    font-size:clamp(2.7rem, 16vw, 4rem);
  }

  .home-hero__actions .btn{
    width:100%;
  }

  .home-hero__meta{
    grid-template-columns:1fr;
  }

  .home-hero__meta div{
    border-right:0;
    border-bottom:1px solid rgba(23,22,21,.1);
    padding:.9rem 1rem;
  }

  .home-hero__meta div:last-child{
    border-bottom:0;
  }

  .home-section{
    align-items:start;
  }

  .contact-form .btn{
    width:100%;
  }

  .site-footer .inner{
    display:grid;
  }
}
