/*
Theme Name: Jack & Lim Law
Theme URI: https://jacklimlaw.com
Author: Law Chambers of Jack & Lim
Author URI: https://jacklimlaw.com
Description: A refined, standalone WordPress theme for Law Chambers of Jack & Lim (Advocates & Solicitors). Elementor-compatible with global colors and fonts, a full Customizer for brand colours, contact details and copy, and repeater-driven Services, FAQs and People. Cream & burgundy palette, Cormorant Garamond + Archivo typography.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jacklim-law
Tags: business, portfolio, elementor, custom-colors, custom-logo, custom-menu, featured-images, full-width-template, sticky-post, threaded-comments, translation-ready
*/

/* ==========================================================================
   DESIGN TOKENS  (all overridable from the Customizer -> wp_head)
   ========================================================================== */
:root{
  --jl-bg:        #F5F1E8;  /* page cream            */
  --jl-ink:       #2E0D16;  /* body text / darkest   */
  --jl-brand:     #5C1A2B;  /* deep burgundy         */
  --jl-accent:    #7a2338;  /* link / accent         */
  --jl-gold:      #EAD3A8;  /* light gold            */
  --jl-gold-soft: #F4E7CE;  /* pale gold             */
  --jl-hero:      #4A1422;  /* hero panel            */

  --jl-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --jl-sans:  'Archivo', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  --jl-maxw: 1240px;
  --jl-pad:  44px;
  --jl-radius: 2px;

  /* derived rgba helpers (fallbacks; JS/Customizer may refine) */
  --jl-ink-72: rgba(46,13,22,.72);
  --jl-ink-66: rgba(46,13,22,.66);
  --jl-ink-50: rgba(46,13,22,.50);
  --jl-ink-45: rgba(46,13,22,.45);
  --jl-ink-12: rgba(46,13,22,.12);
  --jl-gold-72: rgba(234,211,168,.72);
  --jl-gold-66: rgba(234,211,168,.66);
  --jl-gold-60: rgba(234,211,168,.60);
  --jl-gold-45: rgba(234,211,168,.45);
  --jl-gold-20: rgba(234,211,168,.20);
}

/* ==========================================================================
   RESET / BASE
   ========================================================================== */
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  margin:0;
  background:var(--jl-bg);
  color:var(--jl-ink);
  font-family:var(--jl-sans);
  -webkit-font-smoothing:antialiased;
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
  max-width:100%;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--jl-accent);text-decoration:none;transition:color .2s ease}
a:hover{color:var(--jl-brand)}
button{font-family:inherit;cursor:pointer}
::selection{background:var(--jl-brand);color:var(--jl-gold)}
h1,h2,h3,h4{margin:0}
p{margin:0}

/* Skip link (a11y) */
.skip-link{position:absolute;left:-9999px;top:auto;background:var(--jl-brand);color:var(--jl-gold);padding:10px 16px;z-index:1000}
.skip-link:focus{left:16px;top:16px}

/* ==========================================================================
   LAYOUT HELPERS
   ========================================================================== */
.jl-container{max-width:var(--jl-maxw);margin:0 auto;padding-left:var(--jl-pad);padding-right:var(--jl-pad)}
.jl-narrow{max-width:1000px;margin:0 auto;padding-left:var(--jl-pad);padding-right:var(--jl-pad)}
.jl-eyebrow{font-weight:600;font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--jl-accent)}
.jl-serif{font-family:var(--jl-serif)}
.jl-italic{font-style:italic}

/* Buttons */
.jl-btn{
  display:inline-block;font-weight:600;font-size:13px;letter-spacing:.06em;
  background:var(--jl-brand);color:var(--jl-gold);padding:15px 26px;border-radius:var(--jl-radius);
  border:1px solid var(--jl-brand);transition:background .25s ease,transform .25s ease,color .25s ease;
}
.jl-btn:hover{background:var(--jl-hero);color:var(--jl-gold-soft);transform:translateY(-2px)}
.jl-btn--gold{background:var(--jl-gold);color:var(--jl-brand);border-color:var(--jl-gold)}
.jl-btn--gold:hover{background:var(--jl-gold-soft);color:var(--jl-brand)}
.jl-link-underline{font-weight:500;font-size:14.5px;color:var(--jl-brand);border-bottom:1px solid rgba(92,26,43,.35);padding-bottom:3px}
.jl-link-underline:hover{border-bottom-color:var(--jl-brand)}

