/*
Theme Name: Bolls Law
Theme URI: https://bollslaw.com
Author: Bolls Law
Description: Boutique law firm theme — navy & gold, Inter + Playfair Display.
Version: 1.1.0
License: GPL-2.0-or-later
Text Domain: bolls-law
*/

.glass-nav{background:rgba(10,31,68,.98);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.05)}
.practice-card{transition:all .4s ease}
.practice-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -10px rgba(10,31,68,.08)}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease-out,transform .8s cubic-bezier(.22,1,.36,1)}
.reveal.active{opacity:1;transform:translateY(0)}
.hero-photo{box-shadow:0 20px 40px -10px rgba(0,0,0,.5)}

/* Gravity Forms -> match design */
.bl-form .gform_wrapper{margin:0}
/* GF lays out its own field grid (incl. First/Last and Email/Confirm pairs);
   we only add vertical rhythm, never override the columns. */
.bl-form .gform_wrapper .gfield{margin-bottom:1.35rem}
.bl-form .gform_wrapper .gform_fields{row-gap:1.35rem}
.bl-form .gform_wrapper .gfield_label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bl-form .gform_wrapper input[type=text],
.bl-form .gform_wrapper input[type=email],
.bl-form .gform_wrapper input[type=tel],
.bl-form .gform_wrapper input[type=url],
.bl-form .gform_wrapper textarea,
.bl-form .gform_wrapper select{
  background:transparent!important;border:none!important;border-bottom:1px solid rgba(255,255,255,.2)!important;
  color:#fff!important;border-radius:0!important;padding:0 0 .75rem!important;font-size:.875rem!important;
  font-family:Inter,sans-serif!important;box-shadow:none!important;width:100%!important;transition:all .3s ease}
