/*
Theme Name: Hilbert House
Text Domain: hilbert-house
Version: 1.0.1
Description: Clean, performance-first theme for Hilbert House (WPBakery-friendly).
Author: Oleg G.
*/

/* =========================
   0) Variables & base
   ========================= */
:root{
  --hh-bg: #0e0e12;
  --hh-fg: #ffffff;
  --hh-muted: #7e7e7e;
  --hh-accent: #af0b0b;
  --hh-border: #3c3c3c;
  --hh-r: 10px;
  --hh-font: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif; 
  --fs-100: 12px; --fs-200: 14px; --fs-300: 16px; --fs-400: 18px; --fs-500: 22px; --fs-600: 28px; --fs-700: 34px;
  --lh: 1.6;
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 24px; --space-6: 32px;
}

/* базовые фиксы */

html, body{
  overflow-y: auto;         
  overflow-x: hidden;
  height: auto;              
  min-height: 100%;
  -webkit-overflow-scrolling: touch;
  zoom: 100%;
  background-color: #0e0e12;
}


@media (max-width: 767px){ html, body {zoom: 100%;}}
body.hh-off-open { overflow: hidden; } /* блокируем фон при открытом offcanvas */


/* === Montserrat local TTF === */
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-Thin.ttf") format("truetype");font-weight:100;font-style:normal;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-ThinItalic.ttf") format("truetype");font-weight:100;font-style:italic;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-ExtraLight.ttf") format("truetype");font-weight:200;font-style:normal;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-ExtraLightItalic.ttf") format("truetype");font-weight:200;font-style:italic;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-Light.ttf") format("truetype");font-weight:300;font-style:normal;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-LightItalic.ttf") format("truetype");font-weight:300;font-style:italic;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-Italic.ttf") format("truetype");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-Medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-MediumItalic.ttf") format("truetype");font-weight:500;font-style:italic;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-SemiBold.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-SemiBoldItalic.ttf") format("truetype");font-weight:600;font-style:italic;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-BoldItalic.ttf") format("truetype");font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-ExtraBold.ttf") format("truetype");font-weight:800;font-style:normal;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-ExtraBoldItalic.ttf") format("truetype");font-weight:800;font-style:italic;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-Black.ttf") format("truetype");font-weight:900;font-style:normal;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat/Montserrat-BlackItalic.ttf") format("truetype");font-weight:900;font-style:italic;font-display:swap;} */


*{ box-sizing:border-box; }

