/* ==========================================================================
   BSAC NZ (Branch 2455) - Light Theme
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600&family=Ubuntu:wght@500;700&display=swap');
:root { --bsac-navy:#003366; --bsac-red:#D32F2F; --bsac-red-hover:#B71C1C; --bsac-white:#FFFFFF; --lagoon-teal:#007791; --sea-glass:#E0F2F1; --text-main:#2D3748; --text-light:#4A5568; --bg-page:#F8FAFC; --font-heading:'Ubuntu',system-ui,sans-serif; --font-body:'Open Sans',system-ui,sans-serif; --radius:6px; --shadow-sm:0 2px 4px rgba(0,51,102,.05); --shadow-md:0 4px 12px rgba(0,51,102,.1); --shadow-hover:0 10px 25px rgba(0,51,102,.15); }
*,*::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(--bsac-navy);text-decoration:none;transition:all .2s ease}
a:hover{color:var(--bsac-red)}
h1,h2,h3,h4{font-family:var(--font-heading);color:var(--bsac-navy);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(--sea-glass);padding-bottom:.5rem;margin-top:2rem}
h3{font-size:1.25rem;color:var(--lagoon-teal)}
p,ul,ol{margin-bottom:1.25rem;font-size:1rem}
ul,ol{padding-left:1.5rem}
.site-header{background-color:var(--bsac-white);border-bottom:4px solid var(--bsac-red);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:var(--bsac-navy);color:var(--bsac-white);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{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;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(--bsac-navy);line-height:1.1;white-space:nowrap}
.brand-sub{font-size:.7rem;color:var(--lagoon-teal);font-weight:600;letter-spacing:.5px;white-space:nowrap}
.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(--bsac-navy);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(--bsac-red)}
.main-nav a.btn-primary{background-color:var(--bsac-red);color:var(--bsac-white);border-radius:3px;padding:.4rem .9rem;font-size:.75rem;margin-left:.5rem}
.main-nav a.btn-primary:hover{background-color:var(--bsac-red-hover);color:var(--bsac-white)}
.theme-toggle{background:none;border:2px solid var(--bsac-navy);border-radius:50%;font-size:1rem;cursor:pointer;padding:.25rem .45rem;margin-left:.5rem;transition:all .2s ease;line-height:1}
.theme-toggle:hover{border-color:var(--bsac-red)}
.hero-title-wrapper{width:92%;max-width:850px;margin:0 auto 2rem auto;padding:1.5rem 2rem;background:linear-gradient(to right,var(--bsac-navy),#123c5e,var(--bsac-navy));border-radius:var(--radius);box-shadow:var(--shadow-md)}
.hero-title{color:#fff;font-size:clamp(1.3rem,4vw,2.2rem);font-family:var(--font-heading);font-weight:700;text-align:center;line-height:1.3;text-shadow:0 2px 10px rgba(0,0,0,.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(0,51,102,.15),rgba(0,51,102,.3));z-index:1;pointer-events:none}
.hero-img{display:block;width:100%;height:auto;object-fit:cover;object-position:center top}
.content{width:92%;max-width:1100px;margin:0 auto 2rem auto;background-color:var(--bsac-white);padding:2.5rem 1.5rem;border-radius:var(--radius);box-shadow:var(--shadow-sm);min-height:60vh}
.cards{display:grid;grid-template-columns:1fr;gap:1.5rem;margin:2rem 0}
.card{background:var(--bsac-grey);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow-sm);border-top:4px solid var(--bsac-navy);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(--bsac-red)}
.card-icon{font-size:2rem;color:var(--bsac-navy);margin-bottom:1rem}
.card p{flex-grow:1;color:var(--text-light)}
.callout{background-color:var(--sea-glass);border-left:4px solid var(--lagoon-teal);padding:1.5rem;margin:2rem 0;border-radius:0 var(--radius) var(--radius) 0;font-weight:600;color:var(--bsac-navy)}
.news-photo{width:100%;max-width:640px;border-radius:var(--radius);box-shadow:var(--shadow-md);margin:0.5rem 0 1.5rem}
.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)}
.supporter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.2rem;margin:2rem 0}
.supporter-card{background:var(--bsac-white);border:1px solid #dfe6ea;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-md)}
.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}
.supporter-name{font-weight:600;font-size:.9rem;color:var(--text-main);text-align:center}
.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:var(--bg-page)}
.calendar-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}
.reg-form{background:var(--bsac-grey);padding:1.5rem;border-radius:var(--radius);border:1px solid #E2E8F0;margin:2rem 0}
.reg-form input,.reg-form select,.reg-form textarea{width:100%;padding:.75rem;margin:.5rem 0 1rem 0;border:1px solid #CBD5E0;border-radius:3px;font-family:inherit}
.reg-form input:focus,.reg-form textarea:focus{outline:none;border-color:var(--bsac-navy);box-shadow:0 0 0 2px rgba(0,51,102,.2)}
table{width:100%;min-width:600px;border-collapse:collapse;margin:1.5rem 0;box-shadow:var(--shadow-sm);overflow-x:auto;display:block}
th,td{padding:1rem;text-align:left;border-bottom:1px solid #E2E8F0}
th{background-color:var(--bsac-navy);color:var(--bsac-white);font-family:var(--font-heading)}
tr:nth-child(even){background-color:var(--bsac-grey)}
.site-footer{background-color:var(--bsac-navy);color:var(--bsac-white);padding:3rem 1rem;text-align:center;margin-top:4rem;border-top:4px solid var(--bsac-red)}
.site-footer a{color:var(--bsac-white);font-weight:600;text-decoration:underline}
.site-footer a:hover{color:var(--lagoon-teal)}
.footer-small{display:block;font-size:.85rem;color:rgba(255,255,255,.7);margin-top:1rem;font-weight:normal}
@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}}