Files
kon-trans.eu/layout/style-css/style.css.map
2026-03-09 00:13:00 +01:00

1 line
26 KiB
Plaintext

{"version":3,"sources":["..\\style-scss\\style.scss","..\\style-scss\\_mixins.scss"],"names":[],"mappings":"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","file":"style.css","sourcesContent":["@import \"_mixins\";\n\n// ─── Zmienne ────────────────────────────────────────────────────────────────\n$bg: hsl(210, 29%, 12%);\n$bg-dark: hsl(210, 35%, 8%);\n$bg-card: hsl(210, 29%, 15%);\n$fg: hsl(210, 40%, 98%);\n$primary: hsl(195, 100%, 45%);\n$muted: hsl(210, 15%, 60%);\n$border: hsl(210, 20%, 22%);\n$radius: 0.5rem;\n\n// ─── Reset & base ────────────────────────────────────────────────────────────\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n scroll-behavior: smooth;\n}\n\nbody {\n margin: 0;\n font-family: 'Open Sans', sans-serif;\n background: $bg;\n color: $fg;\n font-size: 16px;\n line-height: 1.6;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-family: 'Montserrat', sans-serif;\n margin: 0;\n line-height: 1.2;\n}\n\na {\n text-decoration: none;\n color: inherit;\n}\n\nimg {\n max-width: 100%;\n}\n\n// ─── Kontener ────────────────────────────────────────────────────────────────\n.container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 0 1.5rem;\n}\n\n// ─── Navbar ──────────────────────────────────────────────────────────────────\n#navbar {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n z-index: 100;\n @include transition(all, .3s, ease);\n}\n\n.nav-topbar {\n display: none;\n background: $bg-dark;\n border-bottom: 1px solid rgba($border, .6);\n\n @include respond-above(sm) {\n display: block;\n }\n\n .container {\n @include flexbox;\n @include align-items(center);\n padding-top: .5rem;\n padding-bottom: .5rem;\n font-size: .875rem;\n color: $muted;\n gap: 1.5rem;\n }\n\n a {\n @include flexbox;\n @include align-items(center);\n gap: .4rem;\n @include transition(color, .2s, ease);\n\n &:hover {\n color: $primary;\n }\n\n svg {\n flex-shrink: 0;\n }\n }\n}\n\n.nav-main {\n position: relative;\n background: rgba(#fff, .92);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n @include transition(box-shadow, .3s, ease);\n\n &.scrolled {\n @include box-shadow(0 4px 24px rgba(#000, .12));\n }\n\n .container {\n @include flexbox;\n @include align-items(center);\n @include justify-content(space-between);\n padding-top: .75rem;\n padding-bottom: .75rem;\n }\n}\n\n.nav-logo img {\n height: 48px;\n width: auto;\n display: block;\n\n @include respond-below(sm) {\n height: 40px;\n }\n}\n\n// ─── Menu CMS (MENU_GLOWNE) ──────────────────────────────────────────────────\n#main-menu {\n @include respond-above(sm) {\n display: block;\n }\n\n @include respond-below(sm) {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background: rgba(#fff, .97);\n backdrop-filter: blur(8px);\n border-top: 1px solid #e5e5e5;\n z-index: 99;\n\n &.visible {\n display: block;\n }\n }\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n\n @include respond-above(sm) {\n @include flexbox;\n @include align-items(center);\n gap: 2rem;\n }\n\n @include respond-below(sm) {\n @include flexbox;\n @include flex-direction(column);\n padding: 1rem 1.5rem;\n gap: .25rem;\n }\n }\n\n li {\n list-style: none;\n }\n\n a {\n display: block;\n font-family: 'Montserrat', sans-serif;\n font-size: .8125rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: .08em;\n color: #555;\n @include transition(color, .2s, ease);\n\n &:hover {\n color: $primary;\n }\n\n @include respond-below(sm) {\n padding: .6rem 0;\n font-size: .875rem;\n border-bottom: 1px solid #f0f0f0;\n }\n }\n\n li.active>a {\n color: $primary;\n }\n}\n\n#main-menu-btn {\n display: none;\n background: none;\n border: none;\n cursor: pointer;\n padding: .25rem;\n @include flex-direction(column);\n gap: 5px;\n\n @include respond-below(sm) {\n @include flexbox;\n }\n\n span {\n display: block;\n width: 24px;\n height: 2px;\n background: #444;\n @include transition(all, .3s, ease);\n }\n\n &.active span:nth-child(1) {\n transform: translateY(7px) rotate(45deg);\n }\n\n &.active span:nth-child(2) {\n opacity: 0;\n }\n\n &.active span:nth-child(3) {\n transform: translateY(-7px) rotate(-45deg);\n }\n}\n\n// ─── Hero ─────────────────────────────────────────────────────────────────────\n#home {\n position: relative;\n min-height: 100vh;\n @include flexbox;\n @include align-items(center);\n @include justify-content(center);\n overflow: hidden;\n\n video.hero-video {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .hero-overlay {\n position: absolute;\n inset: 0;\n background: linear-gradient(135deg,\n hsl(210, 35%, 8%, .88) 0%,\n hsl(210, 29%, 12%, .75) 50%,\n hsl(210, 25%, 18%, .6) 100%);\n }\n\n .hero-content {\n position: relative;\n z-index: 1;\n text-align: center;\n max-width: 800px;\n padding: 0 1.5rem;\n }\n\n .hero-eyebrow {\n font-family: 'Montserrat', sans-serif;\n font-size: .875rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: .3em;\n color: $primary;\n margin-bottom: 1.5rem;\n\n @include respond-above(sm) {\n font-size: 1rem;\n }\n }\n\n h1 {\n font-size: clamp(2.25rem, 7vw, 4.5rem);\n font-weight: 800;\n margin-bottom: 1.5rem;\n color: $fg;\n }\n\n .text-gradient {\n background: linear-gradient(90deg, $primary, hsl(180, 80%, 55%));\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n background-clip: text;\n }\n\n .hero-desc {\n font-size: 1rem;\n color: $muted;\n max-width: 560px;\n margin: 0 auto 2.5rem;\n line-height: 1.75;\n\n @include respond-above(sm) {\n font-size: 1.125rem;\n }\n }\n\n .hero-buttons {\n @include flexbox;\n @include flex-wrap(wrap);\n @include align-items(center);\n @include justify-content(center);\n gap: 1rem;\n }\n}\n\n.btn-primary {\n display: inline-flex;\n align-items: center;\n gap: .5rem;\n background: $primary;\n color: hsl(210, 29%, 8%);\n padding: 1rem 2rem;\n @include border-radius($radius);\n font-family: 'Montserrat', sans-serif;\n font-size: .8125rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: .08em;\n @include box-shadow(0 4px 20px rgba($primary, .3));\n @include transition(filter, .2s, ease);\n\n &:hover {\n filter: brightness(1.1);\n }\n}\n\n.btn-outline {\n display: inline-flex;\n align-items: center;\n gap: .5rem;\n border: 1px solid rgba($fg, .3);\n color: $fg;\n padding: 1rem 2rem;\n @include border-radius($radius);\n font-family: 'Montserrat', sans-serif;\n font-size: .8125rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: .08em;\n @include transition(all, .2s, ease);\n\n &:hover {\n border-color: $primary;\n color: $primary;\n }\n}\n\n.hero-scroll {\n position: absolute;\n bottom: 2.5rem;\n left: 50%;\n transform: translateX(-50%);\n color: $muted;\n @include transition(color, .2s, ease);\n animation: bounce 2s infinite;\n\n &:hover {\n color: $primary;\n }\n}\n\n@keyframes bounce {\n\n 0%,\n 100% {\n transform: translateX(-50%) translateY(0);\n }\n\n 50% {\n transform: translateX(-50%) translateY(10px);\n }\n}\n\n// ─── O nas ────────────────────────────────────────────────────────────────────\n#about {\n padding: 6rem 0;\n background: $bg-dark;\n\n .about-grid {\n display: grid;\n gap: 4rem;\n @include align-items(center);\n\n @include respond-above(md) {\n grid-template-columns: 1fr 1fr;\n }\n }\n}\n\n.stats-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1.5rem;\n}\n\n.stat-card {\n background: $bg-card;\n padding: 1.5rem;\n @include border-radius($radius);\n border: 1px solid $border;\n text-align: center;\n\n .stat-value {\n font-family: 'Montserrat', sans-serif;\n font-size: 1.875rem;\n font-weight: 800;\n color: $primary;\n margin-bottom: .25rem;\n }\n\n .stat-label {\n font-size: .875rem;\n color: $muted;\n }\n}\n\n.about-text {\n h2 {\n font-size: clamp(1.75rem, 4vw, 2.5rem);\n font-weight: 700;\n margin-bottom: 1.5rem;\n\n span {\n color: $primary;\n }\n }\n\n p {\n color: $muted;\n line-height: 1.75;\n margin: 0 0 1.5rem;\n }\n}\n\n.highlights {\n list-style: none;\n margin: 0;\n padding: 0;\n @include flexbox;\n @include flex-direction(column);\n gap: .75rem;\n\n li {\n @include flexbox;\n @include align-items(center);\n gap: .75rem;\n font-size: .9375rem;\n color: rgba($fg, .9);\n\n svg {\n flex-shrink: 0;\n color: $primary;\n }\n }\n}\n\n// ─── Usługi ──────────────────────────────────────────────────────────────────\n#services {\n padding: 6rem 0;\n background: linear-gradient(180deg, $bg 0%, $bg-dark 100%);\n\n .section-header {\n text-align: center;\n margin-bottom: 4rem;\n\n h2 {\n font-size: clamp(1.75rem, 4vw, 2.5rem);\n font-weight: 700;\n margin-bottom: 1rem;\n\n span {\n color: $primary;\n }\n }\n }\n\n .services-grid {\n display: grid;\n gap: 1.5rem;\n\n @include respond-above(xs) {\n grid-template-columns: 1fr 1fr;\n }\n\n @include respond-above(md) {\n grid-template-columns: repeat(4, 1fr);\n }\n }\n}\n\n.service-card {\n background: $bg-card;\n padding: 2rem;\n @include border-radius($radius);\n border: 1px solid $border;\n @include transition(border-color, .3s, ease);\n\n &:hover {\n border-color: rgba($primary, .4);\n\n .service-icon {\n background: rgba($primary, .2);\n }\n }\n}\n\n.service-icon {\n width: 56px;\n height: 56px;\n @include border-radius($radius);\n background: rgba($primary, .1);\n @include flexbox;\n @include align-items(center);\n @include justify-content(center);\n margin-bottom: 1.25rem;\n @include transition(background, .3s, ease);\n color: $primary;\n}\n\n.service-card h3 {\n font-size: 1.125rem;\n font-weight: 600;\n margin-bottom: .75rem;\n}\n\n.service-card p {\n font-size: .9375rem;\n color: $muted;\n line-height: 1.7;\n margin: 0;\n}\n\n// ─── Kontakt ─────────────────────────────────────────────────────────────────\n#contact {\n padding: 6rem 0;\n background: linear-gradient(180deg, $bg 0%, $bg-dark 100%);\n\n .section-header {\n text-align: center;\n margin-bottom: 4rem;\n\n h2 {\n font-size: clamp(1.75rem, 4vw, 2.5rem);\n font-weight: 700;\n margin-bottom: 1rem;\n\n span {\n color: $primary;\n }\n }\n }\n\n .contact-grid {\n display: grid;\n gap: 2rem;\n max-width: 700px;\n margin: 0 auto;\n\n @include respond-above(xs) {\n grid-template-columns: repeat(3, 1fr);\n }\n }\n}\n\n.contact-card {\n background: $bg-card;\n padding: 2rem;\n @include border-radius($radius);\n border: 1px solid $border;\n text-align: center;\n @include transition(border-color, .3s, ease);\n display: block;\n\n &:hover {\n border-color: rgba($primary, .4);\n\n svg {\n transform: scale(1.1);\n }\n }\n\n svg {\n color: $primary;\n @include transition(transform, .3s, ease);\n margin-bottom: 1rem;\n display: block;\n margin-left: auto;\n margin-right: auto;\n }\n\n .contact-label {\n font-size: .875rem;\n color: $muted;\n margin-bottom: .25rem;\n }\n\n .contact-value {\n font-size: .9375rem;\n font-weight: 600;\n color: $fg;\n display: block;\n }\n}\n\n// ─── Glow line ───────────────────────────────────────────────────────────────\n.glow-line {\n width: 64px;\n height: 2px;\n background: linear-gradient(90deg, transparent, rgba($primary, .6), transparent);\n margin: 0 auto;\n}\n\n// ─── Footer ──────────────────────────────────────────────────────────────────\nfooter {\n background: $bg;\n border-top: 1px solid rgba($border, .5);\n padding: 2.5rem 0;\n\n .footer-main {\n @include flexbox;\n @include flex-direction(column);\n @include align-items(center);\n gap: 1.5rem;\n text-align: center;\n\n @include respond-above(sm) {\n @include flex-direction(row);\n @include justify-content(space-between);\n text-align: left;\n }\n }\n\n .footer-logo {\n font-family: 'Montserrat', sans-serif;\n font-size: 1.25rem;\n font-weight: 800;\n letter-spacing: -.02em;\n\n span:first-child {\n color: $fg;\n }\n\n span.accent {\n color: $primary;\n }\n }\n\n .footer-tagline {\n font-size: .75rem;\n color: $muted;\n margin-top: .25rem;\n }\n\n .footer-links {\n @include flexbox;\n @include align-items(center);\n gap: 1.5rem;\n font-size: .9375rem;\n color: $muted;\n\n a {\n @include flexbox;\n @include align-items(center);\n gap: .4rem;\n @include transition(color, .2s, ease);\n\n &:hover {\n color: $primary;\n }\n }\n }\n\n .footer-bottom {\n margin-top: 2rem;\n padding-top: 1.5rem;\n border-top: 1px solid rgba($border, .5);\n @include flexbox;\n @include flex-direction(column);\n @include align-items(center);\n gap: .5rem;\n text-align: center;\n font-size: .8125rem;\n color: $muted;\n\n @include respond-above(sm) {\n @include flex-direction(row);\n @include justify-content(space-between);\n }\n\n a:hover {\n color: $primary;\n }\n }\n}\n\n// ─── Cookie bar (CMS) ────────────────────────────────────────────────────────\n#cookie-information {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 9999;\n background: $bg-card;\n border-top: 1px solid $border;\n padding: 1rem 1.5rem;\n @include flexbox;\n @include align-items(center);\n @include justify-content(space-between);\n gap: 1rem;\n font-size: .875rem;\n color: $muted;\n\n @include flexbox;\n @include flex-wrap(wrap);\n\n a {\n color: $primary;\n }\n\n button,\n .cookie-accept {\n background: $primary;\n color: hsl(210, 29%, 8%);\n border: none;\n padding: .5rem 1.25rem;\n @include border-radius($radius);\n font-family: 'Montserrat', sans-serif;\n font-size: .8125rem;\n font-weight: 600;\n cursor: pointer;\n white-space: nowrap;\n }\n}","$breakpoints: (\n xs: 576px,\n sm: 768px,\n md: 992px,\n lg: 1200px\n);\n@mixin respond-above($breakpoint) {\n @if map-has-key($breakpoints, $breakpoint) {\n $breakpoint-value: map-get($breakpoints, $breakpoint);\n @media (min-width: $breakpoint-value) {\n @content;\n }\n } @else {\n @warn 'Invalid breakpoint: #{$breakpoint}.';\n }\n}\n@mixin respond-below($breakpoint) {\n @if map-has-key($breakpoints, $breakpoint) {\n $breakpoint-value: map-get($breakpoints, $breakpoint);\n @media (max-width: ($breakpoint-value - 1)) {\n @content;\n }\n } @else {\n @warn 'Invalid breakpoint: #{$breakpoint}.';\n }\n}\n@mixin respond-between($lower, $upper) {\n @if map-has-key($breakpoints, $lower) and map-has-key($breakpoints, $upper) {\n $lower-breakpoint: map-get($breakpoints, $lower);\n $upper-breakpoint: map-get($breakpoints, $upper);\n @media (min-width: $lower-breakpoint) and (max-width: ($upper-breakpoint - 1)) {\n @content;\n }\n } @else {\n @if (map-has-key($breakpoints, $lower) == false) {\n @warn 'Your lower breakpoint was invalid: #{$lower}.';\n }\n @if (map-has-key($breakpoints, $upper) == false) {\n @warn 'Your upper breakpoint was invalid: #{$upper}.';\n }\n }\n}\n@mixin border-radius($px: 0) {\n -webkit-border-radius: $px;\n -moz-border-radius: $px;\n border-radius: $px;\n}\n@mixin box-shadow($value) {\n -webkit-box-shadow: $value;\n -moz-box-shadow: $value;\n box-shadow: $value;\n}\n@mixin transition($element: all, $time: .5s, $option: ease) {\n -webkit-transition: $element $time $option;\n transition: $element $time $option;\n}\n@mixin opacity($value) {\n $IEValue: $value*100;\n opacity: $value;\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=\"+$IEValue+\")\";\n filter: alpha(opacity=$IEValue);\n}\n@mixin flexbox() {\n display: -webkit-box;\n display: -moz-box;\n display: -ms-flexbox;\n display: -webkit-flex;\n display: flex;\n}\n@mixin flex($values) {\n -webkit-box-flex: $values;\n -moz-box-flex: $values;\n -webkit-flex: $values;\n \t -ms-flex: $values;\n \t flex: $values;\n}\n@mixin flex-direction($direction) {\n -webkit-flex-direction: $direction;\n -moz-flex-direction: $direction;\n -ms-flex-direction: $direction;\n flex-direction: $direction;\n}\n@mixin flex-wrap($wrap) {\n -webkit-flex-wrap: $wrap;\n -moz-flex-wrap: $wrap;\n -ms-flex-wrap: $wrap;\n flex-wrap: $wrap;\n}\n@mixin flex-flow($flow) {\n -webkit-flex-flow: $flow;\n -moz-flex-flow: $flow;\n -ms-flex-flow: $flow;\n flex-flow: $flow;\n}\n@mixin order($val) {\n -webkit-box-ordinal-group: $val; \n -moz-box-ordinal-group: $val; \n \t -ms-flex-order: $val; \n \t -webkit-order: $val; \n \t\t order: $val;\n}\n@mixin flex-grow($grow) {\n -webkit-flex-grow: $grow;\n -moz-flex-grow: $grow;\n -ms-flex-grow: $grow;\n flex-grow: $grow;\n}\n@mixin flex-shrink($shrink) {\n -webkit-flex-shrink: $shrink;\n -moz-flex-shrink: $shrink;\n -ms-flex-shrink: $shrink;\n flex-shrink: $shrink;\n}\n@mixin flex-basis($width) {\n -webkit-flex-basis: $width;\n -moz-flex-basis: $width;\n -ms-flex-basis: $width;\n flex-basis: $width;\n}\n@mixin justify-content($justify) {\n -webkit-justify-content: $justify;\n -moz-justify-content: $justify;\n -ms-justify-content: $justify;\n justify-content: $justify;\n -ms-flex-pack: $justify;\n}\n@mixin align-content($align) {\n -webkit-align-content: $align;\n -moz-align-content: $align;\n -ms-align-content: $align;\n align-content: $align;\n}\n@mixin align-items($align) {\n -webkit-align-items: $align;\n -moz-align-items: $align;\n -ms-align-items: $align;\n align-items: $align;\n}\n@mixin align-self($align) {\n -webkit-align-self: $align;\n -moz-align-self: $align;\n -ms-align-self: $align;\n align-self: $align;\n}"]}