/*
  Nikah-e-Mubarak information site.
  Deep green and gold on ivory, matching the full website. Logical
  properties are used so the layout mirrors correctly in Urdu.
*/

:root {
  --green-950: #0b2e24;
  --green-800: #134736;
  --green-600: #2a6b53;
  --green-100: #e4ede7;
  --gold: #b4882f;
  --gold-200: #ead9ae;
  --ivory: #faf7ef;
  --ink: #1c2621;
  --muted: #5a6a62;
  --line: #e2dccb;

  --font-head: "Amiri", "Times New Roman", serif;
  --font-body: "Mukta", "Segoe UI", system-ui, sans-serif;
  --font-urdu: "Noto Nastaliq Urdu", "Jameel Noori Nastaleeq", serif;
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23b4882f' stroke-width='1'%3E%3Crect x='20' y='20' width='24' height='24'/%3E%3Crect x='20' y='20' width='24' height='24' transform='rotate(45 32 32)'/%3E%3Ccircle cx='32' cy='32' r='5'/%3E%3Cpath d='M0 32h15M49 32h15M32 0v15M32 49v15'/%3E%3C/g%3E%3C/svg%3E");
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--ivory);
}

html[lang="ur"] body { font-family: var(--font-urdu); font-size: 16px; line-height: 2.2; }

h1, h2, h3 { font-family: var(--font-head); color: var(--green-950); line-height: 1.25; margin: 0 0 .5em; }
html[lang="ur"] h1, html[lang="ur"] h2, html[lang="ur"] h3 { font-family: var(--font-urdu); line-height: 1.9; }
p { margin: 0 0 1em; }
a { color: var(--green-600); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }

.wrap { width: min(1080px, 100% - 2rem); margin-inline: auto; }
.narrow { width: min(640px, 100% - 2rem); margin-inline: auto; }
.small { font-size: .9rem; }

