/*
Theme Name: Mission ONE Portal
Theme URI: https://getfreedommd.com
Description: Freedom MD member portal skin — Mission ONE design system (black/gold, Oswald + Inter). Child of Storefront. Unisex: Freedom MD is the umbrella brand, the portal is identical for every member; only the landers are demo-split.
Author: BlueSky Media
Template: storefront
Version: 0.1.0
*/

/* ============================================================
   Self-hosted fonts. The member portal makes NO third-party
   requests by design (see docs/PRIVACY-COMPLIANCE.md).
   ============================================================ */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/inter-400.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/inter-500.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/inter-600.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/inter-700.woff2') format('woff2');}
@font-face{font-family:'Oswald';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/oswald-500.woff2') format('woff2');}
@font-face{font-family:'Oswald';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/oswald-600.woff2') format('woff2');}
@font-face{font-family:'Oswald';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/oswald-700.woff2') format('woff2');}

:root{
  --m1-ink:#0A0B0D;
  --m1-raised:#15171A;
  --m1-raised-2:#1B1E22;
  --m1-gold:#C9A961;
  --m1-gold-deep:#B8935E;
  --m1-bone:#F5F2EC;
  --m1-line:#2A2D31;
  --m1-text:#FFFFFF;
  --m1-mute:#9BA0A6;
  --m1-score:#5FCF80;
  --m1-display:'Oswald','Arial Narrow',sans-serif;
  --m1-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

/* ============================================================
   Portal shell — scoped to account pages so the rest of the
   store keeps Storefront's styling untouched.
   ============================================================ */
body.woocommerce-account{
  background:var(--m1-ink);
  color:var(--m1-text);
  font-family:var(--m1-body);
  -webkit-font-smoothing:antialiased;
}
body.woocommerce-account .site-content,
body.woocommerce-account .content-area,
body.woocommerce-account #content{background:var(--m1-ink);}
body.woocommerce-account .site-header,
body.woocommerce-account .site-footer{background:var(--m1-ink);border:0;}
body.woocommerce-account .site-header{border-bottom:1px solid var(--m1-line);}
body.woocommerce-account h1,body.woocommerce-account h2,
body.woocommerce-account h3,body.woocommerce-account h4{
  font-family:var(--m1-display);text-transform:uppercase;color:var(--m1-text);
  letter-spacing:.01em;font-weight:600;
}
body.woocommerce-account a{color:var(--m1-gold);}
body.woocommerce-account .site-branding,
body.woocommerce-account .storefront-primary-navigation,
body.woocommerce-account .storefront-breadcrumb,
body.woocommerce-account .site-info,
body.woocommerce-account .site-search,
body.woocommerce-account .entry-header,
body.woocommerce-account .page-title,
body.woocommerce-account header.entry-header .entry-title{display:none;}
body.woocommerce-account .content-area{padding-top:0;margin-top:0;}
body.woocommerce-account .entry-content{margin-top:0;}
/* Storefront's .col-full is the centring container — keep it. The masthead breaks
   out of it to full bleed instead of the container being widened, which used to
   throw the account nav against the viewport edge. */
body.woocommerce-account .m1-mast{
  margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
  width:100vw;padding-left:0;padding-right:0;}
/* portal content already sits inside the account content column */
.m1-portal{max-width:none;padding:0 0 90px;}
/* kill Storefront's link underlines + icon-font glyphs inside the portal */
body.woocommerce-account .m1-portal a,
body.woocommerce-account .woocommerce-MyAccount-navigation a{text-decoration:none;}
body.woocommerce-account .woocommerce-MyAccount-navigation li a::after,
body.woocommerce-account .woocommerce-MyAccount-navigation li a::before{display:none !important;content:none !important;}

/* ---- masthead -------------------------------------------------- */
.m1-mast{
  border-bottom:1px solid var(--m1-line);
  background:var(--m1-ink);
  padding:18px 0;margin-bottom:0;
}
.m1-mast-in{max-width:1180px;margin:0 auto;padding:0 24px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;}
.m1-brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
.m1-brand-txt{display:flex;flex-direction:column;line-height:1;}
.m1-brand-name{font-family:var(--m1-display);font-weight:700;font-size:19px;
  letter-spacing:.06em;color:#fff;text-transform:uppercase;}
.m1-brand-sub{font-size:9px;letter-spacing:.22em;color:var(--m1-mute);
  text-transform:uppercase;margin-top:4px;}
.m1-mast-right{font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--m1-mute);}
.m1-mast-right b{color:var(--m1-gold);font-weight:600;}


/* cross-link to the Mission Systems store (merchandise). Subscriptions stay in
   this portal; this is the doorway to the other side. */
.m1-cross{display:inline-flex;align-items:center;gap:9px;text-decoration:none;
  border:1px solid var(--m1-line);background:var(--m1-raised);border-radius:99px;
  padding:7px 15px 7px 10px;transition:border-color .16s,background .16s;}
.m1-cross:hover{border-color:var(--m1-gold);background:var(--m1-raised-2);}
.m1-cross span{font-family:var(--m1-display);font-size:12px;letter-spacing:.15em;
  text-transform:uppercase;color:#fff;font-weight:600;}
.m1-cross svg:last-child{color:var(--m1-gold);}
.m1-mast-plain{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--m1-mute);}
@media(max-width:620px){.m1-cross{padding:6px 11px 6px 8px}.m1-cross span{font-size:10px;letter-spacing:.1em}}

/* ---- layout ---------------------------------------------------- */
.m1-portal{max-width:1180px;margin:0 auto;padding:0 24px 90px;}
.m1-eyebrow{font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--m1-gold);font-weight:600;margin:0 0 10px;}
/* container already contributes 34px top padding on account pages */
.m1-hero{padding:8px 0 30px;}
.m1-hero h1{font-size:44px;line-height:1.02;margin:0 0 10px;font-weight:700;}
.m1-hero p{color:var(--m1-mute);font-size:15px;margin:0;max-width:60ch;}

.m1-grid{display:grid;gap:18px;margin:26px 0;}
.m1-grid-2{grid-template-columns:1fr 1fr;}
.m1-grid-3{grid-template-columns:repeat(3,1fr);}
/* auto-fit so tiles reflow instead of cramping their labels onto three lines */
.m1-grid-4{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));}

.m1-card{background:var(--m1-raised);border:1px solid var(--m1-line);
  border-radius:10px;padding:26px;}
.m1-card h3{font-size:15px;letter-spacing:.13em;margin:0 0 18px;color:#fff;}

/* ---- Mission ONE member card ----------------------------------- */
.m1-mcard{
  position:relative;overflow:hidden;min-height:196px;gap:18px;
  background:linear-gradient(140deg,#20232744 0%,#0C0E10 55%,#141719 100%),var(--m1-raised);
  border:1px solid #33373C;border-radius:12px;padding:26px;
  display:flex;flex-direction:column;justify-content:space-between;
}
.m1-mcard:before{
  content:"";position:absolute;right:-46px;top:-46px;width:230px;height:230px;
  background:radial-gradient(circle,rgba(201,169,97,.13) 0%,rgba(201,169,97,0) 68%);
}
.m1-mcard-top{display:flex;justify-content:space-between;align-items:flex-start;
  position:relative;z-index:1;}
.m1-mcard-label{font-family:var(--m1-display);font-size:13px;letter-spacing:.24em;
  color:#fff;text-transform:uppercase;font-weight:600;}
.m1-mcard-sub{font-size:9.5px;letter-spacing:.26em;color:var(--m1-gold);
  text-transform:uppercase;margin-top:5px;font-weight:600;}
.m1-mcard-name{font-family:var(--m1-display);font-size:25px;letter-spacing:.05em;
  text-transform:uppercase;color:#fff;position:relative;z-index:1;font-weight:600;}
.m1-mcard-meta{display:flex;gap:26px;position:relative;z-index:1;flex-wrap:wrap;}
.m1-mcard-meta div span{display:block;font-size:9px;letter-spacing:.14em;
  color:var(--m1-mute);text-transform:uppercase;margin-bottom:5px;white-space:nowrap;}
.m1-mcard-meta div b{font-size:13px;color:#fff;font-weight:600;letter-spacing:.03em;
  white-space:nowrap;}
.m1-chip{display:inline-flex;align-items:center;gap:6px;font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  padding:5px 11px;border-radius:99px;}
.m1-chip-on{background:rgba(95,207,128,.13);color:var(--m1-score);
  border:1px solid rgba(95,207,128,.32);}
.m1-chip-off{background:rgba(155,160,166,.1);color:var(--m1-mute);
  border:1px solid var(--m1-line);}
.m1-chip i{width:6px;height:6px;border-radius:99px;background:currentColor;
  display:inline-block;}

/* ---- MRR score ------------------------------------------------- */
.m1-score-head{display:flex;align-items:center;gap:22px;margin-bottom:20px;}
.m1-ring{position:relative;width:132px;height:132px;flex:0 0 132px;}
.m1-ring svg{transform:rotate(-90deg);}
.m1-ring-val{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;}
.m1-ring-val b{font-size:31px;font-weight:700;color:#fff;
  font-variant-numeric:tabular-nums;line-height:1;}
/* label must clear the stroke — it was clipping against the ring at 106px */
.m1-ring-val span{font-size:6.5px;letter-spacing:.08em;color:var(--m1-score);
  text-transform:uppercase;margin-top:5px;font-weight:600;white-space:nowrap;}
.m1-metrics{flex:1;display:flex;flex-direction:column;gap:9px;}
.m1-metric{display:grid;grid-template-columns:82px 1fr 30px;align-items:center;gap:11px;}
.m1-metric span{font-size:10px;letter-spacing:.13em;color:var(--m1-mute);
  text-transform:uppercase;}
.m1-bar{height:3px;background:#2E3237;border-radius:99px;overflow:hidden;}
.m1-bar i{display:block;height:100%;background:var(--m1-gold);border-radius:99px;}
.m1-metric b{font-size:11px;color:#fff;font-variant-numeric:tabular-nums;
  text-align:right;font-weight:600;}
.m1-preview{font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--m1-mute);border-top:1px solid var(--m1-line);padding-top:13px;
  margin-top:4px;line-height:1.6;}

/* ---- stat strip ------------------------------------------------ */
.m1-stat{background:var(--m1-raised);border:1px solid var(--m1-line);
  border-radius:10px;padding:20px 22px;}
.m1-stat span{display:block;font-size:9.5px;letter-spacing:.18em;
  color:var(--m1-mute);text-transform:uppercase;margin-bottom:8px;}
.m1-stat b{font-family:var(--m1-display);font-size:23px;color:#fff;
  font-weight:600;letter-spacing:.02em;display:block;line-height:1.15;}
/* wc_price() nests span/bdi — force inline or the currency symbol wraps
   onto its own line above the amount */
.m1-stat b .woocommerce-Price-amount,
.m1-stat b bdi,
.m1-stat b .woocommerce-Price-currencySymbol{display:inline !important;
  font-family:inherit;font-size:inherit;color:inherit;}
.m1-stat b.gold{color:var(--m1-gold);}
.m1-stat small{display:block;font-size:11px;color:var(--m1-mute);margin-top:6px;}

/* ---- benefit tiles --------------------------------------------- */
.m1-benefit{background:var(--m1-raised);border:1px solid var(--m1-line);
  border-radius:10px;padding:20px 18px;text-align:center;}
.m1-benefit svg{margin-bottom:11px;}
.m1-benefit b{display:block;font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:#fff;font-weight:600;line-height:1.45;}
.m1-benefit small{display:block;font-size:10.5px;color:var(--m1-mute);margin-top:5px;}
.m1-soon{display:inline-block;font-size:8px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--m1-gold);border:1px solid rgba(201,169,97,.4);
  border-radius:99px;padding:2px 7px;margin-top:7px;}

/* ---- action rows ----------------------------------------------- */
.m1-act{display:flex;align-items:center;gap:15px;text-decoration:none;
  background:var(--m1-raised);border:1px solid var(--m1-line);border-radius:10px;
  padding:18px 20px;transition:border-color .16s,background .16s;}
.m1-act:hover{border-color:#3C4147;background:var(--m1-raised-2);}
.m1-act-t{flex:1;}
.m1-act-t b{display:block;font-family:var(--m1-display);font-size:14px;
  letter-spacing:.11em;text-transform:uppercase;color:#fff;font-weight:600;}
.m1-act-t small{display:block;font-size:11.5px;color:var(--m1-mute);margin-top:3px;}
.m1-act-arrow{color:var(--m1-gold);flex:0 0 auto;}

/* ---- buttons --------------------------------------------------- */
.m1-btn{display:inline-block;background:var(--m1-gold);color:#0A0B0D !important;
  font-family:var(--m1-display);font-size:13px;letter-spacing:.13em;
  text-transform:uppercase;font-weight:600;padding:13px 26px;border-radius:3px;
  text-decoration:none;border:0;transition:background .16s;}
.m1-btn:hover{background:var(--m1-gold-deep);color:#0A0B0D !important;}
.m1-btn-ghost{background:transparent;color:#fff !important;
  border:1px solid #3C4147;}
.m1-btn-ghost:hover{background:rgba(255,255,255,.05);color:#fff !important;}

/* ---- upsell (non-member) --------------------------------------- */
.m1-upsell{background:linear-gradient(135deg,#191B1E 0%,#0E1012 100%);
  border:1px solid rgba(201,169,97,.3);border-radius:12px;padding:34px;}
.m1-upsell h2{font-size:29px;margin:0 0 12px;}
.m1-upsell p{color:var(--m1-mute);margin:0 0 22px;max-width:56ch;font-size:14.5px;}
.m1-upsell ul{list-style:none;margin:0 0 26px;padding:0;display:grid;
  grid-template-columns:1fr 1fr;gap:11px;}
.m1-upsell li{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;
  color:#D6D9DC;}
.m1-upsell li svg{flex:0 0 auto;margin-top:2px;}
.m1-price-row{display:flex;align-items:baseline;gap:12px;margin-bottom:22px;}
.m1-price-row b{font-family:var(--m1-display);font-size:38px;color:var(--m1-gold);
  font-weight:700;}
.m1-price-row span{color:var(--m1-mute);font-size:13px;}

/* ============================================================
   WooCommerce account nav + tables, restyled
   ============================================================ */
/* Storefront floats the nav and content, which left them vertically misaligned and
   squeezed the content column. Flex the wrapper instead and give the portal room. */
body.woocommerce-account .site-content .col-full{max-width:1280px;}
/* Only flex when the account nav exists. Logged OUT, .woocommerce holds the
   "Login" heading and the form as siblings — flexing put them side by side and
   collided the heading over the form. */
body.woocommerce-account.logged-in .woocommerce{display:flex;gap:34px;align-items:flex-start;}
.woocommerce-account .woocommerce-MyAccount-navigation{
  width:228px;flex:0 0 228px;float:none;margin:0;}
.woocommerce-account .woocommerce-MyAccount-content{
  width:auto;flex:1 1 auto;min-width:0;float:none;margin:0;}
.woocommerce-account .woocommerce-MyAccount-navigation ul{
  list-style:none;margin:0;padding:0;border:1px solid var(--m1-line);
  border-radius:10px;overflow:hidden;background:var(--m1-raised);}
.woocommerce-account .woocommerce-MyAccount-navigation li{
  border-bottom:1px solid var(--m1-line);margin:0;}
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child{border-bottom:0;}
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:block;padding:14px 18px;font-family:var(--m1-display);font-size:12.5px;
  letter-spacing:.13em;text-transform:uppercase;color:var(--m1-mute) !important;
  text-decoration:none;border-left:2px solid transparent;transition:all .16s;}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{
  color:#fff !important;background:var(--m1-raised-2);}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{
  color:#fff !important;border-left-color:var(--m1-gold);
  background:var(--m1-raised-2);}

.woocommerce-account .woocommerce-MyAccount-content{color:#C9CDD1;}
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3{color:#fff;}
.woocommerce-account table.shop_table{
  background:var(--m1-raised);border:1px solid var(--m1-line);border-radius:10px;
  color:#C9CDD1;border-collapse:separate;}
.woocommerce-account table.shop_table th{
  font-family:var(--m1-display);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--m1-mute);border-bottom:1px solid var(--m1-line);}
.woocommerce-account table.shop_table td{border-top:1px solid var(--m1-line);}
.woocommerce-account .woocommerce-Message,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-error{
  background:var(--m1-raised);border-top:2px solid var(--m1-gold);color:#C9CDD1;
  border-radius:0 0 10px 10px;padding-left:22px;}
/* WooCommerce prefixes notices with an icon-font glyph that renders as a tofu box */
.woocommerce-account .woocommerce-Message::before,
.woocommerce-account .woocommerce-info::before,
.woocommerce-account .woocommerce-error::before{display:none !important;content:none !important;}
/* inner account pages start flush against the masthead without this */
body.woocommerce-account.logged-in .woocommerce{padding-top:34px;}
.woocommerce-account .button,
.woocommerce-account button.button,
.woocommerce-account input.button{
  background:var(--m1-gold) !important;color:#0A0B0D !important;
  font-family:var(--m1-display);letter-spacing:.12em;text-transform:uppercase;
  font-weight:600;border-radius:3px;}
.woocommerce-account .button:hover{background:var(--m1-gold-deep) !important;}
.woocommerce-account input[type=text],.woocommerce-account input[type=email],
.woocommerce-account input[type=password],.woocommerce-account input[type=tel],
.woocommerce-account select,.woocommerce-account textarea{
  background:#101215;border:1px solid var(--m1-line);color:#fff;border-radius:5px;}
.woocommerce-account label{color:var(--m1-mute);font-size:12px;
  letter-spacing:.06em;}

/* ---- login screen (logged out) — first thing a member sees -------- */
body.woocommerce-account:not(.logged-in) .woocommerce{
  display:block;max-width:428px;margin:64px auto 110px;}
body.woocommerce-account:not(.logged-in) .woocommerce > h2{
  font-size:27px;text-align:center;margin:0 0 6px;letter-spacing:.04em;}
body.woocommerce-account:not(.logged-in) .woocommerce > h2 + p,
body.woocommerce-account:not(.logged-in) .m1-login-sub{
  text-align:center;color:var(--m1-mute);font-size:13px;margin:0 0 24px;}
body.woocommerce-account:not(.logged-in) .woocommerce-form-login,
body.woocommerce-account:not(.logged-in) .woocommerce-form-register{
  background:var(--m1-raised);border:1px solid var(--m1-line);
  border-radius:12px;padding:30px;margin:0;}
body.woocommerce-account:not(.logged-in) .woocommerce-form-login p{margin-bottom:16px;}
body.woocommerce-account:not(.logged-in) .woocommerce-form-login input[type=text],
body.woocommerce-account:not(.logged-in) .woocommerce-form-login input[type=password]{
  width:100%;padding:12px 13px;font-size:14px;}
body.woocommerce-account:not(.logged-in) .woocommerce-form-login button[type=submit]{
  width:100%;padding:13px;font-size:13px;}
body.woocommerce-account:not(.logged-in) .woocommerce-form-login label{
  display:block;margin-bottom:6px;font-size:11px;letter-spacing:.13em;
  text-transform:uppercase;}
/* WooCommerce's show-password toggle ships a light chip that glares on black */
body.woocommerce-account .show-password-input{background:transparent;}
body.woocommerce-account .password-input{display:block;position:relative;}
body.woocommerce-account .show-password-input::after{color:var(--m1-mute);}
body.woocommerce-account .woocommerce-form-login__rememberme{
  font-size:12px;color:var(--m1-mute);}
body.woocommerce-account .woocommerce-LostPassword{
  text-align:center;margin:16px 0 0;font-size:12.5px;}

/* ---- responsive -------------------------------------------------- */
@media(max-width:900px){
  /* stack the nav above the content — width:100% alone loses to flex:0 0 228px,
     which crushed the content column to ~130px on phones */
  body.woocommerce-account.logged-in .woocommerce{flex-direction:column;gap:22px;}
  .woocommerce-account .woocommerce-MyAccount-navigation{
    width:100%;flex:1 1 auto;}
  .woocommerce-account .woocommerce-MyAccount-content{width:100%;flex:1 1 auto;}
  .m1-grid-2,.m1-grid-3{grid-template-columns:1fr 1fr;}
  .m1-grid-4{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
  .m1-hero{padding:30px 0 22px;}
  .m1-hero h1{font-size:33px;}
  .m1-upsell ul{grid-template-columns:1fr;}
}
@media(max-width:620px){
  .m1-grid-2,.m1-grid-3,.m1-grid-4{grid-template-columns:1fr;}
  .m1-score-head{flex-direction:column;align-items:center;gap:18px;}
  .m1-metrics{width:100%;}
  .m1-hero h1{font-size:27px;}
  .m1-mcard-meta{gap:18px;}
  .m1-mast-in{padding:0 16px;}
  .m1-brand-name{font-size:16px;}
  .m1-brand-sub{font-size:8px;letter-spacing:.16em;}
  .m1-mast-right{font-size:9.5px;letter-spacing:.1em;text-align:right;}
  .m1-card,.m1-mcard,.m1-upsell{padding:20px;}
  .m1-portal{padding-bottom:60px;}
}
