:root{
	--bg:#f5f7fa;
	--surface:#ffffff;
	--surface-soft:#eef3f7;
	--ink:#101820;
	--ink-2:#1d2733;
	--muted:#657180;
	--line:#dce3ea;
	--accent:#ff5a1f;
	--accent-2:#e44812;
	--blue:#2c5f7f;
	--success:#157f47;
	--warning:#b86b00;
	--danger:#b42318;
	--radius:8px;
	--shadow:0 18px 45px rgba(16,24,32,.11);
}

*{
	box-sizing:border-box;
	margin:0;
	padding:0;
}

html{
	scroll-behavior:smooth;
}

body{
	background:var(--bg);
	color:var(--ink);
	font-family:"Segoe UI",Arial,sans-serif;
	font-size:16px;
	line-height:1.6;
	text-rendering:optimizeLegibility;
}

body.nav-open{
	overflow:hidden;
}

a{
	color:inherit;
	text-decoration:none;
}

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

.container{
	width:min(1120px, calc(100% - 40px));
	margin-inline:auto;
}

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

.site-header{
	position:sticky;
	top:0;
	z-index:50;
	background:rgba(16,24,32,.96);
	border-bottom:1px solid rgba(255,255,255,.08);
	backdrop-filter:blur(16px);
}

.nav{
	min-height:72px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:24px;
}

.brand{
	display:inline-flex;
	align-items:center;
	gap:12px;
	color:#fff;
	font-weight:800;
	font-size:24px;
	line-height:1;
}

.brand strong{
	color:var(--accent);
	font-weight:800;
}

.brand-mark{
	width:40px;
	height:40px;
	display:inline-grid;
	place-items:center;
	border-radius:8px;
	background:#fff;
	color:var(--accent);
	box-shadow:0 8px 22px rgba(0,0,0,.18);
}

.brand-mark svg{
	width:26px;
	height:26px;
	fill:currentColor;
}

.primary-nav{
	display:flex;
	align-items:center;
	gap:4px;
}

.primary-nav a{
	color:#e7edf3;
	font-weight:650;
	font-size:15px;
	line-height:1;
	padding:12px 14px;
	border-radius:7px;
	transition:background .18s ease,color .18s ease;
}

.primary-nav a:hover,
.primary-nav a.active{
	background:rgba(255,255,255,.08);
	color:#fff;
}

.primary-nav .nav-cta{
	margin-left:10px;
	background:var(--accent);
	color:#fff;
	box-shadow:0 8px 20px rgba(255,90,31,.28);
}

.primary-nav .nav-cta:hover{
	background:var(--accent-2);
}

.nav-toggle{
	display:none;
	width:44px;
	height:44px;
	border:1px solid rgba(255,255,255,.16);
	border-radius:8px;
	background:rgba(255,255,255,.08);
	color:#fff;
	cursor:pointer;
}

.nav-toggle span:not(.sr-only){
	display:block;
	width:20px;
	height:2px;
	margin:5px auto;
	background:currentColor;
	border-radius:2px;
}

.hero{
	position:relative;
	min-height:560px;
	display:grid;
	align-items:end;
	overflow:hidden;
	background:var(--ink);
}

.hero-bg{
	position:absolute;
	inset:0;
	background:
		linear-gradient(90deg, rgba(16,24,32,.94) 0%, rgba(16,24,32,.74) 39%, rgba(16,24,32,.18) 78%),
		linear-gradient(0deg, rgba(16,24,32,.86) 0%, rgba(16,24,32,0) 38%),
		url("../pics/hero-workshop.webp") center/cover no-repeat;
	transform:scale(1.02);
}

.hero-grid{
	position:relative;
	padding:96px 0 86px;
}

.hero-copy{
	max-width:680px;
	color:#fff;
}

.hero h1{
	font-size:64px;
	line-height:1.05;
	font-weight:850;
	letter-spacing:0;
	margin-bottom:22px;
}

.hero p{
	max-width:620px;
	color:#edf3f7;
	font-size:21px;
	line-height:1.55;
	margin-bottom:30px;
}

.hero-actions{
	display:flex;
	flex-wrap:wrap;
	gap:14px;
}

.button,
button,
input[type=submit]{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:48px;
	padding:0 22px;
	border:0;
	border-radius:8px;
	font:700 15px/1 "Segoe UI",Arial,sans-serif;
	cursor:pointer;
	transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;
}

