*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:#f5f5f2;color:#191919;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;width:100%;object-fit:cover;filter:none}button{border:0}button:disabled{opacity:.45;cursor:wait}a:focus-visible,button:focus-visible{outline:3px solid #888;outline-offset:5px}input:focus,textarea:focus,select:focus{outline:2px solid #555;outline-offset:2px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}h1{font-size:clamp(52px,6.8vw,104px);line-height:1.03;letter-spacing:-.065em;white-space:pre-line}h2{font-size:clamp(32px,3.6vw,55px);line-height:1.12;letter-spacing:-.05em}h3{font-size:22px;letter-spacing:-.025em}p{color:#686868}button{transition:background .15s,transform .15s}.wrap{width:calc(100% - 112px);max-width:1440px;margin:0 auto}.demo-banner{background:#deded9;color:#494949;padding:7px 56px;font-size:10px;letter-spacing:.1em;display:flex;gap:24px}.demo-banner span{letter-spacing:.02em}.header{height:91px;padding:0 56px;display:flex;align-items:center;gap:30px;background:#f5f5f2;position:sticky;top:0;z-index:20;border-bottom:1px solid #d9d9d5}.brand{display:flex;align-items:center;gap:8px;font-size:25px;font-weight:800;letter-spacing:-.06em}.brand small{font-size:8px;letter-spacing:.11em;writing-mode:vertical-rl;font-weight:500}.brand-icon{background:#181818;color:white;width:35px;height:35px;display:grid;place-items:center;font-size:29px;font-weight:400;letter-spacing:0}.header nav{display:flex;gap:24px;margin:auto;font-size:12px}.header-phone{font-size:14px;white-space:nowrap}.button{display:inline-flex;justify-content:center;align-items:center;gap:36px;min-height:54px;padding:16px 26px;background:#191919;color:white;font-size:13px;font-weight:600;text-align:center}.button:hover{background:#424242}.button.white{background:#f7f7f3;color:#181818}.button.white:hover{background:#d7d7d1}.button.small{min-height:44px;padding:12px 20px}.button.wide{width:100%}.hero{min-height:690px;height:calc(100svh - 124px);max-height:930px;position:relative;color:#fff;background:#292929}.hero>img,.hero-shade{position:absolute;inset:0;height:100%}.hero>img{object-position:65% 55%}.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.2)),linear-gradient(0deg,rgba(0,0,0,.7),transparent 45%)}.hero-content{position:relative;padding:76px 56px 120px;max-width:900px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.18em;display:block;margin-bottom:25px}.eyebrow.light{color:#ddd}.dot{display:inline-block;width:6px;height:6px;background:#fff;border-radius:50%;margin-right:7px}.hero-content p{color:#cecece;max-width:410px;margin:26px 0 34px;font-size:16px}.hero-bottom{position:absolute;bottom:29px;left:56px;right:56px;border-top:1px solid #777;padding-top:20px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.1em}.intro{padding:100px 0}.muted{color:#8b8b87}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;margin-top:60px}.principles article{border-top:1px solid #c5c5be;padding-top:20px}.principles article>span{font-size:11px;color:#777}.principles h3{margin:25px 0 12px}.principles p{max-width:320px;font-size:14px}.services-section{padding:30px 0 90px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:42px}.section-title p{font-size:13px;max-width:320px}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 24px}.service{background:#fff;border:1px solid #e1e1da}.service-photo{position:relative;overflow:hidden}.service-photo img{height:230px;transition:transform .4s}.service:hover .service-photo img{transform:scale(1.025)}.service-photo>span{position:absolute;top:16px;left:16px;background:#fff;padding:5px 9px;font-size:10px}.service-body{padding:24px}.service-body>p{font-size:13px;min-height:60px;margin:13px 0 24px}.service-bottom{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #ddd;padding-top:20px;align-items:center}.service-bottom strong{font-size:20px;font-weight:500;white-space:nowrap}.text-button{background:transparent;padding:4px 0;color:inherit;font-size:12px;text-decoration:underline;text-underline-offset:4px}.caption{font-size:11px;margin-top:20px;line-height:1.6;color:#777}.space{padding:15px 0 100px}.gallery{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:18px}.gallery figure{margin:0}.gallery img{height:300px}.gallery figcaption{font-size:9px;letter-spacing:.12em;margin-top:14px;color:#777}.contact-section{background:#202020;color:#f4f4ef;padding:80px 0}.contact-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:40px}.big-phone{display:block;font-size:clamp(23px,3vw,40px);letter-spacing:-.04em;margin:30px 0}.contact-details{padding-top:5px}.contact-details>div{border-top:1px solid #555;padding:20px 0 28px}.contact-details span{font-size:10px;letter-spacing:.14em;color:#999}.contact-details p{color:#e2e2da;font-size:19px;margin:12px 0;white-space:pre-line}.contact-details a{font-size:12px;border-bottom:1px solid #999;padding-bottom:4px}.contact-details .caption{font-size:11px;color:#aaa}footer{padding:35px 0;display:flex;gap:30px;align-items:center}footer>span{font-size:11px;color:#888;margin-right:auto}footer>a:last-child{font-size:11px}.mobile-bar{display:none}dialog{border:0;padding:45px;max-width:620px;width:calc(100% - 28px);max-height:90svh;background:#f8f8f5;color:#171717;overflow:auto}dialog::backdrop{background:#000a;backdrop-filter:blur(4px)}dialog h2{font-size:37px;margin-bottom:18px}dialog p{font-size:14px;margin-bottom:20px}.close{position:absolute;top:10px;right:16px;background:none;font-size:30px;color:#555;width:38px;height:38px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}label{display:block;font-size:12px;color:#555}input:not([type=checkbox]),select,textarea{display:block;width:100%;padding:12px 13px;border:1px solid #c7c7c0;background:#fff;color:#1c1c1c;border-radius:0;min-width:0;margin-top:7px;min-height:45px}textarea{resize:vertical}.check{display:flex;gap:10px;margin:20px 0;font-size:11px;align-items:start}.check input{margin-top:4px;width:16px;height:16px;accent-color:#111;flex-shrink:0}.check .text-button{font-size:11px}.trap{position:absolute;left:-9999px;opacity:0}.form-error{color:#333;background:#e7e7e0;border-left:3px solid #111;padding:10px;font-size:13px}.form-error:empty{display:none}.challenge-refresh{align-self:end;margin-bottom:15px}.success-mark{display:grid;place-items:center;font-size:32px;border:1px solid #aaa;border-radius:50%;width:66px;height:66px;margin-bottom:28px}#booking-success{padding:30px 0}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#222;color:#fff;padding:16px 24px;z-index:100;max-width:90%;font-size:13px}[hidden]{display:none!important}
/* Cabinet */
.admin-body{background:#efefeb}.admin-top{height:76px;background:#fff;border-bottom:1px solid #d5d5ce;padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-top>div{display:flex;align-items:center;gap:24px}.admin-label{font-size:10px;letter-spacing:.12em;color:#777}.admin-login{max-width:440px;margin:10vh auto;padding:35px;background:white;border:1px solid #d5d5ce}.admin-login h1{font-size:38px}.admin-login p{margin:15px 0 25px;font-size:14px}.admin-login label{margin-bottom:20px}.admin-shell{max-width:1440px;margin:0 auto;padding:35px 32px 80px}.admin-nav{display:flex;gap:30px;border-bottom:1px solid #ccc;margin-bottom:36px;overflow:auto}.admin-nav button{background:none;white-space:nowrap;padding:13px 0;border-bottom:3px solid transparent;font-size:14px}.admin-nav button.active{border-color:#161616;font-weight:600}.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:25px}.admin-heading h1{font-size:40px}.admin-heading p{font-size:13px;margin-top:10px}.filters{display:flex;align-items:end;flex-wrap:wrap;gap:15px;margin-bottom:25px}.filters label{flex:1;min-width:140px}.filters label.search{flex:2}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.stat{background:#fff;border:1px solid #d9d9d1;padding:26px}.stat.dark{background:#222;color:#fff;border-color:#222}.stat span{font-size:12px}.stat strong{display:block;font-size:36px;letter-spacing:-.04em;font-weight:500;margin:15px 0 5px}.stat p{font-size:11px}.stat.dark p{color:#bbb}.status-counts{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}.badge{display:inline-block;font-size:10px;padding:5px 10px;background:#f4f4ef;border:1px solid #c9c9c3;white-space:nowrap}.badge.confirmed,.badge.working{background:#deded8;border-color:#aaa}.badge.done{background:#262626;color:#fff;border-color:#262626}.badge.cancelled{text-decoration:line-through;color:#777}.table-scroll{overflow:auto;background:#fff;border:1px solid #d9d9d1}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{font-size:10px;font-weight:500;letter-spacing:.05em;background:#e7e7e1;color:#555}td,th{padding:17px 18px;border-bottom:1px solid #e2e2dd}td small{display:block;color:#888;font-size:11px;margin-top:4px}td:first-child{min-width:170px}td .text-button{font-size:12px}.empty{padding:60px;text-align:center;color:#777}.subheading{font-size:20px;margin:30px 0 15px}.missing-list{background:#e4e4dd;padding:18px 25px;margin-bottom:25px}.missing-list summary{cursor:pointer;font-size:13px}.missing-list ul{list-style:none;padding:0}.missing-list li{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px solid #ccc;font-size:12px}.editor{max-width:900px;background:white;border:1px solid #d9d9d1;padding:30px;margin-bottom:24px}.editor h2{font-size:26px;margin-bottom:25px}.editor .button{margin-top:24px}.editor label{margin-bottom:5px}.editor .check{margin:20px 0}.admin-services{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.admin-service{background:#fff;border:1px solid #d9d9d1;padding:20px}.admin-service img{height:160px;margin-bottom:20px}.admin-service h3{font-size:20px}.admin-service p{font-size:12px;margin:12px 0}.admin-service .row{display:flex;justify-content:space-between;align-items:center;gap:10px}.image-editor{margin:10px 0 20px}.image-editor img{height:160px;width:100%;max-width:300px;margin-bottom:12px}.image-editor input[type=file]{font-size:11px}.image-preview{height:130px;width:100%;margin-top:10px}.gallery-editor{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.gallery-editor img{height:130px}.gallery-editor .text-button{margin-top:10px}.booking-summary{padding:20px;background:#eaeae3;margin:20px 0;font-size:13px;line-height:1.7}.booking-summary p{font-size:13px;margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}.booking-summary strong{color:#222}.notice{background:#deded6;padding:15px 18px;font-size:12px;margin:18px 0;line-height:1.7}.admin-footer{display:flex;gap:20px;align-items:center;font-size:12px;color:#777}.helper{font-size:11px;margin:8px 0 15px}.save-row{display:flex;gap:12px;align-items:center;margin-top:24px}.save-row .button{margin:0}
@media(min-width:1600px){.hero-content{margin-left:calc((100vw - 1552px)/2)}}
@media(max-width:1100px){.header{gap:15px;padding:0 28px}.header nav{gap:15px}.header-phone{display:none}.wrap{width:calc(100% - 56px)}.hero-content{padding-left:28px}.hero-bottom{left:28px;right:28px}.services-grid{grid-template-columns:repeat(2,1fr)}.gallery img{height:250px}.admin-services{grid-template-columns:repeat(2,1fr)}.service-body p{min-height:45px}}
@media(max-width:650px){body{font-size:14px}.demo-banner{padding:7px 20px;font-size:8px;display:block}.demo-banner span{display:block;margin-top:3px}.header{height:72px;padding:0 20px;justify-content:space-between}.header nav{display:none}.header .brand{font-size:23px}.header .button{padding:10px 14px;font-size:11px}.wrap{width:calc(100% - 40px)}.hero{height:680px;min-height:0;max-height:85svh}.hero-content{padding:48px 20px 100px}.hero-content h1{font-size:53px;max-width:360px}.hero-content p{font-size:14px;max-width:300px}.hero .eyebrow{font-size:8px;margin-bottom:28px}.hero>img{object-position:65%}.hero-shade{background:linear-gradient(90deg,#000c,#0004),linear-gradient(0deg,#0008,transparent)}.hero-bottom{left:20px;right:20px;font-size:8px}.intro{padding:65px 0}.principles{grid-template-columns:1fr;gap:28px;margin-top:35px}.principles h3{margin:10px 0;font-size:20px}.principles p{max-width:100%}.principles article>span{float:right}.section-title{display:block;margin-bottom:28px}.section-title p{margin-top:18px}.services-grid{grid-template-columns:1fr;gap:20px}.service-photo img{height:220px}.service-body>p{min-height:0}.services-section{padding-bottom:60px}.gallery{grid-template-columns:1fr 1fr;gap:14px}.gallery figure:first-child{grid-column:1/-1}.gallery img{height:180px}.gallery figure:first-child img{height:230px}.space{padding-bottom:65px}.contact-section{padding:50px 0}.contact-grid{grid-template-columns:1fr}.big-phone{font-size:30px}.contact-details p{font-size:17px}footer{flex-wrap:wrap;padding-bottom:110px;gap:20px}footer>span{width:100%;order:3}.mobile-bar{display:flex;position:fixed;bottom:0;left:0;right:0;background:#f5f5f2;border-top:1px solid #ccc;padding:10px 15px calc(10px + env(safe-area-inset-bottom));z-index:25;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.mobile-bar .button{min-height:45px;padding:12px 16px}.mobile-bar>a{font-weight:600}dialog{padding:38px 22px 25px;max-height:92svh}dialog h2{font-size:31px}input:not([type=checkbox]),select,textarea{font-size:16px}.form-grid{gap:14px}.form-grid>label{min-width:0}#booking-form .form-grid>label:first-child,#booking-form .form-grid>label:nth-child(2){grid-column:1/-1}.admin-top{padding:0 18px;height:70px}.admin-top .brand{font-size:20px}.admin-top .admin-label{display:none}.admin-top>div{gap:15px}.admin-shell{padding:20px 16px 60px}.admin-nav{gap:20px;margin-bottom:28px}.admin-nav button{font-size:12px}.admin-heading{align-items:start}.admin-heading h1{font-size:32px}.stats{grid-template-columns:1fr;gap:10px}.stat{padding:20px}.stat strong{font-size:30px;margin:7px 0}.filters{gap:10px}.filters label{min-width:130px}.filters label.search{flex-basis:100%}.admin-services{grid-template-columns:1fr}.admin-login{margin:8vh 16px}.editor{padding:20px}.editor .form-grid{grid-template-columns:1fr}.gallery-editor{grid-template-columns:1fr 1fr}.gallery-editor img{height:100px}.admin-footer{flex-wrap:wrap}.toast{bottom:90px}.admin-body .toast{bottom:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Rounded graphite theme */
:root {
  --canvas: #d5d5d5;
  --surface: #e8e8e8;
  --line: #bcbcbc;
  --radius: 24px;
}
body, .admin-body { background: var(--canvas); }
img { filter: none; }
.header, .mobile-bar { background: var(--canvas); border-color: var(--line); }
.demo-banner { background: #bfbfbf; }
.hero { margin: 16px 28px 0; border-radius: 36px; overflow: hidden; }
.brand-icon { border-radius: 10px; }
.button { border-radius: 999px; }
.service, .editor, .admin-service, .stat, .table-scroll, .admin-login, dialog {
  border-radius: var(--radius);
  background: var(--surface);
  border-color: var(--line);
}
.service, .table-scroll { overflow: hidden; }
.table-scroll { overflow-x: auto; }
.service-photo > span, .badge { border-radius: 999px; }
.gallery img, .admin-service img, .image-preview, .image-editor img, .gallery-editor img { border-radius: 17px; }
.contact-section { margin: 0 28px; border-radius: 36px; }
.admin-top { background: var(--surface); border-color: var(--line); }
.stat.dark { background: #222; border-color: #222; }
.booking-summary, .notice, .missing-list, .toast { border-radius: 16px; }
input:not([type=checkbox]), select, textarea { border-radius: 12px; background: #f5f5f5; }
@media (max-width: 650px) {
  .hero { margin: 10px 10px 0; border-radius: 24px; }
  .contact-section { margin: 0 10px; border-radius: 24px; }
}

@font-face {
  font-family: "Roboto Display";
  src: url("/assets/roboto-display.woff2") format("woff2");
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}
:root {
  --canvas: #171819;
  --surface: #242628;
  --line: #414448;
}
body, .admin-body { color: #f2f2f0; color-scheme: dark; }
h1, h2, h3, .brand {
  font-family: "Roboto Display", Arial, sans-serif;
  font-weight: 900;
}
h1, h2 { letter-spacing: -.04em; }
.hero-content h1 { text-shadow: 0 3px 0 #171819, 0 10px 32px #0009; }
p, .caption, label, .muted, .admin-label, .admin-footer,
footer > span, .gallery figcaption, td small, .empty,
.principles article > span { color: #bdbfc3; }
.demo-banner, th { background: #2c2e30; color: #dedee0; }
.header nav a:hover, .text-button:hover { color: #fff; }
.button { background: #dedee0; color: #171819; }
.button:hover, .button.white:hover { background: #bdbfc3; }
.brand-icon { background: #37393c; }
.hero-shade { background: linear-gradient(90deg,#101113e8,#11121422),linear-gradient(0deg,#0b0b0cbb,transparent 52%); }
.contact-section { background: #222426; }
.service-photo > span, .badge { background: #303235; color: #ededee; border-color: #505357; }
.badge.confirmed,.badge.working { background: #44474a; border-color: #626569; }
.badge.done { background: #dedee0; color: #171819; }
.badge.cancelled { color: #bdbfc3; }
dialog, .close, .admin-nav button { color: #f2f2f0; }
.admin-nav button.active { border-color: #e4e4e4; }
.admin-nav, td, th, .service-bottom, .principles article { border-color: var(--line); }
input:not([type=checkbox]), select, textarea { background: #191a1c; color: #f2f2f0; border-color: #585b60; }
input::placeholder, textarea::placeholder { color: #a5a8ad; }
input:focus, textarea:focus, select:focus { outline-color: #c7c9cd; }
.booking-summary, .notice, .missing-list, .form-error { background: #303235; color: #ededee; }
.booking-summary strong { color: #fff; }
.form-error { border-color: #ccc; }
@media (max-width: 650px) {
  .hero-content h1 { font-size: clamp(37px, 11vw, 56px); }
  .hero { height: auto; min-height: 520px; max-height: none; }
  .hero-content { padding-bottom: 100px; }
  .hero-shade { background: linear-gradient(90deg,#101113d9,#10111345),linear-gradient(0deg,#0b0b0cbd,transparent); }
  .mobile-bar { background: #202224; }
  .mobile-bar a { min-width: 0; white-space: nowrap; }
  #booking-form .form-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
}
