/*
Theme Name: Harbor Point Legal
Template: joydea-base
Description: Joydea child theme for harborpoint.joydea.com. Generated by provision.py; brand values live in the site config.
Version: 1.0.0
Text Domain: joydea-harborpoint
*/


:root { --hp-navy:#16213A; --hp-brass:#A8874F; --hp-cream:#F6F2EA; --hp-paper:#FFFDF9; --hp-ink:#16213A; --hp-muted:#5B627A; --hp-line: rgba(22,33,58,.18); }
body { background: var(--hp-cream); color: var(--hp-ink); }
.hp-wrap { max-width: 1240px; margin: 0 auto; padding: 0 32px; }
.hp-narrow { max-width: 780px; margin: 0 auto; }
h1,h2,h3,.hp-h1,.hp-h2 { font-family: var(--wp--preset--font-family--heading); font-weight: 500; line-height: 1.05; letter-spacing:-.01em; color: var(--hp-ink); }
.hp-h1 { font-size: clamp(2.6rem, 4.8vw, 4.4rem); margin: .8rem 0 1.2rem; }
.hp-h2 { font-size: clamp(2rem, 3.2vw, 3.1rem); margin: .4rem 0 1rem; }
h3 { font-size: 1.6rem; margin: .4rem 0 .4rem; }
.hp-label { display:block; font-size: 12px; letter-spacing:.2em; text-transform:uppercase; font-weight:600; color: var(--hp-brass); }
.hp-label-ink { color: var(--hp-ink); margin-bottom:.6rem; }
.hp-lead { color: var(--hp-muted); font-size: 1.15rem; line-height:1.6; margin: 0 0 1.5rem; max-width: 560px; }
.hp-body { color: var(--hp-muted); font-size: 1.02rem; line-height: 1.7; margin: 0 0 1rem; }
.hp-aside { color: var(--hp-muted); max-width: 420px; margin: 0; font-size: 1rem; line-height:1.6; }
.hp-fine { color: var(--hp-muted); font-size:.85rem; display:block; margin-top:.6rem; }
.hp-section { padding: 5.5rem 0; }
.hp-tight { padding-top: 3rem; }
.hp-head { display:flex; justify-content:space-between; align-items:flex-end; gap:2.5rem; margin-bottom: 2.5rem; }
.hp-btns { display:flex; gap:.9rem; flex-wrap:wrap; }
.hp-btn { display:inline-flex; align-items:center; justify-content:center; padding: 1rem 1.7rem; font-weight:600; font-size:.95rem; letter-spacing:.02em; text-decoration:none; transition: background .15s, color .15s; }
.hp-btn-navy { background: var(--hp-navy); color: var(--hp-cream); } .hp-btn-navy:hover { background: var(--hp-brass); color: var(--hp-cream); }
.hp-btn-line { border:1px solid var(--hp-navy); color: var(--hp-navy); } .hp-btn-line:hover { background: var(--hp-navy); color: var(--hp-cream); }
.hp-more { color: var(--hp-brass); font-weight:600; font-size:.9rem; text-decoration:none; } .hp-more:hover { color: var(--hp-navy); }
.hp-numeral { font-family: var(--wp--preset--font-family--heading); color: var(--hp-brass); font-size: 2.6rem; line-height:1; display:block; }
.hp-numeral-brass { font-size: 2.1rem; }
.hp-star { width:16px; height:16px; fill: var(--hp-brass); } .hp-stars { display:inline-flex; gap:2px; margin-right:.7rem; vertical-align:middle; }
/* topbar */
.hp-topbar { background: var(--hp-navy); color: rgba(246,242,234,.8); font-size:.85rem; padding:.55rem 0; }
.hp-topbar .hp-wrap { display:flex; justify-content:space-between; gap:1rem; } .hp-topbar a { color: var(--hp-cream); font-weight:700; text-decoration:none; }
/* hero */
.hp-hero { padding: 3.5rem 0 4.5rem; }
.hp-hero-grid { display:grid; grid-template-columns: 1.1fr .9fr; gap: 4rem; align-items:center; }
.hp-hero-single .hp-hero-copy { max-width: 800px; }
.hp-hero-art { position:relative; }
.hp-hero-img { width:100%; height: 620px; object-fit: cover; display:block; }
.hp-page-img { width:100%; height: 420px; object-fit: cover; display:block; }
.hp-hero-page { padding: 3rem 0 3.5rem; }
.hp-callout { position:absolute; left:-40px; bottom:40px; background: var(--hp-navy); color: var(--hp-cream); padding: 1.4rem 1.6rem; max-width: 300px; }
.hp-callout-n { display:block; font-family: var(--wp--preset--font-family--heading); font-size: 1.9rem; color: var(--hp-brass); } .hp-callout span:last-child { font-size:.9rem; opacity:.85; }
/* form */
.hp-form { background: var(--hp-paper); border:1px solid var(--hp-line); padding: 1.5rem; max-width: 560px; }
.hp-form .ff-el-group { margin-bottom: .8rem; }
.hp-form input, .hp-form textarea, .hp-form select { border:1px solid rgba(22,33,58,.25) !important; background: var(--hp-paper) !important; border-radius: 0 !important; padding:.85rem 1rem !important; font-family: inherit !important; }
.hp-form .ff-btn-submit, .hp-form button[type=submit] { width:100%; background: var(--hp-navy) !important; color: var(--hp-cream) !important; border:0 !important; border-radius:0 !important; font-weight:600 !important; padding:1rem !important; letter-spacing:.02em; }
.hp-form .ff-btn-submit:hover { background: var(--hp-brass) !important; }
.hp-form .ff-el-input--label label { font-weight:500; font-size:.9rem; }
/* trust */
.hp-trust { border-top:1px solid var(--hp-line); border-bottom:1px solid var(--hp-line); padding: 1.6rem 0; display:grid; grid-template-columns: repeat(4,1fr); gap:1.5rem; align-items:center; font-size:.92rem; }
/* practice areas */
.hp-pa-grid { display:grid; grid-template-columns: repeat(4,1fr); border-top:1px solid var(--hp-line); }
.hp-pa { padding: 2.1rem 1.7rem 2.1rem 0; border-right:1px solid var(--hp-line); display:flex; flex-direction:column; gap:.6rem; }
.hp-pa:not(:first-child) { padding-left: 1.7rem; } .hp-pa:last-child { border-right:0; padding-right:0; }
.hp-pa h3 { font-size: 1.55rem; margin: 0; } .hp-pa p { margin:0 0 .4rem; color: var(--hp-muted); font-size:.95rem; line-height:1.6; }
/* process */
.hp-navy { background: var(--hp-navy); color: var(--hp-cream); } .hp-navy .hp-h2, .hp-navy h3 { color: var(--hp-cream); } .hp-navy .hp-lead, .hp-navy p { color: rgba(246,242,234,.75); }
.hp-two-wide { display:grid; grid-template-columns: .8fr 1.2fr; gap: 5rem; align-items:start; }
.hp-step { display:grid; grid-template-columns: 90px 1fr; gap:1.2rem; padding: 1.5rem 0; border-top:1px solid rgba(246,242,234,.2); }
.hp-step:last-child { border-bottom:1px solid rgba(246,242,234,.2); } .hp-step h3 { font-size:1.45rem; margin:0; } .hp-step p { margin:.4rem 0 0; font-size:.98rem; }
/* attorneys */
.hp-atty-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; }
.hp-atty { display:grid; grid-template-columns: 220px 1fr; gap: 1.8rem; align-items:start; }
.hp-atty img { width:220px; height:280px; object-fit:cover; display:block; } .hp-atty h3 { font-size:1.8rem; margin:.3rem 0 .5rem; } .hp-atty p { color: var(--hp-muted); font-size:.95rem; line-height:1.6; margin:0 0 .6rem; }
/* testimonial */
.hp-testimonial { background: var(--hp-paper); border:1px solid var(--hp-line); padding: 4rem 5rem; text-align:center; display:flex; flex-direction:column; align-items:center; gap:1.2rem; }
.hp-quote { fill: var(--hp-brass); }
.hp-quote-text { font-family: var(--wp--preset--font-family--heading); font-style: italic; font-size: clamp(1.4rem, 2.4vw, 2rem); line-height:1.3; max-width: 820px; margin:0; }
/* two column */
.hp-two { display:grid; grid-template-columns: 1fr 1fr; gap: 3.5rem; align-items:center; }
.hp-flip img { order:2; }
.hp-photo { width:100%; height: 460px; object-fit:cover; display:block; }
.hp-list { margin: 0; padding-left: 1.2rem; color: var(--hp-ink); line-height:1.8; }
.hp-map { height: 360px; background:#E4DED2; overflow:hidden; } .hp-map-svg { width:100%; height:100%; display:block; }
/* fees */
.hp-fees { border-top:1px solid var(--hp-line); }
.hp-fee { display:flex; justify-content:space-between; gap:2rem; align-items:baseline; padding: 1.4rem 0; border-bottom:1px solid var(--hp-line); }
.hp-fee h3 { font-size:1.4rem; margin:0; } .hp-fee p { margin:.3rem 0 0; color: var(--hp-muted); font-size:.95rem; max-width: 620px; }
.hp-fee-price { font-family: var(--wp--preset--font-family--heading); font-size: 1.8rem; white-space:nowrap; }
/* faq */
.hp-faq { border-top:1px solid var(--hp-line); padding:1.1rem 0; } .hp-faq:last-of-type { border-bottom:1px solid var(--hp-line); }
.hp-faq summary { cursor:pointer; font-weight:600; list-style:none; display:flex; justify-content:space-between; font-size:1.05rem; }
.hp-faq summary::after { content:"+"; color: var(--hp-brass); font-size:1.4rem; } .hp-faq[open] summary::after { content:"–"; }
.hp-faq p { color: var(--hp-muted); margin:.7rem 0 0; line-height:1.65; }
/* cta */
.hp-cta { border:1px solid var(--hp-navy); background: var(--hp-paper); padding: 3.5rem 4rem; display:flex; justify-content:space-between; align-items:center; gap: 3rem; } .hp-cta .hp-lead { margin:0; }
/* header, footer, blog */
.jd-header { background: var(--hp-cream) !important; border-bottom:1px solid var(--hp-line); }
.jd-header .wp-block-site-title a { font-family: var(--wp--preset--font-family--heading); font-weight:500; font-size:1.5rem; }
.jd-header .jd-header-cta .wp-block-button__link { background: var(--hp-navy); color: var(--hp-cream); border-radius:0; font-weight:600; }
.jd-footer { background: var(--hp-navy) !important; }
.jd-footer, .jd-footer p, .jd-footer .wp-block-site-tagline { color: rgba(246,242,234,.7) !important; } .jd-footer .jd-eyebrow { color: var(--hp-brass) !important; }
.jd-footer a, .jd-footer h4, .jd-footer .wp-block-site-title a, .jd-footer .has-base-color { color: var(--hp-cream) !important; }
.jd-card { background: var(--hp-paper) !important; border:1px solid var(--hp-line); border-radius:0; box-shadow:none; }
.wp-block-post-title a { font-family: var(--wp--preset--font-family--heading); text-decoration:none; color: var(--hp-ink); }
.wp-block-query-title { font-size: 2.4rem; }
.blog main::before { content: "Client resources"; display:block; font-family: var(--wp--preset--font-family--heading); font-size: 2.8rem; margin-bottom: .5rem; }
.blog main::after { content: ""; }
.blog .wp-block-post-title { font-size: 1.6rem; line-height:1.15; margin: .4rem 0 .6rem; }
.blog .wp-block-post-excerpt__excerpt { color: var(--hp-muted); font-size: .98rem; }
.blog .jd-card { transition: none; } .blog .jd-card:hover { transform:none; }
.single-post .wp-block-post-content { max-width: 720px; margin: 0 auto; font-size: 1.08rem; line-height: 1.75; color: var(--hp-ink); }
.single-post .wp-block-post-content h2 { font-size: 1.9rem; margin-top: 2rem; }
@media (max-width: 1000px) {
  .hp-hero-grid, .hp-two, .hp-two-wide, .hp-atty-grid { grid-template-columns: 1fr; } .hp-pa-grid { grid-template-columns: 1fr 1fr; } .hp-trust { grid-template-columns: 1fr 1fr; }
  .hp-pa { border-right:0; padding-left:0 !important; border-bottom:1px solid var(--hp-line); } .hp-callout { left: 12px; bottom: -24px; } .hp-hero-img { height: 440px; }
  .hp-head { flex-direction:column; align-items:flex-start; } .hp-cta { flex-direction:column; align-items:flex-start; padding: 2.5rem 2rem; } .hp-testimonial { padding: 2.5rem 1.5rem; }
  .hp-topbar-r { display:none; } .hp-flip img { order:0; }
}
@media (max-width: 600px) { .hp-section { padding: 3.5rem 0; } .hp-wrap { padding: 0 20px; } .hp-atty { grid-template-columns: 1fr; } .hp-atty img { width:100%; height: 320px; } .hp-photo { height: 300px; } .hp-trust { grid-template-columns: 1fr; } .hp-pa-grid { grid-template-columns: 1fr; } }


