/*
Theme Name: SwissEdge Lab
Author: SwissEdge Lab
Description: Tema base WordPress per SwissEdge Lab e TI AFFILO. Creato per il rifacimento completo del sito sulla base del pacchetto V4 del 21/08/2026.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: swissedge-lab
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
  --swissedge-red: #c7171e;
  --swissedge-red-dark: #9f1117;
  --swissedge-green: #587a50;
  --swissedge-ink: #171715;
  --swissedge-muted: #6d6b66;
  --swissedge-cream: #f4f1eb;
  --swissedge-line: #dedbd5;
  --swissedge-white: #ffffff;
  --swissedge-max: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--swissedge-ink);
  background: var(--swissedge-white);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.6;
}
img { max-width: 100%; height: auto; }
a { color: var(--swissedge-red); }
a:hover, a:focus { color: var(--swissedge-red-dark); }

h1, h2, h3, h4, h5, h6 {
  font-family: Georgia, "Times New Roman", serif;
  color: var(--swissedge-ink);
  line-height: 1.15;
  font-weight: 500;
}
h1 { font-size: clamp(2.6rem, 5vw, 4.8rem); }
h2 { font-size: clamp(2rem, 4vw, 3.25rem); }
h3 { font-size: clamp(1.45rem, 2.4vw, 2rem); }

.site-header {
  min-height: 82px;
  display: flex;
  align-items: center;
  gap: 34px;
  padding: 0 max(5vw, 34px);
  background: #fff;
  border-bottom: 1px solid #ece9e4;
  position: sticky;
  top: 0;
  z-index: 1000;
}
.admin-bar .site-header { top: 32px; }
.site-header .brand {
  display: block;
  min-width: 220px;
  text-decoration: none;
  color: #292929;
  font-size: 15px;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.site-header .brand strong { color: var(--swissedge-red); }
.site-header .brand small {
  display: block;
  margin-top: 3px;
  color: #777;
  font-size: 7px;
  letter-spacing: .45px;
}
.site-header nav { margin-left: auto; }
.site-header nav ul {
  display: flex;
  align-items: center;
  gap: 26px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-header nav a {
  color: #4f4d49;
  text-decoration: none;
  font-size: 13px;
}
.site-header nav a:hover,
.site-header nav a:focus { color: var(--swissedge-red); }

.site-main { min-height: 60vh; }
.entry-content,
.entry-header,
.page-content,
.archive-header {
  width: min(var(--swissedge-max), calc(100% - 44px));
  margin-left: auto;
  margin-right: auto;
}
.entry-header { padding-top: 56px; }
.entry-content { padding-bottom: 72px; }
.entry-title { margin-bottom: 24px; }

.wp-block-group.alignfull,
.wp-block-cover.alignfull,
.wp-block-columns.alignfull { width: 100%; max-width: none; }
.wp-block-group.has-background { padding: clamp(28px, 5vw, 72px); }

.wp-block-button__link,
button,
input[type="submit"],
input[type="button"] {
  border: 0;
  border-radius: 3px;
  background: var(--swissedge-red);
  color: #fff;
  padding: 13px 20px;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}
.wp-block-button__link:hover,
.wp-block-button__link:focus,
button:hover,
button:focus,
input[type="submit"]:hover,
input[type="submit"]:focus { background: var(--swissedge-red-dark); color: #fff; }

.is-style-outline > .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--swissedge-ink);
  border: 1px solid #b8b4ac;
}
.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  border-color: var(--swissedge-red);
  color: var(--swissedge-red);
}

.swissedge-green-button .wp-block-button__link,
.wp-block-button.swissedge-green-button .wp-block-button__link {
  background: var(--swissedge-green);
}

.swissedge-eyebrow {
  margin: 0 0 18px;
  color: var(--swissedge-red);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.swissedge-eyebrow.green { color: var(--swissedge-green); }
.swissedge-lead { color: #5d5a54; font-size: 18px; line-height: 1.65; }
.swissedge-card {
  background: var(--swissedge-cream);
  border: 1px solid #e4e0d9;
  padding: clamp(26px, 4vw, 48px);
}
.swissedge-note {
  padding: 18px 22px;
  border-left: 4px solid var(--swissedge-green);
  background: #f2f5f0;
  color: #55534f;
}

/* Moduli e Forminator */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="url"], select, textarea {
  width: 100%;
  border: 1px solid var(--swissedge-line);
  border-radius: 2px;
  background: #fff;
  padding: 12px 13px;
  color: var(--swissedge-ink);
  font: inherit;
}
input:focus, select:focus, textarea:focus {
  outline: 2px solid color-mix(in srgb, var(--swissedge-red) 25%, transparent);
  outline-offset: 1px;
  border-color: var(--swissedge-red);
}
.forminator-ui.forminator-custom-form { font-family: Arial, Helvetica, sans-serif !important; }
.forminator-ui.forminator-custom-form .forminator-label { color: var(--swissedge-ink) !important; font-weight: 700 !important; }
.forminator-ui.forminator-custom-form .forminator-button-submit {
  background: var(--swissedge-red) !important;
  border-radius: 3px !important;
  font-weight: 700 !important;
}
.forminator-ui.forminator-custom-form .forminator-button-submit:hover { background: var(--swissedge-red-dark) !important; }
.forminator-ui.forminator-custom-form input[type="radio"],
.forminator-ui.forminator-custom-form input[type="checkbox"] { accent-color: var(--swissedge-red); }

.site-footer {
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 42px 6vw;
  background: #0e0e0d;
  color: #aaa;
}
.site-footer .brand { color: #fff; text-decoration: none; }
.site-footer p { margin: 0 0 0 auto; font-size: 12px; }

@media (max-width: 950px) {
  .site-header nav { display: none; }
  .site-header { padding: 0 22px; }
  .site-footer { flex-wrap: wrap; }
  .site-footer p { width: 100%; margin-left: 0; }
}
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) {
  .site-header { min-height: 70px; padding: 0 18px; }
  .site-header .brand { min-width: 0; font-size: 12px; }
  .site-header .brand small { display: none; }
  .entry-content, .entry-header, .page-content, .archive-header { width: min(100% - 28px, var(--swissedge-max)); }
  .site-footer { padding: 34px 22px; }
}
