/* Browser support floor: 2016–2018 (~99% reach).
 * Android 7+ / Chrome 55+, iOS 12.2+ / Safari 12.2+, desktop evergreen.
 * Same floor as css/main.css and css/in-person.css.
 *
 * The pieces every page shares, in-person-notarization/ included (that page
 * does not load main.css; css/in-person.css keeps the booking form's rules).
 * Loaded before main.css and before in-person.css, so either can still
 * adjust something here.
 *
 *   1. Tokens          the theme colours (theming decisions, "Colour")
 *   2. Nav menu        _includes/nav.html
 *   3. Aside           _includes/aside.html ("What we do for you.")
 *   4. Fees            _includes/fees.html and _includes/payment-methods.html
 *   5. Book button     .book-button (the "Book Online" call to action)
 *   6. Standing notice _includes/standing-notice.html (a notary away, a holiday)
 *
 * The nav and the aside are sized in px rather than rem: the public pages set
 * html to 17px and the booking page leaves it at 16px, and these two should
 * be identical on both.
 */

/* --- 1. Tokens --- */
:root {
  /* brand, sampled from images/TNPmast.png */
  --navy:         #160966;
  --seal:         #961B1E;

  /* neutrals: text is deep navy, never black */
  --paper:        #F3F6FA;
  --surface:      #FFFFFF;
  --surface-sunk: #EEF1F6;
  --ink:          #16204A;
  --ink-muted:    #4A5578;
  --border:       #C9D2E2;
  --border-soft:  #DFE5EF;

  /* one meaning per hue. green: what to do (steps, services, buttons) */
  --green:        #2F5D3A;
  --green-hover:  #234A2C;
  --green-tint:   #E3F0E7;
  --green-border: #97C0A4;

  /* blue: guidance to read */
  --blue:         #1B4A87;
  --blue-hover:   #143A6C;
  --blue-tint:    #E2ECF9;
  --blue-border:  #8FB2DE;

  /* red: warnings */
  --red:          #961B1E;
  --red-hover:    #7A1517;
  --red-tint:     #FBE9E9;
  --red-border:   #DCA5A6;

  /* amber: expandable detail panels */
  --amber:        #7D4A06;
  --amber-tint:   #FDF2D8;
  --amber-border: #E0C378;

  /* violet: standing notices (closures, a notary away) */
  --violet:       #46308A;
  --violet-tint:  #ECE7F9;
  --violet-border:#B4A4E2;

  /* yellow: errors (a box the client missed) */
  --warn:         #6B4E00;
  --warn-tint:    #FFF3C4;
  --warn-border:  #D9A800;

  --radius:       14px;
  --radius-sm:    10px;
  --tap:          56px;      /* minimum comfortable target */

  --serif: Georgia, "Iowan Old Style", "Times New Roman", Times, serif;
  --sans:  -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  /* Lato is loaded from Google Fonts (_includes/site-head.html); the rest of
     the stack is what each platform falls back to while it loads. */
  --display: Lato, "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* --- 2. Nav menu --- */
/* A frosted-glass bar on a band of soft colour, under the masthead.

   The band is what the glass is seen against: a few soft washes of the
   brand navy, the guidance blue and the seal red. Where backdrop-filter
   is supported the bar is translucent and blurs them; elsewhere it is a
   near-opaque white with the same border and shadow, which reads as the
   same object.

   Not sticky. The theming decisions record the client turning down a
   sticky top bar and a floating menu, so the bar scrolls away with the
   masthead.

   Below 64em the links fold behind a "Menu" toggle. It is a checkbox (the
   input just before the <nav>), so the menu needs no script. "Book Online"
   and the phone number stay on the bar at every width. */
.site-nav-band {
  position: relative;
  padding: 12px 16px 14px;
  font-size: 16px;
  line-height: 1.25;
  background-color: #EAF0F8;
  background-image:
    radial-gradient(42% 120% at 24% 50%, rgba(143, 178, 222, 0.75) 0%, rgba(143, 178, 222, 0) 72%),
    radial-gradient(26% 110% at 58% 70%, rgba(70, 48, 138, 0.16) 0%, rgba(70, 48, 138, 0) 70%),
    radial-gradient(30% 120% at 82% 45%, rgba(220, 165, 166, 0.6) 0%, rgba(220, 165, 166, 0) 72%),
    linear-gradient(180deg, #F8FAFD 0%, #E7EDF6 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.9);
  border-bottom: 1px solid var(--border-soft);
}

/* Visually hidden, still focusable: the keyboard reaches it with Tab and
   Space opens the menu. */
.site-nav-toggle {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
  pointer-events: none;
}

.site-nav {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.95);
  box-shadow:
    0 0 0 1px rgba(22, 32, 74, 0.08),
    0 14px 34px -16px rgba(22, 9, 102, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.95);
  color: var(--ink);
  font-family: var(--sans);
}

@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .site-nav {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.72) 0%, rgba(255, 255, 255, 0.42) 100%);
    -webkit-backdrop-filter: blur(18px) saturate(170%);
    backdrop-filter: blur(18px) saturate(170%);
  }
}

