@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600;700&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');

:root {
  --calvail-ink: #3b302b;
  --calvail-body: #5c4b43;
  --calvail-muted: #8d7c72;
  --calvail-accent: #b58a6f;
  --calvail-accent-dark: #8a634e;
  --calvail-green: #60786a;
  --calvail-gold: #c5a46d;
  --calvail-ivory: #faf7f1;
  --calvail-sand: #efe7dc;
  --calvail-white: #fff;
  --calvail-border: rgba(92, 75, 67, .16);
  --calvail-shadow: 0 20px 50px rgba(59, 48, 43, .08);
  --calvail-serif: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --calvail-sans: "Zen Kaku Gothic New", "Yu Gothic", sans-serif;
}

body.site { background: var(--calvail-ivory); color: var(--calvail-body); font-family: var(--calvail-sans); }
.container-header { background: rgba(255,255,253,.96); background-image: none; border-bottom: 1px solid var(--calvail-border); box-shadow: 0 4px 22px rgba(59,48,43,.05); }
.container-header .navbar-brand, .container-header .site-description, .container-header .mod-menu { color: var(--calvail-ink); }
.container-header .mod-menu a { color: var(--calvail-body); font-weight: 500; }
.container-header .mod-menu a:hover, .container-header .mod-menu a:focus { color: var(--calvail-accent-dark); }
.container-component { max-width: 1180px; }
.site-grid { gap: 0; }
.com-content-article__body { overflow: visible; }
.footer { background: var(--calvail-ink); background-image: none; color: rgba(255,255,255,.86); }
.com-users-login, .com-users-remind, .com-users-reset { background: #fff; border: 1px solid var(--calvail-border); border-radius: 24px; box-shadow: var(--calvail-shadow); margin: clamp(3rem,8vw,7rem) auto; max-width: 620px; padding: clamp(1.5rem,5vw,3.5rem); }
.com-users-login h1, .com-users-remind h1, .com-users-reset h1 { color: var(--calvail-ink); font-family: var(--calvail-serif); font-size: clamp(1.8rem,4vw,2.8rem); text-align: center; }
.com-users-login .control-label, .com-users-remind .control-label, .com-users-reset .control-label { color: var(--calvail-ink); font-weight: 700; }
.com-users-login input, .com-users-remind input, .com-users-reset input, .portal-form-page input, .portal-form-page select, .portal-form-page textarea { border: 1px solid var(--calvail-border); border-radius: 12px; min-height: 50px; padding: .7rem .9rem; }
.com-users-login input:focus, .com-users-remind input:focus, .com-users-reset input:focus, .portal-form-page input:focus, .portal-form-page select:focus, .portal-form-page textarea:focus { border-color: var(--calvail-accent); box-shadow: 0 0 0 .2rem rgba(181,138,111,.15); }
.com-users-login button, .com-users-remind button, .com-users-reset button, .portal-form-page button { background: var(--calvail-accent); border: 0; border-radius: 999px; color: #fff; font-weight: 700; min-height: 50px; padding: .75rem 1.6rem; }
.com-users-login button:hover, .com-users-login button:focus, .portal-form-page button:hover, .portal-form-page button:focus { background: var(--calvail-accent-dark); }
.com-users-login__options { font-size: .9rem; margin-top: 1.5rem; }

.calvail-portal { color: var(--calvail-body); font-family: var(--calvail-sans); margin: 0 auto; max-width: 1160px; padding: clamp(2.5rem,7vw,6rem) clamp(1rem,3vw,2rem); }
.calvail-portal *, .calvail-portal *::before, .calvail-portal *::after { box-sizing: border-box; }
.calvail-portal h1, .calvail-portal h2, .calvail-portal h3 { color: var(--calvail-ink); font-family: var(--calvail-serif); font-weight: 600; letter-spacing: .02em; line-height: 1.45; margin-top: 0; }
.calvail-portal h1 { font-size: clamp(2.15rem,6vw,4.6rem); line-height: 1.3; }
.calvail-portal h2 { font-size: clamp(1.35rem,3vw,2rem); }
.calvail-portal h3 { font-size: 1.16rem; }
.calvail-portal p { line-height: 1.9; }
.portal-eyebrow { color: var(--calvail-accent-dark); font-family: var(--calvail-serif); font-size: .75rem; font-weight: 700; letter-spacing: .2em; margin: 0 0 1rem; text-transform: uppercase; }
.portal-hero { align-items: center; display: flex; flex-direction: column; min-height: 62vh; padding: clamp(3rem,9vw,8rem) 0; text-align: center; }
.portal-hero h1 { margin-bottom: 1.5rem; }
.portal-lead { font-size: clamp(1rem,2vw,1.15rem); margin: 0 auto; max-width: 760px; }
.portal-actions, .portal-page-actions { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; margin-top: 2.2rem; }
.portal-button { align-items: center; border: 1px solid var(--calvail-accent); border-radius: 999px; display: inline-flex; font-weight: 700; justify-content: center; min-height: 52px; padding: .85rem 1.7rem; text-decoration: none; transition: transform .2s, box-shadow .2s, background .2s; }
.portal-button:hover, .portal-button:focus { box-shadow: 0 12px 26px rgba(92,75,67,.15); transform: translateY(-2px); }
.portal-button-primary { background: var(--calvail-accent); color: #fff; }
.portal-button-primary:hover, .portal-button-primary:focus { background: var(--calvail-accent-dark); color: #fff; }
.portal-button-secondary { background: #fff; color: var(--calvail-accent-dark); }
.portal-security-note { color: var(--calvail-muted); font-size: .83rem; margin-top: 1.25rem; }
.portal-section { padding: clamp(3.5rem,7vw,6rem) 0; }
.portal-section-heading { margin: 0 auto 2.5rem; max-width: 680px; text-align: center; }
.portal-grid { display: grid; gap: 1.2rem; }
.portal-grid-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.portal-grid-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.portal-card, .portal-panel { background: rgba(255,255,255,.88); border: 1px solid var(--calvail-border); border-radius: 22px; box-shadow: 0 8px 28px rgba(59,48,43,.04); padding: clamp(1.4rem,3vw,2rem); }
.portal-card-mark { align-items: center; border: 1px solid rgba(181,138,111,.45); border-radius: 50%; color: var(--calvail-accent-dark); display: inline-flex; flex: 0 0 42px; font-family: var(--calvail-serif); font-size: .72rem; height: 42px; justify-content: center; letter-spacing: .06em; margin-bottom: 1.3rem; width: 42px; }
.portal-card h3 { margin-bottom: .55rem; }
.portal-card p { color: var(--calvail-muted); font-size: .93rem; margin-bottom: 0; }
.portal-about { align-items: start; border-bottom: 1px solid var(--calvail-border); border-top: 1px solid var(--calvail-border); display: grid; gap: 3rem; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); }
.portal-text-links { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 1.4rem; }
.portal-text-links a { color: var(--calvail-accent-dark); font-weight: 700; text-underline-offset: .3em; }
.portal-dashboard-hero { align-items: end; display: grid; gap: 3rem; grid-template-columns: 1.2fr .8fr; padding-bottom: clamp(2.5rem,6vw,5rem); }
.portal-dashboard-hero h1 { font-size: clamp(2rem,5vw,3.8rem); margin-bottom: 0; }
.portal-notice { align-items: center; background: var(--calvail-ink); border-radius: 22px; color: rgba(255,255,255,.82); display: grid; gap: 1rem 2rem; grid-template-columns: 1fr auto; margin-bottom: 1.2rem; padding: 1.5rem 1.8rem; }
.portal-notice > div { align-items: center; display: flex; gap: .7rem; }
.portal-notice h2 { color: #fff; font-family: var(--calvail-sans); font-size: 1rem; margin: 0; }
.portal-notice p { grid-column: 1; margin: 0; }
.portal-notice a { color: #fff; font-weight: 700; grid-column: 2; grid-row: 1 / span 2; }
.portal-status-dot { background: #d0b37c; border-radius: 50%; box-shadow: 0 0 0 5px rgba(208,179,124,.13); height: 9px; width: 9px; }
.portal-dashboard-grid { margin-top: 1.2rem; }
.portal-link-card { align-items: center; color: inherit; display: grid; gap: 1rem; grid-template-columns: auto 1fr auto; min-height: 180px; text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s; }
.portal-link-card:hover, .portal-link-card:focus { border-color: rgba(181,138,111,.55); box-shadow: var(--calvail-shadow); color: inherit; transform: translateY(-3px); }
.portal-link-card .portal-card-mark { margin: 0; }
.portal-link-card h2 { font-size: 1.35rem; margin: 0 0 .4rem; }
.portal-link-card p { margin: 0; }
.portal-arrow { color: var(--calvail-accent-dark); font-size: 1.5rem; }
.portal-page-header { border-bottom: 1px solid var(--calvail-border); margin-bottom: 2rem; padding-bottom: clamp(2rem,5vw,4rem); }
.portal-page-header h1 { font-size: clamp(2.2rem,5vw,3.7rem); margin-bottom: .8rem; }
.portal-page-header p:last-child { font-size: 1.05rem; margin-bottom: 0; max-width: 650px; }
.portal-alert { background: #f2eadc; border-left: 4px solid var(--calvail-gold); border-radius: 0 16px 16px 0; margin-bottom: 1.2rem; padding: 1.3rem 1.5rem; }
.portal-alert strong { color: var(--calvail-ink); }
.portal-alert p { margin: .35rem 0 0; }
.portal-panel h2 { font-size: 1.35rem; margin-bottom: 1.2rem; }
.portal-data-list { margin: 0; }
.portal-data-list > div { align-items: baseline; border-top: 1px solid var(--calvail-border); display: grid; gap: 1rem; grid-template-columns: minmax(140px,.35fr) 1fr; padding: 1rem 0; }
.portal-data-list > div:first-child { border-top: 0; }
.portal-data-list dt { color: var(--calvail-muted); font-size: .88rem; font-weight: 700; }
.portal-data-list dd { color: var(--calvail-ink); margin: 0; }
.portal-badge, .portal-coming-soon { background: var(--calvail-sand); border-radius: 999px; color: var(--calvail-accent-dark); display: inline-block; font-size: .78rem; font-weight: 700; padding: .35rem .75rem; }
.portal-check-list, .portal-document-group ul { list-style: none; margin: 0; padding: 0; }
.portal-check-list li, .portal-document-group li { border-top: 1px solid var(--calvail-border); padding: .72rem 0 .72rem 1.6rem; position: relative; }
.portal-check-list li::before, .portal-document-group li::before { color: var(--calvail-green); content: "✓"; font-weight: 700; left: .1rem; position: absolute; }
.portal-check-list-muted li::before { color: var(--calvail-accent); content: "＋"; }
.portal-steps { list-style: none; margin: 0; padding: 0; }
.portal-steps li { align-items: start; display: grid; gap: 1rem; grid-template-columns: auto 1fr; padding: .8rem 0; }
.portal-steps li > span { align-items: center; background: var(--calvail-green); border-radius: 50%; color: #fff; display: flex; font-family: var(--calvail-serif); height: 34px; justify-content: center; width: 34px; }
.portal-steps strong { color: var(--calvail-ink); }
.portal-steps p { margin: .2rem 0 0; }
.portal-document-group .portal-coming-soon { margin: 1.2rem 0 0; }
.portal-stack { display: grid; gap: 1.2rem; }

/* Contract, documents, billing, and dashboard business content. */
.portal-business-page section + section { margin-top: clamp(2rem,5vw,4rem); }
.portal-section-title { align-items: end; display: flex; gap: 1.5rem; justify-content: space-between; margin: 0 0 1.25rem; }
.portal-section-title h2 { color: var(--calvail-ink); font-family: var(--calvail-serif); margin: 0; }
.portal-section-title > p { color: var(--calvail-muted); margin: 0; text-align: right; }
.portal-summary-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3,minmax(0,1fr)); }
.portal-summary-card { background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(249,246,240,.88)); border: 1px solid var(--calvail-border); border-radius: 20px; box-shadow: 0 8px 26px rgba(59,48,43,.04); min-width: 0; padding: clamp(1.25rem,3vw,1.8rem); }
.portal-summary-label { color: var(--calvail-muted); font-size: .84rem; font-weight: 700; letter-spacing: .08em; margin: 0; }
.portal-summary-value { color: var(--calvail-ink); font-family: var(--calvail-serif); font-size: clamp(1.35rem,3vw,2rem); font-weight: 700; line-height: 1.3; margin: .65rem 0 .35rem; overflow-wrap: anywhere; }
.portal-summary-note { color: var(--calvail-muted); font-size: .88rem; margin: 0; }
.portal-summary-link { color: inherit; display: block; text-decoration: none; transition: border-color .2s ease,transform .2s ease,box-shadow .2s ease; }
.portal-summary-link > span:last-child { color: var(--calvail-accent-dark); display: inline-block; font-weight: 700; margin-top: 1rem; }
.portal-summary-link:hover,.portal-summary-link:focus-visible { border-color: var(--calvail-accent); box-shadow: 0 14px 34px rgba(59,48,43,.09); color: inherit; transform: translateY(-2px); }
.portal-no-wrap { white-space: nowrap; }
.portal-badge-neutral { background: #e9e5dd; color: var(--calvail-ink); }
.portal-content-grid { margin-top: clamp(1.5rem,4vw,3rem); }
.portal-subheading { color: var(--calvail-ink); font-size: 1rem; margin: 1.4rem 0 .35rem; }
.portal-break-url { overflow-wrap: anywhere; word-break: break-word; }
.portal-notice-soft { background: linear-gradient(135deg,#3f5b54,#304944); }
.portal-personal-library { align-items: center; display: grid; gap: clamp(1rem,4vw,2.5rem); grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); }
.portal-empty-state { background: var(--calvail-sand); border: 1px dashed var(--calvail-border); border-radius: 16px; padding: 1.25rem; }
.portal-empty-state p { color: var(--calvail-muted); margin: .35rem 0 .75rem; }
.portal-text-link { color: var(--calvail-accent-dark); font-weight: 700; text-underline-offset: .2em; }
.portal-document-categories { display: grid; gap: clamp(1.5rem,4vw,3rem); margin-top: clamp(2rem,5vw,4rem); }
.portal-document-category { background: rgba(255,255,255,.65); border: 1px solid var(--calvail-border); border-radius: 24px; padding: clamp(1.25rem,4vw,2.2rem); }
.portal-category-heading { align-items: center; display: flex; gap: 1rem; margin-bottom: 1.25rem; }
.portal-category-heading > span { align-items: center; background: var(--calvail-green); border-radius: 50%; color: #fff; display: flex; font-family: var(--calvail-serif); height: 46px; justify-content: center; width: 46px; }
.portal-category-heading h2 { color: var(--calvail-ink); font-family: var(--calvail-serif); margin: 0; }
.portal-document-list { display: grid; gap: .9rem; }
.portal-document-card { align-items: center; background: #fff; border: 1px solid var(--calvail-border); border-radius: 18px; display: grid; gap: 1.25rem; grid-template-columns: minmax(0,1fr) auto; padding: 1.25rem; }
.portal-document-card h3 { color: var(--calvail-ink); font-size: 1.1rem; margin: .55rem 0 .35rem; }
.portal-document-card p { color: var(--calvail-muted); margin: 0; }
.portal-chip { background: var(--calvail-sand); border-radius: 999px; color: var(--calvail-accent-dark); display: inline-block; font-size: .72rem; font-weight: 800; letter-spacing: .08em; padding: .28rem .62rem; }
.portal-document-meta { display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; margin: .8rem 0 0; }
.portal-document-meta > div { display: flex; gap: .35rem; }
.portal-document-meta dt,.portal-document-meta dd { color: var(--calvail-muted); font-size: .8rem; margin: 0; }
.portal-document-meta dt { font-weight: 700; }
.portal-empty-row { background: var(--calvail-sand); border: 1px dashed var(--calvail-border); border-radius: 14px; color: var(--calvail-muted); padding: 1rem 1.15rem; }
.portal-inline-note { background: var(--calvail-sand); border-radius: 14px; display: grid; gap: .25rem; margin-top: 1.25rem; padding: 1rem; }
.portal-invoice-panel { align-items: start; display: grid; gap: 1.5rem; grid-template-columns: minmax(0,1fr) minmax(260px,.75fr); }
.portal-step-flow { display: grid; gap: .7rem; grid-template-columns: repeat(5,minmax(0,1fr)); list-style: none; margin: 1.25rem 0 0; padding: 0; }
.portal-step-flow li { background: #fff; border: 1px solid var(--calvail-border); border-radius: 16px; color: var(--calvail-muted); min-height: 105px; padding: 1rem; }
.portal-step-flow li > span { align-items: center; background: var(--calvail-sand); border-radius: 50%; color: var(--calvail-accent-dark); display: flex; font-weight: 800; height: 30px; justify-content: center; margin-bottom: .65rem; width: 30px; }
.portal-step-flow li.is-active { border-color: var(--calvail-green); color: var(--calvail-ink); }
.portal-step-flow li.is-active > span { background: var(--calvail-green); color: #fff; }
.portal-dashboard-summary { margin: clamp(2rem,5vw,4rem) 0; }

@media (max-width: 900px) {
  .portal-grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .portal-dashboard-hero { gap: 1.5rem; grid-template-columns: 1fr; }
  .portal-step-flow { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 760px) {
  .portal-summary-grid,.portal-personal-library,.portal-invoice-panel { grid-template-columns: 1fr; }
  .portal-section-title { align-items: start; flex-direction: column; gap: .35rem; }
  .portal-section-title > p { text-align: left; }
  .portal-document-card { align-items: stretch; grid-template-columns: 1fr; }
  .portal-document-card .portal-button { width: 100%; }
  .portal-step-flow { grid-template-columns: 1fr; }
  .portal-step-flow li { min-height: 0; }
}

@media (max-width: 640px) {
  .calvail-portal { padding-left: .75rem; padding-right: .75rem; }
  .portal-grid-4, .portal-grid-2, .portal-about { grid-template-columns: 1fr; }
  .portal-hero { min-height: auto; }
  .portal-actions, .portal-page-actions { align-items: stretch; flex-direction: column; }
  .portal-button { width: 100%; }
  .portal-about { gap: 1rem; }
  .portal-notice { grid-template-columns: 1fr; }
  .portal-notice p, .portal-notice a { grid-column: 1; grid-row: auto; }
  .portal-link-card { min-height: 0; padding: 1.25rem; }
  .portal-link-card .portal-card-mark { height: 36px; width: 36px; }
  .portal-data-list > div { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .calvail-portal *, .calvail-portal *::before, .calvail-portal *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Portal articles use their own title and navigation, so Joomla's article chrome is removed. */
body.view-article:has(.calvail-portal) .container-breadcrumbs,
body.view-article:has(.calvail-portal) .container-component > .mod-breadcrumbs__wrapper,
body.view-article:has(.calvail-portal) .container-sidebar-left,
body.view-article:has(.calvail-portal) .container-sidebar-right,
body.view-article:has(.calvail-portal) .com-content-article > .page-header,
body.view-article:has(.calvail-portal) .com-content-article > .icons,
body.view-article:has(.calvail-portal) .com-content-article > .article-info,
body.view-article:has(.calvail-portal) .com-content-article > .pagenavigation { display: none; }

body.view-article:has(.calvail-portal) .site-grid { display: block; }
body.view-article:has(.calvail-portal) .container-component { max-width: none; padding: 0; }
body.view-article:has(.calvail-portal) .com-content-article__body { margin: 0; }

.container-header .navbar-brand img {
  content: url("https://calvail.com/assets/img/logo-calvail-horizontal.webp");
  height: auto;
  max-height: 46px;
  width: min(250px, 70vw);
}

.container-header .grid-child { padding-bottom: .8rem; padding-top: .8rem; }

/* Member news: category blog list and individual articles share the portal design. */
body.itemid-108.view-category .container-component > .mod-breadcrumbs__wrapper,
body.itemid-108.view-category .container-sidebar-left,
body.itemid-108.view-category .container-sidebar-right,
body.itemid-108.view-category .blog-item > .item-content > .page-header,
body.itemid-108.view-category .blog-item > .item-content > .icons,
body.itemid-108.view-category .blog-item > .item-content > .article-info,
body.itemid-108.view-category .com-content-category-blog > .btn,
body.view-article .portal-news-intro { display: none; }

body.itemid-108.view-category .site-grid { display: block; }
body.itemid-108.view-category .container-component { max-width: none; padding: 0; }
body.itemid-108.view-category .com-content-category-blog {
  margin: 0 auto;
  max-width: 1160px;
  padding: clamp(2.5rem,7vw,6rem) clamp(1rem,3vw,2rem);
}
body.itemid-108.view-category .com-content-category-blog > .page-header {
  border-bottom: 1px solid var(--calvail-border);
  margin-bottom: 2rem;
  padding-bottom: clamp(2rem,5vw,4rem);
}
body.itemid-108.view-category .com-content-category-blog > .page-header h1 {
  color: var(--calvail-ink);
  font-family: var(--calvail-serif);
  font-size: clamp(2.2rem,5vw,3.7rem);
}
body.itemid-108.view-category .blog-items { display: grid; gap: 1.2rem; }
body.itemid-108.view-category .blog-item {
  background: rgba(255,255,255,.88);
  border: 1px solid var(--calvail-border);
  border-radius: 22px;
  box-shadow: 0 8px 28px rgba(59,48,43,.04);
  padding: clamp(1.4rem,3vw,2rem);
}
.portal-news-intro h2 {
  color: var(--calvail-ink);
  font-family: var(--calvail-serif);
  font-size: clamp(1.3rem,3vw,1.8rem);
  margin-bottom: .65rem;
}
.portal-news-intro > p:last-child { color: var(--calvail-muted); margin-bottom: 0; }
body.itemid-108.view-category .readmore { margin: 1.25rem 0 0; }
body.itemid-108.view-category .readmore .btn {
  background: var(--calvail-accent);
  border: 0;
  border-radius: 999px;
  color: #fff;
  font-weight: 700;
  padding: .75rem 1.35rem;
}
body.itemid-108.view-category .readmore .btn:hover,
body.itemid-108.view-category .readmore .btn:focus { background: var(--calvail-accent-dark); color: #fff; }

/* Member contact form. */
body.itemid-107 .container-breadcrumbs,body.itemid-107 .container-sidebar-left,body.itemid-107 .container-sidebar-right,body.itemid-107 .com-contact>h2,body.itemid-107 .contact-miscinfo>h2,body.itemid-107 .contact-miscinfo dt{display:none}
body.itemid-107 .site-grid{display:block}body.itemid-107 .container-component{max-width:none;padding:0}body.itemid-107 .com-contact{display:flex;flex-direction:column;margin:auto;max-width:960px;padding:clamp(2.5rem,7vw,6rem) clamp(1rem,3vw,2rem)}
body.itemid-107 .contact-miscinfo{order:1}body.itemid-107 .contact-miscinfo dl,body.itemid-107 .contact-miscinfo dd{margin:0}body.itemid-107 .contact-form{background:#fff;border:1px solid var(--calvail-border);border-radius:24px;box-shadow:var(--calvail-shadow);margin-top:1.4rem;order:2;padding:clamp(1.4rem,4vw,2.4rem)}
body.itemid-107 .contact-form>h2{color:var(--calvail-ink);font-family:var(--calvail-serif)}body.itemid-107 .contact-form .form-control{border:1px solid var(--calvail-border);border-radius:12px;min-height:48px;padding:.8rem 1rem}body.itemid-107 .contact-form textarea{min-height:210px}
body.itemid-107 .contact-form .btn-primary{background:var(--calvail-accent);border:0;border-radius:999px;color:#fff;font-weight:700;padding:.85rem 1.6rem}body.itemid-107 .portal-copy-control{display:none}
.portal-thanks h1{font-size:clamp(2rem,5vw,3.5rem)}

.portal-member-multiline { white-space: pre-line; }
.portal-member-value-loaded { color: var(--calvail-ink); }
