/* Shared reading rhythm, following the compact privacy notice. */
main p,main li{line-height:1.55}
main p{margin-top:0;margin-bottom:12px}
main .lead{line-height:1.55;margin-bottom:16px}
main h1{margin-bottom:18px}
main h2{line-height:1.25;margin-bottom:12px}
main h3{line-height:1.3;margin-bottom:9px}
main .eyebrow{line-height:1.4;margin-bottom:14px}
main section{padding-top:48px;padding-bottom:48px}
main .page-hero{padding-top:42px;padding-bottom:42px}
main .section-head{margin-bottom:24px}
main .step{padding-top:14px;padding-bottom:14px}
main ul,main ol{margin-top:12px;margin-bottom:16px}
main li+li{margin-top:6px}
main.expertise-content p,main .careers-intro p,main .article-body p,main .article-body li{line-height:1.55}
main.legal-page .page-hero{padding-top:38px;padding-bottom:38px}
main.legal-page>section:not(.page-hero){padding-top:30px;padding-bottom:42px}
@media screen and (max-width:600px){main section{padding-top:34px;padding-bottom:34px}main .page-hero{padding-top:32px;padding-bottom:32px}}
/* Compact typography across page-specific styles as well as shared layouts. */
main#main p,main#main li{font-size:14px;line-height:1.5}
main#main p{margin-top:0;margin-bottom:10px}
main#main .lead{font-size:16px;line-height:1.5;margin-bottom:12px}
main#main h1{font-size:clamp(30px,3.5vw,44px);line-height:1.12;margin-bottom:15px;letter-spacing:-1px}
main#main h2{font-size:clamp(24px,2.6vw,30px);line-height:1.2;margin-bottom:10px;letter-spacing:-.6px}
main#main h3{font-size:20px;line-height:1.25;margin-bottom:8px}
main#main .eyebrow{font-size:11px;line-height:1.35;margin-bottom:12px}
main#main section{padding-top:32px;padding-bottom:32px}
main#main .page-hero{padding-top:32px;padding-bottom:32px}
main#main .hero-content{padding-top:58px;padding-bottom:58px}
main#main .section-head{margin-bottom:20px}
main#main .legal-copy h2{font-size:20px;margin-top:20px}
main#main .legal-copy h3{font-size:17px}
main#main .legal-copy .concept-notice p{font-size:13px}
@media screen and (max-width:600px){main#main section{padding-top:26px;padding-bottom:26px}main#main .hero-content{padding-top:38px;padding-bottom:38px}}
/* Consistent compact action buttons; navigation disclosures keep their own form. */
body .btn,body .btn.navy,body .whatsapp-btn,body .ask-launcher,body header #navigation>a:last-child{
 display:inline-flex;align-items:center;justify-content:center;gap:7px;
 min-height:42px;padding:10px 18px;border:1px solid #df7007;border-radius:7px;
 background:linear-gradient(155deg,#ffad45 0%,#ff8b13 38%,#ff7a00 72%,#ec6c00 100%);
 color:#102642;font:600 13px/1.4 Arial,sans-serif;text-align:center;text-decoration:none;
 box-shadow:inset 0 1px 0 #ffffff70,inset 0 -1px 1px #a9490030,0 2px 5px #061c351a;
 cursor:pointer;transition:background .15s,box-shadow .15s;
}
body .btn:hover,body .btn.navy:hover,body .whatsapp-btn:hover,body .ask-launcher:hover,body header #navigation>a:last-child:hover{
 background:linear-gradient(155deg,#ffbb62,#ff921e 48%,#f27000);color:#102642;box-shadow:inset 0 1px 0 #ffffff70,0 3px 7px #061c3524;
}
body .btn.secondary{background:transparent;color:#0f2d5b;border-color:#7c90aa;box-shadow:none}
body .btn.secondary:hover{background:#edf3fa;color:#0f2d5b;box-shadow:none}
body .hero .btn.secondary,body .page-hero .btn.secondary,body .expertise-discuss .btn.secondary{color:#fff;border-color:#a5b8cf}
body .hero .btn.secondary:hover,body .page-hero .btn.secondary:hover,body .expertise-discuss .btn.secondary:hover{background:#ffffff18;color:#fff}
body .btn:disabled{opacity:.55;cursor:default;box-shadow:none}
@media(pointer:coarse){body .btn,body .whatsapp-btn,body .ask-launcher,body header #navigation>a:last-child{min-height:44px}}
@media(prefers-reduced-motion:reduce){body .btn,body .ask-launcher{transition:none}}
/* Navy actions echo the blue of the logo; orange is reserved for contact and chat. */
body .btn,body .btn.navy,body .whatsapp-btn{
 background:linear-gradient(155deg,#285c86 0%,#164773 30%,#0f2d5b 68%,#081e3c 100%);
 color:#fff;border-color:#15395e;box-shadow:inset 0 1px 0 #ffffff38,inset 0 -1px 1px #04152e66,0 2px 5px #061c3520;
}
body .btn:hover,body .btn.navy:hover,body .whatsapp-btn:hover{
 background:linear-gradient(155deg,#33719c,#1b527e 35%,#143761 75%,#0b2648);color:#fff;
}
body .btn.secondary{background:transparent;color:#0f2d5b;border-color:#7c90aa;box-shadow:none}
body .btn.secondary:hover{background:#edf3fa;color:#0f2d5b;box-shadow:none}
body .hero .btn.secondary,body .page-hero .btn.secondary,body .expertise-discuss .btn.secondary{color:#fff;border-color:#a5b8cf}
body .hero .btn.secondary:hover,body .page-hero .btn.secondary:hover,body .expertise-discuss .btn.secondary:hover{background:#ffffff18;color:#fff}
body a.btn[href="contact.html"],body a.btn[href="/contact"],body a.btn[href="/contact.html"],body .ask-launcher,body header #navigation>a:last-child{
 background:linear-gradient(155deg,#ffad45 0%,#ff8b13 38%,#ff7a00 72%,#ec6c00 100%);color:#102642;border-color:#df7007;
 box-shadow:inset 0 1px 0 #ffffff70,inset 0 -1px 1px #a9490030,0 2px 5px #061c351a;
}
body a.btn[href="contact.html"]:hover,body a.btn[href="/contact"]:hover,body a.btn[href="/contact.html"]:hover,body .ask-launcher:hover,body header #navigation>a:last-child:hover{
 background:linear-gradient(155deg,#ffbb62,#ff921e 48%,#f27000);color:#102642;
}
/* Quiet depth for content panels, using the site's navy and cool neutrals. */
main#main .card,main#main .about-approach li,main#main .expertise-output-grid article,main#main .expertise-card{
 background:radial-gradient(ellipse at 100% 100%,#dfeaf5 0%,transparent 65%),linear-gradient(135deg,#fff 0%,#f3f7fb 75%,#eaf1f8 100%);
 border:1px solid #d0dce9;border-top:3px solid #ff7a00;border-radius:9px;
 box-shadow:inset 0 1px 0 #ffffffd9,0 6px 18px #0f2d5b0d,0 1px 3px #0f2d5b08;
}
main#main .card,main#main .about-approach li,main#main .expertise-output-grid article{padding:25px}
main#main .card .num,main#main .about-approach .num{color:#b95000}
main#main .expertise-card>a{border-radius:8px;overflow:hidden}
main#main .expertise-card:has(a:hover){box-shadow:inset 0 1px 0 #fff,0 9px 24px #0f2d5b1c}
/* One restrained corporate panel treatment across the public pages. */
:root{--scp-card-fill:linear-gradient(145deg,#f9fbfd 0%,#eff4f9 100%);--scp-card-border:#d5dfe9;--scp-card-shadow:0 4px 14px rgba(15,45,91,.055)}
main#main .card,main#main .about-approach li,main#main .expertise-output-grid article,main#main .expertise-card,main#main .insight-card{
 background:var(--scp-card-fill);border:1px solid var(--scp-card-border);border-top:2px solid #ff7a00;border-radius:8px;
 box-shadow:var(--scp-card-shadow);
}
main#main .expertise-card-copy,main#main .insight-card-content{background:transparent}
main#main .card h3,main#main .about-approach h3,main#main .expertise-output-grid h3,main#main .expertise-card h3,main#main .insight-card h3{color:#172d48}
main#main .expertise-card:has(a:hover),main#main .insight-card:has(a:hover){box-shadow:0 6px 18px rgba(15,45,91,.09)}
/* White panels provide contrast within tinted sections. */
main#main .subtle .card,main#main .subtle .about-approach li,main#main .subtle .expertise-output-grid article,main#main .subtle .expertise-card,main#main .subtle .insight-card{background:#fff}
/* Final button palette: action labels, rather than destinations, set emphasis. */
body main#main .btn,body main#main .btn.secondary,body main#main .btn.navy,body .whatsapp-btn{
 background:linear-gradient(155deg,#285c86 0%,#164773 30%,#0f2d5b 68%,#081e3c 100%)!important;color:#fff!important;border-color:#15395e!important;
 box-shadow:inset 0 1px 0 #ffffff38,inset 0 -1px 1px #04152e66,0 2px 5px #061c3520;
}
body main#main .btn:hover,body .whatsapp-btn:hover{background:linear-gradient(155deg,#33719c,#1b527e 35%,#143761 75%,#0b2648)!important;color:#fff!important}
body main#main .btn.contact-action,body .ask-launcher,body header #navigation>a:last-child{
 background:linear-gradient(155deg,#ffad45 0%,#ff8b13 38%,#ff7a00 72%,#ec6c00 100%)!important;color:#102642!important;border-color:#df7007!important;
}
body main#main .btn.contact-action:hover,body .ask-launcher:hover,body header #navigation>a:last-child:hover{background:linear-gradient(155deg,#ffbb62,#ff921e 48%,#f27000)!important;color:#102642!important}
body .btn span,body .ask-launcher span{color:inherit!important}
/* WhatsApp is a compact branded action on a light contact panel. */
main#main .contact-whatsapp{background:linear-gradient(140deg,#fff,#f0f5fb);color:#172d48;border-color:#d4dfed;box-shadow:0 7px 24px rgba(15,45,91,.07);padding:24px 30px}
main#main .contact-whatsapp h3{color:#172d48;font-size:20px}
main#main .contact-whatsapp p{color:#536781}
main#main .contact-whatsapp .eyebrow{color:var(--orange);font-size:11px;line-height:1.35;margin-bottom:12px}
main#main .contact-whatsapp .note{font-size:12px;color:#65758a;margin-top:10px}
body main#main .contact-whatsapp .btn{background:linear-gradient(155deg,#36df76,#25d366)!important;border-color:#20bd5a!important;color:#083c23!important;min-height:40px;padding:8px 13px;font-size:13px;gap:8px;box-shadow:inset 0 1px 0 #ffffff55,0 2px 5px #063a1c1a}
body main#main .contact-whatsapp .btn:hover{background:linear-gradient(155deg,#2ed46e,#20c15d)!important;color:#083c23!important}
main#main .contact-whatsapp .btn svg{width:18px;height:18px;flex-shrink:0}
/* A shared stationary response for action buttons and social links. */
body .btn,body .whatsapp-btn,body .ask-launcher,body header #navigation>a:last-child,body .contact-social-links a,body button{
 transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease;
}
body .btn:hover,body .btn:active,body .whatsapp-btn:hover,body .ask-launcher:hover,body header #navigation>a:last-child:hover,body .contact-social-links a:hover,body button:hover{transform:none!important;translate:none!important}
body .btn:hover,body .whatsapp-btn:hover,body .ask-launcher:hover,body header #navigation>a:last-child:hover,body .contact-social-links a:hover{box-shadow:inset 0 1px 0 #ffffff38,0 3px 8px rgba(15,45,91,.14)}
body .contact-social-links a:hover{background:#edf3f9;border-color:#cedbeb;color:#0f2d5b}
body main#main .contact-social-links a{background:linear-gradient(155deg,#285c86 0%,#164773 30%,#0f2d5b 68%,#081e3c 100%);color:#fff;border-color:#15395e;border-radius:7px;box-shadow:inset 0 1px 0 #ffffff38,0 2px 5px #061c3520}
body main#main .contact-social-links a:hover{background:linear-gradient(155deg,#33719c,#1b527e 35%,#143761 75%,#0b2648);color:#fff;border-color:#15395e;box-shadow:inset 0 1px 0 #ffffff38,0 3px 8px rgba(15,45,91,.14)}
body .btn:focus-visible,body .ask-launcher:focus-visible,body .contact-social-links a:focus-visible,body button:focus-visible{outline:3px solid #ff7a00;outline-offset:3px}
@media(prefers-reduced-motion:reduce){body .btn,body .whatsapp-btn,body .ask-launcher,body header #navigation>a:last-child,body .contact-social-links a,body button{transition:none}}
main#main .contact-hours-content{flex:1;min-width:0}
main#main .office-hours-details summary{display:inline-flex;align-items:center;gap:12px;font-size:14px;color:#0f2d5b;cursor:pointer;padding:5px 0;list-style:none}
main#main .office-hours-details summary::-webkit-details-marker{display:none}
main#main .office-hours-details summary svg{width:11px;height:8px;color:#e76e00}
main#main .office-hours-details[open] summary svg{transform:rotate(180deg)}
main#main .office-hours-details summary:focus-visible{outline:3px solid #ff7a00;outline-offset:3px;border-radius:3px}
main#main .office-hours-details dl{margin:10px 0 0;font-size:14px;line-height:1.5;max-width:300px}
main#main .office-hours-details dl>div{display:grid;grid-template-columns:minmax(85px,1fr) 1.4fr;gap:12px;padding:4px 0;border-bottom:1px solid #dce5ee}
main#main .office-hours-details dt{font-weight:600;color:#172d48}
main#main .office-hours-details dd{margin:0;color:#536781}
main#main .contact-map{margin-top:22px;padding-top:20px;border-top:1px solid #d4dfed}
main#main .contact-map h3{font-size:17px;margin-bottom:12px}
main#main .contact-map iframe{display:block;width:100%;height:220px;border:1px solid #d4dfed;border-radius:7px;background:#edf3f8}
main#main .contact-map .note{font-size:12px;margin:9px 0 5px}
main#main .contact-map .text-link{font-size:13px}
main#main .contact-map .contact-map-credit{font-size:11px;line-height:1.4;color:#65758a;margin:9px 0 0}
main#main .contact-channels .contact-social-strip{display:block;margin-top:0;padding:24px 30px;background:linear-gradient(140deg,#fff,#f0f5fb)}
main#main .contact-channels .contact-social-strip h3{font-size:20px;margin-bottom:17px}
main#main .contact-channels .contact-social-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
main#main .contact-channels .contact-social-links a{justify-content:center;padding:10px 8px;font-size:13px}
@media screen and (max-width:400px){main#main .contact-channels .contact-social-strip{padding:22px}main#main .contact-channels .contact-social-links a{font-size:12px}}
/* Contain the enquiry preview within the same page grid as the contact cards. */
main#main .contact-enquiry{background:#fff;padding-top:0;padding-bottom:36px}
main#main .contact-enquiry>.wrap{background:linear-gradient(140deg,#fff,#f0f5fb);border:1px solid #d4dfed;border-radius:8px;box-shadow:0 7px 24px rgba(15,45,91,.07);padding:30px;gap:34px}
@media screen and (max-width:600px){main#main .contact-enquiry>.wrap{padding:22px;gap:22px}}
/* Shared centred canvas on wide screens. */
@media screen and (min-width:1100px){
 body{background:#f1f4f8}
 body>.top,body>header,body>main,body>footer{width:min(1280px,94%);margin-left:auto;margin-right:auto}
 body>main{background:#fff}
 body .wrap{width:calc(100% - 64px);max-width:1180px}
 body>footer{margin-bottom:26px}
 body .ask-launcher{right:max(24px,calc((100vw - 1280px)/2 + 24px))}
}
/* Define the closing About-page sections within the shared canvas. */
main#main:has(.about-portrait-section)>.subtle:has(.step){background:#f5f8fb;border-top:1px solid #e0e7ef;border-bottom:1px solid #e0e7ef}
main#main:has(.about-portrait-section)>.cta{background:#fff;padding:26px 0}
main#main:has(.about-portrait-section)>.cta>.wrap{background:linear-gradient(140deg,#f9fbfd,#eaf1f8);border:1px solid #d4dfeb;border-radius:8px;padding:25px 30px;box-shadow:0 4px 12px #0f2d5b08}
main#main:has(.about-portrait-section)>.cta h2{color:#172d48;font-size:26px;line-height:1.25}
main#main:has(.about-portrait-section)>.cta .btn{border-color:#7296b7!important;flex-shrink:0}
main#main:has(.about-portrait-section)>.cta+section{background:#f4f7fa;border-top:1px solid #e0e7ef}
main#main .contact-enquiry-photo{margin:23px 0 0}
main#main .contact-enquiry-photo+.note{margin-top:12px}
main#main .contact-office-address{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;align-items:start}
main#main .contact-office-visual{margin:0;min-width:0}
main#main .contact-office-visual img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:7px;border:1px solid #d4dfeb}
main#main .contact-office-visual figcaption{font-size:11px;color:#65758a;line-height:1.4;margin-top:7px}
main#main .contact-office address{font-size:14px;line-height:1.5}
main#main .contact-office{border-top:1px solid #d4dfed}
main#main .contact-office address strong{display:inline-block;font-size:14px;line-height:1.5;margin-bottom:4px}
/* Head-office layout alternatives for local review. */
main#main .contact-office-address>.contact-office-visual{grid-column:1;grid-row:1}
main#main .contact-office-address>address{grid-column:2;grid-row:1}
body.office-image-above main#main .contact-office-address,body.office-image-below main#main .contact-office-address{display:flex;flex-direction:column}
body.office-image-above main#main .contact-office-visual{order:-1;width:100%}
body.office-image-below main#main .contact-office-visual{order:1;width:100%}
body.office-image-above main#main .contact-office-visual img,body.office-image-below main#main .contact-office-visual img{max-height:230px;object-fit:cover;object-position:center 42%}
@media screen and (min-width:851px) and (max-width:1100px){main#main .contact-office-address{grid-template-columns:1fr}main#main .contact-office-address>address{grid-column:1;grid-row:2}}
@media screen and (max-width:500px){main#main .contact-office-address{grid-template-columns:1fr}main#main .contact-office-address>address{grid-column:1;grid-row:2}}
body>.top .wrap{justify-content:center;text-align:center}
/* The strapline echoes the inner-page banner palette and network motif. */
body>.top{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 90% 15%,#255477 0%,#153962 40%,#0b254b 80%);color:#e1eaf6}
body>.top::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(90deg,#0b254b 0%,#0b254bd9 35%,#0b254b20 80%),url("banner-network.svg");background-repeat:no-repeat;background-position:center,right 43%;background-size:cover,auto 210px;opacity:.38}
body>.top .wrap span{display:inline;color:#e1eaf6}
/* Homepage strapline picks up the warm horizon in the port photograph. */
body.home-intro>.top{background:linear-gradient(100deg,#0b254b 0%,#153962 57%,#3e4860 76%,#93634e 91%,#bd8059 100%)}
body.home-intro>.top::before{opacity:.18}
main#main .privacy-table-scroll{overflow-x:auto;margin:14px 0}
main#main .privacy-purpose-table{border-collapse:collapse;width:100%;font-size:13px;line-height:1.5;text-align:left}
main#main .privacy-purpose-table caption{text-align:left;font-weight:600;margin-bottom:8px}
main#main .privacy-purpose-table th,main#main .privacy-purpose-table td{padding:10px 12px;vertical-align:top;border:1px solid #d4dfeb;min-width:140px}
main#main .privacy-purpose-table th{background:#edf3f9;color:#172d48}
main#main .privacy-purpose-table tr:nth-child(even) td{background:#f9fbfd}
main#main .map-placeholder{padding:20px;border:1px solid #d4dfeb;border-radius:7px;background:#edf3f8}
main#main .map-placeholder[hidden],main#main iframe[hidden]{display:none}
main#main .cookie-choice-controls{padding:20px;border:1px solid #d4dfeb;border-radius:7px;background:#f4f7fa;margin-top:22px}
main#main .contact-enquiry-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:7px;border:1px solid #d4dfeb;box-shadow:0 4px 14px #0f2d5b0a}
@media screen and (max-width:600px){main#main:has(.about-portrait-section)>.cta>.wrap{padding:23px}main#main:has(.about-portrait-section)>.cta h2{font-size:24px}}
