/* Discrete social buttons: navy/grey, matching IFAuthCard. Official marks only. */

.IFSocialStack {
  display: grid;
  gap: 10px;
  margin: 0 0 22px;
}

.IFSocialButton {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  width: 100%;
  min-height: 45px;
  padding: 10px 19px;
  border: 1px solid #174f63;
  border-radius: 7px;
  color: #174f63;
  background: #f5f9fa;
  font-family: inherit;
  font-size: 14.5px;
  font-weight: 540;
  line-height: 1.2;
  text-decoration: none;
}

.IFSocialButton:hover {
  border-color: #10485f;
  color: #10485f;
  background: #eaf2f5;
}

.IFSocialMarkBox,
.IFSocialMark {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  box-sizing: border-box;
}

.IFSocialMarkBox .IFSocialMark {
  display: block;
  width: 18px;
  height: 18px;
  flex: none;
}

.IFSocialDivider {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
  margin: 4px 0 6px;
  color: #71858f;
  font-size: 13px;
  font-weight: 540;
  letter-spacing: 0.04em;
  text-transform: lowercase;
}

.IFSocialDivider::before,
.IFSocialDivider::after {
  content: "";
  border-top: 1px solid #cfdee5;
}

.IFSocialDivider span {
  padding: 0 2px;
}

:root {
  color-scheme: light;
  --if-ink: #173342;
  --if-text: #536b77;
  --if-muted: #71858f;
  --if-blue: #155b78;
  --if-blue-dark: #10485f;
  --if-line: #cfdee5;
  --if-soft: #f5f9fa;
  --if-warn: #fff8dc;
}

* {
  box-sizing: border-box;
}

body.IFAccountPage {
  margin: 0;
  color: var(--if-ink);
  background: #eaf2f5;
  font-family: "Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  font-weight: 390;
  line-height: 1.5;
}

a {
  color: var(--if-blue);
  text-underline-offset: 3px;
}

.IFAccountShell {
  width: calc(100% - 48px); max-width: 1320px; width: min(1320px, calc(100% - 48px));
  min-height: calc(100vh - 32px);
  margin: 16px auto;
  overflow: hidden;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(27, 66, 82, 0.09);
}

.IFAccountHeader {
  padding: 0 32px;
  border-bottom: 1px solid var(--if-line);
}

.IFAccountBrandRow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 112px;
}

.IFAccountBrand {
  display: block;
  width: 46vw; max-width: 390px; width: min(390px, 46vw);
}

.IFAccountBrand img {
  display: block;
  width: 100%;
  height: auto;
}

.IFAccountRelated {
  display: flex;
  align-items: center;
  gap: 26px;
  color: var(--if-muted);
  font-size: 13px;
}

.IFAccountRelated span {
  font-weight: 560;
}

.IFAccountRelated a {
  color: var(--if-ink);
  text-decoration: none;
}

.IFAccountNav {
  display: flex;
  align-items: stretch;
  min-height: 58px;
  border-top: 1px solid var(--if-line);
}

.IFAccountNav > a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 12px 18px;
  border: 0;
  border-radius: 7px;
  color: #294754;
  font-size: 14px;
  font-weight: 430;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
}

.IFAccountNav > a:hover,
.IFAccountNav > a[aria-current="page"] {
  background: #eef5f7;
  color: #114f68;
}

.IFAccountNav .IFLanguageLink {
  min-width: 48px;
  margin-left: auto;
  padding-right: 7px;
  padding-left: 7px;
  color: #4f6975;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  letter-spacing: 0.04em;
}

.IFAccountMain {
  width: calc(100% - 72px); max-width: 1120px; width: min(1120px, calc(100% - 72px));
  min-height: 580px;
  margin: 0 auto;
  padding: 64px 0 72px;
}

.IFAccountKicker {
  margin: 0 0 9px;
  color: #5b7885;
  font-size: 12px;
  font-weight: 570;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.IFAuthLayout {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(380px, 1fr);
  gap: 80px;
  align-items: start;
  max-width: 970px;
  margin: 0 auto;
}

.IFAuthIntro {
  padding-top: 19px;
}

.IFAuthIntro h1,
.IFSingleCard h1,
.IFAccountHero h1 {
  margin: 0;
  color: var(--if-ink);
  font-size: 37px; font-size: clamp(37px, 4vw, 50px);
  font-weight: 570;
  letter-spacing: -0.035em;
  line-height: 1.06;
}

.IFAuthIntro > p:last-child,
.IFSingleCard > p,
.IFAccountHero > div:first-child > p:last-child {
  max-width: 51ch;
  margin: 20px 0 0;
  color: var(--if-text);
  font-size: 17px;
  line-height: 1.6;
}

.IFAuthCard,
.IFSingleCard,
.IFAccountPanel {
  border: 1px solid var(--if-line);
  border-radius: 11px;
  background: #fff;
}

.IFAuthCard {
  padding: 31px;
  box-shadow: 0 8px 25px rgba(29, 65, 79, 0.05);
}

.IFSingleCard {
  max-width: 670px;
  margin: 0 auto;
  padding: 42px;
}

.IFFormField {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px;
  margin-bottom: 19px;
  color: #274553;
  font-size: 14px;
  font-weight: 540;
}

.IFFormField > span {
  color: var(--if-muted);
  font-size: 12px;
  font-weight: 390;
}

.IFFormField input,
.IFFormField select,
.IFFormField textarea {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 48px;
  padding: 10px 13px;
  border: 1px solid #aec3cc;
  border-radius: 7px;
  color: var(--if-ink);
  background: #fff;
  font: inherit;
}

.IFFormField input:focus,
.IFFormField select:focus,
.IFFormField textarea:focus {
  outline: 3px solid rgba(21, 91, 120, 0.13);
  border-color: #397f9a;
}

.IFFormField textarea {
  min-height: 150px;
  resize: vertical;
  line-height: 1.55;
}

.IFFormField select {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--if-blue) 50%), linear-gradient(135deg, var(--if-blue) 50%, transparent 50%);
  background-position: calc(100% - 19px) 52%, calc(100% - 14px) 52%;
  background-repeat: no-repeat;
  background-size: 5px 5px, 5px 5px;
  padding-right: 42px;
}

.IFContactBoundary {
  max-width: 560px;
  padding: 15px 17px;
  border: 1px solid #eadca5;
  border-radius: 12px;
  background: #fff9df;
  color: #413b25;
  font-size: 14px;
  line-height: 1.55;
}

.IFAdminView {
  display: grid;
  gap: 28px;
}

.IFAdminMetrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.IFAdminMetrics > div,
.IFAdminPanel {
  border: 1px solid var(--if-line);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 9px 24px rgba(25, 75, 91, 0.05);
}

.IFAdminMetrics > div {
  display: grid;
  gap: 7px;
  padding: 18px;
}

.IFAdminMetrics span {
  color: var(--if-muted);
  font-size: 13px;
}

.IFAdminMetrics strong {
  color: var(--if-text);
  font-size: 28px;
  font-weight: 560;
}

.IFAdminPanel {
  padding: 24px;
}

.IFAdminPanel h2,
.IFAdminPanel h3 {
  margin-top: 0;
}

.IFAdminPanel h3 {
  margin-top: 28px;
}

.IFAdminSearch {
  display: flex;
  align-items: end;
  gap: 12px;
  margin-bottom: 22px;
}

.IFAdminSearch label {
  display: grid;
  flex: 1;
  gap: 7px;
  color: var(--if-text);
  font-size: 13px;
}

