
/* NFC PAL WEB-1.3-R2: additive public-page styling */

.feature-card-link {
  display: block;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease;
}
.feature-card-link:hover,
.feature-card-link:focus-visible {
  transform: translateY(-10px);
  box-shadow: 0 28px 65px rgba(26,91,185,.19);
  border-color: rgba(37,133,255,.6);
}
.feature-card-link:focus-visible {
  outline: 3px solid #20d6f3;
  outline-offset: 4px;
}

.public-page {
  overflow: clip;
  background: #f4f8fd;
}

.public-hero {
  position: relative;
  padding: 170px 0 115px;
  background:
    radial-gradient(
      ellipse at 80% 40%,
      #163b6c 0%,
      #081a30 48%,
      #06111f 100%
    );
  color: #fff;
}
.public-hero-inner {
  position: relative;
  min-height: 390px;
}
.public-eyebrow {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .19em;
  color: #3dcfe3;
}
.public-hero h1 {
  max-width: 850px;
  font-size: clamp(46px, 6vw, 84px);
  letter-spacing: -.065em;
  line-height: 1.07;
  margin: 28px 0;
}
.public-hero h1 span { color: #25d8e9; }
.public-hero p {
  max-width: 650px;
  color: #b4c6da;
  font-size: 19px;
  line-height: 1.8;
}
.public-step-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 35px;
}
.public-step-links a {
  display: inline-block;
  padding: 12px 18px;
  border-radius: 100px;
  background: #142842;
  border: 1px solid #395572;
  color: #fff;
  text-decoration: none;
}
.public-step-links a:hover {
  border-color: #29d6e5;
  background: #1b395a;
}
.public-hero-orbit {
  position: absolute;
  right: 35px;
  top: 10px;
  width: 270px;
  height: 270px;
  pointer-events: none;
}
.public-orbit-circle {
  position: absolute;
  inset: 10px;
  border-radius: 50%;
  border: 1px solid #28c8f044;
  box-shadow:
    0 0 0 45px #28c8f009,
    0 0 0 90px #28c8f006;
}
.public-orbit-core {
  position: absolute;
  inset: 80px;
  display: grid;
  place-items: center;
  border-radius: 30px;
  background: linear-gradient(135deg,#246aff,#28dec9);
  font-size: 55px;
  font-weight: 900;
  box-shadow: 0 25px 70px #00d9ed44;
  animation: publicFloat 5s ease-in-out infinite;
}
.public-orbit-core span { font-size: 20px; }
.public-orbit-tag,
.public-floating-status {
  position: absolute;
  border-radius: 14px;
  padding: 12px 17px;
  background: #132943;
  border: 1px solid #395572;
  color: #d6efff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
  box-shadow: 0 15px 35px #0003;
}
.public-tag-one { right: -35px; top: 15px; }
.public-tag-two { left: -55px; bottom: 15px; }

.public-step-section {
  padding: 120px 0;
  scroll-margin-top: 25px;
}
.public-step-alt { background: #eaf2fc; }
.public-step-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 85px;
  align-items: center;
}
.public-step-copy h2 {
  color: #071426;
  font-size: clamp(42px, 5vw, 68px);
  letter-spacing: -.06em;
  line-height: 1.1;
  margin: 20px 0 28px;
}
.public-step-copy p,
.public-contact-copy p {
  font-size: 17px;
  line-height: 1.85;
  color: #60738d;
}
.public-checklist {
  display: grid;
  gap: 15px;
  margin-top: 30px;
}
.public-checklist div {
  font-weight: 650;
  color: #173451;
}
.public-checklist div::before {
  content: "✓";
  margin-right: 12px;
  color: #05ac9c;
}
.public-visual {
  position: relative;
  min-height: 430px;
  padding: 50px;
  border-radius: 36px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  background:
    radial-gradient(circle at 70% 20%,#1a447c,#07182b 75%);
  color: #fff;
  box-shadow: 0 35px 85px #12396833;
}
.public-visual-label {
  font-size: 11px;
  letter-spacing: .2em;
  color: #a5bad2;
}
.public-nfc-icon,
.public-success-icon {
  width: 150px;
  height: 150px;
  border-radius: 35px;
  margin: 45px 0 30px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg,#2770ff,#28e0c7);
  font-size: 75px;
  font-weight: 900;
  box-shadow: 0 20px 60px #21d8ed44;
  animation: publicFloat 5s ease-in-out infinite;
}
.public-nfc-icon span { font-size: 24px; }
.public-visual strong { font-size: 25px; }
.public-visual small {
  margin-top: 12px;
  color: #a5bad2;
  font-size: 14px;
}
.public-floating-status {
  right: -12px;
  bottom: 35px;
}
.public-qr-symbol {
  width: 165px;
  height: 165px;
  margin: 45px 0 30px;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 10px;
}
.public-qr-symbol i {
  border-radius: 7px;
  background: #2cdbcf;
}
.public-qr-symbol i:nth-child(2n) {
  background: #2970ff;
}
.public-qr-symbol i:nth-child(5) {
  background: transparent;
  border: 7px solid #2cdbcf;
}

.public-bottom-section { padding: 85px 0; }
.public-bottom-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 35px;
  border-radius: 35px;
  background: linear-gradient(135deg,#246aff,#1551ca);
  color: #fff;
  padding: 65px;
}
.public-bottom-panel h2 {
  font-size: clamp(30px, 4vw, 46px);
  letter-spacing: -.05em;
}
.public-bottom-panel p { color: #d2e2ff; }

.public-contact-hero { padding-bottom: 100px; }
.public-contact-section { padding: 100px 0; }
.public-contact-grid {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 80px;
}
.public-contact-copy h2 {
  font-size: clamp(38px, 4vw, 60px);
  color: #071426;
  letter-spacing: -.06em;
}
.public-email-panel {
  display: grid;
  gap: 12px;
  padding: 25px;
  margin-top: 35px;
  border-radius: 20px;
  border: 1px solid #d8e4f0;
}
.public-email-panel a {
  color: #155dca;
  overflow-wrap: anywhere;
}
.public-form-panel {
  padding: 42px;
  background: #fff;
  border: 1px solid #dce6f1;
  border-radius: 32px;
  box-shadow: 0 30px 80px #153c7015;
}
.public-form-panel h2 {
  font-size: 38px;
  color: #071426;
}
.public-form-panel form {
  display: grid;
  gap: 20px;
  margin-top: 30px;
}
.public-form-panel label {
  display: grid;
  gap: 9px;
  color: #19344e;
  font-weight: 700;
}
.public-form-panel input,
.public-form-panel select,
.public-form-panel textarea {
  display: block;
  width: 100%;
  padding: 14px 16px;
  border: 1px solid #cdd9e6;
  border-radius: 12px;
  background: #f8fbff;
  color: #071426;
  font: inherit;
}
.public-form-panel input:focus,
.public-form-panel select:focus,
.public-form-panel textarea:focus {
  outline: 2px solid #2679f7;
  outline-offset: 1px;
}
.public-form-panel button:disabled {
  opacity: .55;
  cursor: not-allowed;
}
.public-form-notice,
.public-form-help {
  color: #667a91;
  line-height: 1.7;
}
.public-form-help { font-size: 13px; }

@keyframes publicFloat {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-13px); }
}

@media (max-width: 1100px) {
  .public-hero-orbit { opacity: .25; }
  .public-step-grid { gap: 40px; }
}
@media (max-width: 760px) {
  .public-hero { padding: 135px 0 75px; }
  .public-hero-inner { min-height: auto; }
  .public-hero-orbit { display: none; }
  .public-step-grid,
  .public-contact-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .public-step-section { padding: 75px 0; }
  .public-visual { min-height: 350px; }
  .public-floating-status { right: 10px; }
  .public-bottom-panel {
    flex-direction: column;
    align-items: flex-start;
    padding: 35px;
  }
  .public-form-panel { padding: 25px; }
}
@media (prefers-reduced-motion: reduce) {
  .public-orbit-core,
  .public-nfc-icon,
  .public-success-icon {
    animation: none;
  }
  .feature-card-link { transition: none; }
}
