/* Material Design 3 Expressive
   Shape scale, spring motion, and the rail / button / search treatments.
   Square filter and sort chips, and the lower-left nav controls, stay as they are. */

@import url('https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wdth,wght@8..144,100,400;8..144,100,560;8..144,110,700&display=swap');

:root {
  --md-sys-shape-corner-none: 0px;
  --md-sys-shape-corner-extra-small: 4px;
  --md-sys-shape-corner-small: 8px;
  --md-sys-shape-corner-medium: 12px;
  --md-sys-shape-corner-large: 16px;
  --md-sys-shape-corner-large-increased: 20px;
  --md-sys-shape-corner-extra-large: 28px;
  --md-sys-shape-corner-extra-large-increased: 32px;
  --md-sys-shape-corner-extra-extra-large: 48px;
  --md-sys-shape-corner-full: 999px;

  --md-sys-color-primary: #6b3a2a;
  --md-sys-color-on-primary: #fff8f5;
  --md-sys-color-primary-container: #ffdcc6;
  --md-sys-color-on-primary-container: #3a1d12;
  --md-sys-color-secondary-container: #e7dfd4;
  --md-sys-color-surface-container: #f3eee6;

  /* Spatial spring overshoots slightly. Effects spring settles without bounce. */
  --md-sys-motion-spring-spatial: linear(
    0, 0.009 1.2%, 0.035 2.5%, 0.141 6%, 0.529 17.5%,
    0.704 23.8%, 0.832 30.5%, 0.918 37.4%, 0.968 44.5%,
    0.997 52.5%, 1.012 62%, 1.015 73%, 1.004 88%, 1
  );
  --md-sys-motion-spring-effects: cubic-bezier(0.2, 0, 0, 1);
  --md-sys-motion-duration-spatial: 500ms;
  --md-sys-motion-duration-effects: 200ms;

  --md-sys-typescale-emphasized: "Roboto Flex", "Manrope", sans-serif;
}

[data-theme="dark"] {
  --md-sys-color-primary: #ffb68e;
  --md-sys-color-on-primary: #542106;
  --md-sys-color-primary-container: #713525;
  --md-sys-color-on-primary-container: #ffdcc6;
  --md-sys-color-secondary-container: #3a332c;
  --md-sys-color-surface-container: #2c2620;
}

/* Navigation rail: stadium active indicator, shape morph on press */
.md3-side-nav .md3-nav-menu .md3-nav-item,
.md3-side-nav .md3-nav-search {
  border-radius: var(--md-sys-shape-corner-full) !important;
  font-family: var(--md-sys-typescale-emphasized);
  font-variation-settings: "opsz" 24, "wght" 560, "wdth" 100;
  transition:
    background-color var(--md-sys-motion-duration-effects) var(--md-sys-motion-spring-effects),
    color var(--md-sys-motion-duration-effects) var(--md-sys-motion-spring-effects),
    border-radius var(--md-sys-motion-duration-spatial) var(--md-sys-motion-spring-spatial),
    transform var(--md-sys-motion-duration-spatial) var(--md-sys-motion-spring-spatial) !important;
}

.md3-side-nav .md3-nav-menu .md3-nav-item.active {
  background: var(--md-sys-color-primary-container) !important;
  color: var(--md-sys-color-on-primary-container) !important;
}

.md3-side-nav .md3-nav-menu .md3-nav-item:active,
.md3-side-nav .md3-nav-search:active {
  border-radius: var(--md-sys-shape-corner-large-increased) !important;
  transform: scale(0.96);
}

.md3-nav-label {
  font-family: var(--md-sys-typescale-emphasized);
  font-variation-settings: "opsz" 18, "wght" 560, "wdth" 105;
}

.nav-financial .md3-nav-label {
  white-space: normal !important;
  max-width: 68px !important;
  overflow: visible !important;
  text-overflow: clip !important;
  line-height: 1.05 !important;
}

/* Expressive buttons: round, no hover lift, press morphs the corners */
button:not(.filter-btn):not(.sort-btn):not(.table-sort-btn):not(.confidential-unlock):not(.confidential-gate-submit):not(.confidential-gate-cancel):not(.md3-nav-item):not(.lang-picker-btn):not(.modal-nav):not(.modal-back):not(.time-option):not(.sunburst-toggle-background):not(.site-assistant-launch):not(.site-assistant-close):not(.site-assistant-send):not(.site-assistant-chip):not(.blog-comment-send):not(.travel-scheme):not(.travel-zoom):not(.travel-place-btn):not(.currency-open):not(.currency-close):not(.currency-option),
.btn:not(.filter-btn):not(.sort-btn):not(.table-sort-btn) {
  border-radius: var(--md-sys-shape-corner-full) !important;
  box-shadow: none !important;
  font-family: var(--md-sys-typescale-emphasized);
  font-variation-settings: "opsz" 24, "wght" 560, "wdth" 100;
  transition:
    background-color var(--md-sys-motion-duration-effects) var(--md-sys-motion-spring-effects),
    color var(--md-sys-motion-duration-effects) var(--md-sys-motion-spring-effects),
    border-radius var(--md-sys-motion-duration-spatial) var(--md-sys-motion-spring-spatial),
    transform var(--md-sys-motion-duration-spatial) var(--md-sys-motion-spring-spatial) !important;
}