/* Reveal animation */
@keyframes jlUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.rise{animation:jlUp .7s cubic-bezier(.2,.7,.2,1) both}
.jl-reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.jl-reveal.is-in{opacity:1;transform:none}

/* ==========================================================================
   HEADER / NAV
   ========================================================================== */
.jl-header{position:sticky;top:0;z-index:50;background:rgba(245,241,232,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--jl-ink-12)}
.jl-nav{max-width:var(--jl-maxw);margin:0 auto;padding:14px var(--jl-pad);display:flex;align-items:center;justify-content:space-between;gap:32px}
.jl-brand-link{display:flex;align-items:center;gap:12px;flex:none}
.jl-brand-link img{width:38px;height:38px;border-radius:6px;object-fit:cover}
.jl-brand-name{font-weight:600;font-size:13px;letter-spacing:.11em;color:var(--jl-brand);line-height:1.25;max-width:160px}
.jl-nav-menu{display:flex;align-items:center;gap:30px;margin:0;padding:0;list-style:none}
.jl-nav-menu a{font-weight:500;font-size:13.5px;letter-spacing:.04em;color:var(--jl-ink);position:relative;padding-bottom:2px;white-space:nowrap}
.jl-nav-menu a:hover{color:var(--jl-accent)}
.jl-nav-menu .current-menu-item>a::after,
.jl-nav-menu a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1.5px;background:var(--jl-accent)}
.jl-nav-menu .jl-nav-cta a,.jl-nav-cta.jl-btn{font-size:12.5px;letter-spacing:.06em;padding:11px 20px}
.jl-nav-cta{font-weight:600;font-size:12.5px;letter-spacing:.06em;background:var(--jl-brand);color:var(--jl-gold);padding:11px 20px;border-radius:var(--jl-radius);white-space:nowrap}
.jl-nav-cta:hover{background:var(--jl-hero);color:var(--jl-gold-soft)}

/* Mobile nav toggle */
.jl-nav-toggle{display:none;background:none;border:none;padding:8px;color:var(--jl-brand)}
.jl-nav-toggle svg{width:26px;height:26px}

/* ==========================================================================
   SECTIONS / TYPOGRAPHY BLOCKS
   ========================================================================== */
.jl-section{padding:88px var(--jl-pad)}
.jl-h1{font-family:var(--jl-serif);font-weight:500;font-size:66px;line-height:1.02;letter-spacing:-.01em;color:var(--jl-brand);text-wrap:pretty}
.jl-h2{font-family:var(--jl-serif);font-weight:500;font-size:52px;line-height:1.08;color:var(--jl-brand)}
.jl-lead{font-size:16.5px;line-height:1.68;color:var(--jl-ink-66)}
.jl-body{font-size:16px;line-height:1.74;color:var(--jl-ink-72)}

/* HERO */
.jl-hero{display:grid;grid-template-columns:1.05fr .95fr;border-bottom:1px solid var(--jl-ink-12)}
.jl-hero__copy{padding:88px 56px 88px var(--jl-pad);display:flex;flex-direction:column;justify-content:center;max-width:660px;margin-left:auto}
.jl-hero__title{font-family:var(--jl-serif);font-weight:500;font-size:66px;line-height:1.02;letter-spacing:-.01em;margin:24px 0 0;color:var(--jl-brand);text-wrap:pretty}
.jl-hero__text{max-width:490px;margin:28px 0 0;font-size:16.5px;line-height:1.68;color:var(--jl-ink-66)}
.jl-hero__actions{display:flex;align-items:center;gap:28px;margin-top:40px;flex-wrap:wrap}
.jl-hero__panel{background:var(--jl-hero);position:relative;overflow:hidden;min-height:560px;display:flex;align-items:center;justify-content:center;perspective:1000px}
.jl-hero__panel::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 44%,rgba(122,35,56,.5),rgba(74,20,34,0) 62%)}
.jl-hero__logo{width:76%;max-width:430px;border-radius:10px;border:1px solid rgba(234,211,168,.22);box-shadow:0 44px 90px -34px rgba(0,0,0,.7);transform-style:preserve-3d;will-change:transform}
.jl-hero__tag{position:absolute;bottom:22px;left:26px;font-weight:600;font-size:11px;letter-spacing:.22em;color:var(--jl-gold-45);z-index:2}