.button:hover,
button:hover,
input[type=submit]:hover{
	transform:translateY(-1px);
}

.button-primary,
button,
input[type=submit]{
	background:var(--accent);
	color:#fff;
	box-shadow:0 12px 24px rgba(255,90,31,.25);
}

.button-primary:hover,
button:hover,
input[type=submit]:hover{
	background:var(--accent-2);
}

.button-secondary{
	background:#fff;
	color:var(--ink);
	border:1px solid var(--line);
}

.hero .button-secondary{
	background:rgba(255,255,255,.08);
	color:#fff;
	border:1px solid rgba(255,255,255,.46);
	backdrop-filter:blur(12px);
}

.trust-strip{
	background:#fff;
	border-bottom:1px solid var(--line);
}

.trust-grid{
	display:grid;
	grid-template-columns:repeat(4,1fr);
}

.trust-grid div{
	padding:22px 26px;
	border-left:1px solid var(--line);
}

.trust-grid div:first-child{
	border-left:0;
}

.trust-grid strong,
.trust-grid span{
	display:block;
}

.trust-grid strong{
	color:var(--ink);
	font-size:16px;
}

.trust-grid span{
	color:var(--muted);
	font-size:14px;
	margin-top:3px;
}

.page-hero,
.admin-title{
	background:linear-gradient(135deg, #101820 0%, #1c303d 100%);
	color:#fff;
}

.page-hero-inner,
.admin-title .container{
	padding:68px 0 58px;
}

.page-hero h1,
.admin-title h1{
	font-size:42px;
	line-height:1.15;
	letter-spacing:0;
	margin-bottom:12px;
}

.page-hero p{
	max-width:760px;
	color:#dbe5ec;
	font-size:18px;
}

.site-main{
	min-height:50vh;
}

.section{
	padding:76px 0;
}

.section-soft{
	background:var(--surface-soft);
}

.section h2,
.content-section h2{
	font-size:34px;
	line-height:1.18;
	letter-spacing:0;
	margin-bottom:16px;
	color:var(--ink);
}

.section h3,
.content-section h3{
	font-size:20px;
	line-height:1.25;
	margin-bottom:10px;
	color:var(--ink);
}

.lead{
	font-size:19px;
	line-height:1.55;
	color:var(--ink-2);
	margin-bottom:18px;
}

.section p,
.content-section p{
	color:var(--muted);
	margin-bottom:14px;
}

.split-section{
	display:grid;
	grid-template-columns:1.1fr .9fr;
	gap:44px;
	align-items:start;
}

.info-panel,
.content-box,
.contact-card,
.calendar-card,
.notice-box,
.warning-box,
.stdok-box,
.stderr-box{
	background:var(--surface);
	border:1px solid var(--line);
	border-radius:var(--radius);
	box-shadow:var(--shadow);
}

.info-panel,
.content-box,
.contact-card,
.calendar-card,
.notice-box,
.warning-box,
.stdok-box,
.stderr-box{
	padding:28px;
}

.check-list{
	display:grid;
	gap:12px;
	list-style:none;
}

.check-list li{
	position:relative;
	padding-left:28px;
	color:var(--ink-2);
}

.check-list li::before{
	content:"";
	position:absolute;
	left:0;
	top:7px;
	width:14px;
	height:14px;
	border:2px solid var(--accent);
	border-radius:50%;
	background:#fff;
}

.section-heading{
	display:flex;
	align-items:end;
	justify-content:space-between;
	gap:24px;
	margin-bottom:28px;
}

.section-heading p{
	max-width:720px;
	margin-bottom:0;
}

.section-heading > a:not(.button){
	color:var(--accent);
	font-weight:800;
}

.services{
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:18px;
}

.service-card{
	min-height:210px;
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	gap:10px;
	background:#fff;
	border:1px solid var(--line);
	border-radius:var(--radius);
	padding:24px;
	color:var(--ink);
	box-shadow:0 10px 26px rgba(16,24,32,.06);
	transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}

a.service-card:hover{
	transform:translateY(-4px);
	border-color:rgba(255,90,31,.48);
	box-shadow:var(--shadow);
}

.service-icon{
	display:inline-grid;
	place-items:center;
	width:42px;
	height:42px;
	border-radius:8px;
	background:#fff2ec;
	color:var(--accent);
	font-weight:850;
}

.service-card p{
	margin-bottom:0;
}

.booking-band{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:28px;
	padding:30px;
	background:linear-gradient(135deg, #101820 0%, #203948 100%);
	border-radius:var(--radius);
	color:#fff;
	box-shadow:var(--shadow);
}

.booking-band h2{
	color:#fff;
	margin-bottom:6px;
}

.booking-band p{
	color:#dbe6ed;
	margin-bottom:0;
}

.preview-grid{
	display:grid;
	grid-template-columns:1.2fr repeat(3,1fr);
	gap:14px;
}

.preview-grid img{
	width:100%;
	aspect-ratio:4/3;
	object-fit:cover;
	border-radius:var(--radius);
	border:1px solid var(--line);
	box-shadow:0 10px 28px rgba(16,24,32,.08);
}

.preview-grid img:first-child{
	grid-row:span 2;
	aspect-ratio:4/3;
}

.table-wrap{
	width:100%;
	overflow-x:auto;
	border:1px solid var(--line);
	border-radius:var(--radius);
	background:#fff;
}

table{
	width:100%;
	border-collapse:collapse;
	min-width:720px;
}

th,
td{
	padding:15px 16px;
	text-align:left;
	border-bottom:1px solid var(--line);
	vertical-align:middle;
}

th{
	background:#f0f4f8;
	color:var(--ink);
	font-size:14px;
	text-transform:none;
}

td{
	color:var(--ink-2);
}

tbody tr:nth-child(even){
	background:#fbfcfd;
}

tbody tr:hover{
	background:#f6f9fb;
}

tbody tr:last-child td{
	border-bottom:0;
}

.price-table td:last-child{
	font-weight:800;
	color:var(--ink);
	white-space:nowrap;
}

.notice-box,
.warning-box{
	margin-top:24px;
	border-left:4px solid var(--warning);
}

.stdok-box{
	margin:30px auto;
	border-left:4px solid var(--success);
}

.stderr-box{
	margin:30px auto;
	border-left:4px solid var(--danger);
}

.form{
	display:grid;
	gap:18px;
	margin-top:22px;
}

.form-grid{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:18px;
}

.input-group{
	display:grid;
	gap:7px;
}

label{
	color:var(--ink);
	font-weight:750;
	font-size:14px;
}

input,
textarea,
select{
	width:100%;
	min-height:48px;
	padding:12px 14px;
	border:1px solid #cfd8e3;
	border-radius:8px;
	background:#fff;
	color:var(--ink);
	font:500 15px/1.4 "Segoe UI",Arial,sans-serif;
	transition:border-color .18s ease,box-shadow .18s ease;
}

textarea{
	min-height:150px;
	resize:vertical;
}

input:focus,
textarea:focus,
select:focus{
	outline:none;
	border-color:var(--accent);
	box-shadow:0 0 0 4px rgba(255,90,31,.14);
}

input:disabled{
	background:#eef3f7;
	color:#4c5966;
}

button:disabled,
input[type=submit]:disabled{
	background:#9aa7b3;
	color:#fff;
	cursor:not-allowed;
	box-shadow:none;
	transform:none;
}

.captcha-box{
	display:grid;
	grid-template-columns:132px minmax(180px,1fr);
	gap:14px;
	align-items:center;
	padding:14px;
	background:#f6f9fb;
	border:1px solid var(--line);
	border-radius:8px;
}

.captcha-box img{
	width:132px;
	height:46px;
	object-fit:cover;
	border:1px solid #cfd8e3;
	border-radius:7px;
	background:#fff;
	cursor:pointer;
}

.captcha-box > div{
	display:grid;
	gap:7px;
}

.booking-layout{
	display:grid;
	grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);
	gap:28px;
	align-items:start;
}

.booking-calendar,
.booking-panel{
	background:#fff;
	border:1px solid var(--line);
	border-radius:8px;
	box-shadow:var(--shadow);
}

.booking-calendar{
	overflow:hidden;
}

.booking-calendar.is-loading{
	opacity:.58;
	pointer-events:none;
	transition:opacity .16s ease;
}

.booking-panel{
	position:sticky;
	top:96px;
	padding:26px;
}

.calendar-nav{
	width:44px;
	height:44px;
	display:inline-grid;
	place-items:center;
	border-radius:8px;
	background:#f0f4f8;
	color:var(--ink);
	font-size:30px;
	font-weight:800;
}

.calendar-nav.disabled{
	opacity:.35;
	pointer-events:none;
}

.calendar-weekdays,
.calendar-grid{
	display:grid;
	grid-template-columns:repeat(7,1fr);
}

.calendar-weekdays{
	padding:14px 18px 0;
	gap:8px;
	color:var(--muted);
	font-weight:800;
	font-size:13px;
	text-align:center;
}

.calendar-grid{
	gap:8px;
	padding:18px;
}

.calendar-day{
	min-height:86px;
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	gap:8px;
	padding:12px;
	border:1px solid var(--line);
	border-radius:8px;
	background:#fff;
	color:var(--ink);
}

.calendar-day strong{
	font-size:22px;
	line-height:1;
}

.calendar-day span{
	font-size:12px;
	font-weight:800;
	color:var(--muted);
}

a.calendar-day.available{
	border-color:rgba(21,127,71,.28);
	background:#f1fbf6;
}

a.calendar-day.available:hover,
.calendar-day.selected{
	border-color:var(--accent);
	box-shadow:0 0 0 3px rgba(255,90,31,.14);
}

.calendar-day.booked{
	background:#fff1ef;
}

.calendar-day.closed,
.calendar-day.past{
	background:#eef3f7;
	color:#7a8793;
}

.calendar-day.empty{
	border-color:transparent;
	background:transparent;
	box-shadow:none;
}

.inline-form{
	display:inline;
}

.inline-form button{
	min-height:36px;
	padding-inline:14px;
}

.occupied-slots{
	margin:14px 0 18px;
	padding:14px;
	border:1px solid var(--line);
	border-radius:8px;
	background:#f6f9fb;
}

.occupied-slots ul{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin-top:10px;
	list-style:none;
}

.occupied-slots li{
	padding:6px 10px;
	border-radius:999px;
	background:#fff1ef;
	color:var(--danger);
	font-weight:800;
	font-size:13px;
}

.availability-message{
	min-height:24px;
	padding-top:2px;
	color:var(--muted);
	font-size:14px;
	font-weight:750;
	line-height:1.45;
}

.availability-message.ok{
	color:var(--success);
}

.availability-message.error{
	color:var(--danger);
}

.availability-message.warning,
.availability-message.checking{
	color:var(--warning);
}

.confirm-modal{
	position:fixed;
	inset:0;
	z-index:120;
	display:grid;
	place-items:center;
	padding:20px;
	background:rgba(16,24,32,.62);
}

.confirm-modal[hidden]{
	display:none;
}

.confirm-modal-panel{
	width:min(560px, 100%);
	max-height:calc(100vh - 40px);
	overflow:auto;
	padding:26px;
	border-radius:8px;
	background:#fff;
	box-shadow:0 24px 70px rgba(0,0,0,.28);
}

.confirm-modal-panel h3{
	margin-bottom:10px;
	color:var(--ink);
}

.confirm-modal-panel p{
	margin-bottom:16px;
	color:var(--muted);
}

.conflict-list{
	display:grid;
	gap:8px;
	max-height:260px;
	overflow:auto;
	margin-bottom:20px;
	list-style:none;
}

.conflict-list li{
	display:grid;
	gap:2px;
	padding:10px 12px;
	border:1px solid var(--line);
	border-radius:8px;
	background:#f6f9fb;
}

.conflict-list strong{
	color:var(--ink);
}

.conflict-list span{
	color:var(--muted);
	font-size:14px;
}

.modal-actions{
	display:flex;
	justify-content:flex-end;
	gap:10px;
}

.filter-actions{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
}

.booking-admin-list{
	display:grid;
	gap:16px;
}

.booking-admin-card{
	display:grid;
	grid-template-columns:minmax(0,1fr) 340px;
	gap:20px;
	padding:22px;
	border:1px solid var(--line);
	border-radius:8px;
	background:#fff;
	box-shadow:0 10px 26px rgba(16,24,32,.06);
}

.booking-status-form{
	display:grid;
	gap:10px;
	align-content:start;
}

.booking-time-grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:10px;
}