button:not(.filter-btn):not(.sort-btn):not(.table-sort-btn):not(.confidential-unlock):not(.confidential-gate-submit):not(.confidential-gate-cancel):not(.md3-nav-item):not(.lang-picker-btn):not(.modal-nav):not(.modal-back):not(.time-option):not(.sunburst-toggle-background):not(.site-assistant-launch):not(.site-assistant-close):not(.site-assistant-send):not(.site-assistant-chip):not(.blog-comment-send):not(.travel-scheme):not(.travel-zoom):not(.travel-place-btn):not(.currency-open):not(.currency-close):not(.currency-option):hover,
.btn:not(.filter-btn):not(.sort-btn):not(.table-sort-btn):hover {
  transform: none !important;
  box-shadow: none !important;
}

button:not(.filter-btn):not(.sort-btn):not(.table-sort-btn):not(.confidential-unlock):not(.confidential-gate-submit):not(.confidential-gate-cancel):not(.md3-nav-item):not(.lang-picker-btn):not(.modal-nav):not(.modal-back):not(.time-option):not(.sunburst-toggle-background):not(.site-assistant-launch):not(.site-assistant-close):not(.site-assistant-send):not(.site-assistant-chip):not(.blog-comment-send):not(.travel-scheme):not(.travel-zoom):not(.travel-place-btn):not(.currency-open):not(.currency-close):not(.currency-option):active,
.btn:not(.filter-btn):not(.sort-btn):not(.table-sort-btn):active {
  border-radius: var(--md-sys-shape-corner-extra-large) !important;
  transform: scale(0.96) !important;
}

/* Search field uses the extra-large corner from the expressive shape scale */
.simple-search-bar,
.simple-search-bar.show,
.simple-search-bar.active {
  border-radius: var(--md-sys-shape-corner-extra-large) !important;
  transition:
    width var(--md-sys-motion-duration-spatial) var(--md-sys-motion-spring-spatial),
    background-color var(--md-sys-motion-duration-effects) var(--md-sys-motion-spring-effects) !important;
}

/* Lower-left controls stay still */
.md3-nav-bottom button:hover,
.md3-nav-bottom button:active,
.md3-nav-bottom .lang-picker-btn:hover,
.md3-nav-bottom .lang-picker-btn:active,
.md3-nav-bottom .md3-nav-item:hover,
.md3-nav-bottom .md3-nav-item:active {
  transform: none !important;
  box-shadow: none !important;
}

button.filter-btn,
button.sort-btn,
button.table-sort-btn,
.filter-btn,
.sort-btn,
.table-sort-btn,
button.currency-open,
button.currency-close,
button.currency-option,
.currency-dialog-card,
#currency-search,
.fp-danko-cta {
  border-radius: var(--md-sys-shape-corner-none) !important;
  transform: none !important;
}

/* Cards and panels are square. Inline-styled panels are matched by their style
   attribute; circles, pills, and the phone mockup keep their shape. */
.main-container .index-card,
.main-container .detail-item,
.main-container .product-card,
.main-container .project-card,
.main-container .site-flow,
.main-container .site-map-section,
.main-container :is(div, section, article, aside, table, a, li)[style*="border-radius"]:not([style*="border-radius: 50%"]):not([style*="border-radius:50%"]):not([style*="999px"]):not(.mobile-mockup *),
#pay-invoice-form .request-cta {
  border-radius: var(--md-sys-shape-corner-none) !important;
}

/* Sunburst footer: warm palette with tonal chips. sunburst.js sets data-tone
   from the time-of-day sky so text and controls stay legible on dark skies.
   The html body prefix outranks the per-page inline footer rules. */
