/* ============================================================
   Flagship theme (home_fifteen) — Oxblood / Fraunces design system.
   Scoped under body.tpl-flagship so it never touches other themes or
   the admin UI. Component classes use an fl- prefix where they would
   otherwise collide with Bootstrap (.btn/.nav/.card/.row).
   Loaded only on flagship pages (see styles.blade.php).
   ============================================================ */
:root{
  --fg-ground:#170F10; --fg-ground2:#1F1517; --fg-text:#ECE3D4; --fg-muted:#9C8F84;
  --fg-accent:#9A2A2E; --fg-accent2:#B6433F; --fg-brass:#B89150;
  --fg-hair:rgba(184,145,80,.26); --fg-hairs:rgba(236,227,212,.12);
  --fg-display:"Fraunces",Georgia,serif; --fg-body:"Inter",system-ui,sans-serif; --fg-mono:"IBM Plex Mono",ui-monospace,monospace;
  --fg-pad:clamp(28px,7vw,120px); --fg-maxw:1240px; --fg-sec:clamp(70px,11vh,150px);
}
body.tpl-flagship{background:var(--fg-ground);color:var(--fg-text);font-family:var(--fg-body);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.tpl-flagship::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>")}
body.tpl-flagship .breadcrumb-section,body.tpl-flagship .preloader{display:none!important}

.tpl-flagship .shell{position:relative;z-index:1;max-width:var(--fg-maxw);margin:0 auto;padding-left:var(--fg-pad);padding-right:var(--fg-pad)}
.tpl-flagship a{color:inherit;text-decoration:none}
.tpl-flagship img{max-width:100%;display:block}
.tpl-flagship p{margin:0}
.tpl-flagship .mono{font-family:var(--fg-mono);font-weight:400;letter-spacing:.04em}
.tpl-flagship .label{font-family:var(--fg-mono);font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;color:var(--fg-brass);display:inline-block}

/* buttons */
.tpl-flagship .fl-btn{display:inline-flex;align-items:center;gap:11px;font-family:var(--fg-mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  padding:16px 26px;border:1px solid var(--fg-accent);background:var(--fg-accent);color:#fff;cursor:pointer;transition:background .3s,color .3s,transform .3s;border-radius:0}
.tpl-flagship .fl-btn:hover{background:transparent;color:var(--fg-accent2);transform:translateY(-2px)}
.tpl-flagship .fl-btn--ghost{background:transparent;color:var(--fg-text);border-color:var(--fg-hair)}
.tpl-flagship .fl-btn--ghost:hover{border-color:var(--fg-brass);color:var(--fg-text)}
.tpl-flagship .arw{transition:transform .3s}.tpl-flagship .fl-btn:hover .arw{transform:translateX(4px)}

/* header */
.tpl-flagship .top{position:relative;z-index:5;background:var(--fg-ground);border-bottom:1px solid var(--fg-hairs)}
.tpl-flagship .top .fl-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 0}
.tpl-flagship .brand{display:flex;flex-direction:column;line-height:1}
.tpl-flagship .brand b{font-family:var(--fg-display);font-weight:560;font-size:1.5rem;letter-spacing:.01em;color:var(--fg-text)}
.tpl-flagship .brand small{font-family:var(--fg-mono);font-size:.6rem;letter-spacing:.34em;color:var(--fg-brass);margin-top:6px}
.tpl-flagship .brand img{max-height:42px}
.tpl-flagship .fl-nav{display:flex;gap:30px;align-items:center;list-style:none;margin:0;padding:0}
.tpl-flagship .fl-nav>li{position:relative}
.tpl-flagship .fl-nav a{font-size:.86rem;color:var(--fg-muted);transition:color .25s}
.tpl-flagship .fl-nav a:hover{color:var(--fg-text)}
.tpl-flagship .fl-nav .sub>ul{display:none;position:absolute;top:160%;left:0;background:var(--fg-ground2);border:1px solid var(--fg-hairs);padding:8px 0;min-width:210px;list-style:none;margin:0;z-index:30}
.tpl-flagship .fl-nav .sub:hover>ul{display:block}
.tpl-flagship .fl-nav .sub>ul li a{display:block;padding:9px 18px}
.tpl-flagship .top .r{display:flex;align-items:center;gap:14px}
.tpl-flagship .top .ico{width:40px;height:40px;display:grid;place-items:center;color:var(--fg-text);border:1px solid var(--fg-hair)}
.tpl-flagship .top .ico:hover{background:var(--fg-accent);color:#fff;border-color:var(--fg-accent)}
.tpl-flagship .top .ico svg{width:17px;height:17px}
.tpl-flagship .top .call{font-family:var(--fg-mono);font-size:.8rem;color:var(--fg-text);border-bottom:1px solid var(--fg-accent);padding-bottom:3px}
.tpl-flagship .brand img{max-height:40px;filter:brightness(0) invert(1)}
.tpl-flagship .top .language-selection{position:relative}
.tpl-flagship .top .language-list{position:absolute;top:150%;right:0;display:none;min-width:130px;padding:8px 0;margin:0;list-style:none;background:var(--fg-ground2)!important;border:1px solid var(--fg-hairs)!important;z-index:40}
.tpl-flagship .top .language-selection:hover .language-list{display:block}
.tpl-flagship .top .language-list li{margin:0}
.tpl-flagship .top .language-list a{display:block;padding:8px 16px;font-size:.85rem;color:var(--fg-text)!important}
.tpl-flagship .top .language-btn{color:var(--fg-text)!important}
@media(max-width:880px){.tpl-flagship .fl-nav,.tpl-flagship .top .ico,.tpl-flagship .top .call{display:none}}

/* page header (inner pages) */
.tpl-flagship .pagehead{padding-top:clamp(70px,11vh,120px);padding-bottom:var(--fg-sec)}
.tpl-flagship .crumb{display:flex;gap:12px;align-items:center;margin-bottom:26px}
.tpl-flagship .crumb .line{height:1px;width:54px;background:var(--fg-hair)}
.tpl-flagship .pagehead h1{font-family:var(--fg-display);font-weight:400;font-optical-sizing:auto;font-variation-settings:"opsz" 144;
  font-size:clamp(2.6rem,6.5vw,5rem);line-height:.99;letter-spacing:-.018em;max-width:16ch;color:var(--fg-text)}
.tpl-flagship .pagehead h1 em{font-style:italic;color:var(--fg-accent2)}
.tpl-flagship .pagehead .intro{margin-top:28px;max-width:54ch;color:var(--fg-muted);font-size:1.12rem}

/* sections */
.tpl-flagship .sec{padding-top:var(--fg-sec);padding-bottom:var(--fg-sec);border-top:1px solid var(--fg-hairs)}
.tpl-flagship .sec--tight{padding-top:clamp(48px,7vh,90px);padding-bottom:clamp(48px,7vh,90px)}
.tpl-flagship .sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:clamp(34px,5vh,64px);flex-wrap:wrap}
.tpl-flagship .sec-head h2{font-family:var(--fg-display);font-weight:420;font-size:clamp(1.9rem,4vw,3rem);letter-spacing:-.01em;line-height:1.05;color:var(--fg-text)}

/* hero (home) */
.tpl-flagship .hero{position:relative;min-height:90vh;display:grid;grid-template-columns:1.15fr .85fr;align-items:end;gap:clamp(24px,5vw,72px);padding-top:clamp(80px,12vh,150px);padding-bottom:clamp(40px,7vh,90px)}
.tpl-flagship .hero-meta{display:flex;gap:18px;align-items:center;margin-bottom:26px}
.tpl-flagship .hero-meta .line{height:1px;width:54px;background:var(--fg-hair)}
.tpl-flagship h1.lede{font-family:var(--fg-display);font-weight:400;font-optical-sizing:auto;font-variation-settings:"opsz" 144;font-size:clamp(2.8rem,7.4vw,6rem);line-height:.97;letter-spacing:-.018em;max-width:13ch;color:var(--fg-text)}
.tpl-flagship h1.lede em{font-style:italic;color:var(--fg-accent2)}
.tpl-flagship .hero .sub{margin-top:30px;max-width:42ch;color:var(--fg-muted);font-size:1.12rem}
.tpl-flagship .hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:38px}
.tpl-flagship .reveal{opacity:0;transform:translateY(18px);animation:fgrise .9s cubic-bezier(.2,.7,.2,1) forwards}
.tpl-flagship .reveal.d1{animation-delay:.05s}.tpl-flagship .reveal.d2{animation-delay:.18s}.tpl-flagship .reveal.d3{animation-delay:.32s}.tpl-flagship .reveal.d4{animation-delay:.46s}
@keyframes fgrise{to{opacity:1;transform:none}}
.tpl-flagship .portrait{position:relative;aspect-ratio:3/4;border:1px solid var(--fg-hair);overflow:hidden;background:radial-gradient(120% 90% at 70% 18%,rgba(182,67,63,.5),transparent 55%),linear-gradient(180deg,#2a1a1b,#150d0e)}
.tpl-flagship .portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.4) contrast(1.05) sepia(.25) hue-rotate(-12deg);mix-blend-mode:luminosity;opacity:.9}
.tpl-flagship .portrait .cap{position:absolute;left:18px;bottom:16px;right:18px;display:flex;justify-content:space-between;align-items:flex-end;z-index:2}
.tpl-flagship .portrait .cap b{font-family:var(--fg-display);font-weight:500;font-size:1.05rem}
.tpl-flagship .portrait .cap span{font-family:var(--fg-mono);font-size:.62rem;letter-spacing:.18em;color:var(--fg-brass)}
.tpl-flagship .portrait .frame-no{position:absolute;top:14px;left:16px;font-family:var(--fg-mono);font-size:.62rem;letter-spacing:.2em;color:var(--fg-brass);z-index:2}
@media(max-width:880px){.tpl-flagship .hero{grid-template-columns:1fr;min-height:auto}.tpl-flagship .hero .portrait{display:none}}

/* case index */
.tpl-flagship .idx{border-top:1px solid var(--fg-hairs)}
.tpl-flagship .idx a.row{display:grid;grid-template-columns:64px 1.1fr 1.6fr auto;gap:24px;align-items:center;padding:30px 6px;border-bottom:1px solid var(--fg-hairs);transition:background .3s,padding .3s}
.tpl-flagship .idx a.row:hover{background:linear-gradient(90deg,rgba(154,42,46,.14),transparent);padding-left:18px}
.tpl-flagship .idx .no{font-family:var(--fg-mono);font-size:.82rem;color:var(--fg-brass)}
.tpl-flagship .idx .ti{font-family:var(--fg-display);font-weight:480;font-size:clamp(1.3rem,2.4vw,1.85rem);letter-spacing:-.01em;color:var(--fg-text)}
.tpl-flagship .idx .de{color:var(--fg-muted);font-size:.98rem;max-width:46ch}
.tpl-flagship .idx .go{font-family:var(--fg-mono);font-size:1.1rem;color:var(--fg-accent2)}
@media(max-width:820px){.tpl-flagship .idx a.row{grid-template-columns:40px 1fr;gap:6px 16px}.tpl-flagship .idx .de{grid-column:2;max-width:none}.tpl-flagship .idx .go{display:none}}

/* ledger */
.tpl-flagship .ledger{display:grid;grid-template-columns:repeat(4,1fr)}
.tpl-flagship .ledger .cell{padding:38px 26px;border-left:1px solid var(--fg-hairs)}
.tpl-flagship .ledger .cell:first-child{border-left:0;padding-left:0}
.tpl-flagship .ledger .fig{font-family:var(--fg-display);font-weight:440;font-size:clamp(2.4rem,4.4vw,3.4rem);line-height:1;letter-spacing:-.02em;color:var(--fg-text)}
.tpl-flagship .ledger .fig b{color:var(--fg-accent2);font-weight:440}
.tpl-flagship .ledger .cap{margin-top:14px;font-family:var(--fg-mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-muted)}
@media(max-width:780px){.tpl-flagship .ledger{grid-template-columns:1fr 1fr}.tpl-flagship .ledger .cell{border-left:0;border-top:1px solid var(--fg-hairs);padding-left:0}}

/* cards (attorneys / blog) */
.tpl-flagship .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,30px)}
@media(max-width:880px){.tpl-flagship .cards{grid-template-columns:1fr 1fr}}@media(max-width:560px){.tpl-flagship .cards{grid-template-columns:1fr}}
.tpl-flagship .fl-card{display:block;border:1px solid var(--fg-hairs);transition:border-color .3s,transform .3s}
.tpl-flagship .fl-card:hover{border-color:var(--fg-hair);transform:translateY(-5px)}
.tpl-flagship .fl-card .pic{aspect-ratio:4/5;overflow:hidden;background:radial-gradient(120% 90% at 65% 20%,rgba(182,67,63,.4),transparent 55%),linear-gradient(180deg,#2a1a1b,#140c0d)}
.tpl-flagship .fl-card .pic img{width:100%;height:100%;object-fit:cover;filter:grayscale(.4) contrast(1.05) sepia(.25) hue-rotate(-12deg)}
.tpl-flagship .fl-card .meta{padding:22px 22px 26px}
.tpl-flagship .fl-card .meta .k{font-family:var(--fg-mono);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-brass)}
.tpl-flagship .fl-card .meta h3{font-family:var(--fg-display);font-weight:480;font-size:1.35rem;margin-top:8px;letter-spacing:-.01em;color:var(--fg-text)}
.tpl-flagship .fl-card .meta p{color:var(--fg-muted);font-size:.92rem;margin-top:8px}

/* profile */
.tpl-flagship .profile{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,68px);align-items:start}
.tpl-flagship .profile .pic{aspect-ratio:3/4;border:1px solid var(--fg-hair);overflow:hidden;background:radial-gradient(120% 90% at 65% 18%,rgba(182,67,63,.5),transparent 55%),linear-gradient(180deg,#2a1a1b,#140c0d)}
.tpl-flagship .profile .pic img{width:100%;height:100%;object-fit:cover;filter:grayscale(.4) contrast(1.05) sepia(.25) hue-rotate(-12deg)}
.tpl-flagship .profile h1{font-family:var(--fg-display);font-weight:420;font-size:clamp(2.2rem,4.6vw,3.4rem);letter-spacing:-.015em;line-height:1.02;color:var(--fg-text)}
.tpl-flagship .profile .role{font-family:var(--fg-mono);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-brass);margin:14px 0 26px}
.tpl-flagship .creds{list-style:none;margin:28px 0 0;padding:0;border-top:1px solid var(--fg-hairs)}
.tpl-flagship .creds li{display:grid;grid-template-columns:140px 1fr;gap:18px;padding:15px 0;border-bottom:1px solid var(--fg-hairs);font-size:.95rem}
.tpl-flagship .creds li b{font-family:var(--fg-mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-muted);font-weight:400}
@media(max-width:780px){.tpl-flagship .profile{grid-template-columns:1fr}.tpl-flagship .creds li{grid-template-columns:1fr;gap:2px}}

/* prose */
.tpl-flagship .prose{max-width:68ch}
.tpl-flagship .prose p{margin:0 0 1.3em;color:var(--fg-text);opacity:.92}
.tpl-flagship .prose p.first::first-letter{font-family:var(--fg-display);font-size:3.4em;float:left;line-height:.8;padding:6px 12px 0 0;color:var(--fg-accent2)}
.tpl-flagship .prose h3{font-family:var(--fg-display);font-weight:480;font-size:1.5rem;margin:1.6em 0 .5em;color:var(--fg-text)}

/* pull quote */
.tpl-flagship .quote{display:grid;grid-template-columns:1fr 2fr;gap:clamp(24px,5vw,70px);align-items:center}
.tpl-flagship .quote blockquote{font-family:var(--fg-display);font-weight:400;font-style:italic;font-size:clamp(1.6rem,3.3vw,2.5rem);line-height:1.28;letter-spacing:-.01em;margin:0;color:var(--fg-text)}
.tpl-flagship .quote .by{margin-top:24px;font-family:var(--fg-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-brass)}
.tpl-flagship .quote .mark{font-family:var(--fg-display);font-size:5rem;color:var(--fg-accent);line-height:.6}
@media(max-width:780px){.tpl-flagship .quote{grid-template-columns:1fr}}

/* matter / consultation */
.tpl-flagship .matter{background:var(--fg-ground2);border:1px solid var(--fg-hairs)}
.tpl-flagship .matter .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);padding:clamp(36px,6vw,72px)}
.tpl-flagship .matter h2{font-family:var(--fg-display);font-weight:420;font-size:clamp(2rem,4vw,3rem);line-height:1.04;letter-spacing:-.01em;color:var(--fg-text)}
.tpl-flagship .matter p{color:var(--fg-muted);margin-top:18px;max-width:38ch}
.tpl-flagship .fl-form{display:flex;flex-direction:column;gap:12px}
.tpl-flagship .fl-form input,.tpl-flagship .fl-form select,.tpl-flagship .fl-form textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--fg-hair);color:var(--fg-text);padding:14px 2px;font-family:var(--fg-body);font-size:1rem;border-radius:0}
.tpl-flagship .fl-form input::placeholder,.tpl-flagship .fl-form textarea::placeholder{color:var(--fg-muted)}
.tpl-flagship .fl-form input:focus,.tpl-flagship .fl-form select:focus,.tpl-flagship .fl-form textarea:focus{outline:none;border-color:var(--fg-accent2)}
.tpl-flagship .fl-form select option{background:var(--fg-ground2)}
.tpl-flagship .fl-form .fl-btn{justify-content:center;margin-top:14px}
@media(max-width:780px){.tpl-flagship .matter .grid{grid-template-columns:1fr}}