.bl-form .gform_wrapper input::placeholder,.bl-form .gform_wrapper textarea::placeholder{color:rgba(255,255,255,.4);font-weight:300}
.bl-form .gform_wrapper input:focus,.bl-form .gform_wrapper textarea:focus{outline:none!important;border-color:#c69648!important;box-shadow:0 1px 0 0 #c69648!important}
.bl-form .gform_wrapper .gform_footer,
.bl-form .gform_wrapper .gform-footer{margin:1.5rem 0 0;padding:0}
.bl-form .gform_wrapper input[type=submit],
.bl-form .gform_wrapper button[type=submit],
.bl-form .gform_wrapper .gform_button,
.bl-form .gform_wrapper button.gform_button{
  width:100%;color:#fff;border:none;border-radius:2px;padding:1rem 2rem;
  font-family:Inter,sans-serif;font-weight:500;letter-spacing:.025em;cursor:pointer}
.bl-form .gform_wrapper .gfield_required{color:#c69648}
.bl-form .gform_wrapper .validation_message,.bl-form .gform_wrapper .gfield_validation_message{
  background:transparent!important;border:none!important;color:#ffb4b4!important;padding:.5rem 0 0!important;font-size:.75rem!important}
.bl-form .gform_wrapper .gform_validation_errors{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,180,180,.3)!important;color:#ffd9d9!important;border-radius:2px}
.bl-form .gform_wrapper .gform_confirmation_message{color:#fff;font-size:1rem;line-height:1.7}

/* WYSIWYG content on inner pages */
.bl-prose h1,.bl-prose h2,.bl-prose h3,.bl-prose h4,.bl-prose h5,.bl-prose h6{
  font-family:'Playfair Display',serif;color:#0a1f44;font-weight:700;margin:2rem 0 1rem;line-height:1.25}
.bl-prose h1{font-size:2.25rem}.bl-prose h2{font-size:1.875rem}.bl-prose h3{font-size:1.5rem}
.bl-prose h4{font-size:1.25rem}.bl-prose h5{font-size:1.125rem}
.bl-prose p{margin-bottom:1.25rem;line-height:1.8;color:#475569;font-weight:300}
.bl-prose ul,.bl-prose ol{margin:0 0 1.5rem 1.25rem;color:#475569;font-weight:300}
.bl-prose li{margin-bottom:.6rem;line-height:1.7}
.bl-prose ul{list-style:disc}.bl-prose ol{list-style:decimal}
.bl-prose a{color:#c69648;text-decoration:underline;text-underline-offset:3px}
.bl-prose a:hover{color:#0a1f44}
.bl-prose strong{color:#0a1f44;font-weight:600}
.bl-prose img{max-width:100%;height:auto;border-radius:2px;margin:1.5rem 0}
.bl-prose blockquote{border-left:2px solid #c69648;padding-left:1.5rem;font-style:italic;color:#64748b;margin:2rem 0}
.bl-prose hr{border:none;border-top:1px solid #e2e8f0;margin:2.5rem 0}
.bl-prose table{width:100%;border-collapse:collapse;margin:1.5rem 0}
.bl-prose th,.bl-prose td{border:1px solid #e2e8f0;padding:.75rem;text-align:left}
.bl-prose th{background:#f8fafc;color:#0a1f44;font-weight:600}

/* Dropdown */
.bl-has-children{position:relative}
.bl-submenu{position:absolute;top:100%;left:50%;transform:translateX(-50%);min-width:250px;background:#0a1f44;
  border:1px solid rgba(255,255,255,.08);border-radius:2px;padding:.5rem 0;opacity:0;visibility:hidden;
  transition:opacity .25s ease,visibility .25s ease;box-shadow:0 20px 40px -10px rgba(0,0,0,.5);z-index:60}
.bl-has-children:hover .bl-submenu{opacity:1;visibility:visible}
.bl-submenu a{display:block;padding:.7rem 1.25rem;font-size:.8125rem;color:rgba(255,255,255,.85);transition:all .2s ease}
.bl-submenu a:hover{color:#c69648;background:rgba(255,255,255,.04)}

/* ===== Elegant gold gradient buttons ===== */
.btn-gold{
  background-image:linear-gradient(135deg,#e3c68f 0%,#c69648 45%,#ad7c33 100%);
  color:#fff!important;border:none;
  box-shadow:0 4px 14px -4px rgba(198,150,72,.5), inset 0 1px 0 rgba(255,255,255,.28);
  transition:background-image .3s ease, box-shadow .3s ease, transform .3s ease;
}
.btn-gold:hover{
  background-image:linear-gradient(135deg,#f0d6a8 0%,#d4a659 45%,#bd8c40 100%);
  box-shadow:0 10px 24px -6px rgba(198,150,72,.65), inset 0 1px 0 rgba(255,255,255,.4);
  transform:translateY(-1px);
}
.btn-gold-outline{
  border:1px solid #c69648;color:#c69648;background-image:none;
  transition:background-image .3s ease,color .3s ease,box-shadow .3s ease,transform .3s ease;
}
.btn-gold-outline:hover{
  background-image:linear-gradient(135deg,#e3c68f 0%,#c69648 45%,#ad7c33 100%);
  color:#fff!important;border-color:transparent;
  box-shadow:0 8px 20px -6px rgba(198,150,72,.6);transform:translateY(-1px);
}
.bl-form .gform_wrapper input[type=submit],
.bl-form .gform_wrapper button[type=submit],
.bl-form .gform_wrapper .gform_button,
.bl-form .gform_wrapper button.gform_button{
  background:none!important;background-color:transparent!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important;
  background-image:linear-gradient(135deg,#e3c68f 0%,#c69648 45%,#ad7c33 100%)!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important;
  box-shadow:0 4px 14px -4px rgba(198,150,72,.5), inset 0 1px 0 rgba(255,255,255,.28)!important;
  transition:background-image .3s ease,box-shadow .3s ease,transform .3s ease!important;
}
.bl-form .gform_wrapper input[type=submit]:hover,
.bl-form .gform_wrapper button[type=submit]:hover,
.bl-form .gform_wrapper .gform_button:hover,
.bl-form .gform_wrapper button.gform_button:hover{
  background-image:linear-gradient(135deg,#f0d6a8 0%,#d4a659 45%,#bd8c40 100%)!important;
  box-shadow:0 10px 24px -6px rgba(198,150,72,.65), inset 0 1px 0 rgba(255,255,255,.4)!important;
  transform:translateY(-1px)!important;
}

/* ===== Footer accordions (mobile) ===== */
.bl-fdrop summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.bl-fdrop summary::-webkit-details-marker{display:none}
.bl-fdrop summary .bl-fchev{transition:transform .3s ease}
.bl-fdrop[open] summary .bl-fchev{transform:rotate(180deg)}
.bl-fdrop .bl-fbody{padding-top:1.25rem}
@media(min-width:1024px){
  .bl-fdrop summary{cursor:default;justify-content:flex-start}
  .bl-fdrop summary .bl-fchev{display:none}
}
@media(max-width:1023px){
  .bl-fdrop{border-bottom:1px solid rgba(255,255,255,.07);padding-bottom:1rem}
  .bl-fdrop .bl-fbody{padding-bottom:.5rem}
}

/* ===== Light form variant (for the white contact section) ===== */
.bl-form--light .gform_wrapper input[type=text],
.bl-form--light .gform_wrapper input[type=email],
.bl-form--light .gform_wrapper input[type=tel],
.bl-form--light .gform_wrapper input[type=url],
.bl-form--light .gform_wrapper textarea,
.bl-form--light .gform_wrapper select{
  color:#0a1f44!important;
  border-bottom:1px solid rgba(10,31,68,.18)!important;
}
.bl-form--light .gform_wrapper input::placeholder,
.bl-form--light .gform_wrapper textarea::placeholder{color:#94a3b8;font-weight:300}
.bl-form--light .gform_wrapper input:focus,
.bl-form--light .gform_wrapper textarea:focus{
  border-color:#c69648!important;box-shadow:0 1px 0 0 #c69648!important}
.bl-form--light .gform_wrapper .gform_confirmation_message{color:#0a1f44}
.bl-form--light .gform_wrapper .validation_message,
.bl-form--light .gform_wrapper .gfield_validation_message{color:#b91c1c!important}
.bl-form--light .gform_wrapper .gform_validation_errors{
  background:#fff5f5!important;border:1px solid #fecaca!important;color:#b91c1c!important}

/* Submit button label must stay solid white (GF theme otherwise recolours it) */
.bl-form .gform_wrapper input[type=submit],
.bl-form .gform_wrapper button[type=submit],
.bl-form .gform_wrapper .gform_button,
.bl-form .gform_wrapper button.gform_button,
.bl-form .gform_wrapper button.gform_button *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background-clip:border-box!important;
  -webkit-background-clip:border-box!important;
  text-shadow:none!important;
}

/* Submit label stays solid white on the gold gradient */
.bl-form .gform_wrapper input[type=submit],
.bl-form .gform_wrapper button[type=submit],
.bl-form .gform_wrapper .gform_button,
.bl-form .gform_wrapper button.gform_button,
.bl-form--light .gform_wrapper button.gform_button{
  color:#fff!important;-webkit-text-fill-color:#fff!important;
  background-clip:border-box!important;-webkit-background-clip:border-box!important;
}

/* Focus / practice cards: centred on mobile, left-aligned from lg up */
@media (max-width:1023px){
  .practice-card{text-align:center}
  .practice-card > div:first-child{justify-content:center}
}

.bl-form--light .gform_wrapper input[type=submit],
.bl-form--light .gform_wrapper button[type=submit],
.bl-form--light .gform_wrapper .gform_button,
.bl-form--light .gform_wrapper button.gform_button{
  color:#fff!important;-webkit-text-fill-color:#fff!important;}

/* ===== Parallax image bands =====
   The image layer is taller than its frame; footer.php slides it upward as the
   band travels through the viewport, so the crop starts at the top of the photo
   and pans downward on scroll. */


/* Gravity Forms honeypot must never be visible (the .gform_fields grid was
   overriding GF's own hiding rule, exposing a stray "X/Twitter" field). */
.bl-form .gform_wrapper .gform_validation_container,
.bl-form .gform_wrapper .gfield--type-honeypot,
.bl-form .gform_wrapper li.gform_validation_container,
.bl-form .gform_wrapper div.gform_validation_container{
  display:none!important;
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;height:1px!important;overflow:hidden!important;
}

/* ===== bl-ai =====
   The Lady Justice photo has the statue on the left and dark space to the right,
   so it doubles as a section background: image left, copy over the dark side.
   The veil is a horizontal gradient on desktop and a vertical one on mobile,
   where the layout stacks. */
.bl-ai{position:relative;overflow:hidden;background:#050d1f}
.bl-ai__img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:left center;
}
.bl-ai__veil{
  position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(5,13,31,.10) 0%,
    rgba(5,13,31,.45) 34%,
    rgba(10,31,68,.92) 58%,
    rgba(10,31,68,.97) 100%);
}
@media (max-width:1023px){
  .bl-ai__img{object-position:28% top;opacity:.6}
  .bl-ai__veil{
    background:linear-gradient(180deg,
      rgba(5,13,31,.55) 0%,
      rgba(10,31,68,.90) 40%,
      rgba(10,31,68,.97) 100%);
  }
}