/* Nav CTA when rendered through a WP menu item (class on the <li>) */
.jl-nav-menu .jl-nav-cta-li > a{
  display:inline-block;font-weight:600;font-size:12.5px;letter-spacing:.06em;
  background:var(--jl-brand);color:var(--jl-gold);padding:11px 20px;
  border-radius:var(--jl-radius);white-space:nowrap;transition:background .25s ease,color .25s ease;
}
.jl-nav-menu .jl-nav-cta-li > a:hover{background:var(--jl-hero);color:var(--jl-gold-soft)}
.jl-nav-menu .jl-nav-cta-li.current-menu-item > a::after,
.jl-nav-menu .jl-nav-cta-li > a::after{display:none !important}

/* Elementor hero animation hooks (JS drives float + mouse parallax) */
.jl-el-hero,.elementor-section:has(> .elementor-container .jl-el-herologo){perspective:1000px}
.jl-el-herologo,.jl-el-herologo img{transform-style:preserve-3d;will-change:transform}
@media (prefers-reduced-motion: no-preference){
  .jl-el-herologo{animation:jlFloat 6s ease-in-out infinite}
}
@keyframes jlFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* Hairline card grids (values / how-we-work) — single borders, no gap, matches original.
   Keyed on a widget marker class (Elementor drops section/column custom classes on raw import,
   but keeps widget ones); :has() lifts the styling to the ancestor section/columns. */
.elementor-section:has(.jl-vcardmark2) > .elementor-container,
.elementor-section:has(.jl-vcardmark4) > .elementor-container{
  display:grid;gap:1px;background:rgba(46,13,22,.14);border:1px solid rgba(46,13,22,.14);
}
.elementor-section:has(.jl-vcardmark2) > .elementor-container{grid-template-columns:1fr 1fr}
.elementor-section:has(.jl-vcardmark4) > .elementor-container{
  grid-template-columns:repeat(4,1fr);background:rgba(234,211,168,.16);border-color:rgba(234,211,168,.16);
}
.elementor-section:has(.jl-vcardmark2) > .elementor-container > .elementor-column{
  width:auto !important;max-width:none;margin:0;background:var(--jl-bg);
}
.elementor-section:has(.jl-vcardmark4) > .elementor-container > .elementor-column{
  width:auto !important;max-width:none;margin:0;background:var(--jl-brand);
}
@media (max-width:1024px){
  .elementor-section:has(.jl-vcardmark4) > .elementor-container{grid-template-columns:1fr 1fr}
}
@media (max-width:767px){
  .elementor-section:has(.jl-vcardmark2) > .elementor-container,
  .elementor-section:has(.jl-vcardmark4) > .elementor-container{grid-template-columns:1fr}
}

/* Two-column prose */
.jl-prose-2{display:grid;grid-template-columns:1fr 1fr;gap:44px;margin-top:40px}

