/* ==========================================================================
   BSAC NZ (Branch 2455) - DARK THEME
   Dark panel colours, light text, cyan links — mirrors the light theme's
   structure exactly, only the palette differs.
   ========================================================================== */

:root {
  --bg-page: #0B1121;
  --bg-content: #151E32;
  --bg-card: #1E293B;
  --accent-primary: #38BDF8;
  --bsac-red: #EF4444;
  --bsac-red-hover: #DC2626;
  --text-main: #F1F5F9;
  --text-light: #94A3B8;
  --font-heading: 'Ubuntu', system-ui, sans-serif;
  --font-body: 'Open Sans', system-ui, sans-serif;
  --radius: 8px;
  --shadow-sm: 0 4px 6px rgba(0,0,0,0.3);
  --shadow-hover: 0 10px 25px rgba(56,189,248,0.15);
  --border-subtle: #334155;
  --bsac-navy: #0B1121;
  --bsac-white: #F1F5F9;
  --bsac-grey: #1E293B;
  --lagoon-teal: #38BDF8;
  --sea-glass: rgba(56,189,248,0.1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font-body);color:var(--text-main);background-color:var(--bg-page);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent-primary);text-decoration:none;transition:all .2s ease}
a:hover{color:var(--text-main)}
h1,h2,h3,h4{font-family:var(--font-heading);color:var(--text-main);font-weight:700;line-height:1.2;margin-bottom:1rem}
h1{font-size:clamp(1.5rem,5vw,2.25rem)}
h2{font-size:1.75rem;border-bottom:3px solid var(--border-subtle);padding-bottom:.5rem;margin-top:2rem}
h3{font-size:1.25rem;color:var(--accent-primary)}
p,ul,ol{margin-bottom:1.25rem;font-size:1rem;color:var(--text-light)}
ul,ol{padding-left:1.5rem}

/* Header — dark translucent, light text */
.site-header{background-color:rgba(11,17,33,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}
.site-header::before{content:'Official Branch of the British Sub-Aqua Club (BSAC)';display:block;background-color:#0a2540;color:#9fc3d9;text-align:center;font-size:.75rem;font-weight:600;padding:.4rem 1rem;letter-spacing:.5px;text-transform:uppercase}
.header-inner{width:92%;max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0}

/* Brand */
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none !important;flex-shrink:0}
.brand-logo-link{display:block;line-height:0;text-decoration:none !important}
.brand-logo{height:40px;width:auto;display:block;filter:brightness(1.2);transition:opacity .2s ease}
.brand-logo-link:hover .brand-logo{opacity:.85}
.brand-name-text{display:flex;flex-direction:column;text-decoration:none !important}
.brand-name{font-family:var(--font-heading);font-size:1.1rem;font-weight:700;color:var(--text-main);line-height:1.1;white-space:nowrap}
.brand-sub{font-size:.7rem;color:var(--accent-primary);font-weight:600;letter-spacing:.5px;white-space:nowrap}

/* Nav */
.main-nav{display:flex;align-items:center;gap:0;flex-grow:1;justify-content:center}
.main-nav a{font-family:var(--font-heading);font-weight:700;color:var(--text-light);padding:.4rem .5rem;font-size:.75rem;display:inline-block;text-decoration:none !important;text-transform:uppercase;white-space:nowrap;transition:all .2s ease}
.main-nav a:not(.btn-primary):hover{color:var(--accent-primary)}
.main-nav a.btn-primary{background-color:var(--bsac-red);color:#fff;border-radius:4px;padding:.4rem .9rem;font-size:.75rem;margin-left:.5rem}
.main-nav a.btn-primary:hover{background-color:var(--bsac-red-hover);color:#fff}
.theme-toggle{background:none;border:2px solid var(--border-subtle);border-radius:50%;font-size:1rem;cursor:pointer;padding:.25rem .45rem;margin-left:.5rem;transition:all .2s ease;line-height:1;color:var(--text-main)}
.theme-toggle:hover{border-color:var(--accent-primary)}

/* Hero */
.hero-title-wrapper{width:92%;max-width:850px;margin:0 auto 2rem auto;padding:1.5rem 2rem;background:linear-gradient(to right,#0a2540,#123c5e,#0a2540);border-radius:var(--radius);box-shadow:0 4px 12px rgba(0,0,0,.5)}
.hero-title{color:var(--text-main);font-size:clamp(1.3rem,4vw,2.2rem);font-family:var(--font-heading);font-weight:700;text-align:center;line-height:1.3;margin:0}
.hero-img-wrap{position:relative;width:92%;max-width:1100px;margin:0 auto;min-height:50vh;overflow:hidden;border-radius:var(--radius)}
.hero-img-wrap::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom,rgba(11,17,33,.3),rgba(11,17,33,.6));z-index:1;pointer-events:none}
.hero-img{display:block;width:100%;height:auto;object-fit:cover;object-position:center top;filter:brightness(.9) contrast(1.1)}

/* Content — dark panel, light text */
.content{width:92%;max-width:1100px;margin:0 auto 2rem auto;background-color:var(--bg-content);padding:2.5rem 1.5rem;border-radius:var(--radius);box-shadow:0 10px 30px rgba(0,0,0,.5);border:1px solid var(--border-subtle);min-height:60vh}

/* Cards */
.cards{display:grid;grid-template-columns:1fr;gap:1.5rem;margin:2rem 0}
.card{background:var(--bg-card);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow-sm);border-top:4px solid var(--border-subtle);transition:transform .3s ease,box-shadow .3s ease;display:flex;flex-direction:column}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover);border-top-color:var(--accent-primary)}
.card-icon{font-size:2rem;color:var(--accent-primary);margin-bottom:1rem}
.card p{flex-grow:1;color:var(--text-light)}
.callout{background-color:rgba(56,189,248,.1);border-left:4px solid var(--accent-primary);padding:1.5rem;margin:2rem 0;border-radius:0 var(--radius) var(--radius) 0;font-weight:600;color:var(--text-main)}

