.wpcf7 .screen-reader-response {
position: absolute;
overflow: hidden;
clip: rect(1px, 1px, 1px, 1px);
clip-path: inset(50%);
height: 1px;
width: 1px;
margin: -1px;
padding: 0;
border: 0;
word-wrap: normal !important;
word-break: normal !important;
}
.wpcf7 .hidden-fields-container {
display: none;
}
.wpcf7 form .wpcf7-response-output {
margin: 2em 0.5em 1em;
padding: 0.2em 1em;
border: 2px solid #00a0d2; }
.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
display: none;
}
.wpcf7 form.sent .wpcf7-response-output {
border-color: #46b450; }
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
border-color: #dc3232; }
.wpcf7 form.spam .wpcf7-response-output {
border-color: #f56e28; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
border-color: #ffb900; }
.wpcf7-form-control-wrap {
position: relative;
}
.wpcf7-not-valid-tip {
color: #dc3232; font-size: 1em;
font-weight: normal;
display: block;
}
.use-floating-validation-tip .wpcf7-not-valid-tip {
position: relative;
top: -2ex;
left: 1em;
z-index: 100;
border: 1px solid #dc3232;
background: #fff;
padding: .2em .8em;
width: 24em;
}
.wpcf7-list-item {
display: inline-block;
margin: 0 0 0 1em;
}
.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
content: " ";
}
.wpcf7-spinner {
visibility: hidden;
display: inline-block;
background-color: #23282d; opacity: 0.75;
width: 24px;
height: 24px;
border: none;
border-radius: 100%;
padding: 0;
margin: 0 24px;
position: relative;
}
form.submitting .wpcf7-spinner {
visibility: visible;
}
.wpcf7-spinner::before {
content: '';
position: absolute;
background-color: #fbfbfc; top: 4px;
left: 4px;
width: 6px;
height: 6px;
border: none;
border-radius: 100%;
transform-origin: 8px 8px;
animation-name: spin;
animation-duration: 1000ms;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
@media (prefers-reduced-motion: reduce) {
.wpcf7-spinner::before {
animation-name: blink;
animation-duration: 2000ms;
}
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes blink {
from {
opacity: 0;
}
50% {
opacity: 1;
}
to {
opacity: 0;
}
}
.wpcf7 [inert] {
opacity: 0.5;
}
.wpcf7 input[type="file"] {
cursor: pointer;
}
.wpcf7 input[type="file"]:disabled {
cursor: default;
}
.wpcf7 .wpcf7-submit:disabled {
cursor: not-allowed;
}
.wpcf7 input[type="url"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
direction: ltr;
}
.wpcf7-reflection > output {
display: list-item;
list-style: none;
}
.wpcf7-reflection > output[hidden] {
display: none;
}@font-face {
font-family: "Inter";
src: url(//polcem.pe/wp-content/themes/Polcem/fonts/Inter-Variable.ttf) format("truetype");
font-weight: 100 900;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Inter";
src: url(//polcem.pe/wp-content/themes/Polcem/fonts/Inter-Italic-Variable.ttf) format("truetype");
font-weight: 100 900;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: "Oswald";
src: url(//polcem.pe/wp-content/themes/Polcem/fonts/Oswald-Variable.ttf) format("truetype");
font-weight: 200 700; font-style: normal;
font-display: swap;
}
:root { --font-main: "Inter", sans-serif;
--font-secondary: "Oswald", sans-serif; --font-weight-regular: 400;
--font-weight-medium: 500;
--font-weight-semibold: 600;
--font-weight-bold: 700; --color-primary: oklch(42.318% 0.07938 244.061);
--color-text: oklch(49.904% 0.01953 251.075);
--color-accent: oklch(93% 0.02 240);
--color-foreground: oklch(22% 0.02 250);
--color-background: oklch(100% 0 0);
--color-primary-glow: oklch(55% 0.13 240);
--color-steel: oklch(32% 0.01 250);
--color-steel-foreground: oklab(0.98 0 0 / 0.7);
--color-surface: oklch(97% 0.005 250);
--color-border: oklch(90% 0.01 250);
--color-primary-foreground: oklch(99% 0 0);
--color-muted-foreground: oklch(50% 0.02 250);
--color-input: oklch(90% 0.01 250); --text-base: clamp(0.875rem, 0.8125rem + 0.39vw, 1.125rem); --leading-base: 1.6; --space-unit: 0.25rem;
--space-1: var(--space-unit); --space-2: calc(var(--space-unit) * 2); --space-3: calc(var(--space-unit) * 3); --space-4: calc(var(--space-unit) * 4); --space-5: calc(var(--space-unit) * 5); --space-6: calc(var(--space-unit) * 6); --space-8: calc(var(--space-unit) * 8); --space-9: calc(var(--space-unit) * 9); --space-10: calc(var(--space-unit) * 10); --space-12: calc(var(--space-unit) * 12); --space-14: calc(var(--space-unit) * 14); --space-16: calc(var(--space-unit) * 16); --space-24: calc(var(--space-unit) * 24); --space-32: calc(var(--space-unit) * 32);  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
--duration-base: 0.3s;
--transition-base: var(--duration-base) var(--ease-standard);
--transition-bounce: 0.7s cubic-bezier(0.68, -0.55, 0.27, 1.55);
--transition-smooth: cubic-bezier(0.4, 0, 0.2, 1); --container-7xl: 80rem; --border: oklch(90% 0.01 250); --radius-sm: 6px;
--radius-md: 8px; --shadow-base: 0 4px 6px -1px rgb(0 0 0 / 0.1);
--shadow-card: 0 4px 20px -4px oklch(22% 0.02 250 / 0.12);
--shadow-elegant: 0 20px 60px -20px oklch(42% 0.08 245 / 0.35); --gradient-primary: linear-gradient(
135deg,
var(--color-primary) 0%,
var(--color-primary-glow) 100%
);
--gradient-steel: linear-gradient(
180deg,
oklch(25% 0.01 250) 0%,
oklch(18% 0.02 250) 100%
);
--gradient-hero: linear-gradient(
135deg,
oklch(18% 0.02 250 / 0.92) 0%,
oklch(32% 0.06 245 / 0.85) 100%
);
--graient-bright-hero: radial-gradient(circle at 30%, #0079b34d, #0000 50%);
--gradient-cta: radial-gradient(
circle at 70% 30%,
color(xyz 0.15 0.17 0.462 / 0.4),
#0000 60%
);
} @keyframes fade-up {
0% {
opacity: 0;
transform: translateY(24px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes pulse {
50% {
opacity: 0.5;
}
}* {
box-sizing: border-box;
}
html,
body { overflow-x: hidden;
min-height: 100dvh;
}
body {
font-family: var(--font-main);
color: var(--color-text);
font-size: var(--text-base);
line-height: var(--leading-base);
font-weight: var(--font-weight-regular);
margin: 0;
}
img,
picture,
video,
canvas,
svg {
max-width: 100%;
height: auto;
}
::placeholder {
color: #999 !important;
}
.alignleft {
float: left;
margin: 0 24px 24px 0;
}
.alignright {
float: right;
margin: 0 0 24px 24px;
}
.centered,
.aligncenter {
display: block;
margin: 0 auto 30px;
}
p:last-of-type,
li:last-of-type {
margin-bottom: 0 !important;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: var(--font-secondary);
font-weight: var(--font-weight-semibold);
}
h1 {
font-weight: var(--font-weight-bold);
line-height: 1;
font-size: clamp(2.25rem, 1.5rem + 2.5vw, 3.75rem);
}
h2 {
font-weight: var(--font-weight-bold);
font-size: clamp(2.25rem, 2rem + 1vw, 3rem);
line-height: 1;
}
h3 {
font-weight: var(--font-weight-bold);
font-size: 1.25rem;
line-height: calc(1.75 / 1.25);
} header {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 50;
backdrop-filter: blur(8px);
background-color: color-mix(
in oklab,
var(--color-background) 80%,
transparent
);
transition:
background-color var(--transition-base),
backdrop-filter var(--transition-base);
padding-block: var(--space-2);
box-shadow: var(--shadow-card);
border-bottom: solid 1px var(--border);
& .container {
gap: var(--space-4);
}
& .logo {
max-width: 200px;
flex-shrink: 0;
& img {
transition: transform var(--transition-base);
&:hover {
transform: scale(1.05);
}
}
}
& ul {
display: flex;
gap: var(--space-1);
align-items: center;
list-style: none;
margin: 0;
padding: 0; & a {
color: color-mix(in oklab, var(--color-foreground) 80%, transparent);
text-decoration: none;
font-size: 14px;
font-weight: var(--font-weight-semibold);
padding-inline: var(--space-4);
padding-block: var(--space-2);
border-radius: var(--radius-sm);
transition:
color var(--transition-base),
background-color var(--transition-base);
&:hover {
color: var(--color-primary);
background-color: var(--color-accent);
}
} & .current-menu-item > a,
& .current_page_item > a,
& .current-menu-ancestor > a {
color: var(--color-primary);
background-color: var(--color-accent);
} & .menu-item {
position: relative;
@media (min-width: 991px) {
& .sub-menu {
position: absolute;
top: 100%;
left: 0;
background: var(--color-background); padding: var(--space-2);
border-radius: var(--radius-sm);
box-shadow: var(--shadow-base);
list-style: none;
min-width: 200px;
display: none;
z-index: 100;
& li a {
display: block;
padding: var(--space-2) var(--space-4);
color: var(--color-text); }
}
&:hover > .sub-menu {
display: block;
}
}
}
}
& .contact {
display: none;
align-items: center;
gap: var(--space-3);
flex-shrink: 0;
& a {
display: flex;
align-items: center;
gap: var(--space-2);
font-size: 14px;
font-weight: var(--font-weight-semibold);
color: color-mix(in oklab, var(--color-foreground) 80%, transparent);
text-decoration: none;
transition: color var(--transition-base);
flex-shrink: 0;
&:hover {
color: var(--color-primary);
}
}
& img {
width: var(--space-4);
height: var(--space-4);
}
@media (min-width: 991px) {
display: flex;
}
.social {
display: inline-flex;
gap: 12px;
width: 100%;
a {
text-decoration: none;
transition: opacity ease 0.3s;
opacity: 1;
img {
width: 16px;
height: auto;
}
&:hover {
opacity: 0.6;
}
}
}
}
& .menu {
display: none;
@media (min-width: 991px) {
display: flex;
}
}
& .menu-toggle {
display: block;
background: none;
border: none;
padding: 0;
cursor: pointer;
@media (min-width: 991px) {
display: none;
}
& .close {
display: none;
}
&.show {
& .close {
display: block;
}
& .bars {
display: none;
}
}
}
& .menu-mobile {
padding-inline: var(--space-4);
gap: var(--space-4);
display: flex;
flex-direction: column;
overflow: hidden;
max-height: 0;
transition: max-height var(--transition-bounce);
@media (min-width: 768px) {
padding-inline: var(--space-6);
}
& .button {
margin-bottom: var(--space-3);
}
& .menu-main {
display: flex;
flex-direction: column;
gap: var(--space-4);
align-items: stretch;
& .sub-menu {
display: flex;
flex-direction: column;
gap: var(--space-4);
padding-inline: var(--space-3);
& .menu-item {
width: 100%;
}
}
& a {
display: block;
}
}
&.show {
max-height: 100dvh;
@media (min-width: 991px) {
display: none;
}
}
}
} .container {
width: 100%;
max-width: var(--container-7xl);
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
padding-inline: var(--space-4);
@media (min-width: 768px) {
padding-inline: var(--space-6);
}
} .button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--space-2);
border-radius: var(--radius-md);
background: var(--gradient-primary);
color: var(--color-background) !important;
flex-shrink: 0;
font-size: 14px;
font-weight: var(--font-weight-semibold);
padding-block: var(--space-2);
padding-inline: var(--space-6);
transition: transform var(--transition-base);
will-change: transform;
text-decoration: none;
&:hover {
transform: scale(1.03);
}
&:active {
transform: scale(0.98); }
}
.button-big {
display: inline-flex;
background: var(--gradient-primary);
color: var(--color-background);
white-space: nowrap;
font-weight: var(--font-weight-semibold);
font-size: 1rem;
line-height: 1.5;
padding-inline: var(--space-10);
border-radius: 6px;
gap: var(--space-2);
justify-content: center;
align-items: center;
height: var(--space-14);
transition: transform var(--transition-base);
will-change: transform;
text-decoration: none;
&:hover {
transform: scale(1.03);
}
&:active {
transform: scale(0.98); }
& svg {
height: 1rem;
width: 1rem;
flex-shrink: 0;
}
}
.button-white {
backdrop-filter: blur(8px);
color: white;
white-space: nowrap;
font-weight: var(--font-weight-semibold);
font-size: 1rem;
line-height: 1.5;
padding-inline: var(--space-10);
border-radius: 6px;
background-color: color-mix(in oklab, white 10%, transparent);
transition:
color var(--transition-base),
background-color var(--transition-base);
display: flex;
justify-content: center;
align-items: center;
text-decoration: none;
border: solid 3px color-mix(in oklab, white 80%, transparent);
height: var(--space-14);
&:hover {
color: var(--color-primary);
background-color: white;
}
}
.border-button {
display: inline-flex;
align-items: center;
text-decoration: none;
white-space: nowrap;
transition: background-color var(--transition-base);
box-shadow:
0 1px 3px 0 #0000001a,
0 1px 2px -1px #0000001a;
font-weight: var(--font-weight-semibold);
font-size: 1rem;
line-height: 1.5;
padding-inline: var(--space-8);
background-color: white;
border: 1px solid var(--color-input);
border-radius: 6px;
gap: var(--space-2);
justify-content: center;
align-items: center;
height: var(--space-12);
color: oklch(0.22 0.02 250);
& svg {
height: 16px;
}
&:hover {
background-color: var(--color-accent);
}
} footer {
color: var(--color-steel-foreground);
background: var(--gradient-steel);
font-size: 0.875rem;
line-height: var(--leading-base);
& .container {
padding-block: var(--space-16);
display: flex;
flex-direction: column;
& .grid {
display: flex;
flex-direction: column;
width: 100%;
gap: var(--space-10);
@media (min-width: 768px) {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: var(--space-4);
}
& .cols-2 {
grid-column: span 2 / span 2;
& .logo {
background-color: white;
padding-inline: var(--space-3);
padding-top: var(--space-3);
padding-bottom: var(--space-2);
border-radius: var(--radius-md);
display: inline-block;
margin-bottom: var(--space-4);
& img {
width: auto;
height: 40px;
}
}
.social {
display: inline-flex;
gap: 16px;
width: 100%;
margin-top: 24px;
a {
text-decoration: none;
transition: opacity ease 0.3s;
opacity: 1;
img {
width: 24px;
}
&:hover {
opacity: 0.6;
}
}
}
& p {
width: 100%;
@media (min-width: 768px) {
width: 70%;
}
}
}
.cols {
& h4 {
color: white;
margin-top: 0;
margin-bottom: var(--space-4);
}
& ul {
list-style: none;
margin: 0;
padding: 0;
& li {
margin-bottom: var(--space-2);
display: flex;
align-items: start;
gap: var(--space-2);
& a {
color: var(--color-steel-foreground);
text-decoration: none;
transition: all var(--transition-base);
&:hover {
color: var(--color-primary-glow);
}
}
& svg {
width: var(--space-4);
height: var(--space-4);
flex-shrink: 0;
}
}
&.w-icons {
& li {
margin-bottom: var(--space-4);
}
}
}
}
}
& .credits {
width: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
gap: var(--space-4);
align-items: center;
padding-top: var(--space-6);
margin-top: var(--space-12);
border-top: solid 1px color-mix(in oklab, white 10%, transparent);
font-size: 0.75rem;
color: color-mix(
in oklab,
var(--color-steel-foreground) 60%,
transparent
);
@media (min-width: 768px) {
flex-direction: row;
}
& a {
text-decoration: none;
color: color-mix(
in oklab,
var(--color-steel-foreground) 60%,
transparent
);
transition: color var(--transition-base);
&:hover {
color: color-mix(
in oklab,
var(--color-steel-foreground) 70%,
transparent
);
}
}
}
}
}
.cta-block {
position: relative;
background: var(--gradient-steel);
padding-block: var(--space-24);
overflow: hidden;
isolation: isolate;
& .gradient-cta {
background: var(--gradient-cta);
position: absolute;
inset: 0;
z-index: -10;
}
& .container {
flex-direction: column;
text-align: center;
max-width: 1024px;
& h2 {
text-wrap: balance;
color: white;
margin-bottom: 0;
font-size: 2.25rem;
line-height: calc(2.5 / 2.25);
@media (min-width: 64rem) {
font-size: 3.75rem;
line-height: 1;
}
& span {
background-image: linear-gradient(
to right,
var(--color-primary-glow),
white
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
-webkit-text-fill-color: transparent;
}
}
& p {
color: color-mix(in oklab, white 80%, transparent);
margin-top: var(--space-6);
font-size: 1.125rem;
line-height: calc(1.75 / 1.25);
max-width: 672px;
margin-inline: auto;
}
& .buttons {
margin-top: var(--space-10);
display: flex;
flex-wrap: wrap;
gap: var(--space-4);
justify-content: center;
}
}
}  .page-banner {
position: relative;
isolation: isolate;
padding-block: var(--space-24);
background: var(--gradient-steel);
@media (min-width: 64rem) {
padding-block: var(--space-32);
}
& .container {
flex-direction: column;
align-items: start;
}
& .gradient-page-banner {
background-image: radial-gradient(
circle at 30%,
color(xyz 0.15 0.17 0.462 / 0.302),
#0000 60%
);
position: absolute;
inset: 0;
z-index: -10;
&.gradient-right {
background-image: radial-gradient(
circle at 70%,
color(xyz 0.15 0.17 0.462 / 0.302),
#0000 60%
);
}
}
& .pretitle {
font-size: 0.75rem;
line-height: calc(1 / 0.75);
font-weight: var(--font-weight-bold);
color: var(--color-primary-glow);
letter-spacing: 0.2em;
text-transform: uppercase;
}
& h1 {
max-width: 769px;
margin-top: var(--space-3);
font-weight: var(--font-weight-bold);
color: white;
text-wrap: balance;
margin-bottom: 0;
}
& p {
margin-top: var(--space-4);
max-width: 672px;
font-size: 1.125rem;
line-height: calc(1.75 / 1.125);
color: color-mix(in oklab, white 80%, transparent);
}
} .filter {
padding-block: var(--space-16);
& .container {
flex-direction: column;
& .filter-buttons {
margin-bottom: var(--space-12);
display: flex;
flex-wrap: wrap;
gap: var(--space-2);
width: 100%;
& .filter-btn {
border-radius: 3.40282e38px;
border: solid 1px var(--color-border);
background-color: white;
padding-inline: var(--space-5);
padding-block: var(--space-2);
font-size: 14px;
line-height: 20px;
font-weight: var(--font-weight-semibold);
transition: border var(--transition-base);
&:hover {
border: 1px solid var(--color-primary);
}
&.active {
box-shadow: var(--shadow-elegant);
background: var(--gradient-primary);
color: white;
}
}
}
& .projects-grid {
display: grid;
gap: var(--space-6);
width: 100%;
@media (min-width: 640px) {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 1024px) {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
& .project-card {
transition: all 0.3s ease;
position: relative;
cursor: pointer;
overflow: hidden;
border-radius: 0.5rem;
border: 1px solid var(--color-border);
background-color: white;
text-align: left;
box-shadow: var(--shadow-card);
& .image {
position: relative;
overflow: hidden;
aspect-ratio: 4 / 3;
& img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.7s var(--ease-standard);
}
& .category {
position: absolute;
top: var(--space-4);
left: var(--space-4);
border-radius: 3.40282e38px;
background-color: var(--color-primary);
padding-inline: var(--space-3);
padding-top: var(--space-1);
padding-bottom: 0;
line-height: 24px;
font-size: 12px;
font-weight: var(--font-weight-bold);
letter-spacing: 0.05em;
color: var(--color-primary-foreground);
text-transform: uppercase;
}
& .outstanding {
position: absolute;
top: var(--space-4);
right: var(--space-4);
border-radius: 3.40282e38px;
background-color: white;
padding-inline: var(--space-3);
padding-top: var(--space-1);
padding-bottom: 0;
line-height: 24px;
font-size: 12px;
font-weight: var(--font-weight-bold);
letter-spacing: 0.05em;
color: var(--color-foreground);
text-transform: uppercase;
}
& .link {
position: absolute;
inset: 0;
display: flex;
align-items: end;
justify-content: center;
background: linear-gradient(
to top,
rgba(0, 0, 0, 0.6) 6%,
transparent 47%
);
padding-bottom: var(--space-4);
transition: opacity var(--transition-base);
opacity: 0;
& .label {
font-size: 0.875rem;
line-height: calc(1.25 / 0.875);
font-weight: var(--font-weight-semibold);
letter-spacing: 0.05em;
color: white;
text-transform: uppercase;
}
}
}
& .texts {
padding: var(--space-6);
& h3 {
font-size: 1.25rem;
line-height: calc(1.75 / 1.25);
font-weight: var(--font-weight-bold);
color: var(--color-foreground);
transition: color var(--transition-base);
margin: 0;
}
& .info {
margin-top: var(--space-2);
display: flex;
align-items: center;
gap: var(--space-4);
font-size: 0.875rem;
line-height: calc(1.25 / 0.875);
color: var(--color-muted-foreground);
& .label {
display: flex;
align-items: center;
gap: var(--space-1);
& svg {
width: 14px;
height: 14px;
}
}
}
& p {
color: var(--color-muted-foreground);
font-size: 14px;
line-height: 20px;
margin-top: var(--space-3);
}
& .bottom {
padding-top: var(--space-4);
margin-top: var(--space-4);
border-top: solid 1px var(--color-border);
& .title {
color: var(--color-primary);
letter-spacing: 0.05em;
font-weight: var(--font-weight-bold);
font-size: 0.75rem;
line-height: calc(1 / 0.75);
margin-bottom: var(--space-2);
text-transform: uppercase;
}
& .service {
font-size: 0.875rem;
line-height: calc(1.25 / 0.875);
font-weight: var(--font-weight-medium);
color: var(--color-foreground);
}
}
}
&:hover {
.link {
opacity: 1;
}
img {
transform: scale(110%);
}
h3 {
color: var(--color-primary);
}
}
& .stretched-link {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}
}
}
}
& .buttons {
margin-top: var(--space-16);
}
} .page-banner.project {
& .info {
display: flex;
gap: var(--space-6);
color: white;
margin-top: var(--space-4);
}
& .details {
margin-top: var(--space-8);
& .desc {
color: white;
}
}
& p {
max-width: 700px;
}
} .gallery {
padding-block: var(--space-24);
& .gallery-grid {
display: grid;
gap: var(--space-6);
width: 100%;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
& .image {
overflow: hidden;
border-radius: 0.5rem;
box-shadow: var(--shadow-elegant);
aspect-ratio: 1 / 1;
& img {
display: block;
object-fit: cover;
width: 100%;
height: 100%;
aspect-ratio: 1 / 1;
transition: transform var(--transition-base);
}
&:hover img {
transform: scale(1.1);
}
}
}
} .lightbox {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.9);
display: none; justify-content: center;
align-items: center;
z-index: 2000; opacity: 0;
transition: opacity 0.3s ease;
}
.lightbox.active {
display: flex;
opacity: 1;
}
.lightbox-image {
max-width: 90%;
max-height: 85vh;
object-fit: contain;
border: 3px solid white;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
} .lightbox-close {
position: absolute;
top: 20px;
right: 30px;
background: none;
border: none;
color: white;
font-size: 40px;
font-weight: bold;
cursor: pointer;
opacity: 0.7;
transition: opacity 0.2s;
z-index: 2010;
}
.lightbox-close:hover {
opacity: 1;
} .lightbox-nav {
position: absolute;
width: 100%;
height: 100%;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 20px;
pointer-events: none; }
.lightbox-prev,
.lightbox-next {
background-color: rgba(255, 255, 255, 0.1);
color: white;
border: none;
font-size: 30px;
padding: 15px 20px;
cursor: pointer;
border-radius: 5px;
pointer-events: auto; opacity: 0.5;
transition: all 0.2s ease;
}
.lightbox-prev:hover,
.lightbox-next:hover {
background-color: rgba(255, 255, 255, 0.3);
opacity: 1;
}
.lightbox-prev,
.lightbox-next,
.lightbox-close {
pointer-events: auto; cursor: pointer; } div.blog {
padding-block: var(--space-24);
& .blog-grid {
display: grid;
gap: var(--space-8);
width: 100%;
@media (min-width: 768px) {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 1024px) {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
& article {
transition: all 0.3s ease;
position: relative;
cursor: pointer;
overflow: hidden;
border-radius: 0.5rem;
border: 1px solid var(--color-border);
background-color: white;
text-align: left;
box-shadow: var(--shadow-card);
display: flex;
flex-direction: column;
height: 100%;
& .image {
position: relative;
overflow: hidden;
aspect-ratio: 16 / 10;
& img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.7s var(--ease-standard);
}
& .category {
position: absolute;
bottom: var(--space-4);
left: var(--space-4);
border-radius: 3.40282e38px;
background-color: var(--color-primary);
padding-inline: var(--space-3);
padding-top: var(--space-1);
padding-bottom: 0;
line-height: 24px;
font-size: 12px;
font-weight: var(--font-weight-bold);
letter-spacing: 0.05em;
color: var(--color-primary-foreground);
text-transform: uppercase;
}
}
& .texts {
padding: var(--space-6);
display: flex;
flex-direction: column;
flex: 1;
& .dates {
display: flex;
margin-bottom: var(--space-3);
align-items: center;
gap: var(--space-2);
color: var(--color-muted-foreground);
font-size: 0.75rem;
line-height: calc(1 / 0.75);
& svg {
width: 14px;
height: 14px;
color: var(--color-primary);
flex-shrink: 0;
}
}
& h2 {
font-size: 1.25rem;
line-height: calc(1.75 / 1.25);
font-weight: var(--font-weight-bold);
color: var(--color-foreground);
transition: color var(--transition-base);
margin: 0;
}
& p {
color: var(--color-muted-foreground);
font-size: 14px;
line-height: 20px;
margin-top: var(--space-3);
flex: 1;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
display: -webkit-box;
overflow: hidden;
}
& .bottom {
padding-top: var(--space-4);
margin-top: var(--space-4);
border-top: solid 1px var(--color-border);
& .link {
display: inline-flex;
align-items: center;
gap: var(--space-2);
font-size: 0.875rem;
line-height: calc(1.25 / 0.875);
font-weight: var(--font-weight-bold);
color: var(--color-primary);
transition: gap var(--transition-base);
& svg {
width: 14px;
height: 14px;
color: var(--color-primary);
}
}
}
}
&:hover {
& .link {
gap: var(--space-4) !important;
}
& img {
transform: scale(110%);
}
& h2 {
color: var(--color-primary);
}
}
& .stretched-link {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}
}
}
& .pagination {
padding-top: var(--space-8);
width: 100%;
.screen-reader-text {
display: none;
}
.nav-links {
display: flex;
justify-content: center;
gap: var(--space-2);
.page-numbers {
display: inline-flex;
justify-content: center;
align-items: center;
width: var(--space-8);
height: var(--space-8);
text-decoration: none;
color: white;
line-height: 3;
background-color: var(--color-primary);
font-size: 14px;
border-radius: 6px;
transition: background-color var(--transition-base);
&.current,
&:hover {
background-color: var(--color-primary-glow);
}
}
}
}
} article.post {
padding-block: var(--space-16);
font-size: 1rem;
line-height: 1.625;
@media (min-width: 1024px) {
padding-block: var(--space-24);
}
& .container {
display: block;
& h1,
& h2,
& h3,
& h4,
& h5,
& h6 {
color: var(--color-primary);
margin: 0 0 var(--space-6);
}
& b,
& strong {
color: var(--color-primary);
}
& blockquote {
margin-left: 0;
margin-right: 0;
padding-left: var(--space-6);
border-left: 3px solid var(--color-primary);
}
}
}
.gtranslate_wrapper {
flex-shrink: 0;
display: flex;
justify-content: center;
align-items: center;
gap: 1rem;
}.page-banner {
position: relative;
isolation: isolate;
padding-block: var(--space-24);
background: var(--gradient-steel);
@media (min-width: 64rem) {
padding-block: var(--space-32);
}
& .container {
flex-direction: column;
align-items: start;
}
& .gradient-page-banner {
background-image: radial-gradient(
circle at 30%,
color(xyz 0.15 0.17 0.462 / 0.302),
#0000 60%
);
position: absolute;
inset: 0;
z-index: -10;
&.gradient-right {
background-image: radial-gradient(
circle at 70%,
color(xyz 0.15 0.17 0.462 / 0.302),
#0000 60%
);
}
}
& .pretitle {
font-size: 0.75rem;
line-height: calc(1 / 0.75);
font-weight: var(--font-weight-bold);
color: var(--color-primary-glow);
letter-spacing: 0.2em;
text-transform: uppercase;
}
& h1 {
max-width: 769px;
margin-top: var(--space-3);
font-weight: var(--font-weight-bold);
color: white;
text-wrap: balance;
margin-bottom: 0;
}
& p {
margin-top: var(--space-4);
max-width: 672px;
font-size: 1.125rem;
line-height: calc(1.75 / 1.125);
color: color-mix(in oklab, white 80%, transparent);
}
}.history {
padding-block: var(--space-24);
& .history-grid {
display: grid;
width: 100%;
align-items: center;
gap: var(--space-16);
@media (min-width: 1024px) {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
& .texts {
& .pretitle {
font-size: 0.75rem;
line-height: calc(1 / 0.75);
font-weight: var(--font-weight-bold);
color: var(--color-primary);
letter-spacing: 0.2em;
}
& h2 {
margin-top: var(--space-3);
font-size: 1.875rem;
line-height: 1.2;
color: var(--color-foreground);
@media (min-width: 1024px) {
font-size: 2.25rem;
line-height: calc(2.5 / 2.25);
}
}
& .text {
margin-top: var(--space-6);
line-height: 1.625;
color: var(--color-muted-foreground);
& p {
font-size: 1rem;
line-height: 1.625;
& b,
strong {
color: var(--color-foreground);
}
}
}
& .counter {
margin-top: var(--space-8);
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: var(--space-4);
& .count {
border-left: 4px solid var(--color-primary);
padding-left: var(--space-4);
& .mount {
font-family: var(--font-secondary);
font-size: 1.5rem;
line-height: calc(2 / 1.5);
font-weight: var(--font-weight-bold);
white-space: nowrap;
color: var(--color-foreground);
@media (min-width: 64rem) {
font-size: 1.875rem;
line-height: 1.2;
}
}
& .label {
font-size: 0.75rem;
line-height: calc(1 / 0.75);
letter-spacing: 0.05em;
color: var(--color-muted-foreground);
margin-top: var(--space-1);
}
}
}
}
& .image {
position: relative;
& img {
border-radius: 0.5rem;
box-shadow: var(--shadow-elegant);
width: 100%;
height: auto;
}
& .info {
position: absolute;
bottom: calc(var(--space-unit) * -6);
left: calc(var(--space-unit) * -6);
border-radius: 0.5rem;
background-color: var(--color-primary);
padding: var(--space-6);
color: var(--color-foreground);
box-shadow: var(--shadow-elegant);
max-width: 20rem;
display: none;
color: white;
@media (min-width: 768px) {
display: block;
}
& .mount {
font-family: var(--font-secondary);
font-weight: var(--font-weight-bold);
font-size: 1.5rem;
line-height: calc(2 / 1.5);
}
& .label {
font-size: 0.875rem;
line-height: calc(1.25 / 0.875);
}
}
}
}
}.mision {
padding-block: var(--space-24);
background-color: var(--color-surface);
& .cards {
display: grid;
gap: var(--space-6);
width: 100%;
@media (min-width: 640px) {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 1024px) {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
& .card {
box-shadow: var(--shadow-card);
transition: all var(--transition-base);
padding: var(--space-8);
background-color: white;
border: 1px solid var(--border);
border-radius: 0.5rem;
position: relative;
& .icon {
background: var(--gradient-primary);
color: var(--color-primary-foreground);
border-radius: 0.5rem;
display: inline-flex;
align-items: center;
justify-content: center;
width: var(--space-14);
height: var(--space-14);
margin-bottom: var(--space-5);
}
& h3 {
color: var(--color-foreground);
margin-top: 0;
margin-bottom: var(--space-2);
letter-spacing: -0.01em;
}
& p {
color: var(--color-muted-foreground);
line-height: 1.65;
font-size: 1rem;
}
}
}
}.differences {
padding-block: var(--space-24);
& .container {
flex-direction: column;
max-width: 1024px;
}
& .title {
text-align: center;
width: 100%;
max-width: 42rem;
margin-bottom: var(--space-16);
margin-inline: auto;
& .pretitle {
color: var(--color-primary);
letter-spacing: 0.2em;
font-weight: var(--font-weight-bold);
font-size: 0.75rem;
}
& h2 {
text-wrap: balance;
color: var(--color-foreground);
margin-bottom: 0;
margin-top: var(--space-3);
}
}
& .differences-grid {
display: grid;
gap: var(--space-6);
@media (min-width: 640px) {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
& .difference {
display: flex;
gap: var(--space-4);
border-radius: 0.5rem;
border: 1px solid var(--color-border);
background-color: var(--color-surface);
padding: var(--space-6);
align-items: start;
& svg {
margin-top: var(--space-1);
height: var(--space-6);
width: var(--space-6);
flex-shrink: 0;
color: var(--color-primary);
}
& .texts {
& h3 {
color: var(--color-foreground);
margin-top: auto;
margin-bottom: var(--space-1);
font-size: 1.125rem;
line-height: calc(1.75 / 1.125);
}
& p {
color: var(--color-muted-foreground);
font-size: 0.875rem;
line-height: calc(1.25 / 0.875);
}
}
}
}
& .buttons {
margin-top: var(--space-12);
display: flex;
justify-content: center;
}
}