/* Meadowdale Fellowship — Portal CSS */

/* Base Design System */
:root{
  --navy:#101729;--navy-900:#0A0F1C;--navy-600:#1B2540;
  --teal:#3C7884;--teal-deep:#244854;
  --leaf:#88B850;--leaf-deep:#5C8042;
  --gold:#D8A83C;--gold-deep:#9C843C;
  --green:#2E4429;--green-600:#486840;--green-900:#1E2E1B;
  --coffee:#2A2018;--leather:#7A5238;
  --paper:#FFFFFF;--paper-2:rgba(216,168,60,.04);
  --t1:#101729;--t2:rgba(16,23,41,.80);--t3:rgba(16,23,41,.60);
  --line:rgba(16,23,41,.13);--line-d:rgba(255,255,255,.16);
  --disp:"Poppins","Futura","Avenir Next",-apple-system,Arial,sans-serif;
  --body:"Inter",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --edit:"Cormorant Garamond","Didot",Georgia,serif;
  --gut:clamp(18px,3.2vw,52px);--maxw:1400px;--ease:cubic-bezier(.2,.8,.3,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--t1);font-family:var(--body);font-weight:300;font-size:16px;line-height:1.58;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4{font-family:var(--disp);font-weight:300;margin:0;letter-spacing:-.018em;color:var(--t1)}
.stmt{font-family:var(--edit);font-weight:300;letter-spacing:-.004em;line-height:1.06}
h1.stmt{font-size:clamp(46px,5.6vw,86px)}
h2.stmt{font-size:clamp(32px,3.8vw,56px);line-height:1.1}
.eyebrow{font-family:var(--disp);font-size:10.5px;font-weight:400;letter-spacing:.26em;text-transform:uppercase;color:var(--teal-deep);margin:0}
.dk .eyebrow,.eyebrow.od{color:var(--gold)}
p{margin:0 0 .8em}
.lead{font-size:clamp(16px,1.1vw,17.5px);line-height:1.62;color:var(--t2)}
.sm{font-size:13.5px;line-height:1.55;color:var(--t3)}
.meta{font-family:var(--disp);font-size:10.5px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--t3);margin:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.pad{padding:clamp(40px,4vw,64px) 0}
.pad-s{padding:clamp(32px,3.2vw,48px) 0}
.dk{background:var(--navy);color:#fff}
.dk h1,.dk h2,.dk h3,.dk h4{color:#fff}
.dk .lead{color:rgba(255,255,255,.74)}
.dk .sm,.dk .meta{color:rgba(255,255,255,.56)}
.green{background:var(--green)}
.green h2,.green h3,.green h4{color:#fff}
.green .lead{color:rgba(255,255,255,.76)}
.green .eyebrow{color:var(--gold)}

.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:10.5px;font-weight:400;letter-spacing:.18em;text-transform:uppercase;padding:14px 26px;border:1px solid var(--navy);color:var(--navy);transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease)}
.btn:hover{background:var(--navy);color:#fff}
.btn.teal{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.btn.teal:hover{background:var(--gold-deep);border-color:var(--gold-deep);color:#fff}
.btn.ghost{border-color:rgba(255,255,255,.42);color:#fff}
.btn.ghost:hover{background:#fff;color:var(--navy);border-color:#fff}
.lnk{font-family:var(--disp);font-size:10.5px;font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);display:inline-flex;align-items:center;gap:8px;transition:gap .3s var(--ease),color .3s}
.lnk::after{content:"→";font-size:12px;transition:transform .3s var(--ease)}
.lnk:hover{color:var(--green)}
.lnk.od{color:var(--gold)}
.lnk.od:hover{color:#fff}
.dk .lnk,.cta .lnk{color:var(--gold)}
.dk .lnk:hover{color:#fff}

footer{background:var(--navy-900);color:rgba(255,255,255,.62);padding:clamp(40px,4.4vw,64px) 0 24px}
footer .top{display:grid;grid-template-columns:1.7fr repeat(3,1fr);gap:clamp(22px,2.6vw,40px);padding-bottom:clamp(26px,2.8vw,40px);border-bottom:1px solid var(--line-d)}
footer h5{font-family:var(--disp);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.4);margin:0 0 12px;font-weight:400}
footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
footer a{font-size:13.5px;transition:color .3s}
footer a:hover{color:var(--gold)}
footer .bot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:18px;font-size:11.5px;color:rgba(255,255,255,.34)}
footer .fd{font-size:11px;line-height:1.58;color:rgba(255,255,255,.3);max-width:92ch;margin-top:18px}
@media(max-width:1000px){footer .top{grid-template-columns:1fr 1fr}}
@media(max-width:640px){footer .top{grid-template-columns:1fr 1fr}}
.brand{display:flex;align-items:center;gap:11px;line-height:1}
.brand .mark{height:clamp(26px,2.4vw,34px);width:auto}
.wm{font-family:var(--disp);color:#fff;line-height:1.05}
.wm i{display:block;font-style:normal;font-weight:500;font-size:clamp(15px,1.3vw,19px);letter-spacing:-.02em}
.wm b{display:block;font-weight:300;font-size:clamp(8px,.7vw,10px);letter-spacing:.3em;margin-top:2px;opacity:.92}

/* Fellowship App Promo */
.app-promo{background:var(--navy-900);color:#fff;padding:clamp(36px,3.6vw,52px) 0;margin-top:clamp(28px,3vw,40px);border-top:1px solid rgba(255,255,255,.06)}
.app-promo .ap-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,2.6vw,40px);align-items:center}
@media(max-width:768px){.ap-grid{grid-template-columns:1fr}}
.app-promo .eyebrow{color:var(--gold)}
.app-promo h2{color:#fff;font-family:var(--edit);font-weight:300;font-size:clamp(24px,2.4vw,36px);line-height:1.15;margin:8px 0 0}
.app-promo p.lead{color:rgba(255,255,255,.72);font-size:14.5px;line-height:1.65;margin-top:14px;max-width:52ch}
.app-promo .feat{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.app-promo .feat div{display:flex;gap:12px;align-items:start}
.app-promo .feat .ic{width:30px;height:30px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--navy-600);border:1px solid var(--line-d);font-family:var(--disp);font-size:12px;color:var(--gold)}
.app-promo .feat .ft{font-size:13px;color:rgba(255,255,255,.85)}
.app-promo .feat .ft b{font-weight:500;color:#fff}
.app-promo .feat .fd{font-size:11px;color:rgba(255,255,255,.5);margin-top:2px}
.app-promo .coming{display:inline-block;font-family:var(--disp);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;padding:4px 9px;background:var(--gold);color:var(--navy);margin-left:8px;vertical-align:middle}
.app-promo .app-cta{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.app-promo img{border-radius:8px;max-height:320px;width:100%;object-fit:cover;box-shadow:0 16px 48px rgba(0,0,0,.4)}

/* Portal Navigation & Dashboard */
/* Portal nav */
.portal-hdr{position:fixed;inset:0 0 auto 0;z-index:120;background:var(--navy);padding:8px 0}
.portal-hdr .hbar{display:flex;align-items:center;justify-content:space-between;gap:24px}
.portal-nav{display:flex;align-items:center;gap:clamp(14px,1.6vw,24px)}
.portal-nav a{font-family:var(--disp);font-size:10.5px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.84);position:relative;padding:5px 0;transition:color .3s}
.portal-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:width .35s var(--ease)}
.portal-nav a:hover::after,.portal-nav a[aria-current]::after{width:100%}
.portal-nav a[aria-current]{color:#fff}
.portal-user{display:flex;align-items:center;gap:12px}
.portal-user .avatar{width:36px;height:36px;border-radius:50%;background:var(--navy-600);border:1px solid var(--line-d);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:13px;color:var(--gold);font-weight:500}
.portal-user .uname{font-family:var(--disp);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.portal-user .logout{font-family:var(--disp);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.2);padding:7px 12px;transition:background .3s,color .3s}
.portal-user .logout:hover{background:rgba(255,255,255,.1);color:#fff}
@media(max-width:1000px){.portal-nav a:nth-child(n+5){display:none}}

/* Dashboard */
.dash-hero{position:relative;background:var(--navy);padding:clamp(58px,6vh,76px) 0 clamp(28px,3vw,40px);overflow:hidden}
.dash-hero .greet{font-family:var(--edit);font-weight:300;font-size:clamp(32px,3.6vw,52px);line-height:1.1;color:#fff;margin:8px 0 0}
.dash-hero .sub{color:rgba(255,255,255,.7);font-size:15px;margin-top:10px}
.dash-grid{display:grid;grid-template-columns:2fr 1fr;gap:clamp(24px,2.6vw,40px);margin-top:clamp(28px,3vw,44px)}
@media(max-width:900px){.dash-grid{grid-template-columns:1fr}}
.dash-card{background:#fff;border:1px solid var(--line);padding:clamp(22px,2.4vw,32px)}
.dash-card h3{font-size:clamp(18px,1.5vw,22px);margin-bottom:16px}
.dash-card .eyebrow{margin-bottom:10px}

.booking{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);align-items:center;transition:border-color .3s}.booking:hover{border-color:var(--gold)}
.booking:last-child{border-bottom:0}
.booking .b-img{width:80px;height:60px;object-fit:cover;flex-shrink:0}
.booking .b-info{flex:1}
.booking .b-loc{font-family:var(--disp);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.booking .b-title{font-family:var(--disp);font-size:15px;font-weight:400;margin:3px 0}
.booking .b-date{font-size:12px;color:var(--t3)}
.booking .b-status{font-family:var(--disp);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;padding:4px 8px;background:var(--gold);color:var(--navy)}

.ann{padding:14px 0;border-bottom:1px solid var(--line)}
.ann:last-child{border-bottom:0}
.ann .tag{font-family:var(--disp);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;padding:3px 7px;background:var(--navy);color:#fff;display:inline-block;margin-bottom:6px}
.ann .tag.new{background:var(--gold);color:var(--navy)}
.ann h4{font-size:14px;margin:0 0 4px}
.ann p{font-size:13px;color:var(--t2);margin:0}

.tier-badge{display:inline-flex;align-items:center;gap:8px;font-family:var(--disp);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold);padding:6px 14px;margin-top:12px}

.qlinks{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:20px}
.qlinks a{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px solid var(--line);font-family:var(--disp);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--t2);transition:border-color .3s,color .3s}
.qlinks a:hover{border-color:var(--gold);color:var(--navy)}
.qlinks a::after{content:"→";margin-left:auto;font-size:13px}

.profile-rows{display:flex;flex-direction:column}
.profile-row{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}
.profile-row:last-child{border-bottom:0}
.profile-row .pk{font-family:var(--disp);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--t3)}
.profile-row .pv{font-family:var(--disp);font-size:13px;color:var(--t1);font-weight:400}

/* Fellowship App Promo */
.app-promo{background:var(--navy-900);color:#fff;padding:clamp(36px,3.6vw,52px) 0;margin-top:clamp(28px,3vw,40px);border-top:1px solid rgba(255,255,255,.06)}
.app-promo .ap-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,2.6vw,40px);align-items:center}
@media(max-width:768px){.ap-grid{grid-template-columns:1fr}}
.app-promo .eyebrow{color:var(--gold)}
.app-promo h2{color:#fff;font-family:var(--edit);font-weight:300;font-size:clamp(24px,2.4vw,36px);line-height:1.15;margin:8px 0 0}
.app-promo p.lead{color:rgba(255,255,255,.72);font-size:14.5px;line-height:1.65;margin-top:14px;max-width:52ch}
.app-promo .feat{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.app-promo .feat div{display:flex;gap:12px;align-items:start}
.app-promo .feat .ic{width:30px;height:30px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--navy-600);border:1px solid var(--line-d);font-family:var(--disp);font-size:12px;color:var(--gold)}
.app-promo .feat .ft{font-size:13px;color:rgba(255,255,255,.85)}
.app-promo .feat .ft b{font-weight:500;color:#fff}
.app-promo .feat .fd{font-size:11px;color:rgba(255,255,255,.5);margin-top:2px}
.app-promo .coming{display:inline-block;font-family:var(--disp);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;padding:4px 9px;background:var(--gold);color:var(--navy);margin-left:8px;vertical-align:middle}
.app-promo .app-cta{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.app-promo img{border-radius:8px;max-height:320px;width:100%;object-fit:cover;box-shadow:0 16px 48px rgba(0,0,0,.4)}

/* Login Page */
/* Login page */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--navy);position:relative;overflow:hidden}
.login-page>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.25;object-position:center 35%}
.login-page .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,15,28,.7),rgba(10,15,28,.9))}
.login-box{position:relative;z-index:2;width:100%;max-width:420px;padding:clamp(36px,4vw,48px);background:rgba(10,15,28,.92);border:1px solid rgba(255,255,255,.12)}
.login-box .logo{display:flex;align-items:center;justify-content:center;gap:11px;margin-bottom:28px}
.login-box .logo img{height:40px;width:auto}
.login-box .logo .wm{font-family:var(--disp);color:#fff;line-height:1.05}
.login-box .logo .wm i{display:block;font-style:normal;font-weight:500;font-size:21px;letter-spacing:-.02em}
.login-box .logo .wm b{display:block;font-weight:300;font-size:11px;letter-spacing:.3em;margin-top:2px;opacity:.92}
.login-box h1{font-family:var(--edit);font-weight:300;font-size:28px;color:#fff;text-align:center;margin:0 0 6px}
.login-box p.sub{text-align:center;color:rgba(255,255,255,.6);font-size:14px;margin-bottom:28px}
.login-box .field{margin-bottom:16px}
.login-box .field label{display:block;font-family:var(--disp);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:6px}
.login-box .field input{width:100%;padding:13px 14px;font-family:var(--body);font-size:14.5px;font-weight:300;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.04);color:#fff;border-radius:0;transition:border-color .3s}
.login-box .field input:focus{outline:none;border-color:var(--gold)}
.login-box .field input::placeholder{color:rgba(255,255,255,.3)}
.login-box .btn-login{width:100%;padding:14px;font-family:var(--disp);font-size:11px;letter-spacing:.18em;text-transform:uppercase;background:var(--gold);color:var(--navy);border:none;cursor:pointer;transition:background .3s;margin-top:8px;display:block;text-align:center}
.login-box .btn-login:hover{background:#fff}
.login-box .login-note{text-align:center;font-size:11px;color:rgba(255,255,255,.3);margin-top:20px;line-height:1.5}
.login-box .login-note a{color:var(--gold);border-bottom:1px solid rgba(216,168,60,.4);padding-bottom:1px}
.login-proto-note{position:relative;z-index:2;text-align:center;font-size:11px;color:rgba(255,255,255,.28);max-width:460px;margin:22px auto 0;padding:0 20px;line-height:1.6}


/* ===== Portal Dropdown Nav ===== */
.pdd-wrap{position:relative;display:flex;align-items:center}
.pdd-wrap>a{padding:5px 0}
.pdd-wrap .caret{color:rgba(255,255,255,.5);font-size:8px;margin-left:2px;pointer-events:none}
.pdd{position:absolute;top:100%;left:50%;transform:translateX(-50%);background:#0A0F1C;min-width:200px;display:none;flex-direction:column;padding:8px 0;z-index:9999;box-shadow:0 8px 24px rgba(0,0,0,.5);border-top:1px solid rgba(255,255,255,.1)}
.pdd a{padding:10px 20px;font-size:10px;color:rgba(255,255,255,.84);white-space:nowrap;letter-spacing:.16em;text-transform:uppercase;font-family:var(--disp);text-align:center}
.pdd a:hover{background:rgba(255,255,255,.06);color:var(--gold)}
.pdd-wrap:hover .pdd{display:flex}

/* ===== Dashboard Cards ===== */
.dash-card{background:#fff;border:1px solid var(--line);padding:clamp(22px,2.4vw,32px)}
.dash-card h3{font-size:clamp(20px,1.8vw,26px);margin:6px 0 16px;color:var(--navy)}
.dash-card .eyebrow{margin-bottom:0}
.dash-grid{display:grid;grid-template-columns:2fr 1fr;gap:clamp(24px,2.6vw,40px)}
@media(max-width:900px){.dash-grid{grid-template-columns:1fr}}

/* Dashboard hero */
.dash-hero{position:relative;background:var(--navy);padding:clamp(40px,4vw,60px) 0 clamp(24px,2.4vw,36px);overflow:hidden}
.dash-hero .greet{font-family:var(--edit);font-weight:300;font-size:clamp(32px,3.6vw,52px);color:#fff;margin:8px 0 0}
.dash-hero .tier-badge{display:inline-block;font-family:var(--disp);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold);padding:5px 12px;margin-top:14px}
.dash-hero .sub{color:rgba(255,255,255,.6);font-size:15px;margin-top:10px}

/* Booking items */
.booking{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;transition:background .3s}
.booking:last-child{border-bottom:0}
.booking:hover{background:rgba(0,0,0,.02)}
.b-img{width:60px;height:60px;object-fit:cover;flex-shrink:0}
.b-info{flex:1}
.b-loc{font-family:var(--disp);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--teal)}
.b-title{font-family:var(--disp);font-size:15px;color:var(--navy);margin:2px 0}
.b-date{font-size:12px;color:var(--t3)}
.b-status{font-family:var(--disp);font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:5px 10px;background:var(--gold);color:var(--navy);white-space:nowrap}

/* Announcements */
.ann{padding:14px 0;border-bottom:1px solid var(--line)}
.ann:last-child{border-bottom:0}
.ann .tag{display:inline-block;font-family:var(--disp);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;padding:3px 8px;margin-bottom:6px}
.ann .tag.new{background:var(--teal);color:#fff}
.ann h4{font-size:15px;font-weight:400;color:var(--navy);margin:0 0 4px}
.ann p{font-size:13px;color:var(--t2);margin:0}

/* Profile rows */
.profile-rows{margin-top:12px}
.profile-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
.profile-row:last-child{border-bottom:0}
.pk{font-family:var(--disp);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--t3)}
.pv{font-size:14px;color:var(--t1);text-align:right}

/* Quick links */
.qlinks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.qlinks a{font-family:var(--disp);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:12px;text-align:center;border:1px solid var(--line);color:var(--navy);text-decoration:none;transition:border-color .3s,color .3s}
.qlinks a:hover{border-color:var(--gold);color:var(--gold)}

/* ===== Banner (inner pages) ===== */
.bnr{position:relative;overflow:hidden;display:flex;align-items:flex-end;min-height:clamp(340px,46vh,460px)}
.bnr>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.72;object-position:center 40%}
.bnr .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,18,30,.4) 0%,rgba(10,15,28,.85) 100%)}
.bnr .in{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;color:#fff;padding:0 var(--gut) clamp(32px,3.5vw,48px)}
.bnr h1{color:#fff;margin:12px 0 0;font-size:clamp(34px,3.6vw,54px);font-family:var(--edit);font-weight:300}
.bnr .eyebrow{color:var(--gold)}
.bnr .sub{color:rgba(255,255,255,.7);font-size:clamp(15px,1.1vw,17px);margin-top:8px;max-width:50ch}

/* ===== Trip List (Portal Trips) ===== */
.trip-list{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(18px,2vw,28px)}
@media(max-width:768px){.trip-list{grid-template-columns:1fr}}
.trip-item{border:1px solid var(--line);background:#fff;overflow:hidden;display:flex;flex-direction:column;transition:border-color .3s,box-shadow .3s}
.trip-item:hover{border-color:var(--gold);box-shadow:0 4px 24px rgba(0,0,0,.06)}
.trip-item .ph{position:relative;overflow:hidden;aspect-ratio:16/10;background:var(--navy)}
.trip-item .ph img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.trip-item:hover .ph img{transform:scale(1.03)}
.trip-item .ph .tag{position:absolute;top:12px;left:12px;font-family:var(--disp);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;padding:5px 10px;background:var(--navy);color:#fff}
.trip-item .ph .tag.open{background:var(--gold);color:var(--navy)}
.trip-item .bd{padding:clamp(16px,1.5vw,20px);display:flex;flex-direction:column;flex:1}
.trip-item .loc{font-family:var(--disp);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--teal)}
.trip-item h3{margin:6px 0 7px;font-size:clamp(17px,1.4vw,21px);color:var(--navy)}
.trip-item .blurb{font-size:13px;line-height:1.5;color:var(--t2);margin:0 0 12px}
.trip-item .meta-row{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}
.trip-item .price{font-family:var(--disp);font-size:14px;color:var(--t1)}
.trip-item .book-btn{font-family:var(--disp);font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:8px 14px;border:1px solid var(--navy);color:var(--navy);transition:background .3s,color .3s}
.trip-item .book-btn:hover{background:var(--navy);color:#fff}

/* ===== Subscription List (Benefits) ===== */
.sub-list{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.sub-item{display:flex;align-items:center;gap:16px;padding:16px 18px;border:1px solid var(--line);transition:border-color .3s}
.sub-item:hover{border-color:var(--gold)}
.sub-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--navy);color:var(--gold);font-family:var(--disp);font-size:16px;font-weight:500;flex-shrink:0}
.sub-name{font-family:var(--disp);font-size:14px;font-weight:400;color:var(--t1)}
.sub-desc{font-size:12px;color:var(--t3);margin-top:2px}
.sub-status{margin-left:auto;font-family:var(--disp);font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:5px 10px}
.sub-status.active{background:var(--leaf);color:#fff}
.sub-status.pending{background:var(--gold);color:var(--navy)}

/* ===== Tiles (dark sections) ===== */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,28px)}
@media(max-width:900px){.tiles{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.tiles{grid-template-columns:1fr}}
.tile{border:1px solid var(--line-d);padding:clamp(22px,2.2vw,30px);display:flex;flex-direction:column;min-height:clamp(120px,12vw,180px)}
.tile:hover{background:rgba(255,255,255,.05);border-color:var(--gold)}
.tile .v{font-family:var(--disp);font-weight:300;font-size:clamp(24px,2.3vw,34px);color:var(--gold);letter-spacing:-.02em}
.tile h4{margin:12px 0 8px;color:#fff;font-size:15px;font-weight:400}
.tile p{font-size:13.5px;line-height:1.56;color:rgba(255,255,255,.68);margin:0}

/* ===== Benefit Cards (detailed, from public benefits page) ===== */
.benefit-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(18px,2vw,28px);margin-top:24px}
@media(max-width:768px){.benefit-cards{grid-template-columns:1fr}}
.benefit-cards.b3{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.benefit-cards.b3{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.benefit-cards.b3{grid-template-columns:1fr}}
.benefit-card{border:1px solid var(--line);padding:clamp(22px,2.4vw,32px)}
.benefit-card .num{font-family:var(--disp);font-size:11px;letter-spacing:.2em;color:var(--gold);margin:0 0 12px}
.benefit-card h3{font-size:clamp(18px,1.5vw,22px);margin:0 0 12px;color:var(--navy);font-weight:400}
.benefit-card p{font-size:14px;line-height:1.6;color:var(--t2);margin:0}
.benefit-card a{color:var(--teal);text-decoration:none}
.benefit-card a:hover{color:var(--gold)}
.dk .benefit-card{border-color:var(--line-d)}
.dk .benefit-card h3{color:#fff}
.dk .benefit-card p{color:rgba(255,255,255,.68)}
.dk .benefit-card a{color:var(--gold)}
.benefits-note{font-size:13px;color:var(--t3);margin-top:32px;line-height:1.6}
.benefits-note a{color:var(--teal);text-decoration:none;border-bottom:1px solid rgba(60,120,132,.3)}

/* ===== Directory ===== */
.dir-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,28px)}
@media(max-width:900px){.dir-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.dir-grid{grid-template-columns:1fr}}
.dir-card{border:1px solid var(--line);padding:20px;display:flex;gap:14px;align-items:center;transition:border-color .3s;text-decoration:none;color:inherit}
.dir-card:hover{border-color:var(--gold)}
.dir-photo{width:56px;height:56px;border-radius:50%;object-fit:cover;flex-shrink:0}
.dir-initials{display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:18px;color:#fff;font-weight:500}
.dir-name{font-family:var(--disp);font-size:15px;color:var(--navy)}
.dir-partner{font-size:12px;color:var(--t3);margin-top:2px}
.dir-loc{font-size:12px;color:var(--t3);margin-top:2px}
.dir-since{font-size:11px;color:var(--t3);margin-top:4px;opacity:.7}

/* ===== Publications (My Pubs) ===== */
.pub-section{margin-bottom:clamp(32px,3.5vw,52px)}
.pub-publisher{font-family:var(--disp);font-weight:300;font-size:clamp(22px,2.2vw,32px);color:var(--navy);margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--gold);display:inline-block}
.pub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,1.5vw,22px)}
@media(max-width:768px){.pub-grid{grid-template-columns:1fr}}
.pub-card{display:flex;align-items:flex-start;gap:16px;padding:18px 20px;border:1px solid var(--line);transition:border-color .3s}
.pub-card:hover{border-color:var(--gold)}
.pub-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--navy);color:var(--gold);font-family:var(--disp);font-size:16px;font-weight:500;flex-shrink:0}
.pub-body{flex:1}
.pub-name{font-family:var(--disp);font-size:15px;font-weight:400;color:var(--navy)}
.pub-meta{display:flex;gap:12px;align-items:center;margin-top:4px}
.pub-code{font-family:var(--disp);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);background:var(--navy);padding:3px 8px}
.pub-editor{font-size:11.5px;color:var(--t3)}
.pub-desc{font-size:12.5px;line-height:1.5;color:var(--t2);margin-top:6px}

/* ===== Benefit Catalog (Benefits page) ===== */
.benefit-catalog{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,1.5vw,22px);margin-top:24px}
@media(max-width:768px){.benefit-catalog{grid-template-columns:1fr}}
.cat-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border:1px solid var(--line);transition:border-color .3s;text-decoration:none;color:inherit}
.cat-item:hover{border-color:var(--gold)}
.cat-name{font-family:var(--disp);font-size:15px;color:var(--navy);flex-shrink:0}
.cat-right{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right}
.cat-editors{font-size:12px;color:var(--t3)}
.cat-count{font-family:var(--disp);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);white-space:nowrap}

