/* ===== Base ===== */
* { box-sizing: border-box; }
html, body { height: 100%; margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,"Helvetica Neue",sans-serif; color:#333; background:#fff; }

/* ===== Navbar ===== */
.navbar { position:fixed; top:0; left:0; right:0; z-index:1000; display:flex; align-items:center; justify-content:flex-end; padding:0.75rem 1rem; background:#0077b6; transition: background .3s, box-shadow .3s; }
.hamburger { display:none; background:none; border:0; color:#fff; font-size:1.5rem; cursor:pointer; }
.nav-links { list-style:none; display:flex; gap:1rem; margin:0; padding:0; }
.nav-links a { text-decoration:none; color:#fff; font-weight:600; padding:.45rem .7rem; border-radius:8px; transition:background .2s; }
.nav-links a:hover { background: rgba(255,255,255,.15); }

/* ===== Dropdown ===== */
.nav-links li.dropdown { position: relative; }
.nav-links li.dropdown a { cursor: pointer; }
.nav-links li.dropdown .dropdown-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: #0077b6;
  border-radius: 8px;
  padding: 0.5rem 0;
  min-width: 160px;
  box-shadow: 0 8px 20px rgba(0,0,0,.2);
  z-index: 2000;
  flex-direction: column;
}
.nav-links li.dropdown .dropdown-menu li { width: 100%; }
.nav-links li.dropdown .dropdown-menu li a {
  display: block;
  padding: 0.5rem 1rem;
  color: #fff;
  font-weight: 500;
  text-transform: uppercase; /* <-- force uppercase for dropdown menu */
}
.nav-links li.dropdown .dropdown-menu li a:hover { background: rgba(255,255,255,.15); }

/* FIX: show all catalogue items correctly */
.nav-links li.dropdown:hover .dropdown-menu { display: block; }

/* ===== Hero ===== */
.hero { min-height:70vh; display:flex; align-items:flex-start; justify-content:center; position:relative; color:#fff; text-align:center; padding-top: calc(60px + 4vh); background-size:cover; background-position:center; }
.hero-text { position:relative; z-index:1; max-width:900px; padding:0 1rem; margin-top:6vh; }
.hero-text h1 { font-size:2.6rem; font-weight:800; margin:0 0 1.2rem; text-shadow:0 2px 12px rgba(0,0,0,.25); line-height:1.15; }
.hero-logo { position: absolute; bottom: 20px; right: 20px; max-width: 223px; height: auto; z-index: 10; }

/* ===== Hero CTA Buttons ===== */
.hero-cta-buttons {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
  margin-top: 2rem;
  flex-wrap: wrap;
}
.hero-cta-buttons .cta-btn {
  min-width: 140px;
  animation-name: pulse-hero;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}
.hero-cta-buttons .cta-btn:nth-child(1) { animation-duration: 1.5s; }
.hero-cta-buttons .cta-btn:nth-child(2) { animation-duration: 1.8s; }
.hero-cta-buttons .cta-btn:nth-child(3) { animation-duration: 2.1s; }

/* ===== Buttons ===== */
.cta-btn { background:#0077b6; color:#fff; font-weight:700; padding:.9rem 1.8rem; border-radius:12px; border:none; cursor:pointer; transition:all .25s ease; box-shadow:0 5px 15px rgba(0,0,0,.1); }
.cta-btn:hover { background:#00b4d8; color:#fff; }

/* ===== Pulse Animations ===== */
@keyframes pulse-hero {
  0% { transform: scale(1); box-shadow: 0 5px 15px rgba(0,180,216,0.3); }
  50% { transform: scale(1.05); box-shadow: 0 10px 25px rgba(0,180,216,0.4); }
  100% { transform: scale(1); box-shadow: 0 5px 15px rgba(0,180,216,0.3); }
}

/* ===== How it works ===== */
.how-it-works { padding:2rem 1rem 4rem; background:#f3f5f7; text-align:center; }
.hiw-grid { display:grid; gap:1.25rem; grid-template-columns:repeat(3, minmax(0, 1fr)); max-width:1100px; margin:0 auto; }
.hiw-card { background:#222; color:#fff; padding:2rem 1.6rem; border-radius:16px; box-shadow:0 8px 20px rgba(0,0,0,.06); transition:transform .2s, box-shadow .2s; text-align:center; }
.hiw-card:hover { transform:translateY(-3px); box-shadow:0 12px 28px rgba(0,0,0,.12); }
.hiw-card i { font-size:2rem; color:#00b4d8; margin-bottom:.75rem; display:block; }
.hiw-card h3 { margin:.2rem 0 .5rem; }
.hiw-card p { margin:0; color:#fff; font-size:0.95rem; line-height:1.45; }

/* ===== Footer ===== */
.footer { background:#222; color:#ddd; text-align:center; padding:2rem 1rem; }
.footer a { color:#00b4d8; text-decoration:none; }
.footer a:hover { text-decoration:underline; }

/* ===== Modals ===== */
.modal { display:none; position:fixed; inset:0; z-index:3000; background:rgba(0,0,0,.6); padding:1rem; overflow:auto; }
.modal-content { background:#222; color:#fff; margin:6% auto; max-width:560px; padding:1.6rem; border-radius:14px; position:relative; box-shadow:0 15px 35px rgba(0,0,0,.18); }
.close { position:absolute; top:12px; right:16px; font-size:1.6rem; cursor:pointer; color:#999; }
.close:hover { color:#fff; }
.modal-content h2, .modal-content h3 { margin:0 0 1rem; color:#00b4d8; }
.modal-content form { display:grid; gap:.9rem; }
.modal-content input, .modal-content select { width:100%; padding:.8rem .9rem; border:1px solid #444; border-radius:10px; font-size:1rem; background:#333; color:#fff; }
.modal-content input:focus { outline:2px solid rgba(0,180,216,.4); border-color:#00b4d8; }
.error-messages { color:#f08080; font-size:0.95rem; min-height:1.1em; }
.success { margin-top:1rem; padding:.9rem 1rem; background:#e7f7ef; color:#0a7f3f; border:1px solid #bfe9d2; border-radius:10px; }

/* ===== Checkbox Alignment Fix ===== */
.modal-content fieldset { display: flex; flex-direction: column; gap: 0.75rem; }
.modal-content fieldset label { display: flex; align-items: center; gap: 0.6rem; font-weight: 500; cursor: pointer; }
.modal-content fieldset input[type="checkbox"] { width: 18px; height: 18px; flex-shrink: 0; }

/* ===== Responsive ===== */
@media (max-width: 1100px) { .hiw-grid { grid-template-columns:repeat(3, 1fr); } }
@media (max-width: 900px) { .hiw-grid { grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 768px) {
  .hamburger { display:block; }
  .nav-links { display:none; position:absolute; top:56px; right:12px; background:#0077b6; border-radius:12px; padding:.6rem; box-shadow:0 14px 30px rgba(0,0,0,.12); flex-direction:column; gap:.35rem; width:min(88vw,320px); }
  .nav-links.show { display:flex; }
  .hiw-grid { grid-template-columns:1fr; max-width:600px; }
  .hero-text h1 { font-size:2rem; }
  .modal-content { width: 90%; max-width:400px; padding:1rem; }
  .hero-cta-buttons { gap:1rem; }
}
@media (max-width: 480px) {
  .hero-text h1 { font-size:1.6rem; }
  .hero-cta-buttons { flex-direction: column; gap:0.8rem; }
  .cta-btn { width:100%; min-width:auto; padding:.8rem 1rem; font-size:0.95rem; }
  .hiw-card { padding:1.5rem 1rem; font-size:0.9rem; }
}

/* ===== Hero Logo Responsive ===== */
@media (max-width: 768px) { .hero-logo { max-width: 120px; bottom: 15px; right: 15px; } }
@media (max-width: 480px) { .hero-logo { max-width: 80px; bottom: 10px; right: 10px; } }