/* Olcsi Business marketing experience – deliberately isolated from the booking app. */
:root { color-scheme: light; }
.ob-site { --ob-ribbon-gold:#d7b47e; --ob-ribbon-height:68px; --ob-ink:#17212b; --ob-ink2:#101820; --ob-bg:#f8f6f1; --ob-white:#fffefa; --ob-gold:#c9a46b; --ob-gold-light:#ebd4ac; --ob-muted:#717572; --ob-line:#e6e1d7; --ob-radius:20px; margin:0; overflow-x:clip; background:var(--ob-bg); color:var(--ob-ink); font-family:Inter,'Segoe UI',Arial,sans-serif; font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased; }
.ob-site *, .ob-site *::before, .ob-site *::after { box-sizing:border-box; }
.ob-site ::selection { background:var(--ob-gold-light); color:var(--ob-ink2); }
.ob-site a { text-decoration:none; color:inherit; }
.ob-site a:focus-visible,.ob-site button:focus-visible { outline:3px solid #d19a43; outline-offset:4px; }
.ob-site button { font:inherit; cursor:pointer; }
.ob-site img,.ob-site svg { max-width:100%; }
.ob-site h1,.ob-site h2,.ob-site h3,.ob-site p { margin-top:0; }
.ob-site h1,.ob-site h2,.ob-site h3 { line-height:1.09; letter-spacing:-.048em; }
.ob-site em { font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif; font-weight:400; }
.ob-site [id] { scroll-margin-top:105px; }
.ob-container { width:min(1210px,calc(100% - 64px)); margin-inline:auto; }
.ob-skip { position:fixed; z-index:999; top:12px; left:16px; background:#fff; color:#17212b; padding:12px 16px; transform:translateY(-180%); border-radius:8px; font-weight:700; }
.ob-skip:focus { transform:none; }
.ob-progress { position:fixed; top:0; left:0; width:100%; height:3px; z-index:301; pointer-events:none; }
.ob-progress span { display:block; width:100%; height:100%; transform:scaleX(0); transform-origin:left; background:var(--ob-gold); }
/* Navigation */
.ob-header { height:88px; position:absolute; top:0; left:0; width:100%; z-index:200; border-bottom:1px solid rgba(255,255,255,.11); color:#fff; transition:background .25s,border .25s,box-shadow .25s; }
.ob-header.is-scrolled { position:fixed; background:rgba(16,24,32,.96); border-color:rgba(255,255,255,.09); box-shadow:0 14px 35px rgba(0,0,0,.1); backdrop-filter:blur(18px); }
.ob-header-inner { min-height:88px; display:flex; justify-content:space-between; align-items:center; gap:26px; }
.ob-brand { display:inline-flex; align-items:center; gap:13px; flex-shrink:0; }
.ob-brand-icon { width:48px; height:48px; display:grid; place-items:center; flex:none; }
.ob-brand-icon img { display:block; width:100%; height:100%; object-fit:contain; }
.ob-brand-name { font-size:17px; font-weight:800; letter-spacing:-.06em; line-height:1; }
.ob-brand-name > span { font-weight:450; color:#d6dce0; }
.ob-brand-name small { display:block; margin-top:8px; letter-spacing:.19em; font-size:8px; line-height:1.1; font-weight:650; text-transform:uppercase; color:#c2b8a9; }
.ob-nav { display:flex; align-items:center; gap:clamp(18px,2.5vw,38px); font-size:13px; font-weight:630; }
.ob-nav > a:not(.ob-nav-contact) { opacity:.77; transition:opacity .18s,color .18s; white-space:nowrap; }
.ob-nav > a:hover,.ob-nav > a[aria-current=page] { opacity:1; color:var(--ob-gold-light); }
.ob-nav-contact { display:inline-flex; align-items:center; gap:17px; padding:12px 18px; border:1px solid rgba(201,164,107,.66); border-radius:8px; white-space:nowrap; transition:background .2s,transform .2s; }
.ob-nav-contact:hover { background:rgba(201,164,107,.16); transform:translateY(-2px); }
.ob-nav-contact span { font-size:18px; line-height:1; color:var(--ob-gold); }
.ob-menu-toggle { display:none; background:none; border:0; width:44px; height:44px; padding:10px; place-items:center; position:relative; z-index:210; }
.ob-menu-toggle span { display:block; width:24px; height:2px; background:#fff; margin:4px auto; transition:transform .25s,opacity .2s; }
.ob-menu-toggle[aria-expanded=true] span:first-child { transform:translateY(6px) rotate(45deg); }
.ob-menu-toggle[aria-expanded=true] span:nth-child(2) { opacity:0; }
.ob-menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-6px) rotate(-45deg); }
/* Buttons and small primitives */
.ob-button { display:inline-flex; align-items:center; justify-content:center; gap:32px; min-height:56px; padding:15px 22px; border-radius:9px; font-size:13px; font-weight:750; line-height:1.15; transition:background .2s,transform .2s,border-color .2s,box-shadow .2s; }
.ob-button:hover { transform:translateY(-3px); }
.ob-button span { font-size:20px; line-height:1; }
.ob-button-gold { color:#182029!important; background:var(--ob-gold); box-shadow:0 12px 28px rgba(201,164,107,.16); }
.ob-button-gold:hover { background:#ddba82; box-shadow:0 16px 32px rgba(201,164,107,.25); }
.ob-button-outline-light { color:#fff!important; border:1px solid rgba(255,255,255,.29); }
.ob-button-outline-light:hover { border-color:var(--ob-gold); background:rgba(255,255,255,.06); }
.ob-button-dark { color:#fff!important; background:var(--ob-ink2); }
.ob-button-dark:hover { background:#33414d; }
.ob-button-line { border:1px solid #cfc8bb; }
.ob-button-line:hover { background:#eee8df; }
.ob-kicker { font-size:11px; letter-spacing:.18em; font-weight:800; text-transform:uppercase; margin-bottom:23px; color:#918069; }
.ob-kicker span { color:#a8834c; }
.ob-mini-label { font-size:10px; letter-spacing:.18em; font-weight:800; color:#a37f4a; text-transform:uppercase; }
.ob-inline-link,.ob-text-link { display:inline-flex; align-items:center; gap:23px; font-size:13px; font-weight:800; border-bottom:1px solid currentColor; padding-bottom:8px; transition:gap .2s; }
.ob-inline-link:hover,.ob-text-link:hover { gap:32px; }
.ob-inline-link span,.ob-text-link span { font-size:20px; }
/* Hero */
.ob-hero { min-height:790px; min-height:min(855px,100svh); padding:159px 0 76px; position:relative; background:#101820; color:#fff; isolation:isolate; overflow:hidden; }
.ob-hero-grid { position:absolute; z-index:-2; inset:0; opacity:.42; background-image:linear-gradient(to right,rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.045) 1px,transparent 1px); background-size:96px 96px; mask-image:linear-gradient(90deg,transparent 10%,#000 94%); }
.ob-hero-glow { position:absolute; inset:-20% -23% -20% 30%; pointer-events:none; background:radial-gradient(ellipse at 54% 50%,rgba(194,157,105,.18),transparent 46%),radial-gradient(ellipse at 70% 70%,rgba(54,105,97,.11),transparent 42%); z-index:-1; }
.ob-hero-layout { display:grid; grid-template-columns: 1.03fr .97fr; align-items:center; gap:clamp(16px,3.5vw,60px); }
.ob-hero-content { position:relative; z-index:2; padding:38px 0 46px; }
.ob-eyebrow { display:inline-flex; align-items:center; gap:11px; font-size:10px; font-weight:770; letter-spacing:.19em; }
.ob-hero-eyebrow { color:var(--ob-gold-light); margin-bottom:31px; }
.ob-status-dot { display:inline-block; width:7px; height:7px; border-radius:100%; background:#cba873; box-shadow:0 0 0 5px rgba(201,164,107,.13); flex:none; }
.ob-hero h1 { font-size:clamp(60px,7.1vw,110px); font-weight:740; letter-spacing:-.076em; line-height:.995; margin-bottom:30px; }
.ob-hero h1 em { color:var(--ob-gold); letter-spacing:-.085em; }
.ob-hero-lead { color:#b9c0c3; max-width:515px; line-height:1.82; font-size:clamp(14px,1.3vw,17px); margin-bottom:31px; }
.ob-hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.ob-hero-art { position:relative; width:100%; aspect-ratio:1/1; max-width:620px; margin-left:auto; display:grid; place-items:center; perspective:1100px; }
.ob-art-orbit { position:absolute; pointer-events:none; border:1px solid rgba(201,164,107,.12); border-radius:50%; width:100%; aspect-ratio:1; transform:rotate(-18deg) scale(1.12); }
.ob-art-orbit-one::before { content:''; position:absolute; right:12%; top:8%; width:8px; height:8px; background:var(--ob-gold); border-radius:50%; box-shadow:0 0 28px rgba(201,164,107,.5); }
.ob-art-orbit-two { transform:rotate(22deg) scale(.82); border-color:rgba(201,164,107,.11); }
.ob-art-window { position:relative; width:100%; overflow:hidden; border-radius:14px; background:#fff; border:7px solid #2d3540; box-shadow:0 45px 90px rgba(0,0,0,.38),0 0 0 1px rgba(201,164,107,.29); transform:rotate(-5deg) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); transition:transform .22s ease-out; }
.ob-window-top { background:#1c2732; display:flex; align-items:center; justify-content:space-between; height:43px; padding:0 12px; gap:10px; color:#b6bfc6; font-size:10px; font-weight:650; letter-spacing:.035em; }
.ob-window-dots { display:inline-flex; gap:4px; }
.ob-window-dots i { width:7px; height:7px; background:#65717d; border-radius:50%; }
.ob-window-dots i:first-child { background:#c49b67; }
.ob-window-state { color:#d7b78a; white-space:nowrap; font-size:9px; }
.ob-art-window > img { display:block; width:100%; height:auto; max-height:370px; object-fit:cover; object-position:top; }
.ob-art-chip { position:absolute; display:flex; gap:11px; align-items:center; border-radius:12px; z-index:3; font-size:12px; font-weight:700; box-shadow:0 16px 32px rgba(0,0,0,.22); }
.ob-art-chip-top { top:10%; right:-4%; background:#fff; color:var(--ob-ink2); padding:16px 20px; transform:rotate(5deg); animation:ob-float 6s ease-in-out infinite; }
.ob-chip-icon { width:27px; height:27px; display:grid; place-items:center; border-radius:8px; background:#e4ede4; color:#447661; }
.ob-chip-arrow { margin-left:6px; color:#9c8667; }
.ob-art-chip-bottom { bottom:7%; left:-6%; padding:14px 19px; color:#fff; background:#26333d; border:1px solid rgba(201,164,107,.22); transform:rotate(-4deg); animation:ob-float 6.7s ease-in-out -2s infinite; }
.ob-art-chip-bottom b,.ob-art-chip-bottom small { display:block; }
.ob-art-chip-bottom small { margin-top:3px; font-size:10px; font-weight:500; color:#b4bdc3; }
.ob-chip-icon-gold { color:#f0d6a2; background:rgba(201,164,107,.2); }
.ob-art-coordinate { position:absolute; bottom:0; right:3%; color:#728087; font-size:9px; letter-spacing:.22em; }
.ob-scroll-hint { position:relative; display:flex; gap:13px; align-items:center; margin-top:12px; color:#8d999f; letter-spacing:.12em; font-size:9px; text-transform:uppercase; }
.ob-scroll-hint > span:last-child { color:var(--ob-gold); }
.ob-scroll-mouse { height:25px; width:15px; border:1px solid #576570; border-radius:10px; position:relative; }
.ob-scroll-mouse::after { content:''; position:absolute; top:5px; left:6px; width:2px; height:5px; background:var(--ob-gold); animation:ob-scroll 1.8s infinite; }
@keyframes ob-float { 0%,100% { translate:0 0; } 50% { translate:0 -13px; } }
@keyframes ob-scroll { 0% { transform:translateY(0);opacity:1; } 100% { transform:translateY(8px);opacity:0; } }
.ob-rail { background:var(--ob-ribbon-gold); color:#242b2f; }
.ob-rail-inner { min-height:var(--ob-ribbon-height); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.ob-rail span { font-size:10px; font-weight:850; letter-spacing:.13em; white-space:nowrap; }
.ob-rail i { width:5px; height:5px; border:1px solid #8e7048; transform:rotate(45deg); }
/* Sections */
.ob-section { padding:130px 0; }
.ob-section-head { display:grid; grid-template-columns:1.15fr .6fr; align-items:end; gap:60px; margin-bottom:55px; }
.ob-section-head h2,.ob-process-heading h2,.ob-about h2 { font-size:clamp(40px,5.3vw,72px); font-weight:735; }
.ob-section-head h2 span { color:#989b95; }
.ob-expertise .ob-section-head h2 { font-size:clamp(38px,4.5vw,62px); }
.ob-section-head > p { max-width:350px; margin:0 0 11px; font-size:15px; color:#737974; line-height:1.84; }
.ob-service-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.ob-service-card { min-height:456px; padding:34px 38px 38px; position:relative; overflow:hidden; border-radius:19px; transition:transform .27s,box-shadow .27s; }
.ob-service-card:hover { transform:translateY(-7px); box-shadow:0 21px 45px rgba(0,0,0,.09); }
.ob-service-card-primary { background:#202d35; color:#fff; }
.ob-service-card-secondary { background:#ebe6dc; color:#1a272b; }
.ob-service-card::after { content:''; position:absolute; width:250px; height:250px; border-radius:50%; right:-90px; top:10px; border:1px solid currentColor; opacity:.06; pointer-events:none; }
.ob-service-top { display:flex; justify-content:space-between; align-items:start; font-size:10px; font-weight:760; letter-spacing:.16em; opacity:.7; }
.ob-service-symbol { font-size:20px; }
.ob-service-icon { width:56px; height:56px; color:#d5b07b; margin-top:36px; margin-bottom:23px; }
.ob-service-card-secondary .ob-service-icon { color:#927148; }
.ob-service-card h3 { font-size:clamp(32px,3.3vw,43px); margin-bottom:16px; }
.ob-service-card p { max-width:420px; line-height:1.75; font-size:14px; opacity:.7; min-height:73px; }
.ob-service-card .ob-text-link { margin-top:20px; font-size:12px; }
.ob-card-bottom-deco { position:absolute; bottom:17px; right:25px; font-size:9px; font-weight:720; letter-spacing:.14em; opacity:.17; }
.ob-mini-services { margin-top:34px; display:flex; flex-wrap:wrap; align-items:center; gap:11px; }
.ob-mini-services span { font-size:11px; color:#7f837b; }
.ob-mini-services span:not(:first-child) { padding:9px 15px; background:#f2f0ea; border:1px solid #e5e1d8; border-radius:100px; color:#505b57; font-weight:650; }
/* Featured project */
.ob-work { background:#edeae3; }
.ob-work-head { margin-bottom:59px; }
.ob-feature { display:grid; grid-template-columns:1fr 1fr; background:#fffefa; border-radius:21px; overflow:hidden; box-shadow:0 24px 50px rgba(26,32,35,.055); }
.ob-feature-visual { min-height:520px; position:relative; overflow:hidden; background:radial-gradient(circle at 75% 25%,#46545c,#202c34 69%); padding:34px; display:flex; flex-direction:column; justify-content:space-between; }
.ob-feature-visual::before { content:''; position:absolute; width:500px; height:500px; border:1px solid rgba(201,164,107,.14); border-radius:100%; left:18%; top:9%; }
.ob-feature-inner-top { display:flex; justify-content:space-between; gap:15px; z-index:1; color:#d9e1e1; font-size:10px; font-weight:750; letter-spacing:.12em; }
.ob-feature-inner-top i { display:inline-block; width:6px; height:6px; background:#d6b27c; border-radius:50%; vertical-align:middle; margin-right:8px; }
.ob-feature-screen { width:90%; margin:42px auto; position:relative; z-index:1; padding:8px; background:#f2efe8; border:5px solid #1a242a; border-radius:12px; box-shadow:0 33px 58px rgba(0,0,0,.28); transform:rotate(-4deg); transition:transform .3s; }
.ob-feature:hover .ob-feature-screen { transform:rotate(-1deg) translateY(-4px); }
.ob-feature-screen img { display:block; width:100%; height:auto; max-height:280px; object-fit:cover; object-position:top; border-radius:4px; }
.ob-feature-floating { position:absolute; right:22px; bottom:26px; background:#f9f7f0; color:#2a3338; border-radius:7px; padding:12px 15px; font-size:9px; font-weight:850; letter-spacing:.1em; z-index:2; box-shadow:0 15px 30px #0003; }
.ob-feature-floating span { color:#63a184; margin-right:5px; }
.ob-feature-copy { padding:clamp(36px,5vw,72px); display:flex; flex-direction:column; justify-content:center; }
.ob-feature-label { font-size:10px; color:#a88659; letter-spacing:.16em; font-weight:800; margin-bottom:30px; }
.ob-feature-copy h3 { font-size:clamp(48px,5vw,72px); font-weight:730; margin-bottom:23px; }
.ob-feature-copy h3 span,.ob-catalog-copy h2 span { color:#c5a06b; }
.ob-feature-copy > p { color:#707774; font-size:14px; line-height:1.85; margin-bottom:26px; }
.ob-feature-points { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:28px; }
.ob-feature-points span { color:#5c655f; background:#f1efea; border-radius:6px; padding:9px 12px; font-size:11px; font-weight:630; }
.ob-feature-actions { display:flex; flex-wrap:wrap; align-items:center; gap:23px; }
.ob-feature-copy > small { margin-top:21px; color:#92958f; font-size:10px; line-height:1.4; }
/* Process */
.ob-process { background:#fffefa; }
.ob-process-heading h2 { margin-bottom:61px; }
.ob-process-heading em { color:#a08358; }
.ob-process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.ob-process-grid article { padding-right:34px; }
.ob-process-num { font-size:13px; font-weight:800; letter-spacing:.05em; color:#b09064; }
.ob-process-line { width:100%; height:1px; background:#ddd7ce; margin:20px 0 33px; position:relative; }
.ob-process-line::after { position:absolute; content:''; width:7px; height:7px; border:1px solid #ba9b6f; background:#fffefa; border-radius:100%; top:-3px; left:0; }
.ob-process-grid h3 { font-size:24px; margin-bottom:16px; }
.ob-process-grid p { max-width:340px; font-size:13px; color:#737973; line-height:1.87; }
/* About */
.ob-about { background:#ece9e1; }
.ob-about-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(55px,7vw,105px); align-items:center; }
.ob-about-art { min-height:525px; position:relative; border-radius:20px; background:#1c2a33; overflow:hidden; display:grid; place-items:center; }
.ob-about-art::before { content:''; width:550px; height:550px; border:1px solid rgba(201,164,107,.12); border-radius:50%; position:absolute; }
.ob-about-art::after { content:''; width:380px; height:380px; border:1px solid rgba(201,164,107,.15); border-radius:50%; position:absolute; }
.ob-about-orbit { width:250px; height:250px; border-radius:50%; background:radial-gradient(circle,#344750,#21313c); border:1px solid rgba(201,164,107,.28); box-shadow:0 0 100px rgba(201,164,107,.1); display:grid; place-items:center; z-index:1; }
.ob-about-logo { width:170px; height:170px; object-fit:contain; filter:drop-shadow(0 8px 18px rgba(0,0,0,.17)); }
.ob-about-side-text { position:absolute; z-index:2; transform:rotate(-90deg); left:-84px; top:55%; font-size:9px; letter-spacing:.23em; color:#a5abb0; }
.ob-about-terminal { position:absolute; z-index:2; bottom:26px; right:21px; min-width:235px; border:1px solid rgba(255,255,255,.15); border-radius:10px; background:rgba(14,21,26,.92); padding:13px 16px 17px; box-shadow:0 15px 30px #0004; }
.ob-about-terminal > span { display:block; font-size:9px; color:#99a8ac; margin-bottom:11px; }
.ob-about-terminal i { display:inline-block; width:6px; height:6px; border-radius:50%; background:#af9470; margin-right:3px; }
.ob-about-terminal code { font-family:Consolas,'Courier New',monospace; font-size:10px; line-height:2; color:#cfd9d4; }
.ob-about-terminal code b { color:#d3aa75; font-weight:600; }
.ob-about-terminal code em { color:#8dbeac; font:inherit; }
.ob-about-copy h2 { margin-bottom:30px; }
.ob-about-copy h2 em { color:#a08051; }
.ob-about-copy > p:not(.ob-kicker) { font-size:14px; color:#686f6b; line-height:1.92; max-width:520px; }
.ob-tech-list { display:flex; flex-wrap:wrap; gap:8px; margin:28px 0 27px; }
.ob-tech-list span { padding:8px 12px; border:1px solid #d5cfc3; border-radius:6px; font-size:11px; font-weight:730; color:#4f5a58; }
/* Contact */
.ob-contact { padding:117px 0; background:#14212a; color:#fff; }
.ob-contact-layout { display:grid; grid-template-columns:1.1fr .9fr; align-items:end; gap:80px; }
.ob-contact h2 { font-size:clamp(65px,8vw,116px); font-weight:730; margin-bottom:23px; }
.ob-contact h2 em { color:var(--ob-gold); }
.ob-contact p:not(.ob-kicker) { font-size:14px; line-height:1.9; max-width:485px; color:#b1bbc0; }
.ob-contact-action { border-top:1px solid rgba(255,255,255,.26); padding-top:26px; margin-bottom:16px; }
.ob-contact-star { color:var(--ob-gold); font-size:55px; margin-bottom:25px; }
.ob-contact-email { display:block; width:max-content; max-width:100%; font-size:clamp(19px,2.35vw,33px); line-height:1.25; font-weight:700; letter-spacing:-.045em; overflow-wrap:anywhere; transition:color .2s; }
.ob-contact-email:hover { color:var(--ob-gold-light); }
.ob-contact-email span { color:var(--ob-gold); font-size:32px; }
.ob-contact-action > span { display:block; margin-top:25px; color:#86949c; font-size:11px; }
/* Footer */
.ob-footer { background:#0f1921; color:#fff; border-top:1px solid rgba(255,255,255,.07); }
.ob-footer-inner { display:grid; grid-template-columns:1fr 1.1fr 1fr; align-items:center; gap:25px; padding:35px 0; }
.ob-footer-logo { display:inline-flex; align-items:center; gap:10px; white-space:nowrap; font-weight:750; }
.ob-footer-logo img { display:block; width:40px; height:40px; object-fit:contain; flex:none; }
.ob-footer-logo > span { font-size:15px; letter-spacing:0; }
.ob-footer-inner > p { font-size:12px; color:#b0bec6; line-height:1.6; max-width:235px; margin:0; }
.ob-footer-links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:19px; }
.ob-footer-links a { font-size:11px; color:#b6c0c5; }
.ob-footer-links a:hover { color:var(--ob-gold); }
.ob-footer-inner > small { grid-column:1/-1; font-size:11px; color:#a7b6bf; border-top:1px solid rgba(255,255,255,.07); padding-top:15px; }
/* Catalog */
.ob-catalog-hero { background:#101820; color:#fff; padding:170px 0 70px; position:relative; overflow:hidden; }
.ob-catalog-hero::before { content:''; position:absolute; width:750px; height:750px; border:1px solid rgba(201,164,107,.1); border-radius:50%; right:-210px; top:-200px; }
.ob-back-link { position:relative; display:inline-block; font-size:12px; color:#a7b0b2!important; padding-bottom:26px; transition:color .2s; }
.ob-back-link:hover { color:var(--ob-gold-light)!important; }
.ob-catalog-heading { display:grid; grid-template-columns:1.3fr .6fr; gap:60px; align-items:end; position:relative; }
.ob-catalog-heading h1 { font-size:clamp(49px,6.3vw,91px); margin-bottom:36px; }
.ob-catalog-heading h1 em, .ob-catalog-heading h1 .ob-title-dot { color:var(--ob-gold); }
.ob-catalog-heading > p { color:#aeb9be; font-size:14px; line-height:1.95; max-width:340px; }
.ob-catalog-count { border-top:1px solid rgba(255,255,255,.15); padding-top:22px; font-size:10px; color:#a2adb2; font-weight:750; letter-spacing:.17em; display:flex; align-items:center; gap:13px; }
.ob-catalog-count span { color:var(--ob-gold); }
.ob-catalog-count i { width:15px; height:1px; background:#7b888c; }
.ob-catalog-list { padding:84px 0 122px; }
.ob-catalog-product { display:grid; grid-template-columns:1.08fr .92fr; gap:0; overflow:hidden; background:#fffefa; border-radius:21px; border:1px solid var(--ob-line); }
.ob-catalog-image { min-height:565px; position:relative; overflow:hidden; background:radial-gradient(circle at 65% 24%,#485960,#202e36 67%); padding:39px 40px; display:flex; align-items:center; }
.ob-catalog-image-tag { position:absolute; left:34px; top:35px; display:inline-flex; align-items:center; gap:13px; color:#e8ded0; font-size:10px; font-weight:800; letter-spacing:.16em; }
.ob-catalog-device { padding:8px; width:90%; background:#f4f1eb; border:6px solid #16242d; border-radius:13px; box-shadow:0 32px 60px #0006; transform:rotate(-5deg) translateY(20px); }
.ob-catalog-device img { display:block; width:100%; height:auto; max-height:315px; object-fit:cover; object-position:top; border-radius:4px; }
.ob-catalog-phone { position:absolute; width:25%; right:3%; bottom:8%; transform:rotate(8deg); border:5px solid #152028; padding:5px; border-radius:16px; background:#eee9e1; box-shadow:0 23px 50px #0005; }
.ob-catalog-phone img { display:block; aspect-ratio:9/17; width:100%; height:auto; max-height:220px; object-fit:cover; object-position:top; border-radius:9px; }
.ob-catalog-copy { padding:55px clamp(35px,5vw,67px); display:flex; flex-direction:column; justify-content:center; }
.ob-catalog-copy h2 { font-size:clamp(48px,5vw,74px); margin:20px 0 21px; }
.ob-catalog-copy > p { color:#6f7772; font-size:14px; line-height:1.9; }
.ob-catalog-tags { display:flex; flex-wrap:wrap; gap:7px; margin:18px 0 28px; }
.ob-catalog-tags span { background:#f1efe8; font-size:11px; font-weight:690; padding:9px 12px; border-radius:7px; }
.ob-catalog-buttons { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.ob-catalog-copy > small { margin-top:19px; color:#9c9f96; font-size:10px; }
.ob-catalog-cta { margin-top:68px; border-radius:17px; background:#ebe3d4; padding:40px 48px; display:flex; gap:40px; justify-content:space-between; align-items:center; }
.ob-catalog-cta p { max-width:575px; }
.ob-catalog-cta .ob-button { white-space:nowrap; }
/* Intersection animation is additive; content is fully visible without JS. */
.ob-js [data-ob-reveal]:not(.is-visible) { opacity:0; transform:translateY(24px); }
.ob-js [data-ob-reveal] { transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1); }
.ob-js [data-ob-reveal].is-visible { opacity:1; transform:translateY(0); }
@media(max-width:1100px) {
  .ob-nav { gap:18px; }
  .ob-hero { min-height:710px; }
  .ob-hero h1 { font-size:clamp(58px,6.7vw,86px); }
  .ob-hero-art { max-width:520px; }
  .ob-art-chip-top { right:0; }
  .ob-art-chip-bottom { left:0; }
  .ob-rail-inner { justify-content:center; gap:20px; }
  .ob-section { padding:100px 0; }
}
@media(max-width:820px) {
  .ob-container { width:min(100% - 40px,680px); }
  .ob-header,.ob-header-inner { height:75px; min-height:75px; }
  .ob-menu-toggle { display:block; margin-left:auto; }
  .ob-nav { display:none; flex-direction:column; align-items:stretch; gap:0; position:absolute; top:75px; left:0; right:0; background:#13212c; box-shadow:0 26px 35px #0004; border-bottom:1px solid #44515a; padding:13px 20px 24px; }
  .ob-nav.is-open { display:flex; }
  .ob-nav > a { display:block; padding:14px 10px; font-size:15px; }
  .ob-nav-contact { justify-content:space-between; margin-top:10px; }
  .ob-hero { min-height:0; padding:123px 0 53px; }
  .ob-hero-layout { grid-template-columns:1fr; gap:20px; }
  .ob-hero-content { padding:20px 0 4px; }
  .ob-hero h1 { font-size:clamp(63px,10vw,86px); }
  .ob-hero-lead { max-width:650px; }
  .ob-hero-art { width:min(100% - 26px,520px); margin:10px auto 0; }
  .ob-scroll-hint { margin-top:12px; }
  .ob-rail-inner { min-height:var(--ob-ribbon-height); }
  .ob-rail span { font-size:9px; }
  .ob-section-head { grid-template-columns:1fr; gap:14px; }
  .ob-section-head > p { max-width:560px; }
  .ob-feature { grid-template-columns:1fr; }
  .ob-feature-visual { min-height:420px; }
  .ob-feature-copy { padding:42px; }
  .ob-about-grid { grid-template-columns:1fr; gap:45px; }
  .ob-about-art { min-height:420px; max-width:570px; width:100%; }
  .ob-contact-layout { grid-template-columns:1fr; gap:35px; }
  .ob-contact-action { max-width:550px; }
  .ob-footer-inner { grid-template-columns:1fr 1fr; }
  .ob-footer-links { justify-content:flex-start; }
  .ob-catalog-heading { grid-template-columns:1fr; gap:5px; }
  .ob-catalog-heading > p { max-width:590px; }
  .ob-catalog-product { grid-template-columns:1fr; }
  .ob-catalog-image { min-height:445px; }
  .ob-catalog-copy { padding:43px; }
}
@media(max-width:600px) {
  .ob-container { width:calc(100% - 36px); }
  .ob-brand-icon { width:41px; height:41px; font-size:22px; }
  .ob-brand-name { font-size:16px; }
  .ob-hero { padding-top:110px; }
  .ob-hero-eyebrow { font-size:9px; letter-spacing:.12em; margin-bottom:24px; }
  .ob-hero h1 { font-size:clamp(52px,12vw,72px); margin-bottom:23px; }
  .ob-hero-lead { font-size:14px; }
  .ob-hero-actions { flex-direction:column; align-items:stretch; }
  .ob-button { width:100%; justify-content:space-between; min-height:55px; }
  .ob-hero-art { width:calc(100% - 26px); margin-top:28px; }
  .ob-art-window { border-width:4px; }
  .ob-window-top { height:31px; font-size:8px; }
  .ob-window-state { font-size:7px; }
  .ob-art-chip { font-size:9px; padding:9px 11px; border-radius:8px; }
  .ob-art-chip-top { top:6%; right:-7%; }
  .ob-art-chip-bottom { bottom:4%; left:-7%; }
  .ob-art-chip-bottom small { font-size:8px; }
  .ob-chip-icon { width:22px; height:22px; }
  .ob-art-coordinate { font-size:7px; }
  .ob-rail-inner { padding:13px 0; gap:12px; }
  .ob-rail span { font-size:9px; }
  .ob-rail i { display:none; }
  .ob-section { padding:75px 0; }
  .ob-kicker { font-size:10px; margin-bottom:18px; }
  .ob-section-head h2,.ob-process-heading h2,.ob-about h2 { font-size:clamp(40px,10vw,56px); }
  .ob-section-head { margin-bottom:35px; }
  .ob-service-grid { grid-template-columns:1fr; gap:13px; }
  .ob-service-card { min-height:400px; padding:29px; }
  .ob-service-card h3 { font-size:37px; }
  .ob-service-card p { min-height:0; }
  .ob-service-icon { margin-top:34px; }
  .ob-mini-services { gap:8px; }
  .ob-mini-services > span:first-child { width:100%; }
  .ob-feature-visual { min-height:355px; padding:20px; }
  .ob-feature-screen { width:94%; margin:50px auto 35px; }
  .ob-feature-copy { padding:33px 25px 40px; }
  .ob-feature-copy h3 { font-size:52px; }
  .ob-feature-actions { align-items:stretch; flex-direction:column; }
  .ob-feature-actions .ob-inline-link { align-self:flex-start; }
  .ob-process-heading h2 { margin-bottom:30px; }
  .ob-process-grid { grid-template-columns:1fr; gap:23px; }
  .ob-process-grid article { padding-right:0; }
  .ob-process-line { margin:10px 0 16px; }
  .ob-process-grid h3 { font-size:23px; margin-bottom:8px; }
  .ob-about-art { min-height:360px; }
  .ob-about-orbit { width:190px; height:190px; }
  .ob-about-logo { width:130px; height:130px; }
  .ob-about-terminal { right:13px; bottom:12px; min-width:197px; }
  .ob-about-side-text { display:none; }
  .ob-contact { padding:78px 0 87px; }
  .ob-contact h2 { font-size:74px; }
  .ob-contact-email { font-size:clamp(19px,6vw,30px); }
  .ob-footer-inner { grid-template-columns:1fr; gap:17px; }
  .ob-footer-inner > p { max-width:320px; }
  .ob-footer-links { gap:21px; }
  .ob-catalog-hero { padding:123px 0 50px; }
  .ob-catalog-heading h1 { font-size:clamp(44px,10vw,67px); }
  .ob-catalog-count { font-size:8px; flex-wrap:wrap; }
  .ob-catalog-list { padding:55px 0 85px; }
  .ob-catalog-image { min-height:335px; padding:25px; }
  .ob-catalog-device { width:92%; }
  .ob-catalog-image-tag { top:20px; left:21px; font-size:9px; }
  .ob-catalog-copy { padding:32px 24px 39px; }
  .ob-catalog-copy h2 { font-size:51px; }
  .ob-catalog-buttons { flex-direction:column; align-items:stretch; }
  .ob-catalog-cta { margin-top:45px; padding:27px; flex-direction:column; align-items:stretch; gap:20px; }
}
@media(prefers-reduced-motion:reduce) {
  .ob-site,.ob-site * { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
  .ob-js [data-ob-reveal] { opacity:1!important; transform:none!important; }
  .ob-art-window { transform:rotate(-5deg)!important; }
}

/* V1.1 – clear paths for flyer visitors, actionable first contact and polished motion. */
.ob-site { scroll-behavior:smooth; }
.ob-hero::after { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(420px circle at var(--ob-pointer-x,65%) var(--ob-pointer-y,48%),rgba(201,164,107,.075),transparent 78%); }
.ob-hero .ob-hero-content > .ob-eyebrow, .ob-hero h1, .ob-hero-lead, .ob-hero-actions { animation:ob-hero-in .85s cubic-bezier(.2,1,.3,1) both; }
.ob-hero h1 { animation-delay:.08s; }
.ob-hero-lead { animation-delay:.16s; }
.ob-hero-actions { animation-delay:.24s; }
@keyframes ob-hero-in { from { opacity:0; transform:translateY(17px); } to { opacity:1; transform:translateY(0); } }
.ob-art-orbit-one { animation:ob-orbit-rotate 37s linear infinite; }
.ob-art-orbit-two { animation:ob-orbit-counter 42s linear infinite; }
@keyframes ob-orbit-rotate { from { transform:rotate(-18deg) scale(1.12); } to { transform:rotate(342deg) scale(1.12); } }
@keyframes ob-orbit-counter { from { transform:rotate(22deg) scale(.82); } to { transform:rotate(-338deg) scale(.82); } }
.ob-flyer-bridge { display:flex; align-items:center; gap:13px; max-width:492px; margin-top:22px; padding:14px 16px; border-radius:12px; background:rgba(255,255,255,.045); border:1px solid rgba(201,164,107,.37); transition:background .25s,border-color .25s,transform .25s; }
.ob-flyer-bridge:hover { background:rgba(201,164,107,.14); border-color:rgba(201,164,107,.76); transform:translateY(-2px); }
.ob-flyer-icon { flex:none; width:32px; height:32px; display:grid; place-items:center; background:rgba(201,164,107,.16); color:#ead0a5; border-radius:9px; font-size:18px; }
.ob-flyer-bridge > span:nth-child(2) { display:grid; gap:2px; line-height:1.4; }
.ob-flyer-bridge strong { color:#f6ebd7; font-size:13px; font-weight:760; }
.ob-flyer-bridge small { font-size:11px; color:#bcc6cb; }
.ob-flyer-arrow { margin-left:auto; font-size:19px; color:var(--ob-gold); }
.ob-service-card:before { content:""; position:absolute; inset:0; pointer-events:none; border:1px solid transparent; border-radius:inherit; transition:border-color .25s,box-shadow .25s; }
.ob-service-card:hover:before { border-color:rgba(201,164,107,.48); box-shadow:inset 0 0 34px rgba(201,164,107,.045); }
.ob-service-card .ob-text-link { position:relative; z-index:2; }
.ob-rail-inner { overflow:hidden; }
.ob-process-grid article:nth-child(2) { transition-delay:.095s; }
.ob-process-grid article:nth-child(3) { transition-delay:.19s; }
.ob-about-orbit { animation:ob-about-breathe 8s ease-in-out infinite; }
@keyframes ob-about-breathe { 0%,100% { box-shadow:0 0 80px rgba(201,164,107,.065); } 50% { box-shadow:0 0 105px rgba(201,164,107,.22); } }
/* Conversion: contact pane does not send or save anything server-side. */
.ob-contact { position:relative; isolation:isolate; overflow:hidden; }
.ob-contact::before { content:""; position:absolute; pointer-events:none; z-index:-1; right:-140px; bottom:-330px; width:min(790px,90vw); aspect-ratio:1; border:1px solid rgba(201,164,107,.17); border-radius:50%; box-shadow:0 0 0 120px rgba(201,164,107,.019),0 0 0 240px rgba(201,164,107,.012); }
.ob-contact-layout { grid-template-columns:.95fr 1.05fr; gap:clamp(30px,5vw,70px); align-items:center; }
.ob-contact-intro h2 { font-size:clamp(66px,7vw,100px); }
.ob-contact-reasons { display:grid; gap:9px; margin:28px 0 27px; }
.ob-contact-reasons > span { display:flex; gap:12px; align-items:baseline; color:#c7d0d2; font-size:13px; }
.ob-contact-reasons > span span { color:var(--ob-gold-light); font-weight:800; }
.ob-contact-direct { display:inline-flex; gap:10px; align-items:center; font-size:clamp(14px,1.75vw,19px); font-weight:730; color:#e5c493!important; overflow-wrap:anywhere; border-bottom:1px solid rgba(201,164,107,.65); padding-bottom:7px; }
.ob-contact-direct:hover { color:#fff!important; }
.ob-lead-card { position:relative; border:1px solid rgba(218,191,150,.32); background:#f7f5ef; border-radius:20px; padding:clamp(24px,3vw,42px); color:#17212b; box-shadow:0 28px 64px #0003; }
.ob-lead-header { display:flex; justify-content:space-between; align-items:center; }
.ob-lead-symbol { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#eae1d2; color:#775b3b; font-size:20px; }
.ob-lead-card h3 { font-size:clamp(27px,2.9vw,39px); margin:15px 0 7px; }
.ob-lead-card .ob-lead-intro { color:#737a73; margin:0 0 24px; font-size:13px; }
.ob-lead-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ob-field { margin-bottom:14px; }
.ob-field label { display:block; font-size:12px; font-weight:740; margin-bottom:7px; color:#364449; }
.ob-field label span { color:#a47639; }
.ob-field input,.ob-field select,.ob-field textarea { display:block; width:100%; min-width:0; border:1px solid #cfc9be; border-radius:9px; background:#fffefa; color:#17212b; font:inherit; font-size:14px; line-height:1.45; padding:12px 13px; outline:0; transition:border-color .2s,box-shadow .2s; }
.ob-field input,.ob-field select { min-height:47px; }
.ob-field textarea { resize:vertical; min-height:112px; }
.ob-field input::placeholder,.ob-field textarea::placeholder { color:#82877e; opacity:1; }
.ob-field input:focus,.ob-field select:focus,.ob-field textarea:focus { border-color:#957145; box-shadow:0 0 0 3px rgba(201,164,107,.22); }
.ob-lead-submit { width:100%; justify-content:space-between; border:0; }
.ob-copy-request { width:100%; display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; background:none; border:0; color:#3f4c52; font-size:12px; font-weight:730; text-decoration:underline; text-underline-offset:3px; margin-top:6px; }
.ob-copy-request:hover { color:#986d39; }
.ob-contact .ob-lead-note { font-size:11px; line-height:1.6; color:#6e756f; margin:10px 0 0; }
.ob-contact .ob-lead-feedback { min-height:1em; margin:10px 0 0; font-size:12px; font-weight:670; color:#526d56; }
.ob-lead-noscript { color:#17212b!important; font-size:13px!important; }
.ob-lead-noscript a { text-decoration:underline; }
.ob-footer-links a,.ob-service-card .ob-text-link,.ob-feature-actions a { min-height:34px; }
@media(max-width:820px) {
  .ob-contact-layout { grid-template-columns:1fr; gap:35px; }
  .ob-contact-intro h2 { font-size:clamp(65px,10vw,85px); }
  .ob-lead-card { max-width:650px; width:100%; }
}
@media(max-width:600px) {
  .ob-flyer-bridge { padding:13px 11px; gap:11px; }
  .ob-flyer-bridge strong { font-size:12px; }
  .ob-flyer-bridge small { font-size:11px; }
  .ob-flyer-icon { width:29px; height:29px; }
  .ob-service-card p,.ob-feature-copy > p,.ob-about-copy > p:not(.ob-kicker),.ob-process-grid p { font-size:14px; }
  .ob-lead-fields { grid-template-columns:1fr; gap:0; }
  .ob-contact { padding:74px 0 87px; }
  .ob-lead-card { padding:24px 18px; border-radius:15px; }
  .ob-contact-reasons { margin:23px 0; }
  .ob-contact-direct { font-size:14px; }
  .ob-contact-intro h2 { font-size:69px; }
}
@media(prefers-reduced-motion:reduce) {
  .ob-hero::after { display:none; }
  .ob-hero .ob-hero-content > .ob-eyebrow,.ob-hero h1,.ob-hero-lead,.ob-hero-actions { animation:none!important; }
  .ob-art-orbit-one,.ob-art-orbit-two,.ob-about-orbit { animation:none!important; }
}

/* Override the general dark-section paragraph color inside the light form card. */
.ob-contact .ob-lead-card p.ob-lead-intro { color:#626f67; }
.ob-contact .ob-lead-card p.ob-lead-note { color:#57615b; }
.ob-contact .ob-lead-card p.ob-lead-feedback { color:#47684d; }
.ob-site .ob-lead-submit { font-size:14px; font-weight:760; }
.ob-site .ob-copy-request { font-size:12px; font-weight:730; }

/* The static mailto link remains the graceful fallback when JavaScript is disabled. */
.ob-lead-form { display:none; }
.ob-js .ob-lead-form { display:block; }


/* === V1.3 design refinements === */
.ob-glow-surface { position:relative; isolation:isolate; overflow:hidden; }
.ob-glow-surface::after { content:""; position:absolute; inset:auto; width:340px; height:340px; left:var(--ob-glow-x,50%); top:var(--ob-glow-y,50%); translate:-50% -50%; border-radius:50%; background:radial-gradient(circle, rgba(201,164,107,.22) 0%, rgba(201,164,107,.10) 28%, rgba(201,164,107,.04) 48%, transparent 72%); opacity:0; transition:opacity .28s ease; pointer-events:none; z-index:0; }
.ob-glow-surface:hover::after { opacity:1; }
.ob-contact > .ob-container, .ob-catalog-hero > .ob-container { position:relative; z-index:1; }

.ob-work-head { margin-bottom:34px; }

.ob-mini-services { display:none; }
.ob-mini-rail { position:relative; overflow:hidden; display:flex; align-items:center; width:100vw; height:var(--ob-ribbon-height); margin-top:32px; margin-left:calc(50% - 50vw); padding:0; border:0; border-radius:0; background:var(--ob-ribbon-gold); box-shadow:none; }
.ob-mini-rail::before,
.ob-mini-rail::after { content:""; position:absolute; top:0; bottom:0; width:74px; z-index:2; pointer-events:none; }
.ob-mini-rail::before { left:0; background:linear-gradient(90deg, var(--ob-ribbon-gold), transparent); }
.ob-mini-rail::after { right:0; background:linear-gradient(270deg, var(--ob-ribbon-gold), transparent); }
.ob-mini-rail-track { display:flex; align-items:center; gap:12px; width:max-content; min-width:max-content; padding-inline:12px; }
.ob-mini-rail-group { display:flex; flex:0 0 auto; align-items:center; gap:12px; width:max-content; }
.ob-mini-rail-track.is-ready { animation:ob-marquee var(--ob-rail-duration,26s) linear infinite; }
.ob-mini-rail:hover .ob-mini-rail-track { animation-play-state:paused; }
.ob-mini-rail-bubble { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:0 18px; border-radius:999px; white-space:nowrap; background:#fff9ef; border:1px solid rgba(125,96,47,.28); color:#654a2c; font-size:12px; font-weight:780; letter-spacing:.02em; box-shadow:0 5px 12px rgba(93,63,31,.10); transition:transform .2s ease,box-shadow .2s ease; }
.ob-mini-rail-bubble:hover { transform:scale(1.055); box-shadow:0 9px 19px rgba(93,63,31,.18); }

.ob-feature-points span,
.ob-tech-list span,
.ob-catalog-tags span { transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease; transform-origin:center; }
.ob-feature-points span:hover,
.ob-tech-list span:hover,
.ob-catalog-tags span:hover { transform:translateY(-2px) scale(1.06); box-shadow:0 10px 22px rgba(23,33,43,.10); border-color:rgba(201,164,107,.48); background:#f7f0e4; }
.ob-feature-points span,
.ob-tech-list span,
.ob-catalog-tags span { border:1px solid transparent; }

/* Preserve the compact floating preview label inside the project image. */
.ob-feature-floating { position:absolute; display:inline-flex; align-items:center; width:max-content; max-width:calc(100% - 48px); right:24px; bottom:24px; white-space:nowrap; }
.ob-feature-actions { gap:12px; }
.ob-feature-actions .ob-button { min-width:min(100%, 230px); }
.ob-feature-actions .ob-button-line { color:var(--ob-ink2)!important; background:#fff; border:1px solid #d6cec1; }
.ob-feature-actions .ob-button-line:hover { background:#f4efe6; }

.ob-about-art { background:radial-gradient(circle at 50% 35%, #223643 0%, #16232d 78%); }
.ob-about-art::before { opacity:.85; }
.ob-about-art::after { opacity:.9; }
.ob-about-ring { position:absolute; border:1px solid rgba(201,164,107,.11); border-radius:50%; pointer-events:none; }
.ob-about-ring-one { width:640px; height:640px; animation:ob-slow-spin 24s linear infinite; }
.ob-about-ring-two { width:310px; height:310px; animation:ob-slow-spin-reverse 18s linear infinite; }
.ob-about-pulse { position:absolute; width:140px; height:140px; border-radius:50%; background:radial-gradient(circle, rgba(201,164,107,.30), transparent 68%); filter:blur(6px); animation:ob-pulse 5.8s ease-in-out infinite; }
.ob-about-orbit { box-shadow:0 0 0 1px rgba(201,164,107,.15), 0 0 50px rgba(201,164,107,.12), inset 0 0 28px rgba(255,255,255,.03); }
.ob-about-logo { animation:ob-logo-float 6.6s ease-in-out infinite; }
.ob-about-badge { position:absolute; z-index:2; display:inline-flex; align-items:center; gap:8px; padding:11px 15px; border-radius:999px; background:rgba(10,16,22,.88); border:1px solid rgba(201,164,107,.28); color:#f2d8ac; font-size:11px; font-weight:760; letter-spacing:.08em; text-transform:uppercase; box-shadow:0 16px 32px rgba(0,0,0,.26); }
.ob-about-badge::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--ob-gold); box-shadow:0 0 18px rgba(201,164,107,.55); }
.ob-about-badge-top { top:54px; right:42px; animation:ob-float 7s ease-in-out infinite; }
.ob-about-badge-bottom { left:34px; bottom:48px; animation:ob-float 7.8s ease-in-out -2.3s infinite; }

.ob-back-link { display:inline-flex; align-items:center; gap:10px; font-size:12px; color:#d9dfdf!important; margin-bottom:30px; padding:10px 14px; border-radius:999px; border:1px solid rgba(201,164,107,.28); background:rgba(255,255,255,.03); transition:color .2s, background .2s, transform .2s, border-color .2s; }
.ob-back-link:hover { color:var(--ob-gold-light)!important; background:rgba(201,164,107,.1); border-color:rgba(201,164,107,.5); transform:translateY(-2px); }
.ob-back-link span:first-child { font-size:16px; line-height:1; color:var(--ob-gold); }

@keyframes ob-marquee { from { transform:translateX(0); } to { transform:translateX(var(--ob-rail-offset, 0px)); } }
@keyframes ob-slow-spin { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
@keyframes ob-slow-spin-reverse { from { transform:rotate(360deg); } to { transform:rotate(0deg); } }
@keyframes ob-pulse { 0%,100% { transform:scale(.9); opacity:.45; } 50% { transform:scale(1.14); opacity:.78; } }
@keyframes ob-logo-float { 0%,100% { transform:translateY(0) scale(1); } 50% { transform:translateY(-8px) scale(1.02); } }

@media(max-width:980px) {
  .ob-mini-rail { margin-top:22px; }
  .ob-about-badge-top { top:28px; right:24px; }
  .ob-about-badge-bottom { left:18px; bottom:24px; }
}

@media(max-width:600px) {
  .ob-site { --ob-ribbon-height:72px; }
  .ob-mini-rail { width:100vw; margin-left:calc(50% - 50vw); }
  .ob-feature-floating { right:18px; bottom:18px; max-width:calc(100% - 36px); }
  .ob-mini-rail::before,
  .ob-mini-rail::after { width:34px; }
  .ob-mini-rail-bubble { min-height:34px; padding:0 14px; font-size:11px; }
  .ob-feature-actions { align-items:stretch; }
  .ob-feature-actions .ob-button { width:100%; min-width:0; }
  .ob-about-badge { font-size:10px; padding:9px 12px; }
  .ob-about-ring-one { width:470px; height:470px; }
  .ob-about-ring-two { width:250px; height:250px; }
  .ob-back-link { margin-bottom:18px; }
}

@media(max-width:360px) {
  .ob-site { --ob-ribbon-height:96px; }
}

@media(prefers-reduced-motion:reduce) {
  .ob-mini-rail-track,
  .ob-about-ring-one,
  .ob-about-ring-two,
  .ob-about-logo,
  .ob-about-badge,
  .ob-about-pulse { animation:none!important; }
  .ob-glow-surface::after { transition:none; }
}

/* V1.4: accessible async inquiry submission and invisible anti-spam field. */
.ob-honeypot { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip-path:inset(50%)!important; white-space:nowrap!important; pointer-events:none!important; }
.ob-site .ob-lead-submit:disabled { cursor:wait; opacity:.72; transform:none; }
.ob-site .ob-lead-submit.is-sent:disabled { cursor:default; opacity:1; background:#d5e8d9; color:#204b2e; }
.ob-contact .ob-lead-feedback[data-state="error"] { color:#9d352c; }
.ob-contact .ob-lead-feedback[data-state="success"] { color:#216843; }

.ob-copy-request[hidden] { display:none!important; }


/* Olcsi Business legal pages and footer links */
.ob-lead-note a { color:#3f4c52; text-decoration:underline; text-underline-offset:3px; }
.ob-lead-note a:hover { color:#986d39; }
.ob-legal-main { padding-top:calc(var(--ob-header-height, 92px) + 12px); }
.ob-legal-hero { padding-top:34px; padding-bottom:72px; }
.ob-legal-intro { max-width:860px; margin-bottom:28px; }
.ob-legal-intro h1 { font-size:clamp(40px,5vw,68px); line-height:.98; letter-spacing:-.045em; margin:18px 0 16px; }
.ob-legal-lead { max-width:720px; color:#6e7671; font-size:16px; line-height:1.8; }
.ob-legal-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.ob-legal-links a { display:inline-flex; align-items:center; min-height:40px; padding:0 16px; border-radius:999px; border:1px solid rgba(161,128,81,.24); background:#f4efe6; color:#1a2533; font-size:12px; font-weight:730; letter-spacing:.04em; text-transform:uppercase; }
.ob-legal-links a[aria-current="page"] { background:#d3ae77; border-color:#d3ae77; color:#101820; }
.ob-legal-card { background:#fffdfa; border-radius:32px; padding:clamp(28px,4vw,48px); border:1px solid rgba(26,37,51,.08); box-shadow:0 24px 60px rgba(16,24,32,.08); }
.ob-legal-meta { display:flex; flex-wrap:wrap; gap:12px 18px; align-items:center; justify-content:space-between; padding-bottom:20px; border-bottom:1px solid rgba(26,37,51,.08); margin-bottom:10px; }
.ob-legal-badge { display:inline-flex; align-items:center; min-height:34px; padding:0 14px; border-radius:999px; background:#101820; color:#f8f5ee; font-size:11px; font-weight:760; letter-spacing:.16em; text-transform:uppercase; }
.ob-legal-updated { color:#7a807d; font-size:13px; }
.ob-legal-section { padding:24px 0; border-bottom:1px solid rgba(26,37,51,.08); }
.ob-legal-section:last-child { border-bottom:0; padding-bottom:0; }
.ob-legal-section h2 { font-size:26px; line-height:1.18; margin-bottom:16px; letter-spacing:-.03em; }
.ob-legal-copy { color:#58605d; font-size:15px; line-height:1.95; }
.ob-legal-copy p + p,.ob-legal-copy ul + p,.ob-legal-copy p + ul { margin-top:14px; }
.ob-legal-copy ul { margin:0; padding-left:20px; }
.ob-legal-copy li + li { margin-top:8px; }
.ob-legal-copy a { color:#986d39; text-decoration:underline; text-underline-offset:3px; }
@media (max-width: 760px) {
  .ob-legal-main { padding-top:calc(var(--ob-header-height, 82px) + 10px); }
  .ob-legal-hero { padding-top:20px; padding-bottom:44px; }
  .ob-legal-intro h1 { font-size:42px; }
  .ob-legal-card { border-radius:24px; padding:24px 20px; }
  .ob-legal-section h2 { font-size:22px; }
  .ob-legal-copy { font-size:14px; line-height:1.85; }
}

/* Legal pages start on a pale background: keep the shared header readable. */
.ob-legal-page .ob-header { background:#101820; border-bottom-color:rgba(255,255,255,.11); }
.ob-legal-page .ob-header.is-scrolled { background:rgba(16,24,32,.97); }

/* Footer: marketing and legal links in the same navigation row. */
.ob-footer-inner { grid-template-columns:minmax(170px,.85fr) minmax(190px,.9fr) minmax(0,2.9fr); column-gap:20px; }
.ob-footer-links { justify-content:flex-end; gap:10px 14px; }
.ob-footer-links a { white-space:nowrap; }
.ob-footer-divider { flex:none; width:1px; height:16px; background:rgba(201,164,107,.38); }
@media (min-width:1100px) {
  .ob-footer-links { flex-wrap:nowrap; }
}
@media (max-width:980px) {
  .ob-footer-inner { grid-template-columns:1fr 1fr; }
  .ob-footer-links { justify-content:flex-start; grid-column:1/-1; }
}
@media (max-width:600px) {
  .ob-footer-inner { grid-template-columns:1fr; }
  .ob-footer-links { grid-column:auto; gap:8px 16px; }
  .ob-footer-divider { display:none; }
}

/* Dedicated service page: isolated from Appointment Platform and existing marketing pages. */
.ob-custom-hero { background:#101820; color:#fff; padding:162px 0 105px; overflow:hidden; position:relative; }
.ob-custom-hero::before { content:''; position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 83% 22%,rgba(201,164,107,.17),transparent 37%); }
.ob-custom-hero-grid { display:grid; grid-template-columns:1.06fr .94fr; align-items:center; gap:clamp(30px,5vw,78px); position:relative; }
.ob-custom-back { display:inline-flex; color:#bbc1c3!important; font-size:12px; margin-bottom:38px; }
.ob-custom-back:hover { color:var(--ob-gold-light)!important; }
.ob-custom-hero .ob-kicker { color:var(--ob-gold-light); }
.ob-custom-hero h1 { font-size:clamp(43px,5vw,74px); letter-spacing:-.065em; max-width:760px; margin-bottom:30px; }
.ob-custom-hero h1 em { color:var(--ob-gold); }
.ob-custom-lead { color:#bec5c9; font-size:clamp(15px,1.25vw,18px); line-height:1.82; max-width:610px; }
.ob-custom-actions { display:flex; flex-wrap:wrap; gap:12px; margin:31px 0 0; }
.ob-custom-hint { font-size:12px; color:#9da8af; margin-top:25px; }
.ob-custom-hero-visual { margin:0; background:#26333d; border:1px solid #42505a; border-radius:18px; padding:12px; box-shadow:0 38px 75px #0006; }
.ob-custom-hero-visual img { display:block; width:100%; height:auto; aspect-ratio:1.43; object-fit:cover; object-position:top; border-radius:9px; }
.ob-custom-hero-visual figcaption { color:#ced4d8; font-size:12px; padding:15px 5px 4px; text-align:center; }
.ob-custom-section { padding:105px 0; }
.ob-custom-heading { max-width:790px; margin-bottom:45px; }
.ob-custom-heading h2,.ob-custom-proof h2,.ob-custom-faq h2,.ob-custom-contact h2 { font-size:clamp(38px,4.3vw,62px); letter-spacing:-.06em; margin-bottom:22px; }
.ob-custom-heading h2 em,.ob-custom-proof h2 em,.ob-custom-faq h2 em,.ob-custom-contact h2 em { color:#a87f47; }
.ob-custom-heading > p:last-child { color:#64706b; max-width:710px; line-height:1.85; }
.ob-custom-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:19px; }
.ob-custom-card { background:#fffefa; border:1px solid var(--ob-line); border-radius:17px; padding:35px; min-width:0; }
.ob-custom-card-num { font-size:12px; font-weight:800; color:#a57c44; letter-spacing:.13em; }
.ob-custom-card h3 { font-size:clamp(22px,2.1vw,31px); margin:23px 0 15px; }
.ob-custom-card p { font-size:14px; line-height:1.85; color:#68716d; margin:0; }
.ob-custom-section-note { max-width:820px; color:#737a75; font-size:12px; margin:25px 0 0; }
.ob-custom-proof { background:#ebe7dd; }
.ob-custom-proof-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(30px,6vw,100px); align-items:center; }
.ob-custom-proof-grid > div > p:not(.ob-kicker) { color:#576460; line-height:1.86; }
.ob-custom-proof-grid .ob-button { margin-top:18px; }
.ob-custom-proof-image { position:relative; background:#fff; padding:12px; border-radius:17px; border:1px solid #d9d0c2; box-shadow:0 30px 60px #0002; }
.ob-custom-proof-image img { display:block; width:100%; height:auto; border-radius:8px; }
.ob-custom-proof-image span { display:block; padding:13px 5px 3px; color:#6d716c; font-size:12px; text-align:center; }
.ob-custom-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; padding:0; margin:0; list-style:none; }
.ob-custom-steps li { border-top:2px solid #c9a46b; padding-top:24px; }
.ob-custom-steps li > span { color:#a5804d; font-weight:800; font-size:12px; }
.ob-custom-steps h3 { font-size:23px; margin:23px 0 14px; }
.ob-custom-steps p { color:#66716c; font-size:14px; line-height:1.82; }
.ob-custom-faq { background:#fffefa; }
.ob-custom-faq-grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:70px; }
.ob-custom-questions details { border-bottom:1px solid #dedbd3; }
.ob-custom-questions details:first-child { border-top:1px solid #dedbd3; }
.ob-custom-questions summary { cursor:pointer; padding:24px 6px; font-weight:750; font-size:18px; }
.ob-custom-questions summary:focus-visible { outline:3px solid #c9a46b; outline-offset:3px; }
.ob-custom-questions details p { margin:0 0 23px; padding:0 10px 0 6px; font-size:14px; color:#636e68; line-height:1.85; }
.ob-custom-contact { background:#101820; color:#fff; padding:85px 0; }
.ob-custom-contact-inner { display:flex; align-items:center; justify-content:space-between; gap:46px; }
.ob-custom-contact-inner > div { max-width:720px; }
.ob-custom-contact .ob-kicker { color:var(--ob-gold-light); }
.ob-custom-contact h2 em { color:var(--ob-gold); }
.ob-custom-contact p:not(.ob-kicker) { color:#bbc5c8; max-width:620px; }
.ob-custom-contact .ob-button { flex-shrink:0; }
@media (max-width:980px) {
  .ob-custom-hero-grid,.ob-custom-proof-grid { grid-template-columns:1fr; }
  .ob-custom-hero-visual { max-width:740px; }
  .ob-custom-steps { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:30px; }
  .ob-custom-faq-grid { grid-template-columns:1fr; gap:16px; }
  .ob-custom-contact-inner { flex-direction:column; align-items:flex-start; gap:24px; }
}
@media (max-width:600px) {
  .ob-custom-hero { padding:117px 0 65px; }
  .ob-custom-hero h1 { font-size:clamp(39px,10.5vw,58px); }
  .ob-custom-back { margin-bottom:27px; }
  .ob-custom-hero-visual { padding:8px; }
  .ob-custom-hero-visual figcaption { font-size:11px; }
  .ob-custom-section { padding:70px 0; }
  .ob-custom-cards,.ob-custom-steps { grid-template-columns:1fr; }
  .ob-custom-card { padding:26px; }
  .ob-custom-contact { padding:65px 0; }
  .ob-custom-contact .ob-button { width:100%; }
}

/* Custom service page: progressive enhancements on top of the shared reveal observer. */
.ob-custom-hero::after {
  content:""; position:absolute; pointer-events:none; right:-5%; top:17%;
  width:min(54vw,650px); aspect-ratio:1; border-radius:50%;
  border:1px solid rgba(201,164,107,.12);
  box-shadow:0 0 0 90px rgba(201,164,107,.012),0 0 0 180px rgba(201,164,107,.008);
}
.ob-custom-hero-visual { position:relative; z-index:1; }
.ob-custom-card { transition:border-color .25s ease,box-shadow .25s ease,transform .3s ease; }
.ob-custom-proof-image img { transition:transform .45s cubic-bezier(.22,1,.36,1); }
.ob-custom-proof-image { overflow:hidden; }
.ob-custom-questions details[open] > summary { color:#946d39; }

/* Motion only when the visitor has not requested reduced animation. */
@media (prefers-reduced-motion:no-preference) {
  .ob-custom-hero-copy > .ob-back-link,
  .ob-custom-hero-copy > .ob-kicker,
  .ob-custom-hero-copy > h1,
  .ob-custom-hero-copy > .ob-custom-lead,
  .ob-custom-hero-copy > .ob-custom-actions,
  .ob-custom-hero-visual {
    animation:ob-custom-arrive .78s cubic-bezier(.22,1,.36,1) both;
  }
  .ob-custom-hero-copy > .ob-kicker { animation-delay:.07s; }
  .ob-custom-hero-copy > h1 { animation-delay:.14s; }
  .ob-custom-hero-copy > .ob-custom-lead { animation-delay:.22s; }
  .ob-custom-hero-copy > .ob-custom-actions { animation-delay:.30s; }
  .ob-custom-hero-visual { animation-delay:.16s; }
  @keyframes ob-custom-arrive {
    from { opacity:0; transform:translateY(20px); }
    to { opacity:1; transform:translateY(0); }
  }
  .ob-custom-cards .ob-custom-card:nth-child(2),
  .ob-custom-steps li:nth-child(2),
  .ob-custom-questions details:nth-child(2) { transition-delay:.08s; }
  .ob-custom-cards .ob-custom-card:nth-child(3),
  .ob-custom-steps li:nth-child(3),
  .ob-custom-questions details:nth-child(3) { transition-delay:.14s; }
  .ob-custom-cards .ob-custom-card:nth-child(4),
  .ob-custom-steps li:nth-child(4),
  .ob-custom-questions details:nth-child(4) { transition-delay:.20s; }
  .ob-custom-proof-image[data-ob-reveal] { transition-delay:.12s; }
  .ob-js .ob-custom-card[data-ob-reveal] {
    transition:opacity .75s cubic-bezier(.22,1,.36,1),
      transform .75s cubic-bezier(.22,1,.36,1),
      box-shadow .25s ease,border-color .25s ease;
  }
  .ob-custom-questions details[open] > p { animation:ob-custom-faq-in .28s ease-out both; }
  @keyframes ob-custom-faq-in {
    from { opacity:.5; transform:translateY(-5px); }
    to { opacity:1; transform:translateY(0); }
  }
}
@media (hover:hover) and (pointer:fine) {
  .ob-custom-card:hover { border-color:rgba(201,164,107,.65); box-shadow:0 18px 38px rgba(16,24,32,.085); transform:translateY(-5px); }
  .ob-js .ob-custom-card[data-ob-reveal].is-visible:hover { transform:translateY(-5px); }
  .ob-custom-proof-image:hover img { transform:scale(1.025); }
}
@media (prefers-reduced-motion:reduce) {
  .ob-custom-card,.ob-custom-proof-image img { transition:none!important; }
  .ob-custom-card:hover,.ob-custom-proof-image:hover img { transform:none!important; }
}