/* PRACTICE INDEX */
.jl-practice{border-top:1px solid var(--jl-ink-12)}
.jl-practice__head{max-width:var(--jl-maxw);margin:0 auto;padding:40px var(--jl-pad) 12px;display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.jl-practice__head h2{font-family:var(--jl-serif);font-size:34px;color:var(--jl-brand)}
.jl-practice__row{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px var(--jl-pad);max-width:var(--jl-maxw);margin:0 auto;border-top:1px solid var(--jl-ink-12);transition:background .25s ease}
.jl-practice__row:last-child{border-bottom:1px solid var(--jl-ink-12)}
.jl-practice__row:hover{background:rgba(92,26,43,.04)}
.jl-practice__label{display:flex;align-items:baseline;gap:24px}
.jl-practice__no{font-weight:500;font-size:13px;color:var(--jl-ink-45)}
.jl-practice__title{font-family:var(--jl-serif);font-size:31px;color:var(--jl-ink)}
.jl-practice__meta{font-size:13.5px;color:var(--jl-ink-50)}

/* Card grid (How we work / values / careers) */
.jl-tiltgroup{display:grid;gap:1px}
.jl-tiltgroup > *{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease;transform-style:preserve-3d}
.jl-band{background:var(--jl-brand);color:var(--jl-gold)}
.jl-band .jl-eyebrow{color:var(--jl-gold-60)}
.jl-cards-4{grid-template-columns:repeat(4,1fr);margin-top:36px;background:var(--jl-gold-20);border:1px solid var(--jl-gold-20)}
.jl-card--dark{background:var(--jl-brand);padding:34px 28px}
.jl-card--dark h3{font-family:var(--jl-serif);font-size:26px;color:var(--jl-gold-soft);font-weight:500}
.jl-card--dark p{font-size:14.5px;line-height:1.62;color:var(--jl-gold-66);margin-top:12px}
.jl-cards-2{grid-template-columns:repeat(2,1fr);background:var(--jl-ink-12);border:1px solid var(--jl-ink-12)}
.jl-card--light{background:var(--jl-bg);padding:36px}
.jl-card--light h3{font-family:var(--jl-serif);font-size:27px;color:var(--jl-brand);font-weight:500}
.jl-card--light p{font-size:15px;line-height:1.66;color:var(--jl-ink-72);margin-top:12px}
.jl-cards-3{grid-template-columns:repeat(3,1fr);gap:28px}
.jl-card--bordered{border:1px solid var(--jl-ink-12);padding:32px}
.jl-card--bordered h3{font-family:var(--jl-serif);font-size:27px;color:var(--jl-brand);font-weight:500}
.jl-card--bordered p{font-size:14.5px;line-height:1.62;color:var(--jl-ink-66);margin-top:12px}

/* CTA band */
.jl-cta{background:var(--jl-ink);color:var(--jl-gold);text-align:center;padding:92px var(--jl-pad)}
.jl-cta h2{font-family:var(--jl-serif);font-weight:500;font-size:54px;color:var(--jl-gold-soft)}
.jl-cta p{max-width:540px;margin:22px auto 0;font-size:16px;line-height:1.6;color:var(--jl-gold-66)}
.jl-cta .jl-btn{margin-top:36px}

/* ==========================================================================
   PEOPLE
   ========================================================================== */
.jl-people-group-label{font-weight:600;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--jl-ink-45);border-bottom:1px solid var(--jl-ink-12);padding-bottom:14px}
.jl-person{display:grid;grid-template-columns:340px 1fr;gap:48px;align-items:start;margin-top:44px}
.jl-person + .jl-person{padding-top:44px;border-top:1px solid var(--jl-ink-12)}
.jl-person__photo{aspect-ratio:4/5;background:#e7e0d2;border-radius:4px;overflow:hidden}
.jl-person__photo img{width:100%;height:100%;object-fit:cover}
.jl-person__photo-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;font-size:13px;color:var(--jl-ink-50);font-family:ui-monospace,Menlo,monospace}
.jl-person__name{font-family:var(--jl-serif);font-size:40px;line-height:1.1;color:var(--jl-brand);font-weight:500}
.jl-person__role{font-weight:600;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--jl-accent);margin-top:10px;line-height:1.5}
.jl-person__bio{display:grid;gap:16px;margin-top:22px;max-width:720px}
.jl-person__bio p{font-size:15.5px;line-height:1.72;color:var(--jl-ink-72)}

/* ==========================================================================
   SERVICES
   ========================================================================== */
.jl-service{display:grid;grid-template-columns:110px 1fr;gap:40px;padding:44px 0;border-top:1px solid rgba(46,13,22,.14)}
.jl-service__no{font-family:var(--jl-serif);font-size:40px;color:rgba(46,13,22,.32)}
.jl-service__title{font-family:var(--jl-serif);font-size:38px;color:var(--jl-brand);font-weight:500}
.jl-service__desc{max-width:700px;font-size:15.5px;line-height:1.7;color:var(--jl-ink-72);margin:14px 0 22px}
.jl-service__label{font-weight:600;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--jl-ink-45);margin-bottom:14px}
.jl-chips{display:flex;flex-wrap:wrap;gap:10px}
.jl-chip{font-size:13.5px;color:var(--jl-ink);background:rgba(92,26,43,.07);border:1px solid rgba(92,26,43,.14);padding:8px 14px;border-radius:var(--jl-radius)}

/* FAQ */
.jl-faq{background:var(--jl-brand);color:var(--jl-gold);margin-top:80px}
.jl-faq__inner{max-width:900px;margin:0 auto;padding:88px var(--jl-pad)}
.jl-faq h2{font-family:var(--jl-serif);font-size:44px;color:var(--jl-gold-soft);margin:16px 0 34px;font-weight:500}
.jl-faq__item{border-top:1px solid rgba(234,211,168,.2)}
.jl-faq__q{width:100%;text-align:left;background:none;border:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;color:var(--jl-gold-soft)}
.jl-faq__q span:first-child{font-family:var(--jl-serif);font-size:24px}
.jl-faq__sign{font-size:24px;color:var(--jl-gold);flex:none}
.jl-faq__a{font-size:15.5px;line-height:1.72;color:var(--jl-gold-72);margin:0 0 26px;max-width:700px;display:none}
.jl-faq__item.is-open .jl-faq__a{display:block}

