/* Rollar Wolf Photography - private Immich client portal v2 */
.rwp-portal { --rw-base:#10162b; --rw-card:#1a2542; --rw-cyan:#16d8ee; --rw-pink:#ff539e; --rw-lilac:#ab71f0; --rw-text:#f6f8ff; --rw-muted:#b4c4dd; background:linear-gradient(145deg,#12182d 0%,#0b1425 70%); color:var(--rw-text); border:1px solid #2b3556; border-radius:22px; max-width:1170px; margin:36px auto 60px; padding:clamp(20px,4vw,55px); box-shadow:0 12px 44px rgba(0,0,0,.22); font-family:inherit; }
.rwp-portal *{box-sizing:border-box}
.rwp-portal .rwp-eyebrow {color:var(--rw-cyan);font-size:12px;font-weight:800;letter-spacing:.16em}
.rwp-portal .rwp-portal-head{margin:0 0 28px}
.rwp-portal .rwp-portal-head h1{color:var(--rw-text);font-size:clamp(30px,5vw,56px);line-height:1.14;margin:8px 0 10px;font-weight:800;letter-spacing:-.035em}
.rwp-portal .rwp-portal-head h1 span{color:var(--rw-pink)}
.rwp-portal .rwp-portal-head p{color:var(--rw-muted);font-size:16px;max-width:670px;margin:0}
.rwp-portal .rwp-login {max-width:450px;margin:28px auto;background:var(--rw-card);padding:clamp(20px,4vw,35px);border-radius:18px;border:1px solid #3c436a;display:flex;flex-direction:column;gap:17px;box-shadow:0 20px 50px rgba(0,0,0,.2)}
.rwp-portal .rwp-login label{display:flex;flex-direction:column;gap:7px;color:#f5f7ff;font-weight:600;font-size:14px}
.rwp-portal .rwp-login input{background:#10172b;color:#fff;border:1px solid #4b597c;border-radius:10px;padding:12px 13px;min-height:48px;font:inherit;box-shadow:none;width:100%}
.rwp-portal .rwp-login input:focus-visible{outline:2px solid var(--rw-cyan);outline-offset:2px}
.rwp-portal .rwp-button{border:0;background:linear-gradient(100deg,var(--rw-cyan),#7d98f4);color:#06152a;border-radius:11px;padding:14px 18px;min-height:48px;font:inherit;font-size:15px;font-weight:800;cursor:pointer}
.rwp-portal .rwp-button:hover{filter:brightness(1.08)}
.rwp-portal .rwp-small{font-size:13px;color:var(--rw-muted);line-height:1.6;margin:0}
.rwp-portal .rwp-notice{padding:14px 17px;background:#38213a;color:#ffe6f2;border:1px solid #bc5d9b;border-radius:12px;font-weight:600}
.rwp-portal .rwp-empty{padding:24px;background:var(--rw-card);border-radius:14px;color:var(--rw-muted)}
.rwp-portal .rwp-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border:1px solid #37466d;background:rgba(36,49,80,.7);border-radius:13px;padding:12px 16px;margin-bottom:28px}
.rwp-portal .rwp-toolbar p{margin:0;color:var(--rw-text)}
.rwp-portal .rwp-toolbar p span{color:var(--rw-muted);font-size:13px;margin-left:8px}
.rwp-portal .rwp-toolbar form{margin:0}
.rwp-portal .rwp-signout{border:1px solid #7786a6;background:transparent;color:#fff;font:inherit;font-size:13px;border-radius:9px;padding:9px 13px;cursor:pointer}
.rwp-portal .rwp-signout:hover{background:#314262}
.rwp-portal h2{color:#fff;font-weight:800;margin:0 0 20px;line-height:1.2;font-size:clamp(25px,4vw,33px)}
.rwp-portal .rwp-album-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.rwp-portal .rwp-album-card{color:var(--rw-text);text-decoration:none;background:var(--rw-card);border:1px solid #394b72;overflow:hidden;border-radius:14px;transition:border-color .15s ease, transform .15s ease}
.rwp-portal .rwp-album-card:hover{transform:translateY(-3px);border-color:var(--rw-cyan);color:var(--rw-text)}
.rwp-portal .rwp-cover{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#17628d 0%,#523384 55%,#b2428c);overflow:hidden}
.rwp-portal .rwp-cover img{display:block;width:100%;height:100%;object-fit:cover}
.rwp-portal .rwp-empty-cover{color:#a8f9ff;font-size:52px}
.rwp-portal .rwp-card-text{display:flex;flex-direction:column;padding:15px;gap:5px}
.rwp-portal .rwp-card-text strong{color:#fff;font-size:17px;line-height:1.35}
.rwp-portal .rwp-card-text small{color:#afc6de;font-size:13px}
.rwp-portal .rwp-back{color:var(--rw-cyan);font-size:14px;font-weight:700;text-decoration:none}
.rwp-portal .rwp-back:hover{color:#fff}
.rwp-portal .rwp-album-view h2{margin:6px 0}
.rwp-portal .rwp-subtitle{color:var(--rw-muted);font-size:14px;margin:0 0 20px}
.rwp-portal .rwp-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.rwp-portal .rwp-photo{margin:0;border:1px solid #35486b;overflow:hidden;background:var(--rw-card);border-radius:12px}
.rwp-portal .rwp-photo>a{display:block;aspect-ratio:4/3;overflow:hidden;background:#121c2e}
.rwp-portal .rwp-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}
.rwp-portal .rwp-photo a:hover img{transform:scale(1.025)}
.rwp-portal .rwp-photo figcaption{padding:9px 12px;margin:0;text-align:center}
.rwp-portal .rwp-photo figcaption a{color:#9befff;text-decoration:none;font-size:12px;font-weight:700}
.rwp-portal .rwp-photo figcaption a:hover{text-decoration:underline}
.rwp-portal .rwp-pages{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:25px;color:var(--rw-muted);font-size:14px}
.rwp-portal .rwp-pages a{color:#4ceaff;text-decoration:none;font-weight:700}
@media(max-width:900px){.rwp-portal .rwp-album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rwp-portal .rwp-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.rwp-portal{border-radius:14px;margin:15px auto 40px;padding:18px}.rwp-portal .rwp-album-grid{grid-template-columns:1fr}.rwp-portal .rwp-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.rwp-portal .rwp-photo figcaption{padding:8px 3px}.rwp-portal .rwp-toolbar p span{display:block;margin:3px 0 0}.rwp-portal .rwp-pages{flex-wrap:wrap}}

/* v2.1: selectable gallery downloads and accessible fullscreen viewer */
.rwp-portal .rwp-crumbs{display:flex;align-items:center;gap:11px;flex-wrap:wrap;font-size:13px;color:var(--rw-muted);margin:2px 0 17px}
.rwp-portal .rwp-crumbs span:last-child{overflow-wrap:anywhere}
.rwp-portal .rwp-download-form{margin:0}
.rwp-portal .rwp-download-tools{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:#19243b;border:1px solid #3c4b6f;border-radius:13px;padding:12px;margin:12px 0 9px}
.rwp-portal .rwp-select-all{color:#eef7ff;font-weight:650;font-size:13px;display:flex;align-items:center;gap:7px;cursor:pointer}
.rwp-portal input[type=checkbox]{accent-color:#20d9ee;width:16px;height:16px;cursor:pointer}
.rwp-portal .rwp-selected-count{color:#b8cce4;font-size:12px;margin-right:auto;white-space:nowrap}
.rwp-portal .rwp-action{border:1px solid #697b9b;color:#fff;border-radius:9px;background:#283758;padding:10px 12px;font-size:12px;font-weight:750;cursor:pointer;line-height:1.4}
.rwp-portal .rwp-action-primary{background:linear-gradient(100deg,#16d8ee,#87b5f0);color:#09182b;border-color:transparent}
.rwp-portal .rwp-action:hover:not(:disabled){filter:brightness(1.18)}
.rwp-portal .rwp-action:disabled{opacity:.4;cursor:not-allowed}
.rwp-portal .rwp-download-hint{color:#b4c4dd;font-size:12px;line-height:1.5;margin:0 0 17px}
.rwp-portal .rwp-photo figcaption{display:flex;align-items:center;justify-content:space-between;gap:6px;text-align:left;padding:9px}
.rwp-portal .rwp-photo figcaption .rwp-select-photo{color:#ddebf6;font-size:12px;font-weight:650;display:flex;align-items:center;gap:5px;cursor:pointer;margin:0}
.rwp-portal .rwp-photo figcaption>a{font-size:12px;white-space:nowrap}
.rwp-portal .rwp-album-footer{margin:20px 0 0}
body.rwp-viewer-active{overflow:hidden}
.rwp-portal .rwp-viewer{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;padding:0;color:#fff;background:rgba(6,11,23,.98);overflow:hidden;box-sizing:border-box;z-index:2147483000}
.rwp-portal .rwp-viewer::backdrop{background:rgba(2,6,18,.95)}
.rwp-portal .rwp-viewer[open]{display:flex;flex-direction:column}
.rwp-portal .rwp-viewer-top{min-height:64px;background:#141d32;display:flex;align-items:center;gap:15px;padding:11px 20px;border-bottom:1px solid #33435f;flex:0 0 auto}
.rwp-portal .rwp-viewer-back{color:#9cf6ff!important;text-decoration:none;font-weight:750;font-size:14px;flex:1}
.rwp-portal .rwp-viewer-top span{font-size:12px;color:#c2d1e5}
.rwp-portal .rwp-viewer-close{border:1px solid #647b98;color:white;background:#263751;border-radius:10px;padding:8px 13px;cursor:pointer}
.rwp-portal .rwp-viewer-stage{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:0;flex:1;overflow:hidden;padding:10px}
.rwp-portal .rwp-viewer-stage img{width:auto;height:auto;max-width:calc(100vw - 160px);max-height:calc(100dvh - 178px);object-fit:contain;display:block;box-shadow:0 8px 40px rgba(0,0,0,.15);border-radius:3px;transition:transform .15s ease}
.rwp-portal .rwp-viewer.rwp-zoomed .rwp-viewer-stage{overflow:auto}
.rwp-portal .rwp-viewer.rwp-zoomed .rwp-viewer-stage img{transform:scale(1.5);transform-origin:center}
.rwp-portal .rwp-viewer-arrow{background:#263751;border:1px solid #64728f;border-radius:50%;width:43px;height:43px;min-width:43px;color:#fff;font-size:30px;line-height:1;cursor:pointer;z-index:2}
.rwp-portal .rwp-viewer-arrow:hover{background:#405679}
.rwp-portal .rwp-viewer-bottom{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:#141d32;border-top:1px solid #33435f;padding:10px 20px;flex:0 0 auto}
.rwp-portal .rwp-viewer-bottom>span{color:#c5d4ea;font-size:13px;overflow-wrap:anywhere;flex:1;min-width:90px}
.rwp-portal .rwp-viewer-bottom button,.rwp-portal .rwp-viewer-bottom a{background:#273a59;color:#fff;border:1px solid #607b98;border-radius:8px;padding:9px 14px;text-decoration:none;font-weight:750;font-size:12px;cursor:pointer}
.rwp-portal .rwp-viewer-bottom a{background:#20d9ee;color:#091529;border-color:transparent}
.rwp-portal .rwp-viewer button:focus-visible,.rwp-portal .rwp-viewer a:focus-visible,.rwp-portal .rwp-download-tools button:focus-visible{outline:3px solid #f8b547;outline-offset:3px}
@media(max-width:700px){
 .rwp-portal .rwp-download-tools{align-items:stretch}
 .rwp-portal .rwp-selected-count{min-width:40%}
 .rwp-portal .rwp-action{flex:1 1 45%}
 .rwp-portal .rwp-photo figcaption{flex-wrap:wrap;justify-content:center}
 .rwp-portal .rwp-viewer-top{padding:8px 12px;min-height:55px}
 .rwp-portal .rwp-viewer-stage{gap:3px;padding:4px}
 .rwp-portal .rwp-viewer-stage img{max-width:calc(100vw - 89px);max-height:calc(100dvh - 180px)}
 .rwp-portal .rwp-viewer-arrow{width:32px;height:39px;min-width:32px;border-radius:8px;font-size:23px}
 .rwp-portal .rwp-viewer-bottom{padding:9px 12px}
}


/* v2.2: public event galleries beneath private client sign-in/dashboard */
.rwp-portal .rwp-public-events{margin-top:clamp(30px,5vw,62px);padding-top:clamp(26px,4vw,43px);border-top:1px solid #3a4566}
.rwp-portal .rwp-public-events-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:23px}
.rwp-portal .rwp-public-events-head h2{margin:7px 0 7px}
.rwp-portal .rwp-public-events-head p{margin:0;color:var(--rw-muted);font-size:14px}
.rwp-portal .rwp-public-pill{color:#9bedf4;background:#17364c;border:1px solid #3c8ca2;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:700;white-space:nowrap}
.rwp-portal .rwp-public-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}
.rwp-portal .rwp-public-card{background:#1a2542;border:1px solid #3a4b72;border-radius:15px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .18s ease,transform .18s ease}
.rwp-portal .rwp-public-card:hover{transform:translateY(-3px);border-color:var(--rw-cyan)}
.rwp-portal .rwp-public-cover{display:block;aspect-ratio:16/10;background:linear-gradient(130deg,#0d798f,#6a3f98 55%,#cc478a);overflow:hidden;text-decoration:none;flex:0 0 auto}
.rwp-portal .rwp-public-cover img{display:block;height:100%;width:100%;object-fit:cover;transition:transform .2s ease}
.rwp-portal .rwp-public-cover:hover img{transform:scale(1.035)}
.rwp-portal .rwp-public-fallback{height:100%;display:flex;justify-content:center;align-items:center;font-size:56px;color:#d7ffff}
.rwp-portal .rwp-public-card-body{padding:17px;display:flex;flex-direction:column;flex:1;gap:8px}
.rwp-portal .rwp-public-date{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:800;color:#7aebf4}
.rwp-portal .rwp-public-card h3{font-size:18px;line-height:1.3;color:#fff;margin:0;font-weight:800}
.rwp-portal .rwp-public-card p{margin:0;color:#b8c8df;font-size:13px;line-height:1.55;flex:1}
.rwp-portal .rwp-public-view{display:inline-flex;align-items:center;gap:6px;font-weight:750;color:#63e6f4;text-decoration:none;font-size:13px;margin-top:6px}
.rwp-portal .rwp-public-view:hover{color:#fff}
.rwp-portal .rwp-public-view:focus-visible,.rwp-portal .rwp-public-cover:focus-visible{outline:3px solid #ffca58;outline-offset:3px}
.rwp-portal .rwp-events-more{text-align:center;margin:22px 0 0}
.rwp-portal .rwp-events-more a,.rwp-portal .rwp-events-empty a{font-weight:750;color:#79e7f3;text-decoration:none}
.rwp-portal .rwp-events-empty{color:#b9cade}
@media(max-width:850px){.rwp-portal .rwp-public-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:590px){.rwp-portal .rwp-public-grid{grid-template-columns:1fr}.rwp-portal .rwp-public-events-head{gap:8px}.rwp-portal .rwp-public-card h3{font-size:17px}}

/* v2.3 public in-site event viewer */
.rwp-portal .rwp-events-link{margin:14px 0;color:#a9e9ff;font-weight:750;font-size:14px}
.rwp-portal .rwp-events-link a{color:#70e5f2;text-decoration:none;border:1px solid #375b7d;background:#182a45;border-radius:999px;display:inline-flex;padding:10px 17px}
.rwp-portal .rwp-events-link a:hover{background:#214462;color:#fff}
.rwp-portal .rwp-public-album-view{max-width:1280px;margin:0 auto}
.rwp-portal .rwp-public-album-view h2{font-size:clamp(28px,4vw,46px);line-height:1.15}
.rwp-portal .rwp-public-cover,.rwp-portal .rwp-public-view{cursor:pointer}

/* v2.4: full-width Rollar Wolf photography design system, shared with About. */
body.rwp-portal-page-active #main,
body.rwp-portal-page-active main#main {margin-top:0!important;padding-top:0!important}
body.rwp-portal-page-active .rwp-portal-full-article,
body.rwp-portal-page-active .rwp-portal-page-content,
body.rwp-portal-page-active .rwp-portal-page-content > p,
body.rwp-portal-page-active .rwp-portal-page-content > div {
  margin:0!important;padding:0!important;width:100%;max-width:none;
}
.rwp-portal.rwp-themed {
  --rw-base:#0b1224;--rw-card:#151f38;--rw-cyan:#00d9f5;--rw-pink:#ff4da8;
  --rw-lilac:#a855f7;--rw-text:#fff;--rw-muted:#c5d2e5;
  background:var(--rw-base);width:100%;max-width:none;margin:0;padding:0;
  border:0;border-radius:0;box-shadow:none;overflow:hidden;font-family:inherit;line-height:1.55;
}
.rwp-portal.rwp-themed .rwp-portal-head {
  position:relative;isolation:isolate;overflow:hidden;
  margin:0!important;padding:clamp(42px,4.8vw,67px) clamp(20px,5vw,80px) clamp(44px,4.4vw,62px);
  background:radial-gradient(ellipse at 77% 22%,rgba(137,43,166,.43),transparent 48%),
    radial-gradient(ellipse at 91% 96%,rgba(0,202,232,.24),transparent 47%),
    linear-gradient(112deg,#111d3a,#10182f 55%,#111c37);
  border:0;border-radius:0;
}
.rwp-portal.rwp-themed .rwp-portal-head::before {
  content:"";position:absolute;right:-13%;top:5%;height:110%;aspect-ratio:1;
  border:1px solid rgba(0,217,245,.15);border-radius:50%;
  box-shadow:inset 0 0 0 52px rgba(168,85,247,.025);
  pointer-events:none;z-index:-1;
}
.rwp-portal.rwp-themed .rwp-portal-head::after {
  content:"";position:absolute;bottom:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,#00e5ed 0%,#578af4 46%,#b850e2 78%,#ff4da8 100%);
}
.rwp-portal .rwp-portal-hero-inner {
  max-width:1250px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.7fr);
  gap:clamp(25px,4vw,62px);align-items:center;
}
.rwp-portal .rwp-portal-hero-copy {min-width:0;position:relative;z-index:1}
.rwp-portal.rwp-themed .rwp-portal-head .rwp-eyebrow {
  color:#19dcef!important;font-size:.79rem;font-weight:800;letter-spacing:.18em;
  line-height:1.5;text-transform:uppercase;margin:0 0 14px!important;
}
.rwp-portal .rwp-portal-head .rwp-eyebrow span {color:#ff4da8}
.rwp-portal.rwp-themed .rwp-portal-head h1 {
  color:#fff;margin:0 0 20px!important;font-size:clamp(2.65rem,4.5vw,4.4rem);
  font-style:italic;font-weight:900;line-height:1.05;letter-spacing:-.048em;
}
.rwp-portal.rwp-themed .rwp-hero-intro {
  font-size:clamp(1.07rem,1.34vw,1.28rem);font-weight:600;color:#eff5ff;
  max-width:720px;line-height:1.56;margin:0!important;
}
.rwp-portal .rwp-hero-actions {display:flex;gap:13px;flex-wrap:wrap;margin:23px 0 16px}
.rwp-portal.rwp-themed .rwp-hero-button {
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:12px 22px;min-height:47px;border-radius:11px;border:1.5px solid #00d9f5;
  font-size:.95rem;font-weight:800;line-height:1.25;text-decoration:none;
  transition:transform .2s ease,filter .2s ease;
}
.rwp-portal.rwp-themed .rwp-hero-button:hover {transform:translateY(-2px);filter:brightness(1.06)}
.rwp-portal.rwp-themed .rwp-hero-primary {background:#04d7ec;color:#061426;box-shadow:0 9px 23px rgba(3,213,236,.17)}
.rwp-portal.rwp-themed .rwp-hero-secondary {background:#0c152b;color:#fff}
.rwp-portal.rwp-themed .rwp-hero-note {margin:0;color:#c4d3e8;font-size:.82rem}
.rwp-portal .rwp-portal-hero-art {min-height:290px;position:relative;display:grid;place-items:center}
.rwp-portal .rwp-portal-hero-art::before {
  content:"";width:112%;aspect-ratio:1;border-radius:50%;position:absolute;
  border:1px solid rgba(0,217,245,.18);pointer-events:none;
}
.rwp-portal .rwp-portal-hero-ring {
  width:min(100%,310px);aspect-ratio:1;display:grid;place-items:center;overflow:hidden;
  border-radius:50%;padding:5px;position:relative;
  background:linear-gradient(130deg,#00dfef 0%,#588dfa 50%,#d14bdf 93%);
  box-shadow:0 26px 48px rgba(0,0,0,.27),0 0 36px rgba(0,217,245,.09);
}
.rwp-portal .rwp-portal-hero-photo {width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.rwp-portal .rwp-portal-hero-camera {
  background:radial-gradient(circle at 75% 20%,#482d6d,#1b2947 49%,#0d1a31 85%);
  width:100%;height:100%;display:grid;place-items:center;color:#26dbed;border-radius:50%;
}
.rwp-portal .rwp-portal-hero-camera svg {width:42%;height:42%;filter:drop-shadow(0 8px 15px rgba(4,211,236,.16))}
.rwp-portal.rwp-themed .rwp-portal-head-compact {padding-top:35px;padding-bottom:36px}
.rwp-portal.rwp-themed .rwp-portal-head-compact h1 {font-size:clamp(2.2rem,3.5vw,3.4rem)}
.rwp-portal.rwp-themed .rwp-portal-body {
  max-width:1230px;margin:0 auto;padding:clamp(38px,5vw,70px) clamp(20px,4vw,55px) clamp(55px,6vw,95px);
  width:100%;background:transparent;
}
.rwp-portal .rwp-private-section {display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(25px,5vw,85px);align-items:center}
.rwp-portal .rwp-private-copy {min-width:0;max-width:560px}
.rwp-portal .rwp-private-copy .rwp-eyebrow {margin:0 0 12px}
.rwp-portal .rwp-private-copy h2 {font-size:clamp(2rem,3.1vw,3rem);margin:0 0 16px;color:#fff}
.rwp-portal .rwp-private-copy > p:not(.rwp-eyebrow) {color:#cfd9eb;font-size:1.03rem;line-height:1.78;margin:0}
.rwp-portal .rwp-private-benefits {display:flex;flex-direction:column;gap:11px;margin-top:25px;color:#dbe9f3;font-size:.92rem}
.rwp-portal .rwp-private-benefits span::first-letter {color:#07d5eb}
.rwp-portal.rwp-themed .rwp-login {
  margin:0;max-width:none;width:100%;padding:clamp(24px,3vw,37px);
  background:linear-gradient(145deg,rgba(29,43,76,.95),rgba(18,30,54,.97));
  border:1px solid rgba(86,126,186,.5);border-radius:17px;box-shadow:0 20px 45px rgba(0,0,0,.19);
  gap:16px;
}
.rwp-portal.rwp-themed .rwp-login h3 {font-size:clamp(1.25rem,2vw,1.55rem);margin:0 0 3px;color:#fff;font-weight:800}
.rwp-portal.rwp-themed .rwp-login input {border-color:#526687;background:#101a30;color:#fff;min-height:48px}
.rwp-portal.rwp-themed .rwp-login .rwp-button {background:#04d7ec;color:#081426;border:0;font-weight:800}
.rwp-portal.rwp-themed .rwp-login .rwp-button:hover {background:#35e1f0;color:#081426}
.rwp-portal.rwp-themed .rwp-login .rwp-small {font-size:.81rem;color:#aebed4}
.rwp-portal.rwp-themed .rwp-public-events {margin-top:clamp(50px,6vw,90px);padding-top:clamp(30px,4vw,47px);border-top:1px solid rgba(86,125,177,.33)}
.rwp-portal.rwp-themed .rwp-public-card,
.rwp-portal.rwp-themed .rwp-album-card {background:linear-gradient(145deg,rgba(29,43,76,.96),rgba(19,31,55,.94));border:1px solid rgba(83,127,182,.37);border-radius:15px}
.rwp-portal.rwp-themed .rwp-public-card:hover,
.rwp-portal.rwp-themed .rwp-album-card:hover {border-color:#14d6ed;transform:translateY(-3px)}
.rwp-portal.rwp-themed .rwp-public-events-head h2 {color:#fff;font-size:clamp(2rem,3.1vw,3rem);margin:5px 0 8px}
.rwp-portal.rwp-themed .rwp-album-view {max-width:none}
.rwp-portal.rwp-themed .rwp-collection h2 {font-size:clamp(2rem,3vw,2.8rem)}
.rwp-portal.rwp-themed .rwp-action-primary {background:#04d7ec;color:#081426}
.rwp-portal.rwp-themed a:focus-visible,.rwp-portal.rwp-themed button:focus-visible,
.rwp-portal.rwp-themed input:focus-visible {outline:3px solid #ffcc57;outline-offset:3px}
@media(max-width:850px) {
  .rwp-portal .rwp-portal-hero-inner {grid-template-columns:1fr;gap:24px}
  .rwp-portal .rwp-portal-hero-art {grid-row:1;min-height:auto}
  .rwp-portal .rwp-portal-hero-ring {width:min(52vw,255px)}
  .rwp-portal .rwp-portal-hero-art::before {width:min(60vw,295px)}
  .rwp-portal .rwp-private-section {grid-template-columns:1fr;gap:29px}
}
@media(max-width:540px) {
  .rwp-portal.rwp-themed .rwp-portal-head {padding:30px 20px 42px}
  .rwp-portal.rwp-themed .rwp-portal-head h1 {font-size:clamp(2.25rem,9vw,3rem)}
  .rwp-portal.rwp-themed .rwp-portal-body {padding:48px 20px 60px}
  .rwp-portal .rwp-portal-hero-ring {width:min(65vw,225px)}
  .rwp-portal .rwp-portal-hero-art::before {width:min(74vw,258px)}
  .rwp-portal .rwp-hero-actions {align-items:stretch}
  .rwp-portal.rwp-themed .rwp-hero-button {width:100%}
}
@media(prefers-reduced-motion:reduce) {
  .rwp-portal.rwp-themed .rwp-hero-button {transition:none}
  .rwp-portal.rwp-themed .rwp-hero-button:hover {transform:none}
}


/* v2.7 | Event album refinement. Scoped so private client galleries stay unchanged. */
.rwp-portal.rwp-mode-public-album .rwp-portal-head {
  padding:clamp(27px,3.1vw,45px) clamp(20px,5vw,80px) clamp(30px,3.3vw,48px)!important;
}
.rwp-portal.rwp-mode-public-album .rwp-portal-hero-inner {
  display:block;max-width:1200px;margin:0 auto;
}
.rwp-portal.rwp-mode-public-album .rwp-portal-hero-copy {max-width:960px}
.rwp-portal.rwp-mode-public-album .rwp-portal-head .rwp-eyebrow {margin-bottom:8px!important}
.rwp-portal.rwp-mode-public-album .rwp-portal-head h1 {
  font-size:clamp(2rem,3.4vw,3.25rem);margin:0 0 10px!important;
}
.rwp-portal.rwp-mode-public-album .rwp-hero-intro {
  font-size:clamp(.93rem,1.2vw,1.05rem);font-weight:500;max-width:680px;
}
.rwp-portal.rwp-mode-public-album .rwp-hero-actions {margin:18px 0 0}
.rwp-portal.rwp-mode-public-album .rwp-hero-button {min-height:40px;padding:9px 16px;font-size:.85rem}
.rwp-portal.rwp-mode-public-album .rwp-portal-body {
  padding-top:clamp(22px,3.4vw,43px);padding-bottom:clamp(45px,5vw,75px);
}
.rwp-portal.rwp-mode-public-album .rwp-event-gallery-heading {
  display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;
  gap:14px;margin:0 0 18px;
}
.rwp-portal.rwp-mode-public-album .rwp-event-gallery-heading .rwp-eyebrow {
  font-size:.69rem;letter-spacing:.17em;color:#22dcef;margin:0 0 5px;
}
.rwp-portal.rwp-mode-public-album .rwp-event-gallery-heading h2 {
  font-size:clamp(1.45rem,2.3vw,2.1rem);line-height:1.12;margin:0 0 6px;color:white;
}
.rwp-portal.rwp-mode-public-album .rwp-event-gallery-heading .rwp-subtitle {
  font-size:.89rem;color:#bdcce2;margin:0;
}
.rwp-portal.rwp-mode-public-album .rwp-event-date {
  display:inline-flex;align-items:center;border:1px solid rgba(49,181,209,.32);
  color:#a9e4ee;background:rgba(29,57,79,.55);font-size:.78rem;font-weight:700;
  border-radius:999px;padding:8px 14px;white-space:nowrap;
}
.rwp-portal.rwp-mode-public-album .rwp-download-tools {
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;
  padding:12px 15px;margin:0 0 10px;background:#17243b;
  border:1px solid rgba(86,126,178,.42);border-radius:12px;
}
.rwp-portal.rwp-mode-public-album .rwp-tools-selection,
.rwp-portal.rwp-mode-public-album .rwp-tools-actions {display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rwp-portal.rwp-mode-public-album .rwp-tools-selection .rwp-selected-count {margin-right:0;color:#aebed5}
.rwp-portal.rwp-mode-public-album .rwp-action {
  min-height:41px;padding:9px 15px;border-radius:9px;font-size:.79rem;white-space:nowrap;
}
.rwp-portal.rwp-mode-public-album .rwp-action:not(.rwp-action-primary) {background:#263958;border-color:#4d668b}
.rwp-portal.rwp-mode-public-album .rwp-action-primary:disabled {opacity:.48}
.rwp-portal.rwp-mode-public-album .rwp-download-hint {color:#9daecb;margin:0 0 19px;font-size:.77rem}
.rwp-portal.rwp-mode-public-album .rwp-photo-grid {gap:clamp(10px,1.25vw,17px)}
.rwp-portal.rwp-mode-public-album .rwp-photo {
  border-color:rgba(81,121,176,.34);border-radius:11px;
  background:#131d32;transition:border-color .2s ease,transform .2s ease;
}
.rwp-portal.rwp-mode-public-album .rwp-photo:hover {border-color:#25d7eb;transform:translateY(-2px)}
.rwp-portal.rwp-mode-public-album .rwp-photo figcaption {padding:9px 11px}
.rwp-portal.rwp-mode-public-album .rwp-photo figcaption a {color:#82e6f3}
@media(max-width:740px){
  .rwp-portal.rwp-mode-public-album .rwp-tools-selection,
  .rwp-portal.rwp-mode-public-album .rwp-tools-actions {width:100%}
  .rwp-portal.rwp-mode-public-album .rwp-tools-actions .rwp-action {flex:1 1 auto}
  .rwp-portal.rwp-mode-public-album .rwp-download-tools {gap:10px}
  .rwp-portal.rwp-mode-public-album .rwp-event-date {font-size:.73rem}
}
@media(max-width:460px){
  .rwp-portal.rwp-mode-public-album .rwp-hero-actions .rwp-hero-button {width:auto}
  .rwp-portal.rwp-mode-public-album .rwp-tools-actions {display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .rwp-portal.rwp-mode-public-album .rwp-tools-actions .rwp-action {
    white-space:normal;min-width:0;padding:10px 7px;line-height:1.25;
  }
  .rwp-portal.rwp-mode-public-album .rwp-photo figcaption {padding:7px 5px}
}
@media(prefers-reduced-motion:reduce){
  .rwp-portal.rwp-mode-public-album .rwp-photo {transition:none}
  .rwp-portal.rwp-mode-public-album .rwp-photo:hover {transform:none}
}


/* v2.7.1: minimal photo addition to the proven v2.7 public event hero.
   No image? Original v2.7 markup and layout behave exactly as before. */
.rwp-portal.rwp-mode-public-album .rwp-portal-hero-inner:has(> .rwp-single-event-hero-photo) {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(16px,3vw,38px);
}
.rwp-portal.rwp-mode-public-album .rwp-portal-hero-inner:has(> .rwp-single-event-hero-photo) > .rwp-portal-hero-copy {
  min-width:0;
  flex:1 1 auto;
}
.rwp-portal.rwp-mode-public-album .rwp-single-event-hero-photo {
  width:clamp(126px,15vw,172px);
  height:clamp(126px,15vw,172px);
  flex:0 0 auto;
  padding:3px;
  border-radius:50%;
  background:linear-gradient(135deg,#0ddff0 5%,#6482fb 55%,#e04bb8 100%);
  box-shadow:0 10px 28px rgba(0,0,0,.22);
}
.rwp-portal.rwp-mode-public-album .rwp-single-event-hero-image {
  width:100%;height:100%;display:block;
  border-radius:50%;object-fit:cover;
}
@media (max-width:600px) {
  .rwp-portal.rwp-mode-public-album .rwp-portal-hero-inner:has(> .rwp-single-event-hero-photo) {
    display:flex;align-items:center;gap:12px;
  }
  .rwp-portal.rwp-mode-public-album .rwp-single-event-hero-photo {
    width:clamp(78px,22vw,104px);height:clamp(78px,22vw,104px);
    padding:2px;
  }
  .rwp-portal.rwp-mode-public-album .rwp-portal-hero-inner:has(> .rwp-single-event-hero-photo) .rwp-hero-intro {
    font-size:.9rem;
  }
}


/* v2.7.2: only the standalone Events & Conventions directory.
 * Removes the triple top spacing above the listings while retaining the
 * original hero, private client portal and single-event gallery layouts. */
.rwp-portal.rwp-themed.rwp-mode-events .rwp-portal-body {
  padding-top:clamp(22px,2.6vw,34px);
}
.rwp-portal.rwp-themed.rwp-mode-events .rwp-public-events {
  margin-top:0;
  padding-top:0;
  border-top:0;
}

/* ================================================================
 * Rollar Wolf Client Portal v2.7.4: phone-first UX improvements.
 * Presentation-only. Original v2.7.3 auth, search and downloads stay.
 * ================================================================ */
.rwp-portal .rwp-mobile-selection-tray {display:none}
.rwp-portal .rwp-password-field {position:relative}
.rwp-portal .rwp-password-toggle {display:none}

@media (max-width:767px) {
  .rwp-portal.rwp-themed {overflow:hidden}
  .rwp-portal.rwp-themed .rwp-portal-head {
    padding:24px 16px 27px!important;
  }
  .rwp-portal.rwp-themed .rwp-portal-head::before {
    width:205px;height:205px;right:-100px;top:-38px;opacity:.48;
  }
  .rwp-portal.rwp-themed .rwp-portal-hero-inner {
    max-width:100%;gap:12px;
  }
  /* Landing and directory: title at left, small photo at right, intro full-width below. */
  .rwp-portal.rwp-themed.rwp-mode-home .rwp-portal-hero-inner,
  .rwp-portal.rwp-themed.rwp-mode-events .rwp-portal-hero-inner {
    display:grid;grid-template-columns:minmax(0,1fr) 96px;
    column-gap:12px;row-gap:8px;align-items:center;
  }
  .rwp-portal.rwp-themed.rwp-mode-home .rwp-portal-hero-copy,
  .rwp-portal.rwp-themed.rwp-mode-events .rwp-portal-hero-copy {display:contents}
  .rwp-portal.rwp-themed.rwp-mode-home .rwp-portal-head .rwp-eyebrow,
  .rwp-portal.rwp-themed.rwp-mode-events .rwp-portal-head .rwp-eyebrow {
    grid-column:1;grid-row:1;align-self:end;margin:0 0 3px!important;
    font-size:.61rem!important;letter-spacing:.125em;line-height:1.4;
  }
  .rwp-portal.rwp-themed.rwp-mode-home .rwp-portal-head h1,
  .rwp-portal.rwp-themed.rwp-mode-events .rwp-portal-head h1 {
    grid-column:1;grid-row:2;align-self:start;margin:0!important;
    font-size:clamp(1.8rem,8vw,2.5rem)!important;line-height:1.08;
    overflow-wrap:normal;
  }
  .rwp-portal.rwp-themed.rwp-mode-home .rwp-portal-hero-art,
  .rwp-portal.rwp-themed.rwp-mode-events .rwp-portal-hero-art {
    grid-column:2;grid-row:1 / span 2;min-height:0;align-self:center;position:relative;
  }
  .rwp-portal.rwp-themed.rwp-mode-home .rwp-portal-hero-ring,
  .rwp-portal.rwp-themed.rwp-mode-events .rwp-portal-hero-ring {
    width:96px;max-width:100%;padding:3px;
  }
  .rwp-portal.rwp-themed.rwp-mode-home .rwp-portal-hero-art::before,
  .rwp-portal.rwp-themed.rwp-mode-events .rwp-portal-hero-art::before {
    width:108%;
  }
  .rwp-portal.rwp-themed.rwp-mode-home .rwp-hero-intro,
  .rwp-portal.rwp-themed.rwp-mode-events .rwp-hero-intro {
    grid-column:1/-1;grid-row:3;max-width:none;font-size:.93rem!important;
    font-weight:500;line-height:1.55;margin:9px 0 0!important;
  }
  .rwp-portal.rwp-themed.rwp-mode-home .rwp-hero-actions,
  .rwp-portal.rwp-themed.rwp-mode-events .rwp-hero-actions {
    grid-column:1/-1;grid-row:4;display:grid;grid-template-columns:1fr 1fr;
    gap:9px;margin:10px 0 0;
  }
  .rwp-portal.rwp-themed.rwp-mode-home .rwp-hero-note {
    grid-column:1/-1;grid-row:5;margin:3px 0 0;font-size:.7rem;
  }
  .rwp-portal.rwp-themed .rwp-hero-button {
    display:flex;min-height:46px;font-size:.82rem;line-height:1.2;
    padding:10px 11px!important;width:100%;text-align:center;
  }
  .rwp-portal.rwp-themed.rwp-mode-public-album .rwp-portal-head {
    padding:21px 16px 24px!important;
  }
  .rwp-portal.rwp-themed.rwp-mode-public-album .rwp-portal-head h1 {
    font-size:clamp(1.78rem,7.7vw,2.35rem)!important;
    line-height:1.08;
  }
  .rwp-portal.rwp-mode-public-album .rwp-portal-hero-inner:has(> .rwp-single-event-hero-photo) {
    align-items:center;gap:12px;
  }
  .rwp-portal.rwp-mode-public-album .rwp-single-event-hero-photo {
    width:88px;height:88px;flex:0 0 88px;
  }
  .rwp-portal.rwp-themed.rwp-mode-public-album .rwp-hero-intro {
    font-size:.9rem!important;line-height:1.5;
  }
  .rwp-portal.rwp-themed.rwp-mode-public-album .rwp-hero-actions {margin:12px 0 0}
  .rwp-portal.rwp-themed.rwp-mode-public-album .rwp-hero-button {width:auto}
  .rwp-portal.rwp-themed .rwp-portal-body {padding:26px 16px 58px!important}
  .rwp-portal.rwp-themed.rwp-mode-public-album .rwp-portal-body {padding-top:24px!important}
  .rwp-portal.rwp-themed.rwp-mode-events .rwp-portal-body {padding-top:21px!important}

  /* Sign-in / first-time password reset: easy to read and easy to tap. */
  .rwp-portal.rwp-themed .rwp-private-section {display:flex;flex-direction:column;gap:20px}
  .rwp-portal.rwp-themed .rwp-private-copy {width:100%;max-width:none}
  .rwp-portal.rwp-themed .rwp-private-copy h2 {font-size:1.7rem;margin:0 0 8px}
  .rwp-portal.rwp-themed .rwp-private-copy > p:not(.rwp-eyebrow) {font-size:.93rem;line-height:1.6}
  .rwp-portal.rwp-themed .rwp-private-benefits {margin-top:12px;gap:6px;font-size:.83rem}
  .rwp-portal.rwp-themed .rwp-login {padding:20px 16px;gap:14px;border-radius:15px}
  .rwp-portal.rwp-themed .rwp-login label {font-size:.89rem;line-height:1.4}
  .rwp-portal.rwp-themed .rwp-login input {
    min-height:52px;font-size:16px!important;border-radius:10px;padding:12px 14px;
  }
  .rwp-portal.rwp-themed .rwp-login .rwp-button {min-height:52px;font-size:1rem;width:100%}
  .rwp-portal.rwp-themed .rwp-password-field input {padding-right:72px!important}
  .rwp-portal.rwp-themed .rwp-password-toggle {
    display:block;position:absolute;bottom:8px;right:8px;min-height:36px;
    min-width:56px;padding:5px 9px;border-radius:8px;
    border:1px solid rgba(135,174,215,.45);color:#a6ecf4;
    background:#263d57;font-size:.79rem;font-weight:750;line-height:1.2;
    cursor:pointer;z-index:1;
  }

  /* Album cards and gallery grid. */
  .rwp-portal.rwp-themed .rwp-toolbar {padding:12px;gap:10px;margin:0 0 22px}
  .rwp-portal.rwp-themed .rwp-toolbar p {font-size:.95rem;line-height:1.4;flex:1}
  .rwp-portal.rwp-themed .rwp-signout {min-height:44px;padding:10px 14px}
  .rwp-portal.rwp-themed .rwp-collection h2 {font-size:1.72rem;margin:0 0 16px}
  .rwp-portal.rwp-themed .rwp-album-grid {grid-template-columns:1fr;gap:13px}
  .rwp-portal.rwp-themed .rwp-album-card {display:grid;grid-template-columns:39% 1fr;min-height:120px;align-items:stretch}
  .rwp-portal.rwp-themed .rwp-album-card .rwp-cover {aspect-ratio:auto;height:100%;min-height:120px}
  .rwp-portal.rwp-themed .rwp-album-card .rwp-card-text {justify-content:center;padding:14px 13px;gap:6px;min-width:0}
  .rwp-portal.rwp-themed .rwp-album-card .rwp-card-text strong {font-size:1.02rem;line-height:1.32;overflow-wrap:anywhere}
  .rwp-portal.rwp-themed .rwp-album-card .rwp-card-text small {font-size:.8rem}
  .rwp-portal.rwp-themed .rwp-public-grid {grid-template-columns:1fr;gap:14px}
  .rwp-portal.rwp-themed .rwp-public-events-head {margin-bottom:16px}
  .rwp-portal.rwp-themed .rwp-public-events-head h2 {font-size:1.72rem}
  .rwp-portal.rwp-themed .rwp-public-card-body {padding:14px}
  .rwp-portal.rwp-themed .rwp-public-cover {aspect-ratio:16/9}
  .rwp-portal.rwp-themed .rwp-public-view {display:inline-flex;align-items:center;min-height:42px}
  .rwp-portal.rwp-themed .rwp-public-events {margin-top:34px;padding-top:24px}
  .rwp-portal.rwp-themed.rwp-mode-events .rwp-public-events {margin-top:0;padding-top:0}

  .rwp-portal.rwp-themed .rwp-album-view > h2 {font-size:1.75rem;margin:3px 0 6px}
  .rwp-portal.rwp-themed .rwp-subtitle {font-size:.85rem;line-height:1.55}
  .rwp-portal.rwp-themed .rwp-crumbs {margin-bottom:12px}
  .rwp-portal.rwp-themed .rwp-back {display:inline-flex;align-items:center;min-height:42px;font-size:.87rem}
  .rwp-portal.rwp-themed .rwp-photo-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .rwp-portal.rwp-themed .rwp-photo {border-radius:12px;min-width:0}
  .rwp-portal.rwp-themed .rwp-photo>a.rwp-photo-open {aspect-ratio:4/5}
  .rwp-portal.rwp-themed .rwp-photo figcaption,
  .rwp-portal.rwp-themed.rwp-mode-public-album .rwp-photo figcaption {
    display:flex;flex-direction:column;gap:2px;align-items:stretch;
    padding:6px 8px 8px;
  }
  .rwp-portal.rwp-themed .rwp-photo figcaption .rwp-select-photo {
    display:flex;justify-content:flex-start;gap:8px;align-items:center;
    min-height:40px;font-size:.83rem;font-weight:700;margin:0;
    padding:0 3px;white-space:normal;
  }
  .rwp-portal.rwp-themed input[type=checkbox] {width:20px;height:20px;flex:0 0 20px}
  .rwp-portal.rwp-themed .rwp-photo figcaption>a {
    display:flex;align-items:center;justify-content:center;min-height:37px;
    border-radius:8px;background:rgba(39,79,115,.56);font-size:.82rem;
    color:#b1f0fa;white-space:normal;text-decoration:none;
  }

  /* Downloads: clear selection row + large actions. */
  .rwp-portal.rwp-themed .rwp-download-tools {
    display:flex;flex-direction:column;align-items:stretch;gap:10px;
    padding:12px;border-radius:12px;margin:12px 0 9px;
  }
  .rwp-portal.rwp-themed .rwp-tools-selection {display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}
  .rwp-portal.rwp-themed .rwp-select-all {min-height:42px;font-size:.84rem}
  .rwp-portal.rwp-themed .rwp-selected-count {font-size:.76rem;min-width:0;margin:0;text-align:right;white-space:normal}
  .rwp-portal.rwp-themed .rwp-tools-actions {display:grid;grid-template-columns:1fr 1fr;gap:9px;width:100%}
  .rwp-portal.rwp-themed .rwp-tools-actions .rwp-action,
  .rwp-portal.rwp-themed .rwp-download-tools > .rwp-action {
    width:100%;min-width:0;min-height:47px;line-height:1.28;
    padding:9px 8px;font-size:.8rem;white-space:normal;
  }
  /* Private gallery buttons are direct children, not wrapped in an actions div. */
  .rwp-portal.rwp-themed .rwp-download-tools:not(:has(.rwp-tools-actions)) {
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;
  }
  .rwp-portal.rwp-themed .rwp-download-tools:not(:has(.rwp-tools-actions)) > .rwp-select-all,
  .rwp-portal.rwp-themed .rwp-download-tools:not(:has(.rwp-tools-actions)) > .rwp-selected-count {
    grid-column:auto;align-self:center;
  }
  .rwp-portal.rwp-themed .rwp-download-tools:not(:has(.rwp-tools-actions)) > .rwp-action:last-of-type:nth-child(5) {grid-column:1/-1}
  .rwp-portal.rwp-themed .rwp-download-hint {font-size:.76rem;line-height:1.5;margin:0 0 13px}
  .rwp-portal.rwp-themed.rwp-mode-public-album .rwp-event-gallery-heading {align-items:flex-start;gap:8px;margin-bottom:14px}
  .rwp-portal.rwp-themed.rwp-mode-public-album .rwp-event-gallery-heading h2 {font-size:1.55rem}
  .rwp-portal.rwp-themed.rwp-mode-public-album .rwp-event-date {padding:6px 11px}

  /* Big pagination tap targets for 60-photo pages. */
  .rwp-portal.rwp-themed .rwp-pages {display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:19px}
  .rwp-portal.rwp-themed .rwp-pages span {order:-1;flex:0 0 100%;text-align:center;font-size:.82rem}
  .rwp-portal.rwp-themed .rwp-pages a {
    display:inline-flex;min-height:48px;min-width:0;flex:1 1 45%;
    justify-content:center;align-items:center;text-align:center;
    border:1px solid #416b8e;border-radius:11px;background:#182c49;
    padding:10px 12px;font-size:.85rem;
  }

  /* Floating download action appears only after the user selects photos. */
  .rwp-portal.rwp-themed .rwp-mobile-selection-tray.is-active {
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    position:fixed;bottom:calc(9px + env(safe-area-inset-bottom,0px));
    left:12px;right:12px;z-index:10010;
    min-height:69px;padding:10px 12px;border:1px solid rgba(39,220,238,.7);
    border-radius:14px;background:rgba(14,28,51,.96);color:#fff;
    box-shadow:0 8px 35px rgba(0,0,0,.5);backdrop-filter:blur(12px);
  }
  .rwp-portal .rwp-mobile-selection-tray span {font-size:.88rem;font-weight:750;line-height:1.35}
  .rwp-portal .rwp-mobile-selection-tray button {
    border:0;border-radius:10px;min-height:46px;max-width:64%;padding:10px 15px;
    background:#08d3e7;color:#051828;font-size:.87rem;font-weight:800;line-height:1.25;
    cursor:pointer;
  }
  .rwp-portal.rwp-themed .rwp-mobile-selection-tray button:focus-visible {outline:3px solid #ffce64;outline-offset:2px}
  body.rwp-viewer-active .rwp-portal .rwp-mobile-selection-tray {display:none!important}

  /* Fullscreen viewer: photo uses available width, arrows overlay its edges. */
  .rwp-portal .rwp-viewer {height:100dvh!important}
  .rwp-portal .rwp-viewer-top {
    padding:calc(9px + env(safe-area-inset-top,0px)) 12px 9px!important;
    min-height:57px;gap:9px;
  }
  .rwp-portal .rwp-viewer-back {min-height:40px;display:flex;align-items:center;font-size:.85rem}
  .rwp-portal .rwp-viewer-close {min-width:43px;min-height:43px;font-size:1.08rem}
  .rwp-portal .rwp-viewer-stage {
    position:relative;display:flex;align-items:center;justify-content:center;
    min-height:0;padding:3px 3px;touch-action:pan-y;
  }
  .rwp-portal .rwp-viewer-stage img {
    width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 185px);
    object-fit:contain;box-shadow:none;
  }
  .rwp-portal .rwp-viewer-arrow {
    position:absolute;z-index:2;top:50%;transform:translateY(-50%);
    width:44px;height:48px;min-width:44px;border-radius:13px;
    font-size:1.75rem;background:rgba(21,39,67,.72);border-color:rgba(150,181,216,.48);
    touch-action:manipulation;
  }
  .rwp-portal .rwp-viewer-arrow[data-rwp-previous] {left:7px}
  .rwp-portal .rwp-viewer-arrow[data-rwp-next] {right:7px}
  .rwp-portal .rwp-viewer-bottom {
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);
    gap:8px;padding:9px 11px calc(11px + env(safe-area-inset-bottom,0px))!important;
  }
  .rwp-portal .rwp-viewer-bottom > span {
    grid-column:1/-1;min-width:0;white-space:nowrap;overflow:hidden;
    text-overflow:ellipsis;font-size:.76rem;
  }
  .rwp-portal .rwp-viewer-bottom button,
  .rwp-portal .rwp-viewer-bottom a {
    min-height:46px;display:flex;justify-content:center;align-items:center;
    text-align:center;font-size:.81rem;padding:9px 8px;
  }
  .rwp-portal .rwp-viewer.rwp-zoomed .rwp-viewer-stage {touch-action:auto}
}

@media (max-width:380px) {
  .rwp-portal.rwp-themed.rwp-mode-home .rwp-portal-hero-inner,
  .rwp-portal.rwp-themed.rwp-mode-events .rwp-portal-hero-inner {grid-template-columns:minmax(0,1fr) 82px;gap:8px}
  .rwp-portal.rwp-themed.rwp-mode-home .rwp-portal-hero-ring,
  .rwp-portal.rwp-themed.rwp-mode-events .rwp-portal-hero-ring {width:82px}
  .rwp-portal.rwp-themed .rwp-hero-button {font-size:.76rem;padding-inline:8px!important}
  .rwp-portal.rwp-themed .rwp-portal-body {padding-inline:13px!important}
  .rwp-portal.rwp-themed .rwp-photo-grid {gap:7px}
  .rwp-portal.rwp-themed .rwp-mobile-selection-tray.is-active {left:7px;right:7px}
}
@media (prefers-reduced-motion:reduce) {
  .rwp-portal .rwp-album-card,
  .rwp-portal .rwp-photo img,
  .rwp-portal .rwp-viewer-stage img {transition:none!important}
}

@media (max-width:767px) {
  .rwp-portal.rwp-themed .rwp-download-tools .rwp-action-primary:disabled {
    background:#29425b!important;color:#bdcfdf!important;
    opacity:.75!important;border:1px solid #446078!important;
  }
}
