/* ===== RESET & BASE ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --cream:      #F5F0E8;
  --cream-mid:  #EDE5D0;
  --brown-dark: #2C2416;
  --brown-mid:  #4A3728;
  --brown-warm: #5C4A32;
  --copper:     #8B5E3C;
  --gold:       #E8A030;
  --text-light: #C8B898;
}

html { scroll-behavior: smooth; }

body {
  font-family: 'Lato', sans-serif;
  background: var(--cream);
  color: var(--brown-dark);
}

/* ===== NAVBAR ===== */
.navbar {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--brown-mid);
  padding: 14px 36px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 2px 12px rgba(0,0,0,0.3);
}

.nav-logo {
  font-family: 'Playfair Display', serif;
  color: #E8D5A3;
  font-size: 18px;
  letter-spacing: 0.3px;
}

.nav-links {
  display: flex;
  gap: 24px;
  align-items: center;
}

.nav-links a {
  color: var(--text-light);
  font-size: 12px;
  text-decoration: none;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-weight: 700;
  transition: color 0.2s;
}

.nav-links a:hover { color: #E8D5A3; }

.nav-links .nav-apply {
  background: var(--gold);
  color: #1A0800;
  padding: 7px 16px;
  border-radius: 2px;
  box-shadow: 0 0 0 2px rgba(232,160,48,0.3);
}

.nav-links .nav-apply:hover { background: #F0B040; color: #1A0800; }

/* ===== HERO ===== */
.hero {
  width: 100%;
  overflow: hidden;
  line-height: 0;
}

.hero-svg {
  width: 100%;
  height: auto;
  display: block;
}

/* SVG Animations */
.s1 { animation: twinkle  2.8s ease-in-out infinite; }
.s2 { animation: twinkle2 3.6s 0.9s ease-in-out infinite; }
.s3 { animation: twinkle  4.1s 1.7s ease-in-out infinite; }
.s4 { animation: twinkle2 2.3s 0.4s ease-in-out infinite; }
.s5 { animation: twinkle  5.0s 2.2s ease-in-out infinite; }
.tr1 { transform-origin: center bottom; animation: sway  4.5s ease-in-out infinite; }
.tr2 { transform-origin: center bottom; animation: sway2 5.2s 0.8s ease-in-out infinite; }
.tr3 { transform-origin: center bottom; animation: sway  3.8s 1.4s ease-in-out infinite; }
.tr4 { transform-origin: center bottom; animation: sway2 4.2s 0.3s ease-in-out infinite; }
.f1  { animation: flicker  4.2s ease-in-out infinite; }
.f2  { animation: flicker2 5.5s 1.2s ease-in-out infinite; }
.f3  { animation: flicker3 3.8s 2.0s ease-in-out infinite; }
.b1  { animation: bob  3.2s ease-in-out infinite; }
.b2  { animation: bob2 3.8s 0.5s ease-in-out infinite; }
.b3  { animation: bob  4.1s 1.0s ease-in-out infinite; }
.b4  { animation: bob2 3.5s 1.5s ease-in-out infinite; }
.b5  { animation: bob  4.5s 0.8s ease-in-out infinite; }
.b6  { animation: bob2 3.3s 2.0s ease-in-out infinite; }

@keyframes twinkle  { 0%,100%{opacity:1}    50%{opacity:0.1} }
@keyframes twinkle2 { 0%,100%{opacity:0.75} 50%{opacity:0.1} }
@keyframes sway     { 0%,100%{transform:rotate(-1.5deg)} 50%{transform:rotate(1.5deg)} }
@keyframes sway2    { 0%,100%{transform:rotate(1.2deg)}  50%{transform:rotate(-1.8deg)} }
@keyframes flicker  { 0%,100%{opacity:1}    40%{opacity:0.5}  55%{opacity:0.95} 80%{opacity:0.45} }
@keyframes flicker2 { 0%,100%{opacity:0.95} 25%{opacity:0.4}  60%{opacity:1}   82%{opacity:0.4}  }
@keyframes flicker3 { 0%,100%{opacity:1}    35%{opacity:0.55} 70%{opacity:0.9} 90%{opacity:0.4}  }
@keyframes bob      { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes bob2     { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-1.5px)} }

/* ===== ABOUT SECTION ===== */
.about {
  padding: 48px 48px 36px;
  max-width: 860px;
}

.section-label {
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--copper);
  font-weight: 700;
  margin-bottom: 10px;
}

.about h2 {
  font-family: 'Playfair Display', serif;
  font-size: 28px;
  color: var(--brown-dark);
  margin-bottom: 16px;
}

.about p {
  color: var(--brown-warm);
  font-size: 15px;
  line-height: 1.85;
}

/* ===== CARDS ===== */
.cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  padding: 0 48px 48px;
}

.card {
  background: var(--cream-mid);
  border-radius: 4px;
  padding: 22px;
  border-left: 3px solid var(--copper);
}

.card-icon { font-size: 22px; margin-bottom: 10px; }

.card h3 {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  color: var(--brown-dark);
  margin-bottom: 8px;
}

.card p {
  font-size: 13px;
  color: var(--brown-warm);
  line-height: 1.7;
}

/* ===== LOCATION ===== */
.location {
  background: var(--cream-mid);
  padding: 48px;
}

