/* ============================================================
   MEMBERSHIP HUB — page-only styles for /hub/*
   (All Out Access, Enhanced Access, Explorer, Founder)
   Links after common.css and reuses its tokens, fonts, .btn,
   .btn-outline-dark, .eyebrow, .serif, .h2-blue and .container.
   Layout and form patterns follow Membership_Design (12 Oct 2026).
   ============================================================ */

/* ===== COMPACT HERO (shared Header.ascx hero, shortened) ===== */
.hero{min-height:clamp(380px,52vh,520px);}
.hero .hero-inner{top:auto;bottom:clamp(40px,7vh,72px);}
.hero h1{max-width:620px;}
.hub-hero-sub{max-width:520px;font-size:17px;}

/* ===== TIER TABS ===== */
.hub-tabs{background:#fff;border-bottom:1px solid var(--line);}
.hub-tabs-inner{display:flex;align-items:center;gap:30px;min-height:58px;overflow-x:auto;scrollbar-width:none;}
.hub-tabs-inner::-webkit-scrollbar{display:none;}
.hub-tabs-label{margin-right:auto;font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);white-space:nowrap;}
.hub-tabs a{padding:19px 0 16px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:500;color:var(--color-heading);border-bottom:2px solid transparent;white-space:nowrap;}
.hub-tabs a:hover{border-bottom-color:var(--line);}
.hub-tabs a.active{border-bottom-color:var(--gold);font-weight:600;}

/* ===== PAGE LAYOUT ===== */
.hub-wrap{padding-top:34px;padding-bottom:var(--section-space-lg);}
.hub-crumb{font-size:12px;color:var(--muted);margin-bottom:26px;display:flex;gap:10px;}
.hub-crumb a{text-decoration:underline;text-underline-offset:3px;}

.hub-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(400px,460px);
  grid-template-rows:auto 1fr;
  column-gap:64px;
  row-gap:30px;
  align-items:start;
}
.hub-intro{grid-column:1;grid-row:1;}
.hub-card{grid-column:2;grid-row:1 / span 2;}
.hub-body{grid-column:1;grid-row:2;min-width:0;}

.hub-meta{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8a6a35;margin-bottom:22px;}
.hub-start{margin-bottom:6px;}