/* ==========================================================================
   CAREERS
   ========================================================================== */
.jl-vacancy{border-top:1px solid rgba(46,13,22,.14);border-bottom:1px solid rgba(46,13,22,.14);padding:36px 0;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.jl-vacancy__title{font-family:var(--jl-serif);font-size:34px;color:var(--jl-ink)}
.jl-vacancy p{font-size:15px;line-height:1.66;color:var(--jl-ink-72);margin:20px 0 0;max-width:620px}

/* ==========================================================================
   CONTACT
   ========================================================================== */
.jl-contact{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--jl-ink-12)}
.jl-contact__info{padding:92px 56px 92px var(--jl-pad);max-width:640px;margin-left:auto}
.jl-contact__info h1{font-family:var(--jl-serif);font-weight:500;font-size:62px;line-height:1;margin:22px 0 0;color:var(--jl-brand)}
.jl-contact__grid{display:grid;gap:26px}
.jl-contact__k{font-weight:600;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--jl-ink-45)}
.jl-contact__v{font-size:15.5px;line-height:1.6;margin-top:8px;color:var(--jl-ink)}
.jl-contact__row{display:flex;gap:56px;flex-wrap:wrap}
.jl-contact__note{font-size:14px;line-height:1.62;color:rgba(46,13,22,.6);max-width:470px}
.jl-contact__legal-links{display:flex;flex-wrap:wrap;gap:18px;font-size:13px;padding-top:4px}
.jl-contact__form-wrap{background:var(--jl-brand);padding:72px 56px;display:flex;align-items:center}
.jl-form-lead{font-family:var(--jl-serif);font-size:27px;line-height:1.35;color:var(--jl-gold-soft);margin:0 0 28px}
.jl-form{width:100%;display:grid;gap:18px}
.jl-form__two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.jl-form label{display:block}
.jl-form label > span{font-size:12px;letter-spacing:.08em;color:var(--jl-gold-72)}
.jl-form input,.jl-form select,.jl-form textarea{
  width:100%;margin-top:8px;background:transparent;border:none;border-bottom:1px solid rgba(234,211,168,.35);
  color:var(--jl-gold-soft);font-family:inherit;font-size:15px;padding:10px 0;outline:none;
}
.jl-form select{
  background-color:var(--jl-brand);
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="%23EAD3A8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>');
  background-repeat:no-repeat;background-position:right 2px center;background-size:14px;
  padding-right:26px;text-indent:0;
}
.jl-form select option{color:var(--jl-ink);background:var(--jl-gold-soft)}
.jl-form textarea{resize:none}
.jl-form input:focus,.jl-form select:focus,.jl-form textarea:focus{border-bottom-color:var(--jl-gold)}
.jl-form ::placeholder{color:rgba(234,211,168,.4)}
.jl-form__submit{margin-top:8px;justify-self:start}
.jl-form__fineprint{font-size:11.5px;line-height:1.55;color:rgba(234,211,168,.5);margin:2px 0 0}
.jl-form__thanks{color:var(--jl-gold);text-align:center;width:100%}
.jl-form__thanks .jl-serif{font-size:44px;color:var(--jl-gold-soft)}
.jl-form__thanks p{font-size:15.5px;line-height:1.66;color:var(--jl-gold-72);margin-top:16px}
.jl-map{max-width:var(--jl-maxw);margin:0 auto}
.jl-map__placeholder{height:280px;position:relative;background:repeating-linear-gradient(45deg,#ece6d8 0 14px,#e6dfce 14px 28px);display:flex;align-items:center;justify-content:center}
.jl-map__placeholder span{font-family:ui-monospace,Menlo,monospace;font-size:12px;letter-spacing:.06em;color:var(--jl-ink-50)}
.jl-map iframe{display:block;width:100%;border:0}

/* ==========================================================================
   LEGAL PAGES
   ========================================================================== */
.jl-legal__meta{margin:20px 0 0;font-size:13.5px;letter-spacing:.04em;color:var(--jl-ink-50)}
.jl-legal__block{padding:32px 0;border-top:1px solid var(--jl-ink-12)}
.jl-legal__block h2{font-family:var(--jl-serif);font-size:29px;color:var(--jl-brand);font-weight:500}
.jl-legal__block p{font-size:15.5px;line-height:1.76;color:var(--jl-ink-72);margin-top:12px;max-width:740px}
.jl-legal__related{border-top:1px solid var(--jl-ink-12);padding-top:32px;display:flex;flex-wrap:wrap;gap:18px;align-items:center}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.jl-footer{background:var(--jl-ink);color:var(--jl-gold)}
.jl-footer__grid{max-width:var(--jl-maxw);margin:0 auto;padding:72px var(--jl-pad) 40px;display:grid;grid-template-columns:1.4fr 1fr 1.15fr 1.2fr;gap:40px}
.jl-footer__brand{display:flex;align-items:center;gap:12px;color:var(--jl-gold)}
.jl-footer__brand:hover{color:var(--jl-gold-soft)}
.jl-footer__brand img{width:38px;height:38px;border-radius:6px;object-fit:cover;border:1px solid var(--jl-gold-20)}
.jl-footer__brand span{font-weight:600;font-size:13px;letter-spacing:.11em;line-height:1.25;color:var(--jl-gold)}
.jl-footer__tagline{margin:20px 0 0;font-size:13.5px;line-height:1.7;color:var(--jl-gold-60)}
.jl-footer__tagline .jl-serif{font-size:18px;color:rgba(234,211,168,.85)}
.jl-footer__col h4{font-weight:600;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--jl-gold-45)}
.jl-footer__col ul{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:11px;font-size:13.5px}
.jl-footer__col a{color:rgba(234,211,168,.8)}
.jl-footer__col a:hover{color:var(--jl-gold-soft)}
.jl-footer__contact{display:grid;gap:11px;margin-top:18px;font-size:13.5px;color:rgba(234,211,168,.8);line-height:1.6}
.jl-footer__bar{border-top:1px solid rgba(234,211,168,.14)}
.jl-footer__bar-inner{max-width:var(--jl-maxw);margin:0 auto;padding:22px var(--jl-pad);display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--jl-gold-45)}
.jl-footer__bar-inner a{color:var(--jl-gold-45)}
.jl-footer__bar-inner a:hover{color:var(--jl-gold-soft)}
.jl-footer__legal{display:flex;flex-wrap:wrap;gap:16px;list-style:none;margin:0;padding:0}
.jl-footer__legal li{list-style:none;margin:0;padding:0}
.jl-footer__legal li::marker{content:""}