/* ===== Account Settings ===== */
.profile-rows .pk{font-weight:400}

/* ===== Portal Footer ===== */
.portal-body footer{background:var(--navy-900);color:rgba(255,255,255,.62);padding:clamp(40px,4.4vw,64px) 0 24px}
.portal-body footer .top{display:grid;grid-template-columns:1.7fr repeat(3,1fr);gap:clamp(22px,2.6vw,40px);padding-bottom:clamp(26px,2.8vw,40px);border-bottom:1px solid var(--line-d)}
.portal-body footer h5{font-family:var(--disp);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.4);margin:0 0 12px;font-weight:400}
.portal-body footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.portal-body footer a{font-size:13.5px;transition:color .3s;text-decoration:none}
.portal-body footer a:hover{color:var(--gold)}
.portal-body footer .bot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:18px;font-size:11.5px;color:rgba(255,255,255,.34)}
.portal-body footer .fd{font-size:11px;line-height:1.58;color:rgba(255,255,255,.3);max-width:92ch;margin-top:18px}
.portal-body footer .sm{color:rgba(255,255,255,.5)}
@media(max-width:640px){.portal-body footer .top{grid-template-columns:1fr 1fr}}

/* ===== Login Page ===== */
.login-body{margin:0;background:var(--navy)}
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--navy);position:relative;overflow:hidden}
.login-page>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.25;object-position:center 35%}
.login-page .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,15,28,.7),rgba(10,15,28,.9))}
.login-box{position:relative;z-index:2;width:100%;max-width:420px;padding:clamp(36px,4vw,48px);background:rgba(10,15,28,.92);border:1px solid rgba(255,255,255,.12);margin:0 auto}
.login-box .logo{display:flex;align-items:center;justify-content:center;gap:11px;margin-bottom:28px;text-decoration:none}
.login-box .logo img{height:40px;width:auto}
.login-box .logo .wm{font-family:var(--disp);color:#fff;line-height:1.05}
.login-box .logo .wm i{display:block;font-style:normal;font-weight:500;font-size:21px;letter-spacing:-.02em}
.login-box .logo .wm b{display:block;font-weight:300;font-size:11px;letter-spacing:.3em;margin-top:2px;opacity:.92}
.login-box h1{font-family:var(--edit);font-weight:300;font-size:28px;color:#fff;text-align:center;margin:0 0 6px}
.login-box p.sub{text-align:center;color:rgba(255,255,255,.6);font-size:14px;margin-bottom:28px}
.login-box .field{margin-bottom:16px}
.login-box .field label{display:block;font-family:var(--disp);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:6px}
.login-box .field input{width:100%;padding:13px 14px;font-family:var(--body);font-size:14.5px;font-weight:300;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.04);color:#fff;border-radius:0;transition:border-color .3s}
.login-box .field input:focus{outline:none;border-color:var(--gold)}
.login-box .field input::placeholder{color:rgba(255,255,255,.3)}
.login-box .btn-login{width:100%;padding:14px;font-family:var(--disp);font-size:11px;letter-spacing:.18em;text-transform:uppercase;background:var(--gold);color:var(--navy);border:none;cursor:pointer;transition:background .3s;margin-top:8px;display:block;text-align:center}
.login-box .btn-login:hover{background:#fff}
.login-box .login-note{text-align:center;font-size:11px;color:rgba(255,255,255,.3);margin-top:20px;line-height:1.5}
.login-box .login-note a{color:var(--gold);border-bottom:1px solid rgba(216,168,60,.4);padding-bottom:1px;text-decoration:none}

/* WordPress login form overrides */
.login-box .login-error{color:#ffd0c7;background:rgba(232,90,90,.12);border:1px solid rgba(232,90,90,.45);padding:12px 14px;margin:0 0 20px;font-size:13px;line-height:1.6;text-align:left}
.login-box form{margin:0}
.login-box .login-username,.login-box .login-password{margin-bottom:16px}
.login-box .login-username label,.login-box .login-password label{display:block;font-family:var(--disp);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:6px}
.login-box input[type="text"],.login-box input[type="password"]{width:100%;padding:13px 14px;font-family:var(--body);font-size:14.5px;font-weight:300;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.04);color:#fff;border-radius:0;transition:border-color .3s}
.login-box input[type="text"]:focus,.login-box input[type="password"]:focus{outline:none;border-color:var(--gold)}
.login-box input[type="text"]::placeholder,.login-box input[type="password"]::placeholder{color:rgba(255,255,255,.3)}
.login-box input#wp-submit{width:100%;padding:14px;font-family:var(--disp);font-size:11px;letter-spacing:.18em;text-transform:uppercase;background:var(--gold);color:var(--navy);border:none;cursor:pointer;transition:background .3s;margin-top:8px;display:block;text-align:center}
.login-box input#wp-submit:hover{background:#fff}
.login-box .login-remember{display:none}

/* ===== Section Headers ===== */
.sh{margin-bottom:24px}
.sh .eyebrow{margin-bottom:6px}

/* ===== Links ===== */
.portal-body a{text-decoration:none}
.lnk{font-family:var(--disp);font-size:10.5px;font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);display:inline-flex;align-items:center;gap:8px;transition:color .3s}
.lnk::after{content:"→";font-size:12px}
.lnk:hover{color:var(--green)}
.lnk.od{color:var(--gold)}
.dk .lnk{color:var(--gold)}
.dk .lnk:hover{color:#fff}

/* Login wrap for centering */
.login-wrap{position:relative;z-index:2;width:100%;max-width:420px;padding:0 20px}

/* ===== Account Settings ===== */
.settings-grid{display:grid;grid-template-columns:240px 1fr;gap:clamp(24px,2.6vw,40px);margin-top:clamp(28px,3vw,40px)}
@media(max-width:768px){.settings-grid{grid-template-columns:1fr}}
.settings-side{position:sticky;top:80px;align-self:start}
.settings-side a{display:block;font-family:var(--disp);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--t2);padding:10px 0;border-bottom:1px solid var(--line);transition:color .3s;text-decoration:none}
.settings-side a:hover,.settings-side a.active{color:var(--navy)}
.settings-side a.active{font-weight:500}
.settings-card{background:#fff;border:1px solid var(--line);padding:clamp(22px,2.4vw,32px);margin-bottom:clamp(20px,2vw,28px)}
.settings-card h3{font-size:clamp(17px,1.4vw,21px);margin-bottom:6px;color:var(--navy)}
.settings-card .desc{font-size:14px;color:var(--t3);margin-bottom:18px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}
@media(max-width:600px){.field-row{grid-template-columns:1fr}}
.field label{display:block;font-family:var(--disp);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--t3);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:11px 14px;font-family:var(--body);font-size:14px;font-weight:300;border:1px solid var(--line);color:var(--t1);border-radius:0;transition:border-color .3s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold)}
.field input:read-only{background:rgba(16,23,41,.04);color:var(--t3)}
.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}
.toggle-row:last-child{border-bottom:0}
.toggle-row .tlabel{font-size:14px;color:var(--t1)}
.toggle-row .tdesc{font-size:12px;color:var(--t3);margin-top:2px}
.toggle{position:relative;width:42px;height:24px;background:var(--line);border-radius:12px;cursor:pointer;transition:background .3s;flex-shrink:0}
.toggle.on{background:var(--leaf)}
.toggle::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:left .3s}
.toggle.on::after{left:20px}
.avatar-upload{display:flex;align-items:center;gap:20px;margin-bottom:20px}
.avatar-upload .av-preview{width:72px;height:72px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:26px;color:var(--gold);font-weight:500}
.avatar-upload .av-btn{font-family:var(--disp);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:9px 16px;border:1px solid var(--line);color:var(--t2);cursor:pointer;transition:border-color .3s,color .3s;background:none}
.avatar-upload .av-btn:hover{border-color:var(--gold);color:var(--navy)}
.save-bar{display:flex;gap:12px;margin-top:20px}
.save-bar .btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;padding:13px 24px;cursor:pointer;transition:background .3s,color .3s,border-color .3s;border:1px solid transparent}
.save-bar .btn.gold{background:var(--gold);color:var(--navy)}
.save-bar .btn.gold:hover{background:var(--navy);color:#fff}
.save-bar .btn.ghost{background:transparent;color:var(--t2);border-color:var(--line)}
.save-bar .btn.ghost:hover{border-color:var(--navy);color:var(--navy)}

/* ===== Directory ===== */
.member-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.8vw,24px)}
@media(max-width:768px){.member-grid{grid-template-columns:1fr}}
.member-card{border:1px solid var(--line);padding:clamp(18px,1.8vw,24px);display:flex;gap:14px;align-items:center;transition:border-color .3s,transform .3s var(--ease);text-decoration:none;color:inherit}
.member-card:hover{border-color:var(--gold);transform:translateY(-2px)}
.member-card .ma{width:48px;height:48px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:16px;color:var(--gold);font-weight:500;flex-shrink:0}
.member-card .mn{font-family:var(--disp);font-size:14px;font-weight:400;color:var(--t1)}
.member-card .ml{font-size:12px;color:var(--t3);margin-top:2px}
.member-card .mt{font-family:var(--disp);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-top:4px}
.member-card .mt.founding{color:var(--gold-deep)}

