/* page-contact.css — extracted from source-mockups/07-contact.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;}

  .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:64px 0 56px;position:relative;overflow:hidden;}
  .hero::before{content:"hi";position:absolute;top:40px;right:-40px;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;}
  .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:28px;}
  .hero h1{font-family:'Fraunces',serif;font-weight:400;font-size:112px;line-height:0.92;letter-spacing:-0.038em;color:var(--navy);}
  .hero h1 em{font-style:italic;color:var(--fb-warm);}
  .hero .deck{margin-top:28px;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;}

  /* ===== ROUTING CARDS ===== */
  .routes{padding:48px 0 80px;background:var(--cream-warm);}
  .routes .head{margin-bottom:32px;}
  .routes .eyebrow{font-size:11px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;color:var(--fb-warm);margin-bottom:18px;}
  .routes h2{font-family:'Fraunces',serif;font-weight:400;font-size:42px;line-height:1.05;letter-spacing:-0.022em;color:var(--navy);}
  .routes h2 em{font-style:italic;color:var(--fb-warm);}
  .routes h2 + p{margin-top:14px;font-size:15.5px;color:var(--ink-mid);line-height:1.6;max-width:580px;}
  .routes h2 + p em{font-family:'Fraunces',serif;font-style:italic;color:var(--navy);font-weight:500;}

  .routes .grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
  .routes .route{background:var(--cream);border:1px solid var(--hairline);border-radius:12px 0 12px 12px;padding:32px 28px;display:flex;flex-direction:column;transition:all 0.2s;}
  .routes .route:hover{border-color:var(--fb-warm);transform:translateY(-3px);}
  .routes .route.featured{background:var(--navy);color:var(--cream);border-color:var(--navy);}
  .routes .route .for-tag{font-size:10.5px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--fb-warm);margin-bottom:14px;}
  .routes .route.featured .for-tag{color:var(--fb-warm);}
  .routes .route h3{font-family:'Fraunces',serif;font-weight:500;font-size:22px;line-height:1.1;letter-spacing:-0.012em;color:var(--navy);margin-bottom:6px;}
  .routes .route.featured h3{color:var(--cream);}
  .routes .route h3 em{font-style:italic;color:var(--fb-warm);}
  .routes .route .role-line{font-family:'Fraunces',serif;font-style:italic;font-size:13px;color:var(--ink-mid);margin-bottom:20px;}
  .routes .route.featured .role-line{color:rgba(250,247,242,0.7);}
  .routes .route .contact-lines{flex:1;padding-top:18px;border-top:1px solid var(--hairline);}
  .routes .route.featured .contact-lines{border-color:rgba(250,247,242,0.18);}
  .routes .route .line{padding:7px 0;font-size:13px;display:flex;justify-content:space-between;align-items:baseline;gap:12px;}
  .routes .route .line .lbl{font-family:'Fraunces',serif;font-style:italic;color:var(--ink-mid);font-size:11.5px;}
  .routes .route.featured .line .lbl{color:rgba(250,247,242,0.55);}
  .routes .route .line .val{color:var(--navy);font-weight:500;text-align:right;font-size:12.5px;}
  .routes .route.featured .line .val{color:var(--cream);}
  .routes .route .response{margin-top:18px;padding-top:14px;border-top:1px solid var(--hairline);font-family:'Fraunces',serif;font-style:italic;font-size:11.5px;color:var(--ink-mid);}
  .routes .route.featured .response{border-color:rgba(250,247,242,0.18);color:rgba(250,247,242,0.55);}
  .routes .route .response em{color:var(--fb-warm);font-weight:500;}

  /* ===== FORM ===== */
  .form-band{padding:96px 0;background:var(--cream);border-top:1px solid var(--hairline);}
  .form-band .row{display:grid;grid-template-columns:1fr 1.3fr;gap:80px;align-items:start;}
  .form-band .left{position:sticky;top:32px;}
  .form-band .eyebrow{font-size:11px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;color:var(--fb-warm);margin-bottom:22px;}
  .form-band h2{font-family:'Fraunces',serif;font-weight:400;font-size:52px;line-height:1;letter-spacing:-0.025em;color:var(--navy);}
  .form-band h2 em{font-style:italic;color:var(--fb-warm);}
  .form-band .left p{margin-top:22px;font-size:15.5px;line-height:1.65;color:var(--ink);}
  .form-band .left p em{font-family:'Fraunces',serif;font-style:italic;color:var(--fb-warm);font-weight:500;}
  .form-band .left .signal{margin-top:32px;padding:24px 28px;background:var(--cream-warm);border-radius:12px 0 12px 12px;border:1px solid var(--hairline);}
  .form-band .left .signal .k{font-size:10.5px;text-transform:uppercase;letter-spacing:0.16em;font-weight:700;color:var(--fb-warm);margin-bottom:8px;}
  .form-band .left .signal p{margin:0;font-family:'Fraunces',serif;font-style:italic;font-size:15px;color:var(--navy);line-height:1.5;letter-spacing:-0.005em;}
  .form-band .left .signal p em{color:var(--fb-warm);font-weight:500;}

  .form-card{background:var(--cream-warm);border:1px solid var(--hairline);border-radius:14px 0 14px 14px;padding:48px 48px 44px;}
  .form-card .field{margin-bottom:24px;}
  .form-card .field label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:0.14em;font-weight:600;color:var(--ink-mid);margin-bottom:10px;}
  .form-card .field label .req{color:var(--fb-warm);margin-left:4px;}
  .form-card .field input,
  .form-card .field select,
  .form-card .field textarea{
    width:100%;padding:14px 16px;
    border:1px solid var(--hairline);background:var(--cream);
    border-radius:8px 0 8px 8px;
    font-family:'Epilogue',sans-serif;font-size:15px;color:var(--ink);
    transition:all 0.18s;line-height:1.4;
  }
  .form-card .field input:focus,
  .form-card .field select:focus,
  .form-card .field textarea:focus{outline:none;border-color:var(--fb-warm);background:var(--cream);}
  .form-card .field textarea{min-height:140px;resize:vertical;font-family:'Epilogue',sans-serif;}
  .form-card .field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235a6776' d='M6 8L0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px;}
  .form-card .row-two{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
  .form-card .row-two .field{margin-bottom:24px;}
  .form-card .privacy{font-family:'Fraunces',serif;font-style:italic;font-size:12.5px;color:var(--ink-mid);line-height:1.5;margin-bottom:24px;padding:14px 18px;background:var(--cream);border-radius:6px 0 6px 6px;}
  .form-card .privacy em{color:var(--fb-warm);font-weight:500;}
  .form-card .submit-row{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;}
  .form-card button{background:var(--fb-warm);color:var(--cream);border:none;cursor:pointer;padding:16px 36px;border-radius:10px 0 10px 10px;font-family:'Epilogue',sans-serif;font-size:13px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;transition:all 0.18s;}
  .form-card button:hover{background:var(--navy);}
  .form-card .response-note{font-family:'Fraunces',serif;font-style:italic;font-size:13px;color:var(--ink-mid);}
  .form-card .response-note em{color:var(--fb-warm);font-weight:500;}

  /* ===== LOCATIONS ===== */
  .locations{padding:96px 0;background:var(--navy);color:var(--cream);position:relative;overflow:hidden;}
  .locations::before{content:"where";position:absolute;bottom:-100px;right:-40px;font-family:'Fraunces',serif;font-style:italic;font-weight:400;font-size:380px;line-height:1;color:var(--cream);opacity:0.04;letter-spacing:-0.04em;pointer-events:none;}
  .locations .container{position:relative;z-index:2;}
  .locations .head{margin-bottom:56px;}
  .locations .eyebrow{font-size:11px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;color:var(--fb-warm);margin-bottom:22px;}
  .locations h2{font-family:'Fraunces',serif;font-weight:400;font-size:52px;line-height:1;letter-spacing:-0.025em;color:var(--cream);}
  .locations h2 em{font-style:italic;color:var(--fb-warm);}
  .locations .grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;}
  .locations .place{padding:32px 0;border-top:1px solid rgba(250,247,242,0.18);}
  .locations .place .city{font-family:'Fraunces',serif;font-weight:500;font-size:28px;letter-spacing:-0.022em;color:var(--cream);margin-bottom:6px;line-height:1;}
  .locations .place .city em{font-style:italic;color:var(--fb-warm);}
  .locations .place .role{font-family:'Fraunces',serif;font-style:italic;font-size:13px;color:rgba(250,247,242,0.7);margin-bottom:20px;}
  .locations .place .addr{font-size:13.5px;line-height:1.55;color:rgba(250,247,242,0.85);}
  .locations .place .addr strong{display:block;color:var(--cream);font-weight:500;margin-bottom:4px;}
  .locations .place .who{margin-top:16px;padding-top:14px;border-top:1px solid rgba(250,247,242,0.12);font-family:'Fraunces',serif;font-style:italic;font-size:12px;color:rgba(250,247,242,0.65);}
  .locations .place .who em{color:var(--fb-warm);font-weight:500;}

  /* ===== SOCIAL + NEWSLETTER SPLIT ===== */
  .split{padding:0;background:var(--cream);display:grid;grid-template-columns:1fr 1fr;}
  .split .panel{padding:96px 64px;}
  .split .panel.social{background:var(--cream-warm);border-right:1px solid var(--hairline);}
  .split .panel.news{background:var(--cream);}
  .split .panel .eyebrow{font-size:11px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;color:var(--fb-warm);margin-bottom:22px;}
  .split .panel h3{font-family:'Fraunces',serif;font-weight:400;font-size:42px;line-height:1.02;letter-spacing:-0.022em;color:var(--navy);}
  .split .panel h3 em{font-style:italic;color:var(--fb-warm);}
  .split .panel p{margin-top:18px;font-size:15px;line-height:1.6;color:var(--ink-mid);max-width:380px;}
  .split .panel p em{font-family:'Fraunces',serif;font-style:italic;color:var(--navy);font-weight:500;}
  .split .panel.social .social-grid{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .split .panel.social .social-link{background:var(--cream);padding:18px 22px;border:1px solid var(--hairline);border-radius:8px 0 8px 8px;display:flex;flex-direction:column;gap:4px;transition:all 0.18s;}
  .split .panel.social .social-link:hover{border-color:var(--fb-warm);}
  .split .panel.social .social-link .platform{font-size:10.5px;text-transform:uppercase;letter-spacing:0.14em;font-weight:700;color:var(--fb-warm);}
  .split .panel.social .social-link .handle{font-family:'Fraunces',serif;font-style:italic;font-size:18px;color:var(--navy);letter-spacing:-0.01em;}
  .split .panel.social .social-link .followers{font-size:11.5px;color:var(--ink-mid);margin-top:2px;}
  .split .panel.news form{margin-top:28px;display:flex;gap:12px;max-width:440px;}
  .split .panel.news input{flex:1;padding:14px 18px;border:1px solid var(--hairline);background:var(--cream-warm);border-radius:8px 0 8px 8px;font-family:'Epilogue',sans-serif;font-size:14px;color:var(--ink);}
  .split .panel.news input:focus{outline:none;border-color:var(--fb-warm);}
  .split .panel.news button{background:var(--navy);color:var(--cream);border:none;cursor:pointer;padding:14px 24px;border-radius:8px 0 8px 8px;font-family:'Epilogue',sans-serif;font-size:12px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;}
  .split .panel.news .freq{margin-top:18px;font-family:'Fraunces',serif;font-style:italic;font-size:13px;color:var(--ink-mid);}
  .split .panel.news .freq em{color:var(--fb-warm);font-weight:500;}

  /* ===== 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;border-top:1px solid rgba(250,247,242,0.1);}
  .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){
    .hero h1{font-size:80px;}
    .routes .grid4{grid-template-columns:1fr 1fr;}
    .locations .grid4{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:760px){
    .hero h1{font-size:52px;}
    .routes .grid4,.locations .grid4,.split,.form-card .row-two,.form-band .row,.fb-footer .grid{grid-template-columns:1fr !important;}
    .routes h2,.form-band h2,.locations h2{font-size:36px;}
    .split .panel{padding:64px 32px;}
    .form-card{padding:32px 28px;}
    .fb-footer .footer-top{flex-direction:column;align-items:flex-start;}
    .fb-footer .culturis-tagline{text-align:left;}
  }
