/* Editorial refinement, v22. Existing palette and Arial are retained. */
.direct-contact { margin-top:32px; }
.direct-contact > p { margin:0 0 16px; font-size:16px; }
.contact-actions { display:flex; flex-wrap:wrap; gap:12px; }
a.contact-button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 18px; border:1px solid #898989; border-radius:3px; color:#fff; background:#101010; font:700 16px/1.3 Arial,sans-serif; text-decoration:none; }
a.contact-phone { flex-direction:column; gap:4px; }
.contact-number { white-space:nowrap; font-size:15px; }
a.contact-button:hover { color:#101010; background:#fff; border-color:#101010; }
a.contact-button:focus-visible { outline:3px solid #1f5f8b; outline-offset:4px; }
.footer-contact { margin-top:28px; }
@media(max-width:480px) {
 .contact-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 a.contact-phone { grid-column:1 / -1; }
 a.contact-button { padding:12px; }
}
html { scroll-padding-top: 104px; }
body { overflow-wrap: normal; word-break: normal; }
main { overflow: visible; }
h1,h2,h3 { hyphens: none; overflow-wrap: normal; word-break: normal; text-wrap: balance; }
h1 { line-height: 1.06; letter-spacing: -.035em; font-size: clamp(36px,4.6vw,64px); }
h2 { line-height: 1.12; font-size: clamp(28px,3.5vw,48px); letter-spacing: -.025em; }
h3 { line-height: 1.2; font-size: 22px; }
p,li,figcaption,.step span { hyphens: manual; text-wrap: pretty; }
p { line-height: 1.55; }
.heading-line { display:block; }
.hero-grid { gap:40px; align-items:center; }
.hero .lead,.hero-copy { max-width:58ch; font-size:20px; line-height:1.5; }
.hero { min-height:0; padding:64px 0; }
.hero-grid > *, .section-head > *, .calculator-intro > *, .lead-form > * { min-width:0; }
.hero-summary { align-self:end; }
.section-head { align-items:start; }
.section-head h2 { margin-bottom:0; }
.section-note { font-weight:400; line-height:1.55; max-width:60ch; }
.fact strong { font-size:21px; line-height:1.2; text-wrap:balance; }
.fact { gap:8px; }
.fact span { font-weight:400; line-height:1.4; }
.production-board-head { flex-wrap:wrap; }
.production-board-row { grid-template-columns:124px minmax(0,1fr); }
.production-board-row strong { font-size:16px; }
.production-board-row span { font-size:17px; line-height:1.4; }
.card p,.need p { line-height:1.55; }
.service-cards .card h3,.needs-grid h3 { min-height:2.4em; display:flex; align-items:flex-start; text-wrap:balance; }
.price strong { font-size:29px; line-height:1.2; }
.price h3 { min-height:2.4em; }
.calculator-intro { align-items:start; }
.calculator-intro .lead { font-size:18px; line-height:1.55; }
.calc-result .estimate { font-size:clamp(30px,3vw,42px); line-height:1.2; font-variant-numeric:tabular-nums; }
.price-bound { display:inline-block; white-space:nowrap; }
.calc-step-head strong { text-wrap:balance; }
.package-detail-main { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:baseline; }
.package-detail-main strong { text-wrap:balance; }
.package-detail p,.package-meta,.calc-notes { font-size:14px; line-height:1.5; }
.calc-result p { line-height:1.5; }
.breakdown li { align-items:baseline; }
.breakdown li span:last-child { white-space:nowrap; }
.calc-disclaimer { font-size:13px; }
.process .step strong { font-size:18px; line-height:1.35; text-wrap:balance; }
.step { padding:24px 20px; }
.step span { font-size:15px; }
.portfolio-grid { grid-auto-rows: minmax(260px,auto); }
.portfolio-slot:nth-child(4) .portfolio-media,.portfolio-slot:nth-child(5) .portfolio-media { flex:none; aspect-ratio:3 / 2; }
.portfolio-slot figcaption { display:grid; gap:4px; align-content:start; font-size:14px; padding:12px 0 8px; }
.portfolio-slot figcaption span { text-align:left; line-height:1.4; }
.portfolio-slot figcaption strong { line-height:1.4; }
.portfolio-grid { row-gap:24px; }
.event-legal-links a,.footer-links a { display:inline-flex; align-items:center; min-height:44px; }
.event-footer-meta { max-width:50ch; }
.related-link { line-height:1.3; }
.cta-grid { align-items:center; }
.faq summary { line-height:1.4; padding-block:16px; }
.faq p { max-width:70ch; }
.legal-main p,.legal-main li { line-height:1.6; }
.placeholder { padding:0; border:0; text-decoration:underline; text-decoration-style:dotted; text-underline-offset:3px; }
.button { line-height:1.3; text-wrap:balance; }
@media (min-width:981px) {
 .hero .facts { grid-template-columns:1fr 1.3fr 1fr; }
 .process { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (min-width:641px) and (max-width:1100px) {
 .facts { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .calc-shell { grid-template-columns:1fr; }
 .calc-result { border-top:1px solid #666; }
 .service-card-head { grid-template-columns:1fr 1.5fr; }
}
@media (max-width:900px) {
 .portfolio-grid { grid-auto-rows:auto; }
 .hero-grid { gap:32px; }
 .hero-summary { max-width:60ch; }
 .section-head { gap:20px; }
 .section-note { border-top-width:1px; }
}
@media (max-width:640px) {
 .hero { padding:36px 0 44px; }
 h1 { font-size:36px; line-height:1.1; }
 h2 { font-size:30px; line-height:1.15; }
 .hero .lead,.hero-copy { font-size:18px; }
 .heading-line { display:block; }
 .actions { margin-top:24px; }
 .facts { margin-top:28px; }
 .fact { padding:16px; }
 .fact strong { font-size:22px; }
 .fact span { font-size:14px; }
 .production-board-row { grid-template-columns:1fr; gap:8px; }
 .production-board-row strong { font-size:24px; }
 .production-board-head,.production-board-foot { display:grid; gap:8px; }
 .service-cards .card h3,.needs-grid h3,.price h3 { min-height:0; }
 .card,.need { padding:24px 20px; }
 .section-head { gap:18px; }
 .calculator-intro { gap:20px; }
 .calc-controls { grid-template-columns:1fr; }
 .package-detail-main { grid-template-columns:1fr; gap:6px; }
 .package-detail-main strong { font-size:16px; }
 .breakdown li { display:grid; grid-template-columns:1fr; gap:4px; }
 .breakdown li span:last-child { text-align:left; }
 .calc-step-head strong { font-size:19px; }
 .calc-builder,.calc-result { padding:20px 16px; }
 .service-card { padding:16px; }
 .calc-result .estimate { font-size:30px; }
 .step { padding:24px 20px; }
 .process .step span { grid-column:2; margin-top:0; line-height:1.5; }
 .cta-grid { gap:24px; }
 .portfolio-slot figcaption { gap:3px; }
 .brand { line-height:1.1; }
 .back-link { white-space:nowrap; }
 .breadcrumb { margin-bottom:28px; }
}
@media (max-width:359px) {
 h1 { font-size:32px; }
 h2 { font-size:28px; }
 .nav .brand { font-size:12px; max-width:168px; }
 .nav .brand span { font-size:9px; }
 .back-link { font-size:12px; }
}

/* Compact photographic hero and mobile action. */
.hero-compact { padding:40px 0; }
.hero-compact .hero-grid { grid-template-columns:1.15fr 1fr; gap:28px 40px; }
.hero-photo { margin:0; min-width:0; }
.hero-photo img { display:block; width:100%; height:auto; aspect-ratio:3 / 2; object-fit:cover; object-position:center; }
.hero-compact .facts { grid-column:1 / -1; margin-top:0; grid-template-columns:1fr 1.3fr 1fr; }
.hero-compact .fact { padding:16px 20px; }
.mobile-calc-bar { display:none; }
@media(max-width:980px) {
 .hero-compact .hero-grid { grid-template-columns:1fr; gap:24px; }
 .hero-compact .hero-photo { max-width:640px; }
 .hero-compact .hero-photo img { aspect-ratio:16 / 9; }
}
@media(max-width:640px) {
 html { scroll-padding-bottom:88px; }
 @media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
 body { padding-bottom:0; }
 html.mobile-viewport-enabled { height:100%; overflow:clip; }
 body.mobile-viewport-enabled { position:fixed; inset:0; display:grid; grid-template-rows:minmax(0,1fr) auto; height:100vh; height:100dvh; overflow:clip; }
 .mobile-viewport-enabled > .page-viewport { display:block; overflow-y:auto; overflow-x:clip; min-height:0; scroll-padding-top:calc(var(--actual-header-height,102px) + 12px); scroll-padding-bottom:16px; }
 .hero-compact { padding:24px 0 32px; }
 .hero-compact .lead { font-size:17px; margin-top:18px; }
 .hero-compact .actions { margin-top:20px; gap:12px; }
 .hero-compact .actions .secondary { min-height:44px; padding:4px 0; width:auto; border:0; background:none; justify-content:flex-start; }
 .hero-compact .facts { grid-template-columns:1fr; gap:0; }
 .hero-compact .fact { padding:12px 0; border:0; border-top:1px solid #666; background:none; }
 .hero-compact .fact strong { font-size:18px; }
 .hero-compact .fact span { font-size:13px; }
 .hero-compact .kicker { font-size:12px; margin-bottom:12px; }
 .mobile-calc-bar { display:block; position:static; padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px)); background:#fff; border-top:1px solid #bcbcbc; z-index:45; }
 .mobile-calc-bar[hidden] { display:none; }
 .mobile-calc-bar a { display:flex; justify-content:center; align-items:center; width:100%; min-height:48px; border:1px solid #101010; border-radius:3px; background:#101010; color:#fff; font:700 16px/1.3 Arial,sans-serif; text-decoration:none; }
 .mobile-calc-bar a:hover { background:#333; }
 .mobile-calc-bar a:focus-visible { outline:3px solid #1f5f8b; outline-offset:3px; }
 :is(input,select,textarea,button,a) { scroll-margin-bottom:88px; }
}
.page-viewport { display:contents; }
.calc-quick-summary { display:none; }
.hero-photo figcaption { margin-top:8px; color:#c9c9c9; font:400 14px/1.4 Arial,sans-serif; }
.service-toggle small,.package-choice,.addon-option small,.calc-notes,.field-hint,.required-note,.calc-disclaimer { font-size:14px; line-height:1.5; }
.package-meta { text-transform:none; font-size:14px; font-weight:600; line-height:1.5; }
.package-detail p { font-size:15px; }
.calc-result-kicker,.range-note,.form-status { font-size:14px; line-height:1.5; }
.calc-result p { font-weight:400; }
.calc-controls label { font-size:15px; }
.site-footer a:focus-visible { outline:3px solid #87bfd8; outline-offset:4px; }
@media(max-width:1100px) {
 .calc-quick-summary { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; position:sticky; top:var(--actual-header-height,102px); z-index:20; padding:16px 20px; margin-bottom:20px; background:#fff; color:#101010; border:1px solid #bcbcbc; }
 .calc-quick-summary span:not(.price-bound) { display:block; font-size:14px; line-height:1.4; }
 #calc-quick-total { display:block; margin-top:4px; font-size:22px; line-height:1.3; font-variant-numeric:tabular-nums; }
 .calc-quick-summary a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; text-decoration:underline; text-underline-offset:3px; }
 #calc-total { scroll-margin-top:calc(var(--actual-header-height,102px) + 170px); }
 .hero-compact .fact span { font-size:14px; }
}
@media(max-width:640px) {
 .calc-quick-summary { padding:12px 16px; }
 .mobile-viewport-enabled > .page-viewport.calculator-in-view { scroll-padding-top:calc(var(--actual-header-height,102px) + var(--quick-summary-height,100px) + 12px); }
 .calculator :is(input,select,button,a) { scroll-margin-top:calc(var(--actual-header-height,102px) + var(--quick-summary-height,100px) + 12px); }
 .calculator .calc-controls select,.calculator .package-choice select { font-size:16px; }
}
/* Customer journey: preserve the existing monochrome system. */
.journey-entry { display:flex; flex-wrap:wrap; gap:4px 24px; margin-top:16px; }
.journey-entry a { display:inline-flex; align-items:center; min-height:44px; font-size:15px; text-decoration:underline; text-underline-offset:4px; }
.lead-next-steps { padding-left:24px; margin:24px 0; line-height:1.6; }
.lead-next-steps li + li { margin-top:12px; }
.lead-payment-note { font-size:15px; }
.request-mode, .lead-calculation, .lead-fallback { grid-column:1 / -1; min-width:0; }
.request-mode { border:0; margin:0 0 8px; padding:0; }
.request-mode legend { font-weight:700; font-size:18px; margin-bottom:12px; padding:0; }
.request-mode-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.request-mode-options label { display:flex; align-items:center; gap:10px; padding:12px; border:1px solid #767676; min-height:52px; cursor:pointer; }
.request-mode-options label:has(input:checked) { background:#ededeb; border-color:#101010; }
.request-mode-options input { width:20px; min-height:20px; height:20px; padding:0; margin:0; flex:0 0 20px; accent-color:#101010; }
.request-mode-options span { font-size:15px; line-height:1.4; }
.request-mode .field-hint { margin:12px 0 0; }
.lead-calculation { padding:20px; background:#f3f3f1; border-left:3px solid #101010; color:#101010; }
.lead-calculation pre { white-space:pre-wrap; font:inherit; font-size:15px; line-height:1.6; margin:12px 0; overflow-wrap:anywhere; }
.lead-calculation p, .lead-fallback p { font-size:14px; line-height:1.5; font-weight:400; }
.calculation-links { display:flex; flex-wrap:wrap; gap:8px 20px; }
.calculation-links a, .calculation-links button, .lead-fallback > a { min-height:44px; display:inline-flex; align-items:center; font:inherit; font-size:14px; color:inherit; text-decoration:underline; text-underline-offset:3px; }
.calculation-links button { background:none; border:0; padding:0; cursor:pointer; }
.lead-fallback { padding-top:16px; border-top:1px solid #767676; }
.lead-fallback > a { margin-left:16px; }
.lead-fallback textarea { width:100%; min-height:180px; }
#lead-form-status { overflow-wrap:anywhere; }
#lead-form [hidden] { display:none !important; }
@media(max-width:600px) {
  .request-mode-options { grid-template-columns:1fr; gap:8px; }
  .lead-calculation { padding:16px; }
  .journey-entry { gap:0 16px; }
}

/* Clickable controls: visible shape at rest, not only on hover. */
body :is(.button, .contact-button, .journey-entry a, .calculation-links a, .calculation-links button, .lead-fallback > a, .calc-quick-summary a, .mobile-calc-bar a, .back-link) {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:48px; max-width:100%; padding:12px 18px;
  border:2px solid #767676; border-radius:6px;
  font-family:Arial,sans-serif; font-weight:700; line-height:1.35;
  text-decoration:none; text-align:center; cursor:pointer;
  box-shadow:0 3px 0 #767676;
  transition:none;
}
body .journey-entry { gap:12px; align-items:stretch; }
body .journey-entry a { background:#292929; color:#fff; border-color:#a8a8a8; box-shadow:0 3px 0 #767676; font-size:15px; }
body .hero .button.secondary { background:#292929; color:#fff; border:2px solid #a8a8a8; padding:12px 18px; justify-content:center; }
body .hero .button:not(.secondary) { background:#fff; color:#101010; border-color:#fff; }
body :is(.calc-result, .lead-section .form-panel) .button.secondary,
body :is(.calculation-links a, .calculation-links button, .lead-fallback > a, .calc-quick-summary a, .back-link) {
  background:#fff; color:#101010; border-color:#767676;
}
body :is(.calculation-links a, .calculation-links button, .lead-fallback > a, .calc-quick-summary a, .back-link) { min-height:44px; padding:10px 14px; font-size:14px; }
body .calculation-links { gap:12px; margin-top:16px; }
body .lead-fallback > a { margin:12px 0 0; }
body .calc-quick-summary a { box-shadow:0 2px 0 #767676; }
body :is(.button, .contact-button, .journey-entry a, .calculation-links a, .calculation-links button, .lead-fallback > a, .calc-quick-summary a, .mobile-calc-bar a, .back-link):hover:not(:disabled) {
  background:#dedede; color:#101010; border-color:#767676; outline:none;
}
body :is(.button, .contact-button, .journey-entry a, .calculation-links a, .calculation-links button, .lead-fallback > a, .calc-quick-summary a, .mobile-calc-bar a, .back-link):active:not(:disabled) {
  background:#c9c9c9; color:#101010; box-shadow:inset 0 2px 0 #767676;
}
body :is(.button, .contact-button, .journey-entry a, .calculation-links a, .calculation-links button, .lead-fallback > a, .calc-quick-summary a, .mobile-calc-bar a, .back-link):focus-visible {
  outline:3px solid #101010; outline-offset:5px;
  box-shadow:0 0 0 5px #fff;
}
body .button:disabled { background:#e1e1e1; color:#555; border-color:#999; box-shadow:none; cursor:not-allowed; opacity:1; }
body .lead-section .form-panel .button.secondary:hover:not(:disabled) { background:#dedede; color:#101010; }
body .lead-section .form-panel .button.secondary:active:not(:disabled) { background:#c9c9c9; box-shadow:inset 0 2px 0 #767676; }
body .mobile-calc-bar a { display:flex; }
body .event-case-link { border:2px solid #767676; border-radius:6px; box-shadow:0 3px 0 #767676; cursor:pointer; transition:none; }
body .event-case-link:hover { transform:none; }
body .event-case-link:active { box-shadow:inset 0 2px 0 #767676; }
body .request-mode-options label { border-width:2px; border-radius:6px; box-shadow:0 2px 0 #767676; }
body .request-mode-options label:has(input:checked) { background:#e4e4e4; border-color:#101010; box-shadow:inset 0 0 0 1px #101010; }
body .request-mode-options label:hover { background:#ededed; }
body .mobile-nav > summary { border:2px solid #767676; border-radius:6px; background:#f3f3f1; box-shadow:0 2px 0 #767676; min-height:44px; }
body .faq summary { border:1px solid #767676; border-radius:6px; padding:14px 16px; background:#f3f3f1; cursor:pointer; }
body .faq summary:hover { background:#e4e4e4; }
@media(max-width:640px) {
  body .journey-entry { display:grid; grid-template-columns:1fr; gap:12px; }
  body .journey-entry a, body .hero-compact .actions .secondary { width:100%; }
  body .hero-compact .actions .secondary { min-height:48px; }
  body .back-link { font-size:12px; padding:8px; }
}
