/* Blupriluco IT — palette and site system */
:root {
  --site-primary: #2a3235;
  --site-primary-light: #6c7d83;
  --site-primary-dark: #162227;
  --site-secondary: #4c7485;
  --site-accent: #a57a14;
  --site-background: #edeeee;
  --site-surface: #f8f8f8;
  --site-text: #101518;
  --site-muted: #455a5f;
  --radius-card: 10px;
  --radius-input: 5px;
  --section-space: clamp(3rem, 6vw, 5rem);
  --type-h1: clamp(2rem, 4vw, 2.5rem);
  --type-h2: 1.6rem;
  --type-h3: 1.25rem;
  --type-body: 1rem;
  --type-small: .875rem;
  --type-eyebrow: .72rem;
}
html { scroll-behavior: smooth; }
body { background: var(--site-background); color: var(--site-text); font-family: "Mulish", sans-serif; font-size: var(--type-body); }
h1, h2, h3, .font-display { font-family: "Cormorant", serif; }
h1 { font-size: var(--type-h1); line-height: 1.08; }
h2 { font-size: var(--type-h2); line-height: 1.15; }
h3 { font-size: var(--type-h3); line-height: 1.2; }
p { max-width: 68ch; text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; }
.site-container { width: min(1120px, calc(100% - 2.5rem)); margin-inline: auto; }
.section-pad { padding-block: var(--section-space); }
.eyebrow { color: var(--site-secondary); font-size: var(--type-eyebrow); letter-spacing: .08em; text-transform: uppercase; font-weight: 700; }
.section-number { color: var(--site-primary-light); font-family: "Cormorant", serif; font-size: 2.6rem; line-height: 1; opacity: .48; font-variant-numeric: tabular-nums; }
.nav-shell { background: rgba(237,238,238,.96); }
.nav-link { color: var(--site-text); font-size: .8rem; letter-spacing: .05em; text-transform: uppercase; transition: color .2s ease; }
.nav-link:hover, .footer-link:hover { color: var(--site-accent); }
.logo-mark { width: 38px; height: 38px; object-fit: contain; }
.hero-mosaic { display: grid; grid-template-columns: repeat(2, 1fr); gap: .65rem; }
.hero-mosaic img { width: 100%; height: 100%; min-height: 150px; object-fit: cover; border-radius: 8px; }
.hero-mosaic img:first-child { grid-row: span 2; min-height: 315px; }
.outline-button { display: inline-flex; align-items: center; justify-content: center; border: 1.5px solid var(--site-primary); border-radius: 0; color: var(--site-primary); background: transparent; padding: .75rem 1.05rem; font-size: .8rem; font-weight: 700; letter-spacing: .04em; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.outline-button:hover { background: var(--site-primary); color: #fff; border-color: var(--site-primary); }
.form-input { width: 100%; border: 1px solid #b7c0c2; border-radius: var(--radius-input); background: var(--site-surface); color: var(--site-text); padding: .7rem .75rem; outline: none; }
.form-input:focus { border-color: var(--site-secondary); }
.form-label { display: block; margin-bottom: .35rem; color: var(--site-muted); font-size: var(--type-small); }
.info-rule { border-top: 1px solid rgba(69,90,95,.28); }
.card-outline { border: 1px solid rgba(69,90,95,.25); border-radius: var(--radius-card); background: var(--site-surface); }
.cookie-banner { position: fixed; z-index: 50; inset-inline: 1rem; bottom: 1rem; max-width: 700px; padding: 1rem 1.15rem; border: 1px solid rgba(69,90,95,.35); border-radius: 8px; background: var(--site-surface); }
.cookie-banner[hidden] { display: none; }
.footer-link { color: #d9e0e1; transition: color .2s ease; }
.footer-text { color: #d9e0e1; font-size: .9rem; }
@media (max-width: 767px) {
  .site-container { width: min(100% - 2rem, 1120px); }
  .desktop-nav { display: none; }
  .mobile-nav.open { display: block; }
  .hero-mosaic { margin-top: 1rem; }
  .hero-mosaic img:first-child { min-height: 240px; }
}
@media (min-width: 768px) { .mobile-nav { display: none !important; } }