.booking-status-form textarea{
	min-height:96px;
}

.contact-layout{
	display:grid;
	grid-template-columns:minmax(0,1fr) 360px;
	gap:28px;
	align-items:start;
}

.contact-card{
	position:sticky;
	top:96px;
	display:grid;
	gap:18px;
}

.contact-card p{
	display:grid;
	gap:3px;
	margin-bottom:0;
}

.contact-card strong{
	color:var(--ink);
}

.contact-card a:not(.button){
	color:var(--blue);
	font-weight:750;
}

.map-frame{
	overflow:hidden;
	border:1px solid var(--line);
	border-radius:var(--radius);
	box-shadow:var(--shadow);
	background:#fff;
}

.calendar-card{
	margin-top:26px;
	padding:0;
	overflow:hidden;
}

.calendar-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:18px;
	padding:24px;
	border-bottom:1px solid var(--line);
}

.calendar-head h3{
	margin-bottom:0;
}

.calendar-head h2{
	margin:0;
	font-size:28px;
}

.calendar-legend{
	display:flex;
	flex-wrap:wrap;
	gap:14px;
	color:var(--muted);
	font-size:14px;
}

.dot{
	display:inline-block;
	width:10px;
	height:10px;
	border-radius:50%;
	margin-right:6px;
}

