/* Lawson Law, PLLC — cinematic layer: dark animated hero, page headers, motion.
   Loads after styles.css and overrides where needed. Delete the <link> to revert. */

:root {
  --display: "Cormorant Garamond", Garamond, "Adobe Garamond Pro", Baskerville, Georgia, serif;
  --hero-bg: #1C262D;
  --hero-bg-2: #2A353C;
}
h1, h2, h3 { font-family: var(--display); font-weight: 500; line-height: 1.06; letter-spacing: -0.005em; }
.wordmark { font-family: var(--display); font-weight: 500; }

/* ---------- Header over the dark hero ---------- */
header.site.on-dark { background: linear-gradient(to bottom, rgba(28,38,45,0.55), rgba(28,38,45,0)); backdrop-filter: none; -webkit-backdrop-filter: none; border-bottom-color: transparent; }
header.site.on-dark .logo-img { filter: invert(1) brightness(1.4); }
header.site.on-dark nav.primary a.navlink { color: rgba(244,238,228,0.86); }
header.site.on-dark nav.primary a.navlink[aria-current="page"] { color: #fff; }
header.site.on-dark .nav-toggle span, header.site.on-dark .nav-toggle span::before, header.site.on-dark .nav-toggle span::after { background: #F4EEE4; }
header.site.on-dark .nav-toggle[aria-expanded="true"] span { background: transparent; }
.announce.on-dark { background: transparent; border-bottom-color: rgba(244,238,228,0.14); color: #C9AD93; }
@media (max-width: 860px) {
  header.site.on-dark nav.primary.open { background: var(--hero-bg); }
  header.site.on-dark nav.primary.open a.navlink { color: #F4EEE4; border-bottom-color: rgba(244,238,228,0.14); }
}

/* ---------- Animated dark backdrop, shared by the hero, page headers and bands ---------- */
.hero-dark, .page-hero.dark { background: radial-gradient(120% 90% at 80% 10%, var(--hero-bg-2), var(--hero-bg) 60%); color: #F4EEE4; isolation: isolate; position: relative; overflow: hidden; }
.hero-dark::before, .page-hero.dark::before { display: none; }
.hero-bg { position: absolute; inset: 0; overflow: hidden; z-index: 0; pointer-events: none; }
.hero-bg .orb { position: absolute; border-radius: 50%; filter: blur(70px); opacity: 0.55; mix-blend-mode: screen; will-change: transform; }
.hero-bg .orb-a { width: 60vw; height: 60vw; max-width: 900px; max-height: 900px; left: -18vw; top: -22vw; background: radial-gradient(circle, rgba(176,142,114,0.55), rgba(176,142,114,0) 62%); animation: drift-a 34s ease-in-out infinite alternate; }
.hero-bg .orb-b { width: 48vw; height: 48vw; max-width: 720px; max-height: 720px; right: -14vw; bottom: -20vw; background: radial-gradient(circle, rgba(201,173,147,0.42), rgba(201,173,147,0) 64%); animation: drift-b 41s ease-in-out infinite alternate; }
.hero-bg .orb-c { width: 30vw; height: 30vw; max-width: 460px; max-height: 460px; left: 42%; top: 30%; background: radial-gradient(circle, rgba(88,110,125,0.7), rgba(88,110,125,0) 65%); animation: drift-c 27s ease-in-out infinite alternate; }
.hero-bg .sheen { position: absolute; inset: -40% -60%; background: linear-gradient(115deg, transparent 42%, rgba(244,238,228,0.05) 50%, transparent 58%); animation: sheen 18s linear infinite; }
.hero-bg .grain { position: absolute; inset: 0; opacity: 0.16; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.35 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E"); }
.hero-bg .watermark { position: absolute; right: -6%; bottom: -8%; width: 58vw; max-width: 820px; height: auto; opacity: 0.045; filter: invert(1); animation: watermark 60s ease-in-out infinite alternate; }
.hero-bg .hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.30; filter: saturate(0.4) contrast(1.05) blur(1.5px); transform: scale(1.04); }
.hero-bg .hero-video.is-off { display: none; }
.hero-bg .hero-video::-webkit-media-controls, .hero-bg .hero-video::-webkit-media-controls-start-playback-button, .hero-bg .hero-video::-webkit-media-controls-panel, .hero-bg .hero-video::-webkit-media-controls-overlay-play-button { display: none !important; -webkit-appearance: none !important; opacity: 0 !important; pointer-events: none !important; }
.hero-bg .tint { position: absolute; inset: 0; background: linear-gradient(115deg, rgba(28,38,45,0.95) 0%, rgba(28,38,45,0.72) 45%, rgba(42,53,60,0.66) 100%); }
.hero-glow { position: absolute; left: 50%; top: 40%; width: 720px; height: 720px; border-radius: 50%; background: radial-gradient(circle, rgba(176,142,114,0.10), rgba(176,142,114,0) 65%); transform: translate(-50%, -50%); pointer-events: none; z-index: 0; opacity: 0; transition: opacity 1.2s ease, left 1.1s cubic-bezier(.2,.7,.2,1), top 1.1s cubic-bezier(.2,.7,.2,1); }
@media (hover: hover) and (pointer: fine) { .hero-dark:hover .hero-glow { opacity: 1; } }
@media (hover: none), (pointer: coarse) { .hero-glow { display: none; } }
html { -webkit-tap-highlight-color: transparent; }
.area li strong { font-weight: 600; color: var(--ink); }

@keyframes drift-a { from { transform: translate(0, 0) scale(1); } to { transform: translate(14vw, 10vw) scale(1.18); } }
@keyframes drift-b { from { transform: translate(0, 0) scale(1.05); } to { transform: translate(-12vw, -14vw) scale(0.92); } }
@keyframes drift-c { from { transform: translate(0, 0); } to { transform: translate(-16vw, 12vw); } }
@keyframes sheen { from { transform: translateX(-30%); } to { transform: translateX(30%); } }
@keyframes watermark { from { transform: translate(0, 0) rotate(0deg); } to { transform: translate(-4vw, -3vw) rotate(-3deg); } }
@keyframes kenburns { from { transform: scale(1); } to { transform: scale(1.07); } }
@keyframes cue { 0%, 100% { transform: translateY(0); opacity: .55; } 50% { transform: translateY(6px); opacity: 1; } }

/* ---------- Home hero ---------- */
.hero-dark { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; justify-content: center; padding-top: calc(var(--nav-h) + var(--announce-h) + clamp(2rem, 5vw, 4rem)); padding-bottom: clamp(3rem, 6vw, 5rem); }
.hero-dark .container { position: relative; z-index: 1; }
.hero-dark .eyebrow { color: #C9AD93; }
.hero-dark h1 { color: #F7F3EC; font-size: clamp(2.8rem, 6.4vw, 5rem); max-width: 13ch; margin-bottom: 1.5rem; text-wrap: balance; }
.hero-dark h1 em.ac { color: var(--gold); }
.hero-dark .lead { color: rgba(244,238,228,0.74); font-size: 1.18rem; max-width: 44ch; }
.hero-dark .btn.ghost { color: #F4EEE4; border-color: rgba(244,238,228,0.35); }
.hero-dark .btn.ghost:hover { background: rgba(244,238,228,0.08); border-color: #F4EEE4; color: #fff; }
.hero-dark .hero-photo { position: relative; }
.hero-dark .hero-photo::before { content: ""; position: absolute; inset: -14px; border-radius: 50% 50% 22px 22px / 34% 34% 22px 22px; background: radial-gradient(60% 50% at 50% 0%, rgba(176,142,114,0.35), rgba(176,142,114,0) 70%); filter: blur(18px); z-index: -1; }
.hero-dark .hero-photo-clip { border-radius: 50% 50% 16px 16px / 34% 34% 16px 16px; overflow: hidden; box-shadow: 0 50px 90px -40px rgba(0,0,0,0.75), 0 0 0 1px rgba(244,238,228,0.08); }
.hero-dark .hero-photo-clip img { border-radius: 0; box-shadow: none; animation: kenburns 26s ease-in-out infinite alternate; transform-origin: 50% 30%; }

.hero-facts { list-style: none; margin: clamp(2.6rem, 6vw, 4.5rem) 0 0; padding: 1.4rem 0 0; border-top: 1px solid rgba(244,238,228,0.14); display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem 2rem; }
.hero-facts li { font-family: var(--sans); font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(244,238,228,0.62); }
.hero-facts li strong { display: block; font-family: var(--display); font-weight: 500; font-size: 1.55rem; letter-spacing: 0; text-transform: none; color: #F7F3EC; margin-bottom: 0.15rem; }
.scroll-cue { position: absolute; left: 50%; bottom: 1.2rem; transform: translateX(-50%); z-index: 1; font-family: var(--sans); font-size: 0.66rem; letter-spacing: 0.3em; text-transform: uppercase; color: rgba(244,238,228,0.5); display: flex; flex-direction: column; align-items: center; gap: 0.4rem; }
.scroll-cue::after { content: ""; width: 1px; height: 28px; background: linear-gradient(to bottom, rgba(244,238,228,0.6), rgba(244,238,228,0)); animation: cue 2.4s ease-in-out infinite; }

/* ---------- Inner page headers on the same backdrop ---------- */
.page-hero.dark { padding-top: calc(var(--nav-h) + var(--announce-h) + clamp(3rem, 7vw, 5.5rem)); padding-bottom: clamp(3rem, 7vw, 5.5rem); }
.page-hero.dark .container { position: relative; z-index: 1; }
.page-hero.dark .eyebrow { color: #C9AD93; }
.page-hero.dark h1 { color: #F7F3EC; text-wrap: balance; }
.page-hero.dark .lead, .page-hero.dark p { color: rgba(244,238,228,0.74); }
.page-hero.dark .sig { color: #F7F3EC; }
.page-hero.dark .sig small { color: rgba(244,238,228,0.6); }
.page-hero.dark .hero-photo img { box-shadow: 0 50px 90px -40px rgba(0,0,0,0.75); }
.page-hero.dark .media img { box-shadow: 0 40px 80px -36px rgba(0,0,0,0.7); }
.page-hero.dark a:not(.btn) { color: #F7F3EC; border-bottom: 1px solid rgba(176,142,114,0.6); }
.page-hero.dark .btn.ghost { color: #F4EEE4; border-color: rgba(244,238,228,0.35); }

/* ---------- Body rhythm and hover life ---------- */
.section { padding-block: clamp(4.2rem, 10vw, 7.5rem); }
.section-head h2 { font-size: clamp(2.1rem, 4.4vw, 3.1rem); }
.area { transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; position: relative; overflow: hidden; }
.area::after { content: ""; position: absolute; left: 0; right: 0; top: -2px; height: 3px; background: linear-gradient(90deg, var(--gold), #D9C2AD); transform: scaleX(0); transform-origin: left; transition: transform .45s ease; }
.area:hover { transform: translateY(-6px); box-shadow: 0 30px 50px -30px rgba(42,53,60,0.35); border-color: var(--gold-soft); }
.area:hover::after { transform: scaleX(1); }
.areas .area:nth-child(2) { transition-delay: .08s; }
.areas .area:nth-child(3) { transition-delay: .16s; }
.js .reveal { transform: translateY(26px); transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
.js .reveal.in { transform: none; }
.band { position: relative; overflow: hidden; }
.band .hero-bg .orb { opacity: 0.35; }
.cred-group { transition: transform .35s ease, box-shadow .35s ease; }
.cred-group:hover { transform: translateY(-4px); box-shadow: 0 26px 46px -30px rgba(42,53,60,0.35); }
.btn { position: relative; overflow: hidden; }
.btn::after { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,0.22) 50%, transparent 70%); transform: translateX(-120%); transition: transform .7s ease; }
.btn:hover::after { transform: translateX(120%); }

@media (max-width: 940px) {
  .hero-dark { min-height: 0; padding-bottom: 3.5rem; }
  .hero-dark h1 { max-width: none; }
  .hero-facts { grid-template-columns: 1fr 1fr; }
  .scroll-cue { display: none; }
  .hero-bg .watermark { width: 110vw; right: -30%; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-bg .orb, .hero-bg .sheen, .hero-bg .watermark, .hero-dark .hero-photo-clip img, .scroll-cue::after { animation: none !important; }
  .hero-glow { display: none; }
}

/* ---------- Attorney cut-out standing over the hero backdrop ---------- */
.hero-dark { padding-bottom: 0; }
.hero-dark .hero-grid { align-items: end; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); }
.hero-dark .hero-grid > * { min-width: 0; }
.hero-dark .hero-copy { align-self: center; padding-bottom: clamp(3.5rem, 8vw, 6.5rem); }
/* Taller than the space available: the hero clips her at the bottom, where the photo already ends at the waist, so she reads larger without pushing the layout. */
.hero-cutout { position: relative; display: flex; justify-content: center; align-items: flex-end; height: calc((100vh - var(--nav-h) - var(--announce-h)) * 1.16); height: calc((100svh - var(--nav-h) - var(--announce-h)) * 1.16); max-height: 1100px; margin-bottom: calc((100vh - var(--nav-h) - var(--announce-h)) * -0.16); margin-bottom: calc((100svh - var(--nav-h) - var(--announce-h)) * -0.16); }
.hero-cutout::before { content: ""; position: absolute; left: 50%; top: 22%; width: 70%; aspect-ratio: 1; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(circle, rgba(176,142,114,0.22), rgba(176,142,114,0.06) 40%, rgba(176,142,114,0) 70%); filter: blur(40px); z-index: 0; animation: breathe 9s ease-in-out infinite alternate; }
.hero-cutout img { position: relative; z-index: 1; display: block; height: 100%; width: auto; max-width: none; object-fit: contain; object-position: bottom center; filter: drop-shadow(0 30px 40px rgba(0,0,0,0.55)); animation: float 12s ease-in-out infinite alternate; }
@keyframes breathe { from { transform: translateX(-50%) scale(0.94); opacity: 0.8; } to { transform: translateX(-50%) scale(1.08); opacity: 1; } }
@keyframes float { from { transform: translateY(0); } to { transform: translateY(-8px); } }
.hero-dark .scroll-cue { left: auto; right: clamp(1.25rem, 5vw, 2.5rem); transform: none; }
@media (max-width: 940px) {
  .hero-dark .hero-grid { grid-template-columns: minmax(0, 1fr); }
  .hero-dark .hero-copy { padding-bottom: 0; }
  .hero-cutout { height: auto; margin-top: 1.5rem; }
  .hero-cutout img { width: min(100%, 400px); height: auto; max-height: 66vh; object-fit: contain; object-position: bottom center; }
  .hero-cutout { margin-bottom: 0; }
  .hero-dark { padding-top: calc(var(--nav-h) + 1.75rem); }
  .hero-dark h1 { font-size: clamp(2.35rem, 10.5vw, 2.9rem); }
  .hero-dark .lead { font-size: 1.06rem; }
  .hero-actions .btn { flex: 1 1 auto; justify-content: center; }
  .cta-actions { flex-direction: column; align-items: stretch; }
  .cta-actions .btn { width: 100%; }
  .page-hero.dark { padding-top: calc(var(--nav-h) + 2rem); padding-bottom: 2.5rem; }
  .page-hero.dark h1 { font-size: clamp(2.1rem, 9vw, 2.6rem); }
}
@media (prefers-reduced-motion: reduce) { .hero-cutout::before, .hero-cutout img { animation: none !important; } }

/* ---------- Phone pass: comfortable tap targets (44px), tighter rhythm ---------- */
@media (max-width: 860px) {
  nav.primary a { padding: 0.85rem 0; min-height: 44px; display: flex; align-items: center; font-size: 1.05rem; }
  .btn { min-height: 46px; }
  .social a { width: 44px; height: 44px; }
  .foot-col ul { gap: 0.2rem; }
  .foot-col a { display: inline-block; padding: 0.45rem 0; min-height: 44px; line-height: 1.6; }
  .foot-cols { gap: 1.5rem 2.5rem; }
  .cd-item .cd-value { font-size: 1.12rem; }
  .cd-item .cd-value a { display: inline-block; padding: 0.55rem 0; min-height: 44px; }
  .copyright a, .lead-form .hint a, .disclaimer a { display: inline-block; padding: 0.6rem 0.2rem; margin: -0.6rem -0.2rem; min-height: 44px; line-height: 1.6; }
  .copyright { line-height: 2.2; }
  .choice { min-height: 44px; }
  .field input, .field select, .field textarea { font-size: 1.05rem; padding: 0.9rem 0.95rem; }
  .section { padding-block: clamp(3rem, 9vw, 4.5rem); }
  .areas { gap: 1rem; }
  .area { padding: 1.5rem 1.3rem; }
  .creds { gap: 1rem; }
  .hero-facts { display: none; }
  .mobile-cta { padding-bottom: calc(0.7rem + env(safe-area-inset-bottom, 0px)); }
  .hero-dark .hero-photo::before { display: none; }
  .hero-bg .hero-video { opacity: 0.34; filter: saturate(0.4) contrast(1.05) blur(1px); }
}

/* ---------- Credentials on the dark backdrop: one tall column beside two stacked ---------- */
.creds-dark { background: radial-gradient(120% 90% at 20% 0%, var(--hero-bg-2), var(--hero-bg) 62%); border-top: 1px solid rgba(244,238,228,0.10); }
.creds-dark .eyebrow { color: #C9AD93; }
.creds.creds-2 { grid-template-columns: 1fr 1fr; gap: 1.6rem; align-items: stretch; }
.cred-stack { display: grid; gap: 1.6rem; grid-template-rows: auto 1fr; }
.creds-dark .cred-group { background: rgba(244,238,228,0.045); border: 1px solid rgba(244,238,228,0.12); border-top: 2px solid var(--gold); padding: 1.8rem 1.7rem; }
.creds-dark .cred-group h2 { color: #C9AD93; }
.creds-dark .cred-group li { color: rgba(244,238,228,0.86); font-size: 1.04rem; }
.creds-dark .cred-group:hover { box-shadow: 0 26px 46px -30px rgba(0,0,0,0.7); }
@media (max-width: 940px) { .creds.creds-2 { grid-template-columns: 1fr; } }

/* ---------- Still office backdrop behind the home hero ---------- */
.hero-bg .hero-still { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.hero-dark .hero-bg .tint { background:
    linear-gradient(to bottom, rgba(28,38,45,0.78) 0, rgba(28,38,45,0) 22%),
    linear-gradient(90deg, rgba(28,38,45,0.97) 0%, rgba(28,38,45,0.94) 34%, rgba(28,38,45,0.62) 58%, rgba(28,38,45,0.30) 100%); }
.hero-dark .hero-bg .orb { opacity: 0.22; }
@media (max-width: 940px) {
  /* phones: the whole office picture, shrunk to the screen width and set behind the head and
     shoulders of the portrait, with its top and bottom edges faded into the navy */
  .hero-bg .hero-still { inset: auto 0 calc(min(66vh, (100vw - 2.5rem) * 1.613) * 0.5) 0; height: auto; object-fit: contain;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 24%, #000 76%, transparent 100%); mask-image: linear-gradient(to bottom, transparent 0, #000 24%, #000 76%, transparent 100%); }
  .hero-dark .hero-bg .tint { background: linear-gradient(to bottom, rgba(28,38,45,0.97) 0%, rgba(28,38,45,0.93) 46%, rgba(28,38,45,0.45) 100%); }
}

/* ---------- Practice areas: editorial composition ---------- */
.practice { --p-bg: #F3EFE8; --p-panel: #FAF8F4; --p-ink: #25323A; --p-soft: #625C56; --p-accent: #B99578; --p-line: rgba(185,149,120,0.40); background: var(--p-bg); }
.practice-top { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(2.5rem, 6vw, 5.5rem); align-items: center; }
.practice-intro h2 { color: var(--p-ink); font-size: clamp(2.5rem, 5vw, 3.9rem); line-height: 1.02; letter-spacing: -0.012em; max-width: 11ch; }
.practice-intro h2 em.ac { color: var(--p-accent); }
.practice-rule { display: block; width: 64px; height: 1px; background: var(--p-accent); margin: 2rem 0 1.6rem; }
.practice-intro p { color: var(--p-soft); font-size: 1.14rem; line-height: 1.75; max-width: 40ch; }
.practice-photo { margin: 0; position: relative; }
.practice-photo::before { content: ""; position: absolute; inset: 18px -18px -18px 18px; border: 1px solid var(--p-line); pointer-events: none; }
.practice-photo img { position: relative; display: block; width: 100%; height: auto; }

.practice-panels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto auto 1fr; margin-top: clamp(3.5rem, 7vw, 6rem); border: 1px solid var(--p-line); background: var(--p-panel); }
.practice-panel { display: grid; grid-template-rows: subgrid; grid-row: span 3; padding: clamp(2rem, 3.4vw, 3rem) clamp(1.6rem, 2.8vw, 2.6rem) clamp(2.2rem, 3.4vw, 3rem); position: relative; transition: background .4s ease; }
.practice-panel + .practice-panel { border-left: 1px solid var(--p-line); }
.practice-panel::before { content: ""; position: absolute; left: clamp(1.6rem, 2.8vw, 2.6rem); top: -1px; width: 44px; height: 2px; background: var(--p-accent); transition: width .5s ease; }
.practice-panel:hover { background: #FFFFFF; }
.practice-panel:hover::before { width: 96px; }
.practice-panel h3 { color: var(--p-ink); font-size: clamp(1.6rem, 2.3vw, 1.95rem); line-height: 1.1; margin: 0 0 1.1rem; }
.practice-panel p { color: var(--p-soft); font-size: 1.03rem; line-height: 1.72; margin: 0 0 1.7rem; }
.practice-panel ul { list-style: none; margin: 0; padding: 0; align-self: start; border-top: 1px solid var(--p-line); }
.practice-panel li { font-family: var(--serif); font-size: 1.02rem; line-height: 1.55; color: var(--p-ink); padding: 0.85rem 0; border-bottom: 1px solid var(--p-line); }
.practice-panel li strong { font-weight: 600; }
@media (max-width: 940px) {
  .practice-top { grid-template-columns: minmax(0, 1fr); gap: 2.6rem; }
  .practice-intro h2 { max-width: none; }
  .practice-photo::before { inset: 12px -10px -12px 10px; }
  .practice-panels { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-rows: 1fr; }
  .practice-panel { display: block; grid-row: auto; }
  .practice-panel + .practice-panel { border-left: 0; border-top: 1px solid var(--p-line); }
}

/* ---------- Admissions sub-headings; credentials without a section label ---------- */
.creds-dark .creds { margin-top: 0; }
.cred-group .cred-sub { font-family: var(--display); font-weight: 500; font-size: 1.22rem; letter-spacing: 0; color: #F7F3EC; margin: 0 0 0.7rem; }
.cred-group ul + .cred-sub { margin-top: 1.5rem; padding-top: 1.3rem; border-top: 1px solid rgba(244,238,228,0.12); }

@media (max-width: 860px) {
  .prose p a, .page-hero.dark .lead a { display: inline-block; padding: 0.7rem 0; margin: -0.3rem 0; }
}

/* ---------- Practice areas: banner image, and a photograph above each panel ---------- */
.practice-banner { margin: 0; }
.practice-banner img { display: block; width: 100%; height: auto; }
/* Wide screens: the heading and intro are real text laid over the bare wall on the left of the
   photograph. Phones: the text sits above a tighter crop of the photograph. */
.practice-head { position: relative; }
@media (min-width: 941px) {
  .section.practice { padding-top: 0; }
  .practice-head-text { position: absolute; inset: 0; display: flex; align-items: center; pointer-events: none; }
  .practice .practice-intro { width: 54%; pointer-events: auto; }
  .practice .practice-intro h2 { font-size: clamp(2rem, 3.5vw, 3.4rem); max-width: none; }
  .practice .practice-rule { margin: clamp(1rem, 1.8vw, 1.8rem) 0 clamp(0.9rem, 1.5vw, 1.5rem); }
  .practice .practice-intro p { font-size: clamp(0.95rem, 1.2vw, 1.14rem); max-width: 38ch; }
}
@media (max-width: 940px) {
  .practice-head { display: flex; flex-direction: column-reverse; }
  .practice .practice-intro { margin-bottom: 2.2rem; }
}
.practice-panels { grid-template-rows: auto auto auto 1fr; margin-top: clamp(2.5rem, 5vw, 4rem); }
.practice-panel { --px: clamp(1.6rem, 2.8vw, 2.6rem); --pt: clamp(2rem, 3.4vw, 3rem); grid-row: span 4; padding: var(--pt) var(--px) clamp(2.2rem, 3.4vw, 3rem); }
.practice-panel::before { display: none; }
.practice-thumb { margin: calc(-1 * var(--pt)) calc(-1 * var(--px)) clamp(1.7rem, 2.6vw, 2.2rem); overflow: hidden; border-bottom: 1px solid var(--p-line); }
.practice-thumb img { display: block; width: 100%; aspect-ratio: 3 / 1; object-fit: cover; transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.practice-panel:hover .practice-thumb img { transform: scale(1.04); }
@media (max-width: 940px) {
  .practice-panels { grid-template-rows: none; }
  .practice-panel { grid-row: auto; }
}

/* ---------- Contact page: the desk photograph fills the header, under a navy wash ---------- */
.contact-hero { display: flex; align-items: center; min-height: clamp(460px, 68vh, 720px); }
.contact-hero .container { width: 100%; }
.contact-hero .contact-hero-copy { max-width: 34rem; }
.contact-hero .hero-bg .hero-still { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: right 42%; -webkit-mask-image: none; mask-image: none; }
.contact-hero .hero-bg .tint { background:
    linear-gradient(to bottom, rgba(28,38,45,0.55) 0%, rgba(28,38,45,0) 26%),
    linear-gradient(90deg, rgba(28,38,45,0.96) 0%, rgba(28,38,45,0.90) 32%, rgba(28,38,45,0.55) 58%, rgba(28,38,45,0.22) 100%); }
@media (max-width: 940px) {
  .page-hero.dark.contact-hero { display: block; min-height: 0; padding-bottom: 64vw; }
  .contact-hero .hero-bg .hero-still { inset: auto 0 0 0; height: auto; object-fit: contain; }
  .contact-hero .hero-bg .tint { background: linear-gradient(to bottom, rgba(28,38,45,1) 0%, rgba(28,38,45,1) calc(100% - 66.6vw), rgba(28,38,45,0.55) calc(100% - 52vw), rgba(28,38,45,0.18) 100%); }
}

/* Contact Us in the header is a plain tab like the others (2026-10-04) */
nav.primary li:last-child { margin-top: 0; }
