/* kasslaw.com — additions to the carried theme CSS. Only what the static site needs that WordPress did with plugins/JS. */

/* forms: status line, honeypot (the Gravity Form honeypot keeps the theme's own .gform_validation_container hiding) */
.form__msg { margin: .75em 0 0; font-size: 15px; line-height: 1.5; }
.form__msg:empty { display: none; }
.form__msg--ok { color: #1d5c3a; font-weight: 600; }
.form__msg--err { color: #a12222; font-weight: 600; }
.ks-hp, .gform_validation_container { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* side drawer: Hub's script also shows the backdrop sibling; the drawer is moved, so give it its own */
.ld-module-dropdown.is-active { box-shadow: 0 0 0 100vmax rgba(0,0,0,.35), 0 0 50px #00000026; }

/* cookie banner (replaces the Complianz banner of the live site; plugin-free). Scoped under #cc-banner so the theme's
   input/button styles cannot reach it. */
#cc-banner { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 9999; max-width: 760px; margin: 0 auto; background: #fff; color: #232A3B;
  border-radius: 6px; box-shadow: 0 12px 40px rgba(0,0,0,.25); font: 15px/1.5 'Libre Franklin', Arial, sans-serif; text-align: left; }
#cc-banner[hidden], #cc-banner [hidden] { display: none !important; }
#cc-banner .cc-inner { padding: 18px 20px; }
#cc-banner .cc-title { font-family: Marcellus, Georgia, serif; font-size: 20px; line-height: 1.3; margin: 0 0 6px; color: #0A1628; }
#cc-banner .cc-text { margin: 0 0 12px; color: #3d3d44; font-size: 15px; }
#cc-banner .cc-text a { color: #1d4042; text-decoration: underline; }
#cc-banner .cc-choices { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0 0 12px; }
#cc-banner .cc-choices label { display: inline-flex; gap: 6px; align-items: center; margin: 0; font-size: 15px; color: #232A3B; }
#cc-banner .cc-choices input { width: 16px; height: 16px; margin: 0; appearance: auto; -webkit-appearance: checkbox; position: static; opacity: 1; visibility: visible; }
#cc-banner .cc-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
#cc-banner .cc-btn { font: 600 14px/1.2 'Libre Franklin', Arial, sans-serif; letter-spacing: normal; text-transform: none; padding: 10px 16px; border: 1px solid #1d4042;
  background: #fff; color: #1d4042; border-radius: 3px; cursor: pointer; width: auto; height: auto; min-height: 0; box-shadow: none; }
#cc-banner .cc-btn.cc-accept { background: #1d4042; color: #fff; }
#cc-banner .cc-btn.cc-link { border-color: transparent; text-decoration: underline; }
@media (max-width: 480px) { #cc-banner .cc-btn { flex: 1 1 auto; } }

/* Privacy Center (JB standard, modeled on the CGH Privacy Center) */
.pc-wrap { max-width: 1170px; margin: 0 auto; padding: 70px 15px 90px; color: #3d3d44; font-size: 16px; line-height: 1.65; }
.pc-wrap h2 { margin: 1.6em 0 .4em; font-size: 34px; }
.pc-wrap h2:first-child { margin-top: 0; }
.pc-lede { font-size: 18px; max-width: 820px; }
.pc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; margin: 18px 0 10px; }
.pc-card { background: #EBE9E4; border-top: 3px solid #3a2a26; padding: 22px 22px 18px; }
.pc-card h3 { font-size: 22px; margin: 0 0 6px; }
.pc-card p { margin: 0 0 12px; font-size: 15px; }
.pc-card a, .pc-card button.pc-link { font-weight: 600; color: #0A1628; text-decoration: underline; text-underline-offset: 3px; background: none; border: 0; padding: 0; cursor: pointer; font-size: 15px; }
.pc-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0; }
.pc-actions button { font: 500 15px 'Libre Franklin', Arial, sans-serif; letter-spacing: 1px; padding: 14px 22px; background: #3a2a26; color: #fff; border: 0; cursor: pointer; }
.pc-actions button:hover, .pc-actions button:focus-visible { background: #1d4042; }
.pc-panel { background: #fff; border: 1px solid #dcd8cf; padding: 26px; margin-top: 10px; max-width: 760px; }
.pc-panel[hidden] { display: none; }
.pc-panel h3 { margin-top: 0; }
.pc-panel label { display: block; font-weight: 600; font-size: 14px; margin: 12px 0 4px; color: #232A3B; }
.pc-panel input[type=text], .pc-panel input[type=email], .pc-panel input[type=tel], .pc-panel textarea, .pc-panel select {
  width: 100%; padding: 12px 14px; border: 1px solid #c9c5bb; background: #f6f5f2; font: 16px 'Libre Franklin', Arial, sans-serif; color: #232A3B; }
.pc-panel .pc-check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; }
.pc-panel .pc-check input { margin-top: 5px; }
.pc-panel button[type=submit] { margin-top: 18px; font: 600 15px 'Libre Franklin', Arial, sans-serif; letter-spacing: 1px; padding: 14px 26px; background: #B08A62; color: #fff; border: 0; cursor: pointer; }
.pc-contact { margin-top: 40px; }
.pc-doc { max-width: 900px; }
.pc-doc h2 { font-size: 28px; }
.pc-doc h3 { font-size: 21px; margin: 1.3em 0 .3em; }
.pc-back { display: inline-block; margin-bottom: 26px; font-weight: 600; color: #0A1628; text-decoration: underline; }
@media (max-width: 767px) { .pc-wrap { padding: 44px 16px 60px; } .pc-wrap h2 { font-size: 28px; } }
/* inline "Open Cookie Preferences" buttons inside policy text: look like the surrounding links, not a theme button */
.pc-wrap button.pc-link { display: inline; background: none !important; border: 0 !important; padding: 0 !important; margin: 0; box-shadow: none !important;
  font: inherit; font-weight: 600; letter-spacing: normal; text-transform: none; color: #0A1628 !important; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; height: auto; width: auto; }

/* header: phone as a button, same format as Make A Payment (kp0006h) */
.elementor-6 .elementor-element.elementor-element-934883f .ks-call-btn { background-color: #3A2922; color: #fff; fill: #fff; white-space: nowrap; }
.elementor-6 .elementor-element.elementor-element-934883f .ks-call-btn:hover,
.elementor-6 .elementor-element.elementor-element-934883f .ks-call-btn:focus { background-color: #363C3E; color: #fff; }
.ks-call-btn .btn-txt { display: inline-flex; align-items: center; gap: 9px; }
.ks-call-ico { flex: none; }

/* header: practice-area tiles under the header line — animated glass (desktop header only; hidden once the header sticks) */
.ks-tiles { padding: 12px 25px 0; }
.ks-tiles ul { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; }
.ks-tiles li { margin: 0; padding: 0; }
.ks-tile { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; height: 100%; min-height: 40px;
  padding: 8px 12px; text-align: center; font: 500 12.5px/1.25 'Libre Franklin', Arial, sans-serif; letter-spacing: .3px; color: #fff !important;
  text-decoration: none; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.28); border-radius: 3px;
  -webkit-backdrop-filter: blur(10px) saturate(140%); backdrop-filter: blur(10px) saturate(140%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 4px 14px rgba(0,0,0,.12);
  transition: transform .25s ease, background-color .25s ease, border-color .25s ease, box-shadow .25s ease; }
.ks-tile::after { content: ""; position: absolute; inset: -1px auto -1px -60%; width: 45%; pointer-events: none;
  background: linear-gradient(105deg, transparent, rgba(255,255,255,.28), transparent); transform: skewX(-18deg);
  animation: ks-sheen 7s ease-in-out infinite; animation-delay: calc(var(--i, 0) * .35s); }
@keyframes ks-sheen { 0%, 70% { left: -60%; } 100% { left: 130%; } }
.ks-tile:hover, .ks-tile:focus-visible { transform: translateY(-2px); background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.55);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 8px 22px rgba(0,0,0,.22); outline: none; }
.ks-tile[aria-current="page"] { background: rgba(58,41,34,.72); border-color: rgba(255,255,255,.45); }
.is-stuck .ks-tiles { display: none; }
@media (max-width: 1199px) { .ks-tiles { display: none; } }
@media (prefers-reduced-motion: reduce) { .ks-tile::after { animation: none; display: none; } .ks-tile { transition: none; } }

/* header: two buttons now share the right column — tighter buttons, rebalanced columns so nothing overlaps the menu */
#header .elementor-6 .elementor-element.elementor-element-kp0006h .btn,
#header .elementor-6 .elementor-element.elementor-element-934883f .ks-call-btn { padding-left: 24px; padding-right: 24px; letter-spacing: 1px; }
#header .elementor-6 .elementor-element.elementor-element-kp0006h > .elementor-widget-container,
#header .elementor-6 .elementor-element.elementor-element-934883f > .elementor-widget-container { margin-right: 12px; }
@media (max-width: 1365px) {
  #header .elementor-6 .elementor-element.elementor-element-kp0006h .btn,
  #header .elementor-6 .elementor-element.elementor-element-934883f .ks-call-btn { padding-left: 16px; padding-right: 16px; letter-spacing: .5px; font-size: 14px; }
  #header .elementor-6 .elementor-element.elementor-element-kp0006h > .elementor-widget-container,
  #header .elementor-6 .elementor-element.elementor-element-934883f > .elementor-widget-container { margin-right: 8px; }
}
@media (min-width: 1200px) and (max-width: 1299px) {
  #header .elementor-6 .elementor-element.elementor-element-f91f55f { --lqd-menu-items-right-padding: 15px; --lqd-menu-items-left-padding: 15px; }
}
@media (min-width: 1200px) {
  #header .elementor-6 .elementor-element.elementor-element-e327bf8 { flex: 1 1 0; width: auto; min-width: 0; }
  #header .elementor-6 .elementor-element.elementor-element-412ab7c { flex: 0 0 auto; width: auto; }
}

/* Home hero: eyebrow + two-line headline (2026-10-30) */
.ks-hero-eyebrow { margin: 0 0 18px; font: 600 15px/1.3 'Libre Franklin', Arial, sans-serif; letter-spacing: 3px; text-transform: uppercase; color: #E2C79F; text-shadow: 0 1px 6px rgba(10,22,40,.75); }
.elementor-element-a8e9068 .ld-fh-element.ks-hero-h1 { font-size: 64px; line-height: 1.08; }
.ks-hero-h1 .ks-line { display: block; }
@media (max-width: 767px) {
  .ks-hero-eyebrow { font-size: 12px; letter-spacing: 2px; margin-bottom: 12px; }
  .elementor-4450 .elementor-element.elementor-element-a8e9068 .ld-fh-element.ks-hero-h1 { font-size: 9.5vw; }
}