.location h2 {
  font-family: 'Playfair Display', serif;
  font-size: 26px;
  color: var(--brown-dark);
  margin-bottom: 12px;
}

.location p {
  color: var(--brown-warm);
  font-size: 15px;
  line-height: 1.8;
}

/* ===== APPLY BAND ===== */
.apply-band {
  background: var(--brown-mid);
  padding: 36px 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.apply-band-text h2 {
  font-family: 'Playfair Display', serif;
  color: #F5F0E8;
  font-size: 24px;
  margin-bottom: 6px;
}

.apply-band-text p {
  color: var(--text-light);
  font-size: 14px;
}

.apply-btn {
  display: inline-block;
  background: var(--gold);
  color: #1A0800;
  text-decoration: none;
  padding: 14px 32px;
  font-family: 'Lato', sans-serif;
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 700;
  border-radius: 3px;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 0 0 3px rgba(232,160,48,0.35), 0 4px 16px rgba(0,0,0,0.3);
  transition: background 0.2s, transform 0.1s;
}

.apply-btn:hover { background: #F0B040; transform: translateY(-1px); }

/* ===== FOOTER ===== */
footer {
  background: var(--brown-dark);
  padding: 22px 48px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

footer p { color: #6B5840; font-size: 12px; }

.footer-logo {
  font-family: 'Playfair Display', serif;
  color: #E8D5A3;
  font-size: 14px;
}

/* ===== APPLY PAGE ===== */
.apply-header {
  background: #3D3020;
  padding: 32px 48px;
}

.apply-header .section-label { color: #B8A882; margin-bottom: 8px; }

.apply-header h1 {
  font-family: 'Playfair Display', serif;
  color: #F5F0E8;
  font-size: 26px;
  margin-bottom: 10px;
}

.apply-header p {
  color: #B8A882;
  font-size: 14px;
  line-height: 1.75;
  max-width: 680px;
}

.apply-form-wrap {
  padding: 36px 48px 48px;
  max-width: 860px;
}

.form-section-label {
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--copper);
  font-weight: 700;
  margin-bottom: 14px;
  margin-top: 28px;
  padding-bottom: 6px;
  border-bottom: 1px solid #D8CEBC;
}

.form-section-label:first-child { margin-top: 0; }

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 4px;
}

.form-grid .full { grid-column: 1 / -1; }

.form-group label {
  display: block;
  font-size: 12px;
  color: var(--brown-warm);
  margin-bottom: 5px;
  font-weight: 700;
  letter-spacing: 0.3px;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid #C8B898;
  border-radius: 2px;
  background: var(--cream-mid);
  color: var(--brown-dark);
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--copper);
  box-shadow: 0 0 0 3px rgba(139,94,60,0.15);
}

.form-group textarea { height: 80px; resize: vertical; }

.info-box {
  background: var(--cream-mid);
  border-left: 3px solid var(--copper);
  padding: 18px 20px;
  border-radius: 2px;
  margin: 24px 0;
  font-size: 13px;
  color: var(--brown-warm);
  line-height: 1.85;
}

.info-box strong { color: var(--brown-dark); }

.checkboxes {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin: 24px 0;
}

.checkboxes label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  color: var(--brown-dark);
  cursor: pointer;
  line-height: 1.6;
}

.checkboxes input[type="checkbox"] {
  margin-top: 3px;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  accent-color: var(--copper);
  cursor: pointer;
}

.submit-btn {
  width: 100%;
  padding: 16px;
  background: var(--gold);
  color: #1A0800;
  border: none;
  font-family: 'Lato', sans-serif;
  font-size: 15px;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 700;
  border-radius: 3px;
  cursor: pointer;
  box-shadow: 0 0 0 3px rgba(232,160,48,0.3), 0 4px 16px rgba(0,0,0,0.2);
  transition: background 0.2s, transform 0.1s;
  margin-top: 8px;
}

.submit-btn:hover { background: #F0B040; transform: translateY(-1px); }
.submit-btn:disabled { background: #C8A070; cursor: not-allowed; transform: none; }

.form-note {
  font-size: 13px;
  color: #8B6A4A;
  text-align: center;
  margin-top: 14px;
  line-height: 1.7;
}

.form-message {
  display: none;
  padding: 16px 20px;
  border-radius: 3px;
  font-size: 14px;
  margin-top: 16px;
  line-height: 1.6;
}

.form-message.success {
  display: block;
  background: #D4EDDA;
  border: 1px solid #A8D5B5;
  color: #1A4A28;
}

.form-message.error {
  display: block;
  background: #FDECEA;
  border: 1px solid #F5C6CB;
  color: #6A1A1A;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 640px) {
  .navbar { padding: 12px 20px; }
  .nav-logo { font-size: 15px; }
  .nav-links { gap: 14px; }
  .nav-links a { font-size: 11px; letter-spacing: 1px; }

  .about, .apply-header, .apply-form-wrap { padding-left: 20px; padding-right: 20px; }

  .cards { grid-template-columns: 1fr; padding: 0 20px 36px; gap: 12px; }
  .location { padding: 36px 20px; }
  .apply-band { flex-direction: column; align-items: flex-start; padding: 28px 20px; }
  footer { flex-direction: column; gap: 8px; padding: 20px; text-align: center; }

  .form-grid { grid-template-columns: 1fr; }
  .form-grid .full { grid-column: 1; }
}
