/* Shared interaction feedback across the site. */
a,button{ -webkit-tap-highlight-color:rgba(44,107,120,.2) }
a,button,.btn{transition:color .18s,background-color .18s,border-color .18s,box-shadow .18s,transform .18s}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a3bd66;outline-offset:4px}
.btn:not(:disabled):is(:hover,:focus-visible){background:#1c505b;color:#fff;border-color:#1c505b;box-shadow:0 8px 20px #2c6b782b;transform:translateY(-2px)}
.btn.light:is(:hover,:focus-visible){background:#2c6b78;border-color:#2c6b78;color:#fff}
.cta .btn:is(:hover,:focus-visible){background:#e1f1ea;color:#17434d;border-color:#e1f1ea}
.btn:not(:disabled):active,button:not(:disabled):active{transform:translateY(1px);box-shadow:none}
button:disabled{cursor:wait;opacity:.6}
nav a:not(.btn){border-radius:5px;padding-inline:8px;border-bottom:2px solid transparent}
nav a:not(.btn):is(:hover,:focus-visible),nav a[aria-current]:not(.btn){background:#e5f0ed;color:#205461;border-bottom-color:#2c6b78}
.price-row a:is(:hover,:focus-visible),.legal-links a:is(:hover,:focus-visible),.legal-main a:is(:hover,:focus-visible),.back:is(:hover,:focus-visible),.breadcrumbs a:is(:hover,:focus-visible),.footer-row a:not(.logo):is(:hover,:focus-visible){color:#164c59;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.social-links a:is(:hover,:focus-visible),.cta a:not(.btn):is(:hover,:focus-visible){color:#fff;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px;background:#ffffff16;border-radius:3px}
.cookie-btn:not(:disabled):is(:hover,:focus-visible){background:#daebe6;color:#143f49;border-color:#daebe6;box-shadow:0 0 0 3px #ffffff25}
.menu-toggle:is(:hover,:focus-visible),.menu-toggle[aria-expanded=true]{background:#e5f0ed;border-color:#2c6b78}
summary:is(:hover,:focus-visible),details[open]>summary{color:#2c6b78}
/* Unframed client-supplied portrait. */
.portrait{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:hidden}
.portrait:before,.portrait:after{display:none;content:none}
.portrait img{filter:none;object-position:center 18%!important}
.person-card{left:0;right:0;bottom:0;padding:18px 0;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.person-card .stamp{display:none}
/* Keep actions distinct from both white and teal service cards. */
.service a{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:46px;padding:12px 16px;border:1px solid #2c6b78;border-radius:5px;background:#2c6b78;color:#fff;font-weight:600;font-size:13px;transition:background .18s,color .18s,border-color .18s,box-shadow .18s}
.service:is(:hover,:focus-within) a{background:#fff;color:#205461;border-color:#fff;box-shadow:0 4px 12px #163f4820}
.service:is(:hover,:focus-within) a:is(:hover,:focus-visible){background:#e1f1ea;color:#163f48;border-color:#e1f1ea;text-decoration:underline;text-underline-offset:4px}
.service a:active{transform:translateY(1px)}
@media(max-width:640px){.portrait{border-radius:0}.person-card{left:0;right:0;bottom:0;padding:12px 0}.person-card strong{font-size:19px}}
@media(prefers-reduced-motion:reduce){a,button,.btn{transition:none}.btn:not(:disabled):is(:hover,:focus-visible){transform:none}}
/* Full-length portrait spans the hero and the following facts strip. */
.hero{overflow:visible;position:relative}
.hero-grid{position:relative;min-height:650px;align-items:start;padding-top:85px;padding-bottom:70px}
.hero-grid>div:first-child{position:relative;z-index:3}
.hero .portrait{position:absolute;right:40px;top:25px;width:42%;height:790px;z-index:2;overflow:visible;display:block;margin:0;background:transparent;border:0;box-shadow:none}
.hero .portrait img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center top!important;display:block}
.hero .person-card{display:flex;left:0;right:0;bottom:120px;max-width:370px;margin-inline:auto;padding:19px 25px;border:1px solid #ffffffd9;border-radius:22px;background:linear-gradient(120deg,#ffffffc4,#edf4f38c);box-shadow:inset 0 1px 0 #fff,0 14px 38px #1f4d5a1c;backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%)}
.hero .person-card strong{font-size:21px;color:#202629}.hero .person-card span{color:#435d64}
.hero+.wrap .facts{width:60%;min-height:190px;align-items:center;gap:25px;position:relative;z-index:1}
#services{position:relative;background:white;z-index:3}
@media(max-width:1100px) and (min-width:901px){.hero .portrait{height:800px;width:40%;right:25px}.hero .person-card{bottom:145px;padding:16px}.hero-grid{min-height:690px}.hero+.wrap .facts{min-height:150px;width:60%;gap:16px}}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;min-height:0;padding-top:45px;padding-bottom:20px}.hero .portrait{position:relative;right:auto;top:auto;height:650px;width:100%;max-width:450px;margin:15px auto 0}.hero .person-card{bottom:90px;max-width:330px;left:10px;right:10px}.hero+.wrap .facts{width:100%;min-height:0;padding:25px 0}.hero-grid>div:first-child{max-width:650px}}
@media(max-width:640px){.hero .portrait{height:590px;max-width:390px}.hero .person-card{bottom:75px;max-width:300px;padding:16px 20px;border-radius:20px}.hero .person-card strong{font-size:20px}.hero+.wrap .facts{gap:18px}}
/* Feather only the silhouette alpha; facial detail stays sharp. */
.hero .portrait img{filter:url(#portrait-edge-soften)}