body{
  margin:0; background:var(--hh-bg); color:var(--hh-fg);
  font-family:var(--hh-font); font-size:var(--fs-300); line-height:var(--lh);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
img, svg, video{ max-width:100%; height:auto; }
img{ display:block; }
hr{ border:0; border-top:1px solid var(--hh-border); margin:var(--space-5) 0; }

/* ===== Typography ===== */
h1,h2,h3,h4,h5,h6{ margin:0 0 var(--space-4); font-weight:600; line-height:1.25; }
h1{ font-size:clamp(30px,4vw,var(--fs-700)); }
h2{ font-size:clamp(26px,3.2vw,var(--fs-600)); }
h3{ font-size:clamp(22px,2.6vw,var(--fs-500)); }
h4{ font-size:var(--fs-400); } h5{ font-size:var(--fs-300); } h6{ font-size:var(--fs-200); letter-spacing:.02em; text-transform:uppercase; }
p{ margin:0 0 var(--space-4); } small{ font-size:.875em; opacity:.9; } strong,b{ font-weight:600; }


/* ===== Hilbert — глобальные скроллбары на всём сайте ===== */

/* WebKit (Chrome/Safari) — ширина/высота полосы */
html::-webkit-scrollbar,
body::-webkit-scrollbar,
*::-webkit-scrollbar{
  width: 10px;   /* вертикальная полоса */
  height: 10px;  /* горизонтальная полоса */
}

/* Трек */
html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track,
*::-webkit-scrollbar-track{
  background: #0f1012;   /* тёмный трек в стиле сайта */
  border-radius: 999px;
}

/* Бегунок */
html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb,
*::-webkit-scrollbar-thumb{
  background: #af0b0b;       /* Hilbert red */
  border: 1px solid #0f1012; /* «вырез» по краям */
  border-radius: 999px;
  background-clip: padding-box; /* чтобы бордер был виден в Safari */
}

/* Ховеры/активное состояние */
html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover,
*::-webkit-scrollbar-thumb:hover{ background:#c41717; }

html::-webkit-scrollbar-thumb:active,
body::-webkit-scrollbar-thumb:active,
*::-webkit-scrollbar-thumb:active{ background:#d82121; }

/* Угловой квадрат (когда есть оба скролла) */
html::-webkit-scrollbar-corner,
body::-webkit-scrollbar-corner,
*::-webkit-scrollbar-corner{ background:#0f1012; }

/* Firefox fallback */
:root{
  scrollbar-width: thin;
  scrollbar-color: #af0b0b #0f1012; /* thumb track */
}


/* ===== Links (без подчёркиваний) ===== */
a{ color:var(--hh-fg); text-decoration:none; outline:none; }
a:hover, a:focus{ color:var(--hh-accent); text-decoration:none; outline:none; }
a:active{ opacity:.9; }
a .fa, a .fa-solid, a .fa-brands, a i{ text-decoration:none; }
a:focus-visible { outline: 2px solid var(--hh-accent); outline-offset: 2px; text-decoration: none; }

/* ===== Lists ===== */
ul,ol{ margin:0 0 var(--space-4) 1.2em; padding:0; } li{ margin:.35em 0; }

/* ===== Tables ===== */
table{ width:100%; border-collapse:collapse; margin:var(--space-5) 0; color:var(--hh-fg); }
thead th{ text-align:left; font-weight:600; color:#e6e6e6; border-bottom:1px solid var(--hh-border); padding:12px 16px; text-transform:uppercase; letter-spacing:.03em; font-size:.9em; }
tbody td, tbody th{ padding:12px 16px; border-bottom:1px solid var(--hh-border); }
tbody tr:hover{ background:#222; }
.wp-block-table table{ width:100%; }

/* ===== Forms & Buttons ===== */
input[type="text"],input[type="email"],input[type="tel"],input[type="url"],
input[type="search"],input[type="password"],textarea,select{
  width:100%; background:#111; color:var(--hh-fg); border:1px solid var(--hh-border);
  padding:10px 12px; border-radius:var(--hh-r); outline:none; transition:border-color .2s, box-shadow .2s;
}
input::placeholder, textarea::placeholder{ color:#aaa; }
input:focus,textarea:focus,select:focus{ border-color:var(--hh-accent); box-shadow:0 0 0 3px rgba(175,11,11,.2); }
.button,.wp-block-button__link,input[type="submit"],button,.btn{
  display:inline-block; background:none; color:#fff; border:0; padding:10px 18px; border-radius:var(--hh-r);
  cursor:pointer; font-weight:600; text-align:center; transition:transform .1s, opacity .2s, background-color .2s; font-family:var(--hh-font);
}
.button:hover,.wp-block-button__link:hover,input[type="submit"]:hover,button:hover,.btn:hover{ transform:translateY(-1px); opacity:.95; }
.button:active,.wp-block-button__link:active,input[type="submit"]:active,button:active,.btn:active{ transform:translateY(0); opacity:.9; }

/* ===== Layout helpers (FULL width) ===== */
.container{ max-width:100%; width:100%; margin:0; padding:0 var(--space-4); } /* всегда во всю ширину */
.site-content, .wrapper, .boxed{ max-width:100%; width:100%; }
.hidden-xs{ display:none; } .hidden-sm{}
@media (min-width:768px){ .hidden-xs{ display:block; } }
.alignleft{ float:left; margin:.5em 1em .5em 0; }
.alignright{ float:right; margin:.5em 0 .5em 1em; }
.aligncenter{ display:block; margin-left:auto; margin-right:auto; }
.clearfix::after{ content:""; display:block; clear:both; }
.wp-caption{ max-width:100%; }
.wp-caption-text{ font-size:.9em; color:var(--hh-muted); margin-top:.5em; }
.entry-content img{ border-radius:0px; }

/* ===== Code & quotes ===== */
code,kbd,pre,samp{ font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; }
code,kbd{ background:#111; border:1px solid var(--hh-border); padding:2px 6px; border-radius:6px; font-size:.9em; }
pre{ background:#111; border:1px solid var(--hh-border); padding:12px; border-radius:10px; overflow:auto; }
blockquote{ margin:var(--space-5) 0; padding:var(--space-4); border-left:4px solid var(--hh-accent); background:#181818; color:#ddd; border-radius:6px; }

/* ===== Utilities ===== */
.text-muted{ color:var(--hh-muted)!important; }
.text-accent{ color:var(--hh-accent)!important; }
.bg-accent{ background:var(--hh-accent)!important; color:#fff!important; }
.border{ border:1px solid var(--hh-border)!important; border-radius:var(--hh-r); }
.round{ border-radius:var(--hh-r); }
.shadow{ box-shadow:0 6px 20px rgba(0,0,0,.25); }


/* На всякий случай: отключаем скрытие в шапке/офф-канвасе */
.navbar .wpb_animate_when_almost_visible,
.hh-offcanvas .wpb_animate_when_almost_visible{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

/* VC + animate.css: мягкое появление */
.wpb_animate_when_almost_visible{
  /* стартуем как слегка скрытые элементы */
  opacity: 0;
  will-change: opacity, transform;
  visibility: visible;            /* не держим их скрытыми */
}

/* когда VC/скрипт дал старт — даём анимации доработать самой */
.wpb_animate_when_almost_visible.wpb_start_animation,
.wpb_animate_when_almost_visible.animated{
  opacity: 1;                     /* без !important — не мешаем keyframes fadeIn */
}

/* общие настройки анимации (перекрывают animate.css по-умолчанию) */
.animated{
  animation-duration: .9s;      
  animation-timing-function: cubic-bezier(.2,.65,.2,1);
  animation-fill-mode: both;      /* остаёмся в конечном состоянии */
}

@media (max-width: 767px){
  .animated{ animation-duration: .75s; }   /* на мобиле чуть быстрее */
}



/* === Hilbert Next (CYR) — полный набор === 
@font-face{
  font-family:'Hilbert Next';
  src:url('/wp-content/themes/hilbert-house/assets/fonts/hilbert/HilbertNextWCy-Thin.woff2') format('woff2');
  font-weight:100; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Hilbert Next';
  src:url('/wp-content/themes/hilbert-house/assets/fonts/hilbert/hilbert-next-w-cy-regular.woff2') format('woff2');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Hilbert Next';
  src:url('/wp-content/themes/hilbert-house/assets/fonts/hilbert/hilbert-next-w-cy-semi-bold.min.woff2') format('woff2');
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Hilbert Next';
  src:url('/wp-content/themes/hilbert-house/assets/fonts/hilbert/hilbert-next-w-cy-bold.woff2') format('woff2'),
      url('/wp-content/themes/hilbert-house/assets/fonts/hilbert/HilbertNextWCy-Bold.woff2') format('woff2');
  font-weight:700; font-style:normal; font-display:swap;
}

/* Применение по сайту 
:root{
  --font-ui:'Hilbert Next', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}
html, body{ font-family:var(--font-ui); }
strong, b, h1, h2, h3{ font-weight:700; }
.semibold{ font-weight:600; }
.thin{ font-weight:100; } */

