/*
  USA Business Brokerage: site styles
  Palette, type and imagery follow the brand standee: burgundy, gold and linen,
  Cinzel for display type, Poppins for text. Fonts are self-hosted (SIL OFL 1.1).
*/

/* ---------- Fonts ---------- */
@font-face { font-family: 'Cinzel'; src: url('fonts/cinzel-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Cinzel'; src: url('fonts/cinzel-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Cinzel'; src: url('fonts/cinzel-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('fonts/poppins-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('fonts/poppins-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('fonts/poppins-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('fonts/poppins-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('fonts/poppins-latin-800-normal.woff2') format('woff2'); font-weight: 800; font-style: normal; font-display: swap; }

/* ---------- Tokens ---------- */
:root {
  --wine: #4a1e27;
  --night: #35151c;
  --dark: #250d13;
  --gold: #dcc39a;
  --brass: #cda46b;
  --bronze: #9c7443;
  --bronze-text: #80592a;   /* gold tone that passes WCAG AA on linen */
  --linen: #f4eadb;
  --ivory: #fffaf2;
  --ink: #2b2124;
  --muted: #5b4345;
  --field-border: #8f7b6e;
  --body: 'Poppins', Arial, sans-serif;
  --display: 'Cinzel', Georgia, serif;
  --width: 1230px;
  --shadow: 0 22px 58px rgba(21, 4, 9, .23);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--linen); color: var(--ink); font: 400 15px/1.8 var(--body); }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img, svg { max-width: 100%; display: block; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { line-height: 1.15; }
h1, h2 { font-family: var(--display); font-weight: 500; }
h1 { font-size: clamp(2.5rem, 5.2vw, 5.15rem); letter-spacing: -.035em; }
h2 { font-size: clamp(1.9rem, 3.7vw, 3.55rem); letter-spacing: -.025em; }
h3 { font-size: 1.25rem; }
p { max-width: 75ch; }
:focus-visible { outline: 3px solid #b8863f; outline-offset: 3px; }
.site-header :focus-visible, .topbar :focus-visible, .site-footer :focus-visible,
.hero :focus-visible, .page-hero :focus-visible, .identity-band :focus-visible, .callout-wide :focus-visible { outline-color: #ffe4ae; }

.wrap { max-width: var(--width); margin: auto; padding-inline: 28px; }
.small-caps { text-transform: uppercase; letter-spacing: .28em; font-size: .7rem; font-weight: 700; }
.eyebrow { color: var(--bronze-text); margin-bottom: 16px; }
.eyebrow::before { content: ''; display: inline-block; width: 34px; height: 2px; margin-right: 13px; background: currentColor; vertical-align: middle; }
.identity-band .eyebrow, .section-dark .eyebrow { color: var(--brass); }
.goldtext { color: var(--gold); }
.accent { color: #a57c47; }
.nowrap { white-space: nowrap; }
.gold-line { width: 100px; height: 2px; background: var(--brass); display: block; margin: 24px 0; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.skip { position: absolute; left: 10px; top: -90px; background: #fff; color: var(--wine); font-weight: 600; padding: 8px 16px; z-index: 99; }
.skip:focus { top: 8px; }

/* ---------- Top bar & header ---------- */
.topbar { background: #210c11; color: #e6cda8; font-size: .71rem; letter-spacing: .16em; text-transform: uppercase; }
.topbar .wrap { display: flex; justify-content: space-between; gap: 10px; align-items: center; min-height: 35px; }
.topbar a:hover { color: #fff; }

.site-header { position: sticky; top: 0; z-index: 40; color: #fff8f2; background: rgba(49, 18, 27, .97); border-bottom: 1px solid rgba(220, 195, 154, .42); box-shadow: 0 4px 20px rgba(10, 0, 0, .2); backdrop-filter: blur(12px); }
.header-inner { position: relative; min-height: 100px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { display: flex; align-items: center; flex: none; }
.brand img { width: 236px; height: auto; }
.footer-grid .brand img { width: 260px; }

.nav { display: flex; align-items: center; gap: clamp(12px, 1.8vw, 28px); }
.nav a { font-size: .76rem; letter-spacing: .085em; text-transform: uppercase; font-weight: 600; color: #f8ede5; transition: color .2s, background .2s; }
.nav a:not(.nav-cta):hover, .nav a[aria-current="page"] { color: var(--gold); }
.nav a[aria-current="page"]:not(.nav-cta) { box-shadow: inset 0 -2px 0 var(--brass); }
.nav .nav-cta { border: 1px solid var(--brass); background: #d5b27e; color: #30131a; padding: 13px 20px; border-radius: 2px; font-weight: 700; }
.nav .nav-cta:hover { background: #efd19f; }

.menu-toggle { display: none; align-items: center; gap: 10px; color: var(--gold); border: 1px solid #b28a65; background: transparent; padding: 10px 14px; text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; font-weight: 600; }
.menu-toggle svg { width: 20px; height: 20px; }
.menu-toggle .icon-close { display: none; }
.menu-toggle[aria-expanded="true"] .icon-open { display: none; }
.menu-toggle[aria-expanded="true"] .icon-close { display: block; }

/* ---------- Buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; border-radius: 2px; padding: 15px 25px; font-weight: 700; font-size: .8rem; text-transform: uppercase; letter-spacing: .075em; transition: transform .2s, background .2s, border-color .2s; border: 1px solid transparent; min-height: 54px; text-align: center; }
.btn:hover { transform: translateY(-2px); }
.btn-gold { background: linear-gradient(130deg, #f0d09a, #c89e63); color: #321219; }
.btn-gold:hover { background: #f9dba9; }
.btn-line { border-color: var(--gold); color: var(--ivory); background: rgba(45, 14, 22, .35); }
.btn-line:hover { background: rgba(220, 195, 154, .18); }
.btn-wine { background: var(--wine); color: #fff; }
.btn-wine:hover { background: #692c39; }
.btn[disabled] { opacity: .65; cursor: progress; transform: none; }

/* ---------- Home hero (flag, Statue of Liberty and burgundy sky; no portrait) ---------- */
.hero { position: relative; isolation: isolate; overflow: hidden; color: var(--ivory); background: radial-gradient(circle at 80% 38%, #903d37 0, #55202a 39%, var(--night) 76%); border-bottom: 6px solid #d8b477; }
.hero::before { /* sunset skyline across the bottom, aspect ratio preserved */
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 330px; z-index: -2; pointer-events: none;
  background: url('skyline-fade.webp') center bottom / max(100%, 1130px) auto no-repeat; opacity: .85;
}
.hero::after { /* flag + Statue of Liberty, edges pre-blended into the burgundy sky */
  content: ''; position: absolute; top: 0; right: 0; height: 132%; aspect-ratio: 626 / 1700; z-index: -1; pointer-events: none;
  background: url('liberty-flag.webp') right top / 100% 100% no-repeat;
}
.hero-inner { min-height: 700px; display: flex; align-items: center; padding-block: 60px; }
.hero-copy { position: relative; z-index: 2; max-width: 760px; }
.hero-kicker { letter-spacing: .36em; font-size: .78rem; color: #eccf9b; margin-bottom: 30px; text-transform: uppercase; }
.hero-kicker span { white-space: nowrap; }
.hero-kicker .dot { margin-inline: .7em; }
.hero-title { max-width: 700px; text-shadow: 0 4px 25px #270e16; }
.hero-title em { font-style: normal; color: #f1c987; }
.hero-rule { display: block; background: var(--brass); height: 5px; width: 94px; margin: 30px 0 16px; }
.hero-intro { font: 400 clamp(1.13rem, 1.9vw, 1.4rem)/1.65 var(--display); text-transform: uppercase; max-width: 530px; text-shadow: 0 2px 14px #270e16; }
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 37px; }

/* BUY | SELL | VALUE strip */
.tape { padding: 17px 0; background: #250e15; color: var(--gold); border-bottom: 1px solid #79503c; }
.tape .wrap { display: flex; align-items: center; justify-content: center; gap: 50px; font: 500 clamp(1rem, 1.6vw, 1.28rem) var(--display); letter-spacing: .15em; }
.tape .sep { height: 24px; width: 2px; background: var(--brass); }

/* ---------- Sections ---------- */
.section { padding: 90px 0; }
.section-light { background: var(--linen); }
.section-tight-top { padding-top: 0; }
.section-lead { max-width: 700px; margin: 18px 0 37px; font-size: 1rem; color: var(--muted); }

.service-layout { display: grid; grid-template-columns: .84fr 1.2fr; gap: 65px; align-items: center; }
.service-intro h2 { max-width: 570px; }
.services-stack { display: grid; gap: 13px; }
.service-line { display: flex; gap: 22px; align-items: center; padding: 19px 24px 19px 20px; background: linear-gradient(105deg, #fffaf0, #f5e8d4); border: 1px solid #e7ceaa; box-shadow: 0 4px 25px rgba(53, 21, 28, .05); min-height: 122px; transition: transform .2s, border-color .2s; }
a.service-line:hover { transform: translateX(5px); border-color: #c9a26b; }
.icon-round { background: var(--wine); border: 4px solid var(--brass); box-shadow: 0 0 0 2px #fff0d5; color: var(--gold); height: 76px; width: 76px; border-radius: 50%; display: grid; place-items: center; flex: none; }
.icon-round svg { width: 37px; height: 37px; stroke: currentColor; fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.service-line h3, .service-box h3 { font-size: 1.06rem; text-transform: uppercase; color: #74242b; font-weight: 800; line-height: 1.4; }
.service-line p { color: #644d4b; line-height: 1.6; font-size: .85rem; margin-top: 3px; }

/* Trusted-partner band */
.identity-band { position: relative; padding: 85px 0 82px; overflow: hidden; color: var(--ivory); background: linear-gradient(95deg, #270d14, rgba(61, 17, 29, .92)), url('skyline-clean.webp') right bottom / 75% auto no-repeat; }
.identity-band .wrap { display: grid; grid-template-columns: 1.4fr .75fr; align-items: center; gap: 50px; }
.identity-band h2 { max-width: 800px; }
.identity-band h2 strong { font-family: var(--display); font-weight: 500; color: var(--gold); }
.identity-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 44px; border-top: 1px solid rgba(220, 195, 154, .5); padding-top: 30px; }
.identity-point { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; color: var(--gold); }
.identity-point svg { height: 40px; width: 40px; stroke: currentColor; stroke-width: 1.6; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.identity-point span { font-size: .74rem; letter-spacing: .06em; text-transform: uppercase; color: #f5e9da; font-weight: 700; }
.identity-callout { border: 1px solid #ac815e; background: rgba(22, 5, 11, .43); padding: 36px; }
.identity-callout p { color: #efdfcf; margin: 13px 0 18px; }
.identity-callout .phone { display: inline-block; font-family: var(--display); font-size: clamp(1.5rem, 2vw, 2.1rem); color: #f8d7a4; white-space: nowrap; }
.identity-callout .btn { margin-top: 22px; }

/* Process */
.process { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 40px; }
.step { padding: 32px; background: #fffaf1; border-top: 4px solid var(--bronze); box-shadow: 0 5px 20px rgba(45, 15, 18, .07); }
.step .number { font: 500 2.3rem var(--display); color: var(--bronze); }
.step h3 { font-family: var(--display); margin: 11px 0 10px; color: var(--wine); }
.step p { color: #664f50; }

/* ---------- Inner page hero ---------- */
.page-hero { color: var(--ivory); padding: 89px 0 94px; background: linear-gradient(90deg, #33121b 0, rgba(53, 21, 28, .9) 40%, rgba(42, 10, 18, .45) 100%), url('page-hero-skyline.webp') right center / auto 100% no-repeat, var(--night); border-bottom: 5px solid var(--brass); }
.page-hero h1 { max-width: 950px; }
.page-hero p { font: 400 1.12rem/1.7 var(--display); text-transform: uppercase; margin-top: 20px; color: #f3ddc3; max-width: 760px; }
.breadcrumb { font-size: .72rem; letter-spacing: .11em; text-transform: uppercase; color: #f5c78c; margin-bottom: 20px; }
.breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5em; }
.breadcrumb li + li::before { content: '/'; margin-right: .5em; }
.breadcrumb a:hover { text-decoration: underline; }
.consultation-hero { padding: 54px 0 57px; }
.consultation-hero h1 { font-size: clamp(2.2rem, 4.2vw, 4.1rem); }
.consultation-hero p { font-size: 1.03rem; margin-top: 12px; }

/* About */
.two-column { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; }
.two-column p + p { margin-top: 18px; }
.two-column .btn { margin-top: 30px; }
.visual-frame { border: 9px solid #ecd8b5; outline: 1px solid var(--bronze); box-shadow: var(--shadow); background: #32121c; position: relative; overflow: hidden; }
.visual-frame img { width: 100%; height: auto; }
.visual-frame::after { content: ''; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 65px rgba(30, 8, 15, .4); }
.badge-strip { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 25px; }
.feature-pill { color: var(--wine); background: #e8d6b6; border: 1px solid #c7a878; padding: 8px 14px; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

/* Services page */
.page-services { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.service-box { background: #fffaf1; border: 1px solid #dfc7a0; padding: 32px; display: flex; gap: 20px; align-items: flex-start; scroll-margin-top: 130px; }
.service-box h3 { margin-bottom: 8px; }
.service-box p { font-size: .88rem; color: #624949; }
.service-box .icon-round { width: 65px; height: 65px; }
.service-box .icon-round svg { width: 32px; height: 32px; }
.service-box:last-child { grid-column: 1 / -1; }
.message-box { margin-top: 26px; padding: 20px 25px; border: 1px solid #dabf9e; background: #fdf5e8; }
.message-box p { font-size: .88rem; }

/* ---------- Consultation ---------- */
.consultation-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 36px; align-items: start; }
.consultation-photo-panel .visual-frame { margin-top: 22px; }
.portrait-frame img { aspect-ratio: 1 / 1; object-fit: cover; background: #2d1018; }
.fee-box { margin-top: 18px; padding: 20px 24px; background: var(--wine); color: #fbeada; border-top: 3px solid var(--brass); }
.fee-box .fee { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; font-family: var(--display); color: var(--gold); }
.fee-box .fee strong { font-size: 2rem; font-weight: 500; }
.fee-box .fee span { font-family: var(--body); font-size: .85rem; color: #f0dcc8; }
.fee-box p { font-size: .84rem; color: #ead6c9; margin-top: 8px; }
.cal-area { background: #fffaf2; border: 1px solid #dec399; padding: 24px; box-shadow: var(--shadow); }
.cal-title { font: 500 1.38rem var(--display); margin: 5px 0 12px; color: var(--wine); }
.cal-steps { margin: 0 0 18px; padding: 14px 18px 14px 36px; background: #fdf5e8; border: 1px solid #dabf9e; font-size: .85rem; color: var(--muted); }
.cal-steps li + li { margin-top: 2px; }
#cal-booking { width: 100%; min-height: 640px; overflow: auto; position: relative; }
#cal-booking.cal-ready { min-height: 0; }
.cal-loading { display: grid; place-items: center; min-height: 640px; color: var(--muted); font-size: .9rem; text-align: center; padding: 20px; }
#cal-booking.cal-ready .cal-loading, #cal-booking.cal-failed .cal-loading, #cal-booking:has(iframe) .cal-loading { display: none; }
#cal-booking.cal-failed { min-height: 0; }
.cal-fallback { font-size: .82rem; color: #64464c; margin: 14px 0 0; }
.cal-fallback a, .text-link { color: #7c2932; text-decoration: underline; text-underline-offset: 3px; }
.cal-error { margin-top: 14px; padding: 14px 18px; border-left: 3px solid #a3343f; background: #fbeeee; font-size: .88rem; }

/* ---------- Forms ---------- */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 42px; align-items: start; }
.form-card { background: #fffbf5; border: 1px solid #dec399; padding: 36px; box-shadow: var(--shadow); scroll-margin-top: 130px; }
.form-card h3 { font: 500 1.75rem var(--display); color: var(--wine); margin-bottom: 8px; }
.form-intro { color: #634e4e; margin-bottom: 22px; font-size: .9rem; }
.fields { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: .8rem; font-weight: 700; color: #512b2d; }
.field input, .field select, .field textarea { border: 1px solid var(--field-border); background: #fff; color: #2a2123; border-radius: 0; width: 100%; padding: 12px 13px; }
.field textarea { min-height: 120px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: #8d5d32; box-shadow: 0 0 0 3px #d9bc8a88; outline: 2px solid transparent; }
.field button { width: 100%; }
.note { font-size: .74rem; color: #6c5552; line-height: 1.6; grid-column: 1 / -1; }
.form-status { display: none; padding: 11px 15px; border-left: 3px solid var(--bronze); background: #f9eddb; margin-bottom: 20px; font-size: .9rem; }
.form-status.visible { display: block; }
.form-status.is-error { border-left-color: #a3343f; background: #fbeeee; }
.honeypot { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.contact-details { display: grid; gap: 25px; margin-top: 30px; }
.contact-detail { display: flex; gap: 19px; align-items: flex-start; }
.mini-icon { height: 51px; width: 51px; border: 1px solid var(--bronze); background: var(--wine); color: var(--gold); border-radius: 50%; display: grid; place-items: center; flex: none; }
.mini-icon svg { width: 24px; height: 24px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.contact-detail strong { font-size: .73rem; letter-spacing: .12em; text-transform: uppercase; color: var(--wine); }
.contact-detail a { font-size: 1.15rem; font-weight: 600; }
.contact-detail a:hover { color: var(--wine); text-decoration: underline; }

/* ---------- Call-out & footer ---------- */
.callout-wide { background: var(--wine); color: #fbeada; padding: 48px 0; border-top: 3px solid var(--brass); }
.callout-wide .wrap { display: flex; justify-content: space-between; align-items: center; gap: 35px; }
.callout-wide h2 { font-size: clamp(1.6rem, 3vw, 2.5rem); }
.callout-wide p { font-size: .92rem; color: #e2cdc4; margin-top: 8px; }

.site-footer { background: #270d15; color: #ead8d1; padding: 70px 0 30px; border-top: 5px solid #bf9965; }
.footer-grid { display: grid; grid-template-columns: 1.45fr .7fr .85fr; gap: 65px; }
.footer-grid .brand { margin-bottom: 22px; }
.footer-grid p { font-size: .84rem; color: #d2c1ba; }
.footer-grid h2 { font: 500 1rem var(--display); letter-spacing: .02em; color: var(--gold); margin-bottom: 19px; }
.footer-grid ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.footer-grid ul.badge-strip { display: flex; margin-top: 25px; }
.footer-grid li, .footer-grid a { font-size: .86rem; }
.footer-grid a:hover { color: var(--gold); text-decoration: underline; }
.site-footer .feature-pill { background: transparent; color: var(--gold); border-color: #8a6a55; }
.footer-bottom { border-top: 1px solid #71515b; padding-top: 23px; margin-top: 48px; font-size: .74rem; display: flex; gap: 16px; justify-content: space-between; color: #c9b4b1; }

/* 404 */
.error-body { padding: 90px 0; }
.error-body .hero-actions { margin-top: 30px; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .header-inner { min-height: 88px; }
  .brand img { width: 214px; }
  .nav { gap: 14px; }
  .nav a { font-size: .7rem; }
  .nav .nav-cta { padding: 12px 14px; }
}

@media (max-width: 850px) {
  .topbar .wrap { justify-content: center; }
  .topbar .location-text { display: none; }

  /* Mobile menu (only when JavaScript is running; otherwise links stay visible) */
  .js .menu-toggle { display: inline-flex; }
  .js .site-header .nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 17px 26px 25px; background: #35151c; border-bottom: 2px solid var(--brass); box-shadow: 0 15px 30px rgba(0, 0, 0, .3); flex-direction: column; align-items: stretch; gap: 0; max-height: calc(100vh - 120px); overflow-y: auto; }
  .js .site-header .nav.open { display: flex; }
  .js .site-header .nav a { font-size: .86rem; padding: 13px 10px; border-bottom: 1px solid #80555e; }
  .js .site-header .nav a[aria-current="page"]:not(.nav-cta) { box-shadow: inset 3px 0 0 var(--brass); }
  .js .site-header .nav .nav-cta { text-align: center; margin-top: 15px; border-bottom: 1px solid var(--brass); }
  .no-js .header-inner { flex-wrap: wrap; padding-block: 10px; }
  .no-js .site-header .nav { width: 100%; flex-wrap: wrap; justify-content: center; gap: 10px 18px; padding-bottom: 8px; }

  .hero-inner { min-height: 620px; }
  .hero::after { height: 118%; opacity: .55; }
  .hero::before { height: 280px; }
  .service-layout, .identity-band .wrap, .contact-grid, .two-column, .consultation-grid { grid-template-columns: 1fr; }
  .service-layout, .two-column { gap: 36px; }
  .service-intro h2 { max-width: 770px; }
  .process { grid-template-columns: 1fr 1fr; }
  .page-services { grid-template-columns: 1fr; }
  .service-box:last-child { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
}

@media (max-width: 570px) {
  body { font-size: 14px; }
  .wrap { padding-inline: 19px; }
  .header-inner { min-height: 76px; gap: 12px; }
  .brand img { width: 188px; }
  .footer-grid .brand img { width: 230px; }
  .menu-toggle { padding: 8px 11px; font-size: .75rem; }
  .hero-inner { min-height: 600px; padding-block: 64px 44px; }
  .hero::after { height: 100%; opacity: .42; }
  .hero-title { font-size: clamp(2.2rem, 10.5vw, 3.2rem); }
  .hero-kicker { font-size: .62rem; letter-spacing: .26em; line-height: 2; }
  .hero-kicker .brandline { display: block; }
  .hero-kicker .dot.first { display: none; }
  .hero-intro { font-size: 1.02rem; }
  .hero-actions .btn { width: 100%; }
  .tape .wrap { gap: 23px; font-size: .96rem; }
  .tape .sep { height: 18px; }
  .section { padding: 65px 0; }
  .section-tight-top { padding-top: 0; }
  .service-line { gap: 17px; padding: 15px; min-height: 105px; }
  .icon-round { height: 59px; width: 59px; border-width: 3px; }
  .icon-round svg { width: 30px; height: 30px; }
  .service-line h3 { font-size: .9rem; }
  .service-line p { font-size: .8rem; }
  .identity-band { padding: 70px 0; }
  .identity-points { gap: 8px; }
  .identity-point span { font-size: .64rem; letter-spacing: .03em; }
  .identity-point svg { height: 32px; width: 32px; }
  .identity-callout { padding: 24px; }
  .process { grid-template-columns: 1fr; }
  .form-card { padding: 24px 18px; }
  .fields { grid-template-columns: 1fr; }
  .page-hero { padding: 64px 0; }
  .consultation-hero { padding: 45px 0 52px; }
  .cal-area { padding: 12px; }
  .callout-wide .wrap { display: block; }
  .callout-wide .btn { margin-top: 24px; }
  .footer-grid { grid-template-columns: 1fr; gap: 33px; }
  .footer-grid > div:first-child { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
  .service-box { padding: 24px 18px; gap: 17px; }
  .service-box .icon-round { width: 54px; height: 54px; }
  .service-box .icon-round svg { width: 25px; height: 25px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .btn:hover, a.service-line:hover { transform: none; }
}

@media print {
  .topbar, .site-header .nav, .menu-toggle, .hero::before, .hero::after, .callout-wide, #cal-booking { display: none !important; }
  .site-header { position: static; }
  body { background: #fff; }
}

/* Lists used for layout */
ul.badge-strip, ol.process { list-style: none; padding-left: 0; margin-bottom: 0; }
.form-status:focus { outline: none; }
