/* BASALTO — responsive hardening layer
   Loaded after style.css. Keeps the approved visual language while making
   public, Member and Founder areas robust from small phones to tablets. */

html,body{max-width:100%;overflow-x:hidden}
img,svg,video,canvas{max-width:100%;height:auto}
input,select,textarea,button{max-width:100%}
input,select,textarea{width:100%;min-width:0}
textarea{resize:vertical}
.container{width:min(1280px,calc(100% - clamp(2rem,7vw,7rem)))}
.hero>*,.section-head>*,.intro-columns>*,.experience-grid>*,.statement-grid>*,.access-heading>*,.access-grid>*,.guest-hero-grid>*,.guest-columns>*,.member-kpi-grid>*,.member-section-head>*,.club-note-grid>*,.rules-layout>*,.application-layout>*,.founder-shell>*,.founder-content>*,.founder-section-head>*,.founder-toolbar>*,.founder-overview-grid>*,.founder-communications-grid>*{min-width:0}
.button,.text-button,.nav-logout,.footer-logout,.founder-nav button,.table-action{touch-action:manipulation}
.founder-table-wrap,.participants-table-wrap,.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
.founder-table,.participants-table{min-width:760px}
.founder-dialog{max-width:min(900px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);margin:auto}
.founder-dialog-wide{max-width:min(1180px,calc(100vw - 2rem))}
.dialog-shell{max-height:calc(100dvh - 2rem);overflow:auto;overscroll-behavior:contain}
.field,.field.full-width{min-width:0}
.field input,.field select,.field textarea{width:100%;min-width:0}

@media (max-width:1200px){
  .container{width:min(100% - 3rem,1120px)}
  .hero,.experience-grid{gap:3rem}
  .statement-grid,.guest-hero-grid,.guest-columns,.club-note-grid{gap:4rem}
  .founder-shell{gap:2rem}
  .founder-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .members-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:960px){
  html{scroll-padding-top:5rem}
  .container{width:min(100% - 2.5rem,900px)}
  .header-inner{min-height:84px}
  .wordmark{font-size:1.65rem}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;border:1px solid var(--line);background:transparent;color:var(--ink)}
  .main-nav{display:none;position:absolute;left:0;right:0;top:100%;padding:1rem 1.25rem 1.3rem;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 18px 32px rgba(0,0,0,.25);flex-direction:column;align-items:stretch;gap:.15rem}
  .main-nav.is-open{display:flex}
  .main-nav>a:not(.button),.main-nav .nav-logout{min-height:48px;display:flex;align-items:center;padding:.8rem .25rem;border-bottom:1px solid var(--line)}
  .main-nav .button{width:100%;justify-content:center;margin-top:.5rem}

  .hero,.experience-grid,.statement-grid,.guest-hero-grid,.guest-columns,.club-note-grid,.section-head,.season-intro,.faq-section,.access-heading,.member-kpi-grid,.member-section-head{grid-template-columns:1fr}
  .hero{padding-top:3rem}
  .hero-copy{padding-bottom:2.5rem}
  .hero-art{max-width:680px;width:100%;margin-inline:auto}
  .art-frame{min-height:0}
  .section{padding-block:5rem}
  .section-head{gap:1.25rem}
  .intro-columns{gap:3rem}
  .statement-copy{margin-left:0;max-width:none}
  .values-line{grid-template-columns:1fr;gap:0}
  .values-line span{padding:1rem 0}
  .values-line span+span{border-left:0;border-top:1px solid var(--line);padding-left:0}
  .season-calendar{overflow-x:auto;grid-template-columns:repeat(12,minmax(72px,1fr));padding-bottom:.75rem}
  .cost-grid{grid-template-columns:1fr;gap:0}
  .cost-grid article{padding-block:1.5rem}
  .cost-grid article+article{border-left:0;border-top:1px solid #c2c7bb;padding-left:0}
  .access-heading>p,.member-section-head>p{justify-self:start}
  .access-grid{grid-template-columns:1fr}
  .access-card{min-height:330px}
  .admission-process ol{grid-template-columns:1fr}

  .rules-layout{grid-template-columns:1fr}
  .rules-sidebar{position:static}
  .rules-sidebar nav{display:flex;overflow-x:auto;gap:.5rem;padding-bottom:.75rem;scrollbar-width:thin}
  .rules-sidebar nav .eyebrow{display:none}
  .rules-sidebar nav a{flex:0 0 auto;border:1px solid var(--line);padding:.65rem .8rem;white-space:nowrap}
  .rules-sidebar .text-button{margin-top:1rem}

  .founder-topbar-inner{align-items:flex-start}
  .founder-top-actions{width:100%;justify-content:flex-start;overflow-x:auto;padding-bottom:.25rem;white-space:nowrap}
  .founder-shell{display:block;padding-block:1.25rem 4rem}
  .founder-sidebar{position:static;width:100%;min-height:0;margin-bottom:1.5rem;padding:1rem}
  .founder-identity{display:none}
  .founder-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem}
  .founder-nav button{min-height:48px;padding:.7rem .45rem;text-align:center;border-left:0;border-bottom:1px solid transparent}
  .founder-nav button.is-active{border-left:0;border-bottom-color:var(--bronze)}
  .founder-sidebar-foot{display:none}
  .founder-heading,.founder-section-head{gap:1.5rem}
  .founder-heading h1{font-size:clamp(3rem,8vw,5rem)}
  .founder-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .founder-overview-grid,.founder-communications-grid{grid-template-columns:1fr}
  .founder-event-card{grid-template-columns:minmax(120px,.35fr) 1fr;gap:1.25rem}
  .founder-event-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:.75rem}
  .dialog-grid{grid-template-columns:1fr 1fr}
}

