/* Shared mobile navigation and concise service summaries. */
:root { --ux-petrol:#183f3d; --ux-ivory:#fbf7f0; --ux-sage:#dce8e2; --ux-ink:#26302e; --ux-muted:#53635f; --ux-line:rgba(24,63,61,.18); }
html { scroll-padding-top:92px; }
body { overflow-wrap:break-word; }
[id] { scroll-margin-top:92px; }
.ux-header { position:sticky; top:0; z-index:100; background:var(--ux-ivory); border-bottom:1px solid var(--ux-line); font-family:Inter,system-ui,sans-serif; }
.ux-header__inner { max-width:1180px; margin:auto; padding:12px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.ux-brand { display:flex; gap:10px; align-items:center; color:var(--ux-petrol); text-decoration:none; flex-shrink:0; }
.ux-brand svg { width:38px; height:38px; flex:none; }
.ux-brand strong { display:block; font-family:Georgia,serif; font-size:20px; }
.ux-brand small { display:block; font-size:12px; }
.ux-navigation { display:flex; align-items:center; gap:18px; }
.ux-menu { display:flex; gap:18px; align-items:center; }
.ux-menu a { color:var(--ux-petrol); font-size:14px; text-decoration:none; padding:10px 0; }
.ux-menu a[aria-current="page"] { text-decoration:underline; text-underline-offset:5px; }
.ux-action { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:12px 18px; border-radius:12px; background:var(--ux-petrol); color:#fff; text-decoration:none; border:1px solid var(--ux-petrol); font-size:15px; font-weight:650; line-height:1.4; text-align:center; }
.ux-action--outline { background:transparent; color:var(--ux-petrol); }
.ux-menu-toggle { display:none; width:46px; height:46px; border:1px solid var(--ux-line); border-radius:12px; background:transparent; color:var(--ux-petrol); font:inherit; }
.ux-menu__booking { display:none; }
.ux-skip { position:absolute; top:0; left:16px; transform:translateY(-150%); background:var(--ux-petrol); color:white; padding:12px; z-index:110; }
.ux-skip:focus { transform:translateY(0); }
.ux-footer { padding:36px 24px; background:var(--ux-petrol); color:#fff; font-family:Inter,system-ui,sans-serif; font-size:14px; }
.ux-footer__inner { max-width:1180px; margin:auto; }
.ux-footer__links { display:flex; flex-wrap:wrap; gap:8px 24px; margin:12px 0 24px; }
.ux-footer a { color:inherit; display:inline-flex; align-items:center; min-height:44px; }
.ux-footer p { margin:8px 0; }
.ux-footer__legal { opacity:.85; font-size:12px; }
.ux-copy-note { color:var(--ux-muted); font-size:14px; line-height:1.6; margin:12px 0 0; }
.ux-home .section { padding:56px 0; }
.ux-home .section-heading { margin-bottom:24px; }
.ux-home .hero { padding:38px 0 32px; }
.ux-home .hero__grid { gap:30px; align-items:center; }
.ux-home .hero h1 { font-size:clamp(2.5rem,5vw,4.8rem); }
.ux-home .hero__visual::before,.ux-home .hero__visual::after { display:none; }
.ux-home .photo--hero { height:430px; width:100%; object-fit:cover; object-position:center 30%; border-radius:32px; }
.ux-home .hero__note { display:none; }
.ux-home .button-row { margin-top:22px; gap:12px; }
.ux-home h2 { font-size:clamp(2rem,3.5vw,3.1rem); }
.ux-home .hero__copy > p { max-width:600px; }
.ux-needs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.ux-need { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px; min-height:76px; border:1px solid var(--ux-line); border-radius:16px; background:#fff; color:var(--ux-petrol); text-decoration:none; }
.ux-need strong { display:block; font-size:16px; }
.ux-need > span:first-child { min-width:0; }
.ux-need > span:last-child { flex:none; }
.ux-need small { display:block; color:var(--ux-muted); font-size:13px; margin-top:2px; }
.ux-services { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.ux-service { display:flex; flex-direction:column; padding:26px; background:#fff; border:1px solid var(--ux-line); border-radius:24px; }
.ux-service h3 { font-size:1.8rem; margin:8px 0 10px; }
.ux-service p { margin-bottom:14px; }
.ux-service .eyebrow { font-size:12px; }
.ux-facts { display:grid; gap:8px; padding:0; list-style:none; margin:0 0 20px; color:var(--ux-muted); font-size:14px; }
.ux-facts li { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.ux-facts strong { color:var(--ux-petrol); text-align:right; }
.ux-service__price { display:flex; align-items:baseline; gap:10px; margin-top:auto; margin-bottom:16px; color:var(--ux-petrol); }
.ux-service__price strong { font:600 2.4rem Georgia,serif; }
.ux-service__price span { font-size:13px; color:var(--ux-muted); }
.ux-single { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:18px; padding:22px; margin-top:18px; background:var(--ux-sage); border-radius:20px; }
.ux-single p { margin:0; max-width:650px; }
.ux-single small { display:block; font-size:14px; color:var(--ux-muted); margin-top:4px; }
.ux-short-method { max-width:820px; }
.ux-home .split { gap:36px; }
.ux-home .photo--about { max-height:360px; width:100%; object-fit:cover; border-radius:24px; }
.ux-story summary,.ux-home .faq summary { min-height:48px; padding:12px 0; color:var(--ux-petrol); font-weight:650; cursor:pointer; }
.ux-story { border-top:1px solid var(--ux-line); margin-top:20px; }
.ux-story > div { padding-top:16px; }
.ux-story h3 { font-size:1.5rem; }
.ux-credentials { padding-left:20px; color:var(--ux-muted); font-size:15px; }
.ux-start { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:24px 0; }
.ux-start h3 { font-size:1.3rem; margin:8px 0; }
.ux-start p { margin:0; }
.ux-resource-links { display:flex; flex-wrap:wrap; gap:10px 24px; }
.ux-resource-links a { display:flex; align-items:center; min-height:44px; }
.ux-detail .subhero { padding:36px 0 28px; }
.ux-detail .subhero h1 { font-size:clamp(2.2rem,4.5vw,3.8rem); max-width:850px; }
.ux-detail .subhero::before,.ux-detail .subhero::after { display:none; }
.ux-detail .breadcrumb { margin-bottom:18px; font-size:14px; }
.ux-detail .subhero .lead { max-width:800px; margin-bottom:0; }
.ux-detail .detail-layout { align-items:start; grid-template-areas:"content summary"; }
.ux-detail .content-stack { grid-area:content; }
.ux-detail .price-card { grid-area:summary; top:94px; background:#fff; color:var(--ux-ink); border:1px solid var(--ux-line); }
.ux-detail .price-card::before { display:none; }
.ux-detail .price-card .eyebrow { color:var(--ux-petrol); }
.ux-detail .price-card > p,.ux-detail .price-card .meta-list li { color:var(--ux-muted); }
.ux-detail .price-card__price,.ux-detail .price-card .meta-list strong { color:var(--ux-petrol); }
.ux-detail .price-card .meta-list,.ux-detail .price-card .meta-list li { border-color:var(--ux-line); }
.ux-detail .price-card .ux-action { width:100%; }
.ux-detail .section { padding:28px 0 56px; }
.ux-detail .price-card__price { margin:8px 0 12px; }
.ux-detail .price-card .microcopy { font-size:14px; color:var(--ux-muted); text-align:left; }
.ux-detail .price-card .meta-list { margin:16px 0; }
.ux-detail .price-card .meta-list li { padding:8px 0; }
.ux-detail .content-block h2 { font-size:clamp(1.8rem,3.4vw,2.7rem); }
.ux-detail .content-block { margin-bottom:32px; }
.ux-detail .content-stack { gap:32px; }
@media(max-width:1000px) {
  .ux-brand small { display:none; }
  .ux-navigation { gap:10px; }
  .ux-menu { gap:12px; }
}
@media(max-width:1080px) {
  .ux-header__inner { padding:9px 16px; min-height:64px; }
  .ux-brand strong { font-size:18px; }
  .ux-header__booking { display:none; }
  .ux-menu-toggle { display:block; }
  .ux-menu { display:none; position:absolute; top:100%; left:12px; right:12px; padding:16px; background:var(--ux-ivory); border:1px solid var(--ux-line); border-radius:0 0 18px 18px; box-shadow:0 16px 26px rgba(24,63,61,.12); }
  .ux-menu.is-open { display:grid; gap:2px; }
  .ux-menu a { padding:11px 12px; min-height:46px; font-size:16px; }
  .ux-menu .ux-menu__booking { display:flex; color:white; margin-top:8px; }
  .ux-needs { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ux-services { grid-template-columns:1fr; }
  .ux-detail .detail-layout { display:flex; flex-direction:column; gap:30px; }
  .ux-detail .price-card { position:static; width:100%; max-width:none; order:-1; padding:22px; }
  .ux-detail .content-stack { width:100%; }
  .ux-home .hero__grid { gap:22px; }
  .ux-home .photo--hero { height:240px; object-position:center 34%; }
  .ux-home .photo--about { max-height:220px; }
  .ux-start { grid-template-columns:1fr; gap:16px; }
  .ux-home .split { gap:22px; }
}
@media(max-width:620px) {
  .ux-home .section { padding:34px 0; }
  .ux-home .hero { padding:28px 0 24px; }
  .ux-home .hero h1 { font-size:2.55rem; line-height:1.08; margin-bottom:16px; }
  .ux-home h2 { font-size:2rem; line-height:1.15; }
  .ux-home .hero__copy > p { font-size:16px; line-height:1.65; }
  .ux-home .button-row { align-items:stretch; flex-direction:column; }
  .ux-home .button-row a { width:100%; }
  .ux-need { padding:12px; min-height:84px; }
  .ux-need small { font-size:12px; }
  .ux-service { padding:22px; }
  .ux-single { padding:20px; }
  .ux-single .ux-action { width:100%; }
  .ux-detail .subhero { padding:26px 0 18px; }
  .ux-detail .subhero h1 { font-size:2.25rem; line-height:1.1; }
  .ux-detail .subhero .lead { font-size:16px; line-height:1.65; }
  .ux-detail .section { padding-top:12px; }
  .ux-footer__links { display:grid; grid-template-columns:1fr 1fr; }
  .ux-footer { padding:28px 20px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto!important; } }