.available-dot{
	background:var(--success);
}

.booked-dot{
	background:var(--danger);
}

.status-pill{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:92px;
	padding:6px 10px;
	border-radius:999px;
	font-weight:800;
	font-size:13px;
}

.status-pill.available{
	background:#e8f7ef;
	color:var(--success);
}

.status-pill.booked{
	background:#fde9e7;
	color:var(--danger);
}

.status-pill.past{
	background:#edf1f5;
	color:var(--muted);
}

.table-action{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:36px;
	padding:0 13px;
	border-radius:8px;
	background:var(--ink);
	color:#fff;
	font-weight:750;
}

.muted{
	color:var(--muted);
}

.content-section{
	padding:64px 0;
}

.admin-page{
	background:#eef3f7;
}

.admin-page .site-header{
	position:sticky;
}

.admin-page .content-section{
	padding:36px 0;
}

.admin-page form{
	max-width:100%;
}

.contact-cards-container{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
	gap:18px;
}

.admin-workflow-grid{
	display:grid;
	grid-template-columns:minmax(0, .95fr) minmax(0, 1.05fr);
	gap:22px;
	align-items:start;
}

.admin-panel{
	background:#fff;
	border:1px solid var(--line);
	border-radius:8px;
	box-shadow:0 10px 28px rgba(16, 24, 32, .08);
	padding:24px;
}