/* footer / colophon */
.tpl-flagship .colophon{border-top:1px solid var(--fg-hairs);padding-top:60px;padding-bottom:40px;margin-top:var(--fg-sec);background:var(--fg-ground)}
.tpl-flagship .colo{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.tpl-flagship .colo .b b{font-family:var(--fg-display);font-size:1.3rem;font-weight:520;color:var(--fg-text)}
.tpl-flagship .colo .mono{color:var(--fg-muted);font-size:.78rem;line-height:2}
.tpl-flagship .colo .mono a:hover{color:var(--fg-brass)}
.tpl-flagship .disc{margin-top:42px;padding-top:20px;border-top:1px solid var(--fg-hairs);font-family:var(--fg-mono);font-size:.66rem;letter-spacing:.08em;color:var(--fg-muted);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* mobile bottom app nav */
.tpl-flagship .fbn{position:fixed;left:0;right:0;bottom:0;z-index:999;display:none;justify-content:space-around;align-items:stretch;background:var(--fg-ground);border-top:1px solid var(--fg-hair);padding:7px 4px calc(7px + env(safe-area-inset-bottom,0px))}
.tpl-flagship .fbn a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--fg-muted);font-family:var(--fg-mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;padding:5px 2px}
.tpl-flagship .fbn a svg{width:21px;height:21px}
.tpl-flagship .fbn a:hover,.tpl-flagship .fbn a.active{color:var(--fg-brass)}
@media(max-width:880px){.tpl-flagship .fbn{display:flex}body.tpl-flagship{padding-bottom:70px}}

@media(prefers-reduced-motion:reduce){.tpl-flagship .reveal{animation:none;opacity:1;transform:none}}
.tpl-flagship a:focus-visible,.tpl-flagship input:focus-visible,.tpl-flagship select:focus-visible,.tpl-flagship button:focus-visible{outline:2px solid var(--fg-brass);outline-offset:3px}
