/* Shared layout for the public service journeys. */
:root { --muted: #b4c0d0; }
[hidden] { display:none !important; }
.hp-field { display:none !important; }
html { scroll-padding-top: 20px; }
body { padding: 0 20px; background:linear-gradient(145deg,#0b1424,#101e30); }
#app { max-width:1160px; margin:auto; padding:0; }
.experience-header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px 0; margin:0 0 30px; min-height:0; flex-wrap:wrap; }
.experience-brand { display:flex; align-items:center; gap:10px; text-decoration:none; white-space:nowrap; font-weight:750; font-size:21px; }
.experience-brand img { width:60px; height:60px; object-fit:contain; border-radius:8px; box-shadow:none; }
.experience-desktop { display:flex; flex:1; justify-content:center; flex-wrap:wrap; gap:12px 20px; font-size:14px; }
.experience-desktop a { text-decoration:none; padding:8px 0; }
.experience-desktop a[aria-current],.experience-desktop a:hover { color:var(--accent); text-decoration:underline; text-underline-offset:6px; }
.experience-header-actions { display:flex; align-items:center; gap:14px; }
.experience-header .language-switcher { padding:0; border:0; background:none; gap:2px; }
.experience-header .lang-button { padding:7px; min-width:32px; min-height:40px; }
.header-contact { font-size:14px; font-weight:700; color:var(--accent); }
.experience-menu { display:none; position:relative; }
.experience-menu summary { cursor:pointer; padding:10px 14px; border:1px solid var(--card-border); border-radius:8px; white-space:nowrap; list-style:none; }
.experience-menu summary::-webkit-details-marker { display:none; }
.experience-menu nav { position:absolute; z-index:20; right:0; top:100%; width:min(300px,calc(100vw - 32px)); background:#172438; padding:16px; border:1px solid var(--card-border); border-radius:12px; box-shadow:0 12px 30px #0004; }
.experience-menu nav a { display:block; padding:12px 6px; text-decoration:none; }
.experience-hero { text-align:left; padding:28px 0 38px; margin:0; max-width:920px; }
.experience-hero h1 { font-size:clamp(30px,4vw,48px); line-height:1.15; margin:0 0 20px; max-width:850px; letter-spacing:-.025em; }
.experience-hero p { max-width:740px; font-size:19px; margin:0 0 24px; }
.experience-hero .action-row { justify-content:flex-start; }
.experience-section { margin:32px 0 48px; padding:0; text-align:left; }
.experience-section h2 { margin:0 0 20px; }
.experience-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.experience-card { padding:25px; background:var(--card-bg); border:1px solid var(--card-border); border-radius:14px; display:flex; align-items:flex-start; flex-direction:column; text-align:left; }
.experience-card h2,.experience-card h3 { margin:0 0 10px; font-size:23px; line-height:1.3; }
.experience-card p { margin:0 0 22px; }
.experience-card .button { margin-top:auto; }
.experience-person { display:flex; gap:26px; align-items:center; padding:30px 0; border-block:1px solid var(--card-border); margin:42px 0; text-align:left; }
.experience-person h2 { margin:0 0 12px; }
.person-monogram { display:grid; place-items:center; flex:0 0 96px; height:96px; border:1px solid var(--accent); color:var(--accent); border-radius:50%; font-size:35px; font-weight:700; }
.experience-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding-left:24px; gap:32px; }
.experience-steps li { padding-left:6px; }
.experience-steps li::marker { color:var(--accent); font-weight:800; }
.experience-steps h3 { margin:0 0 8px; }
.experience-steps p { margin:0; }
.card,.site-footer { box-shadow:none; }
.card { border-radius:14px; text-align:left; }
.info-card,.topic-card,.step-card,.retainer-plan { box-shadow:none; background:none; }
.button { box-shadow:none; border-radius:9px; line-height:1.4; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
.button-primary { background:#e5b57f; color:#152031; }
.action-row { gap:12px; flex-wrap:wrap; }
.service-hero { margin-top:0; }
.service-hero h1 { line-height:1.22; }
.enquiry-section { margin:40px 0; scroll-margin-top:20px; }
.enquiry-section h2 { margin-top:0; }
.contact-form label { display:flex; flex-direction:column; gap:7px; font-weight:600; }
.contact-form .form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-form input,.contact-form textarea { width:100%; margin:0; font:inherit; }
.form-privacy { font-size:14px; font-weight:400; color:var(--muted); }
.scope-note { max-width:900px; padding:0 6px; color:var(--muted); font-size:15px; }
.scope-list { display:grid; gap:12px; padding-left:24px; }
.tax-details { margin:28px 0; border-block:1px solid var(--card-border); }
.tax-details summary { cursor:pointer; padding:20px 0; font-weight:700; }
.tax-details .card { border:0; background:none; padding:8px 0 24px; }
.site-footer { margin-top:54px; border-radius:14px 14px 0 0; padding:32px; background:#142238; }
.site-footer nav a,.site-footer section>a { display:block; margin:8px 0; }
.site-footer h2 { margin-top:0; }
.assistant-launcher { width:auto; min-width:0; max-width:none; border-radius:24px; padding:10px 15px; min-height:44px; box-shadow:0 3px 12px #0003; }
.assistant-shell { width:auto; }
.catalogue { margin:10px 0 40px; }
.catalogue-controls { max-width:760px; margin-bottom:28px; }
.catalogue-controls label { display:block; margin-bottom:8px; font-weight:600; }
.catalogue-controls input,.catalogue-controls select { border:1px solid #63748a; background:#152338; color:var(--txt); border-radius:8px; padding:12px; font:inherit; min-height:46px; width:100%; }
.catalogue-controls select { width:auto; min-width:220px; max-width:100%; }
.catalogue-tabs { display:flex; gap:8px; margin:18px 0; }
.catalogue button { font:inherit; padding:10px 16px; cursor:pointer; color:var(--txt); background:transparent; border:1px solid #63748a; border-radius:8px; min-height:44px; }
.catalogue button[aria-pressed=true] { background:#e5b57f; color:#152031; border-color:#e5b57f; }
.catalogue button:disabled { opacity:.45; cursor:default; }
.catalogue-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.catalogue-card { border:1px solid var(--card-border); border-radius:12px; overflow:hidden; background:var(--card-bg); }
.catalogue-card>a { display:block; height:100%; text-decoration:none; }
.catalogue-card>a>div { padding:18px; }
.catalogue-card img { width:100%; height:auto; aspect-ratio:1200/630; object-fit:cover; }
.catalogue-card h2 { font-size:21px; line-height:1.3; margin:8px 0 12px; }
.catalogue-card p { margin:0; }
.catalogue-card .eyebrow { font-size:11px; letter-spacing:.04em; }
.catalogue-pagination { display:flex; align-items:center; justify-content:center; gap:20px; margin-top:30px; }
.catalogue-empty { padding:24px 0; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
@media(max-width:1050px) {
 .experience-desktop { display:none; }
 .experience-menu { display:block; }
 .experience-header { gap:12px; }
}
@media(max-width:720px) {
 body { padding:0 16px 76px; }
 .experience-header { display:flex; flex-direction:row; align-items:center; padding:12px 0; gap:8px; margin-bottom:10px; }
 .experience-brand { gap:7px; font-size:17px; }
 .experience-brand img { width:40px; height:40px; }
 .experience-header-actions { gap:7px; }
 .experience-header .lang-button { min-width:28px; padding:5px; font-size:12px; }
 .experience-menu summary { font-size:13px; padding:8px; }
 .header-contact { display:none; }
 .experience-hero { padding:20px 0 24px; }
 .experience-hero h1 { font-size:32px; margin-bottom:16px; }
 .experience-hero p { font-size:17px; line-height:1.55; }
 .experience-hero .action-row { display:grid; grid-template-columns:1fr; gap:10px; width:100%; }
 .experience-hero .button { width:100%; margin:0; }
 .experience-grid,.catalogue-grid,.experience-steps { grid-template-columns:1fr; }
 .experience-card { padding:21px; }
 .experience-section { margin:26px 0 36px; }
 .experience-person { align-items:flex-start; gap:15px; margin:30px 0; }
 .person-monogram { flex-basis:48px; height:48px; font-size:19px; }
 .experience-person h2 { font-size:23px; }
 .experience-steps { gap:20px; }
 .contact-form .form-row { grid-template-columns:1fr; }
 .card { padding:22px 18px; }
 .service-hero { text-align:left; padding-top:20px; }
 .service-hero h1 { font-size:30px; }
 .service-hero p { text-align:left; }
 .assistant-shell { left:auto; right:14px; bottom:12px; width:auto; align-items:flex-end; }
 .assistant-launcher { width:auto; padding:10px 14px; }
 .assistant-panel { width:min(360px,calc(100vw - 28px)); }
 .catalogue-pagination { gap:10px; font-size:14px; }
 .catalogue-pagination button { padding:9px 12px; }
 .site-footer { padding:24px 18px; }
 .price-row { align-items:flex-start; gap:14px; }
 .price-row strong { white-space:normal; text-align:right; }
}
@media(prefers-color-scheme:light) {
 :root { --muted:#485d72; --accent:#84501e; }
 body { background:linear-gradient(145deg,#fcf9f4,#edf3f6); }
 .site-footer,.experience-menu nav { background:#edf1f4; }
 .catalogue-controls input,.catalogue-controls select { background:#fff; color:var(--txt); }
 .catalogue button { color:var(--txt); }
 .catalogue button[aria-pressed=true] { color:#152031; }
}