.IFAdminSearch input {
  min-height: 46px;
  border: 1px solid #aec3cc;
  border-radius: 11px;
  padding: 10px 13px;
  font: inherit;
}

.IFContactMessage {
  padding: 18px;
  border-radius: 12px;
  background: #f5f8f9;
  color: var(--if-text);
  line-height: 1.65;
  overflow-wrap: anywhere;
}

.IFAdminStatusForm {
  max-width: 420px;
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid #e1eaee;
}

.IFAdminStatusNotice {
  padding: 12px 14px;
  border: 1px solid #b9d8c7;
  border-radius: 10px;
  background: #f0f8f3;
  color: #294f3a;
}

.IFCheckField {
  display: grid;
  grid-template-columns: 19px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  margin: 6px 0 22px;
  color: #526b76;
  font-size: 13.5px;
  font-weight: 390;
  line-height: 1.45;
}

.IFCheckField input {
  width: 17px;
  height: 17px;
  margin: 2px 0 0;
}

.IFCheckCompact {
  margin-top: 2px;
}

.IFTermsLink {
  margin: -14px 0 22px 29px;
  font-size: 13px;
}

.IFPrimaryButton,
.IFPrimaryLink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 45px;
  padding: 10px 19px;
  border: 1px solid var(--if-blue);
  border-radius: 7px;
  color: #fff;
  background: var(--if-blue);
  font-family: inherit;
  font-size: 14.5px;
  font-weight: 540;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}

.IFPrimaryButton:hover,
.IFPrimaryLink:hover {
  border-color: var(--if-blue-dark);
  background: var(--if-blue-dark);
}

.IFAuthCard .IFPrimaryButton {
  width: 100%;
}

.IFAuthSwitch,
.IFAuthLinks {
  margin: 23px 0 0;
  padding-top: 18px;
  border-top: 1px solid #e1eaee;
  color: var(--if-muted);
  font-size: 13.5px;
  text-align: center;
}

.IFAuthLinks {
  display: grid;
  gap: 10px;
}

.IFCompletion h2,
.IFAccountPanel h2 {
  margin: 0;
  color: var(--if-ink);
  font-size: 22px;
  font-weight: 550;
  line-height: 1.2;
}

.IFCompletion > p,
.IFAccountPanel > p {
  color: var(--if-text);
}

.IFPrivateNotice {
  margin-top: 20px;
  padding: 13px 15px;
  border: 1px solid #e5d492;
  border-radius: 7px;
  color: #4a4020 !important;
  background: var(--if-warn);
  font-size: 13px;
}

.IFFormMessage {
  max-width: 970px;
  margin: -30px auto 32px;
  padding: 12px 15px;
  border-radius: 7px;
  font-size: 14px;
}

.IFFormMessage p {
  margin: 0;
}

.IFFormMessageError {
  border: 1px solid #e8c9c2;
  color: #6b302a;
  background: #fff6f3;
}

.IFFormMessageInfo {
  border: 1px solid #c9dce4;
  color: #284d5d;
  background: #f3f8fa;
}

.IFTrap {
  position: absolute;
  left: -10000px;
}

.IFButtonRow {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 28px;
}

.IFSecondaryLink {
  color: var(--if-text);
}

.IFAccountHero {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
  padding-bottom: 35px;
  border-bottom: 1px solid var(--if-line);
}

.IFSignedIn {
  display: grid;
  gap: 3px;
  color: var(--if-muted);
  font-size: 12.5px;
  text-align: right;
}

.IFSignedIn strong {
  color: #385463;
  font-size: 14px;
  font-weight: 500;
}

.IFAccountGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 29px;
}

.IFAccountPanel {
  min-height: 210px;
  padding: 26px;
}

.IFSettingsCurrent {
  margin-top: 18px;
}

.IFSettingsBlock {
  margin-top: 25px;
  padding-top: 23px;
  border-top: 1px solid #e1eaee;
}

.IFSettingsBlock h3 {
  margin: 0;
  color: var(--if-ink);
  font-size: 18px;
  font-weight: 560;
}

.IFSettingsBlock > p {
  margin: 8px 0 19px;
  color: var(--if-text);
  font-size: 13.5px;
  line-height: 1.55;
}

.IFSettingsBlock .IFFormField {
  margin-bottom: 15px;
}

.IFSettingsBlock .IFPrimaryButton {
  width: 100%;
}

.IFStatusValue {
  margin-bottom: 0;
  color: #1e566d !important;
  font-size: 21px;
  font-weight: 520;
}

.IFSelectionLabel {
  margin: 22px 0 2px;
  color: var(--if-muted) !important;
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.IFSelectedPlan {
  margin: 0 0 16px;
  color: var(--if-ink) !important;
  font-size: 18px;
}

.IFBillingForm {
  margin: 18px 0 13px;
}

.IFPurchaseSummary {
  display: grid;
  gap: 7px;
  margin: 17px 0 18px;
  padding: 15px 16px;
  border: 1px solid #dce7eb;
  border-radius: 9px;
  background: #f7fafb;
}

.IFPurchaseSummary p {
  margin: 0;
  color: var(--if-text);
  font-size: 13px;
  line-height: 1.5;
}

.IFPurchaseSummary p:first-child {
  color: var(--if-ink);
  font-size: 15px;
}

.IFPurchaseSummary strong {
  font-size: 18px;
  font-weight: 560;
}

.IFCheckoutConsent {
  margin: 13px 0;
  padding: 12px 13px;
  border: 1px solid #dce7eb;
  border-radius: 8px;
  background: #fff;
  font-size: 12.5px;
}

.IFBillingForm .IFPrimaryButton {
  margin-top: 5px;
}

.IFTextLink {
  display: inline-block;
  margin-top: 8px;
}

.IFMembershipFacts {
  display: grid;
  gap: 9px;
  margin: 20px 0 0;
}

.IFMembershipFacts > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  padding-top: 9px;
  border-top: 1px solid #e1eaee;
}

.IFMembershipFacts dt {
  color: var(--if-muted);
}

.IFMembershipFacts dd {
  margin: 0;
  color: var(--if-ink);
}

.IFReceiptsPanel {
  grid-column: 1 / -1;
  min-height: 170px;
}

.IFEmptyState {
  margin: 18px 0 0;
  padding: 18px 0;
  border-top: 1px solid #e1eaee;
}

.IFTableWrap {
  overflow-x: auto;
  margin-top: 18px;
}

.IFTableWrap table {
  width: 100%;
  border-collapse: collapse;
  color: var(--if-text);
  font-size: 14px;
}

.IFTableWrap th,
.IFTableWrap td {
  padding: 12px 10px;
  border-top: 1px solid #e1eaee;
  text-align: left;
}

.IFTableWrap th {
  color: #385462;
  font-weight: 540;
}

.IFAccountLogout {
  margin: 25px 0 0;
  text-align: right;
}

.IFInvoiceDetail {
  margin: 28px 0;
}

.IFInvoiceDetail > div {
  display: grid;
  grid-template-columns: 145px 1fr;
  gap: 18px;
  padding: 12px 0;
  border-top: 1px solid #e1eaee;
}

.IFInvoiceDetail dt {
  color: var(--if-muted);
}

.IFInvoiceDetail dd {
  margin: 0;
  color: var(--if-ink);
}

.IFAccountFooter {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  margin: 0 32px;
  padding: 24px 0 29px;
  border-top: 1px solid var(--if-line);
  color: #687d87;
  font-size: 12.5px;
}

.IFAccountFooter p {
  margin: 0;
}