/* News photos */
.news-photo{width:100%;max-width:640px;border-radius:var(--radius);box-shadow:0 4px 12px rgba(0,0,0,.5);margin:.5rem 0 1.5rem}

/* Gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:2rem 0}
.gallery-grid img{aspect-ratio:1/1;object-fit:cover;border-radius:4px;box-shadow:var(--shadow-sm);transition:transform .3s ease;width:100%}
.gallery-grid img:hover{transform:scale(1.05);z-index:2;position:relative;box-shadow:var(--shadow-md,0 10px 20px rgba(0,0,0,.8))}

/* Supporters */
.supporter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.2rem;margin:2rem 0}
.supporter-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;align-items:center;gap:.6rem;transition:transform .2s ease,box-shadow .2s ease}
.supporter-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.supporter-card a{display:flex;align-items:center;justify-content:center;width:100%;min-height:90px}
.supporter-card img{max-width:100%;max-height:80px;width:auto;height:auto;object-fit:contain;filter:brightness(1.1)}
.supporter-name{font-weight:600;font-size:.9rem;color:var(--text-main);text-align:center}

/* Calendar embed */
.calendar-embed{position:relative;width:100%;padding-bottom:100%;height:0;overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow-sm);margin:2rem 0;background:#fff;border:4px solid var(--bg-card)}
.calendar-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}

/* Reg form */
.reg-form{background:var(--bg-card);padding:1.5rem;border-radius:var(--radius);border:1px solid var(--border-subtle);margin:2rem 0}
.reg-form label{display:block;font-weight:600;color:var(--text-main);margin:.75rem 0 .25rem}
.reg-form input,.reg-form select,.reg-form textarea{width:100%;padding:.75rem;margin:.25rem 0 1rem 0;background:var(--bg-content);border:1px solid var(--border-subtle);color:var(--text-main);border-radius:4px;font-family:inherit}
.reg-form input:focus,.reg-form textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(56,189,248,.2)}
.reg-form button{background-color:var(--bsac-red);color:#fff;border:none;padding:.8rem 2rem;font-size:1rem;font-weight:600;border-radius:var(--radius);cursor:pointer;transition:background-color .25s ease}
.reg-form button:hover{background-color:var(--bsac-red-hover)}

/* Tables */
.content table{width:100%;min-width:600px;border-collapse:collapse;margin:1.5rem 0;box-shadow:var(--shadow-sm);overflow-x:auto;display:block}
.content th,.content td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid var(--border-subtle);color:var(--text-light)}
.content th{background-color:var(--bg-card);color:var(--text-main);font-family:var(--font-heading);border-bottom:2px solid var(--accent-primary)}
.content tr:nth-child(even){background-color:rgba(30,41,59,.3)}

/* Footer */
.site-footer{background-color:var(--bg-page);color:var(--text-light);padding:3rem 1rem;text-align:center;margin-top:4rem;border-top:1px solid var(--border-subtle)}
.site-footer a{color:var(--text-main);font-weight:600;text-decoration:underline}
.site-footer a:hover{color:var(--accent-primary)}
.footer-small{display:block;font-size:.85rem;color:rgba(255,255,255,.4);margin-top:1rem;font-weight:normal}

/* Desktop */
@media(min-width:768px){
  .brand-name{font-size:1.3rem}.brand-sub{font-size:.75rem}
  .main-nav a{font-size:.85rem;padding:.5rem .65rem}
  .content{padding:3.5rem 4rem;margin-top:-4.5rem}
  .cards{grid-template-columns:repeat(3,1fr)}
  .gallery-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}
  .calendar-embed{padding-bottom:75%}
  .reg-form{padding:2.5rem;max-width:600px}
}