.footer.footer-with-sunburst {
  --footer-ink: #2b1d16;
  --footer-ink-muted: rgba(43, 29, 22, 0.74);
  --footer-rule: rgba(107, 58, 42, 0.2);
  --footer-chip-bg: rgba(255, 248, 245, 0.72);
  --footer-chip-hover-bg: #ffdcc6;
  --footer-chip-ink: var(--md-sys-color-on-primary-container, #3a1d12);
  --footer-chip-active-bg: #6b3a2a;
  --footer-chip-active-ink: #fff8f5;
  border-top: 1px solid var(--footer-rule);
}

.footer.footer-with-sunburst[data-tone="dark"] {
  --footer-ink: #fff8f5;
  --footer-ink-muted: rgba(255, 248, 245, 0.8);
  --footer-rule: rgba(255, 248, 245, 0.22);
  --footer-chip-bg: rgba(255, 248, 245, 0.14);
  --footer-chip-hover-bg: rgba(255, 248, 245, 0.26);
  --footer-chip-ink: #fff8f5;
  --footer-chip-active-bg: #ffdcc6;
  --footer-chip-active-ink: #3a1d12;
}

html body .footer.footer-with-sunburst :is(.footer-section h3, .footer-section h4, .footer-social-title) {
  color: var(--footer-ink) !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

html body .footer.footer-with-sunburst .footer-section h3::after {
  background: var(--footer-chip-active-bg);
}

html body .footer.footer-with-sunburst :is(.footer-section a, .footer-section p, .footer-section li, .footer-legal-links a, .footer-copyright, .footer-disclaimer, .footer-bottom p) {
  color: var(--footer-ink-muted) !important;
}

html body .footer.footer-with-sunburst :is(.footer-section a, .footer-legal-links a) {
  text-decoration: none;
  text-underline-offset: 3px;
  transition: color var(--md-sys-motion-duration-effects) var(--md-sys-motion-spring-effects);
}

html body .footer.footer-with-sunburst :is(.footer-section a, .footer-legal-links a):hover {
  color: var(--footer-ink) !important;
  text-decoration: underline;
}

html body .footer.footer-with-sunburst .footer-main {
  border-bottom-color: var(--footer-rule) !important;
}

html body .footer.footer-with-sunburst .footer-bottom {
  border-top: 1px solid var(--footer-rule) !important;
}

html body .footer.footer-with-sunburst .sunburst-clock {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  height: 20px;
  min-height: 20px;
  margin: 0;
  padding: 0 8px;
  border: 1px solid var(--footer-rule) !important;
  border-radius: var(--md-sys-shape-corner-full);
  background: var(--footer-chip-bg);
  color: var(--footer-ink) !important;
  font-family: var(--md-sys-typescale-emphasized);
  font-size: 0.62rem !important;
  font-weight: 500 !important;
  font-variation-settings: "opsz" 12, "wght" 500, "wdth" 90;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  line-height: 1;
  white-space: nowrap;
}

html body .footer.footer-with-sunburst .sunburst-circadian {
  margin: 0;
  max-width: 16rem;
  color: var(--footer-ink-muted) !important;
  font-size: 0.75rem;
  line-height: 1.35;
}

html body .footer.footer-with-sunburst .sunburst-circadian span {
  display: block;
}

html body .footer.footer-with-sunburst .sunburst-controls .sunburst-time-options {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

html body .footer.footer-with-sunburst .sunburst-controls :is(.play-pause button, .sunburst-toggle-background, .time-option, .sunburst-clock) {
  background: var(--footer-chip-bg) !important;
  color: var(--footer-chip-ink) !important;
  border: 1px solid var(--footer-rule) !important;
  border-radius: var(--md-sys-shape-corner-full) !important;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  font-family: var(--md-sys-typescale-emphasized);
  transition:
    background-color var(--md-sys-motion-duration-effects) var(--md-sys-motion-spring-effects),
    color var(--md-sys-motion-duration-effects) var(--md-sys-motion-spring-effects) !important;
}

html body .footer.footer-with-sunburst .sunburst-controls .play-pause button {
  width: 28px;
  height: 28px;
}

html body .footer.footer-with-sunburst .sunburst-controls :is(.sunburst-toggle-background, .time-option) {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: auto;
  margin: 0;
  padding: 4px 12px;
}

html body .footer.footer-with-sunburst .sunburst-controls :is(.play-pause button, .sunburst-toggle-background, .time-option):hover {
  background: var(--footer-chip-hover-bg) !important;
}

html body .footer.footer-with-sunburst .sunburst-controls :is(.play-pause button, .sunburst-toggle-background, .time-option):focus-visible {
  outline: 2px solid var(--footer-chip-active-bg) !important;
  outline-offset: 2px;
}

html body .footer.footer-with-sunburst .sunburst-controls :is(.time-option.active, .sunburst-toggle-background[aria-expanded="true"]) {
  background: var(--footer-chip-active-bg) !important;
  color: var(--footer-chip-active-ink) !important;
  border-color: transparent !important;
}

/* WCAG 2.2 AA: skip link, visible focus, 24px targets, reduced motion. */
.skip-link {
  position: absolute;
  left: 12px;
  top: 8px;
  z-index: 100000;
  padding: 10px 16px;
  border-radius: 999px;
  background: #2b1d16;
  color: #fff8f5 !important;
  font-weight: 700;
  text-decoration: none;
  transform: translateY(-200%);
}
.skip-link:focus {
  transform: none;
  outline: 3px solid #ffb68e;
  outline-offset: 3px;
}
:focus-visible {
  outline: 2px solid #6b3a2a !important;
  outline-offset: 3px !important;
}
[data-theme="dark"] :focus-visible {
  outline-color: #ffb68e !important;
}
#main-content:focus {
  outline: none;
}
:where(button, [role="button"], a.md3-nav-item, .table-unlock, .time-option) {
  min-width: 24px;
  min-height: 24px;
}
/* Lime pointer across the site. Text fields keep the I-beam. */
html {
  --cursor-lime: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath fill='%23B6FF00' stroke='%231C2B00' stroke-width='1.6' stroke-linejoin='round' d='M6 3.5v21.2l6.1-6.2 4.7 10.2 3.7-1.7-4.8-10.1H25z'/%3E%3C/svg%3E") 6 3, auto;
}
html,
html * {
  cursor: var(--cursor-lime) !important;
}
html :is(input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]), textarea, [contenteditable="true"]) {
  cursor: text !important;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