.IFFooterIdentity {
  color: #465f6b;
}

.IFFooterActions {
  display: flex;
  gap: 18px;
  justify-content: flex-end;
}

.IFFooterActions a {
  color: #536e7b;
  font-weight: 390;
  white-space: nowrap;
}

.IFFooterActions .IFFooterTerms {
  font-weight: 540;
}

.IFMembershipView {
  display: grid;
  gap: 34px;
}

.IFMembershipHero {
  max-width: 790px;
}

.IFMembershipHero h1 {
  max-width: 720px;
  margin: 4px 0 13px;
  font-size: 36px; font-size: clamp(36px, 4vw, 52px);
  font-weight: 520;
  line-height: 1.04;
  letter-spacing: -0.025em;
}

.IFMembershipHero > p:last-child {
  max-width: 720px;
  margin: 0;
  color: var(--if-text);
  font-size: 18px;
}

.IFBillingSelector {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 18px 20px;
  border: 1px solid var(--if-line);
  border-radius: 12px;
  background: var(--if-soft);
}

.IFBillingSelector p {
  margin: 0;
  color: var(--if-text);
}

.IFBillingSelector .IFBillingLabel {
  margin-bottom: 2px;
  color: var(--if-ink);
  font-weight: 540;
}

.IFBillingOptions {
  display: grid;
  grid-template-columns: repeat(2, minmax(118px, 1fr));
  gap: 4px;
  flex: 0 0 294px;
  padding: 4px;
  border: 1px solid #c6d7de;
  border-radius: 10px;
  background: #fff;
}

.IFBillingOptions button {
  min-height: 42px;
  padding: 8px 12px;
  border: 0;
  border-radius: 7px;
  color: var(--if-text);
  background: transparent;
  font: inherit;
  font-weight: 470;
  cursor: pointer;
}

.IFBillingOptions button[aria-pressed="true"] {
  color: #fff;
  background: var(--if-blue);
}

.IFBillingOptions button span {
  display: block;
  font-size: 12px;
  font-weight: 440;
}

.IFMembershipPlans {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}

.IFMembershipDiscounts {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(330px, 1fr);
  gap: 30px;
  align-items: center;
  padding: 24px 26px;
  border: 1px solid var(--if-line);
  border-radius: 14px;
  background: var(--if-soft);
}

.IFMembershipDiscounts h2 {
  margin: 3px 0 8px;
  font-size: 26px;
  font-weight: 520;
}

.IFMembershipDiscounts p {
  margin: 0;
  color: var(--if-text);
}

