/* page-events.css — extracted from source-mockups/04-events.html */
/* This file holds page-specific styles. Tokens live in style.css; reusable
   components in fb-components.css. Move CSS upward when it generalizes. */

:root {
    --navy:#0d1b2a; --navy-soft:#1a2a3d; --teal:#2fa68c; --teal-soft:#d6ebe5;
    --teal-deep:#1f7a66; --cream:#faf7f2; --cream-warm:#f3ede2;
    --ink:#0d1b2a; --ink-mid:#5a6776; --hairline:#e7e1d6;
    --fb-warm:#e8662a; --fb-warm-soft:#f6d4bc; --fb-warm-deep:#c84e15;
    --fb-blue:#21ACCB; --fb-blue-soft:#B8E4ED; --fb-blue-deep:#1A88A3;
  }
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{font-family:'Epilogue',sans-serif;background:var(--cream-warm);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.6;}
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  .container{max-width:1240px;margin:0 auto;padding:0 32px;}

  /* ===== HEADER ===== */
  .fb-header{padding:26px 0;}
  .fb-header .nav-row{display:flex;align-items:center;gap:40px;}
  .fb-header .wordmark{font-family:'Fraunces',serif;font-weight:500;font-size:24px;letter-spacing:-0.01em;}
  .fb-header .wordmark .fitness{color:var(--fb-blue);font-style:normal;}
  .fb-header .wordmark em{font-style:italic;color:var(--fb-warm);}
  .fb-header nav.main{display:flex;gap:26px;margin-left:auto;align-items:center;}
  .fb-header nav.main a{font-size:13.5px;font-weight:500;color:var(--ink);transition:color 0.18s;position:relative;}
  .fb-header nav.main a:hover{color:var(--fb-warm);}
  .fb-header nav.main a.active{color:var(--fb-warm);}
  .fb-header nav.main a.active::after{content:"";position:absolute;bottom:-8px;left:0;right:0;height:2px;background:var(--fb-warm);border-radius:1px;}
  .fb-header .cta-mini{background:var(--fb-warm);color:var(--cream);padding:11px 22px;border-radius:8px 0 8px 8px;font-size:12px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;}
  .fb-header .cta-mini:hover{background:var(--navy);}

  /* ===== CRUMBS ===== */
  .crumbs{padding:18px 0;border-bottom:1px solid var(--hairline);font-size:12px;color:var(--ink-mid);letter-spacing:0.06em;}
  .crumbs a{color:var(--ink-mid);}
  .crumbs a:hover{color:var(--fb-warm);}
  .crumbs .sep{margin:0 10px;color:var(--hairline);}
  .crumbs em{font-family:'Fraunces',serif;font-style:italic;color:var(--navy);font-weight:500;}

  /* ===== HERO ===== */
  .hero{padding:48px 0 64px;position:relative;overflow:hidden;}
  .hero .watermark{position:absolute;top:0;right:-120px;font-family:'Fraunces',serif;font-style:italic;font-weight:400;font-size:440px;line-height:1;color:var(--navy);opacity:0.045;letter-spacing:-0.04em;pointer-events:none;z-index:1;}
  .hero .container{position:relative;z-index:2;}
  .hero .eyebrow{font-size:11px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;color:var(--fb-warm);margin-bottom:24px;}
  .hero h1{font-family:'Fraunces',serif;font-weight:400;font-size:96px;line-height:0.95;letter-spacing:-0.035em;color:var(--navy);}
  .hero h1 em{font-style:italic;color:var(--fb-warm);}
  .hero .deck{margin-top:24px;font-size:18px;line-height:1.6;color:var(--ink-mid);max-width:560px;}
  .hero .deck em{font-family:'Fraunces',serif;font-style:italic;color:var(--navy);font-weight:500;}

  /* ===== FILTER STRIP ===== */
  .filters{padding:36px 0 24px;background:var(--cream-warm);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);}
  .filters .row{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
  .filters .group .key{font-size:10.5px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-mid);margin-bottom:10px;}
  .filters .group .pills{display:flex;gap:6px;flex-wrap:wrap;}
  .filters .group .pill{background:var(--cream);border:1px solid var(--hairline);padding:8px 14px;border-radius:6px 0 6px 6px;font-size:12.5px;font-weight:500;color:var(--ink);cursor:pointer;transition:all 0.18s;}
  .filters .group .pill:hover{border-color:var(--fb-warm);}
  .filters .group .pill.active{background:var(--navy);color:var(--cream);border-color:var(--navy);}
  .filters .group .pill.cat-hike.active{background:var(--fb-blue);border-color:var(--fb-blue);}
  .filters .group .pill.cat-mb.active{background:var(--navy);border-color:var(--navy);}
  .filters .group .pill.cat-pace.active{background:var(--fb-warm);border-color:var(--fb-warm);color:var(--cream);}
  .filters .group .pill.cat-retreat.active{background:var(--fb-warm-deep);border-color:var(--fb-warm-deep);color:var(--cream);}

  /* ===== CALENDAR ===== */
  .cal-section{padding:64px 0 32px;background:var(--cream);}
  .cal-section .cal-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:32px;}
  .cal-section .cal-head h2{font-family:'Fraunces',serif;font-weight:400;font-size:64px;line-height:1;letter-spacing:-0.025em;color:var(--navy);}
  .cal-section .cal-head h2 em{font-style:italic;color:var(--fb-warm);}
  .cal-section .cal-head .nav-arrows{display:flex;gap:6px;align-items:center;}
  .cal-section .cal-head .nav-arrows .month-pill{font-family:'Fraunces',serif;font-style:italic;font-size:15px;color:var(--ink-mid);padding:0 16px;}
  .cal-section .cal-head .nav-arrows button{width:42px;height:42px;background:var(--cream-warm);border:1px solid var(--hairline);border-radius:8px 0 8px 8px;cursor:pointer;color:var(--navy);font-size:18px;transition:all 0.18s;}
  .cal-section .cal-head .nav-arrows button:hover{background:var(--fb-warm);color:var(--cream);border-color:var(--fb-warm);}

  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;background:var(--cream-warm);padding:8px;border-radius:14px 0 14px 14px;border:1px solid var(--hairline);}
  .cal-grid .dow{text-align:center;font-size:11px;text-transform:uppercase;letter-spacing:0.12em;font-weight:600;color:var(--ink-mid);padding:10px 0 14px;}
  .cal-grid .day{min-height:120px;border-radius:8px 0 8px 8px;background:var(--cream);border:1px solid transparent;padding:8px 10px 10px;font-size:13px;color:var(--ink);font-weight:500;position:relative;display:flex;flex-direction:column;gap:4px;transition:all 0.18s;cursor:pointer;}
  .cal-grid .day:hover{border-color:var(--fb-warm);}
  .cal-grid .day.muted{color:var(--hairline);background:transparent;cursor:default;}
  .cal-grid .day.muted:hover{border-color:transparent;}
  .cal-grid .day.today{background:var(--navy);color:var(--cream);border-color:var(--navy);}
  .cal-grid .day .date-num{font-family:'Fraunces',serif;font-style:italic;font-weight:500;font-size:18px;letter-spacing:-0.01em;line-height:1;margin-bottom:4px;}
  .cal-grid .day.today .date-num{color:var(--fb-warm);}
  .cal-grid .day .ev{font-family:'Epilogue',sans-serif;font-size:10.5px;font-weight:600;padding:2px 6px;border-radius:3px;letter-spacing:0.04em;line-height:1.3;border-left:2px solid;display:block;text-align:left;}
  .cal-grid .day .ev.hike{background:rgba(33,172,203,0.12);color:var(--fb-blue-deep);border-color:var(--fb-blue);}
  .cal-grid .day .ev.mb{background:rgba(13,27,42,0.06);color:var(--navy);border-color:var(--navy);}
  .cal-grid .day .ev.pace{background:rgba(232,102,42,0.12);color:var(--fb-warm-deep);border-color:var(--fb-warm);}
  .cal-grid .day .ev.retreat{background:var(--fb-warm);color:var(--cream);border-color:var(--fb-warm-deep);font-style:italic;font-weight:500;}
  .cal-grid .day.today .ev{background:rgba(250,247,242,0.1);color:var(--cream);border-color:var(--fb-warm);}

  .cal-key{margin-top:32px;display:flex;gap:24px;flex-wrap:wrap;padding-top:24px;border-top:1px solid var(--hairline);}
  .cal-key .item{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-mid);font-weight:500;}
  .cal-key .item .dot{width:18px;height:12px;border-radius:2px;border-left:2px solid;}
  .cal-key .item .dot.hike{background:rgba(33,172,203,0.12);border-color:var(--fb-blue);}
  .cal-key .item .dot.mb{background:rgba(13,27,42,0.06);border-color:var(--navy);}
  .cal-key .item .dot.pace{background:rgba(232,102,42,0.12);border-color:var(--fb-warm);}
  .cal-key .item .dot.retreat{background:var(--fb-warm);border-color:var(--fb-warm-deep);}
  .cal-key .item .dot.today{background:var(--navy);border:none;}
  .cal-key .download{margin-left:auto;font-family:'Fraunces',serif;font-style:italic;font-size:15px;color:var(--fb-warm);border-bottom:1px solid var(--fb-warm);padding-bottom:1px;}

  /* ===== EVENT LIST ===== */
  .events-list{padding:96px 0;background:var(--cream-warm);border-top:1px solid var(--hairline);}
  .events-list .head{display:flex;justify-content:space-between;align-items:end;margin-bottom:40px;flex-wrap:wrap;gap:20px;}
  .events-list h2{font-family:'Fraunces',serif;font-weight:400;font-size:52px;letter-spacing:-0.025em;line-height:1;}
  .events-list h2 em{font-style:italic;color:var(--fb-warm);}
  .events-list .head .meta{font-family:'Fraunces',serif;font-style:italic;font-size:16px;color:var(--ink-mid);}
  .events-list .head .meta em{color:var(--fb-warm);font-weight:500;}

  .events-list .month-bucket{margin-top:24px;}
  .events-list .month-label{font-family:'Fraunces',serif;font-style:italic;font-weight:500;font-size:28px;color:var(--navy);letter-spacing:-0.015em;margin-bottom:8px;padding-bottom:8px;}
  .events-list .month-label em{color:var(--fb-warm);}
  .events-list .e-row{display:grid;grid-template-columns:100px 70px 320px 1fr 200px auto;gap:20px;align-items:center;padding:24px 0;border-top:1px solid var(--hairline);}
  .events-list .e-row:last-child{border-bottom:1px solid var(--hairline);}
  .events-list .e-row .date-block .day{font-family:'Fraunces',serif;font-style:italic;font-weight:500;font-size:34px;color:var(--fb-warm);line-height:1;}
  .events-list .e-row .date-block .mo{font-size:11px;text-transform:uppercase;letter-spacing:0.14em;color:var(--ink-mid);font-weight:600;margin-top:6px;}
  .events-list .e-row .tag{font-family:'Fraunces',serif;font-style:italic;font-size:11px;color:var(--ink-mid);text-align:center;line-height:1.3;}
  .events-list .e-row .tag.launch{background:var(--fb-warm);color:var(--cream);padding:6px 8px;border-radius:4px 0 4px 4px;font-style:normal;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;font-size:9.5px;}
  .events-list .e-row .tag.retreat{background:var(--navy);color:var(--fb-warm);padding:6px 8px;border-radius:4px 0 4px 4px;font-style:normal;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;font-size:9.5px;}
  .events-list .e-row .tag.hike{color:var(--fb-blue-deep);font-weight:500;}
  .events-list .e-row .tag.mb{color:var(--navy);font-weight:500;}
  .events-list .e-row .name h4{font-family:'Fraunces',serif;font-weight:500;font-size:20px;letter-spacing:-0.01em;margin-bottom:6px;}
  .events-list .e-row .name .lead{font-size:13px;color:var(--ink-mid);line-height:1.5;}
  .events-list .e-row .name .lead strong{color:var(--navy);}
  .events-list .e-row .blurb{font-size:13.5px;line-height:1.55;color:var(--ink);}
  .events-list .e-row .place{font-size:11px;text-transform:uppercase;letter-spacing:0.12em;color:var(--ink-mid);font-weight:600;}
  .events-list .e-row .place strong{display:block;color:var(--navy);font-family:'Fraunces',serif;font-style:italic;font-size:14.5px;text-transform:none;letter-spacing:-0.01em;margin-top:4px;font-weight:500;}
  .events-list .e-row .rsvp{background:var(--navy);color:var(--cream);padding:12px 22px;border-radius:8px 0 8px 8px;font-size:12px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;text-align:center;min-width:80px;}
  .events-list .e-row.retreat-row .date-block{background:var(--fb-warm);padding:14px 16px;border-radius:8px 0 8px 8px;color:var(--cream);}
  .events-list .e-row.retreat-row .date-block .day{color:var(--cream);}
  .events-list .e-row.retreat-row .date-block .mo{color:rgba(250,247,242,0.85);}
  .events-list .e-row.retreat-row .rsvp{background:var(--fb-warm);}

  /* ===== RHYTHMS ===== */
  .rhythms{padding:96px 0;background:var(--cream);}
  .rhythms .row{display:grid;grid-template-columns:1fr 1.4fr;gap:80px;align-items:center;}
  .rhythms .eyebrow{font-size:11px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;color:var(--fb-warm);margin-bottom:20px;}
  .rhythms h2{font-family:'Fraunces',serif;font-weight:400;font-size:52px;line-height:1.02;letter-spacing:-0.025em;color:var(--navy);}
  .rhythms h2 em{font-style:italic;color:var(--fb-warm);}
  .rhythms p{margin-top:24px;font-size:16.5px;line-height:1.65;color:var(--ink);max-width:480px;}
  .rhythms .ctas{margin-top:28px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;}
  .rhythms .btn-warm{background:var(--fb-warm);color:var(--cream);padding:14px 26px;border-radius:8px 0 8px 8px;font-size:12px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;display:inline-block;}
  .rhythms .link{font-family:'Fraunces',serif;font-style:italic;font-size:16px;color:var(--navy);padding-bottom:2px;border-bottom:1px solid var(--navy);}

  .rhythms .cadence{background:var(--cream-warm);border:1px solid var(--hairline);border-radius:14px 0 14px 14px;padding:36px 40px;}
  .rhythms .cadence .h{font-family:'Fraunces',serif;font-style:italic;font-size:20px;color:var(--navy);margin-bottom:18px;letter-spacing:-0.01em;font-weight:500;}
  .rhythms .cadence .h em{color:var(--fb-warm);}
  .rhythms .cadence .item{padding:14px 0;border-top:1px solid var(--hairline);display:grid;grid-template-columns:100px 1fr auto;gap:16px;align-items:baseline;}
  .rhythms .cadence .item:first-of-type{border-top:none;padding-top:0;}
  .rhythms .cadence .item .when{font-family:'Fraunces',serif;font-style:italic;font-size:15px;color:var(--fb-warm);font-weight:500;}
  .rhythms .cadence .item .name{font-size:14px;color:var(--navy);font-weight:500;}
  .rhythms .cadence .item .name .note{display:block;margin-top:2px;font-size:12px;color:var(--ink-mid);font-weight:400;font-family:'Fraunces',serif;font-style:italic;}
  .rhythms .cadence .item .cost{font-size:11px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-mid);}

  /* ===== NEWSLETTER ===== */
  .newsletter{padding:96px 0;background:var(--cream-warm);border-top:1px solid var(--hairline);text-align:center;}
  .newsletter .eyebrow{font-size:11px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;color:var(--fb-warm);margin-bottom:20px;}
  .newsletter h2{font-family:'Fraunces',serif;font-weight:400;font-size:48px;line-height:1.02;letter-spacing:-0.025em;max-width:680px;margin:0 auto;}
  .newsletter h2 em{font-style:italic;color:var(--fb-warm);}
  .newsletter p{margin:20px auto 32px;font-size:15.5px;line-height:1.65;color:var(--ink-mid);max-width:520px;}
  .newsletter form{display:flex;gap:12px;max-width:480px;margin:0 auto;}
  .newsletter input{flex:1;padding:15px 20px;border:1px solid var(--hairline);border-radius:8px 0 8px 8px;font-family:'Epilogue',sans-serif;font-size:14px;background:var(--cream);color:var(--ink);}
  .newsletter input:focus{outline:none;border-color:var(--fb-warm);}
  .newsletter button{background:var(--navy);color:var(--cream);border:none;cursor:pointer;padding:15px 28px;border-radius:8px 0 8px 8px;font-family:'Epilogue',sans-serif;font-size:12px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;}

  /* ===== FOOTER ===== */
  .fb-footer{background:var(--navy);color:rgba(250,247,242,0.65);padding:80px 0 40px;font-size:13.5px;position:relative;overflow:hidden;}
  .fb-footer::before{content:"Culturis";position:absolute;bottom:-100px;left:-40px;font-family:'Fraunces',serif;font-style:italic;font-weight:500;font-size:360px;color:var(--cream);opacity:0.025;letter-spacing:-0.04em;pointer-events:none;line-height:1;}
  .fb-footer .footer-top{display:flex;justify-content:space-between;align-items:end;padding-bottom:48px;border-bottom:1px solid rgba(250,247,242,0.12);flex-wrap:wrap;gap:32px;position:relative;z-index:2;}
  .fb-footer .col-brand .wordmark-lg{font-family:'Fraunces',serif;font-weight:500;color:var(--cream);font-size:36px;margin-bottom:14px;display:block;letter-spacing:-0.02em;line-height:1;}
  .fb-footer .col-brand .wordmark-lg .fitness{color:var(--fb-blue);font-style:normal;}
  .fb-footer .col-brand .wordmark-lg em{font-style:italic;color:var(--fb-warm);}
  .fb-footer .col-brand p{max-width:380px;line-height:1.6;color:rgba(250,247,242,0.55);font-size:13px;}
  .fb-footer .culturis-tagline{text-align:right;font-family:'Fraunces',serif;font-style:italic;font-size:26px;color:var(--cream);letter-spacing:-0.015em;line-height:1.2;}
  .fb-footer .culturis-tagline em{color:var(--fb-warm);}
  .fb-footer .culturis-tagline .url{display:block;margin-top:12px;font-family:'Epilogue',sans-serif;font-style:normal;font-size:12px;text-transform:uppercase;letter-spacing:0.16em;color:rgba(250,247,242,0.55);font-weight:600;}
  .fb-footer .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:48px;padding:48px 0 32px;border-bottom:1px solid rgba(250,247,242,0.12);position:relative;z-index:2;}
  .fb-footer .grid h6{font-family:'Fraunces',serif;font-style:italic;font-weight:500;font-size:16px;color:var(--cream);margin-bottom:18px;letter-spacing:-0.005em;}
  .fb-footer ul{list-style:none;}
  .fb-footer ul li{padding:5px 0;}
  .fb-footer ul li a:hover{color:var(--fb-warm);}
  .fb-footer ul li.platform a{display:flex;justify-content:space-between;align-items:baseline;}
  .fb-footer ul li.platform .role{font-family:'Fraunces',serif;font-style:italic;font-size:11px;color:rgba(250,247,242,0.4);}
  .fb-footer .bottom{padding-top:28px;display:flex;justify-content:space-between;font-size:12px;color:rgba(250,247,242,0.45);flex-wrap:wrap;gap:12px;position:relative;z-index:2;}
  .fb-footer .bottom em{font-family:'Fraunces',serif;font-style:italic;color:var(--fb-warm);}

  @media (max-width:1024px){
    .cal-grid .day{min-height:88px;}
    .cal-grid .day .ev{font-size:9.5px;padding:1px 4px;}
    .events-list .e-row{grid-template-columns:90px 60px 1fr auto;}
    .events-list .e-row .blurb,.events-list .e-row .place{display:none;}
  }
  @media (max-width:760px){
    .hero h1{font-size:56px;}
    .filters .row,.rhythms .row,.fb-footer .grid{grid-template-columns:1fr !important;}
    .cal-grid{font-size:11px;}
    .cal-grid .day{min-height:64px;padding:4px;}
    .cal-grid .day .ev{display:none;}
    .cal-grid .day.has-event::after{content:"";width:6px;height:6px;background:var(--fb-warm);border-radius:50%;position:absolute;bottom:6px;left:6px;}
    .events-list .e-row{grid-template-columns:1fr;}
    .fb-footer .footer-top{flex-direction:column;align-items:flex-start;}
    .fb-footer .culturis-tagline{text-align:left;}
  }
