/* Passport and Membership layout fixes */
.passport-map-card{padding:0!important;overflow:hidden!important;margin-top:14px!important}
.passport-map{display:block;width:100%;height:620px;min-height:420px;border-radius:16px;overflow:hidden;background:#dbe3e1}
.passport-map .leaflet-container{width:100%;height:100%}
.cbc-location-icon{background:transparent!important;border:0!important}
.cbc-pin{display:grid;place-items:center;width:22px;height:22px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#334155;color:#fff;border:2px solid #fff;box-shadow:0 2px 6px #0007;font-size:12px;font-weight:900}
.cbc-pin.visited{background:#d9b33f;color:#14251d}
.cbc-pin.brewery{border-radius:50%;transform:none;font-size:12px}
.stat-box{background:#fff;color:var(--ink);border-radius:13px;padding:18px;text-align:center;border:1px solid #d8dfdc}
.stat-box strong{display:block;font-size:27px;margin-top:5px}
.stat-box span{display:block;font-size:10px;letter-spacing:1px;color:#64736b;font-weight:900}

/* Small, consistent gaps between the Passport sections. */
#nearestMount{margin-top:14px!important}
#passportRandomMount{margin-top:14px!important}
.suggest-pub-section,.suggest-section,#suggestPubMount{margin-top:14px!important}
.suggest-pub-section{text-align:center!important}
.suggest-pub-section h2,.suggest-pub-section h3,.suggest-pub-section p{text-align:center!important}

.membership-top{display:block;width:100%;margin-bottom:18px}
.membership-card{aspect-ratio:16/9!important;width:100%!important;max-width:760px!important;margin:0 auto 18px!important;padding:24px 28px!important;display:flex;flex-direction:column;justify-content:space-between;background:#111a16;color:#fff;border:2px solid #d9b33f;border-radius:18px;box-shadow:0 8px 28px #0005;overflow:hidden}
.membership-card .membership-card-brand{font-size:clamp(22px,4vw,32px);font-weight:900;letter-spacing:.5px;color:#d9b33f}
.membership-card .membership-card-no{align-self:flex-start;margin-top:auto;margin-bottom:8px;border:0;padding:0;text-align:left}
.membership-card .membership-card-no span{display:block;font-size:9px;letter-spacing:1.2px;color:#b9c2bd;margin-bottom:5px}
.membership-card .membership-card-no b{display:block;font-size:clamp(16px,2.5vw,24px);color:#fff;letter-spacing:1px}
.membership-card .membership-card-name{font-size:clamp(22px,4vw,34px);font-weight:900;text-align:right;color:#fff}
.account-actions,.account-actions .action-box,.action-box{display:none!important}
.account-wrap>.account-actions{display:none!important}
.account-wrap>.card:not(.friends-section):not(.edit-member-section):not(.year-beer){display:none!important}
.edit-member-section{margin-top:18px!important;padding:20px!important}
.edit-member-section h2{margin:0 0 7px;font-size:18px;font-weight:900}
.edit-member-link{color:var(--ink);font-size:15px;font-weight:400;text-decoration:none}
.edit-member-link:hover{text-decoration:underline}
.account-wrap>#accomplishmentsMount{width:100%;max-width:100%;box-sizing:border-box}
.accomplishments{display:grid;gap:14px;width:100%;max-width:100%;box-sizing:border-box}
.accomplishments>h2{margin-bottom:2px}
.accomplishments>.accomplishment-feature,.accomplishments>.badge-section{width:100%;max-width:100%;box-sizing:border-box;margin-left:0!important;margin-right:0!important}
.accomplishment-feature{background:#111a16;color:#fff;border-radius:16px;padding:20px;display:flex;align-items:center;gap:22px;border:1px solid #29332f}
.accomplishment-feature>div:last-child{flex:1}
.accomplishment-feature h3{margin:0 0 6px;font-size:18px;font-weight:900}
.accomplishment-feature p{margin:0;line-height:1.45;font-size:15px;color:#d8dfdc}
.accomplishment-feature.flag-feature{background:#fff;color:var(--ink);display:flex!important;flex-direction:column!important;align-items:stretch!important;padding:16px;border:2px solid #111a16;border-radius:6px;box-sizing:border-box;gap:12px}
.flag-feature .flag-copy{order:2;margin:0!important}
.flag-feature .cornwall-progress{order:1}
.flag-feature .flag-copy h3,.flag-feature .flag-copy p{color:var(--ink);opacity:1}
.cornwall-progress{width:100%;display:flex;justify-content:center}
.cornwall-progress .fill-map{position:relative!important;inset:auto!important;width:100%;max-width:680px;min-height:300px;aspect-ratio:16/9;display:flex!important;align-items:center;justify-content:center;background:#fff;border:1px solid #111a16;border-radius:2px;padding:10px;box-sizing:border-box;overflow:hidden}
.cornwall-progress .fill-shape{position:relative!important;z-index:1!important;width:100%!important;height:100%!important;display:grid!important;grid-template-columns:repeat(32,minmax(0,1fr))!important;grid-template-rows:repeat(20,minmax(0,1fr))!important;gap:2px!important;align-content:stretch!important;justify-content:center!important}
.cornwall-progress .fill-block{display:block!important;width:100%!important;height:100%!important;background:#fff!important;border-radius:0!important;min-width:0!important;min-height:0!important}
.cornwall-progress .fill-block.filled{background:#111a16!important}
.cornwall-progress .flag-cross-cell{display:block!important;width:100%!important;height:100%!important;background:#fff!important;min-width:0!important;min-height:0!important}
.badge-section{background:#fff;border:1px solid #d8dfdc;border-radius:16px;padding:20px;color:var(--ink);max-height:520px;overflow:auto;overscroll-behavior:contain}
.badge-section>h3{font-size:18px;font-weight:900;margin:0 0 6px;color:var(--ink)}
.badge-intro{margin:0 0 12px;color:#64736b;line-height:1.45;font-size:15px}
.badge-section .badge-item{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center;padding:12px 0;border-top:1px solid #e2e7e4}
.badge-section .badge-item:first-of-type{border-top:0}
.badge-section .badge-icon{font-size:34px;display:grid;place-items:center;min-height:48px}
.badge-section .badge-item strong{font-size:15px;font-weight:900}
.badge-section .badge-item p{font-size:15px;line-height:1.45;margin:3px 0;color:var(--ink)}
.badge-section .badge-item small{color:#64736b}
.friends-section{margin-top:18px!important;padding:20px!important}
.friends-section>h2{margin:0 0 6px;font-size:18px;font-weight:900}
.friends-section>p{margin:0 0 16px;font-size:15px;line-height:1.45;color:#64736b}
.friend-add-form{margin:0 0 18px;padding:16px;background:#f7f9f8;border:1px solid #d8dfdc;border-radius:12px}
.friend-add-form label{display:block;margin:0 0 7px;font-size:14px;font-weight:900;color:var(--ink)}
.friend-add-row{display:flex;gap:10px;align-items:stretch}
.friend-add-row input{flex:1;min-width:0}
.friend-add-row .btn{white-space:nowrap}
.friends-leaderboard{margin-top:4px}
.friends-leaderboard>small{display:block;color:#64736b}
.friends-leaderboard .friends-empty{font-size:15px;line-height:1.45;color:#64736b}
@media(max-width:760px){
  .passport-map{height:560px;min-height:360px}
  .membership-card{padding:18px 20px!important}
  .membership-card .membership-card-name{text-align:left}
  .accomplishment-feature{flex-direction:column;align-items:stretch}
  .friend-add-row{flex-direction:column}
  .friend-add-row .btn{width:100%}
  .badge-section{max-height:460px}
  .cornwall-progress .fill-map{min-height:240px}
  /* Keep every Membership section exactly the same outer width on phones. */
  .account-wrap>*,
  .account-wrap>#accomplishmentsMount,
  .account-wrap>#accomplishmentsMount>.accomplishments,
  .account-wrap>#accomplishmentsMount>.accomplishments>.accomplishment-feature,
  .account-wrap>#accomplishmentsMount>.accomplishments>.badge-section{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .account-wrap>.membership-top{width:100%!important}
  .account-wrap>.membership-top>.membership-card{width:100%!important;max-width:none!important}
  .account-wrap>#accomplishmentsMount>.accomplishments{padding:0!important}
}
