/* Ōpanake 1C South 6B whānau site — shared styles */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Work+Sans:wght@400;500;600;700&display=swap');

:root{
  --bg:#EEEBE4;
  --surface:#FFFFFF;
  --surface-2:#E0DCD2;
  --ink:#2A2420;
  --ink-soft:#6B6255;
  --border:#CFC9BB;
  --accent:#1F7A82;
  --accent-dark:#163A4A;
  --accent-2:#D68A3A;
  --accent-2-soft:#FAE4C0;
  --river:#2B5578;
  --river-soft:#DCE6ED;
}

*{ box-sizing: border-box; }

html, body{ margin: 0; padding: 0; }

body{
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--bg);
  font-family: 'Work Sans', sans-serif;
  color: var(--ink);
}

a{ color: inherit; text-decoration: none; }

h1, h2, h3{
  font-family: 'Fraunces', serif;
  color: var(--accent-dark);
  margin: 0;
  font-weight: 600;
}

p{ line-height: 1.6; }

main{ flex: 1; width: 100%; }

/* Header / nav */

.header{
  background: var(--accent-dark);
  color: #EEEBE4;
  padding: 20px 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
}

.logo{
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: 'Fraunces', serif;
  font-size: 19px;
  font-weight: 600;
}

.nav{
  display: flex;
  align-items: center;
  gap: 11px;
  font-size: 11px;
  font-weight: 500;
  flex-wrap: wrap;
}

.nav a.active{ border-bottom: 2px solid var(--accent-2); }

.nav .pill{
  background: var(--accent-2);
  color: #241B12;
  padding: 8px 14px;
  border-radius: 999px;
  font-weight: 600;
}

.nav .avatar{
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: rgba(255,255,255,0.14);
  display: none;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* Layout helpers */

.container{ max-width: 1280px; margin: 0 auto; padding: 0 56px; }
@media (max-width: 720px){
  .header, .container, .hero{ padding-left: 20px; padding-right: 20px; }
}

.hero{ padding: 56px 56px 16px; }
.hero p{ max-width: 640px; color: var(--ink-soft); font-size: 16px; }

.eyebrow{
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 2px;
  color: var(--accent-2);
  text-transform: uppercase;
}

.card{
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 26px 30px;
}

.card-muted{ background: var(--surface-2); border: none; }

.btn{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--accent);
  color: #EEEBE4;
  padding: 12px 24px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 14px;
  border: none;
  cursor: pointer;
  font-family: inherit;
}

.btn-dark{ background: var(--accent-dark); }
.btn-outline{ background: none; border: 1px solid var(--border); color: var(--ink-soft); }
.btn:disabled{ opacity: 0.6; cursor: default; }