/* ===== EDITORIAL SECTIONS ===== */
.hub-scene{position:relative;height:190px;margin:0 0 40px;overflow:hidden;background:var(--dark);}
.hub-scene img{width:100%;height:100%;object-fit:cover;}
.hub-scene::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,14,30,.45),transparent 65%);}
.hub-scene figcaption{position:absolute;left:20px;bottom:14px;z-index:1;color:#fff;font-size:10px;letter-spacing:.18em;text-transform:uppercase;}

.hub-section{padding-bottom:38px;margin-bottom:38px;border-bottom:1px solid var(--line);}
.hub-section:last-child{border-bottom:0;margin-bottom:0;}
.hub-section .eyebrow{margin-bottom:14px;}
.hub-section h2{font-size:clamp(26px,2.6vw,34px);font-weight:400;line-height:1.25;margin-bottom:22px;}
.hub-muted{color:var(--muted);font-size:15px;line-height:1.65;margin-bottom:20px;}

.hub-features{display:grid;grid-template-columns:1fr 1fr;gap:28px 32px;}
.hub-icon{width:32px;height:32px;color:var(--gold);margin-bottom:12px;display:block;}
.hub-feature h3{font-size:15px;font-weight:600;margin-bottom:6px;color:var(--color-heading);}
.hub-feature p{font-size:14.5px;line-height:1.65;color:var(--muted);}

.hub-process{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.hub-process span{display:block;font-family:'Playfair Display',serif;font-size:24px;color:var(--gold);margin-bottom:8px;}
.hub-process strong{display:block;font-size:15px;font-weight:600;color:var(--color-heading);margin-bottom:4px;}
.hub-process p{font-size:14px;line-height:1.6;color:var(--muted);}

.hub-faq details{border-bottom:1px solid var(--line);padding:16px 0;}
.hub-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;font-size:15px;font-weight:600;color:var(--color-heading);}
.hub-faq summary::-webkit-details-marker{display:none;}
.hub-faq summary::after{content:"+";font-weight:400;font-size:20px;line-height:1;}
.hub-faq details[open] summary::after{content:"\2212";}
.hub-faq details p{padding:12px 30px 0 0;font-size:14.5px;line-height:1.7;color:var(--muted);}
.hub-faq a,.hub-check a,.hub-note a,.hub-hint a{text-decoration:underline;text-underline-offset:3px;}

/* Tables (Explorer / Founder prices) */
.hub-table{width:100%;border-collapse:collapse;font-size:14.5px;line-height:1.5;}
.hub-table th,.hub-table td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:top;}
.hub-table thead th{background:#f6f3ec;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--color-heading);}
.hub-table thead small{text-transform:none;letter-spacing:0;font-weight:400;color:var(--muted);font-size:12px;}
.hub-table tbody th{font-weight:600;color:var(--color-heading);}
.hub-table td small,.hub-table th small{display:block;color:var(--muted);font-weight:400;font-size:12.5px;margin-top:3px;}

/* Enhanced: Discovery properties + club module */
.hub-properties{display:grid;gap:14px;margin-bottom:14px;}
.hub-property{display:grid;grid-template-columns:200px 1fr;border:1px solid var(--line);background:#fff;transition:border-color .2s ease;}
.hub-property.is-selected{border-color:var(--color-heading);box-shadow:inset 0 0 0 1px var(--color-heading);}
.hub-property-img{background-size:cover;background-position:center;min-height:170px;}
.hub-property-text{padding:22px 24px;}
.hub-property-region{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#8a6a35;margin-bottom:6px;}
.hub-property h3{font-size:23px;font-weight:400;color:var(--color-heading);margin-bottom:16px;line-height:1.25;}
.hub-property .btn{padding:12px 20px;}
.hub-selected-marker{display:none;background:#225b46;color:#fff;font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;margin-bottom:10px;}
.hub-property.is-selected .hub-selected-marker{display:inline-block;}
.hub-chosen{display:none;}
.hub-property.is-selected .hub-choose{display:none;}
.hub-property.is-selected .hub-chosen{display:inline;}

.hub-club{background:var(--color-heading);color:#fff;padding:30px;}
.hub-club h3{font-size:28px;font-weight:400;line-height:1.25;margin:4px 0 14px;}
.hub-club p:last-child{font-size:14.5px;line-height:1.7;color:#d7dde6;}

/* Founder */
.hub-founder-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.hub-founder-benefit{background:#fff;border:1px solid var(--line);padding:22px;}
.hub-tiny{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#8a6a35;margin-bottom:8px;}
.hub-founder-big{font-size:28px;line-height:1.2;color:var(--color-heading);margin-bottom:10px;}
.hub-founder-benefit p:last-child{font-size:14px;line-height:1.6;color:var(--muted);}

/* ===== APPLICATION CARD ===== */
.hub-card{
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 18px 50px rgba(0,14,48,.08);
  padding:32px;
  outline:none;
  scroll-margin-top:100px;
}
.hub-card h2{font-size:30px;font-weight:400;color:var(--color-heading);line-height:1.2;margin-bottom:8px;}
.hub-form-label{font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:#8a6a35;margin-bottom:8px;}
.hub-form-intro{font-size:14.5px;line-height:1.65;color:var(--muted);margin-bottom:20px;}
.hub-card-loading{min-height:120px;}

.hub-steps{list-style:none;display:flex;gap:12px;padding-bottom:18px;margin-bottom:22px;border-bottom:1px solid var(--line);}
.hub-steps li{flex:1;display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.3;color:var(--muted);}
.hub-steps li span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;width:24px;height:24px;border:1px solid var(--line);border-radius:50%;font-size:11px;}
.hub-steps li.active{color:var(--color-heading);font-weight:600;}
.hub-steps li.active span{background:var(--color-heading);border-color:var(--color-heading);color:#fff;}
.hub-steps li.done span{border-color:var(--gold);color:#8a6a35;}

.hub-fieldset{border:0;margin:0 0 18px;padding:0;min-width:0;}
.hub-fieldset legend,.hub-field > label{display:block;font-size:13px;font-weight:600;color:var(--color-heading);margin-bottom:7px;}
.hub-req{color:#8a6a35;}
.hub-optional{font-weight:400;font-size:12px;color:var(--muted);}
.hub-field{margin-bottom:15px;}
.hub-two{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.hub-field input,.hub-field select,.hub-field textarea,.hub-age input{
  width:100%;
  min-height:46px;
  padding:11px 12px;
  border:1px solid #c9c1b1;
  border-radius:2px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-size:15px;
  line-height:1.4;
}
.hub-field textarea{min-height:90px;resize:vertical;}
.hub-field input::placeholder,.hub-field textarea::placeholder{color:#958c80;opacity:1;}
.hub-card input:focus-visible,.hub-card select:focus-visible,.hub-card textarea:focus-visible,
.hub-card button:focus-visible,.hub-card a:focus-visible,.hub-option:focus-within,.hub-chip:focus-within{
  outline:2px solid var(--color-heading);
  outline-offset:2px;
}
.hub-card [aria-invalid="true"]{border-color:#9d3025;}
.hub-hint{font-size:12.5px;line-height:1.55;color:var(--muted);margin-top:6px;}
.hub-center{text-align:center;}
.hub-gap{margin-bottom:16px;}

.hub-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.hub-options.three{grid-template-columns:repeat(3,1fr);}
.hub-option{position:relative;display:block;border:1px solid #c9c1b1;padding:14px 34px 14px 13px;cursor:pointer;line-height:1.4;min-width:0;background:#fff;}
.hub-option:has(input:checked){border-color:var(--color-heading);box-shadow:inset 0 0 0 1px var(--color-heading);background:#fbfaf6;}
.hub-option input{position:absolute;right:12px;top:15px;width:15px;height:15px;accent-color:var(--color-heading);margin:0;}
.hub-option-label{display:block;font-size:13px;font-weight:600;color:var(--color-heading);}
.hub-option-price{display:block;font-size:28px;line-height:1.15;color:var(--color-heading);margin:6px 0 4px;}
.hub-option-unit{display:block;font-size:12px;color:var(--muted);margin-top:2px;}
.hub-option-badge{display:block;margin-top:8px;font-size:11.5px;font-weight:600;color:#225b46;}
.hub-option.compact{min-height:52px;display:flex;flex-direction:column;justify-content:center;}
.hub-saving{font-size:12.5px;color:#225b46;margin-top:10px;}

.hub-chips{display:flex;flex-wrap:wrap;gap:8px;}
.hub-chip{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:7px 13px;border:1px solid #c9c1b1;border-radius:20px;font-size:13px;cursor:pointer;background:#fff;}
.hub-chip:has(input:checked){border-color:#225b46;background:#f0f4ee;color:#225b46;}
.hub-chip input{margin:0;width:14px;height:14px;accent-color:#225b46;}

.hub-ages{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.hub-age span{display:block;font-size:12px;color:var(--muted);margin-bottom:4px;}

.hub-check{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.6;color:var(--muted);margin:14px 0;cursor:pointer;}
.hub-check input{flex:0 0 16px;width:16px;height:16px;margin:3px 0 0;accent-color:var(--color-heading);}

/* Buttons inside the card */
.hub-card .btn{white-space:normal;text-align:center;line-height:1.35;}
.hub-btn-primary{color:#fff;}
.hub-btn-primary::after{background:var(--color-heading);}
.hub-btn-primary::before{background:var(--gold);}
.hub-btn-primary[disabled]{opacity:.65;cursor:progress;}
.hub-btn-primary[disabled]::before{transform:scaleX(0);}
.hub-btn-row{display:flex;gap:10px;margin-top:22px;}
.hub-btn-row .hub-btn-primary{flex:1;}
.hub-text-link{background:none;border:0;padding:0;font:inherit;font-size:13px;font-weight:600;color:var(--color-heading);text-decoration:underline;text-underline-offset:4px;cursor:pointer;}

/* Messages */
.hub-error{border:1px solid #dcaea8;background:#fff4f1;color:#8f2b20;padding:12px 14px;font-size:13.5px;line-height:1.55;margin-bottom:18px;outline:none;}
.hub-error .hub-text-link{display:block;margin-top:8px;color:#8f2b20;}
.hub-note{background:#f6f3ec;border-left:2px solid var(--gold);padding:13px 15px;font-size:13px;line-height:1.65;color:var(--muted);margin:14px 0;}
.hub-quote-note{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#225b46;margin-top:16px;}
.hub-quote-note::before{content:"";width:6px;height:6px;border-radius:50%;background:#225b46;}

/* Summary + receipt */
.hub-summary{border:1px solid var(--line);background:#f8f6f0;padding:18px;margin:4px 0 18px;}
.hub-summary-plan{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--color-heading);}
.hub-summary-total{font-size:34px;line-height:1.2;color:var(--color-heading);margin:6px 0;}
.hub-summary-total span{font-family:'Jost',sans-serif;font-size:15px;color:var(--muted);}
.hub-summary-quote{font-size:26px;}
.hub-summary-desc{font-size:13px;line-height:1.55;color:var(--muted);margin-top:4px;}
.hub-receipt{border-top:1px solid var(--line);margin:4px 0 16px;}
.hub-row{display:flex;justify-content:space-between;gap:24px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px;}
.hub-row span{color:var(--muted);}
.hub-row strong{font-weight:600;text-align:right;overflow-wrap:anywhere;color:var(--color-heading);}

.hub-complete-icon{width:54px;height:54px;border:1px solid #98b9a9;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#225b46;font-size:24px;margin-bottom:18px;}
.hub-complete h2{font-size:32px;}
.hub-next{border-left:2px solid var(--gold);padding-left:15px;margin:18px 0 22px;font-size:13.5px;line-height:1.6;color:var(--muted);}
.hub-next p + p{margin-top:4px;}

/* Hidden helpers */
.hub-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden;}
.hub-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ===== MEMBER SIGN-IN (/hub/login) ===== */
.hub-auth{display:flex;gap:72px;align-items:flex-start;}
.hub-auth-card{flex:0 1 520px;min-width:0;}
.hub-auth-aside{flex:1 1 0;min-width:0;padding-top:28px;}
.hub-auth-aside h2{font-size:clamp(26px,2.6vw,34px);font-weight:400;line-height:1.25;margin:12px 0 16px;}
.hub-auth-help{margin-top:26px;max-width:460px;}
.hub-card [hidden]{display:none!important;}

/* ===== MY MEMBERSHIP (/hub/account) ===== */
.hub-account-title{font-size:clamp(28px,3vw,38px);font-weight:400;line-height:1.22;margin:12px 0 14px;}
.hub-account-links{margin:6px 0 34px;}
.hub-account-links .btn{flex:0 0 auto;}
.hub-account .hub-intro .hub-note,.hub-account .hub-intro .hub-error{margin:0 0 22px;}
.hub-status{display:inline-flex;align-items:center;gap:7px;font-weight:600;color:#225b46;}
.hub-status::before{content:"";width:7px;height:7px;border-radius:50%;background:#225b46;}
.hub-signout{margin-top:18px;text-align:center;}
.hub-upgrades{display:grid;gap:14px;}
.hub-upgrade{display:block;border:1px solid var(--line);background:#fff;padding:22px 24px;transition:border-color .2s ease;}
.hub-upgrade:hover{border-color:var(--color-heading);}
.hub-upgrade h3{font-size:21px;font-weight:400;line-height:1.3;color:var(--color-heading);margin-bottom:6px;}
.hub-upgrade p:not(.hub-tiny){font-size:13.5px;color:var(--muted);margin-bottom:14px;}
.hub-upgrade .link-arrow{color:var(--color-heading);}

/* ===== MOBILE ACTION BAR ===== */
.hub-mobile-action{display:none;}

/* ===== RESPONSIVE ===== */
@media (max-width:1100px){
  .hub-layout{grid-template-columns:minmax(0,1fr) minmax(360px,420px);column-gap:36px;}
  .hub-card{padding:26px;}
  .hub-process{grid-template-columns:1fr;gap:18px;}
}

@media (max-width:860px){
  .hero{min-height:clamp(440px,72vh,540px);}
  .hub-hero-sub{font-size:15.5px;}
  .hub-layout{display:flex;flex-direction:column;gap:0;}
  .hub-intro{order:1;width:100%;}
  .hub-card{order:2;width:100%;margin:8px 0 40px;box-shadow:none;}
  .hub-body{order:3;width:100%;}
  .hub-start{display:none;}
  .hub-auth{display:block;}
  .hub-auth-aside{padding-top:0;margin-top:36px;}
}

@media (max-width:760px){
  .hub-wrap{padding-top:22px;padding-bottom:110px;}
  .hub-tabs-label{display:none;}
  .hub-tabs-inner{gap:22px;}
  .hub-tabs a{font-size:11px;}
  .hub-card{padding:22px 18px;}
  .hub-card h2{font-size:27px;}
  .hub-field input,.hub-field select,.hub-field textarea,.hub-age input{font-size:16px;} /* no iOS zoom */
  .hub-features,.hub-founder-grid{grid-template-columns:1fr;}
  .hub-property{grid-template-columns:1fr;}
  .hub-property-img{min-height:180px;}
  .hub-scene{height:140px;margin-bottom:30px;}
  .hub-table{font-size:13.5px;}
  .hub-table th,.hub-table td{padding:11px 8px;}

  .hub-mobile-action{
    display:flex;
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:60;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom));
    background:#fff;
    border-top:1px solid var(--line);
    box-shadow:0 -6px 22px rgba(0,14,48,.07);
  }
  .hub-mobile-label{display:block;font-size:11px;color:var(--muted);line-height:1.3;}
  .hub-mobile-value{display:block;font-size:15px;font-weight:600;color:var(--color-heading);}
  .hub-mobile-action .btn{padding:13px 18px;font-size:10.5px;}

  /* Keep the bar out of the way of the keyboard while typing (brief §8). */
  body:has(.hub-card input:focus,.hub-card select:focus,.hub-card textarea:focus) .hub-mobile-action{display:none;}
}

@media (max-width:480px){
  .hub-two{grid-template-columns:1fr;gap:0;}
  .hub-options.three{grid-template-columns:1fr 1fr 1fr;gap:7px;}
  /* Three across is tight at phone width: radio above the label. */
  .hub-options.three .hub-option{padding:32px 8px 11px;min-height:0;justify-content:flex-start;}
  .hub-options.three .hub-option input{left:9px;right:auto;top:11px;}
  .hub-options.three .hub-option-label{font-size:12.5px;}
  .hub-option-price{font-size:25px;}
  .hub-steps li{font-size:11px;}
  .hub-btn-row{flex-wrap:wrap;}
  .hub-btn-row .btn{flex:1 1 100%;}
  .hub-ages{grid-template-columns:repeat(2,1fr);}
}

@media (prefers-reduced-motion:reduce){
  .hub-property{transition:none;}
}
