/* ── Variables ───────────────────────────────────────────────────────────── */
:root {
    --font-family: 'Open Sans', sans-serif;
    --font-heading: 'Comfortaa', sans-serif;
    --fs-base: 1rem;
    --fs-300: calc(var(--fs-base) * 0.787);
    --fs-350: calc(var(--fs-base) * 0.919);
    --fs-400: calc(var(--fs-base) * 0.919);
    --fs-500: calc(var(--fs-base) * 1.225);
    --fs-600: calc(var(--fs-base) * 1.488);
    --fs-800: calc(var(--fs-base) * 2.275);
    --clr-bg: #fff;
    --clr-tint: #f4f5f7;
    --clr-dark: #22252a;
    --clr-dark-tint-1: #2c2f36;
    --clr-dark-tint-2: #34383f;
    --clr-default: #22252a;
    --clr-muted: #5b616b;
    --clr-border: #e2e4e8;
    --clr-accent-500: #ee9900;
    --clr-accent-700: #c77d00;
    --clr-error-500: hsl(12, 85%, 55%);
    --max-content-width: 1040px;
    --default-gap: 16px;
    --card-shadow: 0 0 4px 1px rgba(0, 0, 0, 0.08);
    --card-shadow-hover: 0 0 6px 2px rgba(0, 0, 0, 0.14);
    --header-height: 104px;
}

/* ── Reset ───────────────────────────────────────────────────────────────── */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    background-image: url('/site/images/bg.gif');
    background-repeat: repeat;
}

body, input, textarea, button {
    font-family: var(--font-family);
    font-size: var(--fs-400);
    color: var(--clr-default);
    line-height: 1.65;
}

a { color: var(--clr-accent-500); text-decoration: none; }
a:hover { color: var(--clr-accent-700); text-decoration: underline; }

ul { list-style: none; }

h1, h2 { font-family: var(--font-heading); font-weight: 700; }
h1 { font-size: var(--fs-800); line-height: 1.18; margin-bottom: var(--default-gap); }
h2 {
    font-size: var(--fs-600);
    margin-bottom: calc(var(--default-gap) * 1.5);
    display: flex;
    align-items: center;
    gap: 12px;
}
h2::before {
    content: '';
    width: 14px;
    height: 14px;
    background: var(--clr-accent-500);
    display: inline-block;
    flex-shrink: 0;
}
h3 { font-weight: 600; font-size: calc(var(--fs-base) * 1.05); margin-bottom: 8px; }

p { margin-bottom: var(--default-gap); }
p:last-child { margin-bottom: 0; }

.lead { font-size: var(--fs-500); color: var(--clr-muted); max-width: 32em; margin-bottom: var(--default-gap); }

/* ── Page shell ──────────────────────────────────────────────────────────── */
.main-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    padding: 40px 24px;
    padding-top: calc(var(--header-height) + 32px);
}

/* ── Layout ──────────────────────────────────────────────────────────────── */
.content-grid {
    width: 100%;
    max-width: var(--max-content-width);
    background: var(--clr-bg);
    box-shadow: var(--card-shadow);
    padding: 56px 48px;
    position: relative;
    overflow: hidden;
}

section[id] {
    scroll-margin-top: calc(var(--header-height) + 24px);
}

.full-width-tint {
    background: var(--clr-dark);
    color: #fff;
}
.full-width-tint .lead,
.full-width-tint p { opacity: 0.9; }

.content--full-width { width: 100%; }
.content--left { text-align: left; }
.content--right { text-align: right; }
.content--align-right { text-align: right; }

/* ── Header ──────────────────────────────────────────────────────────────── */
.main-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    width: 100%;
    background: #fff;
    box-shadow: var(--card-shadow);
}

.main-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    max-width: var(--max-content-width);
    margin: 0 auto;
    padding: 32px;
    transition: padding 0.2s ease;
}

.main-header.is-scrolled .main-header__inner {
    padding: 14px 32px;
}

.main-header .content--left {
    display: flex;
    align-items: center;
    gap: 40px;
    flex: 1;
    flex-wrap: wrap;
}

.main-header__logo {
    display: flex;
    align-items: center;
}
.main-header__logo img {
    display: block;
    height: 40px;
    transition: height 0.2s ease;
}
.main-header.is-scrolled .main-header__logo img {
    height: 26px;
}
.main-header__logo:hover { text-decoration: none; }

.main-header__nav ul {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}

.main-header__nav a {
    color: var(--clr-default);
}
.main-header__nav a:hover { color: var(--clr-accent-500); }

.main-header__locale-switch {
    font-size: var(--fs-300);
    color: var(--clr-muted);
}
.main-header__locale-switch .active { color: var(--clr-default); font-weight: 600; }
.main-header__locale-switch .sep { margin: 0 4px; }

