/* Customer and account surfaces. Loaded after custom.css and dfc-design-system.css. */
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #wrapper { background: #f4f7fa; }
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main { color: #243347; }
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main .page-header h1 {
  color: #1f2e40;
  font-size: clamp(22px, 2vw, 28px);
  font-weight: 600;
  line-height: 1.35;
}
body:is(#authentication, #registration, #password, #guest-tracking) #main #content.page-content,
body.page-customer-account #main .dfc-customer-content {
  min-width: 0;
  padding: 28px;
  border: 1px solid #e1e7ee;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(28, 47, 70, .045);
}
body:is(#identity, #address) #main,
body#guest-tracking #main:has(#guestOrderTrackingForm) { max-width: 760px; margin: 24px auto 34px; }

body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main .form-control {
  width: 100%;
  max-width: 100%;
  min-height: 46px;
  border: 1px solid #cfd9e4;
  border-radius: 8px;
  color: #243347;
  background: #fff;
  font-size: 14px;
  box-shadow: none;
}
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main textarea.form-control { min-height: 110px; resize: vertical; }
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main .form-control:focus { border-color: #1674bd; outline: 0; box-shadow: 0 0 0 3px rgba(22, 116, 189, .13); }
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main .has-error .form-control,
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main .form-control[aria-invalid="true"] { border-color: #c92230; }
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main .form-control-label { color: #35465c; font-size: 14px; font-weight: 600; line-height: 1.5; }
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main .form-control-comment { color: #66758a; font-size: 12px; line-height: 1.5; }
body:is(#address, #guest-tracking) #main .form-group.row { display: block; margin: 0 0 18px; }
body:is(#address, #guest-tracking) #main .form-group.row > :is(label, .col-md-6, .js-input-column, .form-control-comment) {
  float: none;
  width: 100%;
  max-width: none;
  padding: 0;
  text-align: left;
}
body:is(#address, #guest-tracking) #main .form-group.row > label { margin-bottom: 7px; }
body:is(#address, #guest-tracking) #main .form-group.row > .form-control-comment { padding-top: 6px; }
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main a:focus-visible,
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main button:focus-visible,
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main input[type="checkbox"]:focus-visible,
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main input[type="radio"]:focus-visible { outline: 3px solid #1674bd; outline-offset: 3px; }

body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main #content .btn.btn-primary,
body.page-customer-account #main .page-footer .btn.btn-primary {
  min-height: 46px;
  padding: 12px 18px;
  border: 1px solid #1268ad !important;
  border-radius: 9px !important;
  color: #fff !important;
  background: #1268ad !important;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  white-space: normal;
  box-shadow: 0 3px 9px rgba(18, 104, 173, .12);
}
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main #content .btn.btn-primary:hover:not(:disabled),
body.page-customer-account #main .page-footer .btn.btn-primary:hover { border-color: #0d548e !important; background: #0d548e !important; }
body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main #content .btn.btn-primary:disabled {
  border-color: #d6dee7 !important;
  color: #627185 !important;
  background: #e9eef4 !important;
  opacity: 1;
  box-shadow: none;
}
body:is(#authentication, #registration, #identity) #main #content [data-action="show-password"] { min-height: 46px; border-color: #cfd9e4; color: #35465c; background: #f4f7fa; font-size: 12px; font-weight: 600; }
body:is(#authentication, #registration, #identity) #main #content .input-group { display: flex; align-items: stretch; width: 100%; }
body:is(#authentication, #registration, #identity) #main #content .input-group .form-control { flex: 1 1 auto; width: 1% !important; min-width: 0; border-radius: 8px 0 0 8px; }
body:is(#authentication, #registration, #identity) #main #content .input-group .input-group-btn { display: flex; flex: 0 0 auto; width: auto; }
body:is(#authentication, #registration, #identity) #main #content .input-group [data-action="show-password"] { margin: 0; border-radius: 0 8px 8px 0; }
body#authentication #main #content .forgot-password a,
body#authentication #main #content .no-account a,
body#registration #main .register-form > p a { color: #1268ad; text-underline-offset: 3px; }
body#authentication #main #content .no-account,
body#registration #main .register-form > p { border-color: #dce7f1; background: #f4f8fc; line-height: 1.65; }

body#my-account #main .dfc-customer-content { padding: 0; border: 0; background: transparent; box-shadow: none; }
body#my-account #main .dfc-customer-content > .row { margin: 0; }
body#my-account #main .links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; }
body#my-account #main .links > a { display: flex; float: none; width: 100%; min-width: 0; margin: 0; padding: 0; color: #243347; text-transform: none; }
body#my-account #main .links .link-item {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  justify-content: center;
  gap: 15px;
  width: 100%;
  min-height: 158px;
  padding: 22px;
  border: 1px solid #e1e7ee;
  border-radius: 14px;
  color: #243347;
  background: #fff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  text-align: left;
  box-shadow: 0 4px 16px rgba(28, 47, 70, .045);
  transition: border-color .18s ease, background-color .18s ease;
}
body#my-account #main .links .link-item i { width: auto; margin: 0; padding: 0; color: #1268ad; font-size: 30px; }
body#my-account #main .links > a:hover .link-item { border-color: #accde7; color: #0d548e; background: #f8fbfe; }
body.page-customer-account #main .page-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 22px; padding: 0; }
body.page-customer-account #main .page-footer .account-link,
body#addresses #main .addresses-footer a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid #d6e4f0;
  border-radius: 9px;
  color: #1268ad;
  background: #f1f7fc;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
}
body#addresses #main .dfc-customer-content > [class*="col-"] { padding: 0 10px; }
body#addresses #main .address { margin: 0 0 20px; border: 1px solid #dce4ed; border-radius: 12px; background: #fff; box-shadow: none; }
body#addresses #main .address-body { min-height: 0; padding: 20px; color: #526174; line-height: 1.7; }
body#addresses #main .address-body h4 { color: #243347; font-size: 17px; font-weight: 600; }
body#addresses #main .address-footer { padding: 12px 16px; border-top: 1px solid #e1e7ee; background: #f7f9fc; }
body#addresses #main .address-footer a { display: inline-flex; align-items: center; min-height: 36px; color: #1268ad; }
body#addresses #main .address-footer a[data-link-action="delete-address"] { color: #a51e2b; }
body#addresses #main .addresses-footer { padding: 4px 10px 0; }

body.page-customer-account #main .dfc-customer-content .table { margin-bottom: 20px; border-color: #e1e7ee; color: #35465c; font-size: 13px; line-height: 1.6; }
body.page-customer-account #main .dfc-customer-content .table th,
body.page-customer-account #main .dfc-customer-content .table td { padding: 14px 12px; border-color: #e1e7ee; vertical-align: middle; }
body.page-customer-account #main .dfc-customer-content .table thead th { color: #35465c; background: #f4f7fa; font-weight: 600; }
body.page-customer-account #main .dfc-customer-content .table-striped tbody tr:nth-of-type(odd) { background: #fafbfd; }
body.page-customer-account #main .order-actions a { display: inline-block; margin: 3px 6px; color: #1268ad; }
body#history #main .orders .order { margin-bottom: 14px; padding: 18px; border: 1px solid #dce4ed; border-radius: 12px; background: #fff; }
body#history #main .orders .order h3 { margin: 0 0 6px; color: #1268ad; font-size: 16px; }
body#history #main .orders .order .date { margin-bottom: 5px; color: #66758a; font-size: 13px; }
body#history #main .orders .order .total { margin-bottom: 10px; color: #243347; font-size: 18px; font-weight: 600; }
body#history #main .orders .order .label-pill { display: inline-block; max-width: 100%; padding: 6px 10px; line-height: 1.4; white-space: normal; }
body#history #main .orders .order .col-xs-2 a { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 44px; color: #1268ad; }
body#order-detail #main .box,
body#order-follow #main .box,
body#order-slip #main .box,
body#order-return #main .box { margin-bottom: 18px; padding: 20px; border: 1px solid #e1e7ee; border-radius: 12px; background: #fff; box-shadow: none; }
body#order-detail #main .order-message-form { padding-top: 18px; }

@media (max-width: 991px) {
  body#my-account #main .links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  body:is(#authentication, #registration, #password, #guest-tracking) #main #content.page-content,
  body.page-customer-account #main .dfc-customer-content { padding: 18px 16px; border-radius: 12px; }
  body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main .page-header h1 { font-size: 22px; }
  body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main .form-control { font-size: 16px; }
  body:is(.page-customer-account, #authentication, #registration, #password, #guest-tracking) #main .form-footer .btn-primary { width: 100%; }
  body#my-account #main .dfc-customer-content { padding: 0; border: 0; }
  body#my-account #main .links { gap: 12px; }
  body#my-account #main .links .link-item { min-height: 138px; padding: 16px; border-radius: 12px; font-size: 13px; }
  body#addresses #main .dfc-customer-content > [class*="col-"] { padding: 0; }
  body#addresses #main .addresses-footer { padding: 0; }
  body#history #main .orders .order { padding: 16px 12px; }
  body.page-customer-account #main .dfc-customer-content .table th,
  body.page-customer-account #main .dfc-customer-content .table td { padding: 10px 8px; overflow-wrap: anywhere; }
  body#order-detail #main .box,
  body#order-follow #main .box,
  body#order-slip #main .box,
  body#order-return #main .box { padding: 16px; }
}
@media (max-width: 374px) {
  body#my-account #main .links { grid-template-columns: minmax(0, 1fr); }
  body#my-account #main .links .link-item { min-height: 98px; flex-direction: row; align-items: center; justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  body#my-account #main .links .link-item { transition: none; }
}

/* Design audit: legible help, linked consent and a single editorial hierarchy. */
body #main .dfc-field-help { display: block; margin: 7px 0 0; color: #526174; font-size: 12px; font-weight: 400; line-height: 1.6; }
body #main .dfc-field-error { display: block; margin-top: 7px; color: #a51e2b; font-size: 13px; font-weight: 500; line-height: 1.5; }
body #main .dfc-field-error[hidden] { display: none; }
body#contact #main .form-control[aria-invalid="true"] { border-color: #a51e2b; }
body#contact #left-column .contact-rich .data { display: block; }
body#contact #left-column .contact-rich .data a[href^="mailto:"] { display: block; width: max-content; max-width: 100%; margin-top: 4px; white-space: nowrap; }
body#contact #left-column .contact-rich .data.email { display: block; }
body:is(#registration, #identity) #main .dfc-consent-documents { margin-top: -8px; margin-bottom: 22px; font-size: 13px; line-height: 1.7; }
body:is(#registration, #identity) #main .dfc-consent-documents a { display: inline-block; min-height: 24px; color: #1268ad; text-decoration: underline; text-underline-offset: 3px; }
body#password #main .forgotten-password .center-email-fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 0; }
body#password #main .center-email-fields > :is(label, .email, button) { float: none; width: 100%; max-width: none; margin: 0; padding-left: 0; padding-right: 0; text-align: left; }
body#password #main .center-email-fields > button { justify-self: start; width: auto; padding: 12px 18px; text-align: center; }
body:is(#authentication, #registration, #identity) #main [data-action="show-password"] { text-transform: none; }
body#cms #main .page-header { width: 100%; max-width: 1000px; margin: 0 auto 20px; }
body#cms #main .page-header h1 { color: #243347; font-size: clamp(24px, 2.6vw, 32px); font-weight: 600; line-height: 1.3; }
body#cms #main #content.page-cms { font-size: 15px; line-height: 1.8; }
body#cms #main .dfc-cms-body { width: 100%; max-width: 78ch; margin: 0 auto; }
body#cms #main .dfc-cms-body :is(h2, h3, h4, h5, h6) { margin-top: 28px !important; margin-bottom: 12px !important; font-family: inherit !important; color: #263b51 !important; font-weight: 600 !important; line-height: 1.4 !important; text-transform: none; scroll-margin-top: 110px; }
body#cms #main .dfc-cms-body h2 { font-size: clamp(21px, 2.1vw, 25px) !important; }
body#cms #main .dfc-cms-body h3 { font-size: clamp(18px, 1.7vw, 21px) !important; }
body#cms #main .dfc-cms-body :is(h2, h3, h4) :is(span, b, strong) { font-size: inherit !important; font-weight: inherit !important; color: inherit !important; }
body#cms #main .dfc-cms-body :is(p, li) { font-size: 15px !important; line-height: 1.8 !important; }
body#cms #main .page-cms-6 .dfc-cms-body :is(p, p span, p b) { font-family: inherit !important; font-size: inherit !important; font-weight: 400 !important; color: inherit !important; background: transparent !important; }
body#cms #main .page-cms-6 .dfc-cms-body p { margin: 0 0 14px !important; }
body#cms #main .dfc-cms-empty { display: none; }
body#cms #main .dfc-cms-toc { max-width: 78ch; margin: 0 auto 24px; padding: 0; border: 1px solid #d9e4ee; border-radius: 10px; background: #f5f8fc; }
body#cms #main .dfc-cms-toc summary { min-height: 48px; padding: 13px 16px; color: #263b51; font-size: 15px; font-weight: 600; cursor: pointer; }
body#cms #main .dfc-cms-toc ol { margin: 0; padding: 0 20px 16px 38px; }
body#cms #main .dfc-cms-toc li { margin: 4px 0; color: #526174; font-size: 13px; line-height: 1.5; }
body#cms #main .dfc-cms-toc a { display: inline-block; min-height: 28px; padding: 4px 0; font-weight: 400; line-height: 1.5; }
body#cms #main :is(.dfc-cms-toc summary, .dfc-cms-toc a, .dfc-cms-body [tabindex="-1"]):focus-visible { outline: 3px solid #1674bd; outline-offset: 3px; }
body#pagenotfound #main .not-found-copy h2 { margin: 0 0 14px; font-size: clamp(21px, 2.4vw, 28px); line-height: 1.35; color: #243347; }
@media (max-width: 767px) {
  body#password #main .center-email-fields > button { width: 100%; }
  body:is(#registration, #identity) #main .dfc-consent-documents > div { float: none; width: 100%; margin: 0; }
  body#cms #main .page-header h1 { font-size: 24px; }
  body#cms #main #content.page-cms { padding: 20px 16px; }
}

/* Contact module puts the email link next to .data, not inside it. */
body#contact #left-column .contact-rich .block:has(> a[href^="mailto:"]) { display: grid; grid-template-columns: 38px minmax(0, 1fr); column-gap: 12px; align-items: start; }
body#contact #left-column .contact-rich .block:has(> a[href^="mailto:"]) > .icon { grid-column: 1; grid-row: 1 / span 2; margin: 0; }
body#contact #left-column .contact-rich .block:has(> a[href^="mailto:"]) > .data { grid-column: 2; }
body#contact #left-column .contact-rich .block > a[href^="mailto:"] { grid-column: 2; display: block; width: max-content; max-width: 100%; color: #1268ad; font-weight: 600; white-space: nowrap; }
body#contact #main .contact-form .form-fields > .form-group:first-child { display: block; }

body#contact #main .contact-form h2 { margin: 0; color: #263b51; font-size: 21px; font-weight: 600; line-height: 1.35; text-transform: none; }
body#contact #main #content .contact-form .form-control-comment { color: #526174; font-size: 12px; line-height: 1.5; }