/* People portraits — uniform frame so different photos match in size + alignment */
.jl-person-photo img,
.jl-person-photo .elementor-image img{
  width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 18%;
  border-radius:4px;display:block;
}
/* The photo column should hug the image, not stretch to the (taller) bio —
   otherwise the column's background shows as a gap below the photo. */
.elementor-column:has(.jl-person-photo){align-self:flex-start;min-height:0 !important}
.elementor-column:has(.jl-person-photo) > .elementor-widget-wrap,
.elementor-column:has(.jl-person-photo) > .elementor-element-populated{
  background:transparent !important;min-height:0 !important;padding:0 !important;
}
.jl-person-photo,
.jl-person-photo .elementor-widget-container{margin:0 !important;line-height:0}

/* Legal / long-form bulleted lists (Elementor text-editor) */
.jl-legal-list ul{margin:0;padding-left:1.2em;list-style:disc}
.jl-legal-list li{font-size:15.5px;line-height:1.7;color:var(--jl-ink-72);margin:0 0 9px;padding-left:6px}
.jl-legal-list li:last-child{margin-bottom:0}
.jl-legal-list li::marker{color:var(--jl-accent)}
@media (max-width:767px){ .jl-legal-list li{font-size:15px} }

/* Home practice index (Elementor) — title sizing + mobile alignment */
.jl-pt{font-family:var(--jl-serif);font-size:30px;color:var(--jl-ink)}
@media (max-width:767px){
  .jl-pt{font-size:22px}
  .jl-pmeta{text-align:left !important;margin-top:4px !important}
}

