:root{
--life-navy:#0B2545; --life-navy2:#12305A; --life-navy3:#081B33;
--life-gold:#C8A33C; --life-gold-lt:#E3C46F;
--life-cream:#F8F4EC; --life-white:#FFFFFF;
--life-sky:#4FA3D1; --life-orange:#E07A2F;
--life-ink:#1A2230; --life-body:#3C4657; --life-muted:#7C8798; --life-line:#E4DFD3;
--life-display:'Cormorant Garamond',Georgia,serif;
--life-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
--life-num:'DM Serif Display',Georgia,serif;
--life-wrap:1200px;
}

.g2 > *, .g3 > *, .g4 > *,
.mt.card, .card, .darkcard { min-width:0 }

html, body{ overflow-x:hidden; }

.life-wrap{max-width:var(--life-wrap);margin:0 auto;padding:0 28px}
.cb-life-gold.bg-white {background-color:var(--life-white)}

.elementor-template-full-width .site {
  margin-top: 9px;
  padding-bottom: 0;
}

@media (max-width:767px){
  .admin-bar.elementor-template-full-width .site {
    margin-top: -14px;
  }
}

/* ---------- life-hero ---------- */
.life-hero{position:relative;background:var(--life-navy);color:#fff;padding:100px 0 0;overflow:hidden}
.life-hero::before{content:"";position:absolute;inset:0;
background:radial-gradient(1100px 520px at 78% 8%,rgba(79,163,209,.16),transparent 60%),
		   radial-gradient(700px 420px at 8% 90%,rgba(200,163,60,.13),transparent 62%)}
.life-hero-in{position:relative}
.life-eyebrow{font-size:10.5px;letter-spacing:4px;text-transform:uppercase;color:var(--life-gold);font-weight:700}
.life-hero h1{font-size:clamp(47px,8vw,104px);line-height:.98;
font-weight:400;margin:20px 0 0;letter-spacing:-1px}
.life-hero h1 em{font-style:italic;color:var(--life-gold)}
.rule{width:74px;height:2px;background:var(--life-gold);margin:30px 0 26px}
.life-hero p.lede{font-size:clamp(17px,2vw,21px);line-height:1.6;color:#CBD5E4;max-width:730px;font-weight:300}
.life-hero-strip{display:flex;flex-wrap:wrap;gap:0;margin-top:56px;border-top:1px solid rgba(255,255,255,.14)}
.hs{flex:1 1 190px;padding:26px 26px 30px;border-right:1px solid rgba(255,255,255,.14)}
.hs:last-child{border-right:0}
.hs b{display:block;font-family:var(--life-num);font-size:40px;color:var(--life-gold);line-height:1}
.hs span{display:block;margin-top:9px;font-size:12px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;color:#93A4BC}
.life-hero-band{position:relative;margin-top:26px;height:12px;
background:linear-gradient(90deg,var(--life-gold) 0 33%,var(--life-sky) 33% 66%,var(--life-orange) 66% 100%)}

/* ---------- sections ---------- */
section{padding:104px 0}
.cream{background:var(--life-cream)}
.life-navy{background:var(--life-navy);color:#fff}
.life-navy p{color:#C3CEDF}
.lbl{font-size:10.5px;letter-spacing:3.6px;text-transform:uppercase;color:var(--life-gold);font-weight:700}
.life-wrap h2{font-size:clamp(32px,4.6vw,54px);line-height:1.08;color:var(--life-navy);
 font-weight:400;margin:16px 0 0;letter-spacing:-.5px}
.life-navy h2{color:#fff}
.life-wrap h2 em{font-style:italic;color:var(--life-gold)}
.sub{font-size:18px;font-weight:500;color:var(--life-muted);max-width:820px;margin-top:20px;font-weight:300;line-height:1.6}
.life-navy .sub{color:#A9BAD1;font-weight:500}
.life-wrap h3{font-size:26px;color:var(--life-navy);font-weight:600;line-height:1.2}
.life-navy h3{color:#fff}

.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* ---------- year calendar ---------- */
.yearscroll{display:flex;gap:20px;overflow-x:auto;padding:44px 4px 18px;scroll-snap-type:x mandatory}
.yearscroll::-webkit-scrollbar{height:6px}
.yearscroll::-webkit-scrollbar-thumb{background:var(--life-gold);border-radius:3px}
.yearscroll::-webkit-scrollbar-track{background:rgba(11,37,69,.08)}
.ev{flex:0 0 290px;scroll-snap-align:start;background:#fff;border:1px solid var(--life-line);
  border-top:3px solid var(--life-gold);padding:28px 26px 30px;transition:transform .25s,box-shadow .25s}
.ev:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(11,37,69,.11)}
.ev .when{font-size:10.5px;letter-spacing:2.4px;text-transform:uppercase;color:var(--life-sky);font-weight:700}
.ev h4{font-family:var(--life-display);font-size:24px;color:var(--life-navy);font-weight:600;margin:11px 0 10px;line-height:1.15}
.ev p{font-size:14.5px;line-height:1.6;color:var(--life-body)}

/* ---------- generic grids ---------- */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:1000px){.g3,.g4{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.g2,.g3,.g4{grid-template-columns:1fr;gap:26px}}
.mt{margin-top:52px}

.card{background:#fff;border:1px solid var(--life-line);padding:30px 28px 32px;transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(11,37,69,.1)}
.card h4{font-size:23px;color:var(--life-navy);font-weight:600;margin-bottom:10px;line-height:1.2}
.card p{font-size:14.5px;line-height:1.65}
.card .ico{width:46px;height:46px;border-radius:50%;background:var(--life-cream);display:grid;place-items:center;
font-size:21px;margin-bottom:18px;border:1px solid var(--life-line)}
.darkcard{background:var(--life-navy2);border:1px solid rgba(255,255,255,.12);padding:28px 26px 30px}
.darkcard h4{font-family:var(--life-display);font-size:22px;color:var(--life-gold);font-weight:600;margin-bottom:9px}
.darkcard p{font-size:14.5px;color:#B7C4D8;line-height:1.6;font-weight:500;}

/* ---------- photos ---------- */
figure{margin:0;position:relative;overflow:hidden;background:var(--life-navy)}
figure img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.3,1)!important}
figure:hover img{transform:scale(1.055)}
figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 22px 18px;color:#fff;font-size:13.5px;
background:linear-gradient(transparent,rgba(8,27,51,.9));letter-spacing:.2px}
figcaption b{display:block;font-family:var(--life-display);font-size:19px;font-weight:600;margin-bottom:3px}
.tall{aspect-ratio:3/4}
.wide{aspect-ratio:16/10}
.sq{aspect-ratio:1/1}
.gallery figure img {
  height: 100%;
}

/* photo placeholder */
.ph{border:2px dashed var(--life-gold);background:
  repeating-linear-gradient(45deg,#FBF8F1,#FBF8F1 9px,#F3EEE1 9px,#F3EEE1 18px);
  display:grid;place-items:center;text-align:center;padding:26px;color:#8A7433}
.ph .tag{font-size:10px;letter-spacing:2.4px;text-transform:uppercase;font-weight:700}
.ph .txt{font-size:13.5px;margin-top:9px;max-width:290px;line-height:1.5}
.ph .fn{font-size:11px;margin-top:11px;color:#A8925C;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

/* ---------- clubs ---------- */
.chips{display:flex;flex-wrap:wrap;gap:11px;margin-top:34px}
.chip{background:#fff;border:1px solid var(--life-line);padding:11px 19px;font-size:14px;color:var(--life-navy);
font-weight:500;transition:border-color .2s,transform .2s}
.chip:hover{border-color:var(--life-gold);transform:translateY(-2px)}
.chip i{font-style:normal;margin-right:8px}

/* ---------- fixtures ---------- */
.fixture{display:flex;align-items:center;gap:20px;background:var(--life-navy2);
border:1px solid rgba(255,255,255,.12);padding:22px 24px;border-left:3px solid var(--life-gold)}
.fixture .sport{font-family:var(--life-num);font-size:26px;color:var(--life-gold);flex:none;width:52px;text-align:center}
.fixture .who b{display:block;font-family:var(--life-display);font-size:21px;color:#fff;font-weight:600;line-height:1.2}
.fixture .who span{font-size:13px;color:#A9BAD1}

/* ---------- quote ---------- */
.quote{background:var(--life-navy);color:#fff;padding:64px 56px;position:relative;overflow:hidden}
.quote::before{content:"\201C";position:absolute;top:-30px;left:26px;font-family:var(--life-display);
font-size:190px;color:rgba(200,163,60,.18);line-height:1}
.quote p{position:relative;font-size:clamp(22px,3vw,32px);line-height:1.4;
font-style:italic;color:#F0E8D4;max-width:900px}
.quote .who{margin-top:22px;font-size:11px;letter-spacing:2.6px;text-transform:uppercase;color:var(--life-gold);font-weight:700}

/* ---------- inline CTA bands ---------- */
.ctaband{padding:0;margin:0}
.ctaband .in{max-width:var(--life-wrap);margin:0 auto;padding:34px 28px;display:flex;align-items:center;
justify-content:space-between;gap:28px;flex-wrap:wrap}
.ctaband .txt{flex:1 1 380px;min-width:0}
.ctaband .acts{flex:0 0 auto}
.ctaband .txt b{display:block;font-size:clamp(22px,2.6vw,30px);
font-weight:600;line-height:1.15;letter-spacing:-.2px}
.ctaband .txt span{display:block;font-size:14.5px;margin-top:7px;font-weight:300}
.ctaband .acts{display:flex;gap:12px;flex-wrap:wrap}
.ctaband .acts a{padding:13px 24px;font-size:11.5px;font-weight:700;letter-spacing:1.5px;
text-transform:uppercase;border-radius:2px;transition:all .2s;white-space:nowrap}
/* life-gold band on cream */
.cb-light{background:var(--life-cream);border-top:1px solid var(--life-line);border-bottom:1px solid var(--life-line)}
.cb-light .txt b{color:var(--life-navy)} .cb-light .txt span{color:var(--life-muted)}
.cb-light .a1{background:var(--life-navy);color:#fff}
.cb-light .a1:hover{background:var(--life-navy2)}
.cb-light .a2,.cb-light .a3{border:1px solid var(--life-navy);color:var(--life-navy)}
.cb-light .a2:hover,.cb-light .a3:hover{background:var(--life-navy);color:#fff}
/* dark band */
.cb-dark{background:var(--life-navy2);border-top:1px solid rgba(200,163,60,.32);
border-bottom:1px solid rgba(200,163,60,.32)}
.cb-dark .txt b{color:#fff} .cb-dark .txt span{color:#A9BAD1}
.cb-dark .a1{background:var(--life-gold);color:var(--life-white)}
.cb-dark .a1:hover{background:var(--life-gold-lt)}
.cb-dark .a2,.cb-dark .a3{border:1px solid rgba(255,255,255,.45);color:#fff}
.cb-dark .a2:hover,.cb-dark .a3:hover{border-color:var(--life-gold);color:var(--life-gold)}
/* life-gold accent band */
.cb-life-gold{background:var(--life-gold)}
.cb-life-gold .txt b{color:var(--life-navy)} .cb-life-gold .txt span{color:#5C4A18}
.cb-life-gold .a1{background:var(--life-navy);color:#fff}
.cb-life-gold .a1:hover{background:var(--life-navy3)}
.cb-life-gold .a2,.cb-life-gold .a3{border:1px solid rgba(11,37,69,.55);color:var(--life-navy)}
.cb-life-gold .a2:hover,.cb-life-gold .a3:hover{background:var(--life-navy);color:#fff;border-color:var(--life-navy)}
@media(max-width:760px){
.ctaband .in{flex-direction:column;align-items:flex-start;padding:28px 24px}
.ctaband .acts a{padding:12px 18px;font-size:11px}
}

/* ---------- CTA ---------- */
.cta{background:var(--life-gold);color:var(--life-white);padding:14px 30px;
    font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;
    transition:background .2s,transform .2s;white-space:nowrap}
.cta:hover{background:var(--life-gold-lt);transform:translateY(-1px)}
.life-final{background:var(--life-navy3);color:#fff;padding:110px 0;text-align:center;position:relative;overflow:hidden}
.life-final::before{content:"";position:absolute;inset:0;
background:radial-gradient(760px 400px at 50% 0,rgba(200,163,60,.16),transparent 62%)}
.life-final h2{color:#fff;position:relative}
.life-final p{max-width:640px;margin:22px auto 0;color:#B7C4D8;position:relative}
.btnrow{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:40px;position:relative}
.btn2{border:1px solid rgba(255,255,255,.42);color:#fff;padding:14px 30px;font-size:12px;
font-weight:600;letter-spacing:1.6px;text-transform:uppercase;transition:all .2s}
.btn2:hover{border-color:var(--life-gold);color:var(--life-gold)}

@media(max-width:720px){
  section{padding:74px 0}
  .life-hero{padding-top:85px}
  .admin-bar .life-hero{padding-top:65px}
  .quote{padding:44px 26px}
  .hs{flex:1 1 50%;border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}
  .g2.reveal.in {grid-template-columns:1fr !important;}
  .ctaband .txt {flex: 1 1 0px;}
  .g2.mt.reveal.in .mt {grid-template-columns:1fr !important;}
  .reveal.in .mt {grid-template-columns:1fr !important;}
  .life-wrap {
    text-align:center;
  }
  .rule {margin-left: auto; margin-right: auto}
  .card .ico {
    margin-left: auto;
    margin-right: auto;
  }
  .ctaband .txt {
    text-align: center;
  }
  .ctaband .acts {
    justify-content: center;
  }
  .chips {
    justify-content: center;
  }
  .life-final {
    padding: 50px 0;
  }
  figcaption {
    font-size: 12.5px;
  }
  figcaption b {
    font-size: 17px;
  }
}

@media(min-width:721px) and (max-width:991px){
  .g2 {grid-template-columns: 1fr;}
}
