/*
Theme Name: Synapsis Elementor
Theme URI: https://example.com/synapsis-elementor
Author: Synapsis
Description: Tema WordPress leggero progettato per Elementor, ricostruito dal mockup SYNAPSIS Programming Language.
Version: 1.0.0
Text Domain: synapsis-elementor
Requires at least: 6.0
Requires PHP: 7.4
*/

:root {
  --syn-navy: #073767;
  --syn-blue: #0b5ca6;
  --syn-cyan: #19c8d2;
  --syn-aqua: #41e2df;
  --syn-ink: #0e2238;
  --syn-muted: #61758a;
  --syn-soft: #f4f9fd;
  --syn-line: rgba(7,55,103,.12);
  --syn-white: #fff;
  --syn-shell: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--syn-ink);
  background: linear-gradient(180deg,#fff 0%,#f8fcff 100%);
}
a { color: inherit; }
.site-main { min-height: 50vh; }
.syn-shell, .elementor-section.syn-shell > .elementor-container {
  width: min(var(--syn-shell), calc(100% - 40px));
  max-width: var(--syn-shell);
  margin-inline: auto;
}

/* Header */
.syn-site-header {
  padding: 26px 0;
  border-bottom: 1px solid var(--syn-line);
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.syn-brand { display:flex; align-items:center; gap:14px; text-decoration:none; }
.syn-brand img { width:46px; height:46px; object-fit:contain; }
.syn-brand strong { font-size:21px; letter-spacing:-.03em; color:var(--syn-navy); }
.syn-brand small { display:block; color:#7890a5; font-size:10px; letter-spacing:.13em; text-transform:uppercase; margin-top:2px; }

/* Elementor page sections */
.elementor-section.syn-hero {
  padding: 92px 0 84px;
  background:
    radial-gradient(circle at 84% 18%,rgba(65,226,223,.19),transparent 26rem),
    radial-gradient(circle at 8% 82%,rgba(11,92,166,.08),transparent 22rem);
}
.syn-hero > .elementor-container { gap: 72px; align-items:center; }
.syn-hero-copy .elementor-widget:not(:last-child) { margin-bottom:0; }

.syn-eyebrow .elementor-heading-title {
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(25,200,210,.2);
  background:rgba(25,200,210,.07);
  color:#087e88;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.syn-eyebrow .elementor-heading-title::before {
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--syn-aqua);
  box-shadow:0 0 0 5px rgba(65,226,223,.13);
}
.syn-title .elementor-heading-title {
  margin:25px 0 22px;
  color:var(--syn-navy);
  font-size:clamp(66px,9vw,118px);
  line-height:.84;
  letter-spacing:-.075em;
  font-weight:800;
}
.syn-title .elementor-heading-title span {
  color:transparent;
  -webkit-text-stroke:2px var(--syn-cyan);
}
.syn-lead, .syn-lead p { color:#35526d; font-size:clamp(21px,2.2vw,29px); line-height:1.45; letter-spacing:-.018em; }
.syn-lead p { margin:0; }
.syn-lead strong { color:var(--syn-navy); }
.syn-sublead, .syn-sublead p { color:var(--syn-muted); font-size:16px; line-height:1.8; }
.syn-sublead { margin-top:28px; }
.syn-sublead p { margin:0; }

.syn-visual-wrap { min-height:470px; display:flex; align-items:center; justify-content:center; }
.syn-visual {
  position:relative;
  display:grid;
  place-items:center;
  min-height:470px;
  width:100%;
}
.syn-visual .syn-halo {
  position:absolute;
  width:425px;
  height:425px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%,rgba(65,226,223,.82),rgba(11,92,166,.38) 46%,rgba(7,55,103,.07) 71%,transparent 72%);
}
.syn-visual .syn-panel {
  position:relative;
  width:min(100%,430px);
  aspect-ratio:1;
  border-radius:34px;
  background:linear-gradient(150deg,rgba(255,255,255,.95),rgba(241,249,255,.78));
  border:1px solid var(--syn-line);
  box-shadow:0 34px 90px rgba(7,55,103,.16);
  display:grid;
  place-items:center;
  padding:54px;
  overflow:hidden;
}
.syn-visual .syn-panel img { position:relative; z-index:1; width:min(100%,305px); filter:drop-shadow(0 18px 24px rgba(7,55,103,.11)); }
.syn-visual .syn-panel::before,
.syn-visual .syn-panel::after { content:""; position:absolute; border-radius:50%; }
.syn-visual .syn-panel::before { width:210px; height:210px; right:-78px; top:-72px; background:rgba(65,226,223,.18); }
.syn-visual .syn-panel::after { width:255px; height:255px; left:-120px; bottom:-120px; background:rgba(11,92,166,.1); }

.elementor-section.syn-block { padding:86px 0; border-top:1px solid var(--syn-line); }
.syn-section-head { max-width:820px; margin-bottom:42px; }
.syn-kicker .elementor-heading-title {
  font-size:12px;
  font-weight:800;
  color:#0a8791;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.syn-h2 .elementor-heading-title {
  margin:12px 0 14px;
  color:var(--syn-navy);
  font-size:clamp(36px,5vw,58px);
  letter-spacing:-.05em;
  line-height:1;
  font-weight:800;
}
.syn-section-text, .syn-section-text p { color:var(--syn-muted); font-size:17px; line-height:1.75; }
.syn-section-text p { margin:0; }

.syn-card-grid > .elementor-container { display:grid !important; grid-template-columns:repeat(3,1fr); gap:18px; }
.syn-card-grid .elementor-column { width:100% !important; }
.syn-card-grid .elementor-widget-wrap { padding:0 !important; }
.syn-card {
  height:100%;
  padding:28px;
  border:1px solid var(--syn-line);
  border-radius:24px;
  background:rgba(255,255,255,.78);
  box-shadow:0 14px 40px rgba(7,55,103,.05);
}
.syn-card .elementor-widget:not(:last-child) { margin-bottom:0; }
.syn-num .elementor-heading-title { font-size:12px; font-weight:800; letter-spacing:.12em; color:#11aab5; text-transform:uppercase; }
.syn-card-title .elementor-heading-title { margin:12px 0 10px; color:var(--syn-navy); font-size:21px; letter-spacing:-.025em; font-weight:800; }
.syn-card-copy, .syn-card-copy p { color:var(--syn-muted); font-size:14.5px; line-height:1.7; }
.syn-card-copy p { margin:0; }

.syn-statement > .elementor-container { gap:64px; align-items:flex-start; }
.syn-statement-title .elementor-heading-title { font-size:clamp(34px,4vw,52px); color:var(--syn-navy); letter-spacing:-.045em; line-height:1.05; font-weight:800; }
.syn-statement-copy, .syn-statement-copy p { color:var(--syn-muted); font-size:16px; line-height:1.85; }
.syn-statement-copy p { margin:0; }
.syn-statement-copy strong { color:var(--syn-ink); }

.elementor-section.syn-band { background:linear-gradient(135deg,#073767 0%,#0b5ca6 58%,#0794a3 100%); color:#fff; padding:70px 0; }
.syn-band .syn-kicker .elementor-heading-title { color:#7ff6f1; }
.syn-band .syn-h2 .elementor-heading-title { color:#fff; max-width:900px; }
.syn-band .syn-section-text, .syn-band .syn-section-text p { max-width:900px; color:rgba(255,255,255,.76); font-size:17px; line-height:1.8; }
.syn-pill-list { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.syn-pill { padding:10px 14px; border:1px solid rgba(255,255,255,.18); border-radius:999px; background:rgba(255,255,255,.08); font-size:13px; font-weight:700; color:#fff; }

.syn-identity-grid > .elementor-container { gap:22px; }
.syn-identity-card { min-height:210px; padding:28px; border:1px solid var(--syn-line); border-radius:24px; background:rgba(255,255,255,.78); box-shadow:0 14px 40px rgba(7,55,103,.05); }
.syn-bigword .elementor-heading-title { font-size:36px; color:var(--syn-navy); font-weight:800; letter-spacing:-.045em; margin-bottom:14px; }
.syn-identity-copy, .syn-identity-copy p { color:var(--syn-muted); font-size:14.5px; line-height:1.7; }
.syn-identity-copy p { margin:0; }

/* Footer */
.syn-site-footer { padding:28px 0 34px; border-top:1px solid var(--syn-line); color:#7b8b9c; font-size:12px; }
.syn-footer-inner { display:flex; justify-content:space-between; gap:20px; align-items:center; }

/* Keep Elementor default content full width */
.elementor-page .site-main { padding:0; }
.elementor-page .entry-title { display:none; }

@media (max-width:900px) {
  .elementor-section.syn-hero { padding:60px 0; }
  .syn-hero > .elementor-container, .syn-statement > .elementor-container { gap:36px; }
  .syn-visual-wrap, .syn-visual { min-height:390px; }
  .syn-card-grid > .elementor-container { grid-template-columns:1fr 1fr; }
  .syn-identity-grid > .elementor-container { flex-wrap:wrap; }
  .syn-identity-grid .elementor-column { width:100% !important; }
}
@media (max-width:620px) {
  .syn-shell, .elementor-section.syn-shell > .elementor-container { width:min(calc(100% - 24px),var(--syn-shell)); }
  .syn-site-header { padding:18px 0; }
  .syn-brand img { width:40px; height:40px; }
  .syn-brand strong { font-size:18px; }
  .elementor-section.syn-hero { padding:42px 0 52px; }
  .syn-title .elementor-heading-title { font-size:64px; }
  .syn-lead, .syn-lead p { font-size:20px; }
  .syn-sublead, .syn-sublead p { font-size:14.5px; }
  .syn-visual-wrap, .syn-visual { min-height:320px; }
  .syn-visual .syn-panel { width:min(100%,320px); padding:40px; border-radius:26px; }
  .syn-visual .syn-halo { width:300px; height:300px; }
  .elementor-section.syn-block { padding:62px 0; }
  .syn-card-grid > .elementor-container { grid-template-columns:1fr; }
  .syn-card { padding:23px; }
  .elementor-section.syn-band { padding:58px 0; }
  .syn-footer-inner { display:block; line-height:1.7; }
  .syn-footer-inner span { display:block; }
}

/* Spaziatura delle griglie separate nel JSON Elementor */
.elementor-section.syn-card-grid { padding-bottom:86px; }
.elementor-section.syn-identity-grid { padding-bottom:86px; }
@media (max-width:620px) {
  .elementor-section.syn-card-grid,
  .elementor-section.syn-identity-grid { padding-bottom:62px; }
}
