/* TWS search feature preview 5.19.2ae: namespaced and isolated */
.tws-search-utility{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;margin-left:8px;vertical-align:middle}
.tws-search-utility svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.8;fill:none}
.tws-search-utility:hover,.tws-search-utility:focus-visible{opacity:.72;outline-offset:3px}
.tws-search-mobile{display:none!important}
.tws-search-backdrop[hidden],.tws-search-dialog[hidden]{display:none!important}
.tws-search-backdrop{position:fixed;inset:0;background:rgba(13,34,27,.55);z-index:99990;backdrop-filter:blur(3px)}
.tws-search-dialog{position:fixed;top:min(13vh,115px);left:50%;transform:translateX(-50%);width:min(670px,calc(100vw - 32px));max-height:min(78vh,720px);overflow:hidden;display:flex;flex-direction:column;background:#fffdf9;color:#203a32;border-radius:15px;box-shadow:0 22px 65px rgba(0,0,0,.25);z-index:99991;font-family:inherit}
.tws-search-dialog *{box-sizing:border-box}
.tws-search-top{padding:22px 25px 13px;border-bottom:1px solid #e8e8e1}
.tws-search-topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.tws-search-title{font-family:Georgia,serif;font-size:24px;font-weight:400;line-height:1.2;margin:0;color:#1d3d32}
.tws-search-close{border:0;background:transparent;color:#42584f;cursor:pointer;font-size:25px;line-height:1;padding:2px 6px}
.tws-search-field{display:flex;align-items:center;gap:11px;border:1px solid #aebcb3;border-radius:8px;background:#fff;padding:10px 13px}
.tws-search-field:focus-within{outline:2px solid #356c56;outline-offset:2px}
.tws-search-field svg{width:19px;height:19px;flex-shrink:0;stroke:#517463;fill:none;stroke-width:1.8}
.tws-search-input{flex:1;min-width:0;width:100%;border:0!important;box-shadow:none!important;outline:0!important;background:transparent!important;color:#243a31!important;font-size:16px!important;line-height:1.6!important;margin:0!important;padding:0!important;font-family:inherit!important}
.tws-search-body{overflow:auto;padding:14px 25px 25px;overscroll-behavior:contain}
.tws-search-help{color:#65736d;font-size:13px;margin:4px 0 13px}
.tws-search-suggestions{display:flex;gap:8px;flex-wrap:wrap}
.tws-search-chip{border:1px solid #c9d6cc;border-radius:30px;background:#f5f7f2;color:#31513e;padding:7px 12px;cursor:pointer;font-size:13px;font-family:inherit}
.tws-search-chip:hover{background:#e9f0e9}
.tws-search-result{display:block;text-decoration:none!important;padding:14px 3px;border-bottom:1px solid #e9ede7;color:#1d3d32!important}
.tws-search-result:hover,.tws-search-result:focus-visible{background:#f2f7f2;outline-offset:1px}
.tws-search-result-title{display:block;font-size:17px;font-weight:600;color:#1c4834}
.tws-search-result-section{display:block;font-size:13px;color:#65796a;margin-top:3px}
.tws-search-result-desc{display:block;color:#596a60;font-size:14px;line-height:1.5;margin-top:5px}
.tws-search-empty{padding:20px 0;color:#5b6a61;font-size:15px}
.tws-search-count{font-size:13px;color:#64746b;margin:0 0 5px}
html.tws-search-locked,body.tws-search-locked{overflow:hidden!important}
[id^="search-"]{scroll-margin-top:105px}
@media(max-width:870px){.utility .wrap .tws-search-actions{margin-left:auto}.tws-search-utility{display:none!important}.tws-search-mobile{display:flex!important;align-items:center;gap:9px;cursor:pointer;background:transparent;border:0;font:inherit;color:inherit;text-align:left;width:100%;padding:12px 14px}.tws-search-mobile svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8}}
/* 5.19.2al — Mobile search viewport fit. Use inset-based sizing instead of 100vw and translateX, which can overflow on mobile Safari. */
@media(max-width:870px){
 .tws-search-dialog{
  box-sizing:border-box;
  left:max(12px,env(safe-area-inset-left,0px));
  right:max(12px,env(safe-area-inset-right,0px));
  width:auto;
  max-width:670px;
  margin-inline:auto;
  transform:none;
 }
}
@media(max-width:560px){.tws-search-dialog{top:7vh;max-height:86vh;max-height:86dvh}.tws-search-top{padding:18px 17px 12px}.tws-search-body{padding:12px 17px 20px}.tws-search-title{font-size:21px}}
@media(prefers-reduced-motion:reduce){.tws-search-dialog,.tws-search-backdrop{animation:none!important}}

/* 5.19.2ae: Keep utility telephone and search adjacent, without altering the primary navigation. */
.utility .wrap .tws-search-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:24px;white-space:nowrap;margin-left:0}
.utility .wrap .tws-search-actions .tws-search-utility{margin-left:0;flex:0 0 30px}
.tws-search-advisory{padding:13px 15px;margin:0 0 14px;border:1px solid #ead4d2;border-radius:9px;background:#fdf8f7;color:#343d38}
.tws-search-advisory-heading{display:flex;align-items:center;gap:7px;margin:0 0 6px;color:#a53e3b;font-size:15px;font-weight:650;line-height:1.35}
.tws-search-advisory-heading svg{height:17px;width:17px;stroke:#a53e3b;fill:none;stroke-width:1.9;flex-shrink:0}
.tws-search-advisory p{margin:0;font-size:13px;line-height:1.55;color:#343d38}
.tws-search-contact-answer{margin:0 0 13px;padding:12px 15px;background:#f1f6f0;border-radius:8px;color:#263d31;font-size:14px;line-height:1.6}
.tws-search-contact-answer a{color:#24573e;text-decoration:underline;text-underline-offset:2px}
.tws-search-contact-answer strong{display:block;margin-bottom:3px}
@media(max-width:870px){.utility .wrap .tws-search-actions{gap:0}.utility .wrap .tws-search-actions .tws-search-utility{display:none!important}}

/* 5.19.2ah — inline autocomplete, no additional stylesheet or external service. */
.tws-search-autocomplete{border:1px solid #e2e9e1;border-radius:9px;overflow:hidden;margin:0 0 14px;background:#fff}
.tws-search-autocomplete-label{margin:0;padding:9px 13px 5px;color:#65736d;font-size:12px;font-weight:600;letter-spacing:.015em}
.tws-search-autocomplete-item{display:flex;align-items:center;gap:11px;width:100%;min-height:44px;padding:10px 13px;text-align:left;background:transparent;border:0;color:#244638;font:inherit;font-size:14px;line-height:1.35;cursor:pointer}
.tws-search-autocomplete-item+.tws-search-autocomplete-item{border-top:1px solid #edf0eb}
.tws-search-autocomplete-item:hover,.tws-search-autocomplete-item:focus-visible{background:#f1f6f0;outline:2px solid #356c56;outline-offset:-2px}
.tws-search-autocomplete-icon{font-size:21px;color:#6c8676;line-height:1;flex:0 0 18px;text-align:center}

/* 5.19.2am — Prevent Safari text-field focus magnification on mobile.
   No viewport scale restrictions; user pinch-to-zoom remains available. */
@media(max-width:870px){
 .tws-search-input{font-size:17px!important;-webkit-text-size-adjust:100%;text-size-adjust:100%}
}

/* 5.19.2an — iPhone Safari focused-search zoom guard.
   Keep the editable search field comfortably above Safari's 16px focus threshold.
   Preserve user-controlled pinch zoom; do not restrict viewport scaling. */
@media (max-width: 870px) {
  .tws-search-dialog .tws-search-input {
    font-size: 20px !important;
    line-height: 1.4 !important;
    min-height: 30px;
    -webkit-appearance: none;
    appearance: none;
    transform: none !important;
  }
}

/* rc.7: Fit the preferred complete search prompt in portrait without changing
   entered text size (20px on phones) or Safari's focus-zoom protection.
   Limit size/spacing adjustments to the placeholder, not typed text. */
@media (max-width: 590px) and (orientation: portrait) {
  .tws-search-dialog .tws-search-input::placeholder {
    font-size: clamp(10.5px, calc(5vw - 5.5px), 15px);
    letter-spacing: -.35px;
  }
}

/* 5.19.2aq — Portrait header icon alignment.
   Restore the approved 5.19.2ao horizontal position; use a shared 36px
   control box and centered vector/three-line glyphs to avoid font-baseline
   misalignment between the magnifying glass and hamburger character. */
.tws-header-controls { display:contents; }
.tws-search-header { display:none; }
@media (max-width:590px) and (orientation:portrait) {
  .header .wrap { gap:10px; }
  .header .tws-header-controls {
    display:flex; align-items:center; justify-content:flex-end;
    flex:0 0 auto; gap:10px;
  }
  .header .tws-header-controls .tws-search-header,
  .header .tws-header-controls .menu {
    box-sizing:border-box;
    display:inline-flex; align-items:center; justify-content:center;
    width:36px; min-width:36px; height:40px;
    padding:0; margin:0; flex:0 0 36px;
    border:0; background:transparent; color:var(--navy);
    cursor:pointer; vertical-align:middle;
  }
  .header .tws-search-header svg {
    display:block; width:21px; height:21px; flex:none;
    stroke:currentColor; stroke-width:1.9; fill:none;
  }
  /* The text hamburger glyph's font baseline was the cause of the apparent
     vertical mismatch. Render three centered bars within the existing button
     only in portrait, retaining its original label and click behavior. */
  .header .tws-header-controls .menu { font-size:0; line-height:0; }
  .header .tws-header-controls .menu::before {
    content:""; display:block; width:22px; height:20px; flex:none;
    background:
      linear-gradient(currentColor,currentColor) center 2px / 22px 2px no-repeat,
      linear-gradient(currentColor,currentColor) center 9px / 22px 2px no-repeat,
      linear-gradient(currentColor,currentColor) center 16px / 22px 2px no-repeat;
  }
  .header .tws-search-header:focus-visible,
  .header .tws-header-controls .menu:focus-visible {
    outline:2px solid currentColor; outline-offset:2px; border-radius:4px;
  }
  .header .nav .tws-search-mobile { display:none!important; }
}
@media (max-width:360px) and (orientation:portrait) {
  .header .wrap { gap:8px; }
  .header .brand { min-width:0; gap:7px; font-size:.82rem; }
  .header .brand img { width:36px; height:36px; flex:0 0 36px; }
  .header .tws-header-controls { gap:6px; }
  .header .tws-header-controls .tws-search-header,
  .header .tws-header-controls .menu {
    width:32px; min-width:32px; flex-basis:32px;
  }
}

/* 5.19.3-rc.3: New informational-answer elements, within the existing search component. */
.tws-search-privacy{font-size:12px;line-height:1.45;color:#64746b;margin:9px 0 0}
.tws-search-answer{margin:1px 0 14px;padding:14px 16px;border:1px solid #dbe7dc;border-radius:9px;background:#f1f6f0;color:#263d31}
.tws-search-answer-title{font-size:15px;line-height:1.4;font-weight:650;margin:0 0 6px;color:#214b37}
.tws-search-answer p{font-size:14px;line-height:1.6;margin:0}
.tws-search-answer-links{display:flex;gap:8px 16px;flex-wrap:wrap;margin-top:10px}
.tws-search-answer-links a{color:#24573e;font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.tws-search-answer-links a:focus-visible{outline:2px solid #356c56;outline-offset:3px}
.tws-search-personal,.tws-search-urgent{background:#fdf8f7;border-color:#ead4d2}
.tws-search-personal .tws-search-answer-title,.tws-search-urgent .tws-search-answer-title{color:#943a37}
.tws-search-fallback{background:#fffdf9;border-color:#e2e9e1}

/* rc.4: refine existing Search only; clear action, categorized results, screen-reader result status. */
.tws-search-clear{flex:0 0 auto;border:0;border-radius:4px;background:transparent;color:#42584f;font:inherit;font-size:22px;line-height:1;min-width:30px;min-height:30px;cursor:pointer;padding:0}
.tws-search-clear[hidden]{display:none}
.tws-search-clear:hover{background:#edf2ec}
.tws-search-clear:focus-visible{outline:2px solid #356c56;outline-offset:1px}
.tws-search-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.tws-search-result-kind{display:block;font-size:11px;font-weight:650;color:#4b745e;letter-spacing:.025em;margin-bottom:3px}

.tws-search-input::-webkit-search-cancel-button{display:none}
