:root { --forest:#174b37; --forest-dark:#0e3527; --leaf:#75a94a; --lime:#c9e36b; --cream:#f6f5ef; --ink:#17332a; --muted:#66746c; --line:#dfe5dc; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:104px; }
body { margin:0; color:var(--ink); background:#fff; font-family:"DM Sans",Arial,sans-serif; font-size:16px; line-height:1.65; }
a { color:inherit; text-decoration:none; } a:hover { color:inherit; text-decoration:none; }
.section-padding { padding:112px 0; }
.site-topbar { background:var(--forest-dark); color:#e5eee8; font-size:13px; }
.topbar-inner { min-height:39px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.topbar-inner p { margin:0; }.topbar-links { display:flex; gap:25px; }.topbar-links a { color:#fff; transition:color .2s; }.topbar-links a:hover { color:var(--lime); }.topbar-links i,.topbar-inner p i { color:var(--lime); margin-right:6px; }
.header_section { position:fixed; z-index:100; top:0; left:0; right:0; border:0; background:transparent; transition:top .42s cubic-bezier(.2,.7,.25,1),background-color .42s ease,box-shadow .42s ease,backdrop-filter .42s ease; }
.header_section.is-scrolled { top:0; background:rgba(8,45,31,.78); box-shadow:0 9px 28px rgba(4,24,16,.18); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.custom_nav-container { min-height:92px; padding:0; transition:min-height .42s cubic-bezier(.2,.7,.25,1); }.header_section.is-scrolled .custom_nav-container { min-height:78px; }.navbar-brand { padding:0; margin:0; }.navbar-brand img { width:162px; height:auto; max-height:68px; object-fit:contain; }.custom_nav-container .navbar-nav { gap:30px; align-items:center; }.custom_nav-container .nav-item .nav-link { padding:8px 0; color:#fff; font-size:13px; font-weight:700; letter-spacing:.055em; text-transform:uppercase; position:relative; }.custom_nav-container .nav-item .nav-link::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--lime); transform:scaleX(0); transform-origin:left; transition:transform .25s; }.custom_nav-container .nav-item:hover .nav-link::after,.custom_nav-container .nav-item.active .nav-link::after { transform:scaleX(1); }.nav-cta { margin-left:32px; padding:11px 16px; background:var(--lime); color:var(--forest-dark); font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; border:1px solid transparent; transition:color .55s ease,background-color .55s ease,border-color .55s ease,transform .35s ease; }.nav-cta:hover { background:transparent; border-color:var(--lime); color:var(--lime); transform:translateY(-2px); }.nav-cta i { margin-left:8px; }
.hero_section { min-height:100vh; position:relative; display:flex; align-items:center; overflow:hidden; color:#fff; }.hero_bg_box,.hero_bg_box img { position:absolute; inset:0; width:100%; height:100%; }.hero_bg_box img { object-fit:cover; object-position:center; }.hero_bg_box::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,39,27,.93) 0%,rgba(13,57,38,.80) 36%,rgba(11,47,31,.28) 72%,rgba(9,35,23,.15)); }.hero-content { position:relative; z-index:1; padding-top:110px; padding-bottom:72px; }.hero-copy { max-width:670px; }.eyebrow { display:flex; align-items:center; gap:10px; margin:0 0 15px; color:var(--lime); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.13em; }.eyebrow span { display:inline-block; width:30px; height:2px; background:currentColor; }.eyebrow-green { color:var(--leaf); }.hero-copy h1,.about-copy h2,.section-heading h2,.location-copy h2,.contact-copy h2 { font-family:"Playfair Display",Georgia,serif; letter-spacing:-.035em; line-height:1.08; }.hero-copy h1 { max-width:650px; font-size:clamp(48px,6vw,80px); margin:0; color:#fff; }.hero-copy h1 em { color:var(--lime); font-style:normal; }.hero-lead { max-width:560px; margin:25px 0 0; color:#edf3ed; font-size:19px; line-height:1.65; }.hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:35px; }.button { display:inline-flex; align-items:center; justify-content:center; gap:11px; min-height:50px; padding:12px 22px; border:1px solid transparent; font-size:13px; font-weight:700; letter-spacing:.035em; text-transform:uppercase; transition:color .48s ease,background-color .48s ease,border-color .48s ease,transform .36s cubic-bezier(.2,.7,.25,1),box-shadow .48s ease; }.button-primary { background:var(--lime); color:var(--forest-dark); }.button-primary:hover { background:#e0f58d; transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.16); }.button-ghost { border-color:rgba(255,255,255,.7); color:#fff; }.button-ghost:hover { background:#fff; color:var(--forest-dark); }.hero-trust { display:flex; gap:0; margin-top:58px; }.hero-trust div { display:flex; flex-direction:column; padding:0 25px; border-left:1px solid rgba(255,255,255,.35); }.hero-trust div:first-child { padding-left:0; border-left:0; }.hero-trust strong { color:#fff; font-size:14px; }.hero-trust span { color:#d7e3d9; font-size:12px; }.scroll-hint { position:absolute; z-index:1; bottom:24px; right:4vw; color:#ebf3ec; font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }.scroll-hint span { display:inline-block; width:21px; height:32px; margin-right:9px; vertical-align:middle; border:1px solid rgba(255,255,255,.7); border-radius:20px; position:relative; }.scroll-hint span::after { content:""; position:absolute; top:6px; left:8px; width:3px; height:7px; border-radius:3px; background:var(--lime); }
.about_section { background:#fff; }.about-copy { padding-right:70px; }.about-copy h2,.section-heading h2,.location-copy h2,.contact-copy h2 { margin:0; font-size:clamp(35px,4vw,52px); color:var(--forest-dark); }.about-copy .intro { margin:25px 0 13px; color:#365145; font-size:19px; line-height:1.6; }.about-copy p:not(.eyebrow) { color:var(--muted); }.about-points { display:grid; gap:13px; margin:28px 0; }.about-points div { display:flex; align-items:center; gap:12px; color:#2b493c; font-weight:600; font-size:14px; }.about-points i { display:inline-flex; align-items:center; justify-content:center; flex:0 0 22px; width:22px; height:22px; color:var(--forest); background:#e7f0dc; border-radius:50%; font-size:10px; }.text-link { display:inline-block; padding-bottom:4px; border-bottom:1px solid var(--forest); color:var(--forest); font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }.text-link i { margin-left:9px; }.about-visual { padding-left:35px; position:relative; }.about-image { height:540px; overflow:hidden; }.about-image img { width:100%; height:100%; object-fit:cover; }.experience-card { position:absolute; bottom:28px; left:-17px; display:flex; flex-direction:column; width:220px; padding:22px 55px 23px 24px; background:var(--forest); color:#fff; box-shadow:0 15px 32px rgba(23,75,55,.24); }.experience-card strong { font-family:"Playfair Display",Georgia,serif; font-size:24px; }.experience-card span { margin-top:3px; color:#d8e8d7; font-size:12px; line-height:1.4; }.experience-card i { position:absolute; right:21px; top:30px; color:var(--lime); font-size:24px; }
.service_section { background:var(--cream); }.section-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:47px; }.section-heading > p { max-width:410px; margin:0 0 4px; color:var(--muted); }.service-grid { margin-top:-20px; }.service-grid > div { margin-top:20px; }.service-card { min-height:290px; height:100%; padding:31px 29px; border:1px solid transparent; background:#fff; transition:transform .25s,box-shadow .25s,border-color .25s; }.service-card:hover { border-color:#d5e4bc; box-shadow:0 14px 28px rgba(21,62,43,.09); transform:translateY(-5px); }.service-icon { display:flex; align-items:center; justify-content:center; width:58px; height:58px; margin-bottom:25px; background:#edf4e3; border-radius:50%; }.service-icon img { width:31px; height:31px; object-fit:contain; }.service-card h3 { margin:0 0 10px; color:var(--forest-dark); font-size:18px; font-weight:700; }.service-card p { min-height:76px; margin:0; color:var(--muted); font-size:14px; line-height:1.65; }.service-card a { display:inline-block; margin-top:19px; color:var(--forest); font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }.service-card a i { margin-left:8px; transition:transform .2s; }.service-card:hover a i { transform:translateX(4px); }
.location_section { padding-top:0; background:var(--cream); }.location-panel { display:grid; grid-template-columns:1.65fr .7fr; min-height:360px; background:var(--forest); color:#fff; }.location-copy { padding:62px 72px; background:linear-gradient(110deg,rgba(10,45,31,.94),rgba(23,75,55,.93)),url("../images/contact-bg.jpg") center/cover; }.location-copy h2 { max-width:530px; color:#fff; font-size:45px; }.location-copy > p:not(.eyebrow) { max-width:580px; margin:18px 0 27px; color:#d8e5dc; }.location-detail { display:flex; flex-direction:column; justify-content:center; padding:48px; background:#103d2d; }.location-detail > i { margin-bottom:16px; color:var(--lime); font-size:27px; }.location-detail p { margin:0; color:#adc9b7; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }.location-detail strong { margin:2px 0 10px; font-family:"Playfair Display",Georgia,serif; font-size:28px; }.location-detail span { color:#d0e0d5; line-height:1.75; font-size:14px; }.location-detail a { width:max-content; margin-top:26px; padding-bottom:3px; border-bottom:1px solid var(--lime); color:var(--lime); font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.contact_section { background:#fff; }.contact-copy { padding-right:65px; }.contact-copy h2 { margin-bottom:20px; }.contact-copy > p:not(.eyebrow) { color:var(--muted); }.contact-call { display:flex; align-items:center; gap:14px; margin-top:29px; color:var(--forest); }.contact-call > i { display:flex; align-items:center; justify-content:center; width:49px; height:49px; color:var(--forest); background:#eaf2df; border-radius:50%; }.contact-call span { display:flex; flex-direction:column; color:var(--muted); font-size:12px; }.contact-call strong { color:var(--forest); font-size:18px; }.contact-form { padding:33px; border:1px solid var(--line); background:#fbfcfa; }.contact-form label { display:block; margin-bottom:6px; color:#345045; font-size:12px; font-weight:700; }.contact-form input,.contact-form textarea { width:100%; padding:12px 14px; border:1px solid #d7dfd8; border-radius:0; outline:none; background:#fff; color:var(--ink); font:inherit; font-size:14px; transition:border-color .2s,box-shadow .2s; }.contact-form textarea { display:block; resize:vertical; }.contact-form input:focus,.contact-form textarea:focus { border-color:var(--leaf); box-shadow:0 0 0 3px rgba(117,169,74,.13); }.contact-form input::placeholder,.contact-form textarea::placeholder { color:#a0aaa3; }
.info_section { padding:67px 0 0; background:var(--forest-dark); color:#dce8df; }.footer-brand img { width:135px; max-height:55px; object-fit:contain; object-position:left; filter:brightness(0) invert(1); }.footer-brand p { max-width:350px; margin:20px 0 0; color:#bdd0c2; font-size:14px; }.info_section h3 { margin:6px 0 17px; color:#fff; font-size:13px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }.info_section .col-lg-2 a { display:block; width:max-content; margin:0 0 9px; color:#c4d5c9; font-size:14px; }.info_section .col-lg-2 a:hover { color:var(--lime); }.footer-social p { margin:0; color:#bdd0c2; font-size:14px; }.footer-social div { display:flex; gap:10px; margin-top:17px; }.footer-social a,.footer-social__placeholder { display:inline-flex; align-items:center; justify-content:center; width:35px; height:35px; border:1px solid #537464; border-radius:50%; color:#fff; transition:background .2s,color .2s; }.footer-social a:hover { background:var(--lime); border-color:var(--lime); color:var(--forest-dark); }.footer-social__placeholder { cursor:default; opacity:.72; }.footer-bottom { display:flex; justify-content:space-between; margin-top:55px; padding:18px 0; border-top:1px solid rgba(212,231,218,.16); color:#a9c0b0; font-size:12px; }

/* Inner pages */
.mobile-hero-title { display:none; }
.inner-page .header_section { position:fixed; top:0; border:0; }
.page-banner { min-height:315px; position:relative; display:flex; align-items:center; color:#fff; background:linear-gradient(90deg,rgba(10,47,32,.95),rgba(18,74,53,.72)),url("../images/contact-bg.jpg") center/cover; }
.page-banner .eyebrow { margin-bottom:12px; }.page-banner h1 { max-width:660px; margin:0; font-family:"Playfair Display",Georgia,serif; font-size:clamp(43px,5vw,66px); letter-spacing:-.04em; line-height:1.05; }
.page-intro { max-width:675px; margin:0 auto 57px; text-align:center; }.page-intro h2 { margin:0; color:var(--forest-dark); font-family:"Playfair Display",Georgia,serif; font-size:clamp(35px,4vw,51px); letter-spacing:-.035em; line-height:1.1; }.page-intro p { margin:16px 0 0; color:var(--muted); font-size:17px; }
.contact-page { background:var(--cream); }.contact-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:start; }.contact-details { display:grid; gap:15px; }.contact-detail { display:flex; gap:17px; padding:21px; background:#fff; border:1px solid #e2e9df; }.contact-detail > i { display:flex; align-items:center; justify-content:center; flex:0 0 43px; width:43px; height:43px; border-radius:50%; background:#e9f2df; color:var(--forest); font-size:17px; }.contact-detail h2 { margin:0 0 2px; color:var(--forest-dark); font-size:15px; font-weight:700; }.contact-detail p,.contact-detail a { display:block; margin:0; color:var(--muted); font-size:14px; line-height:1.55; }.contact-detail a:hover { color:var(--forest); }.contact-form-large { padding:42px; background:#fff; box-shadow:0 15px 35px rgba(20,59,42,.08); }.contact-form-large h2 { margin:0 0 6px; color:var(--forest-dark); font-family:"Playfair Display",Georgia,serif; font-size:34px; }.contact-form-large > p { margin:0 0 24px; color:var(--muted); font-size:14px; }.contact-form-large .form-group { margin-bottom:18px; }.contact-form-large label { display:block; margin-bottom:6px; color:#345045; font-size:12px; font-weight:700; }.contact-form-large input,.contact-form-large select,.contact-form-large textarea { width:100%; border:1px solid #d7dfd8; padding:12px 14px; background:#fff; color:var(--ink); font:inherit; font-size:14px; outline:none; }.contact-form-large textarea { display:block; resize:vertical; }.contact-form-large input:focus,.contact-form-large select:focus,.contact-form-large textarea:focus { border-color:var(--leaf); box-shadow:0 0 0 3px rgba(117,169,74,.13); }.contact-note { margin:16px 0 0; color:#758078; font-size:12px; }
.location-page { background:#fff; }.location-card { display:grid; grid-template-columns:1.12fr .88fr; min-height:475px; background:var(--forest); color:#fff; }.location-map { min-height:475px; background:linear-gradient(135deg,rgba(11,57,39,.76),rgba(27,85,59,.54)),url("../images/poslovnica.png") center/cover; }.location-info { display:flex; flex-direction:column; justify-content:center; padding:64px; }.location-info .eyebrow { margin-bottom:15px; }.location-info h2 { margin:0; font-family:"Playfair Display",Georgia,serif; font-size:45px; letter-spacing:-.035em; }.location-address { margin:25px 0; color:#d5e5d9; font-size:17px; line-height:1.75; }.location-actions { display:flex; flex-wrap:wrap; gap:12px; }.location-actions .button-ghost { border-color:rgba(255,255,255,.58); }.visit-notes { display:grid; grid-template-columns:repeat(3,1fr); margin-top:20px; border:1px solid var(--line); }.visit-note { padding:30px; border-right:1px solid var(--line); }.visit-note:last-child { border-right:0; }.visit-note i { color:var(--leaf); font-size:21px; }.visit-note h2 { margin:13px 0 7px; color:var(--forest-dark); font-size:16px; font-weight:700; }.visit-note p { margin:0; color:var(--muted); font-size:14px; }

/* Lightweight loading state and progressive reveal animations */
.site-loader { display:none; }.js .site-loader { position:fixed; inset:0; z-index:9999; display:grid; place-items:center; background:var(--forest-dark); opacity:1; visibility:visible; transition:opacity .35s ease,visibility .35s ease; }.js .site-loader.is-loaded { opacity:0; visibility:hidden; pointer-events:none; }.site-loader > div { display:flex; flex-direction:column; align-items:center; gap:20px; }.site-loader img { width:143px; height:auto; animation:logo-pulse 1.15s ease-in-out infinite; }.site-loader span { width:84px; height:2px; overflow:hidden; background:rgba(214,239,114,.22); position:relative; }.site-loader span::after { content:""; position:absolute; inset:0; background:var(--lime); transform:translateX(-100%); animation:loader-line 1.05s ease-in-out infinite; }.reveal { opacity:0; transform:translateY(22px); transition:opacity .58s ease,transform .58s cubic-bezier(.2,.7,.25,1); }.reveal.is-visible { opacity:1; transform:none; }
@keyframes logo-pulse { 50% { opacity:.62; transform:scale(.97); } } @keyframes loader-line { 100% { transform:translateX(100%); } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }.reveal { opacity:1; transform:none; } }