/* The sheen across the top half of the glass. */
.site-nav::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0) 52%);
  pointer-events: none;
}

/* Margins stand in for flex gap (Chrome 84 / Safari 14.1). */
.site-nav-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 6px;
}

.tnp .site-nav a {
  text-decoration: none;
}

/* .tnp-qualified so it outranks the booking page's own `.tnp ul`. */
.tnp .site-nav-links {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tnp .site-nav-links li { margin: 0; }

.tnp .site-nav-links a {
  display: block;
  padding: 10px 15px;
  border-radius: 999px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.005em;
  white-space: nowrap;
  -webkit-transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
  transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.tnp .site-nav-links a:hover {
  background: rgba(27, 74, 135, 0.09);
  color: var(--blue);
}

/* The page you are on: a raised white segment, like a selected tab. */
.tnp .site-nav-links a[aria-current="page"] {
  background: #FFFFFF;
  color: var(--navy);
  box-shadow: 0 1px 2px rgba(22, 32, 74, 0.14), 0 6px 14px -6px rgba(22, 9, 102, 0.35);
}

.site-nav-burger {
  display: -webkit-inline-box;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: 0;
  padding: 10px 16px 10px 14px;
  border-radius: 999px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.site-nav-burger:hover { background: rgba(27, 74, 135, 0.09); }

/* Three bars that cross into an X while the menu is open. */
.site-nav-burger-icon {
  position: relative;
  display: inline-block;
  width: 18px;
  height: 2px;
  margin-right: 10px;
  border-radius: 2px;
  background: currentColor;
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
}

.site-nav-burger-icon::before,
.site-nav-burger-icon::after {
  content: "";
  position: absolute;
  left: 0;
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  -webkit-transition: -webkit-transform 0.2s ease;
  transition: transform 0.2s ease;
}

.site-nav-burger-icon::before { top: -6px; }
.site-nav-burger-icon::after  { top: 6px; }

.site-nav-toggle:checked ~ .site-nav .site-nav-burger-icon { background-color: transparent; }
.site-nav-toggle:checked ~ .site-nav .site-nav-burger-icon::before { -webkit-transform: translateY(6px) rotate(45deg); transform: translateY(6px) rotate(45deg); }
.site-nav-toggle:checked ~ .site-nav .site-nav-burger-icon::after  { -webkit-transform: translateY(-6px) rotate(-45deg); transform: translateY(-6px) rotate(-45deg); }

/* Focus lands on the hidden checkbox; draw the ring on its label. The
   second rule is dropped where :focus-visible is unknown, so older
   browsers show the ring for any focus. */
.site-nav-toggle:focus ~ .site-nav .site-nav-burger {
  box-shadow: 0 0 0 3px #FFFFFF, 0 0 0 6px var(--blue);
}
.site-nav-toggle:focus:not(:focus-visible) ~ .site-nav .site-nav-burger {
  box-shadow: none;
}

.tnp .site-nav a:focus {
  outline: 3px solid var(--blue);
  outline-offset: 2px;
}
.tnp .site-nav a:focus:not(:focus-visible) {
  outline: none;
}

.tnp .site-nav-phone {
  display: -webkit-inline-box;
  display: inline-flex;
  align-items: center;
  margin-left: auto;
  padding: 6px 12px 6px 6px;
  border-radius: 999px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.tnp .site-nav-phone:hover {
  background: rgba(27, 74, 135, 0.09);
  color: var(--blue);
}

.site-nav-phone-icon {
  display: -webkit-inline-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  margin-right: 8px;
  border-radius: 50%;
  background: var(--blue-tint);
  box-shadow: inset 0 0 0 1px rgba(27, 74, 135, 0.18);
  color: var(--blue);
}

.site-nav-phone-icon svg { display: block; width: 16px; height: 16px; }

/* The call to action on the bar: the Book Online button, 1.2 times the
   15px of the links beside it. */
.tnp .site-nav .site-nav-book {
  margin: 0 0 0 6px;
  padding: 9px 20px;
  font-size: 18px;
  letter-spacing: 0.03em;
}

/* Phones and tablets: the bar holds Menu, the phone (as an icon below
   30em) and Book Online; the links open underneath, two to a row. */
.site-nav-burger { -webkit-box-ordinal-group: 2; order: 1; }
.tnp .site-nav-phone { -webkit-box-ordinal-group: 3; order: 2; }
.tnp .site-nav .site-nav-book { -webkit-box-ordinal-group: 4; order: 3; }
.tnp .site-nav-links { -webkit-box-ordinal-group: 5; order: 4; }

@media (max-width: 29.9375em) {
  .tnp .site-nav-phone { padding: 6px; }
  .site-nav-phone-number {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  .site-nav-phone-icon { width: 40px; height: 40px; margin-right: 0; }
  .site-nav-phone-icon svg { width: 18px; height: 18px; }
  .tnp .site-nav .site-nav-book { padding: 9px 16px; }
}

@media (max-width: 22.4375em) {
  .site-nav-burger { padding: 10px 12px; }
  .site-nav-burger-icon { margin-right: 0; }
  .site-nav-burger-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
}

.tnp .site-nav-toggle:checked ~ .site-nav .site-nav-links {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(22, 32, 74, 0.1);
}

.tnp .site-nav-toggle:checked ~ .site-nav .site-nav-links li { width: 50%; }

.tnp .site-nav-toggle:checked ~ .site-nav .site-nav-links a {
  margin: 2px;
  padding: 12px 14px;
  border-radius: 14px;
  font-size: 16px;
}

/* Desktop: one row. Links on the left, phone and Book Online on the right.
   From 64em, where the public pages go to two columns; the phone number
   shows as its icon alone until 72em, where the row has room for it.
   The menu checkbox is dropped here so Tab does not stop on an invisible
   control. */
@media (min-width: 64em) and (max-width: 71.9375em) {
  .tnp .site-nav-phone { padding: 6px; }
  .site-nav-phone-number {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  .site-nav-phone-icon { margin-right: 0; }
}

@media (min-width: 64em) {
  .site-nav-band { padding: 14px 24px 16px; }
  .site-nav-toggle,
  .site-nav-burger { display: none; }
  .tnp .site-nav-links,
  .tnp .site-nav-toggle:checked ~ .site-nav .site-nav-links {
    display: flex;
    flex-wrap: nowrap;
    width: auto;
    margin: 0;
    padding: 0;
    border-top: 0;
    -webkit-box-ordinal-group: 2;
    order: 1;
  }
  .tnp .site-nav-toggle:checked ~ .site-nav .site-nav-links li { width: auto; }
  .tnp .site-nav-links li + li { margin-left: 2px; }
  .tnp .site-nav-toggle:checked ~ .site-nav .site-nav-links a {
    margin: 0;
    padding: 10px 15px;
    border-radius: 999px;
    font-size: 15px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tnp .site-nav-links a,
  .site-nav-burger-icon,
  .site-nav-burger-icon::before,
  .site-nav-burger-icon::after { -webkit-transition: none; transition: none; }
}

/* --- 3. Aside: "What we do for you." --- */
/* A white card of links. On the public pages it is the right-hand column
   on desktop and follows the page on narrower screens (css/main.css places
   it). On the booking page it sits in the right gutter on wide screens
   only (css/in-person.css places it). */
.tnp .site-aside {
  background: var(--surface);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius);
  box-shadow: 0 1px 2px rgba(22, 32, 74, 0.06), 0 16px 36px -22px rgba(22, 32, 74, 0.45);
  padding: 20px 20px 10px;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.4;
}

.tnp .site-aside-title {
  margin: 0 0 12px;
  font-size: 21px;
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.2;
  color: var(--ink);
}

.tnp .site-aside ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.tnp .site-aside-list > li {
  margin: 0;
  padding: 10px 0;
  border-top: 1px solid var(--border-soft);
}

.tnp .site-aside a {
  color: var(--blue);
  font-weight: 700;
  text-decoration: none;
}

.tnp .site-aside a:hover {
  color: var(--blue-hover);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

/* The line under a link that says why it is worth opening. */
.tnp .site-aside-note {
  display: block;
  margin-top: 2px;
  color: var(--ink-muted);
  font-size: 14px;
  font-style: italic;
  font-weight: 600;
}

/* This one is read with the link above it, so it keeps that link's size
   and blue instead of the smaller italic used by the other notes.
   Specificity beats the booking-page gutter, which shrinks every note. */
.tnp .site-aside .site-aside-note.site-aside-note-match {
  color: var(--blue);
  font-size: inherit;
  font-style: normal;
  font-weight: 700;
}

/* Samples and outside links under a service: smaller, each led by a
   hooked arrow. The arrow is drawn rather than set as a glyph: "\21B3"
   comes from whatever fallback font a platform has, and in most its head
   is too small to read as an arrow. ::before is the hook (a down stroke
   turning right), ::after the head. Sized in em, so it follows the
   item's font size on both kinds of page. */
.tnp .site-aside-list ul { margin: 6px 0 0; }

.tnp .site-aside-list ul li {
  position: relative;
  margin: 4px 0 0;
  padding: 0 0 0 1.75em;
  font-size: 14px;
}

.tnp .site-aside-list ul li::before {
  content: "";
  position: absolute;
  left: 0.3em;
  top: 0.2em;
  width: 0.75em;
  height: 0.55em;
  border-left: 2px solid var(--blue);
  border-bottom: 2px solid var(--blue);
  border-bottom-left-radius: 3px;
}

.tnp .site-aside-list ul li::after {
  content: "";
  position: absolute;
  left: 1em;
  top: calc(0.75em - 6px);   /* centred on the hook's 2px foot */
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 7px solid var(--blue);
}

.tnp .site-aside-list ul a { font-weight: 600; }

.tnp .site-aside-promo {
  overflow: hidden;
  color: var(--ink-muted);
  font-size: 14px;
  font-weight: 600;
}

.tnp .site-aside-promo img {
  float: right;
  margin: 0 0 6px 12px;
  border-radius: 6px;
}

/* --- 4. Fees --- */
/* Money is the part clients re-read, so the whole section carries a
   heavier weight than the body text around it. */
.tnp .feeSch { font-size: 1.1875rem; font-weight: 700; }

.tnp .fee_notice {
  background: var(--surface-sunk);
  border: 2px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  margin: 12px 0;
  font-weight: 600;
}

.tnp .fee-schedule-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.1875rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.tnp .fee-schedule-table td { padding: 10px 0; border-bottom: 2px solid var(--border); }

.tnp .fee-schedule-table td + td { text-align: right; }

/* Under "10th and up": the volume discounts, the offer to text for more,
   and the HST line. Each sits at the size and weight of the table rows
   rather than as a footnote. */
.tnp .fee-discount {
  margin: 12px 0 0;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--ink);
  text-align: center;
}

.tnp .fee-discount-ask {
  margin: 8px 0 0;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--ink);
  text-align: center;
}

.tnp .fee-discount-ask a { white-space: nowrap; }

.tnp .fee-hst {
  margin: 8px 0 0;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--ink);
  text-align: center;
}

/* EXAMPLE FEE CALCULATION: its own box, set in the page's own face (not
   the serif used on the disclosure links). */
.tnp .fee-example {
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  margin: 16px 0 0;
  text-align: center;
}

.tnp .fee-example-title {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: var(--red);
}

.tnp .fee-example-title .fee-example-count {
  display: block;
  font-weight: 800;
  letter-spacing: 0;
  color: var(--ink);
}

.tnp .fee-example-calc {
  margin: 8px 0 0;
  font-size: 1.125rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
}

.tnp .fee-example-note {
  margin: 6px 0 0;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--ink);
}

.tnp .pricequote { display: flex; flex-wrap: wrap; }

.tnp .pricequote_l, .tnp .pricequote_r { flex: 1 1 9rem; }

.tnp .pricequote_l { margin-right: 24px; }

.tnp .pricequote ul {
  list-style: none;
  margin: 0;
  padding-left: 0;
  font-size: 1.0625rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.tnp .pricequote li {
  margin: 0;
  padding: 6px 0;
  border-bottom: 2px solid var(--border);
}

.tnp .pricequote .centered { flex: 1 1 100%; margin-top: 6px; text-align: center; }

/* The two rules clients most often miss, each in a box of its own. */
.tnp .fee-rule {
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  margin: 16px 0;
  font-size: 1.125rem;
  font-weight: 700;
}

.tnp .fee-rule-blue {
  background: var(--blue-tint);
  border: 2px solid var(--blue-border);
}

.tnp .fee-rule-red {
  background: var(--red-tint);
  border: 2px solid var(--red-border);
}

.tnp .fee-rule p { margin: 0; }

.tnp .fee-rule a { font-weight: 700; white-space: nowrap; }

/* Payment Methods: a blue box that opens, with the browser's own arrow.
   Blue because it is guidance to read; a white card inside holds the
   three methods so they read as a list rather than as more blue text. */
.tnp details.info-details {
  background: var(--blue-tint);
  border: 2px solid var(--blue-border);
  border-radius: var(--radius-sm);
  margin: 16px 0;
  padding: 0 14px;
}

.tnp details.info-details > summary {
  display: list-item;
  list-style-position: inside;
  list-style-type: disclosure-closed;
  padding: 12px 2px 12px 0.92em;
  text-indent: -0.92em;
  color: var(--blue);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
}

.tnp details.info-details[open] > summary { list-style-type: disclosure-open; }

.tnp details.info-details > summary:hover { color: var(--blue-hover); }

.tnp details.info-details > summary::-webkit-details-marker {
  display: inline-block;
  color: currentColor;
  margin-right: 0.35em;
}

.tnp .info-details-body { padding: 0 0 14px; }

.tnp .payment-list {
  list-style: none;
  margin: 0;
  padding: 4px 16px;
  background: var(--surface);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius-sm);
}

.tnp .payment-list li {
  margin: 0;
  padding: 10px 0;
  font-size: 1.0625rem;
  font-weight: 600;
}

.tnp .payment-list li + li { border-top: 1px solid var(--border-soft); }

.tnp .payment-list strong { color: var(--red); font-weight: 800; }

.tnp .payment-receipt {
  margin: 10px 0 0;
  font-size: 1.0625rem;
  font-weight: 600;
}

/* --- 5. Book button --- */
/* "Button 70" from getcssscan.com/css-buttons-examples, as the client
   chose it: the cyan-to-blue gradient and its shadow, with a 25px radius,
   bold Lato and a larger size. An <a>, so it works without script. */
.tnp .book-button {
  display: inline-block;
  margin: 5px;
  padding: 15px 40px;
  border: 0;
  border-radius: 25px;
  background-color: #0D70EA;
  background-image: linear-gradient(#0DCCEA, #0D70EA);
  box-shadow: rgba(0, 0, 0, 0.3) 0 5px 15px;
  box-sizing: border-box;
  color: #FFFFFF;
  cursor: pointer;
  font-family: var(--display);
  font-size: 1.25em;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.32);
  white-space: nowrap;
  -webkit-user-select: none;
  user-select: none;
  touch-action: manipulation;
  -webkit-transition: box-shadow 0.15s ease, -webkit-transform 0.15s ease, -webkit-filter 0.15s ease;
  transition: box-shadow 0.15s ease, transform 0.15s ease, filter 0.15s ease;
}

.tnp .book-button:hover {
  color: #FFFFFF;
  text-decoration: none;
  -webkit-filter: brightness(1.06) saturate(1.08);
  filter: brightness(1.06) saturate(1.08);
  box-shadow: rgba(0, 0, 0, 0.32) 0 8px 20px;
  -webkit-transform: translateY(-1px);
  transform: translateY(-1px);
}

.tnp .book-button:active {
  -webkit-transform: translateY(1px);
  transform: translateY(1px);
  box-shadow: rgba(0, 0, 0, 0.3) 0 3px 8px;
}

.tnp .book-button:focus {
  outline: 3px solid #0D70EA;
  outline-offset: 3px;
}
.tnp .book-button:focus:not(:focus-visible) {
  outline: none;
}

@media (prefers-reduced-motion: reduce) {
  .tnp .book-button { -webkit-transition: none; transition: none; }
  .tnp .book-button:hover,
  .tnp .book-button:active { -webkit-transform: none; transform: none; }
}

/* --- 6. Standing notice --- */
/* On the home page and above the booking form. The box of the red "more
   than 30 notarizations" rule (.fee-rule-red, "Fees"), with its text all
   in ink. */
.tnp .standing-notice {
  background: var(--red-tint);
  border: 2px solid var(--red-border);
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  margin: 16px 0;
  color: var(--ink);
  font-size: 1.125rem;
  font-weight: 700;
  text-align: center;
}

.tnp .standing-notice h2 { margin: 0 0 6px; color: var(--ink); }
.tnp .standing-notice p { margin: 0; }