/* ===== App Promo ===== */
.app-promo{background:var(--navy);color:#fff;padding:clamp(40px,4vw,60px) 0;margin-top:clamp(30px,3vw,44px)}
.app-promo .ap-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,3vw,48px);align-items:center}
@media(max-width:768px){.ap-grid{grid-template-columns:1fr}}
.app-promo .eyebrow{color:var(--gold)}
.app-promo h2{color:#fff;font-family:var(--edit);font-weight:300;font-size:clamp(26px,2.6vw,38px);line-height:1.15;margin:8px 0 0}
.app-promo p{color:rgba(255,255,255,.72);font-size:15px;line-height:1.65;margin-top:14px}
.app-promo .feat{display:flex;flex-direction:column;gap:14px;margin-top:24px}
.app-promo .feat div{display:flex;gap:12px;align-items:start}
.app-promo .feat .ic{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--navy-600);border:1px solid var(--line-d);font-family:var(--disp);font-size:13px;color:var(--gold)}
.app-promo .feat .ft{font-size:14px;color:rgba(255,255,255,.85)}
.app-promo .feat .ft b{font-weight:500;color:#fff}
.app-promo .feat .fd{font-size:12px;color:rgba(255,255,255,.5);margin-top:2px}
.app-promo .app-cta{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}
.app-promo .coming{display:inline-block;font-family:var(--disp);font-size:9px;letter-spacing:.16em;text-transform:uppercase;padding:5px 10px;background:var(--gold);color:var(--navy);margin-left:8px}

/* Fix: Account settings field sizing */
.settings-card{max-width:none}
.field input,.field select,.field textarea{max-width:100%;font-size:14px;padding:11px 14px}
.save-bar .btn{font-size:11px;padding:13px 24px}

/* Fix: Directory hero renders properly */
.bnr img{display:block}

/* Fix: Remove stock picks from nav */
.portal-nav .pdd a[href*="stock-picks"]{display:none}

/* ===== My Pubs — Publisher Directory ===== */
.pub-cat-grid{display:flex;flex-direction:column;gap:12px}
.pub-cat-item{border:1px solid var(--line);background:#fff;overflow:hidden}
.pub-cat-header{display:flex;align-items:center;gap:16px;padding:18px 22px;cursor:pointer;transition:background .3s}
.pub-cat-header:hover{background:#fafbfc}
.pub-cat-info{flex:1}
.pub-cat-name{font-family:var(--disp);font-size:15px;font-weight:500;color:var(--navy)}
.pub-cat-editors{font-size:12px;color:var(--t3);margin-top:2px}
.pub-cat-count{font-family:var(--disp);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);white-space:nowrap}
.pub-cat-arrow{font-size:14px;color:var(--t3);transition:transform .3s}
.pub-cat-item.open .pub-cat-arrow{transform:rotate(180deg)}
.pub-cat-body{display:none;border-top:1px solid var(--line)}
.pub-cat-item.open .pub-cat-body{display:block}
.pub-cat-row{display:grid;grid-template-columns:60px 1fr;gap:14px;padding:14px 22px;border-bottom:1px solid var(--line)}
.pub-cat-row:last-child{border-bottom:0}
.pub-cat-code{font-family:var(--disp);font-size:10px;font-weight:500;letter-spacing:.1em;color:var(--gold-deep);text-transform:uppercase;padding-top:2px}
.pub-cat-pname{font-family:var(--disp);font-size:13px;font-weight:500;color:var(--t1)}
.pub-cat-peditor{font-size:11px;color:var(--teal);margin-top:1px}
.pub-cat-pdesc{font-size:12px;color:var(--t3);line-height:1.55;margin-top:4px}

/* ===== Benefits — Fix layout ===== */
.benefit-section{padding:clamp(32px,3.5vw,52px) 0}
.benefit-section .wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.benefit-section h2{font-size:clamp(22px,2vw,30px);color:var(--navy);margin-bottom:8px}
.benefit-section .lead{font-size:15px;color:var(--t2);line-height:1.65;max-width:62ch}
.benefit-section .lead .lnk{display:inline-flex}
.benefit-cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:24px}
@media(max-width:900px){.benefit-cat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:500px){.benefit-cat-grid{grid-template-columns:1fr}}
.benefit-cat-item{border:1px solid var(--line);padding:18px;text-decoration:none;color:inherit;transition:border-color .3s,transform .3s}
.benefit-cat-item:hover{border-color:var(--gold);transform:translateY(-2px)}
.benefit-cat-item .bc-name{font-family:var(--disp);font-size:13px;font-weight:500;color:var(--navy)}
.benefit-cat-item .bc-count{font-size:11px;color:var(--t3);margin-top:3px}




/* Fix: Account settings — properly sized fields and content */
.settings-content{max-width:none}
.settings-card{max-width:none}
.settings-card h3{font-size:clamp(18px,1.6vw,22px)}
.settings-card .desc{font-size:14px}
.field input,.field select,.field textarea{font-size:14px;padding:11px 14px;max-width:100%}
.field label{font-size:10px}
.save-bar .btn{font-size:11px;padding:13px 24px}
.toggle-check{width:20px;height:20px;accent-color:var(--leaf);cursor:pointer}
.settings-saved{background:var(--leaf);color:#fff;padding:10px 16px;margin-bottom:16px;font-size:12px;border-radius:2px}
.settings-error{background:#e85a5a;color:#fff;padding:10px 16px;margin-bottom:16px;font-size:12px;border-radius:2px}
.av-help{font-size:11px;color:var(--t3);margin-top:6px}

/* My Pubs — Active Subscriptions */
.pub-group-title{font-family:var(--disp);font-size:13px;font-weight:500;color:var(--navy);margin:0 0 12px;text-transform:none;letter-spacing:0}
.active-pubs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}
@media(max-width:768px){.active-pubs-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.active-pubs-grid{grid-template-columns:1fr}}
.active-pub-card{border:1px solid var(--line);padding:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.ap-code{font-family:var(--disp);font-size:13px;font-weight:500;color:var(--navy)}
.ap-type{font-family:var(--disp);font-size:8px;letter-spacing:.12em;text-transform:uppercase;padding:4px 8px;white-space:nowrap}
.ap-type.complimentary{background:var(--leaf);color:#fff}
.ap-type.discounted{background:var(--gold);color:var(--navy)}
.empty-state{border:1px dashed var(--line);padding:24px;text-align:center;color:var(--t3);font-size:14px;line-height:1.6;margin-bottom:32px}

/* Fix: Section headings — consistent left-aligned, not centered */
.sh{margin-bottom:24px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.sh > div{flex:1}
.sh h2{font-size:clamp(22px,2.2vw,32px);font-family:var(--disp);font-weight:400;color:var(--navy);line-height:1.2;margin:0}
.dk .sh h2{color:#fff}
.sh .eyebrow{margin-bottom:6px}
.sh .lead{font-size:14px;color:var(--t3);line-height:1.6;margin-top:6px;max-width:60ch}
.sh .lead .lnk{display:inline-flex}

/* Fix: Dashboard concierge "Need Help?" heading — make it visible */
.dash-card.dk h3{color:#fff !important}
.dash-card.dk .eyebrow{color:var(--gold) !important}

/* Fix: My Pubs heading alignment */
.pub-head{margin-bottom:20px}
.pub-head h2{font-size:clamp(22px,2.2vw,32px);font-family:var(--disp);font-weight:400;color:var(--navy);line-height:1.2;margin:0}
.pub-head .eyebrow{margin-bottom:6px}
.pub-head .sm{font-size:13px;color:var(--t3);margin-top:6px;max-width:60ch}

/* Fix: Publication library — more visual interest */
.pub-cat-item{border:1px solid var(--line);background:#fff;overflow:hidden;transition:border-color .3s,box-shadow .3s}
.pub-cat-item:hover{border-color:var(--gold);box-shadow:0 2px 12px rgba(16,23,41,.06)}
.pub-cat-header{display:flex;align-items:center;gap:16px;padding:16px 20px;cursor:pointer;transition:background .3s}
.pub-cat-header:hover{background:#fafbfc}
.pub-cat-info{flex:1}
.pub-cat-name{font-family:var(--disp);font-size:14px;font-weight:500;color:var(--navy)}
.pub-cat-editors{font-size:12px;color:var(--t3);margin-top:2px}
.pub-cat-count{font-family:var(--disp);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);white-space:nowrap;background:rgba(60,120,132,.08);padding:4px 10px;border-radius:2px}
.pub-cat-arrow{font-size:14px;color:var(--t3);transition:transform .3s}
.pub-cat-item.open .pub-cat-arrow{transform:rotate(180deg)}
.pub-cat-body{display:none;border-top:1px solid var(--line)}
.pub-cat-item.open .pub-cat-body{display:block}
.pub-cat-row{display:grid;grid-template-columns:60px 1fr;gap:14px;padding:12px 20px;border-bottom:1px solid var(--line)}
.pub-cat-row:last-child{border-bottom:0}
.pub-cat-row:hover{background:#fafbfc}
.pub-cat-code{font-family:var(--disp);font-size:10px;font-weight:500;letter-spacing:.1em;color:var(--gold-deep);text-transform:uppercase;padding-top:2px}
.pub-cat-pname{font-family:var(--disp);font-size:13px;font-weight:500;color:var(--t1)}
.pub-cat-peditor{font-size:11px;color:var(--teal);margin-top:1px}
.pub-cat-pdesc{font-size:12px;color:var(--t3);line-height:1.55;margin-top:4px}

/* Fix: Active pub cards — show pub name and publisher */
.active-pub-card{border:1px solid var(--line);padding:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.active-pub-card .ap-code{font-family:var(--disp);font-size:10px;font-weight:500;letter-spacing:.1em;color:var(--gold-deep);text-transform:uppercase;display:block;margin-bottom:4px}
.active-pub-card .ap-name{font-family:var(--disp);font-size:13px;font-weight:500;color:var(--navy);line-height:1.3}
.active-pub-card .ap-pub{font-size:11px;color:var(--t3);margin-top:2px}

/* Fix: Account settings — full size fields */
.settings-content{max-width:none}
.settings-card{max-width:none;padding:clamp(22px,2.4vw,32px)}
.settings-card h3{font-size:clamp(18px,1.6vw,22px)}
.settings-card .desc{font-size:14px;margin-bottom:18px}
.field-row{gap:16px;margin-bottom:14px}
.field input,.field select,.field textarea{font-size:12px;padding:7px 10px;border-radius:2px}
.field label{font-size:8.5px;margin-bottom:3px}
.save-bar{margin-top:14px}
.save-bar .btn{font-size:9px;padding:8px 14px}
.toggle-row{padding:10px 0}
.toggle-row .tlabel{font-size:13px}
.toggle-row .tdesc{font-size:11px}
.toggle-check{width:18px;height:18px}
.settings-saved{padding:8px 14px;font-size:11px}
.settings-error{padding:8px 14px;font-size:11px}
.avatar-upload .av-preview{width:56px;height:56px;font-size:20px}
.av-btn{font-size:9px;padding:7px 12px}
.av-help{font-size:10px}

/* Fix: My Pubs inline links — match text flow */
.pub-head .sm{font-size:13px;color:var(--t3);margin-top:6px;max-width:60ch;line-height:1.6}
.pub-head .sm .lnk{font-size:13px;letter-spacing:0;text-transform:none;color:var(--teal);display:inline}
.pub-head .sm .lnk::after{content:none}
.empty-state .sm .lnk{font-size:13px;letter-spacing:0;text-transform:none;color:var(--teal);display:inline}
.empty-state .sm .lnk::after{content:none}
.empty-state .lnk{font-size:13px;letter-spacing:0;text-transform:none;color:var(--teal);display:inline}
.empty-state .lnk::after{content:none}

/* ===== Directory Cards (new style) ===== */
.dir-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,1.8vw,24px)}
@media(max-width:1000px){.dir-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){.dir-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.dir-grid{grid-template-columns:1fr}}

.dir-card{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;text-decoration:none;color:inherit;transition:box-shadow .3s,transform .3s var(--ease);display:flex;flex-direction:column}
.dir-card:hover{box-shadow:0 4px 20px rgba(16,23,41,.1);transform:translateY(-3px)}
.dir-top-bar{height:4px;background:var(--gold)}
.dir-photo{width:clamp(72px,8vw,96px);height:clamp(72px,8vw,96px);border-radius:50%;overflow:hidden;margin:clamp(20px,2vw,28px) auto 14px;background:var(--navy);display:flex;align-items:center;justify-content:center}
.dir-photo img{width:100%;height:100%;object-fit:cover}
.dir-initials{font-family:var(--disp);font-size:clamp(24px,2.6vw,32px);color:var(--gold);font-weight:500}
.dir-name{font-family:var(--edit);font-size:clamp(18px,1.8vw,24px);color:var(--navy);text-align:center;padding:0 14px;font-weight:400;line-height:1.2}
.dir-tier{font-family:var(--disp);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);text-align:center;margin-top:8px;padding:0 14px}
.dir-tier.founding{color:var(--gold-deep)}
.dir-tier.role-concierge{color:#fff;background:var(--navy);padding:4px 10px;display:inline-block;margin-top:8px}
.dir-tier.role-guru{color:var(--navy);background:var(--gold);padding:4px 10px;display:inline-block;margin-top:8px}
.dir-tier.role-founder{color:#fff;background:var(--gold-deep);padding:4px 10px;display:inline-block;margin-top:8px}
.dir-loc{font-size:13px;color:var(--t3);text-align:center;margin-top:4px;padding:0 14px}
.dir-contact{display:flex;justify-content:center;gap:14px;padding:14px 0 20px;margin-top:auto}
.dir-ic{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--t3);text-decoration:none;transition:border-color .3s,color .3s}
.dir-ic:hover{border-color:var(--gold);color:var(--gold)}

/* ===== Member Profile Page ===== */
.mp-card{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.mp-top-bar{height:4px;background:var(--gold)}
.mp-body{display:flex;align-items:center;gap:24px;padding:clamp(24px,2.6vw,36px)}
@media(max-width:500px){.mp-body{flex-direction:column;text-align:center}}
.mp-photo{width:clamp(80px,9vw,110px);height:clamp(80px,9vw,110px);border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--navy);display:flex;align-items:center;justify-content:center}
.mp-photo img{width:100%;height:100%;object-fit:cover}
.mp-initials{font-family:var(--disp);font-size:clamp(28px,3vw,38px);color:var(--gold);font-weight:500}
.mp-name{font-family:var(--edit);font-size:clamp(26px,2.6vw,36px);color:var(--navy);font-weight:400;margin:0;line-height:1.1}
.mp-tier{font-family:var(--disp);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-top:8px}
.mp-tier.founding{color:var(--gold-deep)}
.mp-loc{font-size:14px;color:var(--t3);margin-top:4px}

.mp-contact{padding:clamp(20px,2.2vw,28px);border-top:1px solid var(--line)}
.mp-contact h3{font-family:var(--disp);font-size:13px;font-weight:500;color:var(--navy);margin:0 0 14px;text-transform:uppercase;letter-spacing:.1em}
.mp-row{display:flex;align-items:center;gap:12px;padding:6px 0}
.mp-label{font-family:var(--disp);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--t3);width:60px;flex-shrink:0}
.mp-value{font-size:14px;color:var(--teal);text-decoration:none}
.mp-value:hover{text-decoration:underline}

.mp-trips{display:flex;flex-direction:column;gap:12px}
.mp-trip{display:flex;gap:14px;align-items:center;text-decoration:none;color:inherit;padding:8px 0;border-bottom:1px solid var(--line)}
.mp-trip:last-child{border-bottom:0}
.mp-trip img{width:60px;height:60px;object-fit:cover;border-radius:4px;flex-shrink:0}
.mp-trip-title{font-family:var(--disp);font-size:14px;font-weight:500;color:var(--navy)}
.mp-trip-loc{font-size:12px;color:var(--t3);margin-top:2px}
.mp-trip-date{font-size:12px;color:var(--teal);margin-top:1px}

.mp-social{display:flex;gap:16px;flex-wrap:wrap}
.mp-social a{font-size:13px;color:var(--teal);text-decoration:none}
.mp-social a:hover{text-decoration:underline}

/* Member profile — trip sub-labels */
.mp-sub-label{font-family:var(--disp);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--t3);margin:0 0 10px}

/* Directory — since year on its own line */
.dir-since{font-size:11px;color:var(--t3);text-align:center;padding:0 14px}

/* Fix: Account settings — full size (override earlier tiny rules) */
.settings-content{max-width:none}
.settings-card{max-width:none;padding:clamp(22px,2.4vw,32px)}
.settings-card h3{font-size:clamp(18px,1.6vw,22px);margin-bottom:6px}
.settings-card .desc{font-size:14px;margin-bottom:18px}
.field-row{gap:16px;margin-bottom:14px}
.field input,.field select,.field textarea{font-size:14px;padding:11px 14px;border-radius:0;height:auto;line-height:1.5}
.field label{font-size:10px;margin-bottom:6px}
.save-bar{margin-top:20px}
.save-bar .btn{font-size:11px;padding:13px 24px}
.toggle-row{padding:14px 0}
.toggle-row .tlabel{font-size:14px}
.toggle-row .tdesc{font-size:12px}
.toggle-check{width:20px;height:20px}
.settings-saved{padding:10px 16px;font-size:13px}
.settings-error{padding:10px 16px;font-size:13px}
.avatar-upload .av-preview{width:72px;height:72px;font-size:22px}
.av-btn{font-size:11px;padding:10px 16px}
.av-help{font-size:12px}

/* Fix: Header — user link instead of email */
.portal-user{display:flex;align-items:center;gap:12px}
.user-link{display:flex;align-items:center;gap:8px;text-decoration:none;color:#fff}
.user-link:hover .uname{color:var(--gold)}
.user-link .avatar{width:28px;height:28px;border-radius:50%;background:var(--navy-600);border:1px solid var(--line-d);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:10px;font-weight:500;color:var(--gold);flex-shrink:0}
.user-link .uname{font-family:var(--disp);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7);transition:color .3s;white-space:nowrap}

/* Fix: Select dropdowns — left aligned */
.field select{text-align:left;text-align-last:left;-webkit-text-align:left}
.field select option{text-align:left}

/* Fix: Wishlist link removed — section deprecated */

/* Member profile — since year */
.mp-since{font-size:12px;color:var(--t3);margin-top:2px}

/* Fix: Remove white gap between header and hero */
.portal-body{margin:0}
.portal-body .bnr{margin-top:0;padding-top:72px;min-height:clamp(380px,50vh,500px)}
.portal-body .trip-hero{padding-top:72px}
.portal-body .dash-hero{padding-top:clamp(96px,10vh,120px)}

/* ============ Publisher Grid (My Pubs) ============ */
.publisher-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: clamp(16px, 1.8vw, 24px);
    margin-top: 28px;
}
.publisher-card {
    display: flex;
    flex-direction: column;
    padding: clamp(24px, 2.5vw, 36px);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 4px;
    text-decoration: none;
    color: var(--navy);
    transition: border-color .2s, box-shadow .2s, transform .15s;
    position: relative;
}
.publisher-card:hover {
    border-color: var(--teal);
    box-shadow: 0 4px 20px rgba(16,23,41,.08);
    transform: translateY(-2px);
}
.publisher-card.has-active {
    border-color: var(--gold);
}
.publisher-card-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}
.publisher-count {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--t3);
}
.publisher-badge {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #fff;
    background: var(--gold);
    padding: 3px 10px;
    border-radius: 100px;
}
.publisher-name {
    font-family: var(--disp);
    font-size: clamp(18px, 1.4vw, 22px);
    font-weight: 600;
    color: var(--navy);
    margin: 0 0 4px;
}
.publisher-editors {
    font-size: 12px;
    font-weight: 500;
    color: var(--teal);
    margin: 0 0 14px;
}
.publisher-synopsis {
    font-size: 13px;
    line-height: 1.6;
    color: var(--t2);
    margin: 0 0 20px;
    flex: 1;
}
.publisher-link {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--teal);
    margin-top: auto;
}
.pub-arrow {
    transition: transform .2s;
}
.publisher-card:hover .pub-arrow {
    transform: translateX(4px);
}

/* ============ Publisher Detail Page ============ */
.publisher-detail-hero {
    margin-bottom: 40px;
    padding-bottom: 32px;
    border-bottom: 1px solid var(--line);
}
.publisher-detail-synopsis {
    font-size: clamp(15px, 1.2vw, 17px);
    line-height: 1.7;
    color: var(--t1);
    font-family: var(--body);
    font-weight: 400;
    max-width: 70ch;
    margin: 0 0 20px;
}
.publisher-detail-meta {
    display: flex;
    gap: 32px;
    flex-wrap: wrap;
}
.publisher-detail-meta .meta-item {
    font-size: 13px;
    color: var(--t3);
}
.publisher-detail-meta .meta-item strong {
    color: var(--navy);
    font-weight: 600;
}

.pub-detail-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.pub-detail-card {
    display: flex;
    gap: 20px;
    padding: clamp(20px, 2vw, 28px);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 4px;
    transition: border-color .2s;
}
.pub-detail-card:hover {
    border-color: var(--teal);
}
.pub-detail-card.active-comp {
    border-left: 3px solid var(--gold);
}
.pub-detail-card.active-disc {
    border-left: 3px solid var(--teal);
}
.pub-detail-code {
    font-family: var(--body);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    color: var(--gold-deep);
    background: rgba(216,168,60,.08);
    padding: 6px 12px;
    border-radius: 3px;
    height: fit-content;
    white-space: nowrap;
    flex-shrink: 0;
}
.pub-detail-content {
    flex: 1;
}
.pub-detail-header {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}
.pub-detail-name {
    font-family: var(--disp);
    font-size: clamp(16px, 1.2vw, 19px);
    font-weight: 600;
    color: var(--navy);
    margin: 0;
}
.pub-status {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 100px;
}
.pub-status-comp {
    color: #fff;
    background: var(--gold);
}
.pub-status-disc {
    color: #fff;
    background: var(--teal);
}
.pub-detail-editor {
    font-size: 12px;
    font-weight: 500;
    color: var(--t3);
    margin: 0 0 8px;
}
.pub-detail-desc {
    font-size: 13px;
    line-height: 1.6;
    color: var(--t2);
    margin: 0 0 12px;
}
.pub-detail-link {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--teal);
    text-decoration: none;
}
.pub-detail-link:hover {
    text-decoration: underline;
}
.pub-detail-contact {
    font-size: 11px;
    color: var(--t3);
    margin: 0;
}

@media (max-width: 640px) {
    .publisher-grid {
        grid-template-columns: 1fr;
    }
    .pub-detail-card {
        flex-direction: column;
        gap: 12px;
    }
    .pub-detail-code {
        display: inline-block;
        width: fit-content;
    }
}

/* ============ v23 Fixes ============ */

/* Remove underline on all links/buttons when clicked or focused */
.portal-body a:active,
.portal-body a:focus,
.portal-body a:hover,
.portal-body button:active,
.portal-body button:focus,
.portal-body .btn:active,
.portal-body .btn:focus,
.portal-body .card:active,
.portal-body .card:focus,
.portal-body .trip-item:active,
.portal-body .trip-item:focus,
.portal-body .booking:active,
.portal-body .booking:focus,
.portal-body .member-card:active,
.portal-body .member-card:focus,
.portal-body .cat-item:active,
.portal-body .cat-item:focus {
    text-decoration: none !important;
}
.portal-body a:focus-visible,
.portal-body button:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 2px;
    text-decoration: none !important;
}