/* Footer bottom bar — centered, balanced stack on mobile */
@media (max-width:767px){
  .jl-footer__bar-inner{
    flex-direction:column;align-items:center;justify-content:center;
    text-align:center;gap:18px;padding-top:30px;padding-bottom:30px;
  }
  .jl-footer__bar-inner > span:first-child{order:3;font-size:11.5px;opacity:.85}      /* © line last */
  .jl-footer__legal{order:1;justify-content:center;gap:10px 20px}
  .jl-footer__bar-inner > span:last-child{order:2;letter-spacing:.08em;font-size:11px;text-transform:uppercase}
  /* subtle divider above the © line */
  .jl-footer__bar-inner > span:first-child{padding-top:16px;border-top:1px solid rgba(234,211,168,.14);width:100%}
}

/* ==========================================================================
   WORDPRESS CORE / EDITOR CLASSES
   ========================================================================== */
.aligncenter{margin-left:auto;margin-right:auto;display:block}
.alignright{float:right;margin:0 0 1em 1em}
.alignleft{float:left;margin:0 1em 1em 0}
.wp-caption{max-width:100%}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}
.jl-page-content{max-width:900px;margin:0 auto;padding:64px var(--jl-pad)}
.jl-page-content h1{font-family:var(--jl-serif);color:var(--jl-brand);font-size:52px;font-weight:500;margin-bottom:8px}
.jl-page-content h2{font-family:var(--jl-serif);color:var(--jl-brand);font-weight:500;margin:32px 0 12px}
.jl-page-content p{margin:0 0 18px;font-size:16px;line-height:1.74;color:var(--jl-ink-72)}
.jl-page-content img{border-radius:4px;margin:24px 0}

/* Pagination / posts */
.jl-posts{max-width:var(--jl-maxw);margin:0 auto;padding:64px var(--jl-pad);display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.jl-post-card{border:1px solid var(--jl-ink-12);padding:28px;background:#fff}
.jl-post-card h2{font-family:var(--jl-serif);font-size:26px;color:var(--jl-brand);font-weight:500}
.jl-post-card .jl-post-meta{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--jl-ink-45);margin:8px 0}
.jl-pagination{max-width:var(--jl-maxw);margin:0 auto;padding:0 var(--jl-pad) 64px;display:flex;gap:8px;flex-wrap:wrap}
.jl-pagination .page-numbers{padding:10px 16px;border:1px solid var(--jl-ink-12);color:var(--jl-ink)}
.jl-pagination .page-numbers.current{background:var(--jl-brand);color:var(--jl-gold);border-color:var(--jl-brand)}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1024px){
  .jl-footer__grid{grid-template-columns:1fr 1fr}
  .jl-cards-4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  :root{--jl-pad:24px}
  .jl-hero,.jl-contact{grid-template-columns:1fr}
  .jl-hero__copy,.jl-contact__info{max-width:none;margin-left:0}
  .jl-hero__panel{min-height:380px;order:-1}
  .jl-prose-2{grid-template-columns:1fr;gap:24px}
  .jl-person{grid-template-columns:1fr;gap:24px}
  .jl-cards-3{grid-template-columns:1fr}
  .jl-vacancy{grid-template-columns:1fr;gap:24px}
  .jl-h1,.jl-hero__title{font-size:46px}
  .jl-h2,.jl-cta h2{font-size:38px}
  .jl-contact__info h1{font-size:46px}
  .jl-section{padding:56px var(--jl-pad)}
  /* Mobile nav */
  .jl-nav{position:relative}
  .jl-nav-toggle{display:inline-flex !important;align-items:center;justify-content:center;order:3}
  .jl-nav-menu{position:absolute;top:100%;right:0;left:0;flex-direction:column;align-items:flex-start;gap:0;background:var(--jl-bg);border-bottom:1px solid var(--jl-ink-12);padding:8px var(--jl-pad) 20px;display:none;box-shadow:0 12px 24px -12px rgba(46,13,22,.3)}
  .jl-nav-menu.is-open{display:flex}
  .jl-nav-menu li{width:100%;padding:10px 0}
  .jl-nav-menu .jl-nav-cta-li{padding-top:6px}
  .jl-nav-menu .jl-nav-cta-li > a{display:inline-block}
}
@media (max-width:600px){
  .jl-cards-4,.jl-cards-2{grid-template-columns:1fr}
  .jl-service{grid-template-columns:1fr;gap:12px}
  .jl-form__two{grid-template-columns:1fr}
  .jl-footer__grid{grid-template-columns:1fr}
  .jl-practice__row{flex-direction:column;align-items:flex-start;gap:8px}
  .jl-h1,.jl-hero__title,.jl-contact__info h1{font-size:38px}
}
