:root{
  --onyx:#0e0e0e;
  --onyx-2:#171614;
  --onyx-3:#1f1d19;
  --gold:#c9a24b;
  --gold-soft:#d8bd7c;
  --cream:#f2efe9;
  --stone:#b8b2a6;
  --stone-dim:#8a8478;
  --line:#322f29;
  --line-light:#ddd6c8;
  --ok:#7fae7f;
  --warn:#c96a4b;
  --serif:'Georgia','Cambria','Times New Roman',serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--onyx);
  color:var(--cream);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
}
::selection{background:var(--gold);color:var(--onyx);}
a{color:var(--gold-soft);}

.wrap{width:100%; max-width:900px; margin:0 auto; padding:0 24px;}

/* ---------- Top nav ---------- */
.topnav{
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 28px; border-bottom:1px solid var(--line);
  position:sticky; top:0; background:rgba(14,14,14,0.9); backdrop-filter:blur(8px); z-index:50;
}
.brand{font-family:var(--serif); font-size:19px; letter-spacing:.5px; color:var(--cream); text-decoration:none;}
.brand span{color:var(--gold);}
.navlinks{display:flex; gap:26px; align-items:center;}
.navlinks a{font-size:12.5px; letter-spacing:1px; text-transform:uppercase; color:var(--stone); text-decoration:none; transition:.2s;}
.navlinks a:hover, .navlinks a.active{color:var(--gold);}
@media (max-width:640px){ .navlinks{gap:16px;} .navlinks a{font-size:11px;} }

main{padding:60px 0 90px;}

.kicker{
  font-size:11px; letter-spacing:3px; color:var(--gold); text-transform:uppercase;
  font-weight:600; margin-bottom:16px; display:flex; align-items:center; gap:10px;
}
.kicker::before{content:''; width:18px; height:1px; background:var(--gold);}

h1,h2,h3{font-family:var(--serif); font-weight:600;}
h1{font-size:clamp(32px,5vw,52px); line-height:1.08; margin-bottom:18px;}
h2{font-size:clamp(24px,3.4vw,34px); line-height:1.15; margin-bottom:16px;}
p.lead{color:var(--stone); font-size:15.5px; line-height:1.75; max-width:620px; margin-bottom:10px;}

/* ---------- Cards ---------- */
.card{
  background:var(--onyx-2); border:1px solid var(--line); border-radius:6px;
  padding:32px; margin-bottom:24px;
}
.card-title{font-family:var(--serif); font-size:19px; color:var(--cream); margin-bottom:6px;}
.card-sub{font-size:13px; color:var(--stone-dim); margin-bottom:20px;}

/* ---------- Forms ---------- */
label{display:block; font-size:11.5px; letter-spacing:1px; text-transform:uppercase; color:var(--stone); margin-bottom:8px;}
.field{margin-bottom:22px;}
input[type=text], input[type=date], input[type=time], input[type=number], input[type=email], input[type=tel], select, textarea{
  width:100%; background:var(--onyx-3); border:1px solid var(--line); color:var(--cream);
  padding:13px 14px; border-radius:4px; font-family:var(--sans); font-size:14.5px; outline:none;
  transition:border-color .2s;
}
input:focus, select:focus, textarea:focus{border-color:var(--gold);}
textarea{min-height:110px; resize:vertical;}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.row3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:18px;}
@media (max-width:640px){ .row2, .row3{grid-template-columns:1fr;} }

.radio-group{display:flex; gap:14px; flex-wrap:wrap;}
.radio-card{
  flex:1; min-width:160px; border:1px solid var(--line); border-radius:5px; padding:16px;
  cursor:pointer; transition:.2s; background:var(--onyx-3);
}
.radio-card.selected{border-color:var(--gold); background:rgba(201,162,75,0.08);}
.radio-card input{display:none;}
.radio-card .rc-title{font-size:14px; color:var(--cream); font-weight:600; margin-bottom:4px;}
.radio-card .rc-sub{font-size:12px; color:var(--stone-dim);}