.footer{
  margin-top: auto;
  background: var(--accent-dark);
  color: #E3EFDD;
  padding: 28px 56px;
  font-size: 13px;
}
.footer-map{
  display: block;
  width: 100%;
  height: 240px;
  object-fit: cover;
  object-position: center 55%;
  margin: 0 0 20px;
  border-radius: 12px;
}
.hero-split{ display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 40px; align-items: center; padding-bottom: 56px; }
.polaroids{ position: relative; width: 100%; max-width: 900px; aspect-ratio: 1.2 / 1; justify-self: end; }
.polaroid{
  position: absolute; margin: 0; z-index: 1;
  left: calc(5% + var(--i) * 44%);
  top: calc(10% + var(--j));
  width: 50%;
  padding: 2.6% 2.6% 0;
  background:
    radial-gradient(circle at 12% 90%, rgba(150,105,45,0.28), transparent 45%),
    radial-gradient(circle at 92% 8%, rgba(120,85,35,0.20), transparent 40%),
    #ecdfc2;
  border-radius: 2px;
  box-shadow: 0 5px 16px rgba(0,0,0,0.5), inset 0 0 14px rgba(110,75,30,0.35);
  transform: rotate(var(--r));
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  cursor: zoom-in;
}
.polaroid::after{ content: ""; display: block; padding-bottom: 20%; }
.polaroid:nth-of-type(2){ z-index: 2; }
.polaroid:only-of-type{ left: 18%; top: 4%; width: 64%; }
.ph{ position: relative; line-height: 0; }
.ph img{ display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; background: #5a4a38; filter: sepia(0.5) contrast(0.92) brightness(0.96) saturate(0.8); }
/* faded edges and a warm cast, like an old print */
.ph::after{ content: ""; position: absolute; inset: 0; pointer-events: none; background: rgba(170,120,55,0.16); mix-blend-mode: multiply; box-shadow: inset 0 0 38px rgba(70,40,10,0.55); }
.polaroid:hover{ z-index: 20; transform: rotate(0deg) scale(1.04); box-shadow: 0 12px 30px rgba(0,0,0,0.55), inset 0 0 14px rgba(110,75,30,0.35); }
@media (max-width: 900px){
  .hero-split{ grid-template-columns: 1fr; }
  .polaroids{ justify-self: center; max-width: 560px; }
}
.lightbox{
  position: fixed; inset: 0; z-index: 100;
  background: rgba(20,16,14,0.88);
  display: flex; align-items: center; justify-content: center;
  padding: 24px; cursor: zoom-out;
}
.lightbox img{ max-width: 100%; max-height: 100%; border-radius: 12px; filter: sepia(0.35) contrast(0.95); box-shadow: 0 8px 40px rgba(0,0,0,0.5); }
.home-photo{
  display: block;
  width: 100%;
  max-width: 720px;
  height: auto;
  border-radius: 18px;
  box-shadow: 0 2px 10px rgba(42,36,32,0.12);
}
@media (max-width: 900px){
  .footer{ padding: 24px 20px; }
  .hero{ padding-left: 20px; padding-right: 20px; }
  .footer-map{ height: 200px; object-position: 88% 50%; }
}

/* Forms */

.field{ display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.field label{ font-size: 12.5px; font-weight: 600; color: var(--ink-soft); }
.field input, .field select{
  font: inherit;
  font-size: 14px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg);
  color: var(--ink);
}

.badge{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 999px;
}
.badge-pending{ background: var(--accent-2-soft); color: #8A5A16; }
.badge-approved{ background: #D9EEEC; color: #14585E; }

.error-text{ color: #B3492A; font-size: 13px; margin-top: 4px; }
.help-text{ color: var(--ink-soft); font-size: 12.5px; }

.tabs{ display: flex; gap: 4px; margin-bottom: 20px; }
.tabs button{
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  padding: 10px 18px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink-soft);
  cursor: pointer;
  border-radius: 999px;
}
.tabs button.active{ background: var(--accent-dark); color: #EEEBE4; border-color: var(--accent-dark); }

/* Two-column page layout: main content left, action form right */
.two-col{
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 28px;
  align-items: start;
}
.two-col > .col-side{ position: sticky; top: 16px; }
@media (max-width: 900px){
  .two-col{ grid-template-columns: minmax(0, 1fr); }
  .two-col > .col-side{ position: static; }
}

.filter-bar{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 16px;
}
.filter-bar input, .filter-bar select{
  font: inherit;
  font-size: 13px;
  padding: 9px 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--ink);
}

.hidden{ display: none !important; }

/* Whenua ideas template */
.field textarea, .idea-input{ font: inherit; font-size: 14px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); color: var(--ink); width: 100%; resize: vertical; line-height: 1.5; box-sizing: border-box; }
.idea-wrap{ max-width: 820px; padding-top: 24px; padding-bottom: 56px; }
.idea-actions{ display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 10px; }
.idea-q{ display: flex; gap: 16px; align-items: flex-start; }
.idea-num{ flex: none; width: 36px; height: 36px; border-radius: 999px; background: var(--accent); color: #EEEBE4; display: flex; align-items: center; justify-content: center; font-family: 'Fraunces', serif; font-weight: 600; }
.idea-wrap .field input{ width: 100%; box-sizing: border-box; }
@media (max-width: 720px){ .idea-q{ gap: 12px; } .idea-num{ width: 30px; height: 30px; font-size: 14px; } }
@media print{
  .header, .footer, .no-print, #access-gate{ display: none !important; }
  body{ background: #fff; }
  .card{ box-shadow: none; break-inside: avoid; }
  .idea-input{ border: 1px solid #bbb; min-height: 90px; }
}

/* Home page: Irihapeti's story under the heading */
.hero-text p + p{ margin-top: 12px; }
.hero-text p a{ color: var(--accent-dark); text-decoration: underline; }

/* Archive: in-page document viewer (view only) */
.viewer{ position: fixed; inset: 0; z-index: 100; background: #2a2420; display: flex; flex-direction: column; }
.viewer.hidden{ display: none; }
.viewer-bar{ display: flex; align-items: center; gap: 14px; padding: 12px 20px; background: var(--accent-dark); color: #EEEBE4; }
.viewer-title{ font-family: 'Fraunces', serif; font-size: 17px; font-weight: 600; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.viewer-note{ font-size: 12px; letter-spacing: 1px; text-transform: uppercase; opacity: 0.7; }
.viewer-close{ background: none; color: #EEEBE4; border-color: rgba(238,235,228,0.5); }
.viewer-body{ flex: 1; overflow: auto; padding: 16px 12px 40px; display: flex; flex-direction: column; align-items: center; gap: 14px; -webkit-user-select: none; user-select: none; }
.viewer-page{ background: #fff; max-width: 100%; height: auto; box-shadow: 0 2px 14px rgba(0,0,0,0.5); }
.viewer-img{ max-width: 100%; height: auto; box-shadow: 0 2px 14px rgba(0,0,0,0.5); -webkit-user-drag: none; }
.viewer-text{ background: #fff; color: #222; padding: 24px; max-width: 860px; width: 100%; white-space: pre-wrap; font-size: 14px; line-height: 1.55; box-sizing: border-box; }
.viewer-msg{ color: #EEEBE4; margin-top: 60px; }
@media print{ .viewer{ display: none !important; } }

/* Forum guidelines */
.guidelines summary{ cursor: pointer; font-weight: 600; font-size: 16px; color: var(--ink); }
.guidelines[open] summary{ margin-bottom: 12px; }
.guidelines p{ font-size: 14px; line-height: 1.6; }
.guidelines p + p{ margin-top: 10px; }

/* Forum topic cards */
.topic-grid{ display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.topic-card{
  display: flex; flex-direction: column; gap: 6px; padding: 18px 20px;
  background: var(--surface); border: 1px solid var(--border); border-radius: 14px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.topic-card:hover{ transform: translateY(-2px); box-shadow: 0 8px 20px rgba(42,36,32,0.12); }
.topic-card-title{ font-weight: 600; font-size: 15.5px; line-height: 1.35; color: var(--ink); }
.topic-card-foot{ margin-top: auto; padding-top: 8px; font-size: 12.5px; font-weight: 600; color: var(--accent-dark); }

/* Resources page link cards */
.link-grid{ display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; }
.link-card{
  display: flex; flex-direction: column; gap: 6px; padding: 16px 18px;
  background: var(--surface); border: 1px solid var(--border); border-radius: 14px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.link-card:hover{ transform: translateY(-2px); box-shadow: 0 8px 20px rgba(42,36,32,0.12); }
.link-card-title{ display: flex; justify-content: space-between; gap: 10px; font-weight: 600; font-size: 15px; line-height: 1.35; color: var(--ink); }
.link-card-arrow{ color: var(--accent-dark); font-weight: 700; flex-shrink: 0; }

/* Archive: short factual summary under a document title */
.doc-summary{ margin: 8px 0 0; font-size: 13.5px; line-height: 1.55; color: var(--ink-soft); max-width: 68ch; white-space: pre-line; }
.viewer-doc{ background: #fff; color: #222; padding: 32px 36px; max-width: 860px; width: 100%; box-sizing: border-box; font-size: 15px; line-height: 1.6; box-shadow: 0 2px 14px rgba(0,0,0,0.5); overflow-x: auto; }
.viewer-doc h1,.viewer-doc h2,.viewer-doc h3{ font-family: 'Fraunces', serif; margin: 1.2em 0 0.4em; line-height: 1.25; }
.viewer-doc p{ margin: 0 0 0.8em; }
.viewer-doc img{ max-width: 100%; height: auto; }
.viewer-doc table{ border-collapse: collapse; margin: 0.8em 0; font-size: 14px; }
.viewer-doc td,.viewer-doc th{ border: 1px solid #ccc; padding: 4px 8px; vertical-align: top; }
@media (max-width: 600px){ .viewer-doc{ padding: 18px 16px; } }

/* Whakapapa: branch cards, three across */
.branch-grid{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 860px){ .branch-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px){ .branch-grid{ grid-template-columns: minmax(0, 1fr); } }

/* Admin: switch between Admin view and Member view (top bar) */
.nav .view-switch{
  font: inherit; font-size: 11px; font-weight: 600;
  background: none; color: #EEEBE4; cursor: pointer;
  border: 1px solid rgba(238,235,228,0.55); border-radius: 999px; padding: 6px 12px;
}
.nav .view-switch:hover{ background: rgba(255,255,255,0.12); }
.nav .view-switch.is-member{ background: var(--accent-2); color: #241B12; border-color: var(--accent-2); }
.nav .view-switch:disabled{ opacity: 0.6; cursor: default; }

/* Māori Land Court pathway */
.path-nav{ display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; margin: 0 0 32px; }
.path-nav a{ display: flex; align-items: center; gap: 12px; background: var(--surface, #fff); border: 1px solid var(--border); border-radius: 14px; padding: 14px 16px; font-weight: 600; font-size: 14.5px; line-height: 1.3; color: var(--ink); transition: transform .15s, box-shadow .15s; }
.path-nav a:hover{ transform: translateY(-2px); box-shadow: 0 8px 20px rgba(42,36,32,0.12); }
.path-num{ flex: 0 0 auto; width: 32px; height: 32px; border-radius: 999px; background: var(--accent-dark); color: #EEEBE4; display: inline-flex; align-items: center; justify-content: center; font-family: 'Fraunces', serif; font-weight: 600; font-size: 16px; }
.path-step{ position: relative; margin: 0 0 44px; padding: 28px 30px 26px; background: var(--surface, #fff); border: 1px solid var(--border); border-radius: 18px; scroll-margin-top: 16px; }
.path-head{ display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
.path-head .path-num{ width: 44px; height: 44px; font-size: 21px; }
.path-head h2{ font-size: 24px; margin: 2px 0 0; }
.path-lead{ font-size: 16px; line-height: 1.6; margin: 0 0 18px; max-width: 70ch; }
.path-step h3{ font-family: 'Fraunces', serif; font-size: 17px; margin: 24px 0 6px; color: var(--accent-dark); }
.path-step p{ max-width: 72ch; line-height: 1.65; }
.path-list{ max-width: 72ch; line-height: 1.6; padding-left: 20px; margin: 8px 0; }
.path-list li{ margin: 0 0 8px; }
.path-note{ background: var(--surface-2, #F1EDE5); border-radius: 12px; padding: 14px 18px; margin: 18px 0 0; font-size: 14px; max-width: 72ch; }
.path-note p{ margin: 0; }
.path-links{ display: flex; flex-wrap: wrap; gap: 8px 10px; margin: 18px 0 0; }
.path-links a{ display: inline-block; border: 1px solid var(--border); border-radius: 999px; padding: 6px 14px; font-size: 13.5px; font-weight: 600; color: var(--accent-dark); background: var(--bg); }
.path-links a:hover{ background: var(--surface-2, #F1EDE5); }
.path-next{ display: inline-flex; margin-top: 24px; font-weight: 600; color: var(--accent-dark); border-bottom: 2px solid var(--accent-2); padding-bottom: 2px; }
.path-divider{ margin: 56px 0 24px; padding-top: 28px; border-top: 1px solid var(--border); }
.path-divider h2{ font-size: 22px; margin: 0; }

/* Glossary */
.gloss-tools{ display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 4px 0 8px; }
.gloss-tools input[type=search]{ flex: 1; min-width: 220px; font: inherit; font-size: 14px; padding: 10px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--ink); }
.gloss-chips{ display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 4px; }
.gloss-chip{ font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; background: var(--bg); color: var(--ink); border: 1px solid var(--border); border-radius: 999px; padding: 6px 14px; }
.gloss-chip[aria-pressed=true]{ background: var(--accent-dark); color: #EEEBE4; border-color: var(--accent-dark); }
.gloss-count{ font-size: 13px; margin: 10px 0 8px; }
.gloss-list{ margin: 0; padding: 0; max-height: 520px; overflow-y: auto; border: 1px solid var(--border); border-radius: 12px; background: var(--bg); }
.gloss-item{ padding: 12px 16px; border-bottom: 1px solid var(--border); }
.gloss-item:last-child{ border-bottom: none; }
.gloss-item dt{ font-weight: 700; font-size: 15px; color: var(--ink); }
.gloss-item dd{ margin: 3px 0 0; font-size: 14.5px; line-height: 1.55; }
.gloss-tag{ display: inline-block; margin-left: 8px; font-size: 11px; font-weight: 600; letter-spacing: .4px; text-transform: uppercase; color: var(--ink-soft); }
@media (max-width: 900px){
  .path-nav{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 560px){
  .path-nav{ grid-template-columns: 1fr; }
  .path-step{ padding: 22px 18px 20px; }
  .path-head h2{ font-size: 21px; }
  .gloss-list{ max-height: 440px; }
}

/* Footer: link to the whānau Facebook group */
.footer-social{ display: flex; align-items: center; gap: 10px; width: fit-content; margin: 0; padding: 8px 16px 8px 12px; border: 1px solid rgba(227,239,221,0.45); border-radius: 999px; color: #E3EFDD; font-weight: 600; font-size: 13px; }
.footer-social:hover{ background: rgba(255,255,255,0.12); }
.footer-social svg{ flex: 0 0 auto; }

/* Footer layout: copyright on the left, Facebook button on the right, room underneath */
.footer{ display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 20px; padding-bottom: 64px; }
.footer-map{ flex: 0 0 100%; }
@media (max-width: 700px){
  .footer{ padding-bottom: 48px; }
  .footer-social{ margin-left: auto; }
}

/* Whānau services page */
.svc-tools{ display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 4px 0 8px; }
.svc-tools input[type=search]{ flex: 1; min-width: 220px; font: inherit; font-size: 14px; padding: 10px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--ink); }
.svc-chips{ display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 4px; }
.svc-form{ margin: 18px 0 8px; max-width: 720px; }
.svc-form h2{ font-size: 19px; margin: 0 0 14px; }
.svc-form .field input, .svc-form .field select, .svc-form .field textarea{ width: 100%; box-sizing: border-box; }
.svc-form-row{ display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 16px; }
.svc-form-actions{ display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 4px; }
.svc-privacy{ background: var(--surface-2, #F1EDE5); border-radius: 12px; padding: 12px 16px; font-size: 13.5px; margin: 6px 0 16px; line-height: 1.55; }
.svc-count{ font-size: 13px; margin: 10px 0 12px; }
.svc-grid{ display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.svc-card{ display: flex; flex-direction: column; gap: 10px; padding: 20px 22px; }
.svc-card.is-hidden{ opacity: 0.8; border-style: dashed; }
.svc-cat{ font-size: 11.5px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--accent-2); }
.svc-card h3{ font-family: 'Fraunces', serif; font-size: 19px; margin: 0; color: var(--accent-dark); overflow-wrap: anywhere; }
.svc-desc{ margin: 0; font-size: 14.5px; line-height: 1.6; white-space: pre-line; overflow-wrap: anywhere; }
.svc-area{ font-size: 13.5px; color: var(--ink-soft); }
.svc-contact{ display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.svc-contact a{ color: var(--accent-dark); font-weight: 600; text-decoration: underline; overflow-wrap: anywhere; }
.svc-by{ margin-top: auto; padding-top: 10px; border-top: 1px solid var(--border); font-size: 13px; color: var(--ink-soft); }
.svc-actions{ display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.svc-actions .btn{ padding: 7px 14px; font-size: 13px; }
.svc-flag{ display: inline-block; font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 999px; background: var(--accent-2-soft); color: #8A5A16; width: fit-content; }
@media (max-width: 560px){
  .svc-form-row{ grid-template-columns: 1fr; }
  .svc-grid{ grid-template-columns: 1fr; }
}
.svc-form .error-text{ margin: 0 0 12px; }