@media (max-width:760px){
  body{font-size:1rem;line-height:1.62}
  .container{width:calc(100% - 2rem)}
  h1{font-size:clamp(2.8rem,14vw,4.5rem);line-height:1.02}
  h2{font-size:clamp(2.1rem,10vw,3.2rem)}
  .lead{font-size:1.45rem}
  .header-inner{min-height:72px;padding-block:.75rem;flex-wrap:nowrap}
  .wordmark{font-size:1.45rem;letter-spacing:.1em}
  .wordmark span{font-size:.62rem;letter-spacing:.16em}
  .hero{padding-top:2rem;gap:1.75rem}
  .hero-actions{align-items:stretch;gap:.8rem}
  .hero-actions .button{width:100%}
  .hero-actions .text-link{align-self:flex-start}
  .hero-bottom{align-items:flex-start;flex-direction:column;gap:.8rem;padding:1.25rem 0}
  .hero-bottom a{gap:.8rem;flex-wrap:wrap}
  .section{padding-block:4rem}
  .intro-columns{grid-template-columns:1fr;gap:1.5rem}
  .dining-image{min-height:360px}
  .format-row{grid-template-columns:1.6rem 1fr;gap:.9rem}
  .section-paper{padding-block:4rem}
  .card-fee{flex-direction:column;gap:.8rem}
  .membership-intro{display:block}
  .points-key{margin-top:1.2rem;flex-wrap:wrap;gap:.8rem 1.25rem}
  .special-status{grid-template-columns:1fr;gap:.75rem}
  .admission{grid-template-columns:1fr;gap:2rem}
  .requirements article{grid-template-columns:1.5rem 1fr}
  .closing-cta h2{font-size:clamp(2.4rem,12vw,3.4rem)}

  .access-section{padding-block:4rem}
  .access-card{padding:1.4rem;min-height:300px}
  .access-card-top{margin-bottom:2.5rem}
  .access-card h3{font-size:1.9rem}
  .login-row{grid-template-columns:1fr;gap:.35rem}
  .login-row input{font-size:16px}

  .member-dashboard{padding-block:2.5rem 3rem}
  .member-welcome{align-items:flex-start;flex-direction:column;gap:1rem;padding-bottom:2rem}
  .member-welcome h1{font-size:clamp(2.9rem,13vw,4.5rem)}
  .season-mark{text-align:left}
  .season-mark strong{font-size:2.3rem}
  .member-kpi-grid{grid-template-columns:1fr}
  .status-overview{grid-template-columns:5rem 1fr;gap:1.2rem;padding:1.4rem;min-height:0}
  .status-emblem{width:4.7rem;height:4.7rem}
  .status-overview h2{font-size:2rem}
  .points-overview{padding:1.4rem;min-height:220px}
  .points-overview>strong{font-size:3.3rem}
  .member-section{padding-block:4rem}
  .member-section-head{gap:1rem;margin-bottom:1.5rem}
  .event-grid,.members-grid{grid-template-columns:1fr}
  .event-card{min-height:0;padding:1.3rem}
  .event-card h3{margin:1.8rem 0 .8rem}
  .member-photo{aspect-ratio:16/10}

  .page-heading{padding-top:2rem}
  .page-heading h1{font-size:clamp(2.7rem,13vw,4rem)}
  .document-status{flex-wrap:wrap}
  .rule-section{padding-block:2rem}
  .table-wrap table{min-width:620px}
  .application-layout{grid-template-columns:1fr}
  .application-review{position:static}
  .form-grid{grid-template-columns:1fr}

  .founder-topbar .header-inner{flex-wrap:wrap}
  .founder-top-actions{gap:1rem;font-size:.82rem}
  .founder-shell.container{width:calc(100% - 1.25rem)}
  .founder-sidebar{padding:.55rem;margin-bottom:1rem;overflow:hidden}
  .founder-nav{display:flex;overflow-x:auto;gap:.25rem;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .founder-nav button{flex:0 0 auto;min-width:105px;scroll-snap-align:start;padding:.65rem .8rem}
  .founder-heading{display:block;padding-bottom:2rem}
  .founder-heading-copy{margin-top:1rem;max-width:none}
  .founder-heading h1{font-size:clamp(2.8rem,14vw,4.3rem)}
  .founder-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
  .founder-metric{padding:1rem;min-height:120px}
  .founder-metric-primary{grid-column:1/-1}
  .founder-section-head{display:flex;flex-direction:column;align-items:stretch}
  .founder-section-head>.button{width:100%}
  .founder-toolbar{grid-template-columns:1fr}
  .founder-event-card{display:block;padding:1rem}
  .founder-event-date{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:.9rem;margin-bottom:1rem;border-bottom:1px solid var(--line)}
  .founder-event-body h3{font-size:1.55rem}
  .founder-event-stats{display:flex;flex-wrap:wrap;gap:.75rem 1.2rem}
  .founder-event-actions{margin-top:1rem;justify-content:stretch}
  .founder-event-actions>*{flex:1}
  .founder-surface{padding:1.25rem}
  .quick-actions .button{width:100%}
  .mail-compose-foot{flex-direction:column;align-items:stretch;gap:1rem}
  .mail-compose-foot>div{display:grid;grid-template-columns:1fr;gap:.6rem}
  .mail-compose-foot .button{width:100%}
  .status-flags{grid-template-columns:1fr 1fr}

  .founder-dialog,.founder-dialog-wide{width:calc(100vw - 1rem);max-width:none;max-height:calc(100dvh - 1rem);padding:0}
  .dialog-shell{max-height:calc(100dvh - 1rem);padding:1rem}
  .dialog-head{gap:1rem;align-items:flex-start}
  .dialog-head h2{font-size:2rem}
  .dialog-close{min-width:44px;min-height:44px;flex:0 0 44px}
  .dialog-grid{grid-template-columns:1fr;gap:1rem}
  .dialog-grid .full-width{grid-column:auto}
  .dialog-actions{flex-direction:column;align-items:stretch;gap:1rem}
  .dialog-actions>div{display:grid;grid-template-columns:1fr;gap:.6rem}
  .dialog-actions .button{width:100%}
  .dialog-actions .danger-action{order:2;text-align:center}
  .participants-table-wrap{margin-inline:-1rem;padding-inline:1rem}
  .founder-table,.participants-table{min-width:680px}
  .field input,.field select,.field textarea,.founder-search input,.founder-filter select{font-size:16px}
}

@media (max-width:520px){
  .container{width:calc(100% - 1.5rem)}
  .button{width:100%;padding:.9rem 1rem;gap:.75rem}
  .eyebrow{font-size:.68rem;letter-spacing:.1em}
  .hero-intro{font-size:1.08rem}
  .hero-description{font-size:.95rem}
  .art-frame{aspect-ratio:4/5}
  .dining-image{min-height:300px}
  .access-card{padding:1.15rem}
  .status-grid{grid-template-columns:1fr}
  .status-card{padding:1.35rem}
  .cost-value{font-size:3.2rem}
  .guest-hero{padding-block:3rem 4rem}
  .site-footer{align-items:flex-start;flex-direction:column;padding-block:2rem}

  .status-overview{grid-template-columns:1fr;align-items:start}
  .status-emblem{width:4.4rem;height:4.4rem}
  .member-card-body{padding:1.1rem}
  .member-card h3{font-size:1.5rem}

  .founder-shell.container{width:calc(100% - .75rem)}
  .founder-content{width:100%}
  .founder-metrics{grid-template-columns:1fr 1fr}
  .founder-metric{min-height:105px;padding:.85rem}
  .founder-metric strong{font-size:2rem}
  .founder-section-head h2{font-size:2.5rem}
  .status-flags{grid-template-columns:1fr}
  .founder-event-actions{flex-direction:column}
  .founder-event-actions>*{width:100%}
  .founder-table-wrap{margin-inline:-.375rem;padding-inline:.375rem}
  .dialog-shell{padding:.85rem}
}

@media (max-width:380px){
  .container{width:calc(100% - 1rem)}
  .wordmark{font-size:1.28rem}
  .wordmark span{font-size:.58rem}
  h1{font-size:clamp(2.45rem,15vw,3.3rem)}
  h2{font-size:2rem}
  .hero-actions{margin-top:1.6rem}
  .founder-top-actions{gap:.75rem}
  .founder-nav button{min-width:96px;font-size:.86rem}
  .founder-metric{padding:.75rem}
  .founder-metric span{font-size:.62rem}
  .founder-metric strong{font-size:1.75rem}
  .dialog-head h2{font-size:1.75rem}
}

/* Short landscape phones: avoid dialogs and navigation becoming unusable. */
@media (max-height:520px) and (orientation:landscape){
  .site-header{position:relative}
  .founder-dialog,.founder-dialog-wide{max-height:calc(100dvh - .5rem)}
  .dialog-shell{max-height:calc(100dvh - .5rem);padding:.75rem 1rem}
  .dialog-head{margin-bottom:.75rem}
  .founder-nav button{min-height:42px}
}

/* iOS safe areas / notches. */
@supports (padding:max(0px)){
  @media (max-width:760px){
    .site-header .header-inner{padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right))}
    .founder-dialog .dialog-shell{padding-bottom:max(1rem,env(safe-area-inset-bottom))}
  }
}
