:root {
  --blue: #075fae;
  --blue-dark: #064b8a;
  --cyan: #25b5e5;
  --cyan-soft: #dff6fd;
  --navy: #061b32;
  --navy-2: #0b2b4a;
  --ink: #13283f;
  --muted: #62758a;
  --line: #dce6ef;
  --surface: #f3f7fa;
  --white: #ffffff;
  --success: #139b6d;
  --orange: #f1842b;
  --shadow-sm: 0 12px 35px rgba(6, 27, 50, .08);
  --shadow-md: 0 24px 65px rgba(6, 27, 50, .13);
  --shadow-lg: 0 35px 100px rgba(6, 27, 50, .2);
  --radius-sm: 14px;
  --radius-md: 22px;
  --radius-lg: 32px;
  --container: 1240px;
  --header-height: 94px;
  --ease: cubic-bezier(.22, 1, .36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html {
  min-height: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 22px);
  overscroll-behavior-y: none;
  overflow-x: clip;
  background: #04172b;
}
body {
  min-height: 100dvh;
  margin: 0;
  display: flex;
  flex-direction: column;
  color: var(--ink);
  background: var(--white);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
  overscroll-behavior-y: none;
}
body.menu-open { overflow: hidden; }
main { width: 100%; flex: 1 0 auto; }
h1, h2, h3, p, ul { margin-top: 0; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
::selection { color: var(--white); background: var(--blue); }
:focus-visible { outline: 3px solid rgba(37, 181, 229, .62); outline-offset: 4px; }
.container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }

/* Header and navigation */
.header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1000;
  color: var(--white);
  transition: background .3s ease, box-shadow .3s ease, color .3s ease;
}
.header::after {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: rgba(255, 255, 255, .14);
  pointer-events: none;
}
.header.inner,
.header.scrolled {
  color: var(--ink);
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 10px 40px rgba(6, 27, 50, .08);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
}
.header.inner::after, .header.scrolled::after { background: var(--line); }
.nav {
  min-height: var(--header-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.logo { display: inline-flex; align-items: center; flex: 0 0 auto; }
.header .logo { width: 272px; height: 70px; }
.logo img { width: 100%; height: 100%; object-fit: contain; object-position: left center; }
.links { margin-left: auto; display: flex; align-items: center; gap: clamp(13px, 1.5vw, 23px); }
.links a {
  position: relative;
  padding-block: 12px;
  color: rgba(255, 255, 255, .9);
  font-size: .82rem;
  font-weight: 750;
  letter-spacing: .01em;
  white-space: nowrap;
  transition: color .2s ease;
}
.inner .links a, .scrolled .links a { color: var(--ink); }
.links a::after {
  content: "";
  position: absolute;
  right: 50%;
  bottom: 4px;
  left: 50%;
  height: 2px;
  border-radius: 2px;
  background: var(--cyan);
  transition: left .25s var(--ease), right .25s var(--ease);
}
.links a:hover::after, .links a.active::after { right: 0; left: 0; }
.links .offer {
  padding: 11px 17px;
  color: var(--white) !important;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--blue), #087aca);
  box-shadow: 0 10px 24px rgba(7, 95, 174, .22);
}
.links .offer::after { display: none; }
.toggle {
  display: none;
  position: relative;
  z-index: 1002;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 15px;
  color: currentColor;
  background: rgba(255, 255, 255, .12);
  cursor: pointer;
  place-items: center;
}
.inner .toggle, .scrolled .toggle, .header.menu-active .toggle {
  color: var(--ink);
  border-color: var(--line);
  background: var(--white);
  box-shadow: var(--shadow-sm);
}
.toggle-box { position: relative; width: 21px; height: 16px; display: block; }
.toggle-box span {
  position: absolute;
  left: 0;
  width: 21px;
  height: 2px;
  border-radius: 4px;
  background: currentColor;
  transition: transform .25s var(--ease), top .25s var(--ease), opacity .18s ease;
}
.toggle-box span:nth-child(1) { top: 0; }
.toggle-box span:nth-child(2) { top: 7px; }
.toggle-box span:nth-child(3) { top: 14px; }
.toggle[aria-expanded="true"] .toggle-box span:nth-child(1) { top: 7px; transform: rotate(45deg); }
.toggle[aria-expanded="true"] .toggle-box span:nth-child(2) { opacity: 0; }
.toggle[aria-expanded="true"] .toggle-box span:nth-child(3) { top: 7px; transform: rotate(-45deg); }
.menu-scrim {
  position: fixed;
  inset: 0;
  z-index: 998;
  border: 0;
  background: rgba(4, 18, 34, .58);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .28s ease, visibility .28s ease;
}
.menu-scrim.visible { opacity: 1; visibility: visible; }

/* Hero */
.hero, .pagehero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: flex-end;
  color: var(--white);
  background-position: center;
  background-size: cover;
  overflow: hidden;
}
.hero::before, .pagehero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 78% 23%, rgba(37, 181, 229, .16), transparent 30%),
    linear-gradient(90deg, rgba(4, 20, 38, .96) 0%, rgba(6, 29, 53, .82) 48%, rgba(6, 29, 53, .32) 100%);
}
.hero::after, .pagehero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  z-index: -1;
  height: 32%;
  background: linear-gradient(0deg, rgba(3, 17, 32, .32), transparent);
}
.hero {
  min-height: max(740px, 100svh);
  background-image: url("https://images.unsplash.com/photo-1551836022-d5d88e9218df?auto=format&fit=crop&w=2200&q=90");
}
.pagehero { min-height: 680px; }
.hero-content { width: min(900px, 100%); padding: 190px 0 105px; }
.hero h1, .pagehero h1 {
  max-width: 1020px;
  margin-bottom: 0;
  font-size: clamp(3.35rem, 6.6vw, 6.8rem);
  font-weight: 820;
  line-height: .93;
  letter-spacing: -.065em;
  text-wrap: balance;
}
.hero h1 span, .pagehero h1 span { color: #79ddf7; }
.hero p, .pagehero p {
  max-width: 720px;
  margin: 29px 0 0;
  color: rgba(255, 255, 255, .78);
  font-size: clamp(1.02rem, 1.4vw, 1.16rem);
  line-height: 1.78;
}
.kicker, .eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
  font-size: .73rem;
  font-weight: 850;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.kicker { color: #89e3fa; }
.eyebrow { color: var(--blue); }
.kicker::before, .eyebrow::before { content: ""; width: 34px; height: 2px; border-radius: 2px; background: currentColor; }
.safety { background-image: url("https://images.unsplash.com/photo-1504917595217-d4dc5ebe6122?auto=format&fit=crop&w=2200&q=90"); }
.emergency { background-image: url("https://images.unsplash.com/photo-1516841273335-e39b37888115?auto=format&fit=crop&w=2200&q=90"); }
.dae { background-image: url("https://images.unsplash.com/photo-1576091160399-112ba8d25d1d?auto=format&fit=crop&w=2200&q=90"); }
.courses { background-image: url("https://images.unsplash.com/photo-1524178232363-1fb2b075b655?auto=format&fit=crop&w=2200&q=90"); }
.offers { background-image: url("https://images.unsplash.com/photo-1556761175-b413da4baf72?auto=format&fit=crop&w=2200&q=90"); }
.about { background-image: url("https://images.unsplash.com/photo-1521737711867-e3b97375f902?auto=format&fit=crop&w=2200&q=90"); }
.contact { background-image: url("https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=2200&q=90"); }

/* Controls */
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.btn {
  min-height: 54px;
  padding: 0 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .92rem;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  transition: transform .24s var(--ease), box-shadow .24s ease, background .24s ease;
}
.btn:hover { transform: translateY(-3px); }
.primary { color: var(--white); background: linear-gradient(135deg, var(--blue), #087dcc); box-shadow: 0 14px 32px rgba(7, 95, 174, .25); }
.primary:hover { box-shadow: 0 18px 38px rgba(7, 95, 174, .34); }
.light { color: var(--white); border-color: rgba(255, 255, 255, .36); background: rgba(255, 255, 255, .09); backdrop-filter: blur(8px); }
.light:hover { background: rgba(255, 255, 255, .16); }
.white { color: var(--navy); background: var(--white); box-shadow: 0 12px 30px rgba(3, 20, 37, .16); }
.outline { color: var(--blue); border-color: rgba(7, 95, 174, .25); background: var(--white); }
.outline:hover { border-color: var(--blue); box-shadow: 0 12px 28px rgba(7, 95, 174, .12); }

/* Layout and content */
.stats { position: relative; z-index: 4; margin-top: -48px; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid rgba(220, 230, 239, .75); border-radius: var(--radius-md); background: rgba(255, 255, 255, .98); box-shadow: var(--shadow-md); overflow: hidden; }
.stat { position: relative; padding: 30px; }
.stat + .stat::before { content: ""; position: absolute; inset: 25% auto 25% 0; width: 1px; background: var(--line); }
.stat strong { display: block; margin-bottom: 3px; color: var(--blue); font-size: clamp(1.8rem, 3vw, 2.35rem); line-height: 1.1; letter-spacing: -.04em; }
.stat span { color: var(--muted); font-size: .87rem; }
.section { padding: 125px 0; }
.soft { background: var(--surface); }
.dark { position: relative; color: var(--white); background: linear-gradient(145deg, #06172a, var(--navy-2)); overflow: hidden; }
.dark::before { content: ""; position: absolute; width: 520px; height: 520px; right: -180px; top: -260px; border-radius: 50%; background: rgba(37, 181, 229, .08); filter: blur(1px); }
.section-title { max-width: 880px; margin-bottom: 0; font-size: clamp(2.45rem, 5vw, 4.65rem); font-weight: 800; line-height: .99; letter-spacing: -.055em; text-wrap: balance; }
.section-copy { max-width: 710px; margin: 22px 0 0; color: var(--muted); font-size: 1.04rem; line-height: 1.8; }
.two { display: grid; grid-template-columns: minmax(0, .93fr) minmax(0, 1.07fr); gap: clamp(54px, 7vw, 92px); align-items: start; }
.big { margin-bottom: 0; font-size: clamp(2.25rem, 4.4vw, 4.45rem); font-weight: 800; line-height: 1.04; letter-spacing: -.055em; text-wrap: balance; }
.big span { color: var(--blue); }
.copy p { margin-bottom: 20px; color: var(--muted); font-size: 1.04rem; line-height: 1.8; }
.dark .copy p { color: rgba(255, 255, 255, .68); }
.grid3, .grid4 { margin-top: 56px; display: grid; gap: 20px; }
.grid3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.card {
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--white);
  box-shadow: 0 8px 24px rgba(6, 27, 50, .035);
  transition: transform .32s var(--ease), box-shadow .32s ease, border-color .32s ease;
}
.card:hover { transform: translateY(-7px); border-color: rgba(7, 95, 174, .2); box-shadow: var(--shadow-md); }
.card h3 { margin-bottom: 12px; font-size: 1.3rem; line-height: 1.25; letter-spacing: -.018em; }
.card p { margin-bottom: 0; color: var(--muted); line-height: 1.72; }
.dark .card { border-color: rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .055); box-shadow: none; }
.dark .card p { color: rgba(255, 255, 255, .65); }
.icon { width: 54px; height: 54px; margin-bottom: 34px; display: grid; place-items: center; color: var(--white); border-radius: 17px; background: linear-gradient(145deg, var(--blue), var(--cyan)); font-size: .8rem; font-weight: 900; box-shadow: 0 13px 27px rgba(7, 95, 174, .2); }
.tag { display: inline-flex; align-items: center; width: max-content; margin-bottom: 27px; padding: 8px 12px; color: var(--blue); border-radius: 999px; background: #eaf3fb; font-size: .68rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.meta { margin-top: 23px; padding-top: 17px; display: flex; justify-content: space-between; border-top: 1px solid var(--line); color: var(--muted); font-size: .84rem; }
.process { margin-top: 54px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; counter-reset: process; }
.step { position: relative; padding: 26px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); overflow: hidden; }
.step strong { display: block; margin-bottom: 30px; color: var(--blue); font-size: .75rem; letter-spacing: .16em; }
.step h3 { margin-bottom: 8px; font-size: 1.08rem; }
.step p { margin-bottom: 0; color: var(--muted); font-size: .89rem; line-height: 1.62; }
.media { min-height: 580px; display: flex; align-items: flex-end; position: relative; isolation: isolate; border-radius: var(--radius-lg); color: var(--white); background-size: cover; background-position: center; box-shadow: var(--shadow-md); overflow: hidden; }
.media::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(4, 24, 45, .94), rgba(4, 24, 45, .1) 75%); }
.media-copy { max-width: 800px; padding: 54px; }
.media h2 { margin-bottom: 0; font-size: clamp(2.6rem, 5vw, 5rem); line-height: .98; letter-spacing: -.055em; }
.media p { margin: 20px 0 0; color: rgba(255, 255, 255, .75); line-height: 1.76; }

/* Home and offers */
.home-area-card { min-height: 485px; padding: 0; display: flex; flex-direction: column; overflow: hidden; }
.home-area-image, .offer-image-wrap { position: relative; height: 235px; background: #dce7f0; overflow: hidden; }
.home-area-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 42%, rgba(4, 25, 47, .68)); }
.home-area-image img, .offer-image-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.home-area-card:hover .home-area-image img, .offer-card-photo:hover .offer-image-wrap img { transform: scale(1.055); }
.home-area-badge { position: absolute; z-index: 2; left: 20px; bottom: 18px; padding: 8px 12px; color: var(--white); border: 1px solid rgba(255, 255, 255, .3); border-radius: 999px; background: rgba(6, 27, 50, .68); backdrop-filter: blur(10px); font-size: .68rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.home-area-body { flex: 1; padding: 28px; display: flex; flex-direction: column; }
.home-area-body h3 { margin-bottom: 10px; font-size: 1.55rem; }
.home-area-body .actions { margin-top: auto; padding-top: 25px; }
.home-area-body .btn { width: 100%; }
.offer-card ul { min-height: 142px; padding: 0; list-style: none; }
.offer-card li { margin-bottom: 10px; color: var(--muted); }
.offer-card li::before, .dae-check-list li::before { content: "✓"; margin-right: 9px; color: var(--success); font-weight: 900; }
.old { color: var(--muted); font-size: .87rem; text-decoration: line-through; }
.price { margin: 5px 0 20px; font-size: 2.65rem; font-weight: 850; line-height: 1; letter-spacing: -.04em; }
.featured, .dae-package-featured { color: var(--white); border-color: transparent; background: linear-gradient(150deg, #082c51, #075fae); box-shadow: 0 25px 65px rgba(7, 95, 174, .25); transform: translateY(-11px); }
.featured:hover, .dae-package-featured:hover { transform: translateY(-16px); }
.featured li, .featured .old, .featured .offer-description, .dae-package-featured p, .dae-package-featured li { color: rgba(255, 255, 255, .72); }
.featured .tag, .dae-package-featured .tag { color: #d9f7ff; background: rgba(255, 255, 255, .12); }
.offer-card-photo {     padding: 0; display: flex; flex-direction: column; overflow: hidden; }
.offer-image-wrap { height: 205px; }
.offer-card-body {  position: 1; padding: 27px; display: flex; flex-direction: column; }
.offer-card-body .tag { margin-bottom: 18px; }
.offer-description { min-height: 100px; margin-bottom: 20px !important; }
.offer-card-photo ul { min-height: 150px; }
.offer-card-photo .btn { margin-top: auto; }
.promo-tag { color: var(--white) !important; background: linear-gradient(135deg, #e66f10, #f6a438) !important; }
.promo-catalog-description { margin: 0 28px; color: var(--muted); line-height: 1.65; }
.promo-catalog-card { border-color: rgba(241, 132, 43, .3); }

/* Courses */
.catalog-filters, .dae-selector { display: flex; flex-wrap: wrap; gap: 10px; margin: 38px 0 30px; }
.filter-btn, .dae-option { min-height: 45px; padding: 0 18px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: var(--white); font-size: .87rem; font-weight: 800; cursor: pointer; transition: .22s ease; }
.filter-btn:hover, .filter-btn.active, .dae-option:hover, .dae-option.active { color: var(--white); border-color: var(--blue); background: var(--blue); box-shadow: 0 10px 24px rgba(7, 95, 174, .2); }
.course-card { padding: 0; display: flex; flex-direction: column; overflow: hidden; }
.course-card.is-hidden { display: none; }
.course-image-wrap { height: 220px; background: #dfe8f2; overflow: hidden; }
.course-image-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s var(--ease); }
.course-card:hover .course-image-wrap img { transform: scale(1.045); }
.course-card > .tag, .course-card > .course-date, .course-card > h3, .course-card > .course-details, .course-card > .btn { margin-right: 28px; margin-left: 28px; }
.course-card > .tag { margin-top: 25px; margin-bottom: 11px; }
.course-date { margin-bottom: 10px; color: var(--blue); font-size: .84rem; font-weight: 850; }
.course-card > h3 { margin-bottom: 0; }
.course-details { margin-top: 18px; display: grid; gap: 8px; color: var(--muted); font-size: .87rem; line-height: 1.5; }
.course-card > .btn { margin-top: 25px; margin-bottom: 28px; }
.course-notice { margin-top: 30px; padding: 18px 20px; color: var(--muted); border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); line-height: 1.65; }
.catalog-overview { margin-top: 34px; padding: 24px 26px; display: grid; grid-template-columns: auto auto 1fr; gap: 28px; align-items: center; color: var(--white); border: 1px solid rgba(255, 255, 255, .12); border-radius: 22px; background: radial-gradient(circle at 90% 10%, rgba(80, 214, 248, .2), transparent 32%), linear-gradient(135deg, #061b32, #075fae); box-shadow: 0 22px 55px rgba(6, 27, 50, .16); }
.catalog-overview > div { min-width: 132px; display: grid; }
.catalog-overview > div + div { padding-left: 28px; border-left: 1px solid rgba(255, 255, 255, .18); }
.catalog-overview strong { font-size: 2rem; line-height: 1; letter-spacing: -.04em; }
.catalog-overview span { margin-top: 6px; color: rgba(255, 255, 255, .72); font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.catalog-overview p { margin: 0; color: rgba(255, 255, 255, .76); line-height: 1.65; }
.course-catalog-grid { align-items: stretch; }
.safety-catalog-card { position: relative; min-height: 292px; padding: 26px; border-color: rgba(7, 95, 174, .18); background: linear-gradient(155deg, #fff 0%, #fff 62%, #f2f8fd 100%); }
.safety-catalog-card::before { content: ""; position: absolute; width: 120px; height: 120px; right: -58px; top: -60px; border-radius: 50%; background: rgba(37, 181, 229, .12); transition: transform .35s var(--ease); }
.safety-catalog-card:hover::before { transform: scale(1.18); }
.safety-card-top { position: relative; display: flex; gap: 12px; align-items: center; justify-content: space-between; }
.safety-card-top .tag { margin: 0; }
.course-status { display: inline-flex; align-items: center; gap: 7px; color: #586879; font-size: .72rem; font-weight: 850; letter-spacing: .04em; white-space: nowrap; }
.course-status::before { content: ""; width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: #98a8b8; box-shadow: 0 0 0 4px rgba(152, 168, 184, .14); }
.course-status.is-scheduled { color: #087448; }
.course-status.is-scheduled::before { background: #10a567; box-shadow: 0 0 0 4px rgba(16, 165, 103, .14); }
.safety-catalog-card > h3 { position: relative; margin: 24px 0 0; font-size: 1.18rem; line-height: 1.34; letter-spacing: -.018em; }
.safety-duration { position: relative; margin-top: auto; padding-top: 28px; display: flex; gap: 11px; align-items: center; }
.duration-icon { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(7, 95, 174, .13); border-radius: 12px; background: rgba(7, 95, 174, .06); font-size: 1rem; }
.duration-icon svg { width: 19px; height: 19px; fill: none; stroke: var(--blue); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.safety-duration > span:last-child { display: grid; gap: 2px; }
.safety-duration small { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.safety-duration strong { color: var(--ink); font-size: .92rem; }
.safety-card-link { position: relative; margin-top: 24px; padding-top: 18px; display: flex; align-items: center; justify-content: space-between; color: var(--blue); border-top: 1px solid var(--line); font-size: .82rem; font-weight: 850; }
.safety-card-link span { font-size: 1.1rem; transition: transform .2s ease; }
.safety-card-link:hover span { transform: translateX(4px); }
.course-notice strong { color: var(--ink); }

/* Forms and CTA */
.formwrap { display: grid; grid-template-columns: .82fr 1.18fr; gap: 42px; align-items: stretch; }
.contactbox { padding: 40px; color: var(--white); border-radius: var(--radius-lg); background: radial-gradient(circle at 95% 0, rgba(80, 214, 248, .3), transparent 35%), linear-gradient(145deg, #07294b, var(--blue)); box-shadow: var(--shadow-md); }
.contactbox h2 { font-size: clamp(2rem, 3vw, 3rem); line-height: 1.08; letter-spacing: -.04em; }
.contactbox p { color: rgba(255, 255, 255, .72); line-height: 1.72; }
.contactlist { margin-top: 32px; display: grid; gap: 18px; }
.contactlist > div { padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .16); }
.contactlist > div p { margin: 5px 0 0; }
.form { padding: 40px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--shadow-sm); }
.formgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field { display: grid; gap: 8px; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: .84rem; font-weight: 800; }
.field input, .field select, .field textarea, .dae-checker-form select { width: 100%; min-height: 52px; padding: 14px 15px; color: var(--ink); border: 1px solid var(--line); border-radius: 13px; background: #fbfdff; outline: none; transition: border .2s ease, box-shadow .2s ease; }
.field textarea { min-height: 145px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus, .dae-checker-form select:focus { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(7, 95, 174, .1); }
.cta { padding: 0 0 125px; }
.ctabox { position: relative; padding: 68px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 42px; color: var(--white); border-radius: var(--radius-lg); background: radial-gradient(circle at 92% 5%, rgba(78, 217, 250, .36), transparent 34%), linear-gradient(135deg, #07294b, var(--blue)); box-shadow: var(--shadow-md); overflow: hidden; }
.ctabox h2 { margin-bottom: 0; font-size: clamp(2.4rem, 4.7vw, 4.8rem); line-height: .98; letter-spacing: -.055em; }
.ctabox p { max-width: 650px; margin: 18px 0 0; color: rgba(255, 255, 255, .72); line-height: 1.72; }

/* Defibrillators */
.dae-premium-hero { min-height: 760px; align-items: center; }
.dae-hero-grid { padding-top: var(--header-height); display: grid; grid-template-columns: 1.05fr .95fr; gap: 58px; align-items: center; }
.dae-hero-grid .hero-content { padding: 80px 0; }
.dae-hero-card { position: relative; min-height: 500px; border: 1px solid rgba(255, 255, 255, .18); border-radius: var(--radius-lg); box-shadow: 0 35px 90px rgba(0, 0, 0, .26); overflow: hidden; }
.dae-hero-card img { width: 100%; height: 500px; object-fit: cover; }
.dae-floating { position: absolute; right: 24px; bottom: 24px; left: 24px; padding: 20px; color: var(--white); border: 1px solid rgba(255, 255, 255, .25); border-radius: 18px; background: rgba(5, 29, 53, .72); backdrop-filter: blur(14px); }
.dae-floating small, .dae-floating strong { display: block; }
.dae-floating small { margin-bottom: 5px; color: #84e5fa; font-size: .7rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.dae-trust { margin-top: 32px; display: flex; flex-wrap: wrap; gap: 9px; }
.dae-trust span { padding: 9px 13px; border: 1px solid rgba(255, 255, 255, .23); border-radius: 999px; background: rgba(255, 255, 255, .07); font-size: .79rem; font-weight: 700; }
.dae-section-head { display: flex; justify-content: space-between; align-items: end; gap: 45px; }
.dae-section-head .section-copy { max-width: 470px; margin: 0; }
.dae-recommendation { display: grid; grid-template-columns: 1fr .9fr; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--shadow-md); overflow: hidden; }
.dae-recommendation-copy { padding: 44px; }
.dae-recommendation-copy h3 { margin: 4px 0 15px; font-size: clamp(2rem, 3.5vw, 3.2rem); line-height: 1.05; letter-spacing: -.045em; }
.dae-recommendation-copy > p { color: var(--muted); line-height: 1.72; }
.dae-recommendation-image { min-height: 480px; }
.dae-recommendation-image img { width: 100%; height: 100%; min-height: 480px; object-fit: cover; }
.dae-check-list { margin: 23px 0 28px; padding: 0; list-style: none; }
.dae-check-list li { margin-bottom: 11px; color: var(--muted); line-height: 1.5; }
.dae-timeline { margin-top: 52px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.dae-step { padding: 25px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); }
.dae-step strong { display: block; margin-bottom: 28px; color: var(--blue); font-size: .73rem; letter-spacing: .16em; }
.dae-step h3 { margin-bottom: 9px; }
.dae-step p { margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.62; }
.dae-packages .dae-package { display: flex; flex-direction: column; }
.dae-package .btn { margin-top: auto; }
.dae-checker { margin-top: 42px; display: grid; grid-template-columns: 1fr .85fr; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--shadow-md); overflow: hidden; }
.dae-checker-form { padding: 36px; display: grid; gap: 18px; }
.dae-checker-form label { display: grid; gap: 8px; font-size: .9rem; font-weight: 800; }
.dae-result { padding: 42px; display: flex; flex-direction: column; justify-content: center; color: var(--white); background: radial-gradient(circle at 100% 0, rgba(91, 220, 250, .3), transparent 34%), linear-gradient(145deg, #07294b, var(--blue)); }
.dae-result .eyebrow { color: #8de7fb; }
.dae-result h3 { margin-bottom: 12px; font-size: 2rem; line-height: 1.15; }
.dae-result p { margin: 0; color: rgba(255, 255, 255, .74); line-height: 1.72; }
.dae-faq { display: grid; gap: 12px; }
.dae-faq details { padding: 20px 22px; border: 1px solid var(--line); border-radius: 17px; background: var(--white); transition: border .2s ease, box-shadow .2s ease; }
.dae-faq details[open] { border-color: rgba(7, 95, 174, .28); box-shadow: var(--shadow-sm); }
.dae-faq summary { position: relative; padding-right: 30px; font-weight: 850; cursor: pointer; list-style: none; }
.dae-faq summary::-webkit-details-marker { display: none; }
.dae-faq summary::after { content: "+"; position: absolute; top: -5px; right: 0; color: var(--blue); font-size: 1.45rem; font-weight: 500; }
.dae-faq details[open] summary::after { content: "−"; }
.dae-faq p { margin: 13px 0 0; color: var(--muted); line-height: 1.65; }

/* Company */
.staff-heading { display: flex; justify-content: space-between; align-items: end; gap: 50px; }
.staff-heading .section-copy { max-width: 500px; margin: 0; }
.staff-grid { margin-top: 46px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.staff-card { position: relative; min-height: 330px; padding: 32px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); box-shadow: var(--shadow-sm); overflow: hidden; }
.staff-card::before { content: ""; position: absolute; width: 150px; height: 150px; top: -90px; right: -70px; border-radius: 50%; background: var(--cyan-soft); }
.staff-photo { display: none; }
.staff-content { position: relative; padding: 0; }
.staff-content h3 { margin: 8px 0 7px; font-size: 1.5rem; line-height: 1.2; }
.staff-role { margin-bottom: 15px !important; color: var(--blue) !important; font-weight: 800; }
.staff-content p { color: var(--muted); line-height: 1.68; }
.staff-content ul { margin: 20px 0 0; padding-left: 18px; color: var(--muted); line-height: 1.8; }
.staff-note { margin-top: 25px; padding: 18px 20px; color: var(--muted); border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); line-height: 1.65; }

/* Assistant */
.ai-button { position: fixed; right: 20px; bottom: 20px; z-index: 900; min-height: 56px; padding: 0 19px; display: flex; align-items: center; gap: 9px; color: var(--white); border: 0; border-radius: 999px; background: linear-gradient(135deg, var(--blue), var(--cyan)); box-shadow: 0 18px 45px rgba(7, 95, 174, .34); font-size: .86rem; font-weight: 850; cursor: pointer; transition: transform .25s var(--ease), box-shadow .25s ease; }
.ai-button:hover { transform: translateY(-3px); box-shadow: 0 22px 55px rgba(7, 95, 174, .42); }
.ai-status-dot { width: 9px; height: 9px; border-radius: 50%; background: #82f1b6; box-shadow: 0 0 0 5px rgba(130, 241, 182, .18); }
.ai-panel { position: fixed; right: 20px; bottom: 90px; z-index: 901; width: min(420px, calc(100% - 28px)); border: 1px solid var(--line); border-radius: 25px; background: var(--white); box-shadow: var(--shadow-lg); opacity: 0; visibility: hidden; transform: translateY(14px) scale(.98); transform-origin: right bottom; transition: .25s var(--ease); overflow: hidden; }
.ai-panel.open { opacity: 1; visibility: visible; transform: none; }
.aihead { padding: 20px; display: flex; align-items: center; justify-content: space-between; color: var(--white); background: linear-gradient(135deg, #07294b, var(--blue)); }
.aihead strong, .aihead small { display: block; }
.aihead small { margin-top: 3px; color: rgba(255, 255, 255, .7); }
.ai-close { width: 38px; height: 38px; color: var(--white); border: 1px solid rgba(255, 255, 255, .22); border-radius: 50%; background: rgba(255, 255, 255, .08); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.aibody { padding: 0; }
.ai-chat { height: 300px; padding: 18px; background: var(--surface); overflow-y: auto; }
.ai-msg { max-width: 88%; margin-bottom: 11px; padding: 12px 14px; border-radius: 15px; font-size: .88rem; line-height: 1.55; }
.ai-bot { margin-right: auto; border: 1px solid var(--line); background: var(--white); }
.ai-user { margin-left: auto; color: var(--white); background: linear-gradient(135deg, var(--blue), #087dbd); }
.ai-msg a { display: block; width: max-content; margin-top: 10px; color: var(--blue); font-weight: 850; }
.ai-user a { color: var(--white); }
.ai-suggestions { padding: 12px 15px 0; display: flex; gap: 7px; background: var(--white); overflow-x: auto; scrollbar-width: none; }
.ai-suggestions::-webkit-scrollbar { display: none; }
.ai-suggestions button { flex: 0 0 auto; padding: 9px 11px; color: var(--ink); border: 1px solid var(--line); border-radius: 999px; background: var(--white); font-size: .73rem; font-weight: 800; cursor: pointer; }
.ai-form { padding: 12px 15px; display: grid; grid-template-columns: 1fr auto; gap: 8px; background: var(--white); }
.ai-input { min-width: 0; padding: 12px 13px; border: 1px solid var(--line); border-radius: 13px; outline: none; }
.ai-input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(7, 95, 174, .1); }
.ai-form button { padding: 0 16px; color: var(--white); border: 0; border-radius: 12px; background: var(--blue); font-weight: 850; cursor: pointer; }
.ai-disclaimer { padding: 0 15px 15px; color: #77889a; background: var(--white); font-size: .67rem; line-height: 1.45; }

/* Footer */
footer { width: 100%; flex: 0 0 auto; padding: 74px 0 28px; color: var(--white); background: #04172b; }
.footergrid { display: grid; grid-template-columns: 1.45fr repeat(3, 1fr); gap: 46px; }
.footerbrand .logo { width: 270px; height: 75px; padding: 7px 10px; border-radius: 14px; background: rgba(255, 255, 255, .97); }
.footerbrand p { max-width: 390px; margin: 19px 0 0; color: rgba(255, 255, 255, .56); line-height: 1.72; }
.ftitle { margin-bottom: 20px; font-size: .85rem; font-weight: 850; letter-spacing: .03em; }
.flinks { display: grid; gap: 12px; color: rgba(255, 255, 255, .58); font-size: .88rem; }
.flinks a { width: max-content; transition: color .2s ease, transform .2s ease; }
.flinks a:hover { color: var(--white); transform: translateX(3px); }
.bottom { margin-top: 54px; padding-top: 24px; display: flex; justify-content: space-between; gap: 20px; color: rgba(255, 255, 255, .42); border-top: 1px solid rgba(255, 255, 255, .1); font-size: .8rem; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s var(--ease); }
.reveal.visible { opacity: 1; transform: none; }

@media (max-width: 1180px) {
  :root { --header-height: 86px; }
  .header .logo { width: 242px; height: 64px; }
  .toggle { display: grid; }
  .links {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 1001;
    width: min(410px, 92vw);
    height: 100dvh;
    margin: 0;
    padding: 112px 28px 36px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    color: var(--ink);
    background: var(--white);
    box-shadow: -28px 0 75px rgba(6, 27, 50, .22);
    transform: translateX(105%);
    transition: transform .36s var(--ease);
    overflow-y: auto;
  }
  .links.open { transform: none; }
  .links::before { content: "Navigazione"; margin-bottom: 15px; color: var(--muted); font-size: .7rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
  .links a, .inner .links a, .scrolled .links a {
    width: 100%;
    padding: 15px 4px;
    color: var(--ink) !important;
    border-bottom: 1px solid var(--line);
    font-size: 1.02rem;
  }
  .links a::after { top: 50%; right: auto; bottom: auto; left: -10px; width: 4px; height: 0; border-radius: 4px; transform: translateY(-50%); transition: height .2s ease; }
  .links a:hover::after, .links a.active::after { right: auto; left: -10px; height: 26px; }
  .links .offer { margin-top: 14px; padding: 15px 20px; color: var(--white) !important; border: 0; text-align: center; }
  .two, .formwrap { grid-template-columns: 1fr; }
  .grid4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .process { grid-template-columns: repeat(3, 1fr); }
  .dae-hero-grid, .dae-recommendation, .dae-checker { grid-template-columns: 1fr; }
  .dae-premium-hero { min-height: auto; }
  .dae-hero-grid { padding-top: calc(var(--header-height) + 36px); padding-bottom: 70px; }
  .dae-hero-grid .hero-content { padding: 40px 0 0; }
  .dae-hero-card, .dae-hero-card img { min-height: 420px; height: 420px; }
  .dae-recommendation-image, .dae-recommendation-image img { min-height: 350px; }
  .dae-timeline { grid-template-columns: repeat(3, 1fr); }
  .dae-section-head { display: block; }
  .dae-section-head .section-copy { margin-top: 20px; }
  .featured, .dae-package-featured { transform: none; }
  .featured:hover, .dae-package-featured:hover { transform: translateY(-7px); }
  .footergrid { grid-template-columns: 1.35fr 1fr 1fr; }
  .footergrid > div:last-child { grid-column: 2; }
}

@media (max-width: 780px) {
  :root { --header-height: 78px; }
  .container { width: min(calc(100% - 30px), var(--container)); }
  .header .logo { width: 205px; height: 57px; }
  .toggle { width: 46px; height: 46px; border-radius: 14px; }
  .hero { min-height: 760px; }
  .pagehero { min-height: 620px; }
  .hero-content { padding: 145px 0 82px; }
  .hero h1, .pagehero h1 { font-size: clamp(2.85rem, 13vw, 4.7rem); line-height: .94; }
  .hero p, .pagehero p { font-size: 1rem; }
  .actions .btn { width: 100%; }
  .stats { margin-top: 0; padding-top: 16px; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .stat { padding: 23px 20px; }
  .stat + .stat::before { display: none; }
  .stat:nth-child(even) { border-left: 1px solid var(--line); }
  .stat:nth-child(n+3) { border-top: 1px solid var(--line); }
  .section { padding: 88px 0; }
  .section-title { font-size: clamp(2.25rem, 11vw, 3.7rem); }
  .big { font-size: clamp(2.15rem, 10vw, 3.45rem); }
  .grid3, .grid4, .process, .dae-timeline, .staff-grid { grid-template-columns: 1fr; margin-top: 40px; }
  .card { padding: 25px; }
  .home-area-card { min-height: 0; padding: 0; }
  .home-area-image { height: 220px; }
  .course-image-wrap { height: 205px; }
  .media { min-height: 520px; border-radius: 24px; }
  .media-copy { padding: 28px; }
  .offer-image-wrap { height: 220px; }
  .offer-description, .offer-card-photo ul { min-height: auto; }
  .form, .contactbox { padding: 27px; border-radius: 24px; }
  .formgrid { grid-template-columns: 1fr; }
  .field.full { grid-column: auto; }
  .ctabox { padding: 44px 28px; grid-template-columns: 1fr; border-radius: 24px; }
  .cta { padding-bottom: 88px; }
  .dae-hero-grid { gap: 34px; padding-top: calc(var(--header-height) + 30px); padding-bottom: 55px; }
  .dae-hero-grid .hero-content { padding-top: 35px; }
  .dae-hero-card, .dae-hero-card img { min-height: 330px; height: 330px; }
  .dae-recommendation-copy, .dae-checker-form, .dae-result { padding: 27px; }
  .dae-recommendation-image, .dae-recommendation-image img { min-height: 290px; }
  .dae-selector, .catalog-filters { flex-wrap: nowrap; margin-right: -15px; padding-right: 15px; overflow-x: auto; scrollbar-width: none; }
  .dae-selector::-webkit-scrollbar, .catalog-filters::-webkit-scrollbar { display: none; }
  .filter-btn, .dae-option { flex: 0 0 auto; }
  .catalog-overview { padding: 22px; grid-template-columns: 1fr 1fr; gap: 20px 16px; }
  .catalog-overview > div { min-width: 0; }
  .catalog-overview > div + div { padding-left: 16px; }
  .catalog-overview p { grid-column: 1 / -1; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .16); }
  .safety-catalog-card { min-height: 0; padding: 24px; }
  .staff-heading { display: block; }
  .staff-heading .section-copy { margin-top: 18px; }
  .footergrid { grid-template-columns: 1fr 1fr; gap: 38px 25px; }
  .footerbrand { grid-column: 1 / -1; }
  .footergrid > div:last-child { grid-column: auto; }
  .bottom { flex-direction: column; gap: 8px; }
  .footerbrand .logo { width: 245px; height: 68px; }
  .ai-button { right: 14px; bottom: 14px; min-height: 52px; }
  .ai-panel { right: 13px; bottom: 78px; }
  .ai-chat { height: min(300px, 38dvh); }
}

@media (max-width: 430px) {
  .header .logo { width: 181px; height: 53px; }
  .nav { gap: 12px; }
  .links { width: 100%; padding-right: 22px; padding-left: 22px; }
  .hero h1, .pagehero h1 { font-size: clamp(2.65rem, 13.5vw, 3.55rem); }
  .stats-grid { grid-template-columns: 1fr; }
  .stat:nth-child(even) { border-left: 0; }
  .stat + .stat { border-top: 1px solid var(--line); }
  .footergrid { grid-template-columns: 1fr; }
  .footerbrand, .footergrid > div:last-child { grid-column: auto; }
  .ai-button { width: 52px; padding: 0; justify-content: center; font-size: 0; }
  .ai-status-dot { width: 12px; height: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Chi siamo — identità editoriale Blu */
.about-page { overflow-x: clip; }
.identity-hero {
  position: relative;
  isolation: isolate;
  min-height: 860px;
  display: flex;
  align-items: center;
  color: var(--white);
  background:
    radial-gradient(circle at 82% 28%, rgba(37, 181, 229, .17), transparent 28%),
    radial-gradient(circle at 15% 85%, rgba(7, 95, 174, .22), transparent 32%),
    linear-gradient(145deg, #041426 0%, #072844 54%, #061b32 100%);
}
.identity-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .19;
  background-image:
    linear-gradient(rgba(255, 255, 255, .12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .12) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: linear-gradient(90deg, #000, transparent 82%);
  mask-image: linear-gradient(90deg, #000, transparent 82%);
}
.identity-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 480px;
  height: 480px;
  right: -220px;
  bottom: -260px;
  border-radius: 50%;
  border: 1px solid rgba(92, 221, 252, .18);
  box-shadow: 0 0 0 95px rgba(66, 203, 238, .025), 0 0 0 190px rgba(66, 203, 238, .02);
}
.identity-hero-grid {
  padding-top: calc(var(--header-height) + 70px);
  padding-bottom: 86px;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(430px, .95fr);
  gap: clamp(55px, 7vw, 100px);
  align-items: center;
}
.identity-hero-copy { position: relative; z-index: 2; }
.identity-kicker {
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #8be8fa;
  font-size: .73rem;
  font-weight: 900;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.identity-kicker span { width: 40px; height: 2px; background: currentColor; }
.identity-hero h1 {
  max-width: 770px;
  margin-bottom: 0;
  font-size: clamp(4.2rem, 6.5vw, 7rem);
  font-weight: 820;
  line-height: .9;
  letter-spacing: -.07em;
  text-wrap: balance;
}
.identity-hero h1 em { display: block; color: #71d8f2; font-style: normal; }
.identity-hero-copy > p {
  max-width: 660px;
  margin: 30px 0 0;
  color: rgba(255, 255, 255, .72);
  font-size: 1.08rem;
  line-height: 1.78;
}
.identity-ghost { color: var(--white); border-color: rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .065); }
.identity-ghost:hover { background: rgba(255, 255, 255, .12); }
.identity-proof {
  max-width: 690px;
  margin-top: 46px;
  padding-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid rgba(255, 255, 255, .16);
}
.identity-proof > div { padding: 0 22px; border-left: 1px solid rgba(255, 255, 255, .15); }
.identity-proof > div:first-child { padding-left: 0; border-left: 0; }
.identity-proof strong, .identity-proof span { display: block; }
.identity-proof strong { margin-bottom: 3px; color: var(--white); font-size: .86rem; letter-spacing: .03em; }
.identity-proof span { color: rgba(255, 255, 255, .48); font-size: .76rem; }

.identity-emblem {
  position: relative;
  width: min(100%, 520px);
  aspect-ratio: 1;
  justify-self: end;
  display: grid;
  place-items: center;
}
.identity-emblem::before {
  content: "";
  position: absolute;
  inset: 8%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(37, 181, 229, .12), transparent 65%);
  filter: blur(10px);
}
.identity-orbit {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(134, 229, 251, .24);
}
.identity-orbit::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -5px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #78dff6;
  box-shadow: 0 0 22px rgba(120, 223, 246, .85);
}
.orbit-one { inset: 4%; animation: identity-spin 22s linear infinite; }
.orbit-two { inset: 17%; border-style: dashed; animation: identity-spin-reverse 30s linear infinite; }
.orbit-three { inset: 29%; animation: identity-spin 17s linear infinite; }
.orbit-two::before { top: 15%; left: auto; right: 5%; background: var(--blue); }
.orbit-three::before { top: auto; bottom: 6%; left: 24%; background: var(--white); }
@keyframes identity-spin { to { transform: rotate(360deg); } }
@keyframes identity-spin-reverse { to { transform: rotate(-360deg); } }
.identity-core {
  position: relative;
  z-index: 2;
  width: 180px;
  height: 180px;
  display: grid;
  place-content: center;
  text-align: center;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 28%, #26b6e5, #075fae 52%, #073967);
  box-shadow: 0 25px 75px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .3), 0 0 0 18px rgba(63, 197, 231, .045);
}
.identity-core span { font-size: 3.1rem; font-weight: 900; line-height: 1; letter-spacing: -.07em; }
.identity-core small { margin-top: 8px; color: rgba(255, 255, 255, .68); font-size: .62rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.orbit-label {
  position: absolute;
  z-index: 3;
  padding: 8px 12px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 999px;
  color: rgba(255, 255, 255, .76);
  background: rgba(5, 28, 50, .72);
  backdrop-filter: blur(12px);
  font-size: .66rem;
  font-weight: 850;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.orbit-label-one { top: 9%; right: 17%; }
.orbit-label-two { bottom: 22%; left: -1%; }
.orbit-label-three { right: -4%; bottom: 25%; }
.identity-signal {
  position: absolute;
  right: 2%;
  bottom: 2%;
  z-index: 4;
  width: 260px;
  padding: 15px 16px;
  display: flex;
  align-items: center;
  gap: 11px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 16px;
  background: rgba(4, 24, 44, .76);
  backdrop-filter: blur(16px);
  box-shadow: 0 18px 50px rgba(0, 0, 0, .18);
}
.identity-signal span { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%; background: #75edaf; box-shadow: 0 0 0 5px rgba(117, 237, 175, .14); }
.identity-signal p { margin: 0; color: rgba(255, 255, 255, .67); font-size: .65rem; font-weight: 750; letter-spacing: .04em; line-height: 1.45; }

.identity-index { margin-bottom: 24px; color: var(--blue); font-size: .7rem; font-weight: 900; letter-spacing: .17em; text-transform: uppercase; }
.identity-manifesto-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr); gap: clamp(50px, 8vw, 115px); align-items: center; }
.identity-manifesto h2 {
  max-width: 900px;
  margin: 0;
  font-size: clamp(3.6rem, 6.4vw, 6.9rem);
  font-weight: 820;
  line-height: .92;
  letter-spacing: -.068em;
  text-wrap: balance;
}
.identity-manifesto h2 span { color: var(--blue); }
.manifesto-note {
  position: relative;
  padding: 38px;
  color: var(--white);
  border-radius: 28px;
  background: linear-gradient(145deg, #072a4a, #075fae);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}
.manifesto-note::after { content: ""; position: absolute; width: 190px; height: 190px; right: -90px; bottom: -90px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 50%; box-shadow: 0 0 0 42px rgba(255, 255, 255, .025); }
.manifesto-mark { height: 50px; color: #7ddff5; font-family: Georgia, serif; font-size: 5.5rem; line-height: 1; }
.manifesto-note p { position: relative; z-index: 1; margin: 8px 0 28px; color: rgba(255, 255, 255, .72); font-size: 1.08rem; line-height: 1.75; }
.manifesto-note strong { position: relative; z-index: 1; font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; }
.identity-principles { margin-top: 85px; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.identity-principles article { position: relative; padding: 36px 32px 0; border-left: 1px solid var(--line); }
.identity-principles article:first-child { padding-left: 0; border-left: 0; }
.identity-principles article > span { display: block; margin-bottom: 32px; color: var(--cyan); font-size: .68rem; font-weight: 900; letter-spacing: .16em; }
.identity-principles h3 { margin-bottom: 10px; font-size: 1.25rem; }
.identity-principles p { margin: 0; color: var(--muted); line-height: 1.72; }

.identity-method { position: relative; background: #edf4f8; }
.identity-method::before { content: "BLU"; position: absolute; right: -2vw; top: -7vw; color: rgba(7, 95, 174, .035); font-size: 30vw; font-weight: 900; line-height: 1; letter-spacing: -.1em; pointer-events: none; }
.identity-section-head { position: relative; display: grid; grid-template-columns: 1.25fr .75fr; gap: 70px; align-items: end; }
.identity-section-head h2 { margin: 0; font-size: clamp(3rem, 5vw, 5.2rem); font-weight: 820; line-height: .95; letter-spacing: -.06em; }
.identity-section-head h2 span { color: var(--blue); }
.identity-section-head > p { margin: 0; color: var(--muted); font-size: 1.02rem; line-height: 1.8; }
.identity-method-track { position: relative; margin-top: 74px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.identity-method-track::before { content: ""; position: absolute; top: 30px; right: 8%; left: 8%; height: 1px; background: linear-gradient(90deg, transparent, rgba(7, 95, 174, .35), transparent); }
.identity-method-track article { position: relative; min-height: 310px; padding: 28px 24px; border: 1px solid rgba(7, 95, 174, .13); border-radius: 22px; background: rgba(255, 255, 255, .88); box-shadow: 0 12px 35px rgba(6, 27, 50, .045); transition: transform .3s var(--ease), box-shadow .3s ease; }
.identity-method-track article:hover { transform: translateY(-8px); box-shadow: var(--shadow-md); }
.identity-method-track article:nth-child(even) { margin-top: 36px; }
.identity-method-track strong { position: relative; z-index: 2; width: 58px; height: 58px; display: grid; place-items: center; color: var(--white); border: 7px solid #edf4f8; border-radius: 50%; background: var(--blue); font-size: .7rem; letter-spacing: .08em; box-shadow: 0 10px 25px rgba(7, 95, 174, .22); }
.identity-method-track article > span { display: block; margin: 35px 0 8px; color: var(--cyan); font-size: .67rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.identity-method-track h3 { margin-bottom: 9px; font-size: 1.2rem; }
.identity-method-track p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.66; }

.identity-system { background: linear-gradient(145deg, #031426, #082d4d); }
.identity-section-head-light .identity-index { color: #7edff6; }
.identity-section-head-light h2 span { color: #76daf2; }
.identity-section-head-light > p { color: rgba(255, 255, 255, .62); }
.identity-system-grid { margin-top: 68px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.system-card { position: relative; min-height: 490px; padding: 34px; display: flex; flex-direction: column; border: 1px solid rgba(255, 255, 255, .11); border-radius: 26px; background: rgba(255, 255, 255, .045); overflow: hidden; transition: transform .34s var(--ease), border-color .34s ease, background .34s ease; }
.system-card:hover { transform: translateY(-9px); border-color: rgba(118, 218, 242, .34); background: rgba(255, 255, 255, .075); }
.system-card::after { content: ""; position: absolute; inset: auto -30% -40% 30%; height: 70%; border-radius: 50%; background: rgba(37, 181, 229, .08); filter: blur(12px); }
.system-letter { position: absolute; top: -45px; right: -7px; color: rgba(255, 255, 255, .035); font-size: 15rem; font-weight: 900; line-height: 1; letter-spacing: -.1em; }
.system-code { position: relative; z-index: 1; margin-bottom: auto; color: #81e2f7; font-size: .68rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.system-card h3 { position: relative; z-index: 1; max-width: 280px; margin: 90px 0 16px; font-size: 2.1rem; line-height: 1.04; letter-spacing: -.045em; }
.system-card p { position: relative; z-index: 1; margin-bottom: 28px; color: rgba(255, 255, 255, .61); line-height: 1.72; }
.system-card a { position: relative; z-index: 1; width: max-content; color: var(--white); font-size: .84rem; font-weight: 850; }
.system-card a::after { content: ""; display: block; width: 35px; height: 2px; margin-top: 8px; background: var(--cyan); transition: width .2s ease; }
.system-card:hover a::after { width: 100%; }
.system-emergency { background: linear-gradient(155deg, rgba(255, 255, 255, .05), rgba(7, 95, 174, .16)); }
.system-dae { background: linear-gradient(155deg, rgba(255, 255, 255, .045), rgba(37, 181, 229, .12)); }

.identity-promise { display: grid; grid-template-columns: 1fr 1fr; min-height: 760px; background: var(--white); }
.identity-promise-visual { position: relative; isolation: isolate; padding: 58px; display: flex; align-items: flex-end; color: var(--white); background: url("https://images.unsplash.com/photo-1521737711867-e3b97375f902?auto=format&fit=crop&w=1500&q=90") center/cover; }
.identity-promise-visual::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(4, 22, 40, .9), rgba(4, 22, 40, .12) 70%); }
.identity-promise-visual > div { max-width: 500px; }
.identity-promise-visual span { display: block; margin-bottom: 12px; color: #82e4f9; font-size: .7rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.identity-promise-visual strong { font-size: clamp(2.3rem, 4vw, 4rem); line-height: 1; letter-spacing: -.05em; }
.identity-promise-copy { padding: clamp(70px, 9vw, 135px); display: flex; flex-direction: column; justify-content: center; }
.identity-promise-copy h2 { margin: 0; font-size: clamp(4.4rem, 7vw, 7.6rem); font-weight: 820; line-height: .82; letter-spacing: -.075em; }
.identity-promise-copy h2 span { color: var(--blue); }
.identity-promise-copy > p { max-width: 610px; margin: 35px 0 0; color: var(--muted); font-size: 1.03rem; line-height: 1.8; }
.promise-points { margin-top: 44px; border-top: 1px solid var(--line); }
.promise-points > div { padding: 17px 0; display: grid; grid-template-columns: 100px 1fr; gap: 18px; border-bottom: 1px solid var(--line); }
.promise-points strong { color: var(--blue); }
.promise-points span { color: var(--muted); }

.identity-finale { position: relative; text-align: center; }
.identity-finale::before { content: ""; position: absolute; width: 360px; height: 360px; top: 50%; left: 50%; border: 1px solid rgba(7, 95, 174, .09); border-radius: 50%; box-shadow: 0 0 0 70px rgba(7, 95, 174, .025), 0 0 0 140px rgba(7, 95, 174, .018); transform: translate(-50%, -50%); pointer-events: none; }
.identity-finale-inner { position: relative; max-width: 1000px; }
.identity-finale .identity-index { margin-bottom: 28px; }
.identity-finale h2 { margin: 0 auto; font-size: clamp(3.3rem, 6vw, 6.4rem); font-weight: 820; line-height: .92; letter-spacing: -.065em; text-wrap: balance; }
.identity-finale h2 span { color: var(--blue); }
.identity-finale-inner > p:not(.identity-index) { max-width: 720px; margin: 30px auto 0; color: var(--muted); font-size: 1.08rem; line-height: 1.8; }
.identity-finale .actions { justify-content: center; margin-top: 38px; }

@media (max-width: 1080px) {
  .identity-hero-grid { grid-template-columns: 1fr; gap: 25px; }
  .identity-hero-copy { max-width: 850px; }
  .identity-emblem { width: min(560px, 72vw); justify-self: center; }
  .identity-manifesto-grid { grid-template-columns: 1fr; }
  .manifesto-note { max-width: 620px; }
  .identity-section-head { grid-template-columns: 1fr; gap: 24px; }
  .identity-section-head > p { max-width: 680px; }
  .identity-method-track { grid-template-columns: repeat(3, 1fr); }
  .identity-method-track::before { display: none; }
  .identity-method-track article:nth-child(even) { margin-top: 0; }
  .identity-system-grid { grid-template-columns: 1fr; }
  .system-card { min-height: 360px; }
  .system-card h3 { margin-top: 70px; }
  .identity-promise { grid-template-columns: 1fr; }
  .identity-promise-visual { min-height: 620px; }
  .identity-promise-copy { padding: 90px clamp(30px, 8vw, 90px); }
}

@media (max-width: 780px) {
  .identity-hero { min-height: auto; }
  .identity-hero-grid { padding-top: calc(var(--header-height) + 70px); padding-bottom: 72px; }
  .identity-hero h1 { font-size: clamp(3.15rem, 14vw, 5rem); }
  .identity-hero-copy > p { font-size: 1rem; }
  .identity-proof { margin-top: 36px; }
  .identity-proof > div { padding: 0 12px; }
  .identity-emblem { width: min(520px, 94vw); margin-top: 24px; }
  .identity-core { width: 145px; height: 145px; }
  .identity-core span { font-size: 2.45rem; }
  .identity-signal { right: 1%; bottom: -3%; width: 230px; }
  .orbit-label { font-size: .58rem; }
  .identity-manifesto h2 { font-size: clamp(3.1rem, 13vw, 5rem); }
  .identity-principles { margin-top: 55px; grid-template-columns: 1fr; border-top: 0; }
  .identity-principles article, .identity-principles article:first-child { padding: 28px 0; border-top: 1px solid var(--line); border-left: 0; }
  .identity-principles article > span { margin-bottom: 18px; }
  .identity-section-head h2 { font-size: clamp(2.8rem, 12vw, 4.3rem); }
  .identity-method-track { margin-top: 48px; grid-template-columns: 1fr; }
  .identity-method-track article { min-height: 0; }
  .identity-method-track article > span { margin-top: 27px; }
  .system-card { min-height: 390px; padding: 28px; }
  .system-card h3 { margin-top: 90px; font-size: 1.9rem; }
  .identity-promise-visual { min-height: 500px; padding: 30px; }
  .identity-promise-copy { padding: 75px 22px; }
  .identity-promise-copy h2 { font-size: clamp(4.2rem, 20vw, 6.3rem); }
  .identity-finale h2 { font-size: clamp(3rem, 13vw, 4.8rem); }
}

@media (max-width: 430px) {
  .identity-hero-grid { padding-top: calc(var(--header-height) + 54px); }
  .identity-hero h1 { font-size: clamp(2.85rem, 14vw, 3.7rem); }
  .identity-proof { grid-template-columns: 1fr; gap: 13px; }
  .identity-proof > div, .identity-proof > div:first-child { padding: 0; border-left: 0; }
  .identity-proof > div { display: grid; grid-template-columns: 100px 1fr; align-items: center; }
  .identity-emblem { width: 96vw; margin-left: -5vw; }
  .identity-core { width: 122px; height: 122px; }
  .identity-core span { font-size: 2rem; }
  .identity-core small { font-size: .5rem; }
  .orbit-label-three { right: 0; }
  .orbit-label-two { left: 2%; }
  .identity-signal { right: 5%; bottom: -2%; width: 210px; }
  .manifesto-note { padding: 30px; }
  .identity-system-grid { margin-top: 46px; }
  .identity-promise-visual { min-height: 440px; }
  .promise-points > div { grid-template-columns: 78px 1fr; }
}


/* Hero Chi siamo con immagine team locale */
.chi-siamo-team-hero{
  position:relative;
  background:
    linear-gradient(90deg, rgba(3,27,61,.86) 0%, rgba(3,27,61,.70) 48%, rgba(3,27,61,.42) 100%),
    url('img/team-hero.jpg') center 42% / cover no-repeat !important;
}
.chi-siamo-team-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(3,27,61,.12), rgba(3,27,61,.30));
  pointer-events:none;
}
.chi-siamo-team-hero .identity-hero-grid{
  position:relative;
  z-index:2;
}
.chi-siamo-team-hero .identity-hero-copy,
.chi-siamo-team-hero .identity-hero-copy h1,
.chi-siamo-team-hero .identity-hero-copy p,
.chi-siamo-team-hero .identity-kicker,
.chi-siamo-team-hero .identity-proof strong,
.chi-siamo-team-hero .identity-proof span{
  color:#fff !important;
}
.chi-siamo-team-hero .identity-emblem{
  opacity:.9;
}
@media(max-width:900px){
  .chi-siamo-team-hero{
    background:
      linear-gradient(rgba(3,27,61,.80), rgba(3,27,61,.80)),
      url('img/team-hero.jpg') 58% center / cover no-repeat !important;
  }
}


/* Sezioni aggiuntive: clienti e video */
.blu-section-heading{
  max-width:760px;
  margin-bottom:34px;
}
.blu-section-heading h2,
.blu-video-copy h2{
  margin:10px 0 14px;
}
.blu-section-heading p,
.blu-video-copy p{
  max-width:680px;
}
.blu-client-logo-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:14px;
}
.blu-client-logo-placeholder{
  min-height:118px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:18px 10px;
  border:1px dashed rgba(12,64,112,.25);
  border-radius:16px;
  background:rgba(255,255,255,.75);
  text-align:center;
}
.blu-client-logo-placeholder span{
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
  color:#315779;
}
.blu-client-logo-placeholder small{
  color:#6d8193;
}
.blu-clienti-note{
  margin-top:16px;
  font-size:.82rem;
  opacity:.72;
}
.blu-video-grid{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(420px,1.18fr);
  gap:56px;
  align-items:center;
}
.blu-video-frame{
  overflow:hidden;
  border-radius:22px;
  box-shadow:0 24px 70px rgba(0,0,0,.30);
  background:#020b17;
}
.blu-video-frame video{
  display:block;
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
}
@media(max-width:1050px){
  .blu-client-logo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .blu-video-grid{grid-template-columns:1fr;gap:30px}
}
@media(max-width:640px){
  .blu-client-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .blu-video-frame{border-radius:16px}
}


/* Gallery Blu Corporation */
.blu-gallery-section{
  overflow:hidden;
}
.blu-gallery-heading{
  max-width:720px;
  margin-bottom:34px;
}
.blu-gallery-heading h2{
  margin:8px 0 12px;
}
.blu-gallery-heading p{
  margin:0;
  max-width:620px;
}
.blu-gallery-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-flow:dense;
  grid-auto-rows:210px;
  gap:14px;
}
.gallery-item{
  position:relative;
  min-width:0;
  width:100%;
  height:100%;
  padding:0;
  overflow:hidden;
  border:0;
  border-radius:18px;
  background:#071a30;
  cursor:pointer;
  box-shadow:0 10px 34px rgba(4,31,62,.10);
}
.gallery-item--wide{
  grid-column:span 2;
}
.gallery-item--tall{
  grid-row:span 2;
}
.gallery-item img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s ease,filter .45s ease;
}
.gallery-item:hover img,
.gallery-item:focus-visible img{
  transform:scale(1.045);
  filter:brightness(.76);
}
.gallery-item-overlay{
  position:absolute;
  inset:auto 0 0;
  display:flex;
  justify-content:flex-end;
  padding:34px 16px 14px;
  color:#fff;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  background:linear-gradient(transparent,rgba(2,19,38,.78));
  opacity:0;
  transition:opacity .3s ease;
}
.gallery-item:hover .gallery-item-overlay,
.gallery-item:focus-visible .gallery-item-overlay{
  opacity:1;
}
.gallery-video-icon{
  position:absolute;
  left:50%;
  top:50%;
  z-index:2;
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  padding-left:4px;
  border:1px solid rgba(255,255,255,.68);
  border-radius:50%;
  color:#fff;
  background:rgba(3,27,61,.72);
  backdrop-filter:blur(8px);
  transform:translate(-50%,-50%);
  transition:transform .25s ease,background .25s ease;
}
.gallery-item--video:hover .gallery-video-icon{
  transform:translate(-50%,-50%) scale(1.08);
  background:rgba(0,127,211,.92);
}
.blu-gallery-lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:32px 72px;
  background:rgba(1,12,26,.94);
  backdrop-filter:blur(12px);
}
.blu-gallery-lightbox.is-open{
  display:flex;
}
.blu-gallery-lightbox-content{
  display:flex;
  align-items:center;
  justify-content:center;
  width:min(1180px,100%);
  height:min(82vh,820px);
}
.blu-gallery-lightbox-content img,
.blu-gallery-lightbox-content video{
  display:block;
  max-width:100%;
  max-height:100%;
  border-radius:14px;
  box-shadow:0 22px 80px rgba(0,0,0,.48);
}
.blu-gallery-lightbox-content video{
  width:min(1100px,100%);
  background:#000;
}
.blu-gallery-close,
.blu-gallery-nav{
  position:absolute;
  z-index:2;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  background:rgba(255,255,255,.08);
  cursor:pointer;
  backdrop-filter:blur(8px);
}
.blu-gallery-close{
  top:22px;
  right:24px;
  width:48px;
  height:48px;
  border-radius:50%;
  font-size:2rem;
  line-height:1;
}
.blu-gallery-nav{
  top:50%;
  width:52px;
  height:66px;
  border-radius:14px;
  font-size:2.3rem;
  transform:translateY(-50%);
}
.blu-gallery-prev{left:18px}
.blu-gallery-next{right:18px}
.blu-gallery-close:hover,
.blu-gallery-nav:hover{
  background:rgba(0,127,211,.88);
}
body.gallery-open{
  overflow:hidden;
}
@media(max-width:1050px){
  .blu-gallery-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    grid-auto-rows:200px;
  }
}
@media(max-width:760px){
  .blu-gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:170px;
    gap:10px;
  }
  .gallery-item--wide{
    grid-column:span 2;
  }
  .gallery-item--tall{
    grid-row:span 1;
  }
  .blu-gallery-lightbox{
    padding:70px 14px 80px;
  }
  .blu-gallery-nav{
    top:auto;
    bottom:16px;
    transform:none;
    width:48px;
    height:48px;
    border-radius:50%;
  }
  .blu-gallery-prev{left:calc(50% - 58px)}
  .blu-gallery-next{right:calc(50% - 58px)}
}
@media(max-width:430px){
  .blu-gallery-grid{
    grid-auto-rows:145px;
  }
}


/* Pagina Gallery dedicata */
.gallery-page-hero{
  position:relative;
  overflow:hidden;
  padding:150px 0 92px;
  color:#fff;
  background:
    radial-gradient(circle at 82% 18%,rgba(0,151,230,.28),transparent 31%),
    linear-gradient(135deg,#031b3d 0%,#063261 55%,#07528b 100%);
}
.gallery-page-hero::after{
  content:"";
  position:absolute;
  right:-110px;
  bottom:-190px;
  width:520px;
  height:520px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:50%;
  box-shadow:
    0 0 0 70px rgba(255,255,255,.035),
    0 0 0 145px rgba(255,255,255,.025);
}
.gallery-page-hero .container{
  position:relative;
  z-index:2;
}
.gallery-page-hero h1{
  max-width:850px;
  margin:12px 0 18px;
  color:#fff;
  font-size:clamp(3rem,7vw,6.4rem);
  line-height:.95;
}
.gallery-page-hero h1 span{
  color:#5ec5ff;
}
.gallery-page-hero p{
  max-width:690px;
  margin:0;
  color:rgba(255,255,255,.82);
  font-size:clamp(1rem,2vw,1.22rem);
}
.gallery-page-stats{
  display:flex;
  gap:14px;
  margin-top:38px;
}
.gallery-page-stats div{
  min-width:126px;
  padding:16px 22px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:16px;
  background:rgba(255,255,255,.07);
  backdrop-filter:blur(10px);
}
.gallery-page-stats strong,
.gallery-page-stats span{
  display:block;
}
.gallery-page-stats strong{
  color:#fff;
  font-size:1.7rem;
}
.gallery-page-stats span{
  margin-top:2px;
  color:rgba(255,255,255,.7);
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.gallery-page .blu-gallery-section{
  padding-top:86px;
}
@media(max-width:720px){
  .gallery-page-hero{
    padding:120px 0 72px;
  }
  .gallery-page-stats{
    flex-wrap:wrap;
  }
  .gallery-page-stats div{
    min-width:110px;
  }
}

/* Contatto WhatsApp condiviso da tutte le pagine */
.whatsapp-float{
  position:fixed;
  z-index:90;
  right:22px;
  bottom:22px;
  min-height:56px;
  padding:9px 18px 9px 10px;
  display:flex;
  align-items:center;
  gap:10px;
  color:#fff;
  border:1px solid rgba(255,255,255,.3);
  border-radius:999px;
  background:#128c4a;
  box-shadow:0 16px 38px rgba(4,70,37,.28);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.02em;
  text-decoration:none;
  transition:transform .22s ease,background .22s ease,box-shadow .22s ease;
}
.whatsapp-float:hover{
  color:#fff;
  background:#0f7b40;
  transform:translateY(-3px);
  box-shadow:0 20px 42px rgba(4,70,37,.36);
}
.whatsapp-float:focus-visible{
  outline:3px solid rgba(37,211,102,.35);
  outline-offset:4px;
}
.whatsapp-float-icon{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  flex:0 0 38px;
  border-radius:50%;
  background:#fff;
  color:#128c4a;
  font-size:1.16rem;
  line-height:1;
}
.contact-whatsapp{
  display:inline-block;
  margin-top:8px;
  color:#7de2ff !important;
  font-weight:850;
}
@media(max-width:640px){
  .whatsapp-float{
    right:14px;
    bottom:14px;
    width:54px;
    min-height:54px;
    padding:8px;
    justify-content:center;
  }
  .whatsapp-float-label{display:none}
}

/* Privacy, cookie, note legali e contenuti esterni */
.legal-page{
  background:#f5f8fb;
}
.legal-hero{
  position:relative;
  overflow:hidden;
  padding:158px 0 82px;
  color:#fff;
  background:
    radial-gradient(circle at 78% 18%,rgba(34,184,224,.24),transparent 32%),
    linear-gradient(135deg,#041629 0%,#082c4c 72%,#075fae 140%);
}
.legal-hero::after{
  content:"";
  position:absolute;
  right:-100px;
  bottom:-170px;
  width:430px;
  height:430px;
  border:1px solid rgba(125,226,255,.18);
  border-radius:50%;
  box-shadow:0 0 0 70px rgba(125,226,255,.035),0 0 0 140px rgba(125,226,255,.025);
}
.legal-hero-inner{
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:42px;
}
.legal-hero h1{
  margin:14px 0 18px;
  max-width:760px;
  color:#fff;
  font-size:clamp(3rem,7vw,6.5rem);
  line-height:.92;
  letter-spacing:-.065em;
}
.legal-hero h1 span{
  color:#7de2ff;
}
.legal-hero p{
  max-width:690px;
  margin:0;
  color:rgba(255,255,255,.72);
  font-size:1.08rem;
  line-height:1.72;
}
.legal-update{
  flex:0 0 auto;
  padding:19px 22px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:16px;
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.65);
  font-size:.72rem;
  line-height:1.55;
  letter-spacing:.08em;
  text-transform:uppercase;
  backdrop-filter:blur(12px);
}
.legal-update strong{
  color:#fff;
}
.legal-layout{
  display:grid;
  grid-template-columns:240px minmax(0,820px);
  justify-content:center;
  gap:54px;
  align-items:start;
}
.legal-index{
  position:sticky;
  top:112px;
  display:grid;
  gap:3px;
  padding:22px;
  border:1px solid rgba(6,27,50,.1);
  border-radius:19px;
  background:#fff;
  box-shadow:0 16px 44px rgba(6,27,50,.06);
}
.legal-index strong{
  margin-bottom:11px;
  color:#061b32;
  font-size:.73rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.legal-index a{
  padding:9px 10px;
  color:#536477;
  border-radius:9px;
  font-size:.84rem;
  font-weight:750;
  text-decoration:none;
}
.legal-index a:hover,
.legal-index a:focus-visible{
  color:#075fae;
  background:#edf7fd;
}
.legal-content{
  display:grid;
  gap:18px;
}
.legal-content>section{
  scroll-margin-top:112px;
  padding:36px 38px;
  border:1px solid rgba(6,27,50,.09);
  border-radius:24px;
  background:#fff;
  box-shadow:0 18px 52px rgba(6,27,50,.055);
}
.legal-number{
  display:inline-grid;
  width:39px;
  height:39px;
  place-items:center;
  margin-bottom:17px;
  color:#075fae;
  border-radius:12px;
  background:#edf7fd;
  font-size:.69rem;
  font-weight:900;
  letter-spacing:.08em;
}
.legal-content h2{
  margin:0 0 17px;
  color:#061b32;
  font-size:clamp(1.55rem,3vw,2.25rem);
  line-height:1.12;
  letter-spacing:-.035em;
}
.legal-content h3{
  margin:0 0 8px;
  color:#061b32;
  font-size:1.03rem;
}
.legal-content p,
.legal-content li{
  color:#506276;
  font-size:.97rem;
  line-height:1.76;
}
.legal-content p{
  margin:0 0 14px;
}
.legal-content p:last-child{
  margin-bottom:0;
}
.legal-content ul{
  margin:0 0 15px;
  padding-left:21px;
}
.legal-content li+li{
  margin-top:9px;
}
.legal-content a{
  color:#075fae;
  font-weight:780;
}
.legal-contact,
.legal-company-card{
  margin-top:22px;
  padding:20px 22px;
  border-left:4px solid #20b6df;
  border-radius:0 15px 15px 0;
  background:#eff9fc;
}
.legal-table-wrap{
  margin:22px 0;
  overflow-x:auto;
  border:1px solid rgba(6,27,50,.09);
  border-radius:15px;
}
.legal-table{
  width:100%;
  border-collapse:collapse;
  min-width:620px;
}
.legal-table th,
.legal-table td{
  padding:16px 18px;
  text-align:left;
  vertical-align:top;
  border-bottom:1px solid rgba(6,27,50,.08);
  color:#506276;
  font-size:.87rem;
  line-height:1.55;
}
.legal-table th{
  color:#061b32;
  background:#f2f7fb;
  font-size:.72rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.legal-table tr:last-child td{
  border-bottom:0;
}
.legal-status{
  margin:0 0 22px;
  padding:20px 22px;
  display:grid;
  gap:5px;
  border-radius:16px;
}
.legal-status.good{
  color:#075439;
  border:1px solid rgba(16,145,92,.18);
  background:#ecfaf4;
}
.legal-status strong{
  font-size:1rem;
}
.legal-status span{
  color:#477064;
  font-size:.87rem;
  line-height:1.55;
}
.legal-service-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px;
}
.legal-service-list article{
  padding:21px;
  border:1px solid rgba(6,27,50,.09);
  border-radius:16px;
  background:#f8fafc;
}
.legal-service-list article p{
  font-size:.88rem;
}
.legal-service-list article a{
  font-size:.82rem;
  text-decoration:none;
}
.legal-bottom{
  align-items:flex-start;
  gap:12px 30px;
  flex-wrap:wrap;
}
.privacy-form-note{
  padding:18px;
  border:1px solid rgba(7,95,174,.16);
  border-radius:15px;
  background:#f2f8fc;
}
.privacy-check{
  display:grid;
  grid-template-columns:20px 1fr;
  gap:11px;
  align-items:start;
  color:#344b61;
  cursor:pointer;
  font-size:.86rem;
  line-height:1.55;
}
.privacy-check input{
  width:18px!important;
  height:18px!important;
  min-height:0!important;
  margin:2px 0 0!important;
  padding:0!important;
  accent-color:#075fae;
}
.privacy-check a{
  color:#075fae;
  font-weight:850;
}
.privacy-form-note>p{
  margin:10px 0 0 31px;
  color:#667789;
  font-size:.76rem;
  line-height:1.5;
}
.form-submit-note{
  margin:10px 0 0;
  color:#667789;
  font-size:.76rem;
  line-height:1.5;
}
.map-consent{
  display:grid;
  place-items:center;
  padding:28px;
  background:
    radial-gradient(circle at 18% 22%,rgba(37,181,229,.2),transparent 25%),
    radial-gradient(circle at 84% 78%,rgba(7,95,174,.25),transparent 30%),
    linear-gradient(145deg,#04172a,#0a3558);
}
.map-consent.map-loaded{
  display:block;
  padding:0;
}
.map-consent-card{
  width:min(100%,520px);
  padding:34px;
  color:#fff;
  border:1px solid rgba(255,255,255,.16);
  border-radius:20px;
  background:rgba(5,30,52,.88);
  box-shadow:0 20px 48px rgba(0,0,0,.2);
  text-align:center;
  backdrop-filter:blur(10px);
}
.map-consent-card h3{
  margin:0 0 12px;
  color:#fff;
  font-size:1.6rem;
}
.map-consent-card p{
  margin:0 0 22px;
  color:rgba(255,255,255,.7);
  font-size:.9rem;
  line-height:1.62;
}
.map-consent-card .btn{
  margin:0 auto 15px;
}
.map-consent-card>a{
  display:block;
  color:#7de2ff;
  font-size:.78rem;
  font-weight:820;
  text-decoration:none;
}
.gallery-rights-note{
  max-width:380px;
  padding:22px 24px;
  border:1px solid rgba(7,95,174,.14);
  border-radius:18px;
  background:#fff;
  box-shadow:0 14px 38px rgba(6,27,50,.06);
}
.gallery-rights-note>span{
  color:#0795c4;
  font-size:.63rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.gallery-rights-note strong{
  display:block;
  margin:7px 0 8px;
  color:#061b32;
  font-size:1.05rem;
}
.gallery-rights-note p{
  margin:0 0 10px;
  color:#627487;
  font-size:.78rem;
  line-height:1.55;
}
.gallery-rights-note a{
  color:#075fae;
  font-size:.76rem;
  font-weight:850;
  text-decoration:none;
}
@media(max-width:900px){
  .legal-hero{
    padding:138px 0 70px;
  }
  .legal-hero-inner{
    align-items:flex-start;
    flex-direction:column;
  }
  .legal-layout{
    grid-template-columns:1fr;
    gap:24px;
  }
  .legal-index{
    position:static;
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .legal-index strong{
    grid-column:1/-1;
  }
}
@media(max-width:680px){
  .legal-hero h1{
    font-size:3.35rem;
  }
  .legal-content>section{
    padding:27px 22px;
    border-radius:19px;
  }
  .legal-index{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .legal-service-list{
    grid-template-columns:1fr;
  }
  .privacy-form-note>p{
    margin-left:0;
  }
  .map-consent{
    padding:18px;
  }
  .map-consent-card{
    padding:28px 20px;
  }
}