.skip-link { position: absolute; inset-inline-start: -999px; top: 0; background: var(--gold); color: #fff; padding: .5rem 1rem; z-index: 50; }
.skip-link:focus { inset-inline-start: 1rem; }

/* Header */
.site-header { background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 10; }
.site-header .wrap { display: flex; align-items: center; gap: 1rem; min-height: 64px; flex-wrap: wrap; }
.brand { display: flex; align-items: center; gap: .55rem; text-decoration: none; color: var(--green-950); font-family: var(--font-head); font-size: 1.4rem; font-weight: 700; }
.brand svg { width: 30px; height: 30px; }
.nav { display: flex; gap: .25rem; margin-inline-start: auto; }
.nav a { text-decoration: none; color: var(--ink); padding: .35rem .7rem; border-radius: 8px; }
.nav a:hover { background: var(--green-100); }
.lang { display: flex; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; }
.lang button { font: inherit; font-size: .9rem; border: 0; background: transparent; padding: .3rem .8rem; cursor: pointer; color: var(--ink); }
.lang button[aria-pressed="true"] { background: var(--green-800); color: #fff; }
@media (max-width: 720px) {
  .site-header .wrap { flex-wrap: nowrap; gap: .5rem; }
  .nav { display: none; }
  .brand { font-size: 1.15rem; }
  .brand svg { width: 26px; height: 26px; }
  .lang { margin-inline-start: auto; }
  .lang button { padding: .3rem .55rem; font-size: .85rem; }
}

/* Buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  font: inherit; font-weight: 600; min-height: 48px; padding: .65rem 1.4rem;
  border-radius: 8px; border: 1px solid transparent; text-decoration: none; cursor: pointer;
  background: var(--green-800); color: #fff;
}
.btn:hover { background: var(--green-950); color: #fff; }
.btn-gold { background: var(--gold); }
.btn-gold:hover { background: #9a7326; }
.btn-light { background: var(--ivory); color: var(--green-950); }
.btn-light:hover { background: #fff; color: var(--green-950); }
.btn-ghost { background: transparent; color: var(--green-800); border-color: var(--green-800); }
.btn-ghost:hover { background: var(--green-100); color: var(--green-950); }

/* Hero arch: the one bold element on the page */
.hero { padding-block: 2.5rem 1rem; }
.arch {
  position: relative; overflow: hidden; text-align: center;
  width: min(760px, 100%); margin-inline: auto;
  border-radius: 380px 380px 18px 18px / 300px 300px 18px 18px;
  background: var(--green-950); color: var(--ivory);
  padding: clamp(4.5rem, 10vw, 7rem) clamp(1.25rem, 6vw, 4rem) clamp(2.5rem, 6vw, 3.5rem);
  box-shadow: 0 0 0 6px var(--ivory), 0 0 0 7px var(--gold);
}
.arch::before { content: ""; position: absolute; inset: 0; background-image: var(--pattern); background-size: 64px; opacity: .22; }
.arch > * { position: relative; }
.bismillah { font-family: "Amiri", serif; color: var(--gold-200); font-size: clamp(1.5rem, 4vw, 2.3rem); margin-bottom: 1.25rem; }
.arch h1 { color: #fff; font-family: var(--font-head); font-size: clamp(2.1rem, 8.5vw, 4.6rem); margin-bottom: .1em; line-height: 1.15; white-space: nowrap; }
/* The name stays in Latin script in every language, so it keeps the Latin heading style. */
html[lang="ur"] .arch h1 { font-family: var(--font-head); line-height: 1.15; }
.tagline { font-family: var(--font-head); font-style: italic; color: var(--gold-200); font-size: clamp(1.15rem, 2.6vw, 1.5rem); margin-bottom: 1.25rem; }
html[lang="ur"] .tagline { font-family: var(--font-urdu); font-style: normal; }
.lead { max-width: 46ch; margin: 0 auto 1rem; color: #dfe8e2; }
.status { max-width: 46ch; margin: 0 auto 1.75rem; color: var(--gold-200); font-size: .95rem; }
.actions { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; }
@media (prefers-reduced-motion: no-preference) {
  .arch { animation: rise .7s ease-out both; }
  @keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
}

/* Promises */
.promises { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem 2.5rem; padding-block: 3rem 1rem; }
.promises > div { border-top: 1px solid var(--line); padding-top: 1rem; }
.promises h2 { font-size: 1.3rem; }
.promises p { color: var(--muted); }
@media (max-width: 760px) { .promises { grid-template-columns: 1fr; } }

.section-title { text-align: center; font-size: clamp(1.6rem, 3vw, 2rem); margin-bottom: 2rem; }

/* Steps: a real sequence, so numbered */
.steps-band { padding-block: 2.5rem 1rem; }
.how-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; list-style: none; padding: 0; margin: 0; counter-reset: s; }
.how-steps li { counter-increment: s; position: relative; padding-top: 3.4rem; }
.how-steps li::before {
  content: counter(s); position: absolute; top: 0; inset-inline-start: 0; z-index: 1;
  width: 2.6rem; height: 2.6rem; display: grid; place-items: center;
  font-family: var(--font-head); font-size: 1.35rem; color: var(--green-950);
}
.how-steps li::after { content: ""; position: absolute; top: .35rem; inset-inline-start: .35rem; width: 1.9rem; height: 1.9rem; border: 1.5px solid var(--gold); transform: rotate(45deg); }
.how-steps p { color: var(--muted); }
@media (max-width: 760px) { .how-steps { grid-template-columns: 1fr; gap: 1.5rem; } }

/* Verse */
.verse { padding-block: 3rem; text-align: center; }
.verse .arabic { font-family: "Amiri", serif; font-size: clamp(1.4rem, 3.4vw, 2rem); color: var(--green-950); line-height: 2; margin-bottom: 1rem; }
.verse .meaning { font-family: var(--font-head); font-style: italic; font-size: 1.15rem; color: var(--muted); max-width: 60ch; margin: 0 auto .5rem; }
html[lang="ur"] .verse .meaning { font-family: var(--font-urdu); font-style: normal; }
.verse cite { font-style: normal; color: var(--gold); font-size: .95rem; }
.rule { border: 0; height: 14px; width: 160px; margin: 0 auto 2rem; background: var(--pattern) center / 28px repeat-x; }
.verse .rule:last-child { margin: 2rem auto 0; }

/* Get involved */
.help { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 1.5rem; padding-block: 1rem 3rem; align-items: stretch; }
.help-main { background: var(--green-950); color: #dfe8e2; border-radius: 16px; padding: clamp(1.5rem, 4vw, 2.5rem); position: relative; overflow: hidden; }
.help-main::before { content: ""; position: absolute; inset: 0; background-image: var(--pattern); background-size: 64px; opacity: .12; }
.help-main > * { position: relative; }
.help-main h2 { color: #fff; }
.help-side { border: 1px solid var(--line); border-radius: 16px; padding: clamp(1.5rem, 4vw, 2.5rem); background: #fff; }
.help-side p { color: var(--muted); }
@media (max-width: 760px) { .help { grid-template-columns: 1fr; } }

/* Contact */
.contact { text-align: center; padding-block: 1rem 3rem; }
.contact p { color: var(--muted); }
.contact-list { list-style: none; padding: 0; margin: 0; display: flex; gap: 1rem 2.5rem; justify-content: center; flex-wrap: wrap; font-size: 1.1rem; }
.contact-list a { font-weight: 600; }

/* Footer */
.site-footer { background: var(--green-950); color: #c9d6cf; }
.site-footer::before { content: ""; display: block; height: 18px; background: var(--pattern) center / 36px repeat-x; opacity: .6; border-bottom: 1px solid rgba(180, 136, 47, .4); }
.site-footer .wrap { display: flex; flex-wrap: wrap; gap: 1rem 3rem; padding-block: 2rem; justify-content: space-between; }
.footer-brand { font-family: var(--font-head); font-size: 1.3rem; color: #fff; margin: 0 0 .2rem; }
.privacy { max-width: 52ch; margin: 0; }

/* Send biodata */
.biodata { padding-block: 1rem 3rem; }
.bio-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 1.5rem; align-items: start; }
.bio-main { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: clamp(1.5rem, 4vw, 2.5rem); }
.bio-list { padding-inline-start: 1.3rem; margin: 0 0 1rem; }
.bio-list li { margin-bottom: .35rem; }
.tip { font-size: .93rem; color: var(--muted); background: var(--green-100); border-radius: 8px; padding: .6rem .8rem; }
.actions.start { justify-content: flex-start; margin-top: 1.25rem; }
.bio-safe { border: 1.5px solid var(--gold); border-radius: 16px; padding: clamp(1.25rem, 3vw, 2rem); background: #fffdf6; }
.bio-safe h3 { font-size: 1.2rem; }
.bio-safe p { color: var(--ink); }
.bio-safe .warn { background: #f8e9e5; color: #6d2318; border-radius: 8px; padding: .6rem .8rem; font-size: .95rem; }
.bio-safe .small { color: var(--muted); margin: 0; }
@media (max-width: 760px) { .bio-grid { grid-template-columns: 1fr; } }

/* Area leaders */
.leaders-band { padding-block: 1rem 2.5rem; }
.leaders-intro { text-align: center; color: var(--muted); max-width: 60ch; margin: -1rem auto 1.75rem; }
.leaders { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 1.25rem; }
.leaders .leader { width: 240px; }
@media (max-width: 560px) { .leaders .leader { width: 100%; max-width: 320px; } }
.leader { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 1.5rem 1.25rem; display: flex; flex-direction: column; gap: .75rem; align-items: center; text-align: center; }
.avatar {
  width: 84px; height: 84px; flex: none; border-radius: 50%; overflow: hidden;
  display: grid; place-items: center;
  background: var(--green-800); color: var(--gold-200);
  font-family: var(--font-head); font-size: 1.8rem; font-weight: 700; letter-spacing: .03em;
  box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--gold);
}
.leader:nth-child(even) .avatar { background: var(--gold); color: #fff; }
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.leader-info { min-width: 0; }
.leader-name { font-weight: 700; color: var(--green-950); margin: 0; }
html[lang="ur"] .leader-name { line-height: 1.9; }
.leader-place { color: var(--muted); font-size: .93rem; margin: 0; }
.leader-role { display: inline-block; font-size: .8rem; color: var(--green-800); background: var(--green-100); border-radius: 999px; padding: .05rem .6rem; margin: .25rem 0; }
.leader-phone { font-size: .9rem; margin: 0; }
.leader-phone { color: var(--muted); }
.leader-phone a { font-weight: 600; display: block; margin-top: .2rem; }
.leader-role.organizer { background: #f6eedb; color: #7c5a14; }