/* Account settings field sizing — scoped & properly sized */
.portal-body .settings-card .field input,
.portal-body .settings-card .field select {
    height: auto !important;
    min-height: 44px !important;
    padding: 11px 14px !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    box-sizing: border-box !important;
}
.portal-body .settings-card .field textarea {
    min-height: 80px !important;
    padding: 11px 14px !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    box-sizing: border-box !important;
}
.portal-body .settings-card {
    max-width: none;
}
.portal-body .settings-card .field-row {
    gap: 16px;
    margin-bottom: 14px;
}
.portal-body .settings-card .field label {
    font-size: 10px !important;
    margin-bottom: 6px !important;
}

/* Publisher detail synopsis — match site section style */
.publisher-detail-hero {
    margin-bottom: 36px;
    padding: clamp(24px,2.5vw,32px);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 4px;
}
.publisher-detail-synopsis {
    font-size: 14px;
    line-height: 1.7;
    color: var(--t2);
    font-family: var(--body);
    font-weight: 400;
    max-width: 68ch;
    margin: 0 0 16px;
}

/* Dashboard coming soon + pub list styles */
.dash-pub-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
.dash-pub-chip {
    display: inline-block;
    font-size: 11px;
    font-weight: 500;
    padding: 5px 12px;
    border-radius: 3px;
    background: rgba(216,168,60,.1);
    color: var(--gold-deep);
    border: 1px solid rgba(216,168,60,.25);
    text-decoration: none;
}
.dash-pub-chip.disc {
    background: rgba(60,120,132,.1);
    color: var(--teal-deep);
    border-color: rgba(60,120,132,.25);
}
.dash-coming-soon {
    margin-top: clamp(24px,2.6vw,40px);
}
.cs-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 4px;
    margin-bottom: 10px;
    text-decoration: none;
    color: inherit;
    transition: border-color .2s;
}
.cs-item:hover {
    border-color: var(--gold);
}
.cs-badge {
    flex-shrink: 0;
    font-family: var(--disp);
    font-size: 8.5px;
    letter-spacing: .16em;
    text-transform: uppercase;
    padding: 5px 10px;
    background: var(--gold);
    color: var(--navy);
    border-radius: 2px;
    white-space: nowrap;
}
.cs-info h4 {
    margin: 0 0 2px;
    font-size: 14px;
    color: var(--navy);
}
.cs-info .cs-date {
    font-size: 11px;
    color: var(--gold-deep);
    font-weight: 600;
}

