/* Shared shell for the D3 coastal system. No hero geometry selectors. */
.ap-page{margin:0;background:var(--ap-bg);color:var(--ap-ink);font:16px/1.65 Arial,sans-serif}
.ap-page [hidden],.ap-dialog [hidden]{display:none!important}
.ap-main{margin-left:280px;min-height:75svh;min-width:0}
.ap-skip{position:fixed;top:-100px;left:16px;z-index:130;padding:12px 18px;background:var(--ap-gold);color:var(--ap-graphite)}.ap-skip:focus{top:12px}
.ap-rail{position:fixed;inset:0 auto 0 0;width:280px;height:100svh;z-index:40;padding:38px 26px 27px;display:flex;flex-direction:column;background:linear-gradient(150deg,#132d35,var(--ap-graphite) 70%);color:var(--ap-bg);border-right:1px solid #d0dfd717;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.ap-brand{display:inline-block;font:400 34px/1.04 Georgia,serif;letter-spacing:-.035em;color:inherit;text-decoration:none!important}.ap-brand span{display:block;margin-top:4px}.ap-brand::after{content:'';display:block;width:38px;height:1px;background:var(--ap-gold);margin-top:23px}
.ap-rail-nav{margin-top:64px}.ap-rail-primary,.ap-rail-secondary{display:grid}.ap-rail-primary a{display:flex;align-items:center;min-height:74px;padding:21px 0;border-bottom:1px solid #cbdad22c;color:inherit;text-decoration:none;font:400 27px/1.2 Georgia,serif;white-space:nowrap}.ap-rail-primary a:first-child{font-size:36px;padding-top:0;padding-bottom:25px}.ap-rail-secondary{margin-top:28px}.ap-rail-secondary a{display:flex;align-items:center;min-height:44px;padding:10px 0;color:#b7c6c5;font:15px/1.5 Arial,sans-serif;text-decoration:none}.ap-rail a:hover{color:var(--ap-gold)}.ap-rail-contact{margin-top:auto;padding-top:28px}.ap-rail-contact button{border:1px solid #b9c9c258;min-height:49px;width:100%;padding:10px 13px;display:flex;justify-content:space-between;align-items:center;background:transparent;color:inherit;font:15px/1.5 Arial,sans-serif;cursor:pointer}.ap-rail-contact button:hover{border-color:var(--ap-gold)}
.ap-mobile-header{display:none}.ap-menu-trigger{min-height:44px;min-width:58px;padding:8px 12px;background:transparent;border:1px solid #b9c9c258;color:inherit;font:14px/1 Arial,sans-serif;cursor:pointer}
.ap-footer{position:relative;isolation:isolate;background:var(--ap-graphite);color:var(--ap-bg);font:16px/1.6 Arial,sans-serif;padding:65px clamp(24px,5.1vw,92px) 28px;margin:0;box-sizing:border-box}
.ap-footer *{box-sizing:border-box}.ap-footer a{color:inherit;text-decoration:none}.ap-footer button{font:inherit;cursor:pointer}.ap-footer p,.ap-footer h2{margin:0}.ap-footer:before{content:'';position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,#d5b47d80,transparent)}
.ap-footer-top{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:start;padding-bottom:42px;border-bottom:1px solid #cbdad22c}.ap-footer .ap-brand{font-size:36px}.ap-footer .ap-brand span{display:inline;margin-left:6px}.ap-footer .ap-brand::after{display:none}.ap-footer-intro p{max-width:370px;margin-top:20px;color:#b7c6c5;line-height:1.75}.ap-footer-contact{display:grid;justify-items:start;gap:10px;justify-self:end}.ap-footer-contact .ap-footer-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--ap-gold);margin-bottom:5px}.ap-footer-phone{font:400 clamp(24px,2.5vw,34px)/1.3 Georgia,serif;white-space:nowrap}.ap-footer-mail{min-height:44px;display:flex;align-items:center;font-size:16px;overflow-wrap:anywhere}.ap-footer-contact button{display:flex;gap:25px;align-items:center;justify-content:space-between;min-height:48px;border:0;border-bottom:1px solid #d5b47d80;background:transparent;color:var(--ap-gold);padding:8px 0;text-align:left}.ap-footer-contact small{font-size:12px;color:#b7c6c5}
.ap-footer-columns{display:grid;grid-template-columns:.9fr 1fr 1.4fr;gap:32px;margin:36px 0 40px}.ap-footer-columns h2{font:400 13px/1.5 Arial,sans-serif;text-transform:uppercase;letter-spacing:.1em;color:#b7c6c5;margin-bottom:14px}.ap-footer-columns nav{display:grid;align-content:start}.ap-footer-columns a{min-height:44px;display:flex;align-items:center;line-height:1.45;font-size:14px;padding:8px 0;width:fit-content;max-width:100%}.ap-footer a:hover{color:var(--ap-gold)}
.ap-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:21px;border-top:1px solid #cbdad22c;font-size:12px;color:#b7c6c5}.ap-footer-back{display:inline-flex;align-items:center;min-height:44px;gap:16px;white-space:nowrap}.ap-footer-note{margin-top:14px!important;font-size:12px;line-height:1.8;color:#b7c6c5;max-width:950px}.ap-footer-owner{margin-top:8px!important;font-size:12px;color:#b7c6c5;line-height:1.8}
.ap-review{padding:22px clamp(24px,5.1vw,92px);background:var(--ap-paper);color:var(--ap-ink);font:14px/1.7 Arial,sans-serif}.ap-review summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:10px}.ap-review summary:before{content:'+'}.ap-review[open] summary:before{content:'−'}.ap-review p{margin:12px 0}.ap-review a{color:inherit;text-underline-offset:4px}.ap-review-links{display:flex;flex-wrap:wrap;gap:12px 24px}.ap-review-links a{min-height:44px;display:inline-flex;align-items:center}
.ap-dialog{position:fixed;box-sizing:border-box;margin:auto;width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;padding:clamp(24px,4vw,40px);border:1px solid #d5b47d70;border-radius:6px;background:var(--ap-bg);color:var(--ap-ink);font:16px/1.65 Arial,sans-serif;box-shadow:0 30px 100px #071b2950;z-index:100}
.ap-dialog::backdrop{background:#061c28b8;backdrop-filter:blur(6px)}.ap-dialog *{box-sizing:border-box}.ap-dialog h2{font:400 clamp(32px,4vw,44px)/1.1 Georgia,serif;letter-spacing:-.035em;margin:12px 44px 14px 0}.ap-dialog p{margin:12px 0}.ap-dialog .ap-dialog-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--ap-gold-ink);margin:0}.ap-dialog-close{position:absolute;right:15px;top:15px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--ap-line);border-radius:50%;background:transparent;color:inherit;font:26px/1 Arial,sans-serif;cursor:pointer}.ap-dialog-note{font-size:14px;color:var(--ap-muted);padding:14px 0;border-top:1px solid var(--ap-line);margin-top:24px!important}
.ap-channel-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0}.ap-channel{background:transparent;color:var(--ap-ink);display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--ap-line);padding:14px;min-height:64px;text-align:left;cursor:pointer;font:16px/1.5 Arial,sans-serif}.ap-channel small{display:block;font-size:12px;color:var(--ap-muted)}.ap-channel:disabled{opacity:.65;cursor:not-allowed}.ap-channel[aria-pressed='true']{background:var(--ap-teal);color:var(--ap-bg);border-color:var(--ap-teal)}.ap-channel[aria-pressed='true'] small{color:#b7c6c5}.ap-channel:not(:disabled):hover{border-color:var(--ap-gold-ink)}.ap-contact-preview label{display:block;font-size:14px;margin:18px 0 8px}.ap-contact-preview textarea{font:16px/1.6 Arial,sans-serif;color:var(--ap-ink);background:var(--ap-paper);border:1px solid var(--ap-line);width:100%;min-height:142px;padding:14px;resize:vertical}.ap-dialog-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}.ap-dialog-action{border:1px solid var(--ap-teal);background:var(--ap-teal);color:var(--ap-bg);min-height:48px;border-radius:999px;padding:10px 20px;cursor:pointer;font:15px/1.5 Arial,sans-serif}.ap-dialog-action--quiet{background:transparent;color:var(--ap-ink);border-color:var(--ap-line)}.ap-contact-status{font-size:14px;min-height:24px;color:var(--ap-muted)}
.ap-menu-dialog nav{display:grid}.ap-menu-dialog nav a{display:flex;align-items:center;min-height:52px;border-bottom:1px solid var(--ap-line);text-decoration:none;color:inherit}.ap-menu-dialog nav a:nth-child(-n+3){font:25px/1.3 Georgia,serif}
:where(.ap-footer,.ap-rail,.ap-mobile-header,.ap-dialog,.ap-review) :where(a,button,input,textarea,summary):focus-visible{outline:2px solid var(--ap-gold-ink);outline-offset:5px}.ap-footer :where(a,button):focus-visible,.ap-rail :where(a,button):focus-visible,.ap-mobile-header :where(a,button):focus-visible{outline-color:var(--ap-gold)}
@media(min-width:1051px) and (max-width:1320px){.ap-footer-top{grid-template-columns:1fr}.ap-footer-contact{justify-self:start}.ap-footer-columns{grid-template-columns:1fr 1fr}.ap-footer-columns>div:last-child{grid-column:1/-1}.ap-footer-columns>div:last-child nav{grid-template-columns:1fr 1fr;column-gap:28px}}
@media(min-width:1051px) and (max-height:700px){.ap-rail{padding-top:22px;padding-bottom:20px}.ap-rail .ap-brand{font-size:30px}.ap-rail .ap-brand::after{margin-top:15px}.ap-rail-nav{margin-top:28px}.ap-rail-primary a{min-height:57px;padding:14px 0;font-size:25px}.ap-rail-primary a:first-child{font-size:32px;padding-bottom:16px}.ap-rail-secondary{margin-top:14px}.ap-rail-contact{padding-top:18px}}
@media(max-width:1050px){.ap-rail{display:none}.ap-main{margin-left:0;padding-top:80px}.ap-mobile-header{position:fixed;inset:0 0 auto;height:80px;padding:0 24px;z-index:45;display:flex;align-items:center;justify-content:space-between;gap:14px;background:#10252df5;color:var(--ap-bg);backdrop-filter:blur(14px)}.ap-mobile-header .ap-brand{font-size:25px;letter-spacing:-.025em;white-space:nowrap}.ap-mobile-header .ap-brand span{display:inline;margin-left:6px}.ap-mobile-header .ap-brand::after{display:none}.ap-footer{padding-top:48px}.ap-footer-columns{gap:24px}.ap-page [id]{scroll-margin-top:104px}}
@media(max-width:760px){.ap-footer-top{grid-template-columns:1fr;gap:30px}.ap-footer-contact{justify-self:start}.ap-footer-columns{grid-template-columns:1fr 1fr}.ap-footer-columns>div:last-child{grid-column:1/-1}.ap-footer-columns>div:last-child nav{grid-template-columns:1fr 1fr;gap:0 24px}.ap-footer-bottom{align-items:start}.ap-footer .ap-brand{font-size:31px}}
@media(max-width:560px){.ap-main{padding-top:72px}.ap-mobile-header{height:72px;padding:0 18px}.ap-mobile-header .ap-brand{font-size:21px}.ap-page [id]{scroll-margin-top:90px}.ap-footer{padding-inline:24px}.ap-footer-columns>div:last-child nav{display:grid;grid-template-columns:1fr}.ap-footer-bottom{display:block}.ap-footer-back{margin-top:6px}.ap-channel-list{grid-template-columns:1fr}.ap-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:24px}.ap-dialog h2{font-size:32px}}
@media(prefers-reduced-motion:reduce){.ap-page{scroll-behavior:auto}.ap-dialog::backdrop,.ap-mobile-header{backdrop-filter:none}}
@media print{.ap-rail,.ap-mobile-header,.ap-footer,.ap-review,.ap-dialog,.ap-skip{display:none!important}.ap-main{margin:0;padding:0}}

/* One semantic palette for new components and the approved homepage. Hero colours stay in hero-motion.css. */
.home-body{--home-cream:var(--ap-bg);--home-paper:var(--ap-paper);--home-stone:var(--ap-stone);--home-ink:var(--ap-ink);--home-teal:var(--ap-teal);--home-graphite:var(--ap-graphite);--home-gold:var(--ap-gold);--home-gold-ink:var(--ap-gold-ink);--home-muted:var(--ap-muted);--home-line:var(--ap-line)}

/* Override the scoped base focus on inverse surfaces. */
body.ap-page :is(.ap-footer,.ap-rail,.ap-mobile-header) :where(a,button):focus-visible{outline-color:var(--ap-gold)}
