:root {
  --navy:#102130;
  --ink:#172b38;
  --lime:#d5f86a;
  --muted:#56696d;
  --line:#dbe3df;
  --paper:#f5f7f3;
  --space:clamp(1.25rem,5.6vw,5.5rem);
  --header:5rem
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header) + 1rem)
}
body {
  margin:0;
  background:#fff;
  color:var(--ink);
  font:1rem/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
button,input {
  font:inherit
}
button {
  cursor:pointer
}
button,a,input,summary {
  -webkit-tap-highlight-color:transparent
}
h1,h2,h3,p {
  margin:0
}
h1,h2,h3 {
  line-height:1.14;
  font-weight:600;
  letter-spacing:-.04em;
  text-wrap:balance
}
h2 {
  font-size:clamp(2rem,3.8vw,3.1rem)
}
h3 {
  font-size:1.5rem
}
em {
  font-style:normal;
  color:var(--lime)
}
button {
  border:0
}
img {
  display:block;
  max-width:100%;
  height:auto
}
[hidden] {
  display:none!important
}
:focus-visible {
  outline:3px solid #658e0d;
  outline-offset:4px
}
.skip {
  position:fixed;
  top:-100px;
  z-index:100;
  background:var(--lime);
  padding:.8rem
}
.skip:focus {
  top:8px
}
.nav {
  position:sticky;
  top:0;
  z-index:30;
  background:#fff;
  border-bottom:1px solid #e3e8e4
}
.nav-inner {
  max-width:1600px;
  margin:auto;
  min-height:var(--header);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  padding:.8rem var(--space)
}
.logo {
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  font-size:1.8rem;
  letter-spacing:-.07em;
  font-weight:700;
  white-space:nowrap;
  line-height:1.1
}
.brand-light {
  font-weight:400
}
.brand-mark {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--lime);
  color:var(--navy);
  width:1.9rem;
  height:1.9rem;
  font-size:1.95rem;
  border-radius:6px;
  letter-spacing:0;
  font-weight:400
}
.desktop-nav {
  display:flex;
  gap:1.9rem;
  align-items:center;
  font-size:.875rem;
  font-weight:500
}
.nav-actions {
  display:flex;
  align-items:center;
  gap:.8rem
}
.nav-event {
  font-size:.8rem;
  font-weight:600;
  color:var(--muted)
}
.menu-toggle {
  display:none;
  width:44px;
  height:44px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:6px;
  background:transparent;
  border:1px solid var(--line);
  border-radius:6px
}
.menu-toggle span {
  display:block;
  width:18px;
  height:1.5px;
  background:var(--ink)
}
.menu-toggle[aria-expanded=true] span:first-child {
  transform:translateY(3.75px) rotate(45deg)
}
.menu-toggle[aria-expanded=true] span:last-child {
  transform:translateY(-3.75px) rotate(-45deg)
}
.mobile-nav {
  padding:.6rem var(--space) 1.2rem;
  border-top:1px solid var(--line)
}
.mobile-nav a {
  display:block;
  padding:.9rem 0;
  border-bottom:1px solid var(--line);
  font-size:1rem
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:1.25rem;
  background:var(--lime);
  color:var(--navy);
  padding:1rem 1.4rem;
  border-radius:6px;
  font-size:1rem;
  font-weight:650;
  line-height:1.45;
  min-height:56px;
  transition:background .15s,transform .15s
}
.button:hover {
  background:#c8ef4d
}
.button:active {
  transform:translateY(1px)
}
.button>span:not(.button-label) {
  font-size:1.4rem;
  line-height:1;
  font-weight:400
}
.button.small {
  padding:.75rem 1.05rem;
  font-size:.875rem;
  min-height:46px
}
.button.dark {
  background:var(--navy);
  color:white
}
.button.dark:hover {
  background:#223d4d
}
.button:disabled {
  cursor:wait;
  opacity:.7
}
.hero {
  min-height:730px;
  position:relative;
  background:var(--navy);
  overflow:hidden;
  color:white;
  margin:1rem 1.25rem 0;
  border-radius:8px;
  display:flex;
  align-items:center
}
.hero-photo,.hero-shade {
  position:absolute;
  inset:0
}
.hero-photo picture,.hero-photo img {
  width:100%;
  height:100%
}
.hero-photo img {
  object-fit:cover;
  object-position:center
}
.hero-shade {
  background:linear-gradient(90deg,#06141eef,#07141db0 40%,#08162120 72%,#08162110),linear-gradient(0deg,#091620c7,transparent 28%)
}
.hero-content {
  position:relative;
  z-index:1;
  padding:4rem clamp(1.5rem,4.4vw,4.5rem) 7rem;
  max-width:1000px
}
.event-tag {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  font-size:.8rem;
  letter-spacing:.075em;
  font-weight:600;
  gap:.7rem
}
.tag-divider {
  color:#afc2c9
}
.hero h1 {
  font-size:clamp(2.8rem,5vw,4.8rem);
  line-height:1.08;
  letter-spacing:-.045em;
  margin:1.7rem 0 1.5rem;
  font-weight:500
}
.hero p {
  font-size:1.1rem;
  line-height:1.75;
  color:#e4e9eb
}
.hero-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:1.5rem;
  margin-top:2rem
}
.plain-link {
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  min-height:44px;
  font-size:.95rem
}
.hero-note {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 1rem;
  color:#c8d6dc;
  font-size:.8rem;
  margin-top:1rem
}
.hero-note span:first-child {
  color:var(--lime)
}
.image-caption {
  position:absolute;
  bottom:1.6rem;
  left:clamp(1.5rem,4.4vw,4.5rem);
  right:2rem;
  display:flex;
  gap:.8rem;
  align-items:center;
  font-size:.85rem;
  z-index:1
}
.caption-cross {
  font-size:2rem;
  font-weight:300;
  color:var(--lime)
}
.image-caption small {
  display:block;
  color:#b9cbd3;
  font-size:.75rem
}
.stand-callout {
  position:absolute;
  right:8%;
  bottom:155px;
  display:flex;
  gap:.7rem;
  align-items:center;
  font-size:.75rem;
  letter-spacing:.025em;
  background:#102130de;
  padding:.8rem 1rem;
  border:1px solid #ffffff55;
  border-radius:4px;
  backdrop-filter:blur(12px)
}
.callout-dot {
  width:6px;
  height:6px;
  background:var(--lime);
  border-radius:50%
}
.event-strip {
  padding:2.25rem var(--space);
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line);
  gap:1.5rem;
  max-width:1600px;
  margin:auto
}
.strip-label {
  display:block;
  font-size:.75rem;
  letter-spacing:.09em;
  color:var(--muted);
  font-weight:600;
  margin-bottom:.4rem
}
.event-strip strong {
  font-size:1.05rem;
  font-weight:600
}
.event-strip>div:first-child strong {
  font-size:1.5rem;
  letter-spacing:-.04em
}
.reg {
  font-size:.7rem;
  vertical-align:super
}
.event-strip small {
  display:block;
  font-size:.85rem;
  color:var(--muted)
}
.event-strip a {
  font-size:.875rem;
  border-bottom:1px solid #acbcb3;
  padding:.4rem 0
}
.event-strip a span {
  margin-left:1rem
}
.section {
  padding:clamp(4rem,6.5vw,6.5rem) var(--space);
  max-width:1600px;
  margin:auto
}
.eyebrow {
  display:block;
  font-size:.75rem;
  font-weight:650;
  letter-spacing:.09em;
  line-height:1.5;
  margin-bottom:1.25rem
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:3rem;
  margin-bottom:2.7rem
}
.muted {
  color:#61766b
}
.section-heading>p {
  color:var(--muted);
  font-size:1rem;
  max-width:510px;
  line-height:1.8
}
.benefit-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.4rem
}
.benefit-grid article {
  padding:2rem;
  background:var(--paper);
  border-radius:7px;
  position:relative
}
.line-icon {
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border:1px solid #b8c9b9;
  border-radius:50%;
  font-size:1.8rem;
  font-weight:400;
  margin-bottom:2rem
}
.card-index {
  display:block;
  font-size:.75rem;
  letter-spacing:.06em;
  color:#5b6d61;
  margin-bottom:1.3rem
}
.benefit-grid h3 {
  font-size:1.7rem;
  line-height:1.2;
  margin-bottom:1.2rem
}
.benefit-grid p {
  font-size:1rem;
  color:var(--muted);
  line-height:1.8
}
.card-foot {
  display:block;
  border-top:1px solid #d8e1d8;
  padding-top:1.1rem;
  margin-top:1.5rem;
  font-size:.875rem;
  font-weight:500
}
.process {
  background:var(--navy);
  color:white;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(3rem,8vw,8rem);
  max-width:none
}
.process .eyebrow {
  color:#c0ced4
}
.process-intro>p {
  color:#becdd5;
  font-size:1rem;
  line-height:1.8;
  margin:1.5rem 0 1.8rem;
  max-width:560px
}
.steps article {
  display:flex;
  gap:1.5rem;
  padding:1.7rem 0;
  border-bottom:1px solid #ffffff30
}
.steps article:first-child {
  padding-top:0
}
.steps article:last-child {
  border:0;
  padding-bottom:0
}
.steps article>span {
  color:var(--lime);
  font-size:.85rem;
  padding-top:.1rem
}
.steps h3 {
  font-size:1.4rem;
  letter-spacing:-.02em;
  margin-bottom:.8rem
}
.steps p {
  color:#b9cbd5;
  font-size:1rem;
  line-height:1.8
}
.guest-grid {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:3.5rem
}
.guest-feature {
  background:#18353c;
  padding:2.4rem;
  color:white;
  border-radius:7px;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column
}
.guest-feature:after {
  content:'';
  position:absolute;
  width:280px;
  height:280px;
  border:1px solid #d5f86a25;
  border-radius:50%;
  right:-100px;
  top:160px;
  box-shadow:0 0 0 38px #d5f86a07,0 0 0 76px #d5f86a05
}
.pill {
  display:inline-block;
  font-size:.75rem;
  letter-spacing:.06em;
  padding:.4rem .65rem;
  border:1px solid #ffffff55;
  border-radius:3px;
  align-self:flex-start
}
.guest-typography {
  font-size:clamp(2.1rem,3.3vw,3rem);
  line-height:1.22;
  letter-spacing:-.045em;
  margin:3rem 0;
  position:relative;
  z-index:1
}
.guest-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:1rem;
  gap:1rem;
  position:relative;
  z-index:1;
  margin-top:auto
}
.guest-bottom small {
  display:block;
  font-size:.8rem;
  color:#b3c7c7;
  margin-top:.3rem
}
.round-arrow {
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 40px;
  height:40px;
  background:var(--lime);
  border-radius:50%;
  color:var(--navy);
  font-size:1.4rem
}
.guest-info {
  padding:1rem 0
}
.guest-info .eyebrow {
  color:var(--muted)
}
.guest-info h3 {
  font-size:2rem;
  margin-bottom:1.2rem
}
.guest-info p {
  color:var(--muted);
  font-size:1rem;
  line-height:1.8
}
.date-line {
  display:flex;
  align-items:center;
  gap:1.5rem;
  margin:1.7rem 0;
  padding:1.5rem 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)
}
.date-line strong {
  font-size:2.8rem;
  font-weight:500;
  letter-spacing:-.04em
}
.date-line>span {
  font-size:1rem
}
.guest-info .small-copy {
  font-size:.875rem;
  margin-bottom:1.5rem
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:1rem;
  font-size:.95rem;
  font-weight:600;
  min-height:44px
}
.content-banner {
  margin:0 var(--space);
  padding:2rem;
  background:var(--lime);
  border-radius:7px;
  display:flex;
  align-items:center;
  gap:1.8rem
}
.content-symbol {
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 64px;
  height:64px;
  border:1px solid #26382066;
  border-radius:50%;
  font-size:1.3rem
}
.content-banner .eyebrow {
  margin-bottom:.6rem
}
.content-banner h2 {
  font-size:1.6rem;
  letter-spacing:-.025em;
  margin-bottom:.8rem
}
.content-banner p {
  font-size:1rem;
  line-height:1.75;
  max-width:800px;
  color:#3f542d
}
.content-banner .button {
  flex-shrink:0;
  margin-left:auto;
  font-size:.875rem;
  padding:.9rem 1.2rem;
  min-height:48px
}
.faq {
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:5rem
}
.faq details {
  border-bottom:1px solid var(--line);
  padding:1.5rem 0
}
.faq details:first-child {
  padding-top:0
}
summary {
  list-style:none;
  cursor:pointer;
  font-size:1rem;
  font-weight:500;
  display:flex;
  justify-content:space-between;
  gap:1.5rem;
  min-height:44px;
  align-items:center
}
summary::-webkit-details-marker {
  display:none
}
summary span {
  font-size:1.5rem;
  line-height:1
}
details[open] summary span {
  transform:rotate(45deg)
}
.faq details p {
  padding-top:1rem;
  font-size:1rem;
  color:var(--muted)
}
.closing {
  text-align:center;
  background:var(--navy);
  padding:5rem var(--space);
  color:white
}
.closing .eyebrow {
  color:#bbccd4
}
.closing h2 {
  line-height:1.2;
  margin-bottom:2rem
}
.closing>p {
  color:#b8cad4;
  font-size:.875rem;
  margin-top:1rem
}
footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  padding:2rem var(--space);
  color:var(--muted)
}
footer .logo {
  color:var(--navy);
  font-size:1.5rem
}
footer .brand-mark {
  width:1.55rem;
  height:1.55rem;
  font-size:1.6rem
}
footer p {
  font-size:.85rem;
  margin-top:.6rem
}
.footer-links {
  display:flex;
  align-items:center;
  gap:1.5rem;
  font-size:.8rem
}
.footer-links a,.text-button {
  min-height:44px;
  display:inline-flex;
  align-items:center
}
.text-button {
  background:none;
  padding:0;
  color:inherit;
  font-size:inherit
}
dialog {
  width:min(490px,calc(100% - 32px));
  max-height:calc(100dvh - 32px);
  border:0;
  padding:2rem;
  border-radius:12px;
  color:var(--ink)
}
dialog::backdrop {
  background:#071623a6;
  backdrop-filter:blur(4px)
}
dialog h2 {
  font-size:1.8rem;
  margin-bottom:1.2rem;
  padding-right:1.5rem
}
dialog p {
  font-size:1rem;
  margin-bottom:1.5rem
}
.dialog-close {
  position:absolute;
  right:10px;
  top:8px;
  background:none;
  font-size:1.8rem;
  width:44px;
  height:44px
}
.registration {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  max-width:1600px;
  margin:auto
}
.registration-aside {
  background:var(--navy);
  color:white;
  padding:3.5rem clamp(2rem,5vw,5rem);
  position:relative;
  overflow:hidden
}
.back-link {
  font-size:.875rem;
  color:#b7c9d3;
  display:inline-block;
  padding:.5rem 0;
  margin-bottom:3.7rem
}
.registration-aside h1 {
  font-size:clamp(2.5rem,4vw,3.7rem);
  line-height:1.15;
  margin-bottom:1.5rem
}
.registration-aside>.eyebrow {
  font-size:.8rem;
  color:#bdccd3
}
.registration-aside>p {
  font-size:1.1rem;
  color:#c5d3da;
  line-height:1.75;
  max-width:420px
}
.included {
  list-style:none;
  padding:0;
  margin:2.3rem 0;
  font-size:1rem
}
.included li {
  display:flex;
  gap:.7rem;
  margin:1.1rem 0;
  align-items:flex-start
}
.included li>span {
  color:var(--lime)
}
.aside-bottom {
  display:flex;
  align-items:center;
  gap:1.8rem;
  border-top:1px solid #ffffff30;
  padding-top:1.8rem;
  position:relative;
  z-index:2
}
.price {
  font-size:3rem;
  letter-spacing:-.05em;
  font-weight:500;
  white-space:nowrap;
  line-height:1.2
}
.price small {
  display:block;
  font-size:.8rem;
  letter-spacing:0;
  color:#b8cad6;
  margin-top:.4rem
}
.aside-bottom p {
  font-size:.875rem;
  color:#b8cad6;
  line-height:1.7
}
.aside-image {
  display:block;
  width:calc(100% + 120px);
  max-width:none;
  height:380px;
  object-fit:cover;
  object-position:68% center;
  margin:4rem -60px -3.5rem;
  opacity:.85;
  mask-image:linear-gradient(transparent,black 22%)
}
.form-area {
  padding:3.5rem clamp(1.5rem,5vw,5rem);
  max-width:880px;
  width:100%;
  margin:auto
}
.form-topline {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  font-size:.75rem;
  color:var(--muted);
  letter-spacing:.07em;
  margin-bottom:1.7rem
}
.form-area h2 {
  font-size:clamp(2.25rem,3.2vw,3rem);
  margin-bottom:1.3rem
}
.form-lead {
  font-size:1rem;
  color:var(--muted);
  line-height:1.75;
  margin-bottom:2rem
}
.socials {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.7rem;
  margin-top:1.7rem
}
.social-button {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  border:1px solid var(--line);
  background:white;
  border-radius:5px;
  padding:.9rem .6rem;
  font-size:.9rem;
  color:var(--ink);
  min-height:52px
}
.google-g {
  font-size:1.2rem;
  font-weight:bold;
  color:#4285f4
}
.or {
  margin:1.5rem 0;
  display:flex;
  align-items:center;
  gap:.8rem;
  font-size:.8rem;
  color:var(--muted)
}
.or:before,.or:after {
  content:'';
  height:1px;
  flex:1;
  background:var(--line)
}
.fields {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.1rem
}
.field {
  min-width:0
}
.field label {
  display:block;
  font-size:.9rem;
  font-weight:600;
  margin-bottom:.4rem
}
.field.full {
  grid-column:1/-1
}
.field input {
  width:100%;
  min-height:52px;
  display:block;
  border:1px solid #b9c8bf;
  border-radius:5px;
  padding:.75rem .9rem;
  font-size:1rem;
  background:#fff;
  color:var(--ink);
  transition:border-color .15s
}
.field input:hover {
  border-color:#647e68
}
.field input:focus {
  outline:2px solid #b5d46c;
  outline-offset:1px
}
.field input[aria-invalid=true] {
  border-color:#b23c31
}
input::placeholder {
  color:#76887c;
  opacity:1
}
.field small {
  font-weight:400;
  color:var(--muted);
  font-size:.8rem;
  display:block;
  margin-top:.4rem
}
.field-error {
  font-size:.8rem!important;
  color:#ad3328!important;
  margin-top:.4rem!important;
  line-height:1.5!important
}
.field-error:empty {
  display:none
}
.participation,.contact-options {
  border:0;
  padding:0;
  margin:1.8rem 0 0;
  min-width:0
}
legend {
  font-size:1rem;
  font-weight:600;
  margin-bottom:.9rem;
  padding:0
}
.choice {
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  border:1px solid #cbd6ce;
  border-radius:6px;
  padding:1rem;
  margin-bottom:.65rem;
  cursor:pointer
}
.choice:has(input:checked) {
  background:#f5fae9;
  border-color:#9eb86e
}
.choice strong {
  display:block;
  font-size:1rem;
  font-weight:600
}
.choice small {
  display:block;
  font-size:.875rem;
  color:var(--muted);
  line-height:1.6;
  margin-top:.25rem
}
.choice input,input[type=checkbox] {
  accent-color:#446128;
  flex-shrink:0;
  width:18px;
  height:18px;
  cursor:pointer
}
.choice input {
  margin:4px 0 0
}
.contact-options {
  display:flex;
  flex-wrap:wrap;
  gap:.6rem 1.3rem;
  margin-top:1.5rem
}
.contact-options legend {
  width:100%
}
.contact-options label {
  font-size:.9rem;
  display:flex;
  align-items:center;
  gap:.45rem;
  min-height:44px;
  cursor:pointer
}
.contact-options .field-error {
  flex-basis:100%
}
.consents {
  padding-top:1.5rem;
  margin-top:1.8rem;
  border-top:1px solid var(--line)
}
.consents label {
  display:flex;
  align-items:flex-start;
  gap:.65rem;
  font-size:.875rem;
  line-height:1.75;
  margin-bottom:1.1rem;
  color:#42594b;
  cursor:pointer
}
.consents input {
  margin:5px 0 0
}
.consents button {
  padding:0;
  background:transparent;
  color:#28463a;
  font-size:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
  text-align:left
}
.consents small {
  display:block;
  font-size:.8rem;
  color:var(--muted);
  margin-top:.3rem
}
.submit {
  width:100%;
  margin-top:.7rem;
  font-size:1rem;
  min-height:56px;
  padding:1rem 1.2rem
}
.form-fine {
  text-align:center;
  font-size:.8rem;
  color:var(--muted);
  margin-top:.8rem
}
.form-message {
  padding:1rem;
  background:#fff3ed;
  color:#8f3626;
  border:1px solid #e9bdaa;
  border-radius:6px;
  font-size:.9rem;
  line-height:1.6;
  margin:1rem 0
}
.thanks {
  padding:4rem var(--space);
  background:#fcfdfb;
  max-width:1600px;
  margin:auto
}
.thanks-top {
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:4rem;
  align-items:center
}
.success-mark {
  background:var(--lime);
  width:54px;
  height:54px;
  border-radius:50%;
  font-size:1.6rem;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:1.7rem 0
}
.thanks h1 {
  font-size:clamp(2.25rem,3.7vw,3.5rem);
  line-height:1.18;
  margin-bottom:1.5rem
}
.thanks-top p {
  font-size:1.05rem;
  color:var(--muted);
  line-height:1.8
}
.event-pass {
  background:var(--navy);
  border-radius:8px;
  color:white;
  padding:2rem;
  transform:rotate(3deg);
  box-shadow:0 14px 40px #10213015;
  max-width:530px
}
.pass-top {
  font-size:.75rem;
  letter-spacing:.06em;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  color:#c1d1d8
}
.pass-top>span {
  font-size:1.8rem;
  color:var(--lime)
}
.event-pass h3 {
  font-size:clamp(2.2rem,3.7vw,3.4rem);
  margin:2rem 0;
  line-height:1.1
}
.event-pass h3 em {
  font-weight:400
}
.pass-meta {
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem;
  align-items:center;
  padding-bottom:1.6rem;
  font-size:1.1rem
}
.pass-meta strong {
  display:block;
  font-size:.875rem;
  font-weight:400;
  color:#b9cdd8
}
.event-pass .pill {
  font-size:.7rem;
  color:var(--lime);
  border-color:#d5f86a77
}
.pass-bottom {
  border-top:1px dashed #ffffff44;
  padding-top:1rem;
  font-size:.8rem;
  color:#bfd0d9
}
.next-steps {
  margin-top:5rem
}
.next-steps .section-heading {
  margin-bottom:2.5rem
}
.next-steps h2 {
  font-size:2rem
}
.next-steps .section-heading>span {
  font-size:1rem;
  color:var(--muted)
}
.timeline {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:2rem
}
.timeline article {
  position:relative;
  border-top:1px solid #cbd8cd;
  padding-top:1.8rem
}
.timeline article>span {
  display:flex;
  align-items:center;
  justify-content:center;
  position:absolute;
  top:-17px;
  left:0;
  width:34px;
  height:34px;
  border-radius:50%;
  background:#e7efe3;
  font-size:.75rem;
  border:5px solid #fcfdfb
}
.timeline article.current>span {
  background:var(--lime)
}
.timeline h3 {
  font-size:1.2rem;
  margin-bottom:.7rem;
  letter-spacing:-.025em
}
.timeline p {
  font-size:.9rem;
  color:var(--muted);
  line-height:1.7
}
.timeline small {
  display:block;
  font-size:.75rem;
  letter-spacing:.07em;
  margin-top:1rem;
  color:#607664
}
.engagement-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.5rem;
  margin-top:4rem
}
.needs-card,.reveal-card {
  padding:2rem;
  border-radius:7px;
  background:#f0f5e9;
  min-width:0
}
.engagement-grid .eyebrow {
  font-size:.75rem;
  color:#4b6448;
  margin-bottom:1.2rem
}
.engagement-grid h2 {
  font-size:clamp(1.8rem,2.7vw,2.4rem);
  line-height:1.2;
  margin-bottom:1rem
}
.engagement-grid p {
  font-size:1rem;
  color:#566e50;
  line-height:1.8
}
.needs-options {
  margin:1.5rem 0
}
.needs-options label {
  display:flex;
  gap:.6rem;
  align-items:center;
  font-size:.95rem;
  background:#fff;
  border:1px solid #d5e0ce;
  border-radius:5px;
  padding:.85rem .8rem;
  margin-bottom:.65rem;
  cursor:pointer
}
.needs-options input {
  accent-color:#446128;
  width:18px;
  height:18px;
  flex-shrink:0
}
.needs-options label:has(input:checked) {
  border-color:#8fab64;
  background:#f9fced
}
.needs-card .button {
  font-size:.95rem
}
.reveal-card {
  background:var(--navy);
  color:white
}
.reveal-card .eyebrow {
  color:#b9cdd0
}
.reveal-card p {
  color:#b9cdd4
}
.reveal-date {
  border-top:1px solid #ffffff30;
  border-bottom:1px solid #ffffff30;
  display:flex;
  gap:1.6rem;
  align-items:center;
  padding:1.5rem 0;
  margin:1.7rem 0
}
.reveal-date strong {
  font-size:2.8rem;
  color:var(--lime);
  font-weight:500;
  letter-spacing:-.045em
}
.reveal-date span {
  font-size:1rem;
  color:#bdcfd6
}
.reveal-card>label {
  font-size:.95rem;
  margin-bottom:.7rem;
  display:block
}
.vote-row {
  display:flex;
  border:1px solid #8199a6;
  border-radius:5px;
  overflow:hidden
}
.vote-row input {
  min-width:0;
  width:100%;
  flex:1;
  background:transparent;
  padding:.85rem;
  color:white;
  border:0;
  font-size:1rem;
  min-height:54px
}
.vote-row input::placeholder {
  color:#c3cdd2
}
.vote-row button {
  width:54px;
  flex-shrink:0;
  background:var(--lime);
  font-size:1.5rem;
  color:var(--navy)
}
.reveal-card form small {
  font-size:.8rem;
  color:#afc4ce;
  display:block;
  margin-top:.65rem
}
.feedback {
  font-size:.9rem!important;
  margin-top:1rem!important
}
.feedback:empty {
  display:none
}
.thanks-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:2rem;
  margin-top:3rem;
  border-top:1px solid var(--line);
  padding-top:2rem
}
.thanks-bottom p {
  font-size:.9rem;
  color:var(--muted);
  line-height:1.8
}
.thanks-bottom strong {
  font-weight:600;
  color:#335341
}
.thanks-bottom a {
  font-size:.9rem;
  flex-shrink:0
}
@media(min-width:1700px) {
  .process {
    padding-left:max(var(--space),calc((100vw - 1420px)/2));
    padding-right:max(var(--space),calc((100vw - 1420px)/2))
  }
}
@media(max-width:1050px) {
  .desktop-nav {
    gap:1rem;
    font-size:.8rem
  }
  .nav-inner {
    gap:1rem
  }
  .nav .logo {
    font-size:1.5rem
  }
  .nav .button {
    font-size:.8rem;
    padding:.7rem .85rem;
    gap:.6rem
  }
  .benefit-grid article {
    padding:1.5rem
  }
  .section-heading {
    display:block
  }
  .section-heading>p {
    margin-top:1.5rem
  }
  .guest-grid {
    gap:2rem
  }
  .content-symbol {
    display:none
  }
  .content-banner {
    flex-wrap:wrap
  }
  .content-banner .button {
    margin-left:0
  }
  .registration {
    grid-template-columns:.8fr 1.2fr
  }
  .registration-aside {
    padding:2.5rem 1.7rem
  }
  .form-area {
    padding:2.5rem 1.7rem
  }
  .thanks-top {
    gap:2.7rem
  }
  .footer-links {
    flex-wrap:wrap;
    gap:.4rem 1rem
  }
  .event-strip {
    flex-wrap:wrap
  }
  .event-strip>div:first-child {
    width:100%
  }
}
@media(max-width:800px) {
  :root {
    --header:4.5rem
  }
  .desktop-nav {
    display:none
  }
  .menu-toggle {
    display:flex
  }
  .nav-inner {
    padding:.7rem 1.2rem
  }
  .nav .logo {
    font-size:1.55rem
  }
  .nav .brand-mark {
    width:1.65rem;
    height:1.65rem;
    font-size:1.8rem
  }
  .nav .button {
    font-size:.8rem;
    padding:.65rem .8rem;
    min-height:44px
  }
  .nav .button>span {
    display:none
  }
  .hero {
    margin:.6rem .6rem 0;
    min-height:800px;
    display:block
  }
  .hero-photo {
    inset:0;
    top:48%
  }
  .hero-photo img {
    object-position:64% center
  }
  .hero-shade {
    background:linear-gradient(180deg,#102130 0%,#102130 31%,#102130ee 46%,#10213080 65%,#10213022 80%,#102130dd 100%)
  }
  .hero-content {
    padding:2.25rem 1.4rem 2rem
  }
  .hero h1 {
    font-size:clamp(2.55rem,6.4vw,3.65rem);
    line-height:1.1;
    margin:1.5rem 0 1.1rem
  }
  .event-tag {
    font-size:.7rem;
    letter-spacing:.04em;
    gap:.5rem
  }
  .hero p {
    font-size:1rem;
    line-height:1.7;
    max-width:520px
  }
  .hero p br {
    display:none
  }
  .hero-actions {
    gap:.6rem 1.4rem;
    margin-top:1.5rem
  }
  .hero-actions .button {
    font-size:.9rem;
    padding:1rem 1.05rem
  }
  .hero-note {
    font-size:.75rem;
    line-height:1.5;
    gap:.3rem .8rem;
    margin-top:.8rem
  }
  .image-caption {
    bottom:1.4rem;
    left:1.4rem;
    right:1.4rem;
    font-size:.8rem
  }
  .image-caption small {
    font-size:.75rem
  }
  .stand-callout {
    display:none
  }
  .event-strip {
    padding:1.8rem var(--space);
    gap:1.2rem
  }
  .event-strip>div:first-child {
    width:100%
  }
  .event-strip strong {
    font-size:1rem
  }
  .event-strip>div:first-child strong {
    font-size:1.5rem
  }
  .event-strip a {
    font-size:.85rem;
    min-height:44px
  }
  .section {
    padding:3.8rem var(--space)
  }
  .section-heading {
    margin-bottom:2rem
  }
  .section-heading>p {
    font-size:1rem;
    line-height:1.75
  }
  .section-heading>p br {
    display:none
  }
  .benefit-grid {
    grid-template-columns:1fr;
    gap:1rem
  }
  .benefit-grid article {
    padding:1.7rem
  }
  .benefit-grid h3 {
    font-size:1.7rem
  }
  .benefit-grid h3 br {
    display:none
  }
  .line-icon {
    margin-bottom:1.3rem
  }
  .card-index {
    margin-bottom:1rem
  }
  .process {
    grid-template-columns:1fr;
    gap:2.8rem
  }
  .process-intro>p {
    font-size:1rem
  }
  .steps article {
    gap:1rem;
    padding:1.4rem 0
  }
  .steps h3 {
    font-size:1.35rem
  }
  .guest-grid {
    grid-template-columns:1fr;
    gap:1.5rem
  }
  .guest-feature {
    padding:1.8rem
  }
  .guest-typography {
    font-size:2.4rem;
    margin:2.5rem 0
  }
  .guest-info h3 {
    font-size:1.9rem
  }
  .guest-info {
    padding:1rem 0 0
  }
  .content-banner {
    margin:0 var(--space);
    padding:1.6rem;
    gap:1.5rem
  }
  .content-banner h2 {
    font-size:1.6rem
  }
  .content-banner p {
    font-size:1rem
  }
  .faq {
    grid-template-columns:1fr;
    gap:2rem
  }
  .faq h2 br {
    display:none
  }
  .faq details {
    padding:1.2rem 0
  }
  .closing {
    padding:3.5rem 1.4rem
  }
  .closing h2 {
    font-size:2rem
  }
  .closing h2 br {
    display:none
  }
  .closing .button {
    font-size:.9rem;
    padding:1rem
  }
  .closing>p {
    font-size:.8rem
  }
  footer {
    display:block;
    padding:2rem var(--space)
  }
  .footer-links {
    margin-top:1rem;
    gap:.3rem 1.4rem
  }
  .footer-links>span {
    display:block;
    width:100%;
    padding-top:.6rem
  }
  .registration {
    grid-template-columns:1fr
  }
  .registration-aside {
    padding:1.7rem var(--space) 2rem
  }
  .back-link {
    margin-bottom:1.4rem
  }
  .registration-aside .eyebrow {
    font-size:.75rem;
    margin-bottom:1rem
  }
  .registration-aside h1 {
    font-size:2.35rem;
    margin-bottom:1rem
  }
  .registration-aside h1 br:first-child {
    display:none
  }
  .registration-aside h1 br:first-child:after {
    content:' '
  }
  .registration-aside>p {
    font-size:1rem
  }
  .included {
    display:none
  }
  .aside-bottom {
    margin-top:1.5rem;
    padding-top:1.2rem;
    gap:1.5rem
  }
  .price {
    font-size:2.3rem
  }
  .price small {
    font-size:.75rem
  }
  .aside-bottom p {
    font-size:.8rem
  }
  .aside-image {
    display:none
  }
  .form-area {
    padding:2.5rem var(--space)
  }
  .form-topline {
    font-size:.75rem
  }
  .form-area h2 {
    font-size:2.25rem
  }
  .form-lead {
    margin-bottom:1.8rem
  }
  .fields {
    gap:1rem .8rem
  }
  .field label {
    font-size:.875rem
  }
  .field input {
    font-size:1rem;
    padding:.8rem .7rem
  }
  .participation {
    margin-top:1.6rem
  }
  .choice {
    padding:.9rem .8rem
  }
  .choice strong {
    font-size:.95rem
  }
  .choice small {
    font-size:.875rem
  }
  .contact-options {
    gap:.3rem 1rem
  }
  .contact-options legend {
    font-size:.95rem
  }
  .consents label {
    font-size:.875rem
  }
  .form-fine {
    font-size:.75rem
  }
  .thanks {
    padding:2.5rem var(--space)
  }
  .thanks-top {
    grid-template-columns:1fr;
    gap:2.5rem
  }
  .thanks h1 {
    font-size:2.2rem
  }
  .thanks .eyebrow {
    font-size:.75rem
  }
  .thanks-top p {
    font-size:1rem
  }
  .thanks-top p br {
    display:none
  }
  .event-pass {
    max-width:440px;
    width:calc(100% - 14px);
    margin:auto;
    padding:1.5rem;
    transform:rotate(2deg)
  }
  .event-pass h3 {
    font-size:2.6rem
  }
  .pass-top {
    font-size:.7rem
  }
  .pass-meta {
    font-size:1rem
  }
  .pass-bottom {
    font-size:.75rem
  }
  .next-steps {
    margin-top:3.5rem
  }
  .next-steps .section-heading>span {
    display:block;
    margin-top:1rem;
    font-size:.9rem
  }
  .next-steps h2 {
    font-size:1.8rem
  }
  .timeline {
    grid-template-columns:1fr 1fr;
    gap:2.5rem 1.3rem
  }
  .timeline h3 {
    font-size:1.1rem
  }
  .timeline p {
    font-size:.875rem
  }
  .timeline small {
    font-size:.7rem
  }
  .engagement-grid {
    grid-template-columns:1fr;
    gap:1.2rem;
    margin-top:3rem
  }
  .needs-card,.reveal-card {
    padding:1.6rem
  }
  .engagement-grid h2 {
    font-size:1.9rem
  }
  .engagement-grid .eyebrow {
    font-size:.7rem
  }
  .engagement-grid p {
    font-size:1rem
  }
  .needs-options label {
    font-size:.9rem
  }
  .reveal-date {
    gap:1.3rem
  }
  .reveal-date strong {
    font-size:2.6rem
  }
  .reveal-date span {
    font-size:.9rem
  }
  .reveal-card>label {
    font-size:.95rem
  }
  .vote-row input {
    font-size:1rem
  }
  .thanks-bottom {
    display:block;
    margin-top:2rem;
    padding-top:1.5rem
  }
  .thanks-bottom a {
    margin-top:1rem
  }
  .thanks-bottom p {
    font-size:.875rem
  }
}
@media(max-width:420px) {
  .hero {
    min-height:860px
  }
  .hero h1 {
    font-size:2.55rem
  }
  .hero-actions {
    display:block
  }
  .hero-actions .button {
    width:100%;
    font-size:.875rem;
    gap:.6rem
  }
  .hero-actions .plain-link {
    margin-top:.6rem
  }
  .hero-photo {
    top:48%
  }
  .hero-content {
    padding:2rem 1.25rem
  }
  .nav-actions {
    gap:.5rem
  }
  .nav .logo {
    font-size:1.4rem
  }
  .nav .brand-mark {
    width:1.5rem;
    height:1.5rem;
    font-size:1.6rem
  }
  .nav .button {
    font-size:.75rem;
    padding:.6rem .65rem
  }
  .menu-toggle {
    width:40px;
    height:44px
  }
  .nav-inner {
    gap:.6rem;
    padding:.7rem 1rem
  }
  .nav-event {
    font-size:.7rem;
    max-width:110px;
    text-align:right
  }
  .event-strip>div:not(:first-child) {
    max-width:100%
  }
  .fields {
    grid-template-columns:1fr
  }
  .field.full {
    grid-column:auto
  }
  .guest-bottom {
    align-items:flex-start
  }
  .guest-typography {
    font-size:2.15rem
  }
  .registration-aside h1 {
    font-size:2.1rem
  }
  .socials {
    grid-template-columns:1fr
  }
  .pass-meta {
    display:block
  }
  .pass-meta .pill {
    margin-top:.8rem
  }
  .needs-card,.reveal-card {
    padding:1.3rem
  }
  .form-area {
    padding-top:2rem
  }
  .form-topline {
    font-size:.7rem
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  .button {
    transition:none
  }
}
/* Dostępność formularza i podpis wykonawcy */
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.required-note {
  font-size:.875rem;
  color:#42594b;
  margin:0 0 1.25rem;
  line-height:1.7
}
.required-mark {
  color:#8b3024;
  font-weight:700
}
.required-label {
  display:block;
  font-size:.8125rem;
  font-weight:600;
  color:#42594b;
  margin-top:.2rem
}
.contact-hint {
  flex-basis:100%;
  font-size:.875rem;
  color:#42594b;
  margin:0 0 .25rem
}
.preview-note {
  padding:.9rem 1rem;
  border-left:3px solid #89a940;
  background:#f1f7e7;
  color:#30452c;
  font-size:.875rem;
  line-height:1.65;
  margin:0 0 1.5rem
}
.rae-credit {
  white-space:nowrap
}
.rae-credit strong {
  color:var(--navy);
  letter-spacing:.08em
}
.footer-links {
  flex-wrap:wrap
}
@media(max-width:420px) {
  .nav-inner {
    flex-wrap:wrap
  }
  .form-topline {
    flex-wrap:wrap
  }
  .hero h1 {
    font-size:clamp(2.05rem,10.5vw,2.55rem)
  }
  .timeline {
    grid-template-columns:1fr
  }
  .button {
    white-space:normal
  }
}