/* ── Hero ────────────────────────────────────────────────────────────────── */
#section-hero {
    display: flex;
    align-items: flex-end;
    gap: 48px;
    flex-wrap: wrap;
    padding-top: 72px;
    padding-bottom: 72px;
}

#section-hero .hero-copy { flex: 1 1 420px; min-width: 280px; position: relative; z-index: 1; }
#section-hero .hero-cta { margin-top: 8px; }
#section-hero .hero-image { flex: 0 0 260px; position: relative; z-index: 1; }
#section-hero .hero-image img { width: 260px; height: auto; object-fit: contain; display: block; image-rendering: pixelated; }

.availability-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(238, 153, 0, 0.12);
    color: var(--clr-default);
    font-weight: 600;
    font-size: var(--fs-300);
    padding: 6px 14px;
    margin-bottom: 20px;
}
.availability-badge::before {
    content: '';
    width: 8px;
    height: 8px;
    background: var(--clr-accent-500);
    display: inline-block;
}

/* ── Buttons ─────────────────────────────────────────────────────────────── */
.btn, button {
    cursor: pointer;
    display: inline-block;
    background: var(--clr-accent-500);
    color: #fff;
    border: none;
    padding: 9px 18px;
    font-weight: 600;
    font-size: var(--fs-300);
}
.btn:hover, button:hover {
    background: var(--clr-accent-700);
    color: #fff;
    text-decoration: none;
}

/* ── Service cards ───────────────────────────────────────────────────────── */
.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
    position: relative;
}

.card {
    background: #fff;
    border: 1px solid var(--clr-border);
    padding: 28px;
    counter-increment: service;
    transition: transform 0.15s, box-shadow 0.15s;
}
.card:hover { transform: translateY(-4px); box-shadow: var(--card-shadow-hover); }

.card-grid { counter-reset: service; }

.card::before {
    content: counter(service, decimal-leading-zero);
    width: 40px;
    height: 40px;
    border: 2px solid var(--clr-default);
    color: var(--clr-default);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-family: var(--font-heading);
    margin-bottom: 16px;
}

/* ── Case studies ────────────────────────────────────────────────────────── */
.case-study-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 28px;
}

.case-study {
    background: #fff;
    border: 1px solid var(--clr-border);
    overflow: hidden;
    transition: transform 0.15s, box-shadow 0.15s;
}
.case-study:hover { transform: translateY(-4px); box-shadow: var(--card-shadow-hover); }

.case-study__top { height: 8px; background: var(--clr-accent-500); }
.case-study__body { padding: 28px; }

.case-study__tagline {
    color: var(--clr-muted);
    font-size: var(--fs-300);
    margin-bottom: 12px;
}

.case-study__stack {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 16px;
}
.case-study__stack span {
    background: var(--clr-tint);
    color: var(--clr-muted);
    font-size: calc(var(--fs-base) * 0.7);
    padding: 4px 10px;
}

/* ── Link list ───────────────────────────────────────────────────────────── */
.link-list { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px; position: relative; }
.link-list a {
    display: inline-block;
    background: #fff;
    color: var(--clr-dark);
    font-weight: 600;
    padding: 8px 18px;
}
.link-list a:hover { background: var(--clr-tint); text-decoration: none; }

/* ── Contact form ────────────────────────────────────────────────────────── */
#contact-form {
    background: var(--clr-tint);
    border: 1px solid var(--clr-border);
    padding: 32px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    max-width: 640px;
    margin-top: 24px;
    position: relative;
}

#contact-form label { font-weight: 600; font-size: var(--fs-300); margin-bottom: 4px; display: block; }

#contact-form input,
#contact-form textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--clr-border);
    background: #fff;
    font-family: inherit;
    font-size: inherit;
}

#contact-form textarea { resize: vertical; }
#contact-form .form-footer { grid-column: 1 / -1; }

#contact-form input.error,
#contact-form textarea.error {
    border-color: var(--clr-error-500);
}

/* ── Footer ──────────────────────────────────────────────────────────────── */
.main-footer {
    width: 100%;
    background: var(--clr-dark);
    color: #fff;
    font-size: var(--fs-300);
    opacity: 0.9;
}

.main-footer__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 16px;
    max-width: 1080px;
    margin: 0 auto;
    padding: 28px 24px;
}

.main-footer a { color: var(--clr-accent-500); }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
    .content-grid { padding: 40px 24px; }
    .main-header .content--left { gap: 20px; }
    .main-header__nav ul { gap: 14px; flex-wrap: wrap; }
    #section-hero { flex-direction: column; align-items: flex-start; }
    #contact-form { grid-template-columns: 1fr; }
    #contact-form .field-spacer { display: none; }
    .main-footer__inner { flex-direction: column; align-items: flex-start; gap: 8px; }
}
