@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap");
/* Shared visual language: public studio and booking portal. */
:root {
  color-scheme: var(--mvm-scheme);
  --mvm-scheme: dark;
  --mvm-background: #080d10;
  --mvm-surface: #10191e;
  --mvm-raised: #1c292f;
  --mvm-text: #e7eff2;
  --mvm-muted: #a3b5be;
  --mvm-border: #425760;
  --mvm-accent: #79d6e1;
  --mvm-on-accent: #082c34;
  --mvm-accent-hover: #a0e7ed;
  --mvm-accent-soft: #16363d;
  --mvm-control: #69838e;
  --mvm-success: #8cdbb2;
  --mvm-success-soft: #142f26;
  --mvm-warning: #ebc780;
  --mvm-warning-soft: #302918;
  --mvm-danger: #ffb4ab;
  --mvm-danger-soft: #381e22;
  --mvm-shadow: 0 12px 32px rgb(0 0 0 / .2);
  --mvm-chrome: linear-gradient(135deg, #edf7fa 0%, #a8c0ca 45%, #d7e9ef 52%, #8dcbd6 100%);
  --mvm-radius: 16px;
  --mvm-pill: 999px;
  --mvm-body: "DM Sans", sans-serif;
  --mvm-heading: "Manrope", sans-serif;
  --muted: var(--mvm-muted);
  --line: var(--mvm-border);
  --motion: 180ms;
  --ease: cubic-bezier(.22,1,.36,1);
  font-family: var(--mvm-body);
  background: var(--mvm-background);
  color: var(--mvm-text);
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--mvm-background); color: var(--mvm-text); -webkit-font-smoothing: antialiased; }
::selection { background: var(--mvm-accent); color: var(--mvm-on-accent); }
button, input, select, textarea { font: inherit; }
h1, h2, h3 { font-family: var(--mvm-heading); }
.brand img { object-fit: contain; filter: brightness(0) invert(1); }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--mvm-accent); outline-offset: 4px; }
[hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

:root[data-theme="bright"] {
  --mvm-scheme: light;
  --mvm-background: #e8edef;
  --mvm-surface: #f3f6f7;
  --mvm-raised: #dce5e9;
  --mvm-text: #182b33;
  --mvm-muted: #506570;
  --mvm-border: #aabcc5;
  --mvm-accent: #13788b;
  --mvm-on-accent: #f4fcfd;
  --mvm-accent-hover: #0c6172;
  --mvm-accent-soft: #d5eaee;
  --mvm-control: #728893;
  --mvm-success: #216544;
  --mvm-success-soft: #dceee3;
  --mvm-warning: #775214;
  --mvm-warning-soft: #f2e7ce;
  --mvm-danger: #a33232;
  --mvm-danger-soft: #f5dfdf;
  --mvm-shadow: 0 12px 32px rgb(24 43 51 / .09);
}
:root[data-theme="bright"] .brand img,
:root[data-theme="bright"] .entry-brand img { filter: brightness(0); }
input { accent-color: var(--mvm-accent); }

:root[data-theme="bright"] :is(.intro-orbit,.orb) img { filter: brightness(0); }
:root .text-link, :root .service-icon { color:var(--mvm-accent); }
:root .choice:has(input:checked) { border-color:var(--mvm-accent); }
:root .entry-progress .is-current, :root .active-room h4::before { background:var(--mvm-accent); }

/* One interaction language on both surfaces; color always accompanies a label/state. */
body { transition:background-color 240ms var(--ease),color 240ms var(--ease); }
:root :is(.service,.contact-form,.community,.booking,.field input,.field select,.field textarea,.booking-panel,.occupied,.hour-block,.entry-progress span) {
  transition:background-color 240ms var(--ease),color 240ms var(--ease),border-color 240ms var(--ease),border-radius 240ms var(--ease),box-shadow 240ms var(--ease);
}
:where(a,button,summary,input,select,textarea,.choice) {
  transition:background-color var(--motion) var(--ease),color var(--motion) var(--ease),border-color var(--motion) var(--ease),box-shadow var(--motion) var(--ease),transform var(--motion) var(--ease);
}
:root :is(input,select,textarea) { border-color:var(--mvm-control); }
:root :is(input,textarea)::placeholder { color:var(--mvm-muted); opacity:1; }
:root :is(input,textarea)[readonly] { background:var(--mvm-raised); }
:root :is(input,select,textarea):focus-visible { outline-color:var(--mvm-accent); border-color:var(--mvm-accent); }
:root :is(input,select,textarea)[aria-invalid="true"],
:root :is(input,select,textarea):user-invalid { border-color:var(--mvm-danger); }
:root :is(.error,.entry-error,.range-error,.account-error,#summary-error,.form-result) { color:var(--mvm-danger); }
:root .error { border-left-color:var(--mvm-danger); }
:root :is(.entry-error,.range-error,.account-error,#summary-error,.form-result):not(:empty) {
  background:var(--mvm-danger-soft); border-radius:10px; padding:12px 14px;
}
:root :is(button,a,summary,input,select,textarea):focus-visible { outline-color:var(--mvm-accent); }
:root .primary { border-color:var(--mvm-accent); }
:root .primary:hover:not(:disabled) { background:var(--mvm-accent-hover); border-color:var(--mvm-accent-hover); color:var(--mvm-on-accent); }
:root .entry-actions .primary:hover:not(:disabled) { background:var(--mvm-accent-hover); border-color:var(--mvm-accent-hover); }
@media (hover:hover) {
  :root :is(.secondary,.portal-button,.outline,.arrows button,.month-nav button,.account-logout,.dialog-close):hover:not(:disabled) { border-color:var(--mvm-accent); background:var(--mvm-accent-soft); color:var(--mvm-text); }
  :root :is(.text-link,.text-button,.range-clear):hover { color:var(--mvm-accent); }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
@supports(interpolate-size:allow-keywords) {
  :is(.booking-history,.telegram-management) { interpolate-size:allow-keywords; }
  :is(.booking-history,.telegram-management)::details-content { height:0; overflow:clip; transition:height 260ms var(--ease),content-visibility 260ms allow-discrete; }
  :is(.booking-history,.telegram-management)[open]::details-content { height:auto; }
}
/* One wordmark and logo treatment across the website and booking calendar. */
:root .brand { gap:12px; }
:root .brand img { flex-shrink:0;width:42px;height:42px;opacity:1;filter:brightness(0) invert(1); }
:root .brand .brand-word {
  display:block;
  font:600 16px/1.2 var(--mvm-heading);
  letter-spacing:.02em;
  color:#fff;
  border:0;padding:0;max-width:none;
}
:root[data-theme="bright"] .brand img { filter:brightness(0); }
:root[data-theme="bright"] .brand .brand-word { color:#000; }
@media(max-width:760px) {
  :root .brand { gap:10px; }
  :root .brand img { width:37px;height:37px; }
  :root .brand .brand-word { font-size:15px; }
}
@media(max-width:359px) {
  :root .brand { gap:8px; }
  :root .brand img { width:30px;height:30px; }
  :root .brand .brand-word { font-size:13px;letter-spacing:.02em; }
}

/* Chrome mark: preserve metal reflections under a small flowing highlight. */
:root .brand .brand-mark { display:block;position:relative;flex:0 0 auto;width:42px;height:42px;max-width:none;padding:0;border:0; }
:root .brand .brand-mark img { display:block;width:100%;height:100%;filter:drop-shadow(0 0 3px rgb(100 183 255 / .48)); }
:root .brand .brand-mark::after { content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 25%,rgb(205 240 255 / .65) 45%,transparent 65%);background-size:300% 100%;mask:url('/mvm-logo-chrome.png?v=128') center/contain no-repeat;-webkit-mask:url('/mvm-logo-chrome.png?v=128') center/contain no-repeat;animation:brand-chrome-flow 5s ease-in-out infinite alternate;opacity:.55; }
@keyframes brand-chrome-flow { from { background-position:100% 50%;opacity:.2; } to { background-position:0% 50%;opacity:.65; } }
@media(max-width:760px) { :root .brand .brand-mark { width:37px;height:37px; } }
@media(max-width:359px) { :root .brand .brand-mark { width:30px;height:30px; } }
@media(prefers-reduced-motion:reduce) { :root .brand .brand-mark::after { animation:none;opacity:.25; } }