.admin-panel-spaced{
	margin-top:22px;
}

.admin-panel .section-heading{
	align-items:flex-start;
	gap:16px;
	margin-bottom:18px;
}

.admin-panel .section-heading h3{
	margin-bottom:4px;
}

.compact-form{
	display:grid;
	gap:16px;
}

.form-separated{
	margin-top:22px;
	padding-top:22px;
	border-top:1px solid var(--line);
}

.inline-search{
	display:flex;
	gap:10px;
	align-items:center;
	margin-bottom:18px;
}

.inline-search input{
	min-width:0;
	flex:1;
}

.entity-list{
	display:grid;
	gap:16px;
}

.entity-list.compact-list{
	gap:10px;
}

.entity-row{
	display:grid;
	grid-template-columns:minmax(0, 1fr) auto;
	gap:18px;
	align-items:center;
	position:relative;
	border:1px solid #d5e0e8;
	border-radius:8px;
	background:#fff;
	box-shadow:0 8px 22px rgba(16, 24, 32, .07);
	padding:18px 18px 18px 22px;
	overflow:hidden;
	transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.entity-row::before{
	content:"";
	position:absolute;
	inset:0 auto 0 0;
	width:5px;
	background:var(--accent);
}

.entity-row:hover{
	border-color:#b9c8d3;
	box-shadow:0 12px 28px rgba(16, 24, 32, .11);
	transform:translateY(-1px);
}

.entity-row h3{
	font-size:19px;
	line-height:1.25;
	margin-bottom:8px;
	overflow-wrap:anywhere;
}

.entity-row p{
	margin-bottom:6px;
}

.row-actions,
.filter-actions,
.worksheet-toolbar{
	display:flex;
	gap:10px;
	align-items:center;
	justify-content:flex-end;
	flex-wrap:wrap;
}

.entity-row .row-actions{
	align-self:stretch;
	padding-left:16px;
	border-left:1px solid #e4ecf1;
}

.worksheet-toolbar{
	justify-content:flex-start;
	margin-bottom:18px;
}

.inline-form{
	display:inline-flex;
	gap:8px;
	align-items:center;
	margin:0;
}

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

.detail-grid div{
	border:1px solid #dbe4ea;
	border-radius:8px;
	background:#f8fbfd;
	padding:12px 14px;
	min-width:0;
}

.detail-grid span{
	display:block;
	color:var(--muted);
	font-size:13px;
	margin-bottom:4px;
}

.detail-grid strong{
	color:var(--ink);
	overflow-wrap:anywhere;
}

.note-box{
	margin-top:16px;
	border-left:4px solid var(--accent);
	background:#f8fbfd;
	padding:14px 16px;
}

.note-box p{
	margin:6px 0 0;
}

.status-pill,
.total-price{
	display:inline-flex;
	align-items:center;
	min-height:36px;
	border-radius:999px;
	background:#eaf6ef;
	color:#1f6b3d;
	font-weight:800;
	padding:7px 13px;
	white-space:nowrap;
}

.button-danger{
	background:#8b1e2d;
}

.button-danger:hover{
	background:#6f1724;
}

.form-message{
	min-height:22px;
	color:var(--muted);
	font-size:14px;
	font-weight:700;
}

.form-message.ok{
	color:#1f6b3d;
}

.form-message.error{
	color:#8b1e2d;
}

.form-message.checking{
	color:#53697b;
}

.check-row{
	display:flex;
	align-items:center;
	gap:10px;
	font-weight:750;
	cursor:pointer;
}

.check-row input{
	width:18px;
	min-height:18px;
	height:18px;
	flex:0 0 18px;
}

.checkbox-list{
	display:grid;
	gap:10px;
	padding:14px;
	border:1px solid var(--line);
	border-radius:8px;
	background:#f8fbfd;
}

.discount-panel{
	max-height:0;
	overflow:hidden;
	padding:0 16px;
	border:1px solid var(--line);
	border-radius:8px;
	border-color:transparent;
	background:#f8fbfd;
	opacity:0;
	transform:translateY(-4px);
	transition:max-height .22s ease, padding .22s ease, border-color .22s ease, opacity .18s ease, transform .22s ease;
	overflow-anchor:none;
}

.discount-panel > *{
	min-height:0;
}

.discount-panel.is-open{
	max-height:280px;
	padding:16px;
	border-color:var(--line);
	opacity:1;
	transform:translateY(0);
}

.customer-name-list .entity-row{
	grid-template-columns:1fr;
}

.customer-name-list .entity-row h3{
	margin-bottom:0;
}

.customer-name-list .entity-row a{
	color:var(--ink);
}

.legal-content{
	display:grid;
	gap:18px;
	max-width:900px;
}

.legal-content h3{
	margin-bottom:0;
}

.legal-content a{
	color:var(--blue);
	font-weight:750;
}

.worksheet-items-table td{
	vertical-align:middle;
}

.worksheet-items-table input,
.worksheet-items-table select{
	min-height:42px;
	padding:8px 10px;
}

.item-actions{
	justify-content:flex-start;
}

.item-edit-row{
	background:#fff8f1;
}

.contact-card h3,
.contact-card p{
	overflow-wrap:anywhere;
}

.generic-table{
	min-width:680px;
}

.cookie-popup{
	position:fixed;
	right:20px;
	bottom:20px;
	z-index:80;
	width:min(420px, calc(100% - 40px));
	display:flex;
	align-items:center;
	gap:16px;
	padding:16px;
	background:#fff;
	border:1px solid var(--line);
	border-radius:var(--radius);
	box-shadow:var(--shadow);
}

.cookie-popup[hidden]{
	display:none;
}

.cookie-popup p{
	color:var(--muted);
	font-size:14px;
	line-height:1.45;
	margin:0;
}

.cookie-popup a{
	color:var(--blue);
	font-weight:750;
}

.cookie-popup button{
	min-height:40px;
	padding-inline:16px;
	white-space:nowrap;
}

.site-footer{
	background:var(--ink);
	color:#dbe5ec;
}

.footer-grid{
	display:grid;
	grid-template-columns:1.2fr .9fr .8fr;
	gap:36px;
	padding:46px 0;
}

.footer-brand{
	margin-bottom:16px;
}

.site-footer h2{
	font-size:16px;
	line-height:1.3;
	margin-bottom:12px;
	color:#fff;
}

.site-footer p{
	color:#c7d3dd;
	margin-bottom:8px;
}

.site-footer a{
	color:#fff;
}

.footer-bottom{
	border-top:1px solid rgba(255,255,255,.1);
	padding:18px 20px;
	text-align:center;
	color:#9eadba;
	font-size:14px;
}

@media (max-width:980px){
	.container{
		width:min(100% - 32px, 1120px);
	}

	.nav-toggle{
		display:block;
	}

	.primary-nav{
		position:fixed;
		inset:72px 0 auto 0;
		display:grid;
		gap:0;
		padding:14px 16px 18px;
		background:rgba(16,24,32,.98);
		border-bottom:1px solid rgba(255,255,255,.08);
		transform:translateY(-120%);
		opacity:0;
		pointer-events:none;
		transition:transform .22s ease,opacity .22s ease;
	}

	body.nav-open .primary-nav{
		transform:translateY(0);
		opacity:1;
		pointer-events:auto;
	}

	.primary-nav a{
		padding:16px 12px;
	}

	.primary-nav .nav-cta{
		margin:10px 0 0;
		text-align:center;
	}

	.hero{
		min-height:520px;
	}

	.hero h1{
		font-size:48px;
	}

	.hero p{
		font-size:19px;
	}

	.trust-grid,
	.services,
	.preview-grid,
	.footer-grid{
		grid-template-columns:repeat(2,1fr);
	}

	.trust-grid div:nth-child(odd){
		border-left:0;
	}

	.split-section,
	.contact-layout,
	.admin-workflow-grid{
		grid-template-columns:1fr;
	}

	.contact-card{
		position:static;
	}
}

@media (max-width:680px){
	.brand{
		font-size:20px;
	}

	.brand-mark{
		width:36px;
		height:36px;
	}

	.hero{
		min-height:560px;
	}

	.hero-bg{
		background:
			linear-gradient(0deg, rgba(16,24,32,.96) 0%, rgba(16,24,32,.78) 60%, rgba(16,24,32,.44) 100%),
			url("../pics/hero-workshop.webp") center/cover no-repeat;
	}

	.hero-grid{
		padding:82px 0 62px;
	}

	.hero h1{
		font-size:40px;
		line-height:1.08;
	}

	.hero p,
	.lead{
		font-size:17px;
	}

	.hero-actions,
	.section-heading,
	.row-actions,
	.filter-actions,
	.worksheet-toolbar,
	.booking-band,
	.calendar-head,
	.cookie-popup{
		align-items:stretch;
		flex-direction:column;
	}

	.button,
	button,
	input[type=submit]{
		width:100%;
	}

	.admin-panel{
		padding:18px;
	}

	.inline-search,
	.inline-form{
		display:grid;
		width:100%;
	}

	.entity-row,
	.detail-grid{
		grid-template-columns:1fr;
	}

	.entity-row .row-actions{
		padding-left:0;
		padding-top:12px;
		border-left:0;
		border-top:1px solid #e4ecf1;
	}

	.nav-toggle{
		width:44px;
		min-width:44px;
		height:44px;
		flex:0 0 44px;
	}

	.trust-grid,
	.services,
	.preview-grid,
	.footer-grid,
	.form-grid{
		grid-template-columns:1fr;
	}

	.trust-grid div{
		border-left:0;
		border-top:1px solid var(--line);
	}

	.trust-grid div:first-child{
		border-top:0;
	}

	.section,
	.content-section{
		padding:52px 0;
	}

	.section h2,
	.content-section h2,
	.page-hero h1{
		font-size:30px;
	}

	.page-hero-inner,
	.admin-title .container{
		padding:46px 0 40px;
	}

	.info-panel,
	.content-box,
	.contact-card,
	.notice-box,
	.warning-box,
	.stdok-box,
	.stderr-box,
	.booking-band{
		padding:22px;
	}

	.captcha-box{
		grid-template-columns:1fr;
	}

	.booking-layout{
		grid-template-columns:1fr;
	}

	.booking-panel{
		position:static;
	}

	.booking-admin-card{
		grid-template-columns:1fr;
	}

	.booking-time-grid{
		grid-template-columns:1fr;
	}

	.modal-actions{
		display:grid;
	}

	.calendar-grid,
	.calendar-weekdays{
		gap:6px;
		padding-left:12px;
		padding-right:12px;
	}

	.calendar-day{
		min-height:70px;
		padding:9px;
	}

	.calendar-day strong{
		font-size:18px;
	}

	.calendar-day span{
		font-size:10px;
	}

	.cookie-popup{
		right:16px;
		bottom:16px;
		width:calc(100% - 32px);
	}
}