.checkbox-row{display:flex; align-items:flex-start; gap:12px; padding:14px 0; border-bottom:1px solid var(--line);}
.checkbox-row:last-child{border-bottom:none;}
.checkbox-row input{margin-top:3px; width:16px; height:16px; accent-color:var(--gold);}
.checkbox-row .cb-title{font-size:14px; color:var(--cream);}
.checkbox-row .cb-sub{font-size:12px; color:var(--stone-dim); margin-top:2px;}
.checkbox-row .cb-price{margin-left:auto; font-family:var(--serif); font-size:15px; color:var(--gold); white-space:nowrap; padding-left:12px;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 28px; border-radius:4px; font-size:13px; letter-spacing:1px; text-transform:uppercase;
  font-weight:600; cursor:pointer; border:1px solid transparent; text-decoration:none; transition:.2s;
}
.btn-gold{background:var(--gold); color:var(--onyx);}
.btn-gold:hover{background:var(--gold-soft);}
.btn-outline{background:transparent; color:var(--cream); border-color:var(--line);}
.btn-outline:hover{border-color:var(--gold); color:var(--gold);}
.btn-telegram{background:#2AABEE; color:#fff;}
.btn-telegram:hover{background:#1e96d6;}
.btn-block{width:100%;}
.btn[disabled]{opacity:.5; cursor:not-allowed;}

/* ---------- Quote result ---------- */
.quote-box{
  border:1px solid var(--gold); border-radius:6px; padding:28px; background:rgba(201,162,75,0.06);
  margin-top:10px;
}
.quote-line{display:flex; justify-content:space-between; padding:8px 0; font-size:14px; color:var(--stone);}
.quote-line.total{border-top:1px solid var(--line); margin-top:8px; padding-top:16px; font-size:19px; color:var(--cream); font-family:var(--serif);}
.quote-line.total .amt{color:var(--gold);}
.note-box{background:var(--onyx-3); border-left:2px solid var(--gold); padding:14px 18px; font-size:13px; color:var(--stone); line-height:1.7; margin-top:18px;}

/* ---------- Badges ---------- */
.badge{display:inline-block; font-size:10.5px; letter-spacing:1px; text-transform:uppercase; padding:4px 10px; border-radius:20px; font-weight:600;}
.badge-new{background:rgba(201,162,75,0.15); color:var(--gold);}
.badge-reviewed{background:rgba(138,132,120,0.2); color:var(--stone);}
.badge-confirmed{background:rgba(127,174,127,0.18); color:var(--ok);}
.badge-declined, .badge-cancelled{background:rgba(201,106,75,0.18); color:var(--warn);}
.badge-pending{background:rgba(201,162,75,0.15); color:var(--gold);}
.badge-completed{background:rgba(127,174,127,0.18); color:var(--ok);}

/* ---------- Table ---------- */
.table-wrap{overflow-x:auto;}
table{width:100%; border-collapse:collapse; font-size:13.5px;}
th{text-align:left; font-size:10.5px; letter-spacing:1px; text-transform:uppercase; color:var(--stone-dim); padding:10px 12px; border-bottom:1px solid var(--line);}
td{padding:12px; border-bottom:1px solid var(--line); color:var(--stone); vertical-align:top;}
tr:hover td{background:rgba(255,255,255,0.02);}
.row-clickable{cursor:pointer;}

/* ---------- Tabs ---------- */
.tabs{display:flex; gap:6px; border-bottom:1px solid var(--line); margin-bottom:28px; flex-wrap:wrap;}
.tab-btn{background:none; border:none; color:var(--stone); padding:12px 18px; font-size:12.5px; letter-spacing:1px; text-transform:uppercase; cursor:pointer; border-bottom:2px solid transparent;}
.tab-btn.active{color:var(--gold); border-color:var(--gold);}
.tab-panel{display:none;}
.tab-panel.active{display:block;}

/* ---------- Misc ---------- */
.hint{font-size:12px; color:var(--stone-dim); margin-top:6px;}
.divider{width:56px; height:1px; background:var(--gold); margin:22px 0;}
.center{text-align:center;}
.stack{display:flex; flex-direction:column; gap:14px;}
.inline-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:10px;}
.msg{padding:14px 18px; border-radius:4px; font-size:13.5px; margin-bottom:18px;}
.msg-error{background:rgba(201,106,75,0.12); border:1px solid rgba(201,106,75,0.4); color:#e6a591;}
.msg-ok{background:rgba(127,174,127,0.1); border:1px solid rgba(127,174,127,0.35); color:#a8cfa8;}
.spinner{display:inline-block; width:14px; height:14px; border:2px solid rgba(255,255,255,0.25); border-top-color:var(--gold); border-radius:50%; animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.hero-cover{
  border-radius:8px; overflow:hidden; border:1px solid var(--line); margin-bottom:34px;
  display:grid; grid-template-columns:1.1fr .9fr;
}
.hero-cover img{width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05); display:block;}
.hero-cover-text{padding:38px; display:flex; flex-direction:column; justify-content:center;}
@media (max-width:720px){ .hero-cover{grid-template-columns:1fr;} .hero-cover img{max-height:280px;} }

footer{border-top:1px solid var(--line); padding:30px 0; text-align:center; color:var(--stone-dim); font-size:11.5px; letter-spacing:1px;}

.contact-link{color:var(--gold) !important; font-weight:600;}

.cal-header{display:flex; align-items:center; justify-content:space-between; margin-bottom:18px;}
.cal-nav-btn{background:var(--onyx-3); border:1px solid var(--line); color:var(--cream); width:34px; height:34px; border-radius:4px; cursor:pointer; font-size:16px;}
.cal-nav-btn:hover{border-color:var(--gold); color:var(--gold);}
.cal-month-label{font-family:var(--serif); font-size:19px;}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:6px;}
.cal-dow{text-align:center; font-size:10px; letter-spacing:1px; text-transform:uppercase; color:var(--stone-dim); padding-bottom:6px;}
.cal-day{
  aspect-ratio:1; border-radius:5px; border:1px solid var(--line); background:var(--onyx-3);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  cursor:pointer; transition:.15s; position:relative; padding:4px;
}
.cal-day:hover{border-color:var(--gold);}
.cal-day.empty{visibility:hidden; cursor:default;}
.cal-day.past{opacity:.4;}
.cal-day-num{font-size:13px; color:var(--cream);}
.cal-dot{width:6px; height:6px; border-radius:50%;}
.cal-day.has-confirmed{border-color:rgba(127,174,127,0.5);}
.cal-day.has-confirmed .cal-dot{background:var(--ok);}
.cal-day.has-pending .cal-dot{background:var(--gold);}
.cal-day.has-blocked{border-color:rgba(201,106,75,0.5);}
.cal-day.has-blocked .cal-dot{background:var(--warn);}
.cal-legend{display:flex; gap:18px; flex-wrap:wrap; margin-top:16px; font-size:12px; color:var(--stone-dim);}
.cal-legend-item{display:flex; align-items:center; gap:6px;}
.cal-legend-dot{width:8px; height:8px; border-radius:50%;}

.contact-wrap{position:relative; display:inline-flex;}
.contact-btn{background:none; border:none; cursor:pointer; font:inherit; padding:0;}
.phone-popup{
  display:none; position:absolute; top:calc(100% + 14px); right:0; z-index:200;
  background:var(--onyx-2); border:1px solid var(--gold); border-radius:6px;
  padding:18px; min-width:210px; box-shadow:0 12px 34px rgba(0,0,0,0.55);
}
.phone-popup.show{display:block;}
.phone-number{font-family:var(--serif); font-size:21px; color:var(--cream); margin-bottom:14px; text-align:center; letter-spacing:1px;}
.phone-actions{display:flex; gap:8px;}
.btn-sm{padding:9px 12px; font-size:10.5px; flex:1;}