.IFMembershipDiscounts ol {
  display: grid;
  grid-template-columns: repeat(5, minmax(54px, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.IFMembershipDiscounts li {
  display: grid;
  gap: 3px;
  place-items: center;
  min-height: 66px;
  padding: 8px 4px;
  border: 1px solid #bfd2da;
  border-radius: 9px;
  background: #fff;
}

.IFMembershipDiscounts li strong {
  color: var(--if-muted);
  font-size: 13px;
}

.IFMembershipDiscounts li span {
  color: var(--if-ink);
  font-size: 20px;
  font-weight: 600;
}

.IFPlanCard {
  display: flex;
  flex-direction: column;
  min-height: 520px;
  padding: 27px 25px 24px;
  border: 1px solid var(--if-line);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(29, 66, 81, 0.05);
}

.IFPlanCardFeatured {
  border-color: #8fb7c7;
  box-shadow: 0 14px 34px rgba(21, 91, 120, 0.11);
}

.IFPlanCard header {
  min-height: 118px;
}

.IFPlanCard header p {
  margin: 5px 0 0;
  color: var(--if-text);
}

.IFPlanCard .IFPlanLabel {
  margin: 0 0 7px;
  color: var(--if-blue);
  font-size: 13px;
  font-weight: 520;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

.IFPlanCard h2 {
  margin: 0;
  font-size: 31px;
  font-weight: 520;
  line-height: 1.1;
}

.IFPlanPrice {
  min-height: 86px;
  margin: 18px 0 20px;
  padding: 15px 0;
  border-top: 1px solid var(--if-line);
  border-bottom: 1px solid var(--if-line);
}

.IFPlanPrice > span,
.IFPlanPrice [data-price-period] > span {
  display: block;
  color: var(--if-ink);
  font-size: 27px;
  font-weight: 510;
  line-height: 1.1;
}

.IFPlanPrice small {
  display: block;
  margin-top: 5px;
  color: var(--if-muted);
  font-size: 13px;
}

[data-price-period="monthly"] {
  display: none;
}

body[data-billing="monthly"] [data-price-period="monthly"] {
  display: block;
}

body[data-billing="monthly"] [data-price-period="annual"] {
  display: none;
}

.IFPlanCard ul {
  display: grid;
  gap: 11px;
  margin: 0 0 28px;
  padding: 0;
  color: var(--if-text);
  list-style: none;
}

.IFPlanCard li {
  position: relative;
  padding-left: 22px;
}

.IFPlanCard li::before {
  position: absolute;
  left: 0;
  color: var(--if-blue);
  content: "✓";
}

.IFPlanAction {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  margin-top: auto;
  padding: 11px 18px;
  border: 1px solid var(--if-blue);
  border-radius: 8px;
  color: #fff;
  background: var(--if-blue);
  font-weight: 510;
  text-decoration: none;
}

.IFPlanAction:hover {
  background: var(--if-blue-dark);
}

.IFPlanActionSecondary {
  color: var(--if-blue);
  background: #fff;
}

.IFPlanActionSecondary:hover {
  color: #fff;
}

.IFPlanActionNote {
  min-height: 39px;
  margin: 10px 0 0;
  color: var(--if-muted);
  font-size: 13px;
  text-align: center;
}

.IFMembershipBoundary {
  display: grid;
  grid-template-columns: minmax(230px, 0.7fr) minmax(0, 1.3fr);
  gap: 40px;
  padding: 27px 30px;
  border: 1px solid #eadca6;
  border-radius: 13px;
  background: var(--if-warn);
}

.IFMembershipBoundary h2 {
  margin: 4px 0 0;
  font-size: 24px;
  font-weight: 510;
  line-height: 1.18;
}

.IFMembershipBoundary p {
  margin: 0 0 10px;
  color: #514d36;
}

.IFMembershipBoundary p:last-child {
  margin-bottom: 0;
}

.IFLegalView {
  max-width: 900px;
  margin: 0 auto;
}

.IFLegalHeader {
  margin-bottom: 38px;
  padding-bottom: 30px;
  border-bottom: 1px solid var(--if-line);
}

.IFLegalHeader h1 {
  max-width: 760px;
  margin: 4px 0 12px;
  color: var(--if-ink);
  font-size: 36px; font-size: clamp(36px, 4vw, 50px);
  font-weight: 520;
  letter-spacing: -0.028em;
  line-height: 1.06;
}

.IFLegalRevision {
  margin: 0;
  color: var(--if-muted);
  font-size: 14px;
}

.IFLegalSection {
  display: grid;
  grid-template-columns: minmax(180px, 0.32fr) minmax(0, 0.68fr);
  gap: 34px;
  padding: 27px 0;
  border-bottom: 1px solid #e1eaee;
}

.IFLegalSection h2 {
  margin: 0;
  color: var(--if-ink);
  font-size: 20px;
  font-weight: 540;
  line-height: 1.25;
}

.IFLegalCopy {
  color: var(--if-text);
}

.IFLegalCopy p {
  margin: 0 0 15px;
}

.IFLegalCopy p:last-child {
  margin-bottom: 0;
}

.IFLegalCopy strong {
  color: #294957;
  font-weight: 550;
}

.IFLegalContact {
  color: var(--if-text);
  font-style: normal;
}

body.IFAccountPage--remedyfinder {
  --if-blue: #155f70;
  --if-blue-dark: #104b59;
}

body.IFAccountPage--webhomeopath {
  --if-blue: #225f73;
  --if-blue-dark: #194b5b;
}

body.IFAccountPage--remedyfinder .IFAccountBrand,
body.IFAccountPage--webhomeopath .IFAccountBrand {
  width: 44vw; max-width: 350px; width: min(350px, 44vw);
}

@media (max-width: 980px) {
  .IFAccountRelated {
    display: none;
  }

  .IFAccountNav {
    overflow-x: auto;
  }

  .IFAccountNav > a {
    flex: 0 0 auto;
  }

  .IFAuthLayout {
    grid-template-columns: 1fr;
    gap: 35px;
    max-width: 620px;
  }

  .IFAccountFooter {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .IFFooterActions {
    justify-content: flex-start;
  }

  .IFMembershipPlans {
    grid-template-columns: 1fr;
    max-width: 650px;
    margin: 0 auto;
  }

  .IFPlanCard,
  .IFPlanCard header,
  .IFPlanActionNote {
    min-height: 0;
  }

  .IFAdminMetrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .IFAccountShell {
    width: 100%;
    min-height: 100vh;
    margin: 0;
    border-radius: 0;
  }

  .IFAccountHeader {
    padding: 0 18px;
  }

  .IFMembershipDiscounts {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 20px 18px;
  }

  .IFMembershipDiscounts ol {
    gap: 5px;
  }

  .IFMembershipDiscounts li {
    min-height: 58px;
  }

  .IFAccountBrandRow {
    min-height: 86px;
  }

  .IFAccountBrand {
    width: 82vw; max-width: 330px; width: min(330px, 82vw);
  }

  .IFAccountNav {
    margin: 0 -18px;
    padding: 0 12px;
  }

  .IFAccountNav > a {
    min-height: 50px;
    padding: 10px 11px;
    font-size: 13px;
  }

  .IFAccountMain {
    width: calc(100% - 36px);
    min-height: 520px;
    padding: 42px 0 52px;
  }

  .IFAuthIntro {
    padding-top: 0;
  }

  .IFAuthIntro h1,
  .IFSingleCard h1,
  .IFAccountHero h1 {
    font-size: 36px;
  }

  .IFAuthCard,
  .IFSingleCard {
    padding: 23px 20px;
  }

  .IFAccountHero {
    align-items: start;
    flex-direction: column;
  }

  .IFSignedIn {
    text-align: left;
  }

  .IFAccountGrid {
    grid-template-columns: 1fr;
  }

  .IFReceiptsPanel {
    grid-column: auto;
  }

  .IFAccountPanel {
    min-height: 0;
    padding: 22px 20px;
  }

  .IFAccountFooter {
    margin: 0 18px;
    padding: 22px 0 27px;
  }

  .IFFooterActions {
    flex-wrap: wrap;
  }

  .IFMembershipView {
    gap: 25px;
  }

  .IFMembershipHero h1 {
    font-size: 36px;
  }

  .IFBillingSelector,
  .IFMembershipBoundary {
    grid-template-columns: 1fr;
  }

  .IFBillingSelector {
    display: grid;
    gap: 14px;
  }

  .IFBillingOptions {
    width: 100%;
    flex-basis: auto;
  }

  .IFPlanCard {
    padding: 24px 20px 21px;
  }

  .IFMembershipBoundary {
    gap: 14px;
    padding: 23px 20px;
  }

  .IFLegalHeader {
    margin-bottom: 20px;
    padding-bottom: 22px;
  }

  .IFLegalHeader h1 {
    font-size: 36px;
  }

  .IFLegalSection {
    grid-template-columns: 1fr;
    gap: 11px;
    padding: 23px 0;
  }

  .IFAdminMetrics {
    grid-template-columns: 1fr;
  }

  .IFAdminPanel {
    padding: 20px;
  }

  .IFAdminSearch {
    align-items: stretch;
    flex-direction: column;
  }
}

/* R31-K1: ordinary links and existing account colors; preserve panel order. */
.IFAccountQuickLinks { margin: 0 0 1rem; }
.IFAccountQuickLinks a { display: inline-block; margin: 0 1rem .5rem 0; }
.IFAccountQuickLinks a:focus { outline: 2px solid currentColor; outline-offset: 3px; }
.IFCancellationStatus { font-weight: 600; }
.IFSignedIn strong, .IFMembershipFacts dd { overflow-wrap: break-word; }
.IFAccountPanel { min-width: 0; }
.IFMembershipFacts > div { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
@media(max-width:520px) { .IFMembershipFacts > div { grid-template-columns: minmax(0, 1fr); gap: 3px; } }
.IFSocialButton { gap: 0; }
.IFSocialButton > * + * { margin-left: 10px; }

@supports (width: min(1px, 2px)) {
  .IFAccountShell, .IFAccountMain, .IFAccountBrand,
  body.IFAccountPage--remedyfinder .IFAccountBrand,
  body.IFAccountPage--webhomeopath .IFAccountBrand { max-width: none; }
}

/* R31-K2: account-only layout; ordinary links/forms work without JavaScript. */
.IFSkipLink { position: absolute; left: 12px; top: -100px; padding: 12px; background: #fff; color: #173342; z-index: 100; }
.IFSkipLink:focus { top: 12px; }
.IFAccountPage a:focus, .IFAccountPage button:focus, .IFAccountPage summary:focus { outline: 2px solid #155b78; outline-offset: 3px; }
.IFAccessTabs, .IFAccessProviders { display: flex; margin: 0 -5px; }
.IFAccessTabs > a, .IFAccessProviders > a { display: flex; align-items: center; justify-content: center; width: calc(50% - 10px); min-width: 0; min-height: 48px; margin: 0 5px; padding: 10px 8px; border: 1px solid #adc5d0; border-radius: 5px; text-align: center; text-decoration: none; color: #173342; background: #fff; font-size: 16px; font-weight: 600; }
.IFAccessTabs > a[aria-current="page"] { background: #eaf2f5; border-color: #155b78; }
.IFAccessProviderLabel { margin: 25px 0 10px; }
.IFAccessDivider { margin: 26px 0 22px; text-align: center; color: #536b77; border-top: 1px solid #cfdee5; line-height: 1.5; }
.IFAccessDivider span { position: relative; top: -.8em; background: #fff; padding: 0 10px; }
.IFSocialButton { gap: 0; }
.IFSocialButton .IFSocialMark { display: block; width: 20px; height: 20px; flex: 0 0 20px; }
.IFSocialButton > span { margin-left: 10px; }
.IFPasswordHeading { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; margin: 0 0 7px; font-weight: 600; }
.IFPasswordHeading a { font-size: 14px; margin: 0 0 3px 10px; }
.IFStandaloneInput { display: block; width: 100%; min-width: 0; height: 46px; margin: 0 0 18px; padding: 10px 12px; border: 1px solid #adc5d0; border-radius: 5px; background: #fff; color: #173342; font: inherit; }
.IFAccessHelp { margin: 25px 0 0; padding: 22px 0 0; border-top: 1px solid #cfdee5; }
.IFAccessHelp summary, .IFSettingsBlock summary { cursor: pointer; font-weight: 600; }
.IFAccessHelp p { margin: 12px 0; }
.IFSettingsBlock { margin-top: 20px; padding-top: 18px; border-top: 1px solid #cfdee5; }
.IFPermanentFree, .IFNextStep { padding: 16px 18px; border: 1px solid #cfdee5; border-radius: 5px; background: #f5f9fa; }
.IFAccountNav { flex-wrap: wrap; }
.IFHoneypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.IFLegalView { max-width: 100%; overflow-wrap: break-word; }
@media(max-width:520px) {
 .IFAccessTabs > a, .IFAccessProviders > a { font-size: 15px; padding: 10px 5px; }
 .IFAuthCard { min-width: 0; }
 .IFPasswordHeading a { margin-left: 0; }
}

.IFAccountSettingsPanel { grid-column: 1 / -1; }

/* R31-K2b — one account type/spacing scale, adapted to the classic Webhomeopath palette. */
body.IFAccountPage--webhomeopath .IFAccountMain h1 {
  font-size: 36px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.02em;
  overflow-wrap: break-word;
  word-wrap: break-word;
  hyphens: auto;
}
body.IFAccountPage--webhomeopath .IFAuthIntro { padding-top: 0; min-width: 0; }
body.IFAccountPage--webhomeopath .IFAuthIntro > p:not(.IFAccountKicker) {
  max-width: 38ch;
  margin: 18px 0 0;
  color: #536b77;
  font-size: 17px;
  line-height: 1.6;
}
body.IFAccountPage--webhomeopath .IFFormField input,
body.IFAccountPage--webhomeopath .IFFormField select,
body.IFAccountPage--webhomeopath .IFFormField textarea,
body.IFAccountPage--webhomeopath .IFStandaloneInput { font-size: 16px; }
body.IFAccountPage--webhomeopath .IFPrimaryButton,
body.IFAccountPage--webhomeopath .IFPrimaryLink { font-size: 16px; min-height: 48px; line-height: 1.25; }
body.IFAccountPage--webhomeopath .IFAuthCard { padding: 28px; border-radius: 7px; box-shadow: none; }
body.IFAccountPage--webhomeopath .IFFormField { margin-bottom: 18px; }
body.IFAccountPage--webhomeopath .IFStandaloneInput { min-height: 48px; }
body.IFAccountPage--webhomeopath .IFAccessProviderLabel { margin: 24px 0 10px; }
body.IFAccountPage--webhomeopath .IFAccessDivider {
  display: flex;
  align-items: center;
  margin: 24px 0;
  border: 0;
  font-size: 16px;
  line-height: 1.5;
}
body.IFAccountPage--webhomeopath .IFAccessDivider::before,
body.IFAccountPage--webhomeopath .IFAccessDivider::after { content: ""; flex: 1 1 0; border-top: 1px solid #cfdee5; }
body.IFAccountPage--webhomeopath .IFAccessDivider::before { margin-right: 10px; }
body.IFAccountPage--webhomeopath .IFAccessDivider::after { margin-left: 10px; }
body.IFAccountPage--webhomeopath .IFAccessDivider span { position: static; flex: 0 1 auto; padding: 0; }
body.IFAccountPage--webhomeopath .IFAccessHelp { margin-top: 24px; padding-top: 18px; }
body.IFAccountPage--webhomeopath .IFAccountMain p,
body.IFAccountPage--webhomeopath .IFAccountMain li,
body.IFAccountPage--webhomeopath .IFAccountMain dd { overflow-wrap: break-word; word-wrap: break-word; }
body.IFAccountPage--webhomeopath .IFAccountMain a { hyphens: none; }
body.IFAccountPage--webhomeopath .WHAccountBook { display: block; width: 100%; max-width: 374px; height: auto; margin: 28px 0 0; }
@media (min-width: 1280px) {
  body.IFAccountPage--webhomeopath .WHAccountEntry .IFAuthIntro { margin-left: -32px; margin-right: 32px; }
}
@media (max-width: 980px) {
  body.IFAccountPage--webhomeopath .IFAuthLayout { gap: 24px; }
  body.IFAccountPage--webhomeopath .WHAccountBook { display: none; }
}
@media (max-width: 760px) {
  body.IFAccountPage--webhomeopath .IFAccountMain h1 { font-size: 32px; }
}
@media (max-width: 680px) {
  body.IFAccountPage--webhomeopath .IFAccountMain { padding-top: 32px; }
  body.IFAccountPage--webhomeopath .IFAuthCard { padding: 22px 20px; }
}
@media (max-width: 380px) {
  body.IFAccountPage--webhomeopath .IFAuthCard { padding: 20px 18px; }
}

/* R31-K2c: contain grid children and long text in their own account columns. */
body.IFAccountPage--webhomeopath .IFMembershipView { grid-template-columns: minmax(0, 1fr); }
body.IFAccountPage--webhomeopath .IFMembershipView > * { min-width: 0; }
body.IFAccountPage--webhomeopath .IFAccountMain h2,
body.IFAccountPage--webhomeopath .IFAccountMain h3 {
  overflow-wrap: break-word;
  word-wrap: break-word;
  hyphens: auto;
}
@media (max-width: 760px) {
  body.IFAccountPage--webhomeopath .IFFormField > span {
    grid-column: 1 / -1;
    min-width: 0;
    overflow-wrap: break-word;
    word-wrap: break-word;
  }
}
@media (max-width: 680px) {
  body.IFAccountPage--webhomeopath .IFBillingOptions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.IFAccountPage--webhomeopath .IFBillingOptions button {
    min-width: 0;
    overflow-wrap: break-word;
    word-wrap: break-word;
  }
}

/* R31-K10k16: disciplined type scale, action alignment and package selection. */
body.IFAccountPage--webhomeopath {
  --wh-type-small: 13px;
  --wh-type-body: 16px;
  --wh-type-heading: 20px;
  --wh-type-title: clamp(32px, 4vw, 44px);
  font-family: "Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: var(--wh-type-body);
  font-weight: 400;
}
body.IFAccountPage--webhomeopath button,
body.IFAccountPage--webhomeopath input,
body.IFAccountPage--webhomeopath select,
body.IFAccountPage--webhomeopath textarea { font-family: inherit; }
body.IFAccountPage--webhomeopath h1,
body.IFAccountPage--webhomeopath .IFMembershipHero h1,
body.IFAccountPage--webhomeopath .IFLegalHeader h1,
body.IFAccountPage--webhomeopath .IFAuthIntro h1,
body.IFAccountPage--webhomeopath .IFSingleCard h1,
body.IFAccountPage--webhomeopath .IFAccountHero h1 { font-size: var(--wh-type-title); font-weight: 520; }
body.IFAccountPage--webhomeopath h2,
body.IFAccountPage--webhomeopath .IFAccountPanel h2,
body.IFAccountPage--webhomeopath .IFCompletion h2,
body.IFAccountPage--webhomeopath .IFLegalSection h2 { font-size: var(--wh-type-heading); font-weight: 520; }
body.IFAccountPage--webhomeopath h3,
body.IFAccountPage--webhomeopath strong,
body.IFAccountPage--webhomeopath summary,
body.IFAccountPage--webhomeopath .IFCancellationStatus { font-weight: 520; }
body.IFAccountPage--webhomeopath .IFAccountKicker,
body.IFAccountPage--webhomeopath small,
body.IFAccountPage--webhomeopath .IFPlanLabel,
body.IFAccountPage--webhomeopath .IFSelectionLabel,
body.IFAccountPage--webhomeopath .IFSignedIn,
body.IFAccountPage--webhomeopath .IFAccountFooter { font-size: var(--wh-type-small); }
body.IFAccountPage--webhomeopath .IFFormMessage,
body.IFAccountPage--webhomeopath .IFPrivateNotice,
body.IFAccountPage--webhomeopath .IFAccountPanel,
body.IFAccountPage--webhomeopath .IFLegalCopy { font-size: var(--wh-type-body); font-weight: 400; }
body.IFAccountPage--webhomeopath .IFPrimaryButton,
body.IFAccountPage--webhomeopath .IFPrimaryLink,
body.IFAccountPage--webhomeopath .IFPlanAction,
body.IFAccountPage--webhomeopath .IFSiteChoice { font-size: var(--wh-type-body); font-weight: 500; }
body.IFAccountPage--webhomeopath a,
body.IFAccountPage--webhomeopath a:hover,
body.IFAccountPage--webhomeopath a:visited,
body.IFAccountPage--webhomeopath a:active,
body.IFAccountPage--webhomeopath a:focus { text-decoration: none; border-bottom-color: transparent; text-shadow: none; }
body.IFAccountPage--webhomeopath a:focus-visible,
body.IFAccountPage--webhomeopath button:focus-visible { outline: 3px solid #2b7895; outline-offset: 3px; }
.IFButtonRow,
.IFMembershipActionRow { display: flex; align-items: center; justify-content: flex-end; gap: 14px; }
.IFBillingForm { display: flex; flex-direction: column; align-items: flex-end; }
.IFBillingForm .IFCheckField,
.IFBillingForm .IFPurchaseSummary { width: 100%; }
.IFSettingsBlock .IFPrimaryButton { width: auto; margin-left: auto; }
.IFMembershipCancel { margin: 0; text-align: right; }

.IFMembershipHero--selection {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(260px, .65fr);
  gap: 30px;
  align-items: end;
  max-width: none;
}
.IFSelectionStatus {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 86px;
  padding: 17px 20px;
  border: 1px solid var(--if-line);
  border-radius: 11px;
  background: var(--if-soft);
}
.IFSelectionStatusMark {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  border-radius: 50%;
  color: #fff;
  background: var(--if-blue);
  font-size: var(--wh-type-heading);
}
.IFSelectionStatus strong,
.IFSelectionStatus small { display: block; }
.IFSelectionStatus small { margin-top: 2px; color: var(--if-muted); }
.IFFreeMembership {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: center;
  padding: 20px 24px;
  border: 1px solid #b9d2dc;
  border-radius: 12px;
  background: #f5fafc;
}
.IFFreeMembership h2 { margin: 3px 0 5px; }
.IFFreeMembership p { margin: 0; color: var(--if-text); }
.IFFreeMembership .IFPlanAction { margin-top: 0; white-space: nowrap; }
.IFSiteSelection {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.IFSiteCard {
  display: flex;
  flex-direction: column;
  min-height: 286px;
  padding: 22px 21px 18px;
  border: 1px solid var(--if-line);
  border-radius: 11px;
  background: #fff;
}
.IFSiteCard.is-selected { border-color: #74b5cd; background: #f0f8fb; }
.IFSiteCard h2 { margin: 0 0 2px; }
.IFSiteCard p { margin: 10px 0 0; color: var(--if-text); }
.IFSiteCard .IFSiteSubtitle { margin-top: 0; color: var(--if-blue); font-weight: 500; }
.IFSiteChoice {
  width: 100%;
  min-height: 45px;
  margin-top: auto;
  padding: 9px 15px;
  border: 1px solid var(--if-blue);
  border-radius: 7px;
  color: var(--if-blue);
  background: #fff;
  cursor: pointer;
}
.IFSiteChoice[aria-pressed="true"] { color: #fff; background: var(--if-blue); }
.IFPackagePrices { display: grid; gap: 14px; }
.IFPackagePrices header h2 { margin: 3px 0 2px; }
.IFPackagePrices header p { margin: 0; color: var(--if-text); }
.IFPackagePrices ol {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.IFPackagePrices li {
  display: grid;
  place-items: center;
  min-height: 112px;
  padding: 13px 8px;
  border: 1px solid var(--if-line);
  border-radius: 9px;
  background: #fff;
  text-align: center;
}
.IFPackagePrices li.is-current { border-color: #74b5cd; background: #f0f8fb; }
.IFPackagePrices li > span { color: var(--if-muted); font-size: var(--wh-type-small); text-transform: uppercase; letter-spacing: .05em; }
.IFPackagePrices li strong { margin-top: 4px; color: var(--if-ink); font-size: var(--wh-type-heading); }
.IFPackagePrices li small { color: var(--if-muted); }
.IFPackageTotal {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin: 0;
  padding: 15px 18px;
  border: 1px solid var(--if-line);
  border-radius: 9px;
  background: var(--if-soft);
}
.IFMembershipInformation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.IFMembershipInformation article { padding: 19px 21px; border: 1px solid var(--if-line); border-radius: 10px; background: var(--if-soft); }
.IFMembershipInformation h2 { margin: 0 0 4px; }
.IFMembershipInformation p { margin: 0; color: var(--if-text); }
.IFMembershipActionRow .IFPlanAction { margin-top: 0; }
[data-membership-continue][aria-disabled="true"] { opacity: .5; cursor: not-allowed; }

@media (max-width: 900px) {
  .IFMembershipHero--selection { grid-template-columns: 1fr; align-items: start; }
  .IFSiteSelection { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .IFPackagePrices ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .IFFreeMembership,
  .IFSiteSelection,
  .IFMembershipInformation { grid-template-columns: 1fr; }
  .IFFreeMembership .IFPlanAction { justify-self: end; }
  .IFSiteCard { min-height: 0; }
  .IFSiteCard .IFSiteChoice { margin-top: 18px; }
  .IFPackagePrices ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .IFPackageTotal { align-items: flex-end; flex-direction: column; }
  .IFMembershipActionRow { width: 100%; }
}

/* R31-K10k24: measured line boxes and restrained emphasis. */
body.IFAccountPage--webhomeopath .IFAccountKicker { font-weight: 500; }
body.IFAccountPage--webhomeopath h1,
body.IFAccountPage--webhomeopath h2 { line-height: 1.2; hyphens: none; overflow-wrap: normal; }
body.IFAccountPage--webhomeopath .IFPlanAction { gap: 8px; }

/* R31-K10k24: headings and action labels wrap only at semantic word boundaries. */
body.IFAccountPage--webhomeopath :is(h1,h2,h3,.IFAccountKicker,.IFPlanAction,.IFSiteChoice,button) { hyphens: none; overflow-wrap: normal; word-break: normal; }

/* R31-K10k24: override older account overflow rules at equal-or-greater specificity. */
body.IFAccountPage--webhomeopath .IFAccountMain h1,
body.IFAccountPage--webhomeopath .IFAccountMain h2,
body.IFAccountPage--webhomeopath .IFAccountMain h3,
body.IFAccountPage--webhomeopath .IFAccountMain .IFAccountKicker,
body.IFAccountPage--webhomeopath .IFAccountMain .IFPlanAction,
body.IFAccountPage--webhomeopath .IFAccountMain .IFSiteChoice,
body.IFAccountPage--webhomeopath .IFAccountMain button { hyphens: none; overflow-wrap: normal; word-break: normal; }

/* R31-K10k24: one account-shell typeface and restrained shared scale. */
body.IFAccountPage--webhomeopath .IFAccountRelated,
body.IFAccountPage--webhomeopath .IFAccountNav,
body.IFAccountPage--webhomeopath .IFAccountNav .IFLanguageLink,
body.IFAccountPage--webhomeopath .wh-footer { font-family: "Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body.IFAccountPage--webhomeopath .IFAccountRelated,
body.IFAccountPage--webhomeopath .IFAccountNav > a { font-size: var(--wh-type-small); font-weight: 400; }
body.IFAccountPage--webhomeopath .IFAccountRelated span { font-weight: 500; }
body.IFAccountPage--webhomeopath .IFAccountNav .IFLanguageLink { font-size: var(--wh-type-small); font-weight: 400; }

/* R31-K10k27: unify account forms, helper text and messages with the shared scale. */
body.IFAccountPage--webhomeopath .IFAuthIntro > p:not(.IFAccountKicker) { font-size: var(--wh-type-body); font-weight: 400; }
body.IFAccountPage--webhomeopath .IFAccessTabs > a,
body.IFAccountPage--webhomeopath .IFAccessProviders > a,
body.IFAccountPage--webhomeopath .IFPasswordHeading,
body.IFAccountPage--webhomeopath .IFAccessHelp summary,
body.IFAccountPage--webhomeopath .IFSettingsBlock summary,
body.IFAccountPage--webhomeopath .IFCancellationStatus { font-weight: 500; }
body.IFAccountPage--webhomeopath .IFPasswordHeading a,
body.IFAccountPage--webhomeopath .IFCheckField,
body.IFAccountPage--webhomeopath .IFCheckoutConsent { font-size: var(--wh-type-small); }
body.IFAccountPage--webhomeopath .IFCheckField,
body.IFAccountPage--webhomeopath .IFCheckoutConsent { font-weight: 400; }

/* R31-K10k28: final account labels, helper text and settings roles. */
body.IFAccountPage--webhomeopath .IFFormField { font-size: var(--wh-type-body); font-weight: 500; }
body.IFAccountPage--webhomeopath .IFFormField > span,
body.IFAccountPage--webhomeopath .IFAuthSwitch,
body.IFAccountPage--webhomeopath .IFAuthLinks,
body.IFAccountPage--webhomeopath .IFSignedIn,
body.IFAccountPage--webhomeopath .IFAccountFooter,
body.IFAccountPage--webhomeopath .IFBillingOptions button span { font-size: var(--wh-type-small); font-weight: 400; }
body.IFAccountPage--webhomeopath .IFSignedIn strong { font-size: var(--wh-type-body); font-weight: 500; }
body.IFAccountPage--webhomeopath .IFSettingsBlock h3 { font-size: var(--wh-type-heading); font-weight: 520; }
body.IFAccountPage--webhomeopath .IFSettingsBlock > p,
body.IFAccountPage--webhomeopath .IFSelectedPlan { font-size: var(--wh-type-body); font-weight: 400; }
body.IFAccountPage--webhomeopath .IFStatusValue,
body.IFAccountPage--webhomeopath .IFPurchaseSummary strong { font-size: var(--wh-type-heading); font-weight: 520; }
body.IFAccountPage--webhomeopath .IFPurchaseSummary p:first-child { font-size: var(--wh-type-body); }


/* R31-K10k37: one action grammar and no navigation underline substitute. */
body.IFAccountPage--webhomeopath .IFAccountNav > a {
  border: 0;
  border-radius: 7px;
}
body.IFAccountPage--webhomeopath .IFAccountNav > a:hover,
body.IFAccountPage--webhomeopath .IFAccountNav > a[aria-current="page"] {
  border: 0;
  color: #114f68;
  background: #eef5f7;
}
body.IFAccountPage--webhomeopath .IFDeletionAction {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  max-width: 100%;
  min-height: 48px;
  margin-left: auto;
  padding: 10px 19px;
  border: 1px solid var(--if-blue);
  border-radius: 7px;
  color: var(--if-blue);
  background: #fff;
  font-family: inherit;
  font-size: var(--wh-type-body);
  font-weight: 500;
  line-height: 1.25;
  text-align: center;
}
body.IFAccountPage--webhomeopath .IFDeletionAction:hover {
  color: #fff;
  background: var(--if-blue-dark);
}
body.IFAccountPage--webhomeopath .IFAccountPanel > .IFPrimaryLink {
  display: flex;
  width: max-content;
  max-width: 100%;
  margin-left: auto;
}
body.IFAccountPage--webhomeopath .IFButtonRow > .IFSecondaryLink { order: 1; }
body.IFAccountPage--webhomeopath .IFButtonRow > form { order: 2; }

/* R31-K10k53: account and membership discipline shared with the reference site. */
body.IFAccountPage--webhomeopath { min-height: 100vh; }
body.IFAccountPage--webhomeopath .IFAccountShell {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 32px);
}
body.IFAccountPage--webhomeopath .IFAccountMain {
  flex: 1 0 auto;
  min-height: 0;
}
body.IFAccountPage--webhomeopath .IFAccountFooter { margin-top: auto; }

body.IFAccountPage--webhomeopath .IFAccessTabs,
body.IFAccountPage--webhomeopath .IFAccessProviders {
  overflow: visible;
  padding: 1px 0 3px;
}
body.IFAccountPage--webhomeopath .IFAccessTabs > a,
body.IFAccountPage--webhomeopath .IFAccessProviders > a {
  box-sizing: border-box;
  height: auto;
  min-height: 48px;
  padding-block: 11px;
  border-radius: 7px;
  line-height: 1.25;
  overflow: visible;
}

body.IFAccountPage--webhomeopath .IFAccountUserMenu {
  position: relative;
  z-index: 20;
  align-self: stretch;
  margin-left: auto;
}
body.IFAccountPage--webhomeopath .IFAccountUserMenu summary {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 100%;
  max-width: 250px;
  padding: 10px 12px;
  color: #294754;
  cursor: pointer;
  list-style: none;
  font-size: var(--wh-type-small);
  font-weight: 400;
}
body.IFAccountPage--webhomeopath .IFAccountUserMenu summary::-webkit-details-marker { display: none; }
body.IFAccountPage--webhomeopath .IFAccountUserMenu summary span:nth-child(2) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.IFAccountPage--webhomeopath .IFUserAvatar {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  border-radius: 50%;
  color: #2b7895;
  background: #eaf4f7;
  font-size: 11px;
}
body.IFAccountPage--webhomeopath .IFAccountUserMenu > div {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  display: grid;
  width: 230px;
  padding: 8px;
  border: 1px solid var(--if-line);
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(23,51,66,.14);
}
body.IFAccountPage--webhomeopath .IFAccountUserMenu > div a {
  padding: 10px 12px;
  border-radius: 6px;
  color: var(--if-ink);
  font-size: var(--wh-type-body);
  font-weight: 400;
}
body.IFAccountPage--webhomeopath .IFAccountUserMenu > div a:hover { background: var(--if-soft); }
body.IFAccountPage--webhomeopath .IFAccountNav .IFLanguageLink { margin-left: 0; }

body.IFAccountPage--webhomeopath .IFMembershipView {
  grid-template-columns: minmax(0, 1fr) minmax(290px, 340px);
  align-items: start;
}
body.IFAccountPage--webhomeopath .IFMembershipHero--selection,
body.IFAccountPage--webhomeopath .IFFreeMembership,
body.IFAccountPage--webhomeopath .IFMembershipBoundary,
body.IFAccountPage--webhomeopath .IFMembershipCancel { grid-column: 1 / -1; }
body.IFAccountPage--webhomeopath .IFSiteSelection,
body.IFAccountPage--webhomeopath .IFPackagePrices,
body.IFAccountPage--webhomeopath .IFMembershipInformation { grid-column: 1; }
body.IFAccountPage--webhomeopath .IFOrderSummary {
  position: sticky;
  top: 18px;
  grid-column: 2;
  grid-row: 3 / span 3;
  padding: 24px;
  border: 1px solid var(--if-line);
  border-radius: 11px;
  background: #f8fbfc;
}
body.IFAccountPage--webhomeopath .IFOrderSummary h2 { margin: 0 0 14px; }
body.IFAccountPage--webhomeopath .IFOrderSummary > p { margin: 0 0 13px; }
body.IFAccountPage--webhomeopath .IFOrderSummary ul { margin: 0; padding: 0; list-style: none; }
body.IFAccountPage--webhomeopath [data-selected-sites] li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid var(--if-line);
}
body.IFAccountPage--webhomeopath .IFPeriodChoice {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 17px;
}
body.IFAccountPage--webhomeopath .IFPeriodChoice p { grid-column: 1 / -1; margin: 0 0 8px; }
body.IFAccountPage--webhomeopath .IFPeriodChoice button {
  min-height: 48px;
  padding: 9px 8px;
  border: 1px solid var(--if-blue);
  color: var(--if-blue);
  background: #fff;
  cursor: pointer;
  font-size: var(--wh-type-body);
  font-weight: 500;
}
body.IFAccountPage--webhomeopath .IFPeriodChoice button:first-of-type { border-radius: 7px 0 0 7px; }
body.IFAccountPage--webhomeopath .IFPeriodChoice button:last-of-type { border-radius: 0 7px 7px 0; }
body.IFAccountPage--webhomeopath .IFPeriodChoice button[aria-pressed="true"] { color: #fff; background: var(--if-blue); }
body.IFAccountPage--webhomeopath .IFPeriodChoice small { display: block; font-size: var(--wh-type-small); }
body.IFAccountPage--webhomeopath .IFOrderTotal {
  display: grid;
  gap: 2px;
  margin: 18px 0;
  padding: 15px;
  border-radius: 8px;
  background: #edf6f8;
}
body.IFAccountPage--webhomeopath .IFOrderTotal strong { font-size: var(--wh-type-heading); font-weight: 520; }
body.IFAccountPage--webhomeopath .IFOrderAvailability { color: var(--if-text); font-size: var(--wh-type-small); }
body.IFAccountPage--webhomeopath .IFOrderSummary .IFPlanAction { width: 100%; margin-top: 16px; }
body.IFAccountPage--webhomeopath .IFOrderTrust { display: grid; gap: 7px; margin-top: 18px; color: var(--if-text); font-size: var(--wh-type-small); }
body.IFAccountPage--webhomeopath .IFOrderTrust li::before { content: "✓"; margin-right: 7px; color: #168354; }

body.IFAccountPage--webhomeopath .IFSettingsBlock form,
body.IFAccountPage--webhomeopath .IFSiteTerms form { display: flex; flex-direction: column; }
body.IFAccountPage--webhomeopath .IFSettingsBlock form > .IFPrimaryButton,
body.IFAccountPage--webhomeopath .IFSiteTerms .IFButtonRow { margin-left: auto; }
body.IFAccountPage--webhomeopath .IFSiteTerms .IFCheckField { margin-top: 24px; }
body.IFAccountPage--webhomeopath .IFFormMessage { border-radius: 9px; font-weight: 400; }
body.IFAccountPage--webhomeopath .IFFormMessageInfo { border-color: #b9d5e1; background: #f2f8fb; }
body.IFAccountPage--webhomeopath .IFFormMessageError { border-color: #e3bcb4; background: #fff5f3; }

@media (max-width: 980px) {
  body.IFAccountPage--webhomeopath .IFMembershipView { grid-template-columns: 1fr; }
  body.IFAccountPage--webhomeopath .IFOrderSummary {
    position: static;
    grid-column: 1;
    grid-row: auto;
  }
  body.IFAccountPage--webhomeopath .IFAccountUserMenu summary span:nth-child(2) { display: none; }
}
@media (max-width: 680px) {
  body.IFAccountPage--webhomeopath .IFAccountUserMenu { order: 20; margin-left: auto; }
  body.IFAccountPage--webhomeopath .IFAccountUserMenu > div { right: 0; }
  body.IFAccountPage--webhomeopath .IFOrderSummary { padding: 20px; }
}

/* R31-K10k57: cache-safe account geometry and restrained shared component rhythm. */
body.IFAccountPage--webhomeopath .IFAccountNav {
  align-items: center;
  flex-wrap: nowrap;
  min-height: 54px;
  gap: 2px;
}
body.IFAccountPage--webhomeopath .IFAccountNav > a {
  align-self: center;
  min-height: 40px;
  padding: 8px 14px;
  line-height: 1.25;
}
body.IFAccountPage--webhomeopath .IFAccountNav > a:hover,
body.IFAccountPage--webhomeopath .IFAccountNav > a[aria-current="page"] {
  color: #114f68;
  background: #f0f6f8;
}
body.IFAccountPage--webhomeopath.IFAccountPage--view-memberships .IFAccountMain,
body.IFAccountPage--webhomeopath.IFAccountPage--view-account .IFAccountMain {
  padding-top: 40px;
}
body.IFAccountPage--webhomeopath.IFAccountPage--view-memberships .IFAccountMain { padding-bottom: 36px; }
body.IFAccountPage--webhomeopath .IFMembershipView { gap: 26px; }
body.IFAccountPage--webhomeopath .IFFreeMembership {
  overflow: visible;
  padding-bottom: 21px;
}
body.IFAccountPage--webhomeopath .IFPlanAction,
body.IFAccountPage--webhomeopath .IFSiteChoice,
body.IFAccountPage--webhomeopath .IFPrimaryButton,
body.IFAccountPage--webhomeopath .IFPrimaryLink,
body.IFAccountPage--webhomeopath .IFAccessTabs > a,
body.IFAccountPage--webhomeopath .IFAccessProviders > a {
  box-sizing: border-box;
  height: auto;
  min-height: 48px;
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 1.25;
  overflow: visible;
}
body.IFAccountPage--webhomeopath .IFFreeMembership .IFPlanAction {
  justify-self: end;
  margin: 1px 1px 1px 0;
}
body.IFAccountPage--webhomeopath .IFOrderSummary {
  padding: 22px;
  background: #f9fbfc;
}
body.IFAccountPage--webhomeopath .IFOrderSummary .IFPlanAction { min-height: 52px; }
body.IFAccountPage--webhomeopath .IFOrderAvailability {
  margin-top: 4px;
  line-height: 1.45;
}
body.IFAccountPage--webhomeopath .IFOrderTrust { gap: 9px; }

@media (max-width: 680px) {
  body.IFAccountPage--webhomeopath .IFAccountNav {
    align-items: center;
    min-height: 52px;
  }
  body.IFAccountPage--webhomeopath .IFAccountNav > a {
    min-height: 40px;
    padding: 8px 11px;
  }
  body.IFAccountPage--webhomeopath.IFAccountPage--view-memberships .IFAccountMain,
  body.IFAccountPage--webhomeopath.IFAccountPage--view-account .IFAccountMain { padding-top: 28px; }
  body.IFAccountPage--webhomeopath.IFAccountPage--view-memberships .IFAccountMain { padding-bottom: 28px; }
  body.IFAccountPage--webhomeopath .IFFreeMembership { padding: 19px 18px 20px; }
}