/* ═══ Membership Renewal ═══ */
.dash-card.renewal-active { border-left: 3px solid var(--leaf); }
.dash-card.renewal-expiring { border-left: 3px solid var(--gold); }
.dash-card.renewal-expired { border-left: 3px solid #d94f4f; }

/* Compact renewal card when inside mini-row */
.dash-mini-row .dash-card { padding: clamp(18px,2vw,26px) !important; }
.dash-mini-row .dash-card h3 { font-size: clamp(15px,1.3vw,18px); margin-bottom: 10px; }
.dash-mini-row .dash-card .eyebrow { margin-bottom: 6px; }
.dash-mini-row .profile-row { padding: 8px 0; }
.dash-mini-row .profile-row .pk { font-size: 9px; }
.dash-mini-row .profile-row .pv { font-size: 12px; }
.dash-mini-row .btn { font-size: 9px !important; padding: 7px 12px !important; }

.tl-renewal::before { background: var(--gold) !important; }
.tl-renewal h4 { color: var(--navy); font-family: var(--disp); font-size: 16px; font-weight: 400; margin: 2px 0 0; }
.dk .tl-renewal h4 { color: #fff; }

/* ═══ Subscribe to Calendar Card ═══ */
.cal-subscribe-card {
    background: #fff;
    border: 1px solid var(--line);
    padding: clamp(22px, 2.4vw, 32px);
}
.cal-subscribe-card h3 {
    font-family: var(--disp);
    font-size: clamp(20px, 1.8vw, 26px);
    color: var(--navy);
    margin: 6px 0 12px;
    font-weight: 500;
}
.cal-subscribe-card .eyebrow { margin-bottom: 0; }
.cal-subscribe-card details summary { list-style: none; }
.cal-subscribe-card details summary::-webkit-details-marker { display: none; }
.cal-subscribe-card details summary::after { content: ' \2193'; font-size: 9px; }
.cal-subscribe-card details[open] summary::after { content: ' \2191'; }

/* ═══ Dashboard Mini Row (side-by-side compact cards) ═══ */
.dash-mini-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,1.8vw,24px);margin-bottom:clamp(24px,2.6vw,40px);align-items:stretch}
.dash-mini-left{display:flex;flex-direction:column;gap:clamp(16px,1.8vw,24px)}
.dash-mini-left .dash-card{flex:1}
.dash-mini{padding:clamp(18px,2vw,26px) !important}
.dash-mini h3{font-size:clamp(15px,1.3vw,18px);margin-bottom:10px}
.dash-mini .eyebrow{margin-bottom:6px}
@media(max-width:700px){.dash-mini-row{grid-template-columns:1fr}}

