/* Guest account layout. Kept separate so a new URL bypasses the host's week-long CSS cache. */
.auth-tabs { grid-template-columns: repeat(2,minmax(0,1fr)); }
.partner-entry { margin-top:32px; padding:19px 0 0; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:16px; }
.partner-entry > div { min-width:0; display:grid; gap:4px; }
.partner-entry strong { font-size:13px; }
.partner-entry span { color:var(--muted); font-size:11px; line-height:1.4; }
.partner-entry > a { flex:none; padding:10px 12px; border:1px solid var(--line); border-radius:7px; color:var(--ink); font-size:12px; font-weight:700; white-space:nowrap; }
.partner-entry > a:hover { border-color:var(--accent); color:var(--accent); }

.dashboard { padding-bottom:70px; background:#f7f6f2; }
.dashboard-hero { width:min(1180px,calc(100% - 48px)); margin:auto; padding:42px 0 0; display:flex; align-items:end; justify-content:space-between; gap:24px; color:var(--ink); background:none; }
.dashboard-hero .account-eyebrow { margin:0 0 9px; }
.dashboard-hero h1 { margin:0; font:400 clamp(31px,3vw,43px)/1.12 var(--serif); letter-spacing:-.02em; }
.dashboard-hero > div:first-child > p:last-child { margin:9px 0 0; color:var(--muted); font-size:13px; }
.dashboard-hero__browse { flex:none; min-height:40px; padding:11px 16px; border:1px solid var(--ink); border-radius:6px; font-size:12px; font-weight:700; }
.dashboard-hero__browse:hover { color:#fff; background:var(--ink); }
.dashboard-home { width:min(1180px,calc(100% - 48px)); margin:24px auto 0; display:grid; gap:30px; }
.dashboard-overview { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(260px,.65fr); gap:14px; }
.home-trip,.loyalty-card { min-width:0; min-height:142px; padding:23px 26px; border:1px solid #e4e0d7; border-radius:10px; background:#fff; box-shadow:none; }
.home-trip { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.home-trip .account-eyebrow { margin:0 0 6px; }
.home-trip h2 { margin:0; font:400 25px/1.15 var(--serif); }
.home-trip p:not(.account-eyebrow) { margin:8px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.home-trip > a { flex:none; padding:11px 14px; border:1px solid var(--line); border-radius:6px; font-size:12px; font-weight:700; }
.home-trip > a:hover { border-color:var(--accent); color:var(--accent); }
.loyalty-card { display:flex; flex-direction:column; align-items:start; justify-content:center; color:var(--ink); background:#f3ebe1; }
.loyalty-card > span { color:#986443; font-size:10px; }
.loyalty-card strong { margin:7px 0 0; font:400 34px/1 var(--serif); }
.loyalty-card strong small { font:500 12px var(--sans); }
.loyalty-card button { margin:10px 0 0; padding:0; border:0; background:none; color:var(--accent); font-size:11px; font-weight:700; cursor:pointer; }
.home-section { min-width:0; }
.home-section__heading { margin:0 0 14px; display:flex; align-items:end; justify-content:space-between; gap:14px; }
.home-section__heading .account-eyebrow { margin:0 0 5px; }
.home-section__heading h2 { margin:0; font:400 clamp(26px,2.6vw,33px)/1.12 var(--serif); }
.home-section__heading a { flex:none; padding-bottom:2px; border-bottom:1px solid currentColor; color:var(--accent); font-size:12px; font-weight:700; }
.home-offers { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.home-offer { min-width:0; min-height:146px; border:1px solid #ead8c1; border-radius:9px; display:grid; grid-template-columns:32% minmax(0,1fr); overflow:hidden; background:#fff8ef; }
.home-offer:only-child { grid-column:1/-1; }
.home-offer--text-only { min-height:124px; grid-template-columns:1fr; background:linear-gradient(110deg,#f6e8d8,#fff8ef); }
.home-offer img { width:100%; height:100%; object-fit:cover; }
.home-offer div { min-width:0; padding:18px 22px; display:grid; align-content:center; gap:6px; }
.home-offer span { color:var(--accent); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.home-offer strong { font:400 24px/1.12 var(--serif); }
.home-offer p { max-width:670px; margin:0; color:#625d54; font-size:12px; line-height:1.5; }
.recommended-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.recommendation-card { min-width:0; border:1px solid #e4e0d7; border-radius:9px; display:block; overflow:hidden; background:#fff; }
.recommendation-card:hover { border-color:#c68c6d; box-shadow:0 8px 18px rgba(21,40,61,.08); }
.recommendation-card img { width:100%; height:164px; display:block; object-fit:cover; }
.recommendation-card div { min-height:107px; padding:12px 13px 14px; display:grid; align-content:start; gap:4px; }
.recommendation-card span { color:var(--accent); font-size:10px; font-weight:700; }
.recommendation-card strong { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; font:400 19px/1.18 var(--serif); }
.recommendation-card small { overflow:hidden; color:var(--muted); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.recommendation-card__facts { margin-top:3px; color:var(--ink)!important; font-weight:700; }
.dashboard-grid { margin-top:34px; }
.voucher-eligibility:empty { display:none; }
.voucher-eligibility:focus { outline:2px solid var(--accent); outline-offset:5px; }

@media(max-width:900px) {
  .dashboard-hero { padding-top:30px; }
  .dashboard-overview { grid-template-columns:minmax(0,1fr) minmax(220px,.55fr); }
  .recommended-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-offers { grid-template-columns:1fr; }
}
@media(max-width:620px) {
  .partner-entry { align-items:stretch; flex-direction:column; }
  .partner-entry > a { width:fit-content; }
  .dashboard-hero { width:calc(100% - 28px); padding:27px 0 0; align-items:start; flex-direction:column; gap:13px; }
  .dashboard-hero h1 { font-size:34px; }
  .dashboard-hero > div:first-child > p:last-child { font-size:12px; }
  .dashboard-hero__browse { display:none; }
  .dashboard-home { width:calc(100% - 28px); margin-top:18px; gap:24px; }
  .dashboard-overview { grid-template-columns:1fr; gap:9px; }
  .home-trip { min-height:0; padding:18px; align-items:start; flex-direction:column; gap:14px; }
  .home-trip h2 { font-size:22px; }
  .home-trip > a { padding:9px 12px; }
  .loyalty-card { min-height:0; padding:17px 18px; }
  .loyalty-card strong { font-size:27px; }
  .home-section__heading { align-items:start; }
  .home-section__heading h2 { font-size:25px; }
  .home-section__heading a { font-size:10px; }
  .home-offer { min-height:0; grid-template-columns:35% minmax(0,1fr); }
  .home-offer--text-only { grid-template-columns:1fr; }
  .home-offer div { padding:16px; }
  .home-offer strong { font-size:20px; }
  .home-offer p { font-size:11px; }
  .recommended-grid { gap:9px; }
  .recommendation-card img { height:114px; }
  .recommendation-card div { min-height:90px; padding:10px; }
  .recommendation-card strong { font-size:16px; }
  .recommendation-card small { font-size:10px; }
  .dashboard-grid { margin-top:25px; }
}