/* ═══ Calendar Buttons (self-contained, no .btn conflicts) ═══ */
.cal-btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:12px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;padding:12px 24px;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.cal-btn-sm{font-size:10px;padding:8px 14px;letter-spacing:.12em}
.cal-btn-gold{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.cal-btn-gold:hover{background:var(--gold-deep);border-color:var(--gold-deep);color:#fff}
.cal-btn-navy{background:transparent;border-color:var(--navy);color:var(--navy)}
.cal-btn-navy:hover{background:var(--navy);color:#fff}
.cal-btn-outline{background:transparent;border-color:rgba(255,255,255,.5);color:#fff}
.cal-btn-outline:hover{background:#fff;color:var(--navy);border-color:#fff}

/* ═══ Timeline Event Type Badges ═══ */
.tl-item.tl-type-deadline::before,.tl-item.tl-type-opens::before,.tl-item.tl-type-renewal::before{width:9px;height:9px;top:8px}
.tl-item.tl-type-deadline::before{background:var(--gold)}
.tl-item.tl-type-opens::before{background:var(--teal-deep)}
.tl-item.tl-type-renewal::before{background:var(--leaf)}
.tl-type-badge{display:inline-block;font-family:var(--disp);font-size:8px;letter-spacing:.14em;text-transform:uppercase;padding:2px 7px;border-radius:2px;margin-bottom:4px;font-weight:500}
.tl-badge-deadline{background:rgba(216,168,60,.15);color:var(--gold-deep)}
.tl-badge-opens{background:rgba(60,120,132,.15);color:var(--teal-deep)}
.tl-badge-renewal{background:rgba(136,184,80,.15);color:var(--leaf)}
.dk .tl-badge-deadline{background:rgba(216,168,60,.2);color:var(--gold)}
.dk .tl-badge-opens{background:rgba(60,120,132,.25);color:var(--teal)}
.dk .tl-badge-renewal{background:rgba(136,184,80,.2);color:var(--leaf)}
.tl-item.tl-type-deadline .tl-body .cp h3,.tl-item.tl-type-opens .tl-body .cp h3{font-size:clamp(17px,1.5vw,20px)}
.tl-item.tl-type-renewal .tl-body .cp h3{font-size:clamp(17px,1.5vw,20px)}

/* ═══ Calendar Month Grid ═══ */
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.cal-nav-btn{font-family:var(--disp);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);text-decoration:none;transition:color .3s}
.cal-nav-btn:hover{color:var(--navy)}
.dk .cal-nav-btn{color:var(--gold)}
.dk .cal-nav-btn:hover{color:#fff}
.cal-month-title{font-family:var(--disp);font-size:clamp(22px,2.4vw,32px);font-weight:500;color:var(--navy)}
.dk .cal-month-title{color:#fff}

.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.cal-dow{background:var(--navy);color:#fff;font-family:var(--disp);font-size:10px;letter-spacing:.12em;text-transform:uppercase;text-align:center;padding:10px 4px;font-weight:500}
.cal-cell{background:#fff;min-height:90px;padding:6px 8px;display:flex;flex-direction:column;gap:3px;position:relative}
.cal-cell.cal-empty{background:rgba(16,23,41,.03)}
.cal-cell.cal-today{box-shadow:inset 0 0 0 2px var(--gold)}
.cal-day-num{font-family:var(--disp);font-size:11px;font-weight:500;color:var(--t3)}
.cal-today .cal-day-num{color:var(--navy);font-weight:600}
.cal-event{font-size:9px;line-height:1.3;text-decoration:none;display:block;padding:3px 5px;border-radius:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:opacity .2s}
.cal-event:hover{opacity:.85}
.cal-ev-trip{background:var(--teal);color:#fff}
.cal-ev-deadline{background:var(--gold);color:var(--navy)}
.cal-ev-opens{background:var(--teal-deep);color:#fff}
.cal-ev-renewal{background:var(--leaf);color:#fff}

.cal-legend{display:flex;gap:24px;margin-top:16px;flex-wrap:wrap}
.cal-leg-item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t2);font-family:var(--disp)}
.cal-dot{width:10px;height:10px;border-radius:50%}
.cal-dot-trip{background:var(--teal)}
.cal-dot-deadline{background:var(--gold)}
.cal-dot-opens{background:var(--teal-deep)}
.cal-dot-renewal{background:var(--leaf)}

@media(max-width:640px){
  .cal-cell{min-height:60px;padding:4px 5px}
  .cal-dow{font-size:8px;padding:8px 2px}
  .cal-event{font-size:8px;padding:2px 3px}
  .cal-day-num{font-size:10px}
}


/* Timeline short description */
.tl-desc{font-size:12px;color:var(--t3);line-height:1.5;margin-top:4px}

/* Google Calendar help dropdown */
.cal-help-dropdown{font-size:12px}
.cal-help-dropdown summary{cursor:pointer;color:var(--t3);font-size:12px;list-style:none;padding:4px 0}
.cal-help-dropdown summary::before{content:"▸ ";font-size:10px}
.cal-help-dropdown[open] summary::before{content:"▾ "}
.cal-help-dropdown summary::-webkit-details-marker{display:none}
.cal-help-body{padding:8px 0 4px 16px;font-size:12px;color:var(--t2)}
.cal-help-body p{margin:4px 0;line-height:1.5}
.cal-help-url{display:inline-block;padding:4px 8px;border-radius:4px;font-size:11px;word-break:break-all;background:rgba(16,23,41,.05);margin-top:4px}
